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