23 lines
523 B
C++

#pragma once
#include<string>
#include<string_view>
#include<unordered_map>
#include<functional>
#include"olcUTIL_Geometry2D.h"
#include"MonsterStrategyHelpers.h"
class Monster;
using SpellName=std::string;
using CastPos=vf2d;
using CasterMonster=Monster;
class MonsterAbility{
public:
enum class SpellSucceededResult:bool{
SPELL_COMPLETED=true,
SPELL_FAILED=false,
};
static std::unordered_map<std::string_view,std::function<SpellSucceededResult(SpellName,CastPos,CasterMonster&,const StrategyName&)>>SPELLS;
};