コード例 #1
0
ファイル: Attack.cs プロジェクト: artrey/battle-engine
        public override void Act(Battle battle, UnitsStack stack, params UnitsStack[] stacks)
        {
            if (!Validate(battle, stack, stacks))
            {
                throw new InvalidDataException("Not allowed action");
            }

            foreach (var enemy in stacks)
            {
                Hit(stack, enemy);
            }

            foreach (var enemy in stacks.Where(enemy => CanRetaliate(stack, enemy)))
            {
                Hit(enemy, stack);
                enemy.AddTemporaryModifier(new AlreadyRetaliate(), new TurnModifierChecker(1));
            }

            stack.AddTemporaryModifier(new AlreadyAct(), new TurnModifierChecker(1));
        }
コード例 #2
0
ファイル: Wait.cs プロジェクト: artrey/battle-engine
 public override void Act(Battle battle, UnitsStack stack, params UnitsStack[] stacks)
 => stack.AddTemporaryModifier(new Modifiers.AlreadyWait(), new TurnModifierChecker(1));
コード例 #3
0
ファイル: Cast.cs プロジェクト: artrey/battle-engine
 public override void Act(Battle battle, UnitsStack stack, params UnitsStack[] stacks)
 {
     throw new System.NotImplementedException();
     stack.AddTemporaryModifier(new AlreadyAct(), new TurnModifierChecker(1));
 }