Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/npcs/npc.h @ 10638

Last change on this file since 10638 was 10546, checked in by patrick, 18 years ago

debug, and better slot pos

File size: 1.8 KB
Line 
1
2#ifndef _NPC_H
3#define _NPC_H
4
5#include "world_entity.h"
6#include "ai_module.h"
7#include "world_entities/weapons/weapon_manager.h"
8
9class AI;
10
11class NPC : public WorldEntity
12{
13  ObjectListDeclaration(NPC);
14
15public:
16  NPC(const TiXmlElement* root = NULL);
17  virtual ~NPC ();
18
19  virtual void loadParams(const TiXmlElement* root);
20
21
22  void addWeapons(const TiXmlElement* root);
23  bool addWeapon(Weapon* weapon, int configID = -1, int slotID = -1);
24  void removeWeapon(Weapon* weapon);
25  void nextWeaponConfig();
26  void previousWeaponConfig();
27  inline WeaponManager& getWeaponManager() { return this->weaponMan; };
28void setWeaponConfig(int i);
29
30
31  virtual void tick(float dt);
32  void draw() const;
33  inline int getTeam()  { return teamNumber; }
34  inline void fire(){ this->bFire=true;}
35  void setAI(bool activate);
36  inline void enableAI(int flag) { this->bAIEnabled = (bool)flag; }
37  void destroy( WorldEntity* killer );
38
39  void hit( float damage, WorldEntity* killer);
40
41  inline void destroyThis() { this->destroy(NULL);};
42
43private:
44  inline void setTeamNumber(int number) { teamNumber=number; }
45  inline void setSwarmNumber(int number) { swarmNumber=number; }
46  inline void setMaxSpeed(float number) { maxSpeed=number; }
47  inline void setAttackDistance(float number) { attackDistance=number; }
48
49 private:
50
51  int                   teamNumber;   //!< number of the team
52  int                   swarmNumber;  //!< number of the swarm
53  int                   difficulty;   //!< difficulty
54  float                                         maxSpeed;
55  float                                         attackDistance;
56
57  WeaponManager         weaponMan;    //!< weapon manager
58  bool                  bFire;        //!< fire
59  bool                  bInit;
60
61  AIModule*             aiModule;
62
63  bool                  bAIEnabled;   //!< true is AI enabled
64};
65
66#endif /* _NPC_H */
Note: See TracBrowser for help on using the repository browser.