1 -- IMPORTANT -- THIS IS WORK IN PROGRESS AND VERY LIKELY TO BE CHANGED AGAIN |
|
2 -- IMPORTANT -- SAVE YOURSELF THE WORK AND DON'T TRANSLATE THE TEXTS IF YOU FEAR STARTING OVER LATER! |
|
3 |
|
4 local teamnames = {} |
|
5 local hognames = {} |
|
6 teamnames[0] = { |
|
7 ["en"] = "Bloody Rookies", |
|
8 ["de"] = "Blutige Anfänger", |
|
9 ["pl"] = "Żótodzioby", |
|
10 ["sv"] = "Blodiga nybörjare", |
|
11 ["es"] = "Reclutas", |
|
12 ["pt_PT"] = "Recrutas", |
|
13 ["pt_BR"] = "Maldito Recrutas" |
|
14 } |
|
15 |
|
16 teamnames[1] = { |
|
17 ["en"] = "Instructors", |
|
18 ["de"] = "Ausbilder", |
|
19 ["pl"] = "Instruktor", |
|
20 ["sv"] = "Instruktör", |
|
21 ["es"] = "Instructores", |
|
22 ["pt_PT"] = "Instrutores", |
|
23 ["pt_BR"] = "Instrutores" |
|
24 } |
|
25 |
|
26 hognames[0] = { |
|
27 ["en"] = "Joker", |
|
28 ["de"] = "Joker", |
|
29 ["pl"] = "Joker", |
|
30 ["sv"] = "Joker", |
|
31 ["es"] = "Joker", |
|
32 ["pt_PT"] = "Joker", |
|
33 ["pt_BR"] = "Comediante" |
|
34 } |
|
35 |
|
36 hognames[1] = { |
|
37 ["en"] = "Harthog", |
|
38 ["de"] = "Harthog", |
|
39 ["pl"] = "Harthog", |
|
40 ["sv"] = "Harthog", |
|
41 ["es"] = "Harthog", |
|
42 ["pt_PT"] = "Harthog", |
|
43 ["pt_BR"] = "Harthog" |
|
44 } |
|
45 |
|
46 local caption = { |
|
47 ["en"] = "Boot Camp", |
|
48 ["de"] = "Grundausbildung", |
|
49 ["pl"] = "Poligon", |
|
50 ["sv"] = "Grundutbildning", |
|
51 ["es"] = "Campamento militar", |
|
52 ["pt_PT"] = "Acampamento militar", |
|
53 ["pt_BR"] = "Acampamento Militar" |
|
54 |
|
55 } |
|
56 |
|
57 local subcaption = { |
|
58 ["en"] = "Follow the instructions!", |
|
59 ["de"] = "Befolge die Anweisungen!", |
|
60 ["pl"] = "Wykonuj polecenia!", |
|
61 ["sv"] = "Följ instruktioner!", |
|
62 ["es"] = "¡Sigue las órdenes!", |
|
63 ["pt_PT"] = "Segue as instruções!", |
|
64 ["pt_BR"] = "Siga as ordens!" |
|
65 } |
|
66 |
|
67 local goals = {} |
|
68 |
|
69 goals[0] = { |
|
70 ["en"] = "Listen to your Drill Instructor and follow his lead!", |
|
71 ["de"] = "Höre deinem Ausbilder zu und befolge seine Anweisungen!", |
|
72 ["pl"] = "Słuchaj instruktora i wykonuj jego rozkazy!", |
|
73 ["sv"] = "Lyssna på din instruktör och gör som han säger!", |
|
74 ["es"] = "¡Escucha atentamente a tu instructor de maniobras y sigue sus órdenes!", |
|
75 ["pt_PT"] = "Ouve atentamente o teu Instrutor e segue as suas ordens!", |
|
76 ["pt_BR"] = "Escute seu instrutor de escavação e siga seu líder" |
|
77 } |
|
78 |
|
79 goals[1] = { |
|
80 ["en"] = "Destroy the target to finish this mission!", |
|
81 ["de"] = "Zerstöre das Ziel, um diese Mission abzuschließen!", |
|
82 ["pl"] = "Zniszcz cel by ukończyć misję!", |
|
83 ["sv"] = "Förstör målet för att avklara uppdraget!", |
|
84 ["es"] = "¡Destruye el objetivo para completar esta misión!", |
|
85 ["pt_PT"] = "Destrói o alvo para completar esta missão!", |
|
86 ["pt_BR"] = "Destrua o alvo para concluir a missão" |
|
87 } |
|
88 |
|
89 goals[2] = { |
|
90 ["en"] = "Excellent! You've passed the Boot Camp!", |
|
91 ["de"] = "Ausgezeichnet! Du hast das Ausbildungslager bestanden!", |
|
92 ["pl"] = "Doskonale! Wyszedłeś cało z poligonu!", |
|
93 ["sv"] = "Brilliant! Du har klarat av grundutbildningen!", |
|
94 ["es"] = "¡Excelente! ¡Has completado la maniobra de hoy!", |
|
95 ["pt_PT"] = "Excelente! Completaste o treino para recrutas!", |
|
96 ["pt_BR"] = "Excelente! Você completou a manobra" |
|
97 } |
|
98 |
|
99 local failed = { |
|
100 ["en"] = "You failed! Follow the instructions and shoot the target only!", |
|
101 ["de"] = "Du hast versagt! Befolge die Anweisungen und schieß nur auf das Ziel!", |
|
102 ["pl"] = "Przegrałeś! Wykonuj instrukcje poprawnie i strzelaj tylko w podane cele!", |
|
103 ["sv"] = "Du har misslyckats! Följ instruktionerna och sjut endast på målen!", |
|
104 ["es"] = "¡Has fallado! ¡Sigue las instrucciones y destruye únicamente el objetivo!", |
|
105 ["pt_PT"] = "Falhaste! Segue as instruções e destrói apenas o alvo!", |
|
106 ["pt_BR"] = "Você falhou! Siga as instruções e atire somente no alvo" |
|
107 } |
|
108 |
|
109 local drill = {} |
|
110 |
|
111 drill[0] = { |
|
112 ["en"] = "Allright, maggot!", |
|
113 ["de"] = "Also gut, du Made!", |
|
114 ["pl"] = "Słuchaj mnie gnido!", |
|
115 ["sv"] = "Dåså, din mask!", |
|
116 ["es"] = "¡Muy bien, escoria!", |
|
117 ["pt_PT"] = "Bom trabalho verme!", |
|
118 ["pt_BR"] = "Parabéns escória" |
|
119 } |
|
120 |
|
121 drill[1] = { |
|
122 ["en"] = "Show that you aren't that useless.", |
|
123 ["de"] = "Zeig, dass du nicht so nutzlos bist.", |
|
124 ["pl"] = "Udowodnij, że nie jesteś bezwartościowy.", |
|
125 ["sv"] = "Visa att du inte är så värdelös!", |
|
126 ["es"] = "Demuéstrame que no eres tan inútil como pareces.", |
|
127 ["pt_PT"] = "Prova-me que não és tão inútil como pareces.", |
|
128 ["pt_BR"] = "Mostre que você não é um inútil." |
|
129 } |
|
130 |
|
131 drill[2] = { |
|
132 ["en"] = "Use [left] to move to the left!", |
|
133 ["de"] = "Benutze [Links], um nach links zu gehen!", |
|
134 ["pl"] = "Użyj [lewo] by poruszyć się w lewą stronę!", |
|
135 ["sv"] = "Använd [vänster] för att gå åt vänster!", |
|
136 ["es"] = "¡Aprieta [izquierda] para desplazarte a la izquierda!", |
|
137 ["pt_PT"] = "Carrega [esquerda] para te moveres para a esquerda!", |
|
138 ["pt_BR"] = "Use [esquerda] para mover para a esquerda" |
|
139 } |
|
140 |
|
141 drill[3] = { |
|
142 ["en"] = "Good! Now use [right] to come back!", |
|
143 ["de"] = "Gut! Nun komm mit [Rechts] zurück!", |
|
144 ["pl"] = "Dobzre, Teraz użyj [prawo] by wrócić!", |
|
145 ["sv"] = "Bra! Använd nu [höger] för att gå tillbaka!", |
|
146 ["es"] = "¡Muy bien! ¡Ahora presiona [derecha] para volver!", |
|
147 ["pt_PT"] = "Muito bem! Agora pressiona [direita] para voltar!", |
|
148 ["pt_BR"] = "Bom! Agora use [direita] para voltar" |
|
149 } |
|
150 |
|
151 drill[4] = { |
|
152 ["en"] = "Excellent!", |
|
153 ["de"] = "Ausgezeichnet!", |
|
154 ["pl"] = "Wspaniale!", |
|
155 ["sv"] = "Utmärkt!", |
|
156 ["es"] = "¡Excelente!", |
|
157 ["pt_PT"] = "Excelente!", |
|
158 ["pt_BR"] = "Excelente!" |
|
159 } |
|
160 |
|
161 drill[5] = { |
|
162 ["en"] = "Now jump to the left using [return]!", |
|
163 ["de"] = "Jetzt springe mit [Eingabetaste] nach links!", |
|
164 ["pl"] = "Teraz skocz w lewo używając [Enter]", |
|
165 ["sv"] = "Hoppa nu åt vänster med hjälp av [enter]!", |
|
166 ["es"] = "¡Ahora salta hacia la izquierda usando [intro]!", |
|
167 ["pt_PT"] = "Agora salta para a esquerda pressionando [retrocesso]!", |
|
168 ["pt_BR"] = "Agora pule para a esquerda usando [return" |
|
169 } |
|
170 |
|
171 drill[6] = { |
|
172 ["en"] = "Use [up] and [down] to aim.", |
|
173 ["de"] = "Benutze [Hoch] und [Runter], um zu zielen.", |
|
174 ["pl"] = "Użyj klawiszy [góra] i [dół] by celować.", |
|
175 ["sv"] = "Använd [upp] och [ner] för att sikta!", |
|
176 ["es"] = "Presiora [arriba] y [abajo] para apuntar.", |
|
177 ["pt_PT"] = "Pressiona [cima] e [baixo] para apontar.", |
|
178 ["pt_BR"] = "Pressione [acima] e [abaixo] para mirar." |
|
179 } |
|
180 |
|
181 drill[7] = { |
|
182 ["en"] = "Hold [space] to power up your shot and then release it to shoot.", |
|
183 ["de"] = "Halte [Leertaste], um deinen Schuss aufzuladen, und lasse dann rechtzeitig los.", |
|
184 ["pl"] = "Przytrzymaj spację by zwiększyć siłę strzału.", |
|
185 ["sv"] = "Håll ner [mellanslag] för att få kraft och släpp för att skjuta!", |
|
186 ["es"] = "Mantén presionada la [barra espaciadora] para controlar la fuerza del disparo y suéltala para disparar.", |
|
187 ["pt_PT"] = "Mantem a [barra de espaços] pressionada para controlar a força do tiro e larga-a para disparar.", |
|
188 ["pt_BR"] = "Mantenha pressionado [espaço] para aumentar a força do seu tiro e solte para atirar" |
|
189 } |
|
190 |
|
191 drill[8] = { |
|
192 ["en"] = "Destroy the target to finish your basic training!", |
|
193 ["de"] = "Zerstöre das Ziel, um deine Grundausbildung abzuschließen!", |
|
194 ["pl"] = "Zniszcz cel by by ukończyć trening podstawowy!", |
|
195 ["sv"] = "Förstör målet för att avsluta din grundutbildning!", |
|
196 ["es"] = "¡Destruye el objetivo para completar el entrenamiento básico!", |
|
197 ["pt_PT"] = "Destrói o alvo para completar o treino básico!", |
|
198 ["pt_BR"] = "Destrua o alvo para terminar o treino básico" |
|
199 } |
|
200 |
|
201 local function loc(text) |
|
202 if text == nil then return "**missing**" |
|
203 elseif text[L] == nil then return text["en"] |
|
204 else return text[L] |
|
205 end |
|
206 end |
|
207 |
|
208 local player = nil |
|
209 local instructor = nil |
|
210 local target = nil |
|
211 |
|
212 function onGameStart() |
|
213 |
|
214 end |
|
215 |
|
216 local player_start_x = 2300 |
|
217 local player_start_y = 1250 |
|
218 local target_x = 1900 |
|
219 local target_y = 1250 |
|
220 local player_health = 100 |
|
221 local instructor_health = 100 |
|
222 local teamcolor = 14483456 |
|
223 |
|
224 local progress = 0 |
|
225 local time_start = 0 |
|
226 |
|
227 function onGameTick() |
|
228 if progress == -1 and (time_start + 2500) == GameTime then |
|
229 EndGame() |
|
230 elseif progress == -1 then |
|
231 |
|
232 elseif progress > 0 and ((TurnTimeLeft == 0) or (GetHealth(player) ~= player_health) or (GetHealth(instructor) ~= instructor_health)) then |
|
233 progress = -1 |
|
234 ShowMission(loc(caption), loc(subcaption), loc(failed), -amBazooka, 0); |
|
235 time_start = GameTime |
|
236 PlaySound(sndNooo) |
|
237 TurnTimeLeft = 0 |
|
238 elseif GameTime == 0 then |
|
239 ShowMission(loc(caption), loc(subcaption), loc(goals[0]), -amBazooka, 0); |
|
240 TurnTimeLeft = 60000 |
|
241 elseif GameTime == 2500 then |
|
242 FollowGear(instructor) |
|
243 HogSay(instructor, loc(drill[0]), SAY_SAY) |
|
244 elseif GameTime == 5000 then |
|
245 FollowGear(instructor) |
|
246 HogSay(instructor, loc(drill[1]), SAY_SAY) |
|
247 elseif GameTime == 7500 then |
|
248 FollowGear(instructor) |
|
249 HogSay(instructor, loc(drill[2]), SAY_SHOUT) |
|
250 progress = 1 |
|
251 TurnTimeLeft = 10000 |
|
252 elseif progress == 1 then |
|
253 local x, y = GetGearPosition(player); |
|
254 if x < player_start_x - 50 then |
|
255 progress = 2 |
|
256 FollowGear(instructor) |
|
257 HogSay(instructor, loc(drill[3]), SAY_SHOUT) |
|
258 TurnTimeLeft = 10000 |
|
259 end |
|
260 elseif progress == 2 then |
|
261 local x, y = GetGearPosition(player); |
|
262 if x > player_start_x then |
|
263 progress = 3 |
|
264 FollowGear(instructor) |
|
265 HogSay(instructor, loc(drill[4]), SAY_SAY) |
|
266 time_start = GameTime |
|
267 end |
|
268 elseif progress == 3 and (time_start + 2500 == GameTime) then |
|
269 progress = 4 |
|
270 FollowGear(instructor) |
|
271 HogSay(instructor, loc(drill[5]), SAY_SHOUT) |
|
272 HogTurnLeft(player, true) |
|
273 TurnTimeLeft = 10000 |
|
274 elseif progress == 4 then |
|
275 local x, y = GetGearPosition(player); |
|
276 if y < player_start_y then |
|
277 progress = 5 |
|
278 FollowGear(instructor) |
|
279 HogSay(instructor, "Yeah!", SAY_SAY) |
|
280 time_start = GameTime |
|
281 TurnTimeLeft = 30000 |
|
282 end |
|
283 elseif progress == 5 and (time_start + 2500 == GameTime) then |
|
284 FollowGear(instructor) |
|
285 HogSay(instructor, loc(drill[6]), SAY_SAY) |
|
286 elseif progress == 5 and (time_start + 5000 == GameTime) then |
|
287 FollowGear(instructor) |
|
288 HogSay(instructor, loc(drill[7]), SAY_SAY) |
|
289 elseif progress == 5 and (time_start + 7500 == GameTime) then |
|
290 FollowGear(instructor) |
|
291 HogSay(instructor, loc(drill[8]), SAY_SHOUT) |
|
292 ShowMission(loc(caption), loc(subcaption), loc(goals[1]), 1, 0); |
|
293 target = AddGear(target_x, target_y, gtTarget, 0, 0, 0, 0) |
|
294 TurnTimeLeft = 60000 |
|
295 elseif progress == 5 and (time_start + 10000 == GameTime) then |
|
296 FollowGear(target) |
|
297 elseif progress == 6 then |
|
298 progress = 7 |
|
299 ShowMission(loc(caption), loc(subcaption), loc(goals[2]), 0, 0); |
|
300 PlaySound(sndVictory); |
|
301 time_start = GameTime |
|
302 elseif progress == 7 and (time_start + 2500 == GameTime) then |
|
303 EndGame() |
|
304 end |
|
305 end |
|
306 |
|
307 function onGameInit() |
|
308 Seed = 0 |
|
309 GameFlags = gfMultiWeapon + gfOneClanMode |
|
310 TurnTime = 25000 |
|
311 CaseFreq = 0 |
|
312 MinesNum = 0 |
|
313 Explosives = 0 |
|
314 Delay = 2500 |
|
315 Map = "Mushrooms" |
|
316 Theme = "Nature" |
|
317 |
|
318 AddTeam(loc(teamnames[0]), teamcolor, "Simple", "Island", "Default") |
|
319 player = AddHog(loc(hognames[0]), 0, player_health, "NoHat") |
|
320 SetGearPosition(player, player_start_x, player_start_y); |
|
321 |
|
322 AddTeam(loc(teamnames[1]), teamcolor + 1, "Simple", "Island", "Default") |
|
323 instructor = AddHog(loc(hognames[1]), 0, instructor_health, "NoHat") |
|
324 SetGearPosition(instructor, player_start_x + 100, player_start_y) |
|
325 HogTurnLeft(instructor, true) |
|
326 |
|
327 FollowGear(player); |
|
328 end |
|
329 |
|
330 function onAmmoStoreInit() |
|
331 SetAmmo(amBazooka, 9, 0, 0, 0) |
|
332 end |
|
333 |
|
334 function onGearDelete(gear) |
|
335 if GetGearType(gear) == gtTarget then |
|
336 progress = 6 |
|
337 end |
|
338 end |
|