]> icculus.org git repositories - divverent/nexuiz.git/blob - TeamNexuiz/game/gamec/tfitems.c
- Added new backpack/tfitem property -- item_backpack gives metal ammo when var...
[divverent/nexuiz.git] / 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 \r
65 void () Map_Rules =\r
66 {\r
67         local entity infoent;           // our class restricts info entity is spaned here\r
68         infoent = spawn();\r
69         infoent.classname = "class_restrictions";\r
70         copyentity (self, infoent);\r
71 \r
72         // Amount of teams available on a map are determined by spawn points\r
73         if (self.team1limit)\r
74                 self.ammo_medikit = stof(self.team1limit);\r
75         if (self.team2limit)\r
76                 self.ammo_detpack = stof(self.team2limit);\r
77         if (self.team3limit)\r
78                 self.maxammo_medikit = stof(self.team3limit);\r
79         if (self.team4limit)\r
80                 self.maxammo_detpack = stof(self.team4limit);\r
81 \r
82         info_tfdetect();\r
83 };\r
84 \r
85 // Team:Nexuiz backpack\r
86 void () item_backpack =\r
87 {\r
88         if ((!self.mdl) && (!self.model))\r
89         {\r
90                 self.model = "models/objects/backpack/backpack.md3";\r
91         }\r
92         if (self.cells)\r
93                 self.ammo_cells = stof(self.cells);\r
94         if (self.shells)\r
95                 self.ammo_shells = stof(self.shells);\r
96         if (self.rockets)\r
97                 self.ammo_rockets = stof(self.rockets);\r
98         if (self.nails)\r
99                 self.ammo_nails = stof(self.nails);\r
100         if (self.metal)\r
101                 self.ammo_metal = stof(self.metal);\r
102         if (self.grenade1)\r
103                 self.no_grenades_1 = stof(self.grenade1);\r
104         if (self.grenade2)\r
105                 self.no_grenades_2 = stof(self.grenade2);\r
106         if (self.armor)\r
107                 self.armorvalue = stof(self.armor);\r
108         if ((!self.delay) && (!self.wait))\r
109                 self.wait = 10;                 // next time item can be used\r
110         self.give = "converted";\r
111 \r
112         ConvertToBackPack();            // finish conversion using q3f conversion func\r
113 };\r
114 \r
115 // Team:Nexuiz ctf flag (needs to be capped at an item_ctf_goal\r
116 void () item_ctf_flag =\r
117 {\r
118         if (!self.allowteams)\r
119         {\r
120                 bprint("Fixme!! Object located at ",vtos(self.origin)," has no allowteams property set!\n");\r
121                 return;\r
122         }\r
123         if ((!self.delay) && (!self.wait))\r
124         {\r
125                 self.wait = 45;                 // next time item can be used\r
126                 self.delay = 45;\r
127         }\r
128         if (!self.carried_message)\r
129                 self.carried_message = "You have the flag! Go capture it in your base!\n";\r
130         if (self.allowteams == "red")\r
131         {\r
132                 self.mdl = "models/flags/b_flag.md3";\r
133                 self.groupname = "redflag";\r
134         }\r
135         else if (self.allowteams == "blue")\r
136         {\r
137                 self.groupname = "blueflag";\r
138                 self.mdl = "models/flags/r_flag.md3";\r
139         }\r
140 \r
141         func_goalitem ();\r
142 };\r
143 \r
144 // where you cap item_ctf_flag or flags spawned by tfq3fitems.c\r
145 .string cap_message;\r
146 void () item_ctf_goal =\r
147 {\r
148         if (!self.teamscore)                    // how many frags are gained by capturing\r
149                 self.teamscore = 10;\r
150         if (!self.message)\r
151                 self.message = "You ÃÁÐÔÕÒÅÄ the ÅÎÅÍÙ flag!\n";\r
152         if (!self.cap_message)\r
153                 self.netname = "Blue brings home the Flag";\r
154         if (self.allowteams == "blue")\r
155                 ConvertToFlag(1);\r
156         else if (self.allowteams == "red")\r
157                 ConvertToFlag(2);\r
158 };