summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/ch/asynk/rustanddust/game/battles/Map00.java2
-rw-r--r--core/src/ch/asynk/rustanddust/game/battles/MapRules.java117
2 files changed, 1 insertions, 118 deletions
diff --git a/core/src/ch/asynk/rustanddust/game/battles/Map00.java b/core/src/ch/asynk/rustanddust/game/battles/Map00.java
index da1b664..db126cf 100644
--- a/core/src/ch/asynk/rustanddust/game/battles/Map00.java
+++ b/core/src/ch/asynk/rustanddust/game/battles/Map00.java
@@ -6,7 +6,7 @@ import ch.asynk.rustanddust.engine.Orientation;
import ch.asynk.rustanddust.game.Map;
import ch.asynk.rustanddust.game.Hex;
-public class Map00 extends MapRules
+public class Map00 extends Map
{
public Map00(final RustAndDust game, String map, String hex)
{
diff --git a/core/src/ch/asynk/rustanddust/game/battles/MapRules.java b/core/src/ch/asynk/rustanddust/game/battles/MapRules.java
deleted file mode 100644
index 89af8bd..0000000
--- a/core/src/ch/asynk/rustanddust/game/battles/MapRules.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package ch.asynk.rustanddust.game.battles;
-
-import ch.asynk.rustanddust.RustAndDust;
-
-import ch.asynk.rustanddust.game.Map;
-import ch.asynk.rustanddust.game.Unit;
-import ch.asynk.rustanddust.game.Engagement;
-
-abstract public class MapRules extends Map
-{
- public MapRules(final RustAndDust game, String map, String hex)
- {
- super(game, map, hex);
- }
-
- @Override
- public void init()
- {
- actionDone();
- }
-
- @Override
- public void turnDone()
- {
- RustAndDust.debug("TurnDone", String.format(" Processed Commands : %d", commandsSize()));
-
- if (objectives.modifiedCount() > 0)
- throw new RuntimeException("objectives not cleared");
-
- // FIXME do something with these Commands
- commandsClear();
- }
-
- @Override
- public void actionDone()
- {
- objectives.forget();
- }
-
- @Override
- protected int engagementCost(Engagement e)
- {
- if ((activatedUnits.size() == 1) && e.attacker.isA(Unit.UnitType.AT_GUN) && e.defender.isHardTarget())
- return 0;
- return 1;
- }
-
- @Override
- protected void resolveEngagement(Engagement e)
- {
- int dice = e.d1 + e.d2;
-
- int distance = 0;
- boolean mayReroll = false;
- boolean night = meteorology.isNight();
- boolean flankAttack = false;
- boolean terrainBonus = true;
-
- for (Unit unit : activatedUnits) {
- if (unit != e.attacker)
- e.addAssist(unit);
- if (unit.isAce())
- mayReroll = true;
- if (unit.isFlankAttack())
- flankAttack = true;
- if (unit.preventDefenseOn(e.defender.getTile()))
- terrainBonus = false;
- if (night) {
- if (distance < unit.attackDistance())
- distance = unit.attackDistance();
- }
- }
-
- int cnt = activatedUnits.size();
- int def = e.defender.getDefense(e.attacker.getTile());
- int flk = (flankAttack ? Unit.FLANK_ATTACK_BONUS : 0);
- int tdf = (terrainBonus ? e.defender.getTile().defense() : 0);
- int wdf = 0;
- if (night) {
- if (distance > 3)
- wdf = 3;
- else if (distance > 2)
- wdf = 2;
- else if (distance > 1)
- wdf = 1;
- }
- int s1 = (dice + cnt + flk);
- int s2 = (def + tdf + wdf);
-
- boolean success = false;
- if (dice == 2) {
- success = false;
- } else if (dice == 12) {
- success = true;
- } else {
- success = (s1 >= s2);
- }
- if (!success && mayReroll) {
- dice = e.d3 + e.d4;
- s1 = (dice + cnt + flk);
- if (dice == 2) {
- success = false;
- } else if (dice == 12) {
- success = true;
- } else {
- success = (s1 >= s2);
- }
- } else {
- e.d3 = 0;
- e.d4 = 0;
- }
-
- e.set(cnt, flk, def, tdf, wdf);
- e.success = success;
- }
-
-}