diff options
Diffstat (limited to 'source/cMonster.h')
-rw-r--r-- | source/cMonster.h | 202 |
1 files changed, 101 insertions, 101 deletions
diff --git a/source/cMonster.h b/source/cMonster.h index b1e237d80..ab247fcfa 100644 --- a/source/cMonster.h +++ b/source/cMonster.h @@ -1,101 +1,101 @@ -
-#pragma once
-
-#include "cPawn.h"
-#include "Defines.h"
-#include "cWorld.h"
-#include "BlockID.h"
-#include "cItem.h"
-#include "BlockID.h"
-
-
-
-
-
-class Vector3f;
-class cClientHandle;
-
-
-
-
-class cMonster : public cPawn //tolua_export
-{ //tolua_export
-public:
-
- cMonster();
- virtual ~cMonster();
-
- virtual bool IsA( const char* a_EntityType );
-
- virtual cPacket * GetSpawnPacket(void) const override;
-
- virtual void Tick(float a_Dt) override;
-
- virtual void HandlePhysics(float a_Dt);
- virtual void ReplicateMovement();
-
- virtual void TakeDamage( int a_Damage, cEntity* a_Instigator );
- virtual void KilledBy( cEntity* a_Killer );
-
- virtual void MoveToPosition( const Vector3f & a_Position );
- virtual bool ReachedDestination();
-
- const char *GetState();
- void SetState(const char* str);
- static void ListMonsters();
-
- virtual void CheckEventSeePlayer();
- virtual void EventSeePlayer(cEntity *);
- float m_SightDistance;
- virtual cPlayer *FindClosestPlayer(); //non static is easier. also virtual so other mobs can implement their own searching algo
- virtual void GetMonsterConfig(const char* pm_name);
- virtual void EventLosePlayer();
- virtual void CheckEventLostPlayer();
-
- virtual void InStateIdle(float a_Dt);
- virtual void InStateChasing(float a_Dt);
- virtual void InStateEscaping(float a_Dt);
-
- virtual void Attack(float a_Dt);
- int GetMobType() {return m_MobType;}
- int GetAttackRate(){return (int)m_AttackRate;}
- void SetAttackRate(int ar);
- void SetAttackRange(float ar);
- void SetAttackDamage(float ad);
- void SetSightDistance(float sd);
-
- enum MState{ATTACKING, IDLE, CHASING, ESCAPING} m_EMState;
- enum MPersonality{PASSIVE,AGGRESSIVE,COWARDLY} m_EMPersonality;
-
-protected:
-
- cEntity* m_Target;
- float m_AttackRate;
- float idle_interval;
-
- Vector3f m_Destination;
- bool m_bMovingToDestination;
- bool m_bPassiveAggressive;
-
- Vector3f m_Speed;
- float m_DestinationTime;
-
- float m_Gravity;
- bool m_bOnGround;
-
- float m_DestroyTimer;
- float m_Jump;
-
- char m_MobType;
-
- float m_SeePlayerInterval;
- float m_AttackDamage;
- float m_AttackRange;
- float m_AttackInterval;
-
- void AddRandomDropItem(cItems & a_Drops, unsigned int a_Min, unsigned int a_Max, ENUM_ITEM_ID a_Item, short a_ItemHealth = 0);
-}; //tolua_export
-
-
-
-
+ +#pragma once + +#include "cPawn.h" +#include "Defines.h" +#include "cWorld.h" +#include "BlockID.h" +#include "cItem.h" +#include "BlockID.h" + + + + + +class Vector3f; +class cClientHandle; + + + + +class cMonster : public cPawn //tolua_export +{ //tolua_export +public: + + cMonster(); + virtual ~cMonster(); + + virtual bool IsA( const char* a_EntityType ); + + virtual cPacket * GetSpawnPacket(void) const override; + + virtual void Tick(float a_Dt) override; + + virtual void HandlePhysics(float a_Dt); + virtual void ReplicateMovement(); + + virtual void TakeDamage( int a_Damage, cEntity* a_Instigator ); + virtual void KilledBy( cEntity* a_Killer ); + + virtual void MoveToPosition( const Vector3f & a_Position ); + virtual bool ReachedDestination(); + + const char *GetState(); + void SetState(const char* str); + static void ListMonsters(); + + virtual void CheckEventSeePlayer(); + virtual void EventSeePlayer(cEntity *); + float m_SightDistance; + virtual cPlayer *FindClosestPlayer(); //non static is easier. also virtual so other mobs can implement their own searching algo + virtual void GetMonsterConfig(const char* pm_name); + virtual void EventLosePlayer(); + virtual void CheckEventLostPlayer(); + + virtual void InStateIdle(float a_Dt); + virtual void InStateChasing(float a_Dt); + virtual void InStateEscaping(float a_Dt); + + virtual void Attack(float a_Dt); + int GetMobType() {return m_MobType;} + int GetAttackRate(){return (int)m_AttackRate;} + void SetAttackRate(int ar); + void SetAttackRange(float ar); + void SetAttackDamage(float ad); + void SetSightDistance(float sd); + + enum MState{ATTACKING, IDLE, CHASING, ESCAPING} m_EMState; + enum MPersonality{PASSIVE,AGGRESSIVE,COWARDLY} m_EMPersonality; + +protected: + + cEntity* m_Target; + float m_AttackRate; + float idle_interval; + + Vector3f m_Destination; + bool m_bMovingToDestination; + bool m_bPassiveAggressive; + + Vector3f m_Speed; + float m_DestinationTime; + + float m_Gravity; + bool m_bOnGround; + + float m_DestroyTimer; + float m_Jump; + + char m_MobType; + + float m_SeePlayerInterval; + float m_AttackDamage; + float m_AttackRange; + float m_AttackInterval; + + void AddRandomDropItem(cItems & a_Drops, unsigned int a_Min, unsigned int a_Max, ENUM_ITEM_ID a_Item, short a_ItemHealth = 0); +}; //tolua_export + + + + |