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