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