EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
WormholeMgr.h
Go to the documentation of this file.
1 
12 #ifndef EVEMU_SYSTEM_WORMHOLEMGR_H_
13 #define EVEMU_SYSTEM_WORMHOLEMGR_H_
14 
15 
16 #include "ServiceDB.h"
17 #include "utils/Singleton.h"
18 #include "system/SystemGPoint.h"
20 
21 /* this class will control all aspects of
22  * creating, monitoring, removing, logging
23  * connecting, and saving of wormholes.
24  */
25 
26 class PyServiceMgr;
27 class SystemManager;
28 
30 : public Singleton<WormholeMgr>
31 {
32 public:
33  WormholeMgr();
34  ~WormholeMgr();
35 
36  void Initialize(PyServiceMgr* svc);
37  void Process();
38 
39  void Create(CosmicSignature& sig);
40  // this will create a k162 and send data to anomalyMgr for inclusion
41  void CreateExit(SystemManager* pFromSys, SystemManager* pToSys);
42 
43 private:
48 
50 
52 
53  // as system matures, this will definitely need to be updated
54  std::vector<uint32> m_wormholes; //exitID
55 
56 };
57 
58 //Singleton
59 #define sWHMgr \
60  ( WormholeMgr::get() )
61 
62 #endif // EVEMU_SYSTEM_WORMHOLEMGR_H_
63 
64 
65 
66 /*
67  * Wormhole Space Classes
68  *
69  * W-space systems fall into one of six classes:
70  *
71  * Unknown Space - Class 1-3
72  * Dangerous Unknown Space - Class 4 and 5
73  * Deadly Unknown Space - Class 6
74  *
75  * Class 1 and 2 systems can be soloed.
76  * Class 3 you want some friends with RR.
77  * Class 4 you want lots of friends with RR.
78  * Class 5 you definitely want lots of friends with RR and probably a capital.
79  * Class 6 you definitely want a capital or two and lots of friends with RR.
80  *
81  *
82  * Site Difficulty
83  *
84  * Site difficulty can be roughly determined by a keyword in the site name and the w-space class the site is in:
85  *
86  * Perimeter sites are generally Low difficulty.
87  * Frontier sites are generally Medium difficulty.
88  * Core sites are generally High difficulty.
89  *
90  * For Class 1-2 expect to see Perimeter sites.
91  * For Class 3-4 expect to see Frontier sites.
92  * For Class 5-6 expect to see Core sites.
93  *
94  * Gravimetric, Ladar and class 5 Radar sites are exempt from this; also named sites (i.e. The Line & Solar Cell for example) do not fall under this convention.
95  *
96  *
97  * Sleeper Sites
98  *
99  * Each class of w-space should have 4 types of Cosmic Anomalies, 2 types of Radar and 2 types of Magnetometric cosmic signatures associated with it. This means that each class of w-space has its own set of Cosmic Anomaly, Radar and Magnetometric signature types that will not appear in any other class of w-space. The exception to this rule is Ladar and Gravimetric sites, as these sites can appear in several different classes of w-space and are not bound to a specific w-space class but in fact are each tied to a range of w-space classes.
100  *
101  * Out in the darkness, a curious deadspace signature taunts brave and reckless explorers alike to try and uncover what secrets may be hidden in the depths. Electronic interference floods through your ship’s systems only moments after your warp drive locks on and activates, growing in ferocity as you are hurled towards the strange phenomenon. -Unsecured Frontier Enclave Relay
102  *
103  *
104  * The w-space class determines the type of sleeper sites that will be spawned. In lower classes, easier sites will spawn; and in higher classes, harder sites will spawn. The same site, if spawned in a higher class system, may include a few more ships and a possible increase in scrambling, webbing and remote repair (RR) ships (this applies to Ladar and Gravimetric sites only). Expect sleepers in Class 1 and 2 not to warp scramble or only rarely; Class 3 and 4 you will encounter some warp scrambling; Class 5 and 6 expect 75% to 90% of the sleepers (yes Battleships too) to warp scramble, stasis web and/or NOS (30 KM scramble range in some cases). I think it also goes without saying that as you get into higher class w-space systems you will see an increase in the types of status effects used by the sleeper NPCs and an increase in the number of NPCs with those effects at their disposal.
105  *
106  * Suddenly the illusion of solitude shatters. Slender, articulated obsidian shapes slide toward you from the surrounding darkness of space. Your sensors scream claxons into your auditory cortex as the drones' targeting systems lock onto your ship. You are not alone. Perhaps you never were.
107  * The Sleepers have risen. -Core Stronghold
108  *
109  *
110  *
111  * Sleeper Site Escalation
112  *
113  * Site escalation can be caused when you bring a large force into a site (capitals, large amounts of non-capital ships, etc). Site escalation does seem to also happen randomly on occasion, even without the presence of a large force. Site escalation may cause extra sleepers to spawn and additional waves to have increased spawn counts. Additionally, site escalation does not always seem to happen. This form of escalation was put in place to provide an extra challenge when players bring in more than enough to handle a site. When a Magnetometric site escalates it seems to also cause the Talocan spawn container to appear.
114  *
115  *
116  * Sleeper Capital Escalation
117  *
118  * Capital escalation is caused when you warp certain types of capital ships into a site. Capital escalation appears to be tied to two, and only two, classes of capitals (it should be obvious which two), with each having their own escalation chain. For each class, the first capital will spawn 6 Sleepless Guardians, the 2nd capital will spawn 8 Sleepless Guardians, additional capitals will not trigger any further escalation. This form of escalation was put in place to provide an additional challenge when bringing capital ships into a site. Capital escalation only happens on combat sites (i.e. Anomalies, Magnetometric, Radar) and does not occur at gas or asteroid belts (i.e. Ladar and Gravimetric).
119  *
120  * Alice warps her Thanatos into an anomaly, which causes 6 Sleeper Guardian battleships to spawn. Bob then warps his Thanatos into the same anomaly, which causes another 8 Sleeper Guardian battleships to spawn. Alice then starts yelling at Bob as the 14 Sleeper Guardians and the rest of the anomaly NPCs reduce their capitals to wrecks over the next two minutes.
121  *
122  *
123  *
124  * Sleeper AI
125  *
126  * The sleeper NPC AI is much more complex than normal NPC AI. Sleepers will switch targets regularly, attacking drones too. They also exhibit advanced threat detection and target selection. The sleepers handle multiple targets most dynamically; a sleeper may be warp scrambling Alice and stasis webbing Bob while it is shooting at Charlie.
127  *
128  * Alice in the logistics ship may find herself drawing all the aggro while they ignore Bob in the shuttle.
129  *
130  *
131  * Sleeper Remote Rep
132  *
133  * The sleepers that have remote repair ability will use it, sometimes to an annoying extent. Those sleeper frigates, cruisers and battleships, that can remote repair each other will do so indiscriminately; they also tend to assist the ones you happen to be shooting, aren't they clever. This can become annoying when, for example, the battleships have remote repair and are also the trigger for the next wave and they are happily remote repairing the frigates and cruisers while you try to kill them. The issue can be compounded if said frigates and cruisers also have the remote repair capability. Care should be taken on sites with large amounts of RR sleeper ships that a next wave isn't triggered ahead of time.
134  */
ManagerDB * m_mdb
Definition: WormholeMgr.h:45
SystemGPoint m_gp
Definition: WormholeMgr.h:44
void Initialize(PyServiceMgr *svc)
Definition: WormholeMgr.cpp:49
bool m_initalized
Definition: WormholeMgr.h:51
void Create(CosmicSignature &sig)
Definition: WormholeMgr.cpp:70
Timer m_updateTimer
Definition: WormholeMgr.h:49
std::vector< uint32 > m_wormholes
Definition: WormholeMgr.h:54
Template used for singleton classes.
Definition: Singleton.h:43
void Process()
Definition: WormholeMgr.cpp:62
Definition: timer.h:30
void CreateExit(SystemManager *pFromSys, SystemManager *pToSys)
PyServiceMgr * m_services
Definition: WormholeMgr.h:47
ServiceDB * m_sdb
Definition: WormholeMgr.h:46