public ReactOnEvaded(bool isDebuff, int numberOfUses, int maxDurationTurns, ReactiveTriggerScope triggerScope, IDictionary <int, Member> allMembers, int possessingMemberId, Member originator, ReactionCardType reaction) : base(isDebuff, maxDurationTurns, numberOfUses, CreateMaybeEffect(allMembers, possessingMemberId, originator, reaction, effect => effect.EffectData.EffectType == EffectType.Attack && effect.BattleBefore.Members[possessingMemberId].State.Counters["Evade"] > effect.BattleAfter.Members[possessingMemberId].State.Counters["Evade"] && triggerScope.IsInTriggerScope(originator, allMembers[possessingMemberId], effect.Source))) { }
public EffectOnEvaded(bool isDebuff, int numberOfUses, int maxDurationTurns, ReactiveTriggerScope triggerScope, ReactionCardType reaction) { _isDebuff = isDebuff; _numberOfUses = numberOfUses; _maxDurationTurns = maxDurationTurns; _triggerScope = triggerScope; _reaction = reaction; }
public static bool IsInTriggerScope(this ReactiveTriggerScope triggerScope, Member originator, Member possessor, Member triggerer) { if (triggerScope == ReactiveTriggerScope.Self) { return(possessor == triggerer); } if (triggerScope == ReactiveTriggerScope.Originator) { return(originator == triggerer); } if (triggerScope == ReactiveTriggerScope.Allies) { return(possessor.TeamType == triggerer.TeamType); } if (triggerScope == ReactiveTriggerScope.Enemies) { return(possessor.TeamType != triggerer.TeamType); } return(true); }
public EffectOnShieldBroken(bool isDebuff, int maxDurationTurns, ReactiveTriggerScope triggerScope, ReactionCardType reaction) { _isDebuff = isDebuff; _maxDurationTurns = maxDurationTurns; _reaction = reaction; }