Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
burning.qc
Go to the documentation of this file.
1#include "burning.qh"
2
3#ifdef SVQC
4METHOD(Burning, m_remove, void(StatusEffect this, entity actor, int removal_type))
5{
6 actor.effects &= ~EF_FLAME;
7 SUPER(Burning).m_remove(this, actor, removal_type);
8}
9METHOD(Burning, m_persistent, bool(StatusEffect this, entity actor))
10{
11 return (autocvar_g_balance_contents_playerdamage_lava_burn && actor.waterlevel && actor.watertype == CONTENT_LAVA);
12}
13METHOD(Burning, m_tick, void(StatusEffect 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
void Fire_ApplyDamage(entity e)
Definition damage.qc:1114
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
const float EF_FLAME
const float CONTENT_LAVA
#define STAT(...)
Definition stats.qh:82
@ STATUSEFFECT_REMOVE_NORMAL
Effect is being removed by a function, calls regular removal mechanics.
Definition all.qh:28
#define SUPER(cname)
Definition oo.qh:231
#define METHOD(cname, name, prototype)
Definition oo.qh:269
int autocvar_g_balance_contents_playerdamage_lava_burn
Definition main.qh:7