Properly support team field on trigger_multiple
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_damage.qh
1 #pragma once
2
3 #if defined(CSQC)
4 #elif defined(MENUQC)
5 #elif defined(SVQC)
6     #include <server/defs.qh>
7     #include <server/miscfunctions.qh>
8     #include <lib/warpzone/common.qh>
9     #include <common/constants.qh>
10     #include <common/teams.qh>
11     #include <common/util.qh>
12     #include <common/weapons/_all.qh>
13     #include "weapons/accuracy.qh"
14     #include "weapons/csqcprojectile.qh"
15     #include "weapons/selection.qh"
16     #include <common/t_items.qh>
17     #include "autocvars.qh"
18     #include "constants.qh"
19     #include "defs.qh"
20     #include <common/notifications/all.qh>
21     #include <common/deathtypes/all.qh>
22     #include "mutators/_mod.qh"
23     #include <common/turrets/sv_turrets.qh>
24     #include <common/vehicles/all.qh>
25     #include <lib/csqcmodel/sv_model.qh>
26     #include <common/playerstats.qh>
27     #include "g_hook.qh"
28     #include "scores.qh"
29     #include "spawnpoints.qh"
30 #endif
31
32 .float dmg;
33 .float dmg_edge;
34 .float dmg_force;
35 .float dmg_radius;
36
37 bool Damage_DamageInfo_SendEntity(entity this, entity to, int sf);
38
39 void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad, vector force, int deathtype, float bloodtype, entity dmgowner);
40
41 float checkrules_firstblood;
42
43 float yoda;
44 float damage_goodhits;
45 float damage_gooddamage;
46
47 .float dmg_team;
48 .float teamkill_complain;
49 .float teamkill_soundtime;
50 .entity teamkill_soundsource;
51 .entity pusher;
52 .float istypefrag;
53 .float taunt_soundtime;
54
55 float IsFlying(entity a);
56
57 void UpdateFrags(entity player, int f);
58
59 // NOTE: f=0 means still count as a (positive) kill, but count no frags for it
60 void W_SwitchWeapon_Force(Player this, Weapon w, .entity weaponentity);
61 entity GiveFrags_randomweapons;
62 void GiveFrags (entity attacker, entity targ, float f, int deathtype);
63
64 string AppendItemcodes(string s, entity player);
65
66 void LogDeath(string mode, int deathtype, entity killer, entity killed);
67
68 void Obituary_SpecialDeath(
69         entity notif_target,
70         float murder,
71         int deathtype,
72         string s1, string s2, string s3,
73         float f1, float f2, float f3);
74
75 float w_deathtype;
76 float Obituary_WeaponDeath(
77         entity notif_target,
78         float murder,
79         int deathtype,
80         string s1, string s2, string s3,
81         float f1, float f2);
82
83 void Obituary(entity attacker, entity inflictor, entity targ, int deathtype);
84
85 void Ice_Think(entity this);
86
87 void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypoint);
88
89 void Unfreeze (entity targ);
90
91 void Damage (entity targ, entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force);
92
93 float RadiusDamage_running;
94 float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector inflictorvelocity, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float inflictorselfdamage, float forceintensity, int deathtype, entity directhitentity);
95         // Returns total damage applies to creatures
96
97 float RadiusDamage (entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype, entity directhitentity);
98
99 .float fire_damagepersec;
100 .float fire_endtime;
101 .float fire_deathtype;
102 .entity fire_owner;
103 .float fire_hitsound;
104 .entity fire_burner;
105
106 void fireburner_think(entity this);
107
108 float Fire_IsBurning(entity e);
109
110 float Fire_AddDamage(entity e, entity o, float d, float t, float dt);
111
112 void Fire_ApplyDamage(entity e);
113
114 void Fire_ApplyEffect(entity e);