public void TestUnitDelay() { var battle = new TestBattle(new BattleTeam(FastUnit), new BattleTeam(WeakUnit)); var result = battle.AutoRun.RunAllRounds(); var fastAttacks = result.Turns.Where(r => r.Actions.Any(a => a.Unit.UnitID == FastUnit.Id)).ToList(); var weakAttacks = result.Turns.Where(r => r.Actions.Any(a => a.Unit.UnitID == WeakUnit.Id)).ToList(); Assert.That(fastAttacks.Count() > weakAttacks.Count()); }
public void TestFasterActFirst() { var battle = new TestBattle(new BattleTeam(WeakUnit), new BattleTeam(FastUnit)); Assert.AreEqual(battle.NextUnitToAct.UnitID, FastUnit.Id); var lastAction = battle.AutoRun.PlayOneTurn().Last(); Assert.AreEqual(lastAction.Unit.UnitID, FastUnit.Id); Assert.AreEqual(lastAction.Unit.RT, lastAction.Unit.GetMaxRT() * 2); }
public void TestUnitsOrderingSameSpeed() { var battle = new TestBattle(new BattleTeam(StrongUnit), new BattleTeam(WeakUnit)); var first = battle.NextUnitToAct; Assert.AreEqual(first.RT, first.GetMaxRT()); battle.AutoRun.PlayOneTurn(); var second = battle.NextUnitToAct; Assert.AreNotEqual(first, second); Assert.AreEqual(first.GetMaxRT() * 2, first.RT); Assert.AreEqual(second.GetMaxRT(), second.RT); }
public void TestDelayProportion() { FastUnit.Stats.Speed = 10; FastUnit.Stats.HP = 50; SlowUnit.Stats.Speed = 5; SlowUnit.Stats.HP = 50; var battle = new TestBattle(new BattleTeam(FastUnit), new BattleTeam(SlowUnit)); var result = battle.AutoRun.RunAllRounds(); var fastAttacks = result.Turns.Where(r => r.Actions.Any(a => a.Unit.UnitID == FastUnit.Id)).ToList(); var slowAttacks = result.Turns.Where(r => r.Actions.Any(a => a.Unit.UnitID == SlowUnit.Id)).ToList(); Assert.AreEqual(50, fastAttacks.Count()); Assert.That(slowAttacks.Count() < 49); }