Xonotic
burning.qc
Go to the documentation of this file.
1 #include "burning.qh"
2 
3 #ifdef SVQC
4 METHOD(Burning, m_remove, void(StatusEffects this, entity actor, int removal_type))
5 {
6  actor.effects &= ~EF_FLAME;
7  SUPER(Burning).m_remove(this, actor, removal_type);
8 }
9 METHOD(Burning, m_persistent, bool(StatusEffects this, entity actor))
10 {
11  return (autocvar_g_balance_contents_playerdamage_lava_burn && actor.waterlevel && actor.watertype == CONTENT_LAVA);
12 }
13 METHOD(Burning, m_tick, void(StatusEffects this, entity actor))
14 {
15  if(STAT(FROZEN, actor) || (actor.waterlevel && actor.watertype != CONTENT_LAVA))
16  {
17  this.m_remove(this, actor, STATUSEFFECT_REMOVE_NORMAL);
18  return;
19  }
20  Fire_ApplyDamage(actor);
21  actor.effects |= EF_FLAME;
22  SUPER(Burning).m_tick(this, actor);
23 }
24 #endif
const float CONTENT_LAVA
Definition: csprogsdefs.qc:240
const float EF_FLAME
Definition: csprogsdefs.qc:302
entity() spawn
Effect is being removed by a function, calls regular removal mechanics.
Definition: all.qh:25
#define METHOD(cname, name, prototype)
Definition: oo.qh:257
int autocvar_g_balance_contents_playerdamage_lava_burn
Definition: main.qh:7
#define SUPER(cname)
Definition: oo.qh:219
void Fire_ApplyDamage(entity e)
Definition: damage.qc:1187