28 lines
975 B
C++
28 lines
975 B
C++
#ifndef CREATURELIB_TURNHANDLER_HPP
|
|
#define CREATURELIB_TURNHANDLER_HPP
|
|
|
|
#include "../Models/ExecutingAttack.hpp"
|
|
#include "../TurnChoices/AttackTurnChoice.hpp"
|
|
#include "../TurnChoices/FleeTurnChoice.hpp"
|
|
#include "../TurnChoices/SwitchTurnChoice.hpp"
|
|
#include "ChoiceQueue.hpp"
|
|
|
|
namespace CreatureLib::Battling {
|
|
class Battle;
|
|
|
|
class TurnHandler {
|
|
static void ExecuteChoice(ArbUt::BorrowedPtr<BaseTurnChoice> choice);
|
|
|
|
static void ExecuteAttackChoice(const ArbUt::BorrowedPtr<AttackTurnChoice>& choice);
|
|
static void HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::BorrowedPtr<Creature>& target);
|
|
|
|
static void ExecuteSwitchChoice(ArbUt::BorrowedPtr<SwitchTurnChoice> choice);
|
|
static void ExecuteFleeChoice(ArbUt::BorrowedPtr<FleeTurnChoice> choice);
|
|
|
|
public:
|
|
static void RunTurn(ArbUt::BorrowedPtr<ChoiceQueue> queue, ArbUt::BorrowedPtr<Battle> battle);
|
|
};
|
|
}
|
|
|
|
#endif // CREATURELIB_TURNHANDLER_HPP
|