+
+ switch (ac.GetType()) {
+ case AttackChoice::SWORD:
+ battle->HeroAnimationAt(cursor) = Animation(
+ battle->HeroAt(cursor).Sprite(),
+ battle->HeroAt(cursor).AttackFrameTime(),
+ battle->HeroAt(cursor).AttackFrames(), 2);
+ break;
+ case AttackChoice::MAGIC:
+ battle->HeroAnimationAt(cursor) = Animation(
+ battle->HeroAt(cursor).Sprite(),
+ battle->HeroAt(cursor).SpellFrameTime(),
+ battle->HeroAt(cursor).SpellFrames(), 3);
+ break;
+ case AttackChoice::DEFEND:
+ break;
+ case AttackChoice::IKARI:
+ if (ac.GetItem()->HasIkari()) {
+ if (ac.GetItem()->GetIkari()->IsMagical()) {
+ battle->HeroAnimationAt(cursor) = Animation(
+ battle->HeroAt(cursor).Sprite(),
+ battle->HeroAt(cursor).SpellFrameTime(),
+ battle->HeroAt(cursor).SpellFrames(), 3);
+ } else {
+ battle->HeroAnimationAt(cursor) = Animation(
+ battle->HeroAt(cursor).Sprite(),
+ battle->HeroAt(cursor).AttackFrameTime(),
+ battle->HeroAt(cursor).AttackFrames(), 2);
+ }
+ }
+ break;
+ case AttackChoice::ITEM:
+ break;
+ case AttackChoice::UNDECIDED:
+ break;
+ }
+ battle->HeroAnimationAt(cursor).Start(*this);
+