diff options
Diffstat (limited to 'core/src/ch/asynk/rustanddust/game')
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/Factory.java | 2 | ||||
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/battles/Battle00.java | 121 | ||||
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/battles/BattleTest.java | 2 |
3 files changed, 124 insertions, 1 deletions
diff --git a/core/src/ch/asynk/rustanddust/game/Factory.java b/core/src/ch/asynk/rustanddust/game/Factory.java index eb3cb39..83968f6 100644 --- a/core/src/ch/asynk/rustanddust/game/Factory.java +++ b/core/src/ch/asynk/rustanddust/game/Factory.java @@ -9,6 +9,7 @@ import ch.asynk.rustanddust.engine.Board; import ch.asynk.rustanddust.game.Unit.UnitId; import ch.asynk.rustanddust.game.Unit.UnitType; import ch.asynk.rustanddust.game.battles.Map00; +import ch.asynk.rustanddust.game.battles.Battle00; import ch.asynk.rustanddust.game.battles.BattleTest; public class Factory implements Board.TileBuilder, Disposable @@ -51,6 +52,7 @@ public class Factory implements Board.TileBuilder, Disposable this.game = game; this.assetsLoaded = false; battles = new Battle[] { + new Battle00(this), new BattleTest(this), }; } diff --git a/core/src/ch/asynk/rustanddust/game/battles/Battle00.java b/core/src/ch/asynk/rustanddust/game/battles/Battle00.java new file mode 100644 index 0000000..d94c1ad --- /dev/null +++ b/core/src/ch/asynk/rustanddust/game/battles/Battle00.java @@ -0,0 +1,121 @@ +package ch.asynk.rustanddust.game.battles; + +import ch.asynk.rustanddust.game.Army; +import ch.asynk.rustanddust.game.Player; +import ch.asynk.rustanddust.game.Map; +import ch.asynk.rustanddust.game.Zone; +import ch.asynk.rustanddust.game.Unit.UnitId; +import ch.asynk.rustanddust.game.Factory; +import ch.asynk.rustanddust.ui.Position; +import ch.asynk.rustanddust.engine.Orientation; + +public class Battle00 extends BattleCommon +{ + public Battle00(Factory factory) + { + super(factory); + name = "Les Fleurs du mal"; + mapType = Factory.MapType.MAP_00; + } + + @Override + public Position getHudPosition() + { + return (currentPlayer.is(Army.US) ? Position.TOP_RIGHT: Position.TOP_LEFT); + } + + @Override + public void start() + { + map.actionDone(); + map.turnDone(); + usPlayer.turnEnd(); + gePlayer.turnEnd(); + currentPlayer = usPlayer; + } + + @Override + public Player getWinner() + { + if (!abTurnDone()) + return null; + + if (gePlayer.unitsLeft() == 0) + return usPlayer; + if (usPlayer.unitsLeft() == 0) + return gePlayer; + + if (gePlayer.getTurnDone() <= 8) + return null; + + usPlayer.objectivesWon = map.objectivesCount(Army.US); + gePlayer.objectivesWon = map.objectivesCount(Army.GE); + + if (usPlayer.objectivesWon >= gePlayer.objectivesWon) { + return usPlayer; + } else { + return gePlayer; + } + } + + @Override + public boolean hasReinforcement() + { + return false; + } + + @Override + public Map setup() + { + super.setup(); + + map.addHoldObjective(5, 2, Army.NONE); + map.addObjective(11, 7, Army.US); + + currentPlayer = usPlayer; + setUnit(map, usPlayer, UnitId.US_AT_GUN, 11, 7, Orientation.SOUTH, null); + + Zone usEntry = new Zone(map, 10); + usEntry.orientation = Orientation.SOUTH; + usEntry.add(map.getHex(8, 0)); + usEntry.add(map.getHex(9, 0)); + usEntry.add(map.getHex(8, 1)); + usEntry.add(map.getHex(9, 1)); + usEntry.add(map.getHex(9, 2)); + usEntry.add(map.getHex(10, 2)); + usEntry.add(map.getHex(9, 3)); + usEntry.add(map.getHex(10, 3)); + usEntry.add(map.getHex(10, 4)); + usEntry.add(map.getHex(11, 4)); + addEntryZone(usEntry); + addReinforcement(usPlayer, usEntry, UnitId.US_SHERMAN, true, false); + addReinforcement(usPlayer, usEntry, UnitId.US_SHERMAN); + addReinforcement(usPlayer, usEntry, UnitId.US_SHERMAN); + addReinforcement(usPlayer, usEntry, UnitId.US_SHERMAN); + addReinforcement(usPlayer, usEntry, UnitId.US_WOLVERINE, true, false); + addReinforcement(usPlayer, usEntry, UnitId.US_WOLVERINE); + addReinforcement(usPlayer, usEntry, UnitId.US_PERSHING); + addReinforcement(usPlayer, usEntry, UnitId.US_PRIEST); + + Zone geEntry = new Zone(map, 8); + geEntry.orientation = Orientation.NORTH; + geEntry.add(map.getHex(4, 8)); + geEntry.add(map.getHex(5, 8)); + geEntry.add(map.getHex(4, 7)); + geEntry.add(map.getHex(5, 7)); + geEntry.add(map.getHex(3, 6)); + geEntry.add(map.getHex(4, 6)); + geEntry.add(map.getHex(3, 5)); + geEntry.add(map.getHex(4, 5)); + addEntryZone(geEntry); + addReinforcement(gePlayer, geEntry, UnitId.GE_PANZER_IV, true, false); + addReinforcement(gePlayer, geEntry, UnitId.GE_PANZER_IV); + addReinforcement(gePlayer, geEntry, UnitId.GE_PANZER_IV); + addReinforcement(gePlayer, geEntry, UnitId.GE_PANZER_IV, true, false); + addReinforcement(gePlayer, geEntry, UnitId.GE_TIGER); + addReinforcement(gePlayer, geEntry, UnitId.GE_TIGER); + addReinforcement(gePlayer, geEntry, UnitId.GE_WESPE); + + return this.map; + } +} diff --git a/core/src/ch/asynk/rustanddust/game/battles/BattleTest.java b/core/src/ch/asynk/rustanddust/game/battles/BattleTest.java index 26fd14a..475d154 100644 --- a/core/src/ch/asynk/rustanddust/game/battles/BattleTest.java +++ b/core/src/ch/asynk/rustanddust/game/battles/BattleTest.java @@ -16,7 +16,7 @@ public class BattleTest extends BattleCommon public BattleTest(Factory factory) { super(factory); - name = "* Beta Test *"; + name = "* Alpha Test *"; mapType = Factory.MapType.MAP_00; } |