Пример #1
0
            internal static CardDraw Deserialize(IReader reader, Path path = null)
            {
                var cardDraw = new CardDraw(path);

                cardDraw.Replace(reader);
                return(cardDraw);
            }
Пример #2
0
    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);
    }
Пример #3
0
    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();
    }
Пример #4
0
        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());
        }
Пример #5
0
    /// <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--;
                    }
                }
            }
        }
    }
Пример #6
0
        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;
            }
        }
Пример #7
0
    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);
    }
Пример #8
0
 /// <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();
 }