#ifndef BATTLE_ATTACKCHOICE_H_
#define BATTLE_ATTACKCHOICE_H_
+#include "TargetSelection.h"
+#include "../common/fwd.h"
+
namespace battle {
class AttackChoice {
};
public:
- AttackChoice() : type(UNDECIDED) { }
+ explicit AttackChoice(BattleState *b = 0) : thing(0), selection(b), type(UNDECIDED) { }
~AttackChoice() { }
public:
Type GetType() const { return type; }
void SetType(Type t) { type = t; }
+ const common::Item *GetItem() const { return (const common::Item *)thing; }
+ void SetItem(const common::Item *i) { thing = i; }
+ const common::Spell *GetSpell() const { return (const common::Spell *)thing; }
+ void SetSpell(const common::Spell *s) { thing = s; }
+ TargetSelection &Selection() { return selection; }
+ const TargetSelection &Selection() const { return selection; }
+
+ void Reset();
private:
+ const void *thing;
+ TargetSelection selection;
Type type;
};