---
# System prepended metadata

title: Boardgame (Mobdays)

---

# Boardgame (Mobdays)

# Boardgame

Faire jouer un joueur pendant son propre tour -> https://boardgame.io/documentation/#/stages?id=stages 

```ts
const cardTypes = ["mulet", "choucroute", "cloclo", "mout-mout", "clavihairist", "sidecut", "belle-zebuth", "double-face", "mimi-reille", "malaise-en-japonais"] as const
```

## Espionne 

> "À la fin de la manche, si vous êtes le seul joueur encore en lice qui a joué ou défaussé une Espionne, vous gagnez 1 pion faveur."

⚠️ pas cumulable (1 pion même si le même joueur défausse 2 fois l'éspionne dans une même manche)

⚠️ doit rester visible (en défausse + indicateur sur le joueur)

- event : fin de manche (`endIf`) 

-> résolution : 

```ts
const spyCards = discardedCards.filter(card => card.cardName === Card.PRINCE);

const playHasWonPoint = spyCards.length > 1 ? spyCards[0].player === spyCards[1].player: true;
```

```ts
type DiscardedCard = {
    cardName: Card.PRINCE
    player: number
} 

type DiscardedCards : DiscardedCard[]
```

```ts
{
    currentPlayer: '0',
    playOrder: ['0', '1',],
    playOrderPos: 0,
}
```

## Garde

> "Choisissez un autre joueur et nommez un personnage autre que le Garde. Si le joueur choisi a cette carte en main, il quitte la manche"

moves : 

1. sélectionner le Garde
2. choisir un joueur 
3. nommer une carte

résolution -> le joueur sélectionné quitte la partie ou non

```ts
type PlayingPlayers = Player[]
```


## Prêtre

> "Choisissez un autre joueur et regardez sa main."

moves : 

1. sélectionner le Prêtre
2. choisir un autre joueur
3. regarder la main du joueur choisi et timeout de fin ? ou 4. action de terminer son tour

```ts
type VisibleHands = {
    player: number;
    otherHands: number[];
}

type Player = {
  visibleHands: VisibleHands;
}
```

exemple : 

```ts
 const firstPlayVisibleHands:VisibleHands = {
   player: 1,
   otherHands: [1] 
 }
 // peut voir la main du joueur 2
 firstPlayVisibleHands.otherHands.push(2) // ⚠️ à `Immer` https://boardgame.io/documentation/#/immutability 
```

## Baron

> "Choisissez un autre joueur et comparez discrètement vos mains. Celui dont la carte a la plus faible valeur quitte la manche."

moves : 

1. Sélectionner le Baron
2. choisir un autre joueur

-> le joueur avec la carte la plus faible quitte la partie

## Servante

> "Jusqu'à votre prochain tour, les effets de cartes des autres joueurs ne peuvent pas vous cibler."

moves : 

1. Sélectionner la Servante
2. le joueur actuel n'est pas une cible éligible (`targetablePlayers`) jusqu'à son prochain tour

-> résolution : au début de chaque tour d'un joueur on vérifie qu'il est dans la liste des `targetablePlayers`, s'il ne l'est pas on l'ajoute


```ts
type TargetablePlayer = number[];
```

## Prince

> "Choisissez n'importe quel joueur, y compris vous même. Le joueur choisi défausse sa main et en pioche une nouvelle."

moves :

1. sélectionner Prince
2. sélectionner un joueur
3. le joueur ciblé discard deux cartes (`hand.pop(2)`)

-> résolution : le joueur ciblé pioche une carte du deck (deck.pop, hand.push)

⚠️ cas de la princesse 

```ts
function PlayPrince(G, ctx) {
  ctx.events.setActivePlayers({ others: 'prince', minMoves: 2, maxMoves: 2 });
}

const game = {
  moves: { PlayPrince },
  turn: {
    stages: {
      prince: {
        moves: { Discard, Draw },
      },
    },
  },
};
```

## Chancelier

> "Piochez 2 cartes. Conservez 1 carte et placez les 2 autres dans l'ordre de votre choix sous le paquet." 

moves : 

1. sélectionner le Chancelier 

-> piocher 2 cartes (deck.pop(2), hand.push(2))

⚠️ si plus qu'une carte on la pioche  


## Roi

> "Choisissez un autre joueur et échangez vos mains." 

moves : 

1. sélectionner le Roi
2. sélectionner un autre joueur

-> le joueur actuel a la main du joueur sélectionné et le joueur sélectionné a la main du joueur actuel

## Comtesse

> "Si votre main contient le Roi ou un Prince, vous devez jouer la Comtesse." 

event : le joueur qui a la comtesse en main pioche une carte

-> si la carte piochée est un roi ou un prince, play Prince ou Roi

## Princesse

> "Si vous jouez ou défaussez la Princesse, vous quittez la manche." 

La partie s'arrête à l'épuisement du paquet -> comparaison une fois que tous les effets ont été appliqués 
