summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/rustanddust/game
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/rustanddust/game')
-rw-r--r--core/src/ch/asynk/rustanddust/game/Factory.java2
-rw-r--r--core/src/ch/asynk/rustanddust/game/battles/Battle00.java121
-rw-r--r--core/src/ch/asynk/rustanddust/game/battles/BattleTest.java2
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;
}