public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS)
        {
            Effects.Orders.OrderWithUses TheOrder = (Effects.Orders.OrderWithUses)(((Entities.Effect_Entity)Performer).GetEffect());

            int numSalvos = TheOrder.GetNumUses(mActionIndex);

            TheOrder.SetUses(mActionIndex, numSalvos - 1);
            ((Entities.Unit)Selection[0]).Damage(mDamage);
        }
        protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI)
        {
            Effects.Orders.OrderWithUses TheOrder = (Effects.Orders.OrderWithUses)(((Entities.Effect_Entity)Performer).GetEffect());
            Entities.Unit TheTarget = (Entities.Unit)Selection[0];

            Modules.Target.TargettingData TD = new Modules.Target.TargettingData();
            TD.AttackType.Long = true;
            if (TheTarget.GetCurrentRange() == Range.Long)
            {
                TD.TargetType.Long = true;
            }
            else if (TheTarget.GetCurrentRange() == Range.Short)
            {
                TD.TargetType.Short = true;
            }
            int cost = 0;

            TheTarget.CheckTargetStatus(null, TD, ref cost);
            return(TheOrder.GetNumUses(mActionIndex) > 0 && TD.Result());
        }
        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();
        }