]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/mutators/mutator/bloodloss/sv_bloodloss.qc
Fix waypoints for warpzones with oblique or horizontal warp plane
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / bloodloss / sv_bloodloss.qc
1 #include "sv_bloodloss.qh"
2
3 REGISTER_MUTATOR(bloodloss, cvar("g_bloodloss"));
4
5 .float bloodloss_timer;
6
7 MUTATOR_HOOKFUNCTION(bloodloss, PlayerPreThink)
8 {
9         entity player = M_ARGV(0, entity);
10
11         if(IS_PLAYER(player))
12         if(player.health <= autocvar_g_bloodloss && !IS_DEAD(player))
13         {
14                 PHYS_INPUT_BUTTON_CROUCH(player) = true;
15
16                 if(time >= player.bloodloss_timer)
17                 {
18                         if(player.vehicle)
19                                 vehicles_exit(player.vehicle, VHEF_RELEASE);
20                         if(player.event_damage)
21                                 player.event_damage(player, player, player, 1, DEATH_ROT.m_id, player.origin, '0 0 0');
22                         player.bloodloss_timer = time + 0.5 + random() * 0.5;
23                 }
24         }
25 }
26
27 MUTATOR_HOOKFUNCTION(bloodloss, PlayerJump)
28 {
29         entity player = M_ARGV(0, entity);
30
31         if(player.health <= autocvar_g_bloodloss)
32                 return true;
33 }
34
35 MUTATOR_HOOKFUNCTION(bloodloss, BuildMutatorsString)
36 {
37         M_ARGV(0, string) = strcat(M_ARGV(0, string), ":bloodloss");
38 }
39
40 MUTATOR_HOOKFUNCTION(bloodloss, BuildMutatorsPrettyString)
41 {
42         M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Blood loss");
43 }