protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI) { Entities.Unit attacker = (Entities.Unit)Performer; Entities.Unit target = (Entities.Unit)Selection[0]; if (Performer.IsUnit() && Selection[0].IsUnit() && Performer.GetOwnerIndex() != Selection[0].GetOwnerIndex() && TI.GetCPI() == Performer.GetOwnerIndex() && !attacker.HasStatus("Can't attack")) { return(attacker.CanAttack(target) != -1); } else { return(false); } }
protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI) { if (TI.GetCPI() == Performer.GetOwnerIndex() && Performer.IsUnit() && !((Unit)Performer).HasStatus("Moved")) { return(true); } return(false); }
protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI) { if (Performer.GetOwnerIndex() == TI.GetCPI() && Performer.IsUnit() && Selection[0].IsUnit()) { Unit AUnit = (Unit)Performer; Unit TUnit = (Unit)Selection[0]; return(AUnit.GetCurrentRange() == TUnit.GetCurrentRange() && !AUnit.HasStatus("Attached this turn") && !TUnit.HasStatus("Attached:") && TUnit.IsClass("Infantry")); } return(false); }
protected override bool CheckValidityInternal(Entities.Entity Performer, List <Entities.Entity> Selection, TurnInfo TI) { if (Performer.GetOwnerIndex() == TI.GetCPI() && TI.IsMulligan) { int usedMulligans, maxMulligans; Performer.Owner.GetMulliganInfo(out usedMulligans, out maxMulligans); return(usedMulligans < maxMulligans); } else { return(false); } }
public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS) { if (mUniqueEntity) { bool isUnique = true; if (mRange != Range.NA) { foreach (Entity E in Performer.Owner.mBoard.RangeZones[(int)mRange].List.Cards) { if (E.Name == mSpawnEntityName) { isUnique = false; } } } else if (mZoneType == ZoneType.Effect) { foreach (Effects.EffectNode EN in Performer.Owner.mEffects.Nodes) { if (EN.UniqueName == mSpawnEntityName) { isUnique = false; } } } if (!isUnique) { return; } } Entities.Entity[] spawnedEnities = new Entities.Entity[mSpawnEntityNumber]; CardZoneType zoneToPlace = new CardZoneType(mZoneType, mRange, Performer.GetOwnerIndex()); for (int i = 0; i < mSpawnEntityNumber; i++) { spawnedEnities[i] = Loading.CardLoading.ProduceCard(mSpawnEntityName, State.StateHolder.StateManager.CardPool); spawnedEnities[i].Owner = Performer.Owner; spawnedEnities[i].SetIsGeneratedEntity(); GS.CardPlaced(zoneToPlace, spawnedEnities[i]); } }
public override void Execute(Entities.Entity Performer, List <Entities.Entity> Selection, CardGameState GS) { List <Modules.Module> AttachedModule = ((Unit)Performer).GetModules(ModuleType.Targetting, typeof(Modules.Target.Attached)); if (AttachedModule.Count > 0) { AttachedModule[0].Message(); } if (Performer.Zone.getRange() == Range.Short) { Performer.Zone = GS.Players[Performer.GetOwnerIndex()].mBoard.RangeZones[(int)Range.Long].Type; GS.Players[Performer.GetOwnerIndex()].RemoveFromList(Performer); GS.Players[Performer.GetOwnerIndex()].mBoard.RangeZones[(int)Range.Long].List.AddCard(Performer); } else { Performer.Zone = GS.Players[Performer.GetOwnerIndex()].mBoard.RangeZones[(int)Range.Short].Type; GS.Players[Performer.GetOwnerIndex()].RemoveFromList(Performer); GS.Players[Performer.GetOwnerIndex()].mBoard.RangeZones[(int)Range.Short].List.AddCard(Performer); } ((Unit)Performer).AddStatus("Moved"); }