diff options
Diffstat (limited to 'core/src/ch')
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Objective.java | 48 | 
1 files changed, 48 insertions, 0 deletions
| diff --git a/core/src/ch/asynk/tankontank/game/Objective.java b/core/src/ch/asynk/tankontank/game/Objective.java new file mode 100644 index 0000000..f7a6c3b --- /dev/null +++ b/core/src/ch/asynk/tankontank/game/Objective.java @@ -0,0 +1,48 @@ +package ch.asynk.tankontank.game; + +public class Objective +{ +    protected Army curArmy; +    protected Army prevArmy; +    private boolean persistent; + +    public Objective(Army army, boolean persistent) +    { +        this.curArmy = army; +        this.prevArmy = army; +        this.persistent = persistent; +    } + +    public boolean is(Army army) +    { +        return (curArmy == army); +    } + +    public Army army() +    { +        return curArmy; +    } + +    public boolean set(Army army) +    { +        if (army == curArmy) +            return false; +        prevArmy = curArmy; +        curArmy = army; +        return true; +    } + +    public boolean unset() +    { +        if (persistent) +            return false; +        revert(); +        return true; +    } + +    public Army revert() +    { +        curArmy = prevArmy; +        return curArmy; +    } +} | 
