#include "spawnpoints.qh"
#endif
+.void(entity this, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force) event_damage;
+
+.bool(entity targ, entity inflictor, float amount, float limit) event_heal;
+
.float dmg;
.float dmg_edge;
.float dmg_force;
float checkrules_firstblood;
+.float damagedbycontents;
+.float damagedbytriggers;
+
float yoda;
float damage_goodhits;
float damage_gooddamage;
.int totalfrags;
+// used for custom deathtype
+string deathmessage;
+
float IsFlying(entity a);
void UpdateFrags(entity player, int f);
void Obituary(entity attacker, entity inflictor, entity targ, int deathtype, .entity weaponentity);
+// Frozen status effect
+//const int FROZEN_NOT = 0;
+const int FROZEN_NORMAL = 1;
+const int FROZEN_TEMP_REVIVING = 2;
+const int FROZEN_TEMP_DYING = 3;
+
+.float revival_time; // time at which player was last revived
+.float revive_speed; // NOTE: multiplier (anything above 1 is instaheal)
+.float freeze_time;
+.entity iceblock;
+.entity frozen_by; // for ice fields
+
void Ice_Think(entity this);
-void Freeze(entity targ, float freeze_time, int frozen_type, bool show_waypoint);
+void Freeze(entity targ, float revivespeed, int frozen_type, bool show_waypoint);
void Unfreeze(entity targ, bool reset_health);
+// WEAPONTODO
+#define DMG_NOWEP (weaponentities[0])
+
// NOTE: the .weaponentity parameter can be set to DMG_NOWEP if the attack wasn't caused by a weapon or player
void Damage (entity targ, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force);