EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EffectsData.h
Go to the documentation of this file.
1 
12 #ifndef _EVE_FX_PROC_DATA_H__
13 #define _EVE_FX_PROC_DATA_H__
14 
15 #include "../eve-server.h"
16 
17 
18 // POD for effect data in mem objects
19 struct Effect {
23  bool isWarpSafe;
36  float rangeChance;
39  std::string effectName;
40  std::string guid;
41 };
42 
43 struct Expression {
51  std::string expressionValue;
52  std::string description;
53  std::string expressionName;
54 };
55 
56 struct Operand {
60  std::string operandKey;
61  std::string format;
62 };
63 
64 struct TypeEffects {
65  bool isDefault; // used to calculate capacitor stability in fit window using dischargeAttributeID
67 };
68 
69 struct fxData {
70  int8 math; // math used on data
71  int8 fxSrc; // effect source location
72  int8 targLoc; // effect target location
73  uint8 action; // effect *DOES* something (module action aside from modification)
76  uint16 grpID; // used to define items in env grouped by item groupID
77  uint16 typeID; // used to define items in env grouped by skill requirement
78  InventoryItemRef srcRef; // source item ref, if required
79 };
80 
81 typedef std::map<uint16, Effect> effectMapType;
82 
83 // these tables are used to decode fields in Effects table
84 namespace FX {
85 
86  namespace Source { // formally known as domain
87  enum {
88  Invalid = -1,
89  // these define the location for group-, skill-, gang-, and owner-required effects
90  Self = 0,
91  Skill = 1,
92  Ship = 2,
93  Owner = 3,
94  Gang = 4,
95  Group = 5,
96  Target = 6
97  };
98  }
99 
100  namespace Target { //formally known as environment
101  enum {
102  Invalid = -1,
103  // these define the item containing the attribute to be modified
104  // these are found (as text) in the expressionValue field of dgmExpressions table and may need to merge with Association, or test with it
105  Self = 0,
106  Char = 1,
107  Ship = 2,
108  Target = 3,
109  Other = 4,
110  Area = 5,
111  PowerCore = 6, //defined but not used
112  Charge = 7,
114  };
115  }
116 
117  namespace State { // formally known as category
118  enum {
119  Invalid = -1,
120  // these are the effectCategory in dgmEffects table to denote when this effect is applied or removed
121  Passive = 0, //Applied when item is present and online - implants, skills, modules, charges
122  Active = 1, //Applied when active module is activated
123  Target = 2, //Applied onto selected target when module is activated
124  Area = 3, //defined but not used
125  Online = 4, //Applied when module is onlined
126  Overloaded = 5, //Applied when module is overloaded and activated
127  Dungeon = 6, //Dungeon effects, several effects exist in this category, but not assigned to any item -passive
128  System = 7 //System-wide effects, like WH and incursion -passive
129  };
130  }
131 
132  namespace Math { // formally known as association
133  enum {
134  Invalid = -1,
135  // these define how the data is manipulated according to the format field in dgmOperands table
137  PreMul = 1,
138  PreDiv = 2,
139  ModAdd = 3,
140  ModSub = 4,
141  PostMul = 5,
142  PostDiv = 6,
146  /* no data or expressions with these next two */
147  AddRate = 10,
148  SubRate = 11,
151  };
152  }
153 
154  namespace Action { // this are coded and are applied on the fly as needed.
155  enum {
156  Invalid = 0,
157  ATTACK = 13,
158  CARGOSCAN = 14,
162  ECMBURST = 30,
163  EMPWAVE = 32,
164  LAUNCH = 44,
168  MINE = 50,
169  POWERBOOST = 53, //effectID 48 - Consumes power booster charges to increase the available power in the capacitor.
170  SHIPSCAN = 66,
176  /* unique/special to EVEmu */
177  SPEEDBOOST = 75 //effectID 14 - prop mod to call destiny speed updates
178  };
179  }
180 
181  /* old shit
182  case CALC_NONE: return val1;
183  case CALC_ADD: return val1 + val2;
184  case CALC_SUBTRACT: return val1 - val2;
185  case CALC_MULTIPLY: return val1 * val2;
186  case CALC_DIVIDE: return ((val2 != 0) ? val1 / val2 : val1);
187  case CALC_PERCENTAGE: return val1 * (1 + (val2 / 100));
188  case CALC_REV_PERCENTAGE: return val1 / (1 + (val2 / 100));
189  case CALC_ADD_PERCENT: return val1 + (val2 / 100);
190  case CALC_SUBTRACT_PERCENT: return val1 - (val2 / 100);
191  case CALC_ADD_RESIST: return val1 - (1 - val2);
192  case CALC_SUBTRACT_RESIST: return val1 + (1 - val2);
193  */
194 
195  namespace Operands {
196  enum {
197  // @note '//*' denotes implemented
198  ADD = 1, //*
199  AGGM = 2, //*
200  AGSM = 3, //*
201  AGORSM = 4, //*
202  AGRSM = 5, //*
203  AIM = 6, //*
204  ALGM = 7, //*
205  ALM = 8, //*
206  ALRSM = 9, //*
207  AND = 10, //*
208  AORSM = 11, //*
209  ATT = 12, //*
210  ATTACK = 13,
211  CARGOSCAN = 14,
214  COMBINE = 17, //*
215  DEC = 18, //*
217  DECN = 20, //*
218  DEFASSOCIATION = 21, //*
219  DEFATTRIBUTE = 22, //*
220  DEFBOOL = 23, //*
221  DEFENVIDX = 24, //*
222  DEFFLOAT = 25, //*
223  DEFGROUP = 26, //*
224  DEFINT = 27, //*
225  DEFSTRING = 28, //*
226  DEFTYPEID = 29, //*
227  ECMBURST = 30,
228  EFF = 31, //*
229  EMPWAVE = 32,
230  EQ = 33, //*
231  GA = 34, //*
232  GET = 35, //*
233  GETTYPE = 36, //*
234  GM = 37, //*
235  GT = 38, //*
236  GTE = 39, //*
237  IA = 40, //*
238  IF = 41, //*
239  INC = 42, //*
240  INCN = 43, //*
241  LAUNCH = 44,
245  LG = 48, //*
246  SRLG = 49, //*
247  MINE = 50,
248  MUL = 51, //*
249  OR = 52, //*
251  RGGM = 54, //*
252  RGSM = 55, //*
253  RGORSM = 56, //*
254  RGRSM = 57, //*
255  RIM = 58, //*
256  RLGM = 59, //*
257  RLM = 60, //*
258  RLRSM = 61, //*
259  RORSM = 62, //*
260  RS = 63, //*
261  RSA = 64, //*
262  SET = 65, //*
263  SHIPSCAN = 66,
264  SKILLCHECK = 67, //*
265  SUB = 68, //*
270  UE = 73, //*
272  SPEEDBOOST = 75 //*
273  };
274  }
275 }
276 
277 
278 /* not sure what these are...
279  * dgmEffActivation = 1
280  * dgmEffArea = 3
281  * dgmEffOnline = 4
282  * dgmEffPassive = 0
283  * dgmEffTarget = 2
284  * dgmEffOverload = 5
285  * dgmEffDungeon = 6
286  * dgmEffSystem = 7
287  * dgmPassiveEffectCategories = (dgmEffPassive, dgmEffDungeon, dgmEffSystem)
288  *
289  * dgmAttributesByIdx = {
290  * 1: attributeIsOnline,
291  * 2: attributeDamage,
292  * 3: attributeCharge,
293  * 4: attributeSkillPoints,
294  * 5: attributeArmorDamage,
295  * 6: attributeShieldCharge,
296  * 7: attributeIsIncapacitated}
297  *
298  * UserErrors
299  * UE_OWNERID = 2
300  * UE_LOCID = 3
301  * UE_TYPEID = 4
302  * UE_TYPEID2 = 5
303  * UE_TYPEIDL = 29
304  * UE_BPTYPEID = 6
305  * UE_GROUPID = 7
306  * UE_GROUPID2 = 8
307  * UE_CATID = 9
308  * UE_CATID2 = 10
309  * UE_DGMATTR = 11
310  * UE_DGMFX = 12
311  * UE_DGMTYPEFX = 13
312  * UE_AMT = 18
313  * UE_AMT2 = 19
314  * UE_AMT3 = 20
315  * UE_DIST = 21
316  * UE_TYPEIDANDQUANTITY = 24
317  * UE_OWNERIDNICK = 25
318  * UE_ISK = 28
319  * UE_AUR = 30
320  */
321 /* flags for ???
322  * dgmExprSkip = 0
323  * dgmExprOwner = 1
324  * dgmExprShip = 2
325  * dgmExprOwnerAndShip = 3
326  */
327 
328 /* these are the operandID field in the dgmExpressions table
329  *
330  * will need to hand-write code for these operands.
331  * (operandID, operandKey, description, format, arg1categoryID, arg2categoryID, resultCategoryID, pythonFormat)
332  *
333  * (1, 'ADD', 'add two numbers', '(%(arg1)s)+(%(arg2)s)', 4, 4, 4, '(%(arg1)s)+(%(arg2)s)')
334  * (2, 'AGGM', 'add gang group modifier', '[%(arg1)s].AGGM(%(arg2)s)', 5, 2, 4, 'dogma.AddGangGroupModifier(env,%(arg1)s, %(arg2)s)')
335  * (3, 'AGIM', 'add gang ship modifier', '[%(arg1)s].AGIM(%(arg2)s)', 5, 2, 4, 'dogma.AddGangShipModifier(env,%(arg1)s, %(arg2)s)')
336  * (4, 'AGORSM', 'add gang owner required skill modifier', '[%(arg1)s].AGORSM(%(arg2)s)', 5, 2, 4, 'dogma.AddGangOwnerRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
337  * (5, 'AGRSM', 'add gang required skill modifier', '[%(arg1)s].AGRSM(%(arg2)s)', 5, 2, 4, 'dogma.AddGangRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
338  * (6, 'AIM', 'add item modifier', '(%(arg1)s).AddItemModifier (%(arg2)s)', 5, 2, 4, 'dogma.AddItemModifier(env,%(arg1)s, %(arg2)s)')
339  * (7, 'ALGM', 'add location group modifier', '(%(arg1)s).AddLocationGroupModifier (%(arg2)s)', 5, 2, 4, 'dogma.AddLocationGroupModifier(env,%(arg1)s, %(arg2)s)')
340  * (8, 'ALM', 'add location modifier', '(%(arg1)s).AddLocationModifier (%(arg2)s)', 5, 2, 4, 'dogma.AddLocationModifier(env,%(arg1)s, %(arg2)s)')
341  * (9, 'ALRSM', 'add location required skill modifier', '(%(arg1)s).ALRSM(%(arg2)s)', 5, 2, 4, 'dogma.AddLocationRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
342  * (10, 'AND', 'logical and operation', '(%(arg1)s) AND (%(arg2)s)', 4, 4, 4, '(%(arg1)s and %(arg2)s)')
343  * (11, 'AORSM', 'add owner required skill modifier', '(%(arg1)s).AORSM(%(arg2)s)', 5, 2, 4, 'dogma.AddOwnerRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
344  * (12, 'ATT', 'attribute', '%(arg1)s->%(arg2)s', 6, 2, 3, '(%(arg1)s, %(arg2)s)')
345  * (13, 'ATTACK', 'attack given ship', 'Attack', 2, 0, 4, 'Attack(env, %(arg1)s, %(arg2)s)')
346  * (14, 'CARGOSCAN', 'Scans the cargo of the targeted ship.', 'CargoScan', 0, 0, 4, 'CargoScan(env, None, None)')
347  * (15, 'CHEATTELEDOCK', 'Instantly enter a station.', 'CheatTeleDock()', 0, 0, 4, 'CheatTeleDock(env, None, None)')
348  * (16, 'CHEATTELEGATE', 'Automatically invoke a stargate destination from remote distances.', 'CheatTeleGate()', 0, 0, 4, 'dogma.CheatTeleGate(env, None, None)')
349  * (17, 'COMBINE', 'executes two statements', '%(arg1)s); (%(arg2)s', 4, 4, 4, '%(arg1)s %(arg2)s')
350  * (18, 'DEC', 'decreases an item-attribute by the value of another attribute', '%(arg1)s-=self.%(arg2)s', 3, 2, 4, ' ')
351  * (19, 'DECLOAKWAVE', 'broadcasts a decloaking wave', 'DecloakWave', 0, 0, 4, 'DecloakWave(env, None, None)')
352  * (20, 'DECN', 'decreases an item-attribute by number', '%(arg1)s-=%(arg2)s', 3, 4, 4, ' ')
353  * (21, 'DEFASSOCIATION', 'define attribute association type', '%(value)s', 0, 0, 1, 'const.dgmMath%(value)s')
354  * (22, 'DEFATTRIBUTE', 'define attribute', '%(value)s', 0, 0, 2, '%(value)s')
355  * (23, 'DEFBOOL', 'define bool constant', 'Bool(%(value)s)', 0, 0, 4, '%(value)s')
356  * (24, 'DEFENVIDX', 'define environment index', 'Current%(value)s', 0, 0, 6, 'env[const.dgmTargLoc%(value)s]')
357  * (25, 'DEFFLOAT', 'defines a float constant', 'Float(%(value)s)', 0, 0, 4, ' ')
358  * (26, 'DEFGROUP', 'define group', '%(value)s', 0, 0, 8, ' ')
359  * (27, 'DEFINT', 'defines an int constant', 'Int(%(value)s)', 0, 0, 4, '%(value)s')
360  * (28, 'DEFSTRING', 'defines a string constant', '\"%(value)s\"', 0, 0, 4, '\"%(value)s\"')
361  * (29, 'DEFTYPEID', 'define a type ID', 'Type(%(value)s)', 0, 0, 9, ' ')
362  * (30, 'ECMBURST', 'Clears all targets on all ships(excluding self) wihin range. ', 'ECMBurst()', 0, 0, 4, 'dogma.ECMBurst(env, None, None)')
363  * (31, 'EFF', 'define association type', '(%(arg2)s).(%(arg1)s)', 1, 3, 5, '(%(arg1)s, %(arg2)s)')
364  * (32, 'EMPWAVE', 'broadcasts an EMP wave', 'EMPWave', 0, 0, 4, 'EMPWave(env, None, None)')
365  * (33, 'EQ', 'checks for equality', '%(arg1)s == %(arg2)s', 4, 4, 4, '(%(arg1)s == %(arg2)s)')
366  * (34, 'GA', 'attribute on a module group', '%(arg1)s.%(arg2)s', 8, 2, 3, '(%(arg1)s, %(arg2)s)')
367  * (35, 'GET', 'calculate attribute', '%(arg1)s.%(arg2)s()', 6, 2, 4, 'dogmaLM.GetAttributeValue(%(arg1)s, %(arg2)s)')
368  * (36, 'GETTYPE', 'gets type of item', '%(arg1)s.GetTypeID()', 6, 0, 9, 'env.itemTypeID')
369  * (37, 'GM', 'get a module of a given groupID from a given location (ship or player)', '%(arg1)s.%(arg2)s', 6, 8, 6, 'dogma.GetModule(env,%(arg1)s,%(arg2)s)')
370  * (38, 'GT', 'checks whether expression 1 is greater than expression 2', '%(arg1)s> %(arg2)s', 4, 4, 4, '(%(arg1)s > %(arg2)s)')
371  * (39, 'GTE', 'checks whether an expression is greater than or equal to another', '%(arg1)s>=%(arg2)s', 4, 4, 4, '(%(arg1)s >= %(arg2)s)')
372  * (40, 'IA', 'generic attribute', '%(arg1)s', 2, 0, 3, '%(arg1)s')
373  * (41, 'IF', 'if construct', 'If(%(arg1)s), Then (%(arg2)s)', 4, 4, 4, 'if %(arg1)s:%(arg2)s')
374  * (42, 'INC', 'increases an item-attribute by the value of another attribute', '%(arg1)s+=self.%(arg2)s', 3, 2, 4, '<handled in code>')
375  * (43, 'INCN', 'increases an item-attribute by a number', '%(arg1)s+=%(arg2)s', 3, 4, 4, ' ')
376  * (44, 'LAUNCH', 'launches a missile', 'LaunchMissile()', 0, 0, 4, 'dogma.Launch(env, None, None)')
377  * (45, 'LAUNCHDEFENDERMISSILE', 'launches a defender missile', 'LaunchDefenderMissile()', 0, 0, 4, 'dogma.LaunchDefenderMissile(env, None, None)')
378  * (46, 'LAUNCHDRONE', 'launches a drone.', 'LaunchDrone()', 0, 0, 4, 'dogma.Launch(env, None, None)')
379  * (47, 'LAUNCHFOFMISSILE', 'launches an FOF missile', 'LaunchFOFMissile()', 0, 0, 4, 'dogma.LaunchFOFMissile(env, None, None)')
380  * (48, 'LG', 'specify a group in a location', '%(arg1)s..%(arg2)s', 6, 8, 6, '(%(arg1)s, %(arg2)s)')
381  * (49, 'LS', 'location - skill required item group', '%(arg1)s[%(arg2)s]', 6, 9, 6, '(%(arg1)s, %(arg2)s)')
382  * (50, 'MINE', 'mines an asteroid', 'Mine', 0, 0, 4, 'Mine(env, None, None)')
383  * (51, 'MUL', 'multiplies two numbers', '(%(arg1)s)*(%(arg2)s)', 4, 4, 4, '(%(arg1)s * %(arg2)s)')
384  * (52, 'OR', 'logical or operation', '%(arg1)s OR %(arg2)s', 4, 4, 4, '(%(arg1)s or %(arg2)s)')
385  * (53, 'POWERBOOST', '', 'PowerBoost', 0, 0, 4, 'dogma.PowerBoost(env, None, None)')
386  * (54, 'RGGM', 'remove gang group modifier', '[%(arg1)s].RGGM(%(arg2)s)', 5, 2, 4, 'dogma.RemoveGangGroupModifier(env,%(arg1)s, %(arg2)s)')
387  * (55, 'RGIM', 'remove gang ship modifier', '[%(arg1)s].RGIM(%(arg2)s)', 5, 2, 4, 'dogma.RemoveGangShipModifier(env,%(arg1)s, %(arg2)s)')
388  * (56, 'RGORSM', 'remove a gang owner required skill modifier', '[%(arg1)s].RGORSM(%(arg2)s)', 5, 2, 4, 'dogma.RemoveGangOwnerRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
389  * (57, 'RGRSM', 'remove a gang required skill modifier', '[%(arg1)s].RGRSM(%(arg2)s)', 5, 2, 4, 'dogma.RemoveGangRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
390  * (58, 'RIM', 'remove item modifier', '(%(arg1)s).RemoveItemModifier (%(arg2)s)', 5, 2, 4, 'dogma.RemoveItemModifier(env,%(arg1)s, %(arg2)s)')
391  * (59, 'RLGM', 'remove location group modifier', '(%(arg1)s).RemoveLocationGroupModifier (%(arg2)s)', 5, 2, 4, 'dogma.RemoveLocationGroupModifier(env,%(arg1)s, %(arg2)s)')
392  * (60, 'RLM', 'remove location modifier', '(%(arg1)s).RemoveLocationModifier (%(arg2)s)', 5, 2, 4, 'dogma.RemoveLocationModifier(env,%(arg1)s, %(arg2)s)')
393  * (61, 'RLRSM', 'remove a required skill modifier', '(%(arg1)s).RLRSM(%(arg2)s)', 5, 2, 4, 'dogma.RemoveLocationRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
394  * (62, 'RORSM', 'remove an owner required skill modifier', '(%(arg1)s).RORSM(%(arg2)s)', 5, 2, 4, 'dogma.RemoveOwnerRequiredSkillModifier(env,%(arg1)s, %(arg2)s)')
395  * (63, 'RS', 'true if arg1 requires arg2', '%(arg1)s.Requires(%(arg2)s)', 6, 9, 4, 'dogma.RequireSkill(env, %(arg1)s, %(arg2)s)')
396  * (64, 'RSA', 'attribute on modules that have required skill', '%(arg1)s.%(arg2)s', 9, 2, 3, '(%(arg1)s, %(arg2)s)')
397  * (65, 'SET', 'sets an item attribute', '%(arg1)s := %(arg2)s', 3, 4, 4, '<handled in code>')
398  * (66, 'SHIPSCAN', 'scans a ship', 'ShipScan()', 0, 0, 4, 'ShipScan(env, None, None)')
399  * (67, 'SKILLCHECK', '', 'SkillCheck(%(arg1)s)', 4, 0, 4, 'dogma.SkillCheck(env, %(arg1)s, %(arg2)s)')
400  * (68, 'SUB', 'subtracts a number from another one', '%(arg1)s-%(arg2)s', 4, 4, 4, ' ')
401  * (69, 'SURVEYSCAN', 'scans an asteroid for information', 'SurveyScan()', 0, 0, 4, 'SurveyScan(env, None, None)')
402  * (70, 'TARGETHOSTILES', 'Targets any hostile ships within range (assuming electronics have capability).', 'TargetHostiles()', 0, 0, 4, 'dogma.TargetHostiles(env, None, None)')
403  * (71, 'TARGETSILENTLY', '', 'TargetSilently()', 0, 0, 4, 'dogmaLM.AddTargetEx(shipID,targetID, silent=1, tasklet=1)')
404  * (72, 'TOOLTARGETSKILLS', ' ', 'CheckToolTargetSkills', 0, 0, 4, 'dogma.CheckToolTargetSkills(env,None,None)')
405  * (73, 'UE', 'raises an user error', 'UserError(%(arg1)s)', 4, 0, 4, 'raise UserError(%(arg1)s)')
406  * (74, 'VERIFYTARGETGROUP', 'raises a user error if incorrect target group', 'VerifyTargetGroup()', 0, 0, 4, 'dogma.VerifyTargetGroup(env, None, None)');
407  */
408 
409 #endif // _EVE_FX_PROC_DATA_H__
uint16 preExpression
Definition: EffectsData.h:26
unsigned __int8 uint8
Definition: eve-compat.h:46
bool isDefault
Definition: EffectsData.h:65
uint16 effectID
Definition: EffectsData.h:66
uint16 fittingUsageChanceAttributeID
Definition: EffectsData.h:30
uint16 durationAttributeID
Definition: EffectsData.h:31
std::string format
Definition: EffectsData.h:61
uint16 id
Definition: EffectsData.h:45
int8 operandID
Definition: EffectsData.h:44
uint16 postExpression
Definition: EffectsData.h:27
std::string effectName
Definition: EffectsData.h:39
float propulsionChance
Definition: EffectsData.h:38
uint16 falloffAttributeID
Definition: EffectsData.h:35
uint16 expressionTypeID
Definition: EffectsData.h:48
InventoryItem for skill.
Definition: Skill.h:48
float rangeChance
Definition: EffectsData.h:36
InventoryItemRef srcRef
Definition: EffectsData.h:78
bool isOffensive
Definition: EffectsData.h:20
signed __int8 int8
Definition: eve-compat.h:45
uint16 arg1categoryID
Definition: EffectsData.h:58
std::string operandKey
Definition: EffectsData.h:60
std::string expressionName
Definition: EffectsData.h:53
uint8 effectState
Definition: EffectsData.h:25
uint16 arg2categoryID
Definition: EffectsData.h:59
bool isWarpSafe
Definition: EffectsData.h:23
uint16 arg2
Definition: EffectsData.h:47
std::map< uint16, Effect > effectMapType
Definition: EffectsData.h:81
int8 math
Definition: EffectsData.h:70
Definition: EffectsData.h:84
uint16 dischargeAttributeID
Definition: EffectsData.h:33
float electronicChance
Definition: EffectsData.h:37
uint16 npcUsageChanceAttributeID
Definition: EffectsData.h:28
uint16 typeID
Definition: EffectsData.h:77
uint16 arg1
Definition: EffectsData.h:46
uint8 action
Definition: EffectsData.h:73
bool isAssistance
Definition: EffectsData.h:21
uint16 expressionAttributeID
Definition: EffectsData.h:50
int8 fxSrc
Definition: EffectsData.h:71
bool disallowAutoRepeat
Definition: EffectsData.h:22
uint16 expressionGroupID
Definition: EffectsData.h:49
uint16 effectID
Definition: EffectsData.h:24
std::string expressionValue
Definition: EffectsData.h:51
uint16 grpID
Definition: EffectsData.h:76
uint8 resultCategoryID
Definition: EffectsData.h:57
uint16 targAttr
Definition: EffectsData.h:74
uint16 trackingSpeedAttributeID
Definition: EffectsData.h:32
std::string guid
Definition: EffectsData.h:40
uint16 npcActivationChanceAttributeID
Definition: EffectsData.h:29
std::string description
Definition: EffectsData.h:52
unsigned __int16 uint16
Definition: eve-compat.h:48
int8 targLoc
Definition: EffectsData.h:72
uint16 rangeAttributeID
Definition: EffectsData.h:34
uint16 srcAttr
Definition: EffectsData.h:75