summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/engine/Objective.java
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2015-01-21 10:52:33 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2015-01-21 10:52:33 +0100
commitab76defa6334d83ba2d73a3adfad1d697061c1e4 (patch)
tree240e0d56b9bc230eff4603eaf1337d59563ad0bf /core/src/ch/asynk/tankontank/engine/Objective.java
parent773e6c2b462eb5390d7b3c5f8a85bef95562575e (diff)
downloadRustAndDust-ab76defa6334d83ba2d73a3adfad1d697061c1e4.zip
RustAndDust-ab76defa6334d83ba2d73a3adfad1d697061c1e4.tar.gz
Objective[Set]: move from game to engine package
Diffstat (limited to 'core/src/ch/asynk/tankontank/engine/Objective.java')
-rw-r--r--core/src/ch/asynk/tankontank/engine/Objective.java49
1 files changed, 49 insertions, 0 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Objective.java b/core/src/ch/asynk/tankontank/engine/Objective.java
new file mode 100644
index 0000000..1686122
--- /dev/null
+++ b/core/src/ch/asynk/tankontank/engine/Objective.java
@@ -0,0 +1,49 @@
+package ch.asynk.tankontank.engine;
+
+public class Objective
+{
+ protected Faction curFaction;
+ protected Faction prevFaction;
+ private boolean persistent;
+
+ public Objective(Faction faction, boolean persistent)
+ {
+ this.curFaction = faction;
+ this.prevFaction = faction;
+ this.persistent = persistent;
+ }
+
+ public boolean is(Faction faction)
+ {
+ return (curFaction == faction);
+ }
+
+ public Faction faction()
+ {
+ return curFaction;
+ }
+
+ public boolean set(Faction faction)
+ {
+ if (faction == curFaction)
+ return false;
+
+ prevFaction = curFaction;
+ curFaction = faction;
+ return true;
+ }
+
+ public boolean unset()
+ {
+ if (persistent)
+ return false;
+ revert();
+ return true;
+ }
+
+ public Faction revert()
+ {
+ curFaction = prevFaction;
+ return curFaction;
+ }
+}