]> icculus.org git repositories - divverent/nexuiz.git/blob - qcsrc/impulse.qc
supajoes new stuff
[divverent/nexuiz.git] / qcsrc / impulse.qc
1 void dummyhurt (vector hitloc, float damage)
2 {
3         te_blood (hitloc, '0 0 20', floor (damage * 0.5));
4 }
5
6 void dummydie (vector hitloc, float damage)
7 {
8         vector  vel;
9         
10         te_bloodshower (self.origin + self.mins, self.origin + self.maxs, 600, 500);
11         
12         vel = normalize (self.origin - hitloc) * damage * 4;    // blow gibs away from impact point
13         if (vel_z > 0)
14                 vel_z = vel_z * 2;      // more vertical
15         Gib (vel);
16         
17         remove (self);
18 }
19
20 void CreateDummy (vector org)
21 {
22         entity  dummy;
23         
24         dummy = spawn ();
25         dummy.solid = SOLID_SLIDEBOX;
26         dummy.movetype = MOVETYPE_FLY;
27         dummy.classname = "corpse";
28         dummy.takedamage = DAMAGE_YES;
29         dummy.health = 100;
30         setsize (dummy, PL_MIN, PL_MAX);
31         setorigin (dummy, org);
32         setmodel (dummy, "models/player/player.zym");
33         
34         dummy.event_hurt = dummyhurt;
35         dummy.event_die = dummydie;
36 }
37
38 void ImpulseCommands (void)
39 {
40         if (self.impulse >= 1 && self.impulse <= 9)
41                 W_SwitchWeapon (self.impulse);
42                 
43         else if (self.impulse == 10)
44                 W_NextWeapon ();
45         else if (self.impulse == 12)
46                 W_PreviousWeapon ();
47         else if (self.impulse == 13)
48         {
49                 makevectors (self.v_angle);
50                 CreateDummy (self.origin + self.view_ofs + v_forward * 64);
51         }
52                 
53         self.impulse = 0;
54 }