]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/mutators/mutator_bloodloss.qc
Use SELFPARAM() in every function that uses self
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_bloodloss.qc
1 #include "../_all.qh"
2
3 #include "mutator.qh"
4
5 .float bloodloss_timer;
6
7 MUTATOR_HOOKFUNCTION(bloodloss_PlayerThink)
8 {SELFPARAM();
9         if(IS_PLAYER(self))
10         if(self.health <= autocvar_g_bloodloss && self.deadflag == DEAD_NO)
11         {
12                 self.BUTTON_CROUCH = true;
13
14                 if(time >= self.bloodloss_timer)
15                 {
16                         self.event_damage(self, self, 1, DEATH_ROT, self.origin, '0 0 0');
17                         self.bloodloss_timer = time + 0.5 + random() * 0.5;
18                 }
19         }
20
21         return false;
22 }
23
24 MUTATOR_HOOKFUNCTION(bloodloss_PlayerJump)
25 {SELFPARAM();
26         if(self.health <= autocvar_g_bloodloss)
27                 return true;
28
29         return false;
30 }
31
32 MUTATOR_HOOKFUNCTION(bloodloss_BuildMutatorsString)
33 {
34         ret_string = strcat(ret_string, ":bloodloss");
35         return false;
36 }
37
38 MUTATOR_HOOKFUNCTION(bloodloss_BuildMutatorsPrettyString)
39 {
40         ret_string = strcat(ret_string, ", Blood loss");
41         return false;
42 }
43
44 MUTATOR_DEFINITION(mutator_bloodloss)
45 {
46         MUTATOR_HOOK(PlayerPreThink, bloodloss_PlayerThink, CBC_ORDER_ANY);
47         MUTATOR_HOOK(PlayerJump, bloodloss_PlayerJump, CBC_ORDER_ANY);
48         MUTATOR_HOOK(BuildMutatorsString, bloodloss_BuildMutatorsString, CBC_ORDER_ANY);
49         MUTATOR_HOOK(BuildMutatorsPrettyString, bloodloss_BuildMutatorsPrettyString, CBC_ORDER_ANY);
50
51         return false;
52 }