Cuberite
A lightweight, fast and extensible game server for Minecraft
EntityEffect.h
Go to the documentation of this file.
1 #pragma once
2 
3 class cPawn;
4 
5 // tolua_begin
7 {
8 public:
9 
11  enum eType
12  {
14  effSpeed = 1,
16  effHaste = 3,
22  effNausea = 9,
30  effHunger = 17,
32  effPoison = 19,
33  effWither = 20,
37  } ;
38 
40  static int GetPotionColor(short a_ItemDamage);
41 
42 
44  static cEntityEffect::eType GetPotionEffectType(short a_ItemDamage);
45 
46 
48  static short GetPotionEffectIntensity(short a_ItemDamage);
49 
50 
52  static int GetPotionEffectDuration(short a_ItemDamage);
53 
55  static bool IsPotionDrinkable(short a_ItemDamage);
56 
57  // tolua_end
58 
60  cEntityEffect(void);
61 
66  cEntityEffect(int a_Duration, short a_Intensity, double a_DistanceModifier = 1);
67 
70  cEntityEffect(const cEntityEffect & a_OtherEffect);
71 
74  cEntityEffect & operator =(cEntityEffect a_OtherEffect);
75 
76  virtual ~cEntityEffect(void) = default;
77 
84  static std::unique_ptr<cEntityEffect> CreateEntityEffect(cEntityEffect::eType a_EffectType, int a_Duration, short a_Intensity, double a_DistanceModifier);
85 
87  int GetTicks(void) const { return m_Ticks; }
88 
90  int GetDuration(void) const { return m_Duration; }
91 
93  short GetIntensity(void) const { return m_Intensity; }
94 
96  double GetDistanceModifier(void) const { return m_DistanceModifier; }
97 
98  void SetTicks(int a_Ticks) { m_Ticks = a_Ticks; }
99  void SetDuration(int a_Duration) { m_Duration = a_Duration; }
100  void SetIntensity(short a_Intensity) { m_Intensity = a_Intensity; }
101  void SetDistanceModifier(double a_DistanceModifier) { m_DistanceModifier = a_DistanceModifier; }
102 
105  virtual void OnTick(cPawn & a_Target);
106 
108  virtual void OnActivate(cPawn & a_Target) { }
109 
111  virtual void OnDeactivate(cPawn & a_Target) { }
112 
113 protected:
115  int m_Ticks;
116 
119 
121  short m_Intensity;
122 
125 }; // tolua_export
126 
127 
128 
129 
130 
132  public cEntityEffect
133 {
135 
136 public:
137 
138  cEntityEffectSpeed(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
139  Super(a_Duration, a_Intensity, a_DistanceModifier)
140  {
141  }
142 
143  virtual void OnActivate(cPawn & a_Target) override;
144 
145  virtual void OnDeactivate(cPawn & a_Target) override;
146 };
147 
148 
149 
150 
151 
153  public cEntityEffect
154 {
156 
157 public:
158 
159  cEntityEffectSlowness(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
160  Super(a_Duration, a_Intensity, a_DistanceModifier)
161  {
162  }
163 
164  virtual void OnActivate(cPawn & a_Target) override;
165 
166  virtual void OnDeactivate(cPawn & a_Target) override;
167 };
168 
169 
170 
171 
172 
174  public cEntityEffect
175 {
177 
178 public:
179 
180  cEntityEffectHaste(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
181  Super(a_Duration, a_Intensity, a_DistanceModifier)
182  {
183  }
184 };
185 
186 
187 
188 
189 
191  public cEntityEffect
192 {
194 
195 public:
196 
197  cEntityEffectMiningFatigue(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
198  Super(a_Duration, a_Intensity, a_DistanceModifier)
199  {
200  }
201 };
202 
203 
204 
205 
206 
208  public cEntityEffect
209 {
211 
212 public:
213 
214  cEntityEffectStrength(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
215  Super(a_Duration, a_Intensity, a_DistanceModifier)
216  {
217  }
218 };
219 
220 
221 
222 
223 
225  public cEntityEffect
226 {
228 
229 public:
230 
231  cEntityEffectInstantHealth(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
232  Super(a_Duration, a_Intensity, a_DistanceModifier)
233  {
234  }
235 
236  virtual void OnActivate(cPawn & a_Target) override;
237 };
238 
239 
240 
241 
242 
244  public cEntityEffect
245 {
247 
248 public:
249 
250  cEntityEffectInstantDamage(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
251  Super(a_Duration, a_Intensity, a_DistanceModifier)
252  {
253  }
254 
255  virtual void OnActivate(cPawn & a_Target) override;
256 };
257 
258 
259 
260 
261 
263  public cEntityEffect
264 {
266 
267 public:
268 
269  cEntityEffectJumpBoost(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
270  Super(a_Duration, a_Intensity, a_DistanceModifier)
271  {
272  }
273 };
274 
275 
276 
277 
278 
280  public cEntityEffect
281 {
283 
284 public:
285 
286  cEntityEffectNausea(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
287  Super(a_Duration, a_Intensity, a_DistanceModifier)
288  {
289  }
290 };
291 
292 
293 
294 
295 
297  public cEntityEffect
298 {
300 
301 public:
302 
303  cEntityEffectRegeneration(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
304  Super(a_Duration, a_Intensity, a_DistanceModifier)
305  {
306  }
307 
308  virtual void OnTick(cPawn & a_Target) override;
309 };
310 
311 
312 
313 
314 
316  public cEntityEffect
317 {
319 
320 public:
321 
322  cEntityEffectResistance(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
323  Super(a_Duration, a_Intensity, a_DistanceModifier)
324  {
325  }
326 };
327 
328 
329 
330 
331 
333  public cEntityEffect
334 {
336 
337 public:
338 
339  cEntityEffectFireResistance(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
340  Super(a_Duration, a_Intensity, a_DistanceModifier)
341  {
342  }
343 };
344 
345 
346 
347 
348 
350  public cEntityEffect
351 {
353 
354 public:
355 
356  cEntityEffectWaterBreathing(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
357  Super(a_Duration, a_Intensity, a_DistanceModifier)
358  {
359  }
360 };
361 
362 
363 
364 
365 
367  public cEntityEffect
368 {
370 
371 public:
372 
373  cEntityEffectInvisibility(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
374  Super(a_Duration, a_Intensity, a_DistanceModifier)
375  {
376  }
377 
378  virtual void OnActivate (cPawn & a_Target) override { BroadcastMetadata(a_Target); }
379  virtual void OnDeactivate(cPawn & a_Target) override { BroadcastMetadata(a_Target); }
380 
381 private:
382  static void BroadcastMetadata(cPawn & a_Target);
383 };
384 
385 
386 
387 
388 
390  public cEntityEffect
391 {
393 
394 public:
395 
396  cEntityEffectBlindness(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
397  Super(a_Duration, a_Intensity, a_DistanceModifier)
398  {
399  }
400 };
401 
402 
403 
404 
405 
407  public cEntityEffect
408 {
410 
411 public:
412 
413  cEntityEffectNightVision(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
414  Super(a_Duration, a_Intensity, a_DistanceModifier)
415  {
416  }
417 };
418 
419 
420 
421 
422 
424  public cEntityEffect
425 {
427 
428 public:
429 
430  cEntityEffectHunger(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
431  Super(a_Duration, a_Intensity, a_DistanceModifier)
432  {
433  }
434 
435  // cEntityEffect overrides:
436  virtual void OnTick(cPawn & a_Target) override;
437 };
438 
439 
440 
441 
442 
444  public cEntityEffect
445 {
447 
448 public:
449 
450  cEntityEffectWeakness(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
451  Super(a_Duration, a_Intensity, a_DistanceModifier)
452  {
453  }
454 
455  // cEntityEffect overrides:
456  virtual void OnTick(cPawn & a_Target) override;
457 };
458 
459 
460 
461 
462 
464  public cEntityEffect
465 {
467 
468 public:
469 
470  cEntityEffectPoison(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
471  Super(a_Duration, a_Intensity, a_DistanceModifier)
472  {
473  }
474 
475  // cEntityEffect overrides:
476  virtual void OnTick(cPawn & a_Target) override;
477 };
478 
479 
480 
481 
482 
484  public cEntityEffect
485 {
487 
488 public:
489 
490  cEntityEffectWither(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
491  Super(a_Duration, a_Intensity, a_DistanceModifier)
492  {
493  }
494 
495  // cEntityEffect overrides:
496  virtual void OnTick(cPawn & a_Target) override;
497 };
498 
499 
500 
501 
502 
504  public cEntityEffect
505 {
507 
508 public:
509 
510  cEntityEffectHealthBoost(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
511  Super(a_Duration, a_Intensity, a_DistanceModifier)
512  {
513  }
514 };
515 
516 
517 
518 
519 
521  public cEntityEffect
522 {
524 
525 public:
526 
527  cEntityEffectAbsorption(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
528  Super(a_Duration, a_Intensity, a_DistanceModifier)
529  {
530  }
531 };
532 
533 
534 
535 
536 
538  public cEntityEffect
539 {
541 
542 public:
543 
544  cEntityEffectSaturation(int a_Duration, short a_Intensity, double a_DistanceModifier = 1):
545  Super(a_Duration, a_Intensity, a_DistanceModifier)
546  {
547  }
548 
549  virtual void OnTick(cPawn & a_Target) override;
550 };
551 
552 
553 
554 
virtual void OnDeactivate(cPawn &a_Target)
Called when the effect is removed from an entity.
Definition: EntityEffect.h:111
virtual ~cEntityEffect(void)=default
static int GetPotionEffectDuration(short a_ItemDamage)
Returns the effect duration, in ticks, based on the potion's damage value.
double m_DistanceModifier
The distance modifier for affecting potency.
Definition: EntityEffect.h:124
static int GetPotionColor(short a_ItemDamage)
Returns the potion color (used by the client for visuals), based on the potion's damage value.
short GetIntensity(void) const
Returns how strong the effect will be applied.
Definition: EntityEffect.h:93
int m_Duration
How long this effect will last, in ticks.
Definition: EntityEffect.h:118
void SetDistanceModifier(double a_DistanceModifier)
Definition: EntityEffect.h:101
eType
All types of entity effects (numbers correspond to protocol / storage types)
Definition: EntityEffect.h:12
int GetDuration(void) const
Returns the duration of the effect.
Definition: EntityEffect.h:90
cEntityEffect(void)
Creates an empty entity effect.
void SetDuration(int a_Duration)
Definition: EntityEffect.h:99
virtual void OnActivate(cPawn &a_Target)
Called when the effect is first added to an entity.
Definition: EntityEffect.h:108
void SetTicks(int a_Ticks)
Definition: EntityEffect.h:98
int m_Ticks
How many ticks this effect has been active for.
Definition: EntityEffect.h:115
int GetTicks(void) const
Returns how many ticks this effect has been active for.
Definition: EntityEffect.h:87
short m_Intensity
How strong the effect will be applied.
Definition: EntityEffect.h:121
static std::unique_ptr< cEntityEffect > CreateEntityEffect(cEntityEffect::eType a_EffectType, int a_Duration, short a_Intensity, double a_DistanceModifier)
Creates a pointer to the proper entity effect from the effect type.
void SetIntensity(short a_Intensity)
Definition: EntityEffect.h:100
static bool IsPotionDrinkable(short a_ItemDamage)
Returns true if the potion with the given damage is drinkable.
virtual void OnTick(cPawn &a_Target)
Called on each tick.
cEntityEffect & operator=(cEntityEffect a_OtherEffect)
Creates an entity effect by copying another.
double GetDistanceModifier(void) const
Returns the distance modifier for affecting potency.
Definition: EntityEffect.h:96
static short GetPotionEffectIntensity(short a_ItemDamage)
Retrieves the intensity level from the potion's damage value.
static cEntityEffect::eType GetPotionEffectType(short a_ItemDamage)
Translates the potion's damage value into the entity effect that the potion gives.
cEntityEffectSpeed(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:138
virtual void OnDeactivate(cPawn &a_Target) override
Called when the effect is removed from an entity.
virtual void OnActivate(cPawn &a_Target) override
Called when the effect is first added to an entity.
virtual void OnDeactivate(cPawn &a_Target) override
Called when the effect is removed from an entity.
cEntityEffectSlowness(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:159
virtual void OnActivate(cPawn &a_Target) override
Called when the effect is first added to an entity.
cEntityEffectHaste(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:180
cEntityEffectMiningFatigue(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:197
cEntityEffectStrength(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:214
cEntityEffectInstantHealth(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:231
virtual void OnActivate(cPawn &a_Target) override
Called when the effect is first added to an entity.
virtual void OnActivate(cPawn &a_Target) override
Called when the effect is first added to an entity.
cEntityEffectInstantDamage(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:250
cEntityEffectJumpBoost(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:269
cEntityEffectNausea(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:286
virtual void OnTick(cPawn &a_Target) override
Called on each tick.
cEntityEffectRegeneration(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:303
cEntityEffectResistance(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:322
cEntityEffectFireResistance(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:339
cEntityEffectWaterBreathing(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:356
virtual void OnActivate(cPawn &a_Target) override
Called when the effect is first added to an entity.
Definition: EntityEffect.h:378
cEntityEffectInvisibility(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:373
static void BroadcastMetadata(cPawn &a_Target)
virtual void OnDeactivate(cPawn &a_Target) override
Called when the effect is removed from an entity.
Definition: EntityEffect.h:379
cEntityEffectBlindness(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:396
cEntityEffectNightVision(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:413
virtual void OnTick(cPawn &a_Target) override
Called on each tick.
cEntityEffectHunger(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:430
cEntityEffectWeakness(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:450
virtual void OnTick(cPawn &a_Target) override
Called on each tick.
virtual void OnTick(cPawn &a_Target) override
Called on each tick.
cEntityEffectPoison(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:470
virtual void OnTick(cPawn &a_Target) override
Called on each tick.
cEntityEffectWither(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:490
cEntityEffectHealthBoost(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:510
cEntityEffectAbsorption(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:527
cEntityEffectSaturation(int a_Duration, short a_Intensity, double a_DistanceModifier=1)
Definition: EntityEffect.h:544
virtual void OnTick(cPawn &a_Target) override
Called on each tick.
Definition: Pawn.h:17