Ejemplo n.º 1
0
        public void Play()
        {
            AP_Civil    = Gov.CivilAP + AP_Bonus_Civil;
            handLimit   = AP_Civil;
            AP_Military = Gov.MilitaryAP;

            if (MyLeader != null)
            {
                MyLeader.PlayEveryTurn(this);
            }
        }
Ejemplo n.º 2
0
        public void Play_A_Card(Card card)
        {
            //ActionCard
            if (card.MyClass == CardClass.Action)
            {
                (card as ActionCard).Act(this);
                (card as ActionCard).GoToWaste(this);
            }

            //Leader
            if (card.MyClass == CardClass.Leader)
            {
                if (MyLeader != null)
                {
                    MyLeader.Remove(this);
                }
                (card as LeaderCard).PlayOnce(this);
                MyLeader = (card as LeaderCard);
            }

            //UnitCard
            if (card.GetType().IsSubclassOf(typeof(UnitCard)))
            {
                switch (card.MyClass)
                {
                case CardClass.Farm: this.AgriCardList.Add(card as AgriCard); break;

                case CardClass.Mine: this.MineCardList.Add(card as MineCard); break;

                case CardClass.UrbanBuilding: this.UrbanBuildingCardList.Add(card as UrbanBuildingCard); break;

                case CardClass.MilitaryTech: this.MiliTechCardList.Add(card as MilitaryTechCard); break;
                }
            }

            //SpecialCard
            if (card.GetType().IsSubclassOf(typeof(SpecialCard)))
            {
                if (card.GetType() == typeof(DirectSpecialCard))
                {
                    (card as DirectSpecialCard).Act(this);
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            //currentEffect
            if (IsTechnologyCard(card.MyClass))
            {
                if (TurnEffect.Contains("DaVinci"))
                {
                    Produce_Amount(1, DataType.Ore);
                    TurnEffect.Remove("DaVinci");
                }
                if (TurnEffect.Contains("Breakthrough"))
                {
                    Science += 2;
                    TurnEffect.Remove("Breakthrough");
                }
            }
        }