~ubuntu-branches/ubuntu/utopic/hedgewars/utopic

« back to all changes in this revision

Viewing changes to share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice01.lua

  • Committer: Package Import Robot
  • Author(s): Gianfranco Costamagna
  • Date: 2014-01-02 12:37:23 UTC
  • mfrom: (19.1.5 sid)
  • Revision ID: package-import@ubuntu.com-20140102123723-6pdhmyj8tb5y8xbg
Tags: 0.9.20.3-1
New upstream minor release, suitable for unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
------------------- ABOUT ----------------------
 
2
--
 
3
-- In this cold planet hero seeks for a part of the
 
4
-- antigravity device. He has to capture Thanta who
 
5
-- knows where the device is hidden. Hero will be
 
6
-- able to use only the ice gun for this mission.
 
7
 
 
8
HedgewarsScriptLoad("/Scripts/Locale.lua")
 
9
HedgewarsScriptLoad("/Scripts/Animate.lua")
 
10
HedgewarsScriptLoad("/Missions/Campaign/A_Space_Adventure/global_functions.lua")
 
11
 
 
12
----------------- VARIABLES --------------------
 
13
-- globals
 
14
local missionName = loc("A frozen adventure")
 
15
local heroAtAntiFlyArea = false
 
16
local heroVisitedAntiFlyArea = false
 
17
local heroAtFinalStep = false
 
18
local iceGunTaken = false
 
19
local checkPointReached = 1 -- 1 is normal spawn
 
20
local heroDamageAtCurrentTurn = 0
 
21
-- dialogs
 
22
local dialog01 = {}
 
23
local dialog02 = {}
 
24
-- mission objectives
 
25
local goals = {
 
26
        [dialog01] = {missionName, loc("Getting ready"), loc("Collect the icegun and get the device part from Thanta"), 1, 4500},
 
27
        [dialog02] = {missionName, loc("Win"), loc("Congratulations, you collected the device part!"), 1, 3500},
 
28
}
 
29
-- crates
 
30
local icegunY = 1950
 
31
local icegunX = 260
 
32
-- hogs
 
33
local hero = {}
 
34
local ally = {}
 
35
local bandit1 = {}
 
36
local bandit2 = {}
 
37
local bandit3 = {}
 
38
local bandit4 = {}
 
39
local bandit5 = {}
 
40
-- teams
 
41
local teamA = {}
 
42
local teamB = {}
 
43
local teamC = {}
 
44
-- hedgehogs values
 
45
hero.name = loc("Hog Solo")
 
46
hero.x = 340
 
47
hero.y = 1840
 
48
hero.dead = false
 
49
ally.name = loc("Paul McHoggy")
 
50
ally.x = 300
 
51
ally.y = 1840
 
52
bandit1.name = loc("Thanta")
 
53
bandit1.x = 3240
 
54
bandit1.y = 1280
 
55
bandit1.dead = false
 
56
bandit1.frozen = false
 
57
bandit1.roundsToUnfreeze = 0
 
58
bandit2.name = loc("Billy Frost")
 
59
bandit2.x = 1480
 
60
bandit2.y = 1990
 
61
bandit3.name = loc("Ice Jake")
 
62
bandit3.x = 1860
 
63
bandit3.y = 1150
 
64
bandit4.name = loc("John Snow")
 
65
bandit4.x = 3200
 
66
bandit4.y = 970
 
67
bandit4.frozen = false
 
68
bandit4.roundsToUnfreeze = 0
 
69
bandit5.name = loc("White Tee")
 
70
bandit5.x = 3280
 
71
bandit5.y = 600
 
72
bandit5.frozen = false
 
73
bandit5.roundsToUnfreeze = 0
 
74
teamA.name = loc("Allies")
 
75
teamA.color = tonumber("FF0000",16) -- red
 
76
teamB.name = loc("Frozen Bandits")
 
77
teamB.color = tonumber("0033FF",16) -- blues
 
78
teamC.name = loc("Hog Solo")
 
79
teamC.color = tonumber("38D61C",16) -- green
 
80
 
 
81
-------------- LuaAPI EVENT HANDLERS ------------------
 
82
 
 
83
function onGameInit()
 
84
        Seed = 1
 
85
        TurnTime = 25000
 
86
        CaseFreq = 0
 
87
        MinesNum = 0
 
88
        MinesTime = 1
 
89
        Explosives = 0
 
90
        Delay = 3
 
91
        Map = "ice01_map"
 
92
        Theme = "Snow"
 
93
 
 
94
        -- get the check point
 
95
        checkPointReached = initCheckpoint("ice01")
 
96
        -- get hero health
 
97
        local heroHealth = 100
 
98
        if tonumber(GetCampaignVar("HeroHealth")) then
 
99
                heroHealth = tonumber(GetCampaignVar("HeroHealth"))
 
100
        end
 
101
 
 
102
        if heroHealth ~= 100 then
 
103
                heroHealth = heroHealth + 5
 
104
                if heroHealth > 100 then
 
105
                        heroHealth = 100
 
106
                end
 
107
                SaveCampaignVar("HeroHealth", heroHealth)
 
108
        end
 
109
 
 
110
        -- Hog Solo
 
111
        AddTeam(teamC.name, teamC.color, "Bone", "Island", "HillBilly", "cm_birdy")
 
112
        hero.gear = AddHog(hero.name, 0, heroHealth, "war_desertgrenadier1")
 
113
        AnimSetGearPosition(hero.gear, hero.x, hero.y)
 
114
        HogTurnLeft(hero.gear, true)
 
115
        -- Ally
 
116
        AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy")
 
117
        ally.gear = AddHog(ally.name, 0, 100, "war_airwarden02")
 
118
        AnimSetGearPosition(ally.gear, ally.x, ally.y)
 
119
        -- Frozen Bandits
 
120
        AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy")
 
121
        bandit1.gear = AddHog(bandit1.name, 1, 120, "Santa")
 
122
        AnimSetGearPosition(bandit1.gear, bandit1.x, bandit1.y)
 
123
        HogTurnLeft(bandit1.gear, true)
 
124
        bandit2.gear = AddHog(bandit2.name, 1, 100, "ushanka")
 
125
        AnimSetGearPosition(bandit2.gear, bandit2.x, bandit2.y)
 
126
        bandit3.gear = AddHog(bandit3.name, 1, 100, "thug")
 
127
        AnimSetGearPosition(bandit3.gear, bandit3.x, bandit3.y)
 
128
        bandit4.gear = AddHog(bandit4.name, 1, 40, "tophats")
 
129
        AnimSetGearPosition(bandit4.gear, bandit4.x, bandit4.y)
 
130
        HogTurnLeft(bandit4.gear, true)
 
131
        bandit5.gear = AddHog(bandit5.name, 1, 40, "Sniper")
 
132
        AnimSetGearPosition(bandit5.gear, bandit5.x, bandit5.y)
 
133
        HogTurnLeft(bandit5.gear, true)
 
134
 
 
135
        if checkPointReached == 1 then
 
136
                -- Start of the game
 
137
        elseif checkPointReached == 2 then
 
138
                iceGunTaken = true
 
139
                AnimSetGearPosition(hero.gear, 840, 1650)
 
140
        elseif checkPointReached == 3 then
 
141
                iceGunTaken = true
 
142
                heroAtFinalStep = true
 
143
                heroVisitedAntiFlyArea = true
 
144
                AnimSetGearPosition(hero.gear, 1450, 910)
 
145
        end
 
146
 
 
147
        AnimInit()
 
148
        AnimationSetup()
 
149
end
 
150
 
 
151
function onGameStart()
 
152
        AnimWait(hero.gear, 3000)
 
153
        FollowGear(hero.gear)
 
154
 
 
155
        -- Add mines
 
156
        AddGear(1612, 940, gtMine, 0, 0, 0, 0)
 
157
        AddGear(1622, 945, gtMine, 0, 0, 0, 0)
 
158
        AddGear(1645, 950, gtMine, 0, 0, 0, 0)
 
159
        AddGear(1655, 960, gtMine, 0, 0, 0, 0)
 
160
        AddGear(1665, 965, gtMine, 0, 0, 0, 0)
 
161
 
 
162
        AddGear(1800, 1000, gtMine, 0, 0, 0, 0)
 
163
        AddGear(1810, 1005, gtMine, 0, 0, 0, 0)
 
164
        AddGear(1820, 1010, gtMine, 0, 0, 0, 0)
 
165
        AddGear(1830, 1015, gtMine, 0, 0, 0, 0)
 
166
        AddGear(1840, 1020, gtMine, 0, 0, 0, 0)
 
167
 
 
168
        AddGear(1900, 1020, gtMine, 0, 0, 0, 0)
 
169
        AddGear(1910, 1020, gtMine, 0, 0, 0, 0)
 
170
        AddGear(1920, 1020, gtMine, 0, 0, 0, 0)
 
171
        AddGear(1930, 1030, gtMine, 0, 0, 0, 0)
 
172
        AddGear(1940, 1040, gtMine, 0, 0, 0, 0)
 
173
 
 
174
        AddGear(2130, 1110, gtMine, 0, 0, 0, 0)
 
175
        AddGear(2140, 1120, gtMine, 0, 0, 0, 0)
 
176
        AddGear(2180, 1120, gtMine, 0, 0, 0, 0)
 
177
        AddGear(2200, 1130, gtMine, 0, 0, 0, 0)
 
178
        AddGear(2210, 1130, gtMine, 0, 0, 0, 0)
 
179
 
 
180
        local x=2300
 
181
        local step=0
 
182
        while x<3100 do
 
183
                AddGear(x, 1150, gtMine, 0, 0, 0, 0)
 
184
                step = step + 1
 
185
                if step == 5 then
 
186
                        step = 0
 
187
                        x = x + GetRandom(201)+100
 
188
                else
 
189
                        x = x + GetRandom(21)+10
 
190
                end
 
191
        end
 
192
 
 
193
        AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0)
 
194
        AddEvent(onHeroFinalStep, {hero.gear}, heroFinalStep, {hero.gear}, 0)
 
195
        AddEvent(onAntiFlyArea, {hero.gear}, antiFlyArea, {hero.gear}, 1)
 
196
        AddEvent(onAntiFlyAreaVelocity, {hero.gear}, antiFlyAreaVelocity, {hero.gear}, 1)
 
197
        AddEvent(onNonAntiFlyArea, {hero.gear}, nonAntiFlyArea, {hero.gear}, 1)
 
198
        AddEvent(onThantaDeath, {bandit1.gear}, thantaDeath, {bandit1.gear}, 0)
 
199
        AddEvent(onHeroWin, {hero.gear}, heroWin, {hero.gear}, 0)
 
200
 
 
201
        AddAmmo(hero.gear, amJetpack, 99)
 
202
        AddAmmo(bandit1.gear, amBazooka, 5)
 
203
        AddAmmo(bandit2.gear, amBazooka, 4)
 
204
        AddAmmo(bandit3.gear, amMine, 2)
 
205
        AddAmmo(bandit3.gear, amGrenade, 3)
 
206
        AddAmmo(bandit4.gear, amBazooka, 5)
 
207
        AddAmmo(bandit5.gear, amBazooka, 5)
 
208
 
 
209
        goToThantaString = loc("Go to Thanta and get the device part!")
 
210
 
 
211
        if checkPointReached == 1 then
 
212
                AddAmmo(hero.gear, amBazooka, 1)
 
213
                SpawnAmmoCrate(icegunX, icegunY, amIceGun)
 
214
                AddEvent(onColumnCheckPoint, {hero.gear}, columnCheckPoint, {hero.gear}, 0)
 
215
                AddEvent(onHeroAtIceGun, {hero.gear}, heroAtIceGun, {hero.gear}, 0)
 
216
                AddAnim(dialog01)
 
217
        elseif checkPointReached == 2 then
 
218
                AddAmmo(hero.gear, amIceGun, 8)
 
219
                AnimCaption(hero.gear, goToThantaString, 5000)
 
220
        elseif checkPointReached == 3 then
 
221
                AddAmmo(hero.gear, amIceGun, 6)
 
222
                AnimCaption(hero.gear, goToThantaString, 5000)
 
223
        end
 
224
 
 
225
        SendHealthStatsOff()
 
226
end
 
227
 
 
228
function onNewTurn()
 
229
        heroDamageAtCurrentTurn = 0
 
230
        -- round has to start if hero goes near the column
 
231
        if not heroVisitedAntiFlyArea and CurrentHedgehog ~= hero.gear then
 
232
                TurnTimeLeft = 0
 
233
        elseif not heroVisitedAntiFlyArea and CurrentHedgehog == hero.gear then
 
234
                TurnTimeLeft = -1
 
235
        elseif not heroAtFinalStep and (CurrentHedgehog == bandit1.gear or CurrentHedgehog == bandit4.gear or CurrentHedgehog == bandit5.gear) then
 
236
                AnimSwitchHog(hero.gear)
 
237
                TurnTimeLeft = 0
 
238
        elseif heroAtFinalStep and (CurrentHedgehog == bandit2.gear or CurrentHedgehog == bandit3.gear) then
 
239
                if (GetHealth(bandit1.gear) and GetEffect(bandit1.gear,heFrozen) > 256) and
 
240
                        ((GetHealth(bandit4.gear) and GetEffect(bandit4.gear,heFrozen) > 256) or not GetHealth(bandit4.gear)) and
 
241
                        ((GetHealth(bandit5.gear) and GetEffect(bandit5.gear,heFrozen) > 256) or not GetHealth(bandit5.gear)) then
 
242
                        TurnTimeLeft = 0
 
243
                else
 
244
                        AnimSwitchHog(hero.gear)
 
245
                        TurnTimeLeft = 0
 
246
                end
 
247
        elseif CurrentHedgehog == ally.gear then
 
248
                TurnTimeLeft = 0
 
249
        end
 
250
        -- frozen hogs accounting
 
251
        if CurrentHedgehog == hero.gear and heroAtFinalStep and TurnTimeLeft > 0 then
 
252
                if bandit1.frozen then
 
253
                        if bandit1.roundsToUnfreeze == 0 then
 
254
                                SetEffect(bandit1.gear, heFrozen, 255)
 
255
                                bandit1.frozen = false
 
256
                        else
 
257
                                bandit1.roundsToUnfreeze = bandit1.roundsToUnfreeze - 1
 
258
                        end
 
259
                end
 
260
                if bandit4.frozen then
 
261
                        if bandit4.roundsToUnfreeze == 0 then
 
262
                                SetEffect(bandit4.gear, heFrozen, 255)
 
263
                                bandit4.frozen = false
 
264
                        else
 
265
                                bandit4.roundsToUnfreeze = bandit4.roundsToUnfreeze - 1
 
266
                        end
 
267
                end
 
268
                if bandit5.frozen then
 
269
                        if bandit5.roundsToUnfreeze == 0 then
 
270
                                SetEffect(bandit5.gear, heFrozen, 255)
 
271
                                bandit5.frozen = false
 
272
                        else
 
273
                                bandit5.roundsToUnfreeze = bandit5.roundsToUnfreeze - 1
 
274
                        end
 
275
                end
 
276
        else
 
277
                if bandit1.frozen then
 
278
                        SetEffect(bandit1.gear, heFrozen, 9999999999)
 
279
                end
 
280
                if bandit4.frozen then
 
281
                        SetEffect(bandit4.gear, heFrozen, 9999999999)
 
282
                end
 
283
                if bandit5.frozen then
 
284
                        SetEffect(bandit5.gear, heFrozen, 9999999999)
 
285
                end
 
286
        end
 
287
end
 
288
 
 
289
function onGameTick()
 
290
        AnimUnWait()
 
291
        if ShowAnimation() == false then
 
292
                return
 
293
        end
 
294
        ExecuteAfterAnimations()
 
295
        CheckEvents()
 
296
 
 
297
        if GetEffect(bandit1.gear, heFrozen) > 256 and not bandit1.frozen then
 
298
                bandit1.frozen = true
 
299
                SetEffect(bandit1.gear, heFrozen, 9999999999)
 
300
                bandit1.roundsToUnfreeze = 1
 
301
        end
 
302
        if GetEffect(bandit4.gear, heFrozen) > 256 and not bandit4.frozen then
 
303
                bandit4.frozen = true
 
304
                SetEffect(bandit4.gear, heFrozen, 9999999999)
 
305
                bandit4.roundsToUnfreeze = 2
 
306
        end
 
307
        if GetEffect(bandit5.gear, heFrozen) > 256 and not bandit5.frozen then
 
308
                bandit5.frozen = true
 
309
                SetEffect(bandit5.gear, heFrozen, 9999999999)
 
310
                bandit5.roundsToUnfreeze = 2
 
311
        end
 
312
end
 
313
 
 
314
function onAmmoStoreInit()
 
315
        SetAmmo(amIceGun, 0, 0, 0, 8)
 
316
end
 
317
 
 
318
function onGearDelete(gear)
 
319
        if gear == hero.gear then
 
320
                hero.dead = true
 
321
        elseif gear == bandit1.gear then
 
322
                bandit1.dead = true
 
323
        end
 
324
end
 
325
 
 
326
function onPrecise()
 
327
        if GameTime > 3000 then
 
328
                SetAnimSkip(true)
 
329
        end
 
330
end
 
331
 
 
332
function onGearDamage(gear, damage)
 
333
        if gear == hero.gear then
 
334
                heroDamageAtCurrentTurn = heroDamageAtCurrentTurn + damage
 
335
        end
 
336
end
 
337
 
 
338
-------------- EVENTS ------------------
 
339
 
 
340
function onAntiFlyArea(gear)
 
341
        if not hero.dead and (GetX(gear) > 860 or GetY(gear) < 1400) and not heroAtAntiFlyArea then
 
342
                return true
 
343
        end
 
344
        return false
 
345
end
 
346
 
 
347
function onAntiFlyAreaVelocity(gear)
 
348
        if not hero.dead and GetY(gear) < 1300 and GetX(gear) < 1190 then
 
349
                return true
 
350
        end
 
351
        return false
 
352
end
 
353
 
 
354
function onNonAntiFlyArea(gear)
 
355
        if not hero.dead and (GetX(gear) < 860 and GetY(gear) > 1400) and heroAtAntiFlyArea then
 
356
                return true
 
357
        end
 
358
        return false
 
359
end
 
360
 
 
361
function onHeroDeath(gear)
 
362
        if hero.dead then
 
363
                return true
 
364
        end
 
365
        return false
 
366
end
 
367
 
 
368
function onHeroFinalStep(gear)
 
369
        if not hero.dead and GetY(gear) < 960 and GetX(gear) > 1400 then
 
370
                return true
 
371
        end
 
372
        return false
 
373
end
 
374
 
 
375
function onColumnCheckPoint(gear)
 
376
        if not hero.dead and iceGunTaken and GetX(gear) < 870 and GetX(gear) > 850 and GetY(gear) > 1500 and StoppedGear(gear) then
 
377
                return true
 
378
        end
 
379
        return false
 
380
end
 
381
 
 
382
function onHeroAtIceGun(gear)
 
383
        if not hero.dead and GetX(gear) < icegunX+15 and GetX(gear) > icegunX-15 and GetY(gear) > icegunY-15 and GetY(gear) < icegunY+15 then
 
384
                return true
 
385
        end
 
386
        return false
 
387
end
 
388
 
 
389
function onThantaDeath(gear)
 
390
        if bandit1.dead then
 
391
                return true
 
392
        end
 
393
        return false
 
394
end
 
395
 
 
396
function onHeroWin(gear)
 
397
        if (not hero.dead and not bandit1.dead) and heroDamageAtCurrentTurn == 0 and (GetX(hero.gear)>=GetX(bandit1.gear)-80
 
398
                and GetX(hero.gear)<=GetX(bandit1.gear)+80)     and (GetY(hero.gear)>=GetY(bandit1.gear)-30 and GetY(hero.gear)<=GetY(bandit1.gear)+30) then
 
399
                return true
 
400
        end
 
401
        return false
 
402
end
 
403
 
 
404
-------------- ACTIONS ------------------
 
405
 
 
406
function antiFlyArea(gear)
 
407
        heroAtAntiFlyArea = true
 
408
        if not heroVisitedAntiFlyArea then
 
409
                TurnTimeLeft = 0
 
410
                FollowGear(hero.gear)
 
411
                AnimSwitchHog(bandit1.gear)
 
412
                FollowGear(hero.gear)
 
413
                TurnTimeLeft = 0
 
414
        end
 
415
        AddAmmo(hero.gear, amJetpack, 0)
 
416
        heroVisitedAntiFlyArea = true
 
417
end
 
418
 
 
419
function antiFlyAreaVelocity(gear)
 
420
        dx, dy = GetGearVelocity(hero.gear)
 
421
        SetGearVelocity(hero.gear, dx, math.max(dy, 0))
 
422
end
 
423
 
 
424
function nonAntiFlyArea(gear)
 
425
        heroAtAntiFlyArea = false
 
426
        AddAmmo(hero.gear, amJetpack, 99)
 
427
end
 
428
 
 
429
function heroDeath(gear)
 
430
        SendStat(siGameResult, loc("Hog Solo lost, try again!"))
 
431
        SendStat(siCustomAchievement, loc("To win the game you have to go next to Thanta"))
 
432
        SendStat(siCustomAchievement, loc("Most of the time you'll be able to use only the icegun"))
 
433
        SendStat(siCustomAchievement, loc("Use the bazooka and the flying saucer to get the icegun"))
 
434
        SendStat(siPlayerKills,'1',teamB.name)
 
435
        SendStat(siPlayerKills,'0',teamC.name)
 
436
        EndGame()
 
437
end
 
438
 
 
439
function heroFinalStep(gear)
 
440
        heroAtFinalStep = true
 
441
        saveCheckpoint("3")
 
442
        SaveCampaignVar("HeroHealth", GetHealth(hero.gear))
 
443
end
 
444
 
 
445
function columnCheckPoint(gear)
 
446
        saveCheckpoint("2")
 
447
        SaveCampaignVar("HeroHealth", GetHealth(hero.gear))
 
448
        AnimCaption(hero.gear, loc("Checkpoint reached!"), 5000)
 
449
end
 
450
 
 
451
function heroAtIceGun(gear)
 
452
        iceGunTaken=true
 
453
end
 
454
 
 
455
function thantaDeath(gear)
 
456
        SendStat(siGameResult, loc("Hog Solo lost, try again!"))
 
457
        SendStat(siCustomAchievement, loc("Noooo, Thanta has to stay alive!"))
 
458
        SendStat(siCustomAchievement, loc("To win the game you have to go next to Thanta"))
 
459
        SendStat(siCustomAchievement, loc("Most of the time you'll be able to use only the icegun"))
 
460
        SendStat(siCustomAchievement, loc("Use the bazooka and the flying saucer to get the icegun"))
 
461
        SendStat(siPlayerKills,'1',teamB.name)
 
462
        SendStat(siPlayerKills,'0',teamC.name)
 
463
        EndGame()
 
464
end
 
465
 
 
466
function heroWin(gear)
 
467
        TurnTimeLeft=0
 
468
        if GetX(hero.gear) < GetX(bandit1.gear) then
 
469
                HogTurnLeft(bandit1.gear, true)
 
470
        else
 
471
                HogTurnLeft(bandit1.gear, false)
 
472
        end
 
473
        AddAnim(dialog02)
 
474
end
 
475
 
 
476
-------------- ANIMATIONS ------------------
 
477
 
 
478
function Skipanim(anim)
 
479
        if goals[anim] ~= nil then
 
480
                ShowMission(unpack(goals[anim]))
 
481
    end
 
482
    if anim == dialog02 then
 
483
                actionsOnWin()
 
484
        else
 
485
                AnimSwitchHog(hero.gear)
 
486
        end
 
487
end
 
488
 
 
489
function AnimationSetup()
 
490
        -- DIALOG 01 - Start, welcome to moon
 
491
        AddSkipFunction(dialog01, Skipanim, {dialog01})
 
492
        table.insert(dialog01, {func = AnimWait, args = {hero.gear, 3000}})
 
493
        table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("On the Ice Planet, where ice rules..."), 5000}})
 
494
        table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Finally you are here..."), SAY_SAY, 2000}})
 
495
        table.insert(dialog01, {func = AnimWait, args = {hero.gear, 2000}})
 
496
        table.insert(dialog01, {func = AnimSay, args = {hero.gear, loc("Hi! Nice to meet you"), SAY_SAY, 3000}})
 
497
        table.insert(dialog01, {func = AnimWait, args = {ally.gear, 2000}})
 
498
        table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Listen carefully! The bandit leader, Thanta, has recently found a very strange device"), SAY_SAY, 4000}})
 
499
        table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("He doesn't know it but this device is a part of the anti-gravity device"), SAY_SAY, 2500}})
 
500
        table.insert(dialog01, {func = AnimWait, args = {hero.gear, 8000}})
 
501
        table.insert(dialog01, {func = AnimSay, args = {hero.gear, loc("Nice, then I should get the part as soon as possible!"), SAY_SAY, 4000}})
 
502
        table.insert(dialog01, {func = AnimWait, args = {ally.gear, 4000}})
 
503
        table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("Be careful, your gadgets won't work in the bandit area. You should get an ice gun"), SAY_SAY, 7000}})
 
504
        table.insert(dialog01, {func = AnimSay, args = {ally.gear, loc("There is one below us!"), SAY_SAY, 4000}})
 
505
        table.insert(dialog01, {func = AnimWait, args = {hero.gear, 500}})
 
506
        table.insert(dialog01, {func = AnimSwitchHog, args = {hero.gear}})
 
507
        -- DIALOG 02 - Hero got to Thant2
 
508
        AddSkipFunction(dialog02, Skipanim, {dialog02})
 
509
        table.insert(dialog02, {func = AnimWait, args = {hero.gear, 3000}})
 
510
        table.insert(dialog02, {func = AnimCaption, args = {hero.gear, loc("Congratulations, now you can take Thanta's device part..."), 5000}})
 
511
        table.insert(dialog02, {func = AnimSay, args = {bandit1.gear, loc("Oh! Please spare me. You can take all my treasures!"), SAY_SAY, 3000}})
 
512
        table.insert(dialog02, {func = AnimWait, args = {hero.gear, 5000}})
 
513
        table.insert(dialog02, {func = AnimSay, args = {hero.gear, loc("I just want the strange device you found!"), SAY_SAY, 3000}})
 
514
        table.insert(dialog02, {func = AnimWait, args = {bandit1.gear, 4000}})
 
515
        table.insert(dialog02, {func = AnimSay, args = {bandit1.gear, loc("Here! Take it..."), SAY_SAY, 3000}})
 
516
        table.insert(dialog02, {func = actionsOnWin, args = {}})
 
517
end
 
518
 
 
519
-------------- Other Functions -------------------
 
520
 
 
521
function actionsOnWin()
 
522
        saveCompletedStatus(4)
 
523
        SendStat(siGameResult, loc("Congratulations, you acquired the device part!"))
 
524
        SendStat(siCustomAchievement, loc("At the end of the game your health was ")..GetHealth(hero.gear))
 
525
        -- maybe add number of tries for each part?
 
526
        SendStat(siPlayerKills,'1',teamC.name)
 
527
        SendStat(siPlayerKills,'0',teamB.name)
 
528
        EndGame()
 
529
end