#ifndef CREATURELIB_SCRIPT_HPP #define CREATURELIB_SCRIPT_HPP #include #include #include #include #include "Hooks.hpp" namespace CreatureLib::Battling{ class ExecutingAttack; class Creature; class Script{ const std::string _name; public: explicit Script(std::string name) :_name(std::move(name)){} virtual ~Script() = default; virtual void Stack(){}; const std::string& GetName(){ return _name; } virtual void OnIncomingAttackFails(ExecutingAttack* attack, Creature* target){}; virtual void IsInvulnerable(ExecutingAttack* attack, Creature* target){}; virtual void OnAttackMiss(ExecutingAttack* attack, Creature* target){}; }; } #endif //CREATURELIB_SCRIPT_HPP