internal static CardDraw Deserialize(IReader reader, Path path = null) { var cardDraw = new CardDraw(path); cardDraw.Replace(reader); return(cardDraw); }
public CardDraw Draw(int count = 1) { var drawn = new CardBase[count]; for (int i = 0; i < count; i++) { if (deck.Count > 0) { var card = deck[deck.Count - 1]; deck.Remove(card); hand.Add(card); card.OnDraw(); drawn[i] = card; } else { drawn[i] = new FatigueCard(); } } var cardDraw = new CardDraw(); cardDraw.cards = drawn; PositionHand(); return(cardDraw); }
public void InitGame() { draw = new List <int>(); allCards = new CardDraw(); nb_cards = allCards.cardList.Count; discard = new List <int>(); nbSheriff = 1; nbHorsLaLoi = 3; CreateDraw(); CreateRoles(); }
public void SetUp() { banker = new TraditionalBanker(new[] { 0 }); jailRoster = new TraditionalJailRoster(banker); board = new GameBoard(banker); var dice = new FakeDice(); var cardDeckFactory = new FakeCardDeckFactory(CreateCards()); communityChest = new CardDraw(0, "Community Chest", banker, cardDeckFactory.GetCommunityChestDeck()); var traditionalLocationFactory = new TraditionalLocationFactory(banker, dice, jailRoster, board, cardDeckFactory); board.SetLocations(traditionalLocationFactory.GetLocations(), traditionalLocationFactory.GetRailroads(), traditionalLocationFactory.GetUtilities()); }
/// <summary> /// Action lorsque la carte est joué /// </summary> public override void Play() { int nb_players = GameObject.Find("GameManager").GetComponent <GameManager>().Personnages.Count; SoundManagerScript.PlaySound("Indian"); GameObject.Find("GameManager").GetComponent <GameManager>().addMessage("", "Attaque d'Indiens!"); for (int i = 0; i < nb_players; i++) { bool isDead = false; bool miss = false; if (GameObject.Find("GameManager").GetComponent <GameManager>().currentPersonnage != GameObject.Find("GameManager").GetComponent <GameManager>().Personnages[i]) { CardDraw allcards = GameObject.Find("GameManager").GetComponent <GameManager>().GetAllCards(); List <int> player_hand = GameObject.Find("GameManager").GetComponent <GameManager>().Personnages[i].GetComponent <ThisPersonnage>().GetPersonnage().GetHand(); for (int j = 0; j < player_hand.Count; j++) { if (allcards.cardList[player_hand[j]].getCardName() == "BANG!" && miss != true) { miss = true; GameObject.Find("GameManager").GetComponent <GameManager>().Disc(player_hand[j]); GameObject.Find("GameManager").GetComponent <GameManager>().Personnages[i].GetComponent <ThisPersonnage>().GetPersonnage().GetHand().RemoveAt(j); if (GameObject.Find("GameManager").GetComponent <GameManager>().Personnages[i].GetComponent <ThisPersonnage>().GetPersonnage().GetPlayer() == true) { GameObject[] cards = GameObject.FindGameObjectsWithTag("Targetable"); foreach (var clone in cards) { if (clone.GetComponent <CardBrown>().title.text == "BANG!") { GameObject.Destroy(clone); break; } } } } } if (miss == false) { isDead = GameObject.Find("GameManager").GetComponent <GameManager>().Personnages[i].GetComponent <ThisPersonnage>().GetPersonnage().takeDamageHeal(-1); if (isDead) { nb_players--; i--; } } } } }
public void ReplaceAt(UInt32 tag, WireType wireType, IReader reader, bool shouldNotify) { switch (tag) { case 0: this.UpdateAndNotify(0, Raw.Deserialize(reader, this.Path.GetNested(0)), shouldNotify); break; case 1: this.UpdateAndNotify(1, CardDraw.Deserialize(reader, this.Path.GetNested(1)), shouldNotify); break; case 2: this.UpdateAndNotify(2, CardDiscard.Deserialize(reader, this.Path.GetNested(2)), shouldNotify); break; case 3: this.UpdateAndNotify(3, Attack.Deserialize(reader, this.Path.GetNested(3)), shouldNotify); break; case 4: this.UpdateAndNotify(4, Skill.Deserialize(reader, this.Path.GetNested(4)), shouldNotify); break; default: reader.SkipToEnd(); break; } }
public bool isMissed(Personnage target) { bool miss = false; CardDraw allcards = GameObject.Find("GameManager").GetComponent <GameManager>().GetAllCards(); for (int i = 0; i < target.GetBoard().Count; i++) { if (allcards.cardList[target.board[i]].getCardName() == "PLANQUE" && miss != true) { int r = UnityEngine.Random.Range(0, 4); if (r == 1) { miss = true; } } } if (miss == false) { for (int i = 0; i < target.hand.Count; i++) { if (allcards.cardList[target.hand[i]].getCardName() == "RATE!" && miss != true) { miss = true; GameObject.Find("GameManager").GetComponent <GameManager>().Disc(target.hand[i]); target.hand.RemoveAt(i); if (target.GetPlayer() == true) { GameObject[] cards = GameObject.FindGameObjectsWithTag("Rate"); GameObject.Destroy(cards[0]); } } } } return(miss); }
/// <summary> /// Constructeur <c> CardBlue </c> récupére la liste de carte et utilise la méthode <c>SetCard()</c> /// </summary> void Start() { list = new CardDraw(); SetCard(); }