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