]> icculus.org git repositories - divverent/nexuiz.git/blob - TeamNexuiz/game/gamec/tfmenus.c
git-svn-id: svn://svn.icculus.org/nexuiz/trunk@775 f962a42d-fe04-0410-a3ab-8c8b0445ebaa
[divverent/nexuiz.git] / TeamNexuiz / game / gamec / tfmenus.c
1 /*\r
2 \r
3   */\r
4 \r
5 //move to tfdefs:\r
6 .entity building;\r
7 \r
8 // Menus/Menu Input references\r
9 void () Menu_EngineerFix_Tesla;\r
10 void (float inp) Menu_EngineerFix_Tesla_Input;\r
11 \r
12 // Resets the menu\r
13 void() ResetMenu = \r
14 {\r
15         if (self.StatusBarSize == TF_FLARE_LIT)\r
16         {\r
17                 CenterPrint(self, "\n");\r
18         }\r
19         else\r
20         {\r
21                 self.StatusRefreshTime = time + 0.1;\r
22         }\r
23         self.menu_count = 25;\r
24         self.current_menu = TF_FLARE_OFF;\r
25 };\r
26 \r
27 // This calls the function which displays the menu\r
28 void () Player_Menu =\r
29 {\r
30         if ((self.menu_count > 25.000000))\r
31         {\r
32                 self.menu_count = 0.000000;\r
33         }\r
34         else\r
35         {\r
36                 self.menu_count = (self.menu_count + 1.000000);\r
37                 return;\r
38         }\r
39         if (self.current_menu == 666)\r
40         {\r
41                 //Menu_Blah()\r
42                 return;\r
43         }\r
44         else if ((self.current_menu == 18))\r
45         {\r
46                 Menu_EngineerFix_Tesla ();\r
47         }\r
48         else\r
49         {\r
50                 self.current_menu = TF_FLARE_LIT;\r
51         }\r
52 };\r
53 \r
54 void(float menu_no) DisplayMenu = \r
55 {\r
56         self.current_menu = menu_no;\r
57         if (menu_no == 2)\r
58         {\r
59                 //Menu_Team();                          // menu team & menu class are now handled by GUIs (see cl_client.c)\r
60         }\r
61         else\r
62         {\r
63                 if (menu_no == 3)\r
64                 {\r
65                         //Menu_Class();\r
66                 }\r
67         }\r
68 };\r
69 \r
70 // Menu input (user can press 0 - 9)\r
71 void(float inp) Menu_Input = \r
72 {\r
73         if ((self.current_menu == 18))\r
74         {\r
75                 Menu_EngineerFix_Tesla_Input (inp);\r
76         }\r
77 };\r
78 \r
79 // Tesla Menu\r
80 void () Menu_EngineerFix_Tesla =\r
81 {\r
82         CenterPrint (self, "Tesla Modification Lab: ^16^7 Upgrades Max\n[^11^7] Upgrade Voltage           - 1u\n[^12^7] Upgrade Amperage          - 1u\n[^13^7] Upgrade Power Supply      - 1u\n[^14^7] Make TeslaTurret(tm)      - 2u\n[^15^7] Improved Targeting System - 2u\n[^16^7] Add Spy Detector          - 4u\n[^17^7] Repair and Recharge           \n[^18^7] Dismantle                     \n[^19^7] Îïôèéîç                       ");\r
83 };\r
84 \r
85 // Tesla Menu Input\r
86 void (float inp) Menu_EngineerFix_Tesla_Input =\r
87 {\r
88         local string temp;\r
89         local float cost;\r
90         local float maxcells;\r
91 \r
92         if (((self.classname != "player") || (self.building == world)))\r
93         {\r
94                 return;\r
95         }\r
96 \r
97         if ((inp == 1))\r
98         {\r
99                 if ((self.building.ammo_shells >= 3))\r
100                 {\r
101                         sprint (self, "You can only upgrade voltage 3 times\n");\r
102                 }\r
103                 else\r
104                 {\r
105                         if ((self.building.currentammo >= 6))\r
106                         {\r
107                                 sprint (self, "You can only have \98 upgrades on the gun\n");\r
108                         }\r
109                         else\r
110                         {\r
111                                 if ((self.ammo_cells >= 100))\r
112                                 {\r
113                                         self.ammo_cells = (self.ammo_cells - 100);\r
114                                         self.building.ammo_shells = (self.building.ammo_shells + 1);\r
115                                         self.building.waitmin = ((self.building.ammo_shells + 2) * (self.building.ammo_nails + 2));\r
116                                         self.building.currentammo = (self.building.currentammo + 1);\r
117                                 }\r
118                                 else\r
119                                 {\r
120                                         sprint (self, "You need more cells to upgrade the tesla\n");\r
121                                 }\r
122                         }\r
123                 }\r
124         }\r
125         if ((inp == 2))\r
126         {\r
127                 if ((self.building.ammo_nails >= 3))\r
128                 {\r
129                         sprint (self, "You can only upgrade amperage 3 times\n");\r
130                 }\r
131                 else\r
132                 {\r
133                         if ((self.building.currentammo >= 6))\r
134                         {\r
135                                 sprint (self, "You can only have \98 upgrades on the gun\n");\r
136                         }\r
137                         else\r
138                         {\r
139                                 if ((self.ammo_cells >= 100))\r
140                                 {\r
141                                         self.ammo_cells = (self.ammo_cells - 100);\r
142                                         self.building.ammo_nails = (self.building.ammo_nails + 1);\r
143                                         self.building.waitmin = ((self.building.ammo_shells + 2) * (self.building.ammo_nails + 2));\r
144                                         self.building.currentammo = (self.building.currentammo + 1);\r
145                                 }\r
146                                 else\r
147                                 {\r
148                                         sprint (self, "You need more cells to upgrade the tesla\n");\r
149                                 }\r
150                         }\r
151                 }\r
152         }\r
153         if ((inp == 3))\r
154         {\r
155                 if ((self.building.ammo_rockets >= 3))\r
156                 {\r
157                         sprint (self, "You can only upgrade the capacitor 3 times\n");\r
158                 }\r
159                 else\r
160                 {\r
161                         if ((self.building.currentammo >= 6))\r
162                         {\r
163                                 sprint (self, "You can only have \98 upgrades on the gun\n");\r
164                         }\r
165                         else\r
166                         {\r
167                                 if ((self.ammo_cells >= 100))\r
168                                 {\r
169                                         self.ammo_cells = (self.ammo_cells - 100);\r
170                                         self.building.ammo_rockets = (self.building.ammo_rockets + 1);\r
171                                         self.building.currentammo = (self.building.currentammo + 1);\r
172                                         if ((self.building.ammo_rockets == 1))\r
173                                         {\r
174                                                 self.building.max_health = (self.building.max_health + 100);\r
175                                                 self.building.health = (self.building.health + 100);\r
176                                                 self.building.ammo_cells = 120;\r
177                                         }\r
178                                         else\r
179                                         {\r
180                                                 if ((self.building.ammo_rockets == 2))\r
181                                                 {\r
182                                                         self.building.max_health = (self.building.max_health + 150);\r
183                                                         self.building.health = (self.building.health + 150);\r
184                                                         self.building.ammo_cells = 200;\r
185                                                 }\r
186                                                 else\r
187                                                 {\r
188                                                         if ((self.building.ammo_rockets == 3))\r
189                                                         {\r
190                                                                 self.building.max_health = (self.building.max_health + 150);\r
191                                                                 self.building.health = (self.building.health + 150);\r
192                                                                 self.building.ammo_cells = 300;\r
193                                                         }\r
194                                                 }\r
195                                         }\r
196                                 }\r
197                                 else\r
198                                 {\r
199                                         sprint (self, "You need more cells to upgrade the tesla\n");\r
200                                 }\r
201                         }\r
202                 }\r
203         }\r
204         if ((inp == 4))\r
205         {\r
206                 if ((self.building.tf_items & 2))\r
207                 {\r
208                         sprint (self, "It is already a turret!\n");\r
209                 }\r
210                 else\r
211                 {\r
212                         if ((self.building.currentammo > (6 - 2)))\r
213                         {\r
214                                 sprint (self, "This requires two upgrades, sorry\n");\r
215                         }\r
216                         else\r
217                         {\r
218                                 if ((self.ammo_cells >= (2 * 100)))\r
219                                 {\r
220                                         self.ammo_cells = (self.ammo_cells - (2 * 100));\r
221                                         if ((self.ammo_cells < 0))\r
222                                         {\r
223                                                 self.ammo_cells = 0;\r
224                                         }\r
225                                         self.building.currentammo = (self.building.currentammo + 2);\r
226                                         if ((self.building.tf_items & 2))\r
227                                         {\r
228                                                 sprint (self, "Gun is already deployed\n");\r
229                                         }\r
230                                         else\r
231                                         {\r
232                                                 self.building.origin_z = (self.building.origin_z + 15);\r
233                                                 if (0)\r
234                                                 {\r
235                                                         sprint (self, "You need a clear area to launch\n");\r
236                                                         self.building.origin_z = (self.building.origin_z - 15);\r
237                                                 }\r
238                                                 else\r
239                                                 {\r
240                                                         self.building.origin_z = (self.building.origin_z + 25);\r
241                                                         sprint (self, "You turretize your tesla\n");\r
242                                                         self.has_turretized_tesla = 1;\r
243                                                         self.building.angles_z = 180;\r
244                                                         self.building.flags = (self.building.flags - (self.building.flags & 512));\r
245                                                         self.building.movetype = 5;\r
246                                                         self.building.velocity_z = 200;\r
247                                                         setsize (self.building, '-16.000000 -16.000000 -40.000000', '16.000000 16.000000 -10.000000');\r
248                                                         self.building.tf_items = (self.building.tf_items | 2);\r
249                                                 }\r
250                                         }\r
251                                 }\r
252                                 else\r
253                                 {\r
254                                         sprint (self, "You need more cells to upgrade the tesla\n");\r
255                                 }\r
256                         }\r
257                 }\r
258         }\r
259         if ((inp == 5))\r
260         {\r
261                 if ((self.building.tf_items & 1))\r
262                 {\r
263                         sprint (self, "It already has an improved targeter\n");\r
264                 }\r
265                 else\r
266                 {\r
267                         if ((self.building.currentammo > (6 - 2)))\r
268                         {\r
269                                 sprint (self, "This requires two upgrades, hence the '2u'...\n");\r
270                         }\r
271                         else\r
272                         {\r
273                                 if ((self.ammo_cells >= (2 * 100)))\r
274                                 {\r
275                                         self.ammo_cells = (self.ammo_cells - (2 * 100));\r
276                                         if ((self.ammo_cells < 0))\r
277                                         {\r
278                                                 self.ammo_cells = 0;\r
279                                         }\r
280                                         self.building.currentammo = (self.building.currentammo + 2);\r
281                                         self.building.tf_items = (self.building.tf_items | 1);\r
282                                 }\r
283                                 else\r
284                                 {\r
285                                         sprint (self, "You need more cells to upgrade the tesla\n");\r
286                                 }\r
287                         }\r
288                 }\r
289         }\r
290         if ((inp == 6))\r
291         {\r
292                 if ((self.building.tf_items & 1024))\r
293                 {\r
294                         sprint (self, "You already built a spy detector\n");\r
295                 }\r
296                 else\r
297                 {\r
298                         if ((self.building.currentammo > (6 - 4)))\r
299                         {\r
300                                 sprint (self, "Spy detector takes 4 upgrades\n");\r
301                         }\r
302                         else\r
303                         {\r
304                                 if ((self.ammo_cells >= (2 * 100)))\r
305                                 {\r
306                                         self.ammo_cells = (self.ammo_cells - (4 * 100));\r
307                                         if ((self.ammo_cells < 0))\r
308                                         {\r
309                                                 self.ammo_cells = 0;\r
310                                         }\r
311                                         self.building.currentammo = (self.building.currentammo + 4);\r
312                                         self.building.tf_items = (self.building.tf_items | 1024);\r
313                                 }\r
314                                 else\r
315                                 {\r
316                                         sprint (self, "You need more cells to upgrade the tesla\n");\r
317                                 }\r
318                         }\r
319                 }\r
320         }\r
321         if ((inp == 7))\r
322         {\r
323                 if ((self.building.health < self.building.max_health))\r
324                 {\r
325                         cost = (self.building.max_health - self.building.health) / 2;\r
326                         if ((self.ammo_cells >= cost))\r
327                         {\r
328                                 self.ammo_cells = (self.ammo_cells - cost);\r
329                                 self.building.health = self.building.max_health;\r
330                         }\r
331                 }\r
332                 if ((self.building.ammo_rockets == 0))\r
333                 {\r
334                         maxcells = 120;\r
335                 }\r
336                 else\r
337                 {\r
338                         if ((self.building.ammo_rockets == 1))\r
339                         {\r
340                                 maxcells = 120;\r
341                         }\r
342                         else\r
343                         {\r
344                                 if ((self.building.ammo_rockets == 2))\r
345                                 {\r
346                                         maxcells = 200;\r
347                                 }\r
348                                 else\r
349                                 {\r
350                                         if ((self.building.ammo_rockets == 3))\r
351                                         {\r
352                                                 maxcells = 300;\r
353                                         }\r
354                                 }\r
355                         }\r
356                 }\r
357                 cost = maxcells - self.building.ammo_cells;\r
358                 if ((cost > self.ammo_cells))\r
359                 {\r
360                         cost = self.ammo_cells;\r
361                 }\r
362                 self.ammo_cells = (self.ammo_cells - cost);\r
363                 self.building.ammo_cells = (self.building.ammo_cells + cost);\r
364         }\r
365         if ((inp == 8))\r
366         {\r
367                 sprint (self, "You dismantle the Tesla Gun.\n");\r
368                 self.ammo_cells = (self.ammo_cells + (150 / 2));\r
369                 self.building.real_owner.has_tesla = 0;\r
370                 self.building.real_owner.has_turretized_tesla = 0;\r
371                 if ((self.building.real_owner.team_no != self.team_no))\r
372                 {\r
373                         self.real_frags = (self.real_frags + 1);\r
374                         if (!(toggleflags & 128))\r
375                         {\r
376                                 self.frags = self.real_frags;\r
377                         }\r
378                 }\r
379                 if ((self.building.real_owner != self))\r
380                 {\r
381                         sprint (self.building.real_owner, self.netname); \r
382                         sprint (self.building.real_owner, " dismantled your Tesla Coil.\n");\r
383                         teamsprint (self.building.real_owner.team_no, self.building.real_owner, self.netname);\r
384                         teamsprint (self.building.real_owner.team_no, self.building.real_owner, " dismantled ");\r
385                         teamsprint (self.building.real_owner.team_no, self.building.real_owner, self.building.real_owner.netname);\r
386                         teamsprint (self.building.real_owner.team_no, self.building.real_owner, "'s Tesla Coil.\n");\r
387                 }\r
388                 dremove (self.building);\r
389         }\r
390         if (((inp >= 1) && (inp <= 9)))\r
391         {\r
392                 ResetMenu ();\r
393                 self.impulse = 0;\r
394                 bound_other_ammo (self);\r
395                 if ((self.armorvalue == 0))\r
396                 {\r
397                         self.armortype = 0;\r
398                         self.armorclass = 0;\r
399                         self.items = (self.items - (self.items & ((8192 | 16384) | 32768)));\r
400                 }\r
401                 W_SetCurrentAmmo ();\r
402         }\r
403 };