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(); }