EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Tower.h
Go to the documentation of this file.
1 
11 #ifndef EVEMU_POS_TOWER_H_
12 #define EVEMU_POS_TOWER_H_
13 
14 
15 #include "pos/Structure.h"
16 
17 class Misile;
18 
19 class TowerSE
20 : public StructureSE
21 {
22 public:
23  TowerSE(StructureItemRef structure, PyServiceMgr& services, SystemManager* system, const FactionData& fData);
24  virtual ~TowerSE() { /* do nothing here */ }
25 
26  /* class type pointer querys. */
27  virtual TowerSE* GetTowerSE() { return this; }
28 
29  /* class type tests. */
30  virtual bool IsTowerSE() { return true; }
31 
32  /* SystemEntity interface */
33  virtual void Process();
34  virtual PyDict* MakeSlimItem();
35 
36  /* virtual functions default to base class and overridden as needed */
37  virtual void Init();
38  virtual void InitData();
39 
40  /* virtual functions to be overridden in derived classes */
41  virtual void MissileLaunched(Missile* pMissile) { /* Do nothing here */ }
42 
43 
44  /* basic tower methods */
45  virtual void SetOnline();
46  virtual void SetOffline();
47 
48  virtual void Online();
49  virtual void Operating();
50  virtual void Reinforced();
51 
52  virtual void Scoop();
53 
54  void ReinforceTower();
55 
56  /* tower data methods */
60 
61  void UpdatePassword();
62  void SetDeployFlags(int8 anchor=0, int8 unanchor=0, int8 online=0, int8 offline=0);
63  void SetUseFlags(uint32 itemID, int8 view=0, int8 take=0, int8 use=0);
64 
65  /* general tower data methods */
66  void SetStanding(float set) { m_tdata.standing = set; }
67  void SetStatus(float set) { m_tdata.status = set; }
68  void SetStatusDrop(bool set) { m_tdata.statusDrop = set; } // shoot if their status is dropping
69  void SetCorpWar(bool set) { m_tdata.corpWar = set; } // shoot if we are at war with them
70  void SetCorpAccess(bool set) { m_tdata.allowCorp = set; }
71  void SetAllyAccess(bool set) { m_tdata.allowAlliance = set; }
72  void SetUseAllyStandings(bool set) { m_tdata.allyStandings = set; } // use alliance standings
73  void SetStandingOwnerID(bool set) { m_tdata.standingOwnerID = set; }
74  void SetPassword(std::string pass) { m_tdata.password = pass; }
75 
76  bool HasForceField() { return (m_hasShield? true : false); }
77  bool GetStatusDrop() { return m_tdata.statusDrop; }
78  bool GetCorpWar() { return m_tdata.corpWar; }
79  float GetStanding() { return m_tdata.standing; }
81  std::string GetPassword() { return m_tdata.password; }
82 
85  void SetShowInCalendar(bool set) { m_tdata.showInCalendar = set; }
87 
88  void GetTowerData(EVEPOS::TowerData& tData) { tData = m_tdata; }
89 
90  uint16 GetSOI() { return m_soi; }
91 
92  inline void AddModule(StructureSE* pSE) { m_structs.emplace(pSE->GetID(), pSE); }
93  inline void RemoveModule(StructureSE* pSE) { m_structs.erase(pSE->GetID()); }
94 
95  // structure update methods
100 
101  // fx methods
102  void ApplyResist(uint16 type, float amount) { /* do nothing here */ }
103  void RemoveResist(uint16 type, float amount) { /* do nothing here */ }
104 
105  // resource methods
106  void OnlineModule(StructureSE* pSE) { /* do nothing here */ }
107  void OfflineModule(StructureSE* pSE) { /* do nothing here */ }
108 
109  // not coded yet
110  bool HasPG(float amount) { return true; }
111  // not coded yet
112  bool HasCPU(float amount) { return true; }
113 
114  float GetPGLoad() { return m_pg; }
115  float GetCPULoad() { return m_cpu; }
116 
117 protected:
119 
121  //POS_AI* m_ai;
122 
123 private:
124  void CreateForceField();
125 
127 
128  int8 m_tsize; // tower size: small, med, large
129 
130  float m_pg;
131  float m_cpu;
132 
133  uint16 m_soi; // Sphere Of Influence, 45km max
134 
135  std::map<uint32, StructureSE*> m_structs; // structID/pSSE
136 
137 };
138 
139 #endif // EVEMU_POS_TOWER_H_
Base Python wire object.
Definition: PyRep.h:66
void UpdateNotify()
Definition: Tower.h:98
float m_cpu
Definition: Tower.h:131
void UpdateAccess(int32 itemID, EVEPOS::TowerData &data)
Definition: PosMgrDB.cpp:393
int32 standingOwnerID
Definition: EVE_POS.h:53
virtual void InitData()
Definition: Tower.cpp:175
void SetCorpAccess(bool set)
Definition: Tower.h:70
bool allowAlliance
Definition: EVE_POS.h:41
Python's dictionary.
Definition: PyRep.h:719
virtual void Scoop()
Definition: Tower.cpp:184
virtual void Online()
Definition: Tower.cpp:262
bool GetCorpWar()
Definition: Tower.h:78
float GetCPULoad()
Definition: Tower.h:115
void ReinforceTower()
Definition: Tower.cpp:295
virtual void Operating()
Definition: Tower.cpp:281
uint16 m_soi
Definition: Tower.h:133
void UpdateAccess()
Definition: Tower.h:96
virtual void SetOnline()
Definition: Tower.cpp:215
virtual void Process()
Definition: Tower.cpp:192
void ApplyResist(uint16 type, float amount)
Definition: Tower.h:102
PyRep * GetDeployFlags()
Definition: Tower.cpp:355
void CreateForceField()
Definition: Tower.cpp:491
virtual void Init()
Definition: Tower.cpp:136
uint16 GetSOI()
Definition: Tower.h:90
bool sendFuelNotifications
Definition: EVE_POS.h:46
signed __int8 int8
Definition: eve-compat.h:45
bool HasCPU(float amount)
Definition: Tower.h:112
void RemoveResist(uint16 type, float amount)
Definition: Tower.h:103
void UpdatePassword()
Definition: Tower.cpp:308
virtual ~TowerSE()
Definition: Tower.h:24
void OfflineModule(StructureSE *pSE)
Definition: Tower.h:107
std::map< uint32, StructureSE * > m_structs
Definition: Tower.h:135
void SetStanding(float set)
Definition: Tower.h:66
void UpdateSentry(int32 itemID, EVEPOS::TowerData &data)
Definition: PosMgrDB.cpp:421
std::string password
Definition: EVE_POS.h:56
void UpdateNotify(int32 itemID, EVEPOS::TowerData &data)
Definition: PosMgrDB.cpp:412
float GetPGLoad()
Definition: Tower.h:114
void SetUseAllyStandings(bool set)
Definition: Tower.h:72
float standing
Definition: EVE_POS.h:55
void SetStandingOwnerID(bool set)
Definition: Tower.h:73
virtual TowerSE * GetTowerSE()
Definition: Tower.h:27
uint32 GetID()
Definition: SystemEntity.h:207
bool ShowInCalendar()
Definition: Tower.h:83
float GetStanding()
Definition: Tower.h:79
TowerSE(StructureItemRef structure, PyServiceMgr &services, SystemManager *system, const FactionData &fData)
Definition: Tower.cpp:105
void UpdatePermission(int32 itemID, EVEPOS::TowerData &data)
Definition: PosMgrDB.cpp:438
void SetPassword(std::string pass)
Definition: Tower.h:74
void SetStatus(float set)
Definition: Tower.h:67
EVEPOS::StructureData m_data
Definition: Structure.h:212
uint32 GetStandingOwnerID()
Definition: Tower.h:80
void GetTowerData(EVEPOS::TowerData &tData)
Definition: Tower.h:88
void RemoveModule(StructureSE *pSE)
Definition: Tower.h:93
bool GetStatusDrop()
Definition: Tower.h:77
unsigned __int32 uint32
Definition: eve-compat.h:50
virtual void Reinforced()
Definition: Tower.cpp:302
void SetStatusDrop(bool set)
Definition: Tower.h:68
void UpdatePermission()
Definition: Tower.h:99
virtual void MissileLaunched(Missile *pMissile)
Definition: Tower.h:41
void SetShowInCalendar(bool set)
Definition: Tower.h:85
virtual PyDict * MakeSlimItem()
Definition: Tower.cpp:515
EVEPOS::TowerData m_tdata
Definition: Tower.h:118
std::string GetPassword()
Definition: Tower.h:81
bool showInCalendar
Definition: EVE_POS.h:45
void SetSendFuelNotifications(bool set)
Definition: Tower.h:86
void SetCorpWar(bool set)
Definition: Tower.h:69
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type()() itemID() copy() materialLevel()() itemID(attributeID)-Retrieves attribute value." ) COMMAND( setattr
bool m_hasShield
Definition: Tower.h:126
void SetDeployFlags(int8 anchor=0, int8 unanchor=0, int8 online=0, int8 offline=0)
Definition: Tower.cpp:345
virtual bool IsTowerSE()
Definition: Tower.h:30
bool allyStandings
Definition: EVE_POS.h:42
void AddModule(StructureSE *pSE)
Definition: Tower.h:92
void SetUseFlags(uint32 itemID, int8 view=0, int8 take=0, int8 use=0)
Definition: Tower.cpp:375
Definition: Tower.h:19
PyRep * GetUsageFlagList()
Definition: Tower.cpp:384
void OnlineModule(StructureSE *pSE)
Definition: Tower.h:106
float m_pg
Definition: Tower.h:130
SystemEntity * m_pShieldSE
Definition: Tower.h:120
PosMgrDB m_db
Definition: Structure.h:201
void SetAllyAccess(bool set)
Definition: Tower.h:71
bool HasPG(float amount)
Definition: Tower.h:110
virtual void SetOffline()
Definition: Tower.cpp:250
bool HasForceField()
Definition: Tower.h:76
unsigned __int16 uint16
Definition: eve-compat.h:48
int8 m_tsize
Definition: Tower.h:128
void UpdateSentry()
Definition: Tower.h:97
PyRep * GetProcessInfo()
Definition: Tower.cpp:429
Reference-counting-based smart pointer.
Definition: RefPtr.h:133
bool SendFuelNotifications()
Definition: Tower.h:84