Esempio n. 1
0
 public EffectResolved(EffectData e, Member src, Target target, BattleStateSnapshot before, BattleStateSnapshot after)
 {
     EffectData   = e;
     Source       = src;
     Target       = target;
     BattleBefore = before;
     BattleAfter  = after;
 }
Esempio n. 2
0
    public IPayloadProvider Resolve(BattleStateSnapshot beforeCard, Member source, Target target, Group @group, Scope scope, int amountPaid)
    {
        var applicapleMembers = target.Members.Where(x => x.State[TemporalStatType.HP] < x.State.MaxHp() * _percentage).ToArray();

        if (applicapleMembers.Any())
        {
            return(_effect.Play(source, new Multiple(applicapleMembers), group, scope, amountPaid));
        }
        return(new NoPayload());
    }
 public IPayloadProvider Resolve(BattleStateSnapshot beforeCard, Member source, Target target, Group @group, Scope scope, int amountPaid)
 {
     if (source.State[new InMemoryResourceType {
                          Name = _resource
                      }] >= _amount)
     {
         return(_effect.Play(source, target, group, scope, amountPaid));
     }
     return(new NoPayload());
 }
Esempio n. 4
0
    public static void ApplyEffectAndReactions(EffectData e, Member source, Member target)
    {
        var battleSnapshotBefore = new BattleStateSnapshot(target.GetSnapshot());

        AllEffects.Apply(e, source, target);
        var battleSnapshotAfter = new BattleStateSnapshot(target.GetSnapshot());

        var effectResolved = new EffectResolved(e, source, new Single(target), battleSnapshotBefore, battleSnapshotAfter);

        var reactions = target.State.GetReactions(effectResolved);

        reactions.ForEach(r => r.Reaction.ActionSequence.CardActions.Actions.Where(a => a.Type == CardBattleActionType.Battle)
                          .ForEach(be => AllEffects.Apply(be.BattleEffect, r.Source, r.Target)));
    }
Esempio n. 5
0
 public BattleStateChanged(BattleStateSnapshot before, BattleState after)
 {
     Before = before;
     State  = after;
 }
Esempio n. 6
0
 public static void InitCardPlaying(BattleStateSnapshot beforeCard) => _beforeCard = beforeCard;
Esempio n. 7
0
 public IPayloadProvider Resolve(BattleStateSnapshot beforeCard, Member source, Target target, Group @group, Scope scope, int amountPaid)
 => new MultiplePayloads(new IPayloadProvider[0]);