use of games.strategy.engine.data.ITestDelegateBridge in project triplea by triplea-game.
the class DiceRollTest method testSimple.
@Test
public void testSimple() {
final Territory westRussia = gameData.getMap().getTerritory("West Russia");
final MockBattle battle = new MockBattle(westRussia);
final PlayerID russians = GameDataTestUtil.russians(gameData);
final ITestDelegateBridge bridge = getDelegateBridge(russians);
final UnitType infantryType = GameDataTestUtil.infantry(gameData);
final List<Unit> infantry = infantryType.create(1, russians);
final Collection<TerritoryEffect> territoryEffects = TerritoryEffectHelper.getEffects(westRussia);
// infantry defends and hits at 1 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 1 }));
final DiceRoll roll = DiceRoll.rollDice(infantry, true, russians, bridge, battle, "", territoryEffects, null);
assertThat(roll.getHits(), is(1));
// infantry does not hit at 2 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 2 }));
final DiceRoll roll2 = DiceRoll.rollDice(infantry, true, russians, bridge, battle, "", territoryEffects, null);
assertThat(roll2.getHits(), is(0));
// infantry attacks and hits at 0 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 0 }));
final DiceRoll roll3 = DiceRoll.rollDice(infantry, false, russians, bridge, battle, "", territoryEffects, null);
assertThat(roll3.getHits(), is(1));
// infantry attack does not hit at 1 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 1 }));
final DiceRoll roll4 = DiceRoll.rollDice(infantry, false, russians, bridge, battle, "", territoryEffects, null);
assertThat(roll4.getHits(), is(0));
}
use of games.strategy.engine.data.ITestDelegateBridge in project triplea by triplea-game.
the class DiceRollTest method testAaLowLuck.
@Test
public void testAaLowLuck() {
GameDataTestUtil.makeGameLowLuck(gameData);
final Territory westRussia = gameData.getMap().getTerritory("West Russia");
final PlayerID russians = GameDataTestUtil.russians(gameData);
final PlayerID germans = GameDataTestUtil.germans(gameData);
final UnitType aaGunType = GameDataTestUtil.aaGun(gameData);
final List<Unit> aaGunList = aaGunType.create(1, germans);
GameDataTestUtil.addTo(westRussia, aaGunList);
final UnitType fighterType = GameDataTestUtil.fighter(gameData);
List<Unit> fighterList = fighterType.create(1, russians);
final ITestDelegateBridge bridge = getDelegateBridge(russians);
// aa hits at 0 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 0 }));
final DiceRoll hit = DiceRoll.rollAa(CollectionUtils.getMatches(fighterList, Matches.unitIsOfTypes(UnitAttachment.get(aaGunList.iterator().next().getType()).getTargetsAa(gameData))), aaGunList, bridge, westRussia, true);
assertThat(hit.getHits(), is(1));
// aa missses at 1 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 1 }));
final DiceRoll miss = DiceRoll.rollAa(CollectionUtils.getMatches(fighterList, Matches.unitIsOfTypes(UnitAttachment.get(aaGunList.iterator().next().getType()).getTargetsAa(gameData))), aaGunList, bridge, westRussia, true);
assertThat(miss.getHits(), is(0));
// 6 bombers, 1 should hit, and nothing should be rolled
bridge.setRandomSource(new ScriptedRandomSource(new int[] { ScriptedRandomSource.ERROR }));
fighterList = fighterType.create(6, russians);
final DiceRoll hitNoRoll = DiceRoll.rollAa(CollectionUtils.getMatches(fighterList, Matches.unitIsOfTypes(UnitAttachment.get(aaGunList.iterator().next().getType()).getTargetsAa(gameData))), aaGunList, bridge, westRussia, true);
assertThat(hitNoRoll.getHits(), is(1));
}
use of games.strategy.engine.data.ITestDelegateBridge in project triplea by triplea-game.
the class DiceRollTest method testAa.
@Test
public void testAa() {
final Territory westRussia = gameData.getMap().getTerritory("West Russia");
final PlayerID russians = GameDataTestUtil.russians(gameData);
final PlayerID germans = GameDataTestUtil.germans(gameData);
final UnitType aaGunType = GameDataTestUtil.aaGun(gameData);
final List<Unit> aaGunList = aaGunType.create(1, germans);
GameDataTestUtil.addTo(westRussia, aaGunList);
final ITestDelegateBridge bridge = getDelegateBridge(russians);
final List<Unit> bombers = bomber(gameData).create(1, british(gameData));
// aa hits at 0 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 0 }));
final DiceRoll hit = DiceRoll.rollAa(bomber(gameData).create(1, british(gameData)), aaGunList, bridge, westRussia, true);
assertThat(hit.getHits(), is(1));
// aa missses at 1 (0 based)
bridge.setRandomSource(new ScriptedRandomSource(new int[] { 1 }));
final DiceRoll miss = DiceRoll.rollAa(bombers, aaGunList, bridge, westRussia, true);
assertThat(miss.getHits(), is(0));
}
use of games.strategy.engine.data.ITestDelegateBridge in project triplea by triplea-game.
the class DiceRollTest method testLowLuck.
@Test
public void testLowLuck() {
GameDataTestUtil.makeGameLowLuck(gameData);
final Territory westRussia = gameData.getMap().getTerritory("West Russia");
final MockBattle battle = new MockBattle(westRussia);
final PlayerID russians = GameDataTestUtil.russians(gameData);
final ITestDelegateBridge bridge = getDelegateBridge(russians);
final UnitType infantryType = GameDataTestUtil.infantry(gameData);
final List<Unit> units = infantryType.create(3, russians);
// 3 infantry on defense should produce exactly one hit, without rolling the dice
bridge.setRandomSource(new ScriptedRandomSource(new int[] { ScriptedRandomSource.ERROR }));
final DiceRoll roll = DiceRoll.rollDice(units, true, russians, bridge, battle, "", TerritoryEffectHelper.getEffects(westRussia), null);
assertThat(roll.getHits(), is(1));
}
use of games.strategy.engine.data.ITestDelegateBridge in project triplea by triplea-game.
the class DiceRollTest method testHeavyBombersDefendLhtr.
@Test
public void testHeavyBombersDefendLhtr() {
gameData.getProperties().set(Constants.LHTR_HEAVY_BOMBERS, Boolean.TRUE);
final PlayerID british = GameDataTestUtil.british(gameData);
final ITestDelegateBridge testDelegateBridge = getDelegateBridge(british);
TechTracker.addAdvance(british, testDelegateBridge, TechAdvance.findAdvance(TechAdvance.TECH_PROPERTY_HEAVY_BOMBER, gameData, british));
final List<Unit> bombers = gameData.getMap().getTerritory("United Kingdom").getUnits().getMatches(Matches.unitIsStrategicBomber());
testDelegateBridge.setRandomSource(new ScriptedRandomSource(new int[] { 0, 1 }));
final Territory germany = gameData.getMap().getTerritory("Germany");
final DiceRoll dice = DiceRoll.rollDice(bombers, true, british, testDelegateBridge, new MockBattle(germany), "", TerritoryEffectHelper.getEffects(germany), null);
assertThat(dice.getRolls(1).size(), is(2));
assertThat(dice.getHits(), is(1));
assertThat(dice.getRolls(1).get(0).getType(), is(Die.DieType.HIT));
assertThat(dice.getRolls(1).get(1).getType(), is(Die.DieType.IGNORED));
}
Aggregations