+
+ switch (ac.GetType()) {
+ case AttackChoice::SWORD:
+ if (battle->HeroAt(cursor).AttackAnimation()) {
+ battle->HeroAt(cursor).AttackAnimation()->Start(*this);
+ }
+ break;
+ case AttackChoice::MAGIC:
+ if (battle->HeroAt(cursor).SpellAnimation()) {
+ battle->HeroAt(cursor).SpellAnimation()->Start(*this);
+ }
+ break;
+ case AttackChoice::DEFEND:
+ break;
+ case AttackChoice::IKARI:
+ if (ac.GetItem()->HasIkari()) {
+ if (ac.GetItem()->GetIkari()->IsMagical()) {
+ if (battle->HeroAt(cursor).SpellAnimation()) {
+ battle->HeroAt(cursor).SpellAnimation()->Start(*this);
+ }
+ } else {
+ if (battle->HeroAt(cursor).AttackAnimation()) {
+ battle->HeroAt(cursor).AttackAnimation()->Start(*this);
+ }
+ }
+ }
+ break;
+ case AttackChoice::ITEM:
+ break;
+ case AttackChoice::UNDECIDED:
+ break;
+ }
+