#ifndef CREATURELIB_TURNHANDLER_HPP #define CREATURELIB_TURNHANDLER_HPP #include "../Models/ExecutingAttack.hpp" #include "../TurnChoices/AttackTurnChoice.hpp" #include "../TurnChoices/FleeTurnChoice.hpp" #include "../TurnChoices/ItemTurnChoice.hpp" #include "../TurnChoices/SwitchTurnChoice.hpp" #include "ChoiceQueue.hpp" namespace CreatureLib::Battling { class Battle; class TurnHandler { static void ExecuteChoice(const ArbUt::BorrowedPtr& choice); static void ExecuteAttackChoice(const ArbUt::BorrowedPtr& choice); static void HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::BorrowedPtr& target); static void ExecuteSwitchChoice(const ArbUt::BorrowedPtr& choice); static void ExecuteFleeChoice(const ArbUt::BorrowedPtr& choice); static void ExecuteItemChoice(const ArbUt::BorrowedPtr& choice); public: static void RunTurn(const ArbUt::BorrowedPtr& queue, const ArbUt::BorrowedPtr& battle); }; } #endif // CREATURELIB_TURNHANDLER_HPP