diff --git a/include/Server/Components/NPCs/npcs.hpp b/include/Server/Components/NPCs/npcs.hpp index b237f7e..e7a39b4 100644 --- a/include/Server/Components/NPCs/npcs.hpp +++ b/include/Server/Components/NPCs/npcs.hpp @@ -32,9 +32,15 @@ struct INPC : public IExtensible, public IEntity /// Spawn NPC. virtual void spawn() = 0; + /// Respawn NPC. + virtual void respawn() = 0; + /// Move NPC to a specified location. virtual bool move(Vector3 position, NPCMoveType moveType, float moveSpeed = NPC_MOVE_SPEED_AUTO) = 0; + /// Move NPC to a player. + virtual bool moveToPlayer(IPlayer& player, NPCMoveType moveType, float moveSpeed = NPC_MOVE_SPEED_AUTO) = 0; + /// Stop NPC from moving. virtual void stopMove() = 0; @@ -180,6 +186,7 @@ struct NPCEventHandler virtual void onNPCCreate(INPC& npc) {}; virtual void onNPCDestroy(INPC& npc) {}; virtual void onNPCSpawn(INPC& npc) {}; + virtual void onNPCRespawn(INPC& npc) {}; virtual void onNPCWeaponStateChange(INPC& npc, PlayerWeaponState newState, PlayerWeaponState oldState) {}; virtual bool onNPCTakeDamage(INPC& npc, IPlayer& damager, float damage, uint8_t weapon, BodyPart bodyPart) { return true; }; virtual bool onNPCGiveDamage(INPC& npc, IPlayer& damaged, float damage, uint8_t weapon, BodyPart bodyPart) { return true; };