Ejemplo n.º 1
0
        //TODO Add new card types as implemented
        public static Entities.Entity ProduceCard(string cardName, CardPool CP)
        {
            CardData cardData = CP.GetCardData(cardName);

            Entities.Entity newEntity = null;

            switch (cardData.mType)
            {
            case CardType.BasicUnit:
                newEntity = new Entities.BasicUnit((UnitCardData)cardData);
                break;

            case CardType.Character:
                newEntity = new Entities.CharacterUnit((UnitCardData)cardData);
                break;

            case CardType.Effect:
                newEntity = new Entities.Effect_Entity((EffectCardData)cardData);
                break;

            default:
                UnityEngine.Debug.LogError("Tried to produce card of unknown type: " + cardData.mType.ToString());
                break;
            }

            return(newEntity);
        }
Ejemplo n.º 2
0
        public override void Draw()
        {
            Entities.Effect_Entity EffectEntity = (Entities.Effect_Entity)mEntity;

            Effects.Effect effect = EffectEntity.GetEffect();

            UnityCard.transform.Find("Card").Find("CardName").gameObject.GetComponent <Text>().text = mEntity.Name;

            UnityEngine.Transform cardTextTransform = UnityCard.transform.Find("Card").Find("CardText");
            if (cardTextTransform != null)
            {
                UnityEngine.UI.Text cardText = cardTextTransform.gameObject.GetComponent <Text>();

                if (EffectEntity.IsPlaced)
                {
                    if (effect.GetEffectType() == Assets.GameCode.Cards.Effects.EffectType.Order ||
                        effect.GetEffectType() == Assets.GameCode.Cards.Effects.EffectType.OrderWithUses)
                    {
                        cardText.text = ((Effects.Orders.Order)effect).IsOrderUsed() ? "Order used this turn" :
                                        "Order not used this turn";
                    }
                    if (effect.GetEffectType() == Assets.GameCode.Cards.Effects.EffectType.OrderWithUses)
                    {
                        // TODO - Might need to worry about the action index?
                        // Just assume only zero for now.
                        cardText.text = cardText.text + "\nNumber of charges: " +
                                        ((Effects.Orders.OrderWithUses)effect).GetNumUses(0);
                    }
                }
                else
                {
                    cardText.text = "";
                }
            }
        }
Ejemplo n.º 3
0
 public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS)
 {
     if (Selection != null)
     {
         foreach (Entity entity in Selection)
         {
             PerformBuffOnEntity(entity);
         }
     }
     if (mAddSelfToSelection)
     {
         PerformBuffOnEntity(Performer);
     }
     Performer.Owner.SpendCP(GetMinCost());
     if (mIsOrder)
     {
         Entities.Effect_Entity effectEntity = (Entities.Effect_Entity)Performer;
         Effects.Orders.Order   order        = (Effects.Orders.Order)(effectEntity.GetEffect());
         order.OrderUsed();
     }
 }
        public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS)
        {
            Entities.Effect_Entity performerEffectEntity = (Entities.Effect_Entity)Performer;
            performerEffectEntity.Owner.SpendCP(GetMinCost());

            int numSalvos = 0;

            foreach (CardZone CZ in performerEffectEntity.Owner.mBoard.RangeZones)
            {
                foreach (Entities.Entity E in CZ.List.Cards)
                {
                    Entities.Unit U = (Entities.Unit)E;
                    if (U.IsClass("Bow") && U.IsClass("Infantry"))
                    {
                        numSalvos += 1;
                    }
                }
            }

            Effects.Orders.OrderWithUses order = (Effects.Orders.OrderWithUses)(performerEffectEntity.GetEffect());
            order.SetUses(mActionIndex, numSalvos);
            order.OrderUsed();
        }
Ejemplo n.º 5
0
 public EffectNode(Entities.Effect_Entity E)
 {
     TheEntity = E;
 }
 public override bool Check(Entities.Entity entity)
 {
     Entities.Effect_Entity effectEntity = (Entities.Effect_Entity)entity;
     Effects.Orders.Order   order        = (Effects.Orders.Order)(effectEntity.GetEffect());
     return(!order.IsOrderUsed());
 }
 public override bool IsAvailable(Entities.Entity Performer)
 {
     Entities.Effect_Entity effectEntity = (Entities.Effect_Entity)Performer;
     Effects.Orders.Order   order        = (Effects.Orders.Order)effectEntity.GetEffect();
     return(order.IsAvailable());
 }