summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/tankontank/game/Factory.java142
1 files changed, 74 insertions, 68 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Factory.java b/core/src/ch/asynk/tankontank/game/Factory.java
index 66c19c9..cecfab6 100644
--- a/core/src/ch/asynk/tankontank/game/Factory.java
+++ b/core/src/ch/asynk/tankontank/game/Factory.java
@@ -8,6 +8,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.GridPoint2;
+import ch.asynk.tankontank.TankOnTank;
import ch.asynk.tankontank.engine.Board;
import ch.asynk.tankontank.engine.Orientation;
import ch.asynk.tankontank.game.Unit.UnitId;
@@ -15,17 +16,70 @@ import ch.asynk.tankontank.game.Unit.UnitType;
public class Factory implements Board.TileBuilder, Disposable
{
- private TextureAtlas pawnAtlas;
+ public enum MapType
+ {
+ MAP_A,
+ MAP_B
+ }
+
+ public enum Scenarios
+ {
+ FAKE
+ }
+
+ private TextureAtlas atlas;
- public Factory(AssetManager manager)
+ public void setAtlas(TextureAtlas atlas)
{
- pawnAtlas = manager.get("data/assets.atlas", TextureAtlas.class);
+ this.atlas = atlas;
}
@Override
public void dispose()
{
- pawnAtlas.dispose();
+ atlas.dispose();
+ }
+
+ private Board.Config config()
+ {
+ Board.Config cfg = new Board.Config();
+ cfg.cols = 10;
+ cfg.rows = 9;
+ cfg.x0 = 272;
+ cfg.y0 = 182;
+ cfg.w = 189;
+ cfg.dw = 94;
+ cfg.s = 110;
+ cfg.dh = 53.6f;
+ cfg.h = cfg.s + cfg.dh;
+ cfg.slope = (cfg.dh / (float) cfg.dw);
+
+ return cfg;
+ }
+
+ public Map getMap(final TankOnTank game, MapType t)
+ {
+ Board.Config cfg = config();
+
+ Map m = null;
+ switch(t) {
+ case MAP_A:
+ m = new MapA(game, config(), "data/map_a.png");
+ break;
+ case MAP_B:
+ m = new MapB(game, config(), "data/map_b.png");
+ break;
+ }
+
+ return m;
+ }
+
+ public Player getPlayer(Army army)
+ {
+ if (army == Army.US)
+ return new Player(Army.US, atlas, "us-flag", 10);
+ else
+ return new Player(Army.GE, atlas, "ge-flag", 10);
}
public Unit getUnit(UnitId id)
@@ -36,111 +90,63 @@ public class Factory implements Board.TileBuilder, Disposable
switch(id) {
case GE_AT_GUN:
ut = UnitType.AT_GUN;
- u = new Unit(Army.GE, id, ut, 3, 8, 9, 1, pawnAtlas, "ge-at-gun", "head");
+ u = new Unit(Army.GE, id, ut, 3, 8, 9, 1, atlas, "ge-at-gun", "head");
break;
case GE_INFANTRY:
ut = UnitType.INFANTRY;
- u = new Unit(Army.GE, id, ut, 1, 7, 10, 1, pawnAtlas, "ge-infantry", "head");
+ u = new Unit(Army.GE, id, ut, 1, 7, 10, 1, atlas, "ge-infantry", "head");
break;
case GE_KINGTIGER:
- u = new Unit(Army.GE, id, ut, 3, 12, 1, pawnAtlas, "ge-kingtiger", "head");
+ u = new Unit(Army.GE, id, ut, 3, 12, 1, atlas, "ge-kingtiger", "head");
break;
case GE_PANZER_IV:
- u = new Unit(Army.GE, id, ut, 2, 9, 2, pawnAtlas, "ge-panzer-iv", "head");
+ u = new Unit(Army.GE, id, ut, 2, 9, 2, atlas, "ge-panzer-iv", "head");
break;
case GE_PANZER_IV_HQ:
- u = new Unit(Army.GE, id, utHq, 2, 9, 2, pawnAtlas, "ge-panzer-iv-hq", "head");
+ u = new Unit(Army.GE, id, utHq, 2, 9, 2, atlas, "ge-panzer-iv-hq", "head");
break;
case GE_TIGER:
- u = new Unit(Army.GE, id, ut, 3, 11, 1, pawnAtlas, "ge-tiger", "head");
+ u = new Unit(Army.GE, id, ut, 3, 11, 1, atlas, "ge-tiger", "head");
break;
case GE_WESPE:
ut = UnitType.ARTILLERY;
- u = new Unit(Army.GE, id, ut, 5, 8, 1, pawnAtlas, "ge-wespe", "head");
+ u = new Unit(Army.GE, id, ut, 5, 8, 1, atlas, "ge-wespe", "head");
break;
case US_AT_GUN:
ut = UnitType.AT_GUN;
- u = new Unit(Army.US, id, ut, 1, 7, 10, 1, pawnAtlas, "us-at-gun", "head");
+ u = new Unit(Army.US, id, ut, 1, 7, 10, 1, atlas, "us-at-gun", "head");
break;
case US_INFANTRY:
ut = UnitType.INFANTRY;
- u = new Unit(Army.US, id, ut, 1, 7, 10, 1, pawnAtlas, "us-infantry", "head");
+ u = new Unit(Army.US, id, ut, 1, 7, 10, 1, atlas, "us-infantry", "head");
break;
case US_PERSHING:
- u = new Unit(Army.US, id, ut, 3, 10, 2, pawnAtlas, "us-pershing", "head");
+ u = new Unit(Army.US, id, ut, 3, 10, 2, atlas, "us-pershing", "head");
break;
case US_PERSHING_HQ:
- u = new Unit(Army.US, id, utHq, 3, 10, 2, pawnAtlas, "us-pershing-hq", "head");
+ u = new Unit(Army.US, id, utHq, 3, 10, 2, atlas, "us-pershing-hq", "head");
break;
case US_PRIEST:
ut = UnitType.ARTILLERY;
- u = new Unit(Army.US, id, ut, 5, 8, 1, pawnAtlas, "us-priest", "head");
+ u = new Unit(Army.US, id, ut, 5, 8, 1, atlas, "us-priest", "head");
break;
case US_SHERMAN:
- u = new Unit(Army.US, id, ut, 2, 9, 2, pawnAtlas, "us-sherman", "us-sherman-head");
+ u = new Unit(Army.US, id, ut, 2, 9, 2, atlas, "us-sherman", "us-sherman-head");
break;
case US_SHERMAN_HQ:
- u = new Unit(Army.US, id, utHq, 2, 9, 2, pawnAtlas, "us-sherman-hq", "head");
+ u = new Unit(Army.US, id, utHq, 2, 9, 2, atlas, "us-sherman-hq", "head");
break;
case US_WOLVERINE:
- u = new Unit(Army.US, id, ut, 3, 8, 3, pawnAtlas, "us-wolverine", "head");
+ u = new Unit(Army.US, id, ut, 3, 8, 3, atlas, "us-wolverine", "head");
break;
}
return u;
}
- public enum MapType
- {
- MAP_A,
- MAP_B
- }
-
- private Board.Config config()
- {
- Board.Config cfg = new Board.Config();
- cfg.cols = 10;
- cfg.rows = 9;
- cfg.x0 = 272;
- cfg.y0 = 182;
- cfg.w = 189;
- cfg.dw = 94;
- cfg.s = 110;
- cfg.dh = 53.6f;
- cfg.h = cfg.s + cfg.dh;
- cfg.slope = (cfg.dh / (float) cfg.dw);
-
- return cfg;
- }
-
- public Map getMap(Ctrl ctrl, AssetManager manager, MapType t)
- {
- Board.Config cfg = config();
-
- Map m = null;
- switch(t) {
- case MAP_A:
- m = new MapA(ctrl, this, config(), manager, "data/map_a.png");
- break;
- case MAP_B:
- m = new MapB(ctrl, this, config(), manager, "data/map_b.png");
- break;
- }
-
- return m;
- }
-
- public Player getPlayer(Army army)
- {
- if (army == Army.US)
- return new Player(Army.US, pawnAtlas, "us-flag", 10);
- else
- return new Player(Army.GE, pawnAtlas, "ge-flag", 10);
- }
-
public Hex getNewTile(float cx, float cy)
{
- return new Hex(cx, cy, pawnAtlas);
+ return new Hex(cx, cy, atlas);
}
public Player fakeSetup(Map map, Player gePlayer, Player usPlayer)