6 #include <common/weapons/_all.qh>
7 #include <common/stats.qh>
8 #include <server/items/items.qh>
9 #include <server/miscfunctions.qh>
10 #include <lib/warpzone/common.qh>
11 #include <common/constants.qh>
12 #include <common/teams.qh>
13 #include <common/util.qh>
14 #include <common/weapons/_all.qh>
15 #include "weapons/accuracy.qh"
16 #include "weapons/csqcprojectile.qh"
17 #include "weapons/selection.qh"
18 #include "autocvars.qh"
19 #include <common/notifications/all.qh>
20 #include <common/deathtypes/all.qh>
21 #include <server/mutators/_mod.qh>
22 #include <common/turrets/sv_turrets.qh>
23 #include <common/vehicles/all.qh>
24 #include <lib/csqcmodel/sv_model.qh>
25 #include <common/playerstats.qh>
28 #include "spawnpoints.qh"
31 .void(entity this, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force) event_damage;
33 .bool(entity targ, entity inflictor, float amount, float limit) event_heal;
40 bool Damage_DamageInfo_SendEntity(entity this, entity to, int sf);
42 void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad, vector force, int deathtype, float bloodtype, entity dmgowner);
44 float checkrules_firstblood;
46 .float damagedbycontents;
47 .float damagedbytriggers;
50 float damage_goodhits;
51 float damage_gooddamage;
53 .float pain_finished; // Added by Supajoe
56 .float teamkill_complain;
57 .float teamkill_soundtime;
58 .entity teamkill_soundsource;
61 .float taunt_soundtime;
63 .float spawnshieldtime;
71 .float damage_dealt, typehitsound, killsound;
73 // used for custom deathtype
76 float IsFlying(entity a);
78 void UpdateFrags(entity player, int f);
80 // NOTE: f=0 means still count as a (positive) kill, but count no frags for it
81 void W_SwitchWeapon_Force(Player this, Weapon w, .entity weaponentity);
82 void GiveFrags (entity attacker, entity targ, float f, int deathtype, .entity weaponentity);
84 string AppendItemcodes(string s, entity player);
86 void LogDeath(string mode, int deathtype, entity killer, entity killed);
88 void Obituary_SpecialDeath(
92 string s1, string s2, string s3,
93 float f1, float f2, float f3);
96 float Obituary_WeaponDeath(
100 string s1, string s2, string s3,
103 void Obituary(entity attacker, entity inflictor, entity targ, int deathtype, .entity weaponentity);
105 // Frozen status effect
106 //const int FROZEN_NOT = 0;
107 const int FROZEN_NORMAL = 1;
108 const int FROZEN_TEMP_REVIVING = 2;
109 const int FROZEN_TEMP_DYING = 3;
111 .float revival_time; // time at which player was last revived
112 .float revive_speed; // NOTE: multiplier (anything above 1 is instaheal)
115 .entity frozen_by; // for ice fields
117 void Ice_Think(entity this);
119 void Freeze(entity targ, float revivespeed, int frozen_type, bool show_waypoint);
121 void Unfreeze(entity targ, bool reset_health);
124 #define DMG_NOWEP (weaponentities[0])
126 // NOTE: the .weaponentity parameter can be set to DMG_NOWEP if the attack wasn't caused by a weapon or player
127 void Damage (entity targ, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force);
129 float RadiusDamage_running;
130 float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector inflictorvelocity, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float inflictorselfdamage, float forceintensity, float forcezscale, int deathtype, .entity weaponentity, entity directhitentity);
131 // Returns total damage applies to creatures
133 float RadiusDamage (entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype, .entity weaponentity, entity directhitentity);
135 .float damageforcescale;
136 const float MIN_DAMAGEEXTRARADIUS = 2;
137 const float MAX_DAMAGEEXTRARADIUS = 16;
138 .float damageextraradius;
140 // Calls .event_heal on the target so that they can handle healing themselves
141 // a limit of RES_LIMIT_NONE should be handled by the entity as its max health (if applicable)
142 bool Heal(entity targ, entity inflictor, float amount, float limit);
144 .float fire_damagepersec;
146 .float fire_deathtype;
148 .float fire_hitsound;
151 void fireburner_think(entity this);
153 float Fire_IsBurning(entity e);
155 float Fire_AddDamage(entity e, entity o, float d, float t, float dt);
157 void Fire_ApplyDamage(entity e);
159 void Fire_ApplyEffect(entity e);
161 IntrusiveList g_damagedbycontents;
162 STATIC_INIT(g_damagedbycontents) { g_damagedbycontents = IL_NEW(); }