]> icculus.org git repositories - divverent/nexuiz.git/blob - qcsrc/items.qc
got rid of the hagar and crylink floats
[divverent/nexuiz.git] / qcsrc / items.qc
1
2 .string mdl;
3
4 void Item_Touch (void)
5 {
6         if (other.classname != "player" && other.classname != "bot")
7                 return;
8         if (other.health <= 0)
9                 return;
10                 
11         if (self.ammo_shells)
12                 other.ammo_shells = min (other.ammo_shells + self.ammo_shells, 100);
13         if (self.ammo_nails)
14                 other.ammo_nails = min (other.ammo_nails + self.ammo_nails, 200);
15         if (self.ammo_rockets)
16                 other.ammo_rockets = min (other.ammo_rockets + self.ammo_rockets, 100);
17         if (self.ammo_cells)
18                 other.ammo_cells = min (other.ammo_cells + self.ammo_cells, 100);
19                 
20         if (self.flags & FL_WEAPON)
21         {
22                 if (self.items & IT_UZI)                                        W_GiveWeapon (other, IT_UZI);
23                 else if (self.items & IT_SHOTGUN)                       W_GiveWeapon (other, IT_SHOTGUN);
24                 else if (self.items & IT_GRENADE_LAUNCHER)      W_GiveWeapon (other, IT_GRENADE_LAUNCHER);
25                 else if (self.items & IT_ELECTRO)                       W_GiveWeapon (other, IT_ELECTRO);
26                 else if (self.items & IT_NEX)                           W_GiveWeapon (other, IT_NEX);
27                 else if (self.items & IT_HAGAR)                         W_GiveWeapon (other, IT_HAGAR);
28                 else if (self.items & IT_ROCKET_LAUNCHER)       W_GiveWeapon (other, IT_ROCKET_LAUNCHER);
29                 else if (self.items & IT_CRYLINK)                       W_GiveWeapon (other, IT_CRYLINK);
30         }
31                 
32         if (self.max_health)
33                 other.health = min (other.health + self.max_health, 250);
34         
35         if (other.classname == "player")
36         {
37                 sprint (other, "You got the ");
38                 sprint (other, self.netname);
39                 sprint (other, "\n");
40         }
41         
42         sound (self, CHAN_BODY, "weapons/WeaponPickup.wav", 1, ATTN_NORM);
43         
44         remove (self);
45 }
46
47 void StartItem (void)
48 {
49         self.flags = self.flags | FL_ITEM;
50         setmodel (self, self.mdl);
51         setsize (self, '-8 -8 -8', '8 8 8');
52         self.movetype = MOVETYPE_TOSS;
53         self.solid = SOLID_TRIGGER;
54         self.touch = Item_Touch;
55 }
56
57 void StartWeapon (void)
58 {
59         self.flags = FL_ITEM | FL_WEAPON;
60         setmodel (self, self.mdl);
61         setsize (self, '-12 -12 -12', '12 12 12');
62         self.movetype = MOVETYPE_TOSS;
63         self.solid = SOLID_TRIGGER;
64         self.touch = Item_Touch;
65 }
66
67 void weapon_uzi (void)
68 {
69         self.mdl = "models/g_uzi.md3";
70         self.items = IT_UZI;
71         self.ammo_nails = 50;
72         self.netname = "Uzi";
73         StartWeapon ();
74 }
75
76 void weapon_shotgun (void)
77 {
78         self.mdl = "models/g_shotgun.md3";
79         self.items = IT_SHOTGUN;
80         self.ammo_shells = 10;
81         self.netname = "Shotgun";
82         StartWeapon ();
83 }
84
85 void weapon_grenadelauncher (void)
86 {
87         self.mdl = "models/g_gl.md3";
88         self.items = IT_GRENADE_LAUNCHER;
89         self.ammo_rockets = 3;
90         self.netname = "Grenade Launcher";
91         StartWeapon ();
92 }
93
94 void weapon_electro (void)
95 {
96         self.mdl = "models/g_electro.md3";
97         self.items = IT_ELECTRO;
98         self.ammo_cells = 10;
99         self.netname = "Electro";
100         StartWeapon ();
101 }
102
103 void weapon_crylink (void)
104 {
105         self.mdl = "models/g_crylink.md3";
106         self.items = IT_CRYLINK;
107         self.ammo_cells = 10;
108         self.netname = "Crylink";
109         StartWeapon ();
110 }
111
112 void weapon_nex (void)
113 {
114         self.mdl = "models/g_nex.md3";
115         self.items = IT_NEX;
116         self.ammo_cells = 10;
117         self.netname = "Nex Gun";
118         StartWeapon ();
119 }
120
121 void weapon_hagar (void)
122 {
123         self.mdl = "models/g_hagar.md3";
124         self.items = IT_HAGAR;
125         self.ammo_rockets = 6;
126         self.netname = "Hagar";
127         StartWeapon ();
128 }
129
130 void weapon_rocketlauncher (void)
131 {
132         self.mdl = "models/g_rl.md3";
133         self.items = IT_ROCKET_LAUNCHER;
134         self.ammo_rockets = 5;
135         self.netname = "Rocket Launcher";
136         StartWeapon ();
137 }
138
139 void item_rockets (void)
140 {
141         self.mdl = "models/a_rockets.md3";
142         self.ammo_rockets = 25;
143         self.netname = "rockets";
144         StartItem ();
145 }
146
147 void item_bullets (void)
148 {
149         self.mdl = "models/a_bullets.zym";
150         self.ammo_nails = 100;
151         self.netname = "bullets";
152         StartItem ();
153 }
154
155 void item_cells (void)
156 {
157         self.mdl = "models/a_cells.md3";
158         self.ammo_cells = 50;
159         self.netname = "cells";
160         StartItem ();
161 }
162
163 void item_shells (void)
164 {
165         self.mdl = "models/a_shells.md3";
166         self.ammo_shells = 50;
167         self.netname = "shells";
168         StartItem ();
169 }
170
171 void item_strength (void)
172 {
173         self.mdl = "models/g_strength.zym";
174         self.items = IT_STRENGTH;
175         self.netname = "Strength Powerup";
176         StartItem ();
177 }
178
179 void item_invincible (void)
180 {
181         self.mdl = "models/g_invincible.zym";
182         self.items = IT_INVINCIBLE;
183         self.netname = "Invulnerability";
184         StartItem ();
185 }
186
187 void item_speed (void)
188 {
189         self.mdl = "models/g_speed.zym";
190         self.items = IT_SPEED;
191         self.netname = "Speed Powerup";
192         StartItem ();
193 }
194
195 void item_slowmo (void)
196 {
197         self.mdl = "models/g_slowmo.zym";
198         self.items = IT_SLOWMO;
199         self.netname = "Slow Motion!";
200         StartItem ();
201 }
202
203 void item_armor1 (void)
204 {
205         self.mdl = "models/g_a1.md3";
206         self.armorvalue = 1;
207         self.netname = "Armor Shard";
208         StartItem ();
209 }
210
211 void item_armor25 (void)
212 {
213         self.mdl = "models/g_a25.md3";
214         self.armorvalue = 25;
215         self.netname = "Armor";
216         StartItem ();
217 }
218
219 void item_health1 (void)
220 {
221         self.mdl = "models/g_h1.md3";
222         self.max_health = 1;
223         self.netname = "1 health";
224         StartItem ();
225 }
226
227 void item_health25 (void)
228 {
229         self.mdl = "models/g_h25.md3";
230         self.max_health = 25;
231         self.netname = "25 health";
232         StartItem ();
233 }
234
235 void item_health100 (void)
236 {
237         self.mdl = "models/g_h100.md3";
238         self.max_health = 100;
239         self.netname = "100 health";
240         StartItem ();
241 }
242
243 void misc_model (void)
244 {
245         precache_model (self.model);
246         setmodel (self, self.model);
247         setsize (self, self.mins, self.maxs);
248 }