]> icculus.org git repositories - divverent/nexuiz.git/blob - attic/TeamNexuiz/game/gamec/tfitems.c
moved navnodeedit & TeamNexuiz to attic
[divverent/nexuiz.git] / attic / TeamNexuiz / game / gamec / tfitems.c
1 float (entity e, float healamount, float ignore) T_Heal =\r
2 {\r
3         if ((e.health <= 0))\r
4         {\r
5                 return (0);\r
6         }\r
7         if ((!ignore && (e.health >= e.max_health)))\r
8         {\r
9                 return (0);\r
10         }\r
11         healamount = ceil (healamount);\r
12         e.health = (e.health + healamount);\r
13         if ((!ignore && (e.health >= e.max_health)))\r
14         {\r
15                 e.health = e.max_health;\r
16         }\r
17         if ((e.health > 250))\r
18         {\r
19 \r
20                 e.health = 250;\r
21         }\r
22         /*                                      // There are no snipers in NexTF\r
23         if (e.leg_damage)\r
24         {\r
25                 if ((e.health > 95))\r
26                 {\r
27                         e.leg_damage = 0;\r
28                 }\r
29                 else\r
30                 {\r
31                         e.leg_damage = (e.leg_damage - ceil ((e.health / 20)));\r
32                 }\r
33                 if ((e.leg_damage < 1))\r
34                 {\r
35                         e.leg_damage = 0;\r
36                 }\r
37                 TeamFortress_SetSpeed (e);\r
38         }*/\r
39         return (1);\r
40 };\r
41 \r
42 // Pre-Packed TeamNexuiz items/entities :)\r
43 //backpack\r
44 .string cells;\r
45 .string shells;\r
46 .string rockets;\r
47 .string nails;\r
48 .string metal;\r
49 .string grenade1;\r
50 .string grenade2;\r
51 .string armor;\r
52 \r
53 // TF Map rules\r
54 .string team1limit;\r
55 .string team2limit;\r
56 .string team3limit;\r
57 .string team4limit;\r
58 \r
59 //      Moved the below to tfdefs. These are the "Map_Rules" entity's class restricts.\r
60 /*.float team1_scout, team1_soldier, team1_medic, team1_pyro, team1_spy, team1_engineer;\r
61 .float team2_scout, team2_soldier, team2_medic, team2_pyro, team2_spy, team2_engineer;\r
62 .float team3_scout, team3_soldier, team3_medic, team3_pyro, team3_spy, team3_engineer;\r
63 .float team4_scout, team4_soldier, team4_medic, team4_pyro, team4_spy, team4_engineer;*/\r
64 entity infoent;                 // our class restricts info entity\r
65 \r
66 void() maprules =\r
67 {\r
68         // Amount of teams available on a map are determined by spawn points\r
69 \r
70         // Amount of players per team\r
71         if (self.team1limit)\r
72                 self.ammo_medikit = stof(self.team1limit);\r
73         if (self.team2limit)\r
74                 self.ammo_detpack = stof(self.team2limit);\r
75         if (self.team3limit)\r
76                 self.maxammo_medikit = stof(self.team3limit);\r
77         if (self.team4limit)\r
78                 self.maxammo_detpack = stof(self.team4limit);\r
79 \r
80         if (self.team1_civilian)\r
81                 self.maxammo_shells = -1;\r
82         if (self.team2_civilian)\r
83                 self.maxammo_nails = -1;\r
84         if (self.team3_civilian)\r
85                 self.maxammo_rockets = -1;\r
86         if (self.team4_civilian)\r
87                 self.maxammo_cells = -1;\r
88 \r
89         self.classname = "info_tfdetect";\r
90         ParseTFDetect(self);\r
91 \r
92         infoent = spawn();\r
93         copyentity (self, infoent);\r
94         infoent.classname = "class_restrictions";\r
95 };\r
96 \r
97 // older Team:Nexuiz maps use this, so i'm routing it to "maprules"\r
98 void () Map_Rules =\r
99 {\r
100         self.classname = "maprules";\r
101         maprules();\r
102 };\r
103 \r
104 // Team:Nexuiz backpack\r
105 void () item_backpack =\r
106 {\r
107         if ((!self.mdl) && (!self.model))\r
108         {\r
109                 self.model = "models/objects/backpack/backpack.md3";\r
110         }\r
111         if (self.cells)\r
112                 self.ammo_cells = stof(self.cells);\r
113         if (self.shells)\r
114                 self.ammo_shells = stof(self.shells);\r
115         if (self.rockets)\r
116                 self.ammo_rockets = stof(self.rockets);\r
117         if (self.nails)\r
118                 self.ammo_nails = stof(self.nails);\r
119         if (self.metal)\r
120                 self.ammo_metal = stof(self.metal);\r
121         if (self.grenade1)\r
122                 self.no_grenades_1 = stof(self.grenade1);\r
123         if (self.grenade2)\r
124                 self.no_grenades_2 = stof(self.grenade2);\r
125         if (self.armor)\r
126                 self.armorvalue = stof(self.armor);\r
127         if ((!self.delay) && (!self.wait))\r
128                 self.wait = 10;                 // next time item can be used\r
129         self.give = "converted";\r
130 \r
131         ConvertToBackPack();            // finish conversion using q3f conversion func\r
132 };\r
133 \r
134 // Team:Nexuiz ctf flag (needs to be capped at an item_ctf_goal\r
135 void () item_ctf_flag =\r
136 {\r
137         if (!self.allowteams)\r
138         {\r
139                 bprint("Fixme!! Object located at ",vtos(self.origin)," has no allowteams property set!\n");\r
140                 bprint("allowteams property must be set to either red blue yellow green or any\n");\r
141                 return;\r
142         }\r
143         if ((!self.delay) && (!self.wait))\r
144         {\r
145                 self.wait = 45;                 // next time item can be used\r
146                 self.delay = 45;\r
147         }\r
148         if (!self.carried_message)\r
149                 self.carried_message = "You have the flag! Go capture it in your base!\n";\r
150         if (self.allowteams == "red")\r
151         {\r
152                 self.mdl = "models/flags/b_flag.md3";\r
153                 self.groupname = "redflag";\r
154         }\r
155         else if (self.allowteams == "blue")\r
156         {\r
157                 self.groupname = "blueflag";\r
158                 self.mdl = "models/flags/r_flag.md3";\r
159         }\r
160         else if (self.allowteams == "any")\r
161         {\r
162                 self.groupname = "anyflag";\r
163 //              self.mdl = "models/flags/n_flag.md3";\r
164         }\r
165 \r
166         func_goalitem ();\r
167 };\r
168 \r
169 // where you cap item_ctf_flag or flags spawned by tfq3fitems.c\r
170 .string cap_message;\r
171 void () item_ctf_goal =\r
172 {\r
173         if (!self.teamscore)                    // how many frags are gained by capturing\r
174                 self.teamscore = 10;\r
175         if (!self.message)\r
176                 self.message = "You ÃÁÐÔÕÒÅÄ the ÅÎÅÍÙ flag!\n";\r
177         if (!self.cap_message)\r
178                 self.netname = "Blue brings home the Flag";\r
179         if (self.allowteams == "blue")\r
180         {\r
181                 self.holding = "blueflag";\r
182                 ConvertToGoal(1);\r
183         }\r
184         else if (self.allowteams == "red")\r
185         {\r
186                 self.holding = "redflag";\r
187                 ConvertToGoal(2);\r
188         }\r
189         else if (self.allowteams == "any")\r
190         {\r
191                 self.holding = "anyflag";\r
192                 ConvertToGoal(0);\r
193         }\r
194 };