public override bool IsValid(params ILegalPerson[] persons) { var legalPerson = GetSubjectPerson(persons); if (legalPerson == null) { AddReasonEntry($"{nameof(GetSubjectPerson)} returned nothing"); return(false); } var lpTypeName = legalPerson.GetLegalPersonTypeName(); if (Imminence != null && !Imminence.IsValid(persons)) { AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Imminence)} is false"); AddReasonEntryRange(Imminence.GetReasonEntries()); return(false); } if (Provocation != null && !Provocation.IsValid(persons)) { AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Provocation)} is false"); AddReasonEntryRange(Provocation.GetReasonEntries()); return(false); } if (Proportionality != null && !Proportionality.IsValid(persons)) { AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Proportionality)} is false"); AddReasonEntryRange(Proportionality.GetReasonEntries()); return(false); } AddReasonEntryRange(Imminence?.GetReasonEntries()); AddReasonEntryRange(Provocation?.GetReasonEntries()); AddReasonEntryRange(Proportionality?.GetReasonEntries()); return(true); }
public void OnCast() { foreach (var ability in CC.Card.Abilities) { switch (ability) { case Card.AbilityType.INSTANT_ACTIVE: CC.Card.CanAttack = true; if (CC.IsPlayerCard) { CC.Info.HighlightCard(true); } break; case Card.AbilityType.SHIELD: Shield.SetActive(true); break; case Card.AbilityType.PROVOCATION: Provocation.SetActive(true); break; } } }
public void OnCast() { foreach (var ability in CardController.Card.Abilities) { switch (ability) { case Card.abilityType.INSTANT_ACTIVE: CardController.Info.CanAttack = true; if (CardController.IsPlayerCard) { CardController.Info.HighlightCard(true); } break; case Card.abilityType.HOLY_SHIELD: Shield.SetActive(true); break; case Card.abilityType.PROVOCATION: Provocation.SetActive(true); break; case Card.abilityType.DAMAGE_ON_CAST: Debug.Log("Damage on Cast"); if (CardController.IsPlayerCard && GameManagerScr.Instance.EnemyFieldCards.Count > 0) { for (int i = GameManagerScr.Instance.EnemyFieldCards.Count - 1; i < 0; i--) { Debug.Log("Damage to " + GameManagerScr.Instance.EnemyFieldCards[i].name); CardController.GiveDamageTo(GameManagerScr.Instance.EnemyFieldCards[i], 2); } } else if (!CardController.IsPlayerCard && GameManagerScr.Instance.PlayerFieldCards.Count > 0) { for (int i = GameManagerScr.Instance.PlayerFieldCards.Count - 1; i < 0; i--) { Debug.Log("Damage to " + GameManagerScr.Instance.EnemyFieldCards[i].name); CardController.GiveDamageTo(GameManagerScr.Instance.PlayerFieldCards[i], 2); } } break; default: break; } } }
protected DefenseOfBase(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson) { Provocation = new Provocation(GetSubjectPerson); Imminence = new Imminence(GetSubjectPerson); Proportionality = new Proportionality <ITermCategory>(GetSubjectPerson); }