15 vector org = (p1.origin + p2.origin) * 0.5;
16 org.z += (p1.mins.z + p2.mins.z) * 0.5;
19 Send_Effect(EFFECT_EXPLOSION_SMALL, org,
'0 0 0', 1);
23 RadiusDamage(e,
NULL,
autocvar_g_touchexplode_damage,
autocvar_g_touchexplode_edgedamage,
autocvar_g_touchexplode_radius,
NULL,
NULL,
autocvar_g_touchexplode_force, DEATH_TOUCHEXPLODE.m_id,
DMG_NOWEP,
NULL);
35 if(
boxesoverlap(player.absmin, player.absmax, it.absmin, it.absmax))
37 PlayerTouchExplode(player, it);
38 player.touchexplode_time = it.touchexplode_time = time + 0.2;
float autocvar_g_touchexplode_radius
MUTATOR_HOOKFUNCTION(touchexplode, PlayerPreThink)
REGISTER_MUTATOR(touchexplode, expr_evaluate(autocvar_g_touchexplode))
#define IS_INDEPENDENT_PLAYER(e)
#define FOREACH_CLIENT(cond, body)
float autocvar_g_touchexplode_damage
float autocvar_g_touchexplode_force
void PlayerPreThink(entity this)
float autocvar_g_touchexplode_edgedamage
void PlayerTouchExplode(entity p1, entity p2)
ERASEABLE float boxesoverlap(vector m1, vector m2, vector m3, vector m4)
requires that m2>m1 in all coordinates, and that m4>m3
vector(float skel, float bonenum) _skel_get_boneabs_hidden
string autocvar_g_touchexplode
float RadiusDamage(entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype,.entity weaponentity, entity directhitentity)
#define sound(e, c, s, v, a)
ERASEABLE bool expr_evaluate(string s)
Evaluate an expression of the form: [+ | -]? [var[op]val | [op]var | val | var] ...