author | Wuzzy <almikes@aol.com> |
Wed, 27 Sep 2017 20:47:18 +0200 | |
changeset 12567 | 68dd14766445 |
parent 12543 | 952afc3d2df2 |
child 12580 | 0c5ce463949b |
permissions | -rw-r--r-- |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
1 |
------------------- ABOUT ---------------------- |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
2 |
-- |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
3 |
-- Hog Solo has to catch the other hog in order |
9614
7fa70d381c75
added custom stats
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9613
diff
changeset
|
4 |
-- to get informations about the origin of Pr. Hogevil |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
5 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
6 |
HedgewarsScriptLoad("/Scripts/Locale.lua") |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
7 |
HedgewarsScriptLoad("/Scripts/Animate.lua") |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
8 |
HedgewarsScriptLoad("/Missions/Campaign/A_Space_Adventure/global_functions.lua") |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
9 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
10 |
----------------- VARIABLES -------------------- |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
11 |
-- globals |
9615
86b82816b222
image and description
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9614
diff
changeset
|
12 |
local missionName = loc("Chasing the blue hog") |
9757 | 13 |
local challengeObjectives = loc("Use the rope in order to catch the blue hedgehog").."|".. |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
14 |
loc("You have to stand very close to him") |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
15 |
local currentPosition = 1 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
16 |
local previousTimeLeft = 0 |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
17 |
local startChallenge = false |
11896
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
18 |
local winningTime = nil |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
19 |
-- dialogs |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
20 |
local dialog01 = {} |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
21 |
local dialog02 = {} |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
22 |
-- mission objectives |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
23 |
local goals = { |
11697
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
24 |
[dialog01] = {missionName, loc("Challenge objectives"), challengeObjectives, 1, 4500}, |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
25 |
} |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
26 |
-- hogs |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
27 |
local hero = { |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
28 |
name = loc("Hog Solo"), |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
29 |
x = 1300, |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
30 |
y = 850 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
31 |
} |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
32 |
local runner = { |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
33 |
name = loc("Crazy Runner"), |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
34 |
places = { |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
35 |
{x = 1400,y = 850, turnTime = 0}, |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
36 |
{x = 3880,y = 33, turnTime = 30000}, |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
37 |
{x = 250,y = 1780, turnTime = 25000}, |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
38 |
{x = 3850,y = 1940, turnTime = 20000}, |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
39 |
} |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
40 |
} |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
41 |
-- teams |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
42 |
local teamA = { |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
43 |
name = loc("Hog Solo"), |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
44 |
color = tonumber("38D61C",16) -- green |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
45 |
} |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
46 |
local teamB = { |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
47 |
name = loc("Crazy Runner"), |
12520
2df340544f25
Fix hard-to-read blue team color in ASA campaign
Wuzzy <almikes@aol.com>
parents:
12473
diff
changeset
|
48 |
color = tonumber("0072FF",16) -- blue |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
49 |
} |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
50 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
51 |
-------------- LuaAPI EVENT HANDLERS ------------------ |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
52 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
53 |
function onGameInit() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
54 |
GameFlags = gfDisableWind |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
55 |
Seed = 1 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
56 |
TurnTime = 25000 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
57 |
CaseFreq = 0 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
58 |
MinesNum = 0 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
59 |
MinesTime = 1 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
60 |
Explosives = 0 |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
61 |
Map = "moon02_map" |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
62 |
Theme = "Cheese" |
12473
d652c6f5d5f1
Disable Sudden Death for a couple of ASA missions
Wuzzy <almikes@aol.com>
parents:
12472
diff
changeset
|
63 |
-- Disable Sudden Death |
d652c6f5d5f1
Disable Sudden Death for a couple of ASA missions
Wuzzy <almikes@aol.com>
parents:
12472
diff
changeset
|
64 |
WaterRise = 0 |
d652c6f5d5f1
Disable Sudden Death for a couple of ASA missions
Wuzzy <almikes@aol.com>
parents:
12472
diff
changeset
|
65 |
HealthDecrease = 0 |
9758 | 66 |
|
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
67 |
-- Hog Solo |
12054
030464f34d47
Tweak flags used in all missions to fit more to the theme
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
68 |
AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "hedgewars") |
9612 | 69 |
hero.gear = AddHog(hero.name, 0, 1, "war_desertgrenadier1") |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
70 |
AnimSetGearPosition(hero.gear, hero.x, hero.y) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
71 |
-- Crazy Runner |
12054
030464f34d47
Tweak flags used in all missions to fit more to the theme
Wuzzy <almikes@aol.com>
parents:
11970
diff
changeset
|
72 |
AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_sonic") |
9615
86b82816b222
image and description
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9614
diff
changeset
|
73 |
runner.gear = AddHog(runner.name, 0, 100, "sth_Sonic") |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
74 |
AnimSetGearPosition(runner.gear, runner.places[1].x, runner.places[1].y) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
75 |
HogTurnLeft(runner.gear, true) |
9758 | 76 |
|
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
77 |
initCheckpoint("moon02") |
9758 | 78 |
|
12093
1da37e2ba6fd
Fix A Space Adventure Missions allowing player to walk before 1st animation and screw things up
Wuzzy <almikes@aol.com>
parents:
12054
diff
changeset
|
79 |
AnimInit(true) |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
80 |
AnimationSetup() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
81 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
82 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
83 |
function onGameStart() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
84 |
AnimWait(hero.gear, 3000) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
85 |
FollowGear(hero.gear) |
11697
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
86 |
ShowMission(missionName, loc("Challenge objectives"), challengeObjectives, -amSkip, 0) |
9758 | 87 |
|
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
88 |
AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0) |
9758 | 89 |
|
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
90 |
AddAmmo(hero.gear, amRope, 1) |
9758 | 91 |
|
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
92 |
SendHealthStatsOff() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
93 |
hogTurn = runner.gear |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
94 |
AddAnim(dialog01) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
95 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
96 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
97 |
function onNewTurn() |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
98 |
if startChallenge and currentPosition < 5 then |
9612 | 99 |
if CurrentHedgehog ~= hero.gear then |
12472
de69155f976b
Use new turn ending method in moon02.lua
Wuzzy <almikes@aol.com>
parents:
12093
diff
changeset
|
100 |
EndTurn(true) |
9612 | 101 |
else |
102 |
if GetAmmoCount(hero.gear, amRope) == 0 then |
|
103 |
lose() |
|
104 |
end |
|
10289 | 105 |
SetWeapon(amRope) |
9612 | 106 |
TurnTimeLeft = runner.places[currentPosition].turnTime + previousTimeLeft |
107 |
previousTimeLeft = 0 |
|
108 |
end |
|
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
109 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
110 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
111 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
112 |
function onGameTick() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
113 |
AnimUnWait() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
114 |
if ShowAnimation() == false then |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
115 |
return |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
116 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
117 |
ExecuteAfterAnimations() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
118 |
CheckEvents() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
119 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
120 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
121 |
function onGameTick20() |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
122 |
if GetHealth(hero.gear) and startChallenge and isHeroNextToRunner() and currentPosition < 5 then |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
123 |
moveRunner() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
124 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
125 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
126 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
127 |
function onPrecise() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
128 |
if GameTime > 3000 then |
9758 | 129 |
SetAnimSkip(true) |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
130 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
131 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
132 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
133 |
-------------- EVENTS ------------------ |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
134 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
135 |
function onHeroDeath(gear) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
136 |
if not GetHealth(hero.gear) then |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
137 |
return true |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
138 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
139 |
return false |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
140 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
141 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
142 |
-------------- ACTIONS ------------------ |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
143 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
144 |
function heroDeath(gear) |
9614
7fa70d381c75
added custom stats
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9613
diff
changeset
|
145 |
lose() |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
146 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
147 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
148 |
-------------- ANIMATIONS ------------------ |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
149 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
150 |
function Skipanim(anim) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
151 |
if goals[anim] ~= nil then |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
152 |
ShowMission(unpack(goals[anim])) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
153 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
154 |
if anim == dialog01 then |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
155 |
moveRunner() |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
156 |
elseif anim == dialog02 then |
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
157 |
win() |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
158 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
159 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
160 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
161 |
function AnimationSetup() |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
162 |
-- DIALOG 01 - Start, game instructions |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
163 |
AddSkipFunction(dialog01, Skipanim, {dialog01}) |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
164 |
table.insert(dialog01, {func = AnimWait, args = {hero.gear, 3200}}) |
11697
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
165 |
table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("On the other side of the moon ..."), 5000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
166 |
table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("So you are interested in Professor Hogevil, huh?"), SAY_SAY, 3000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
167 |
table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("We'll play a game first."), SAY_SAY, 3000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
168 |
table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("I'll let you know whatever I know about him if you manage to catch me 3 times."), SAY_SAY, 4000}}) |
9758 | 169 |
table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("Let's go!"), SAY_SAY, 2000}}) |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
170 |
table.insert(dialog01, {func = moveRunner, args = {}}) |
9758 | 171 |
-- DIALOG 02 - Hog Solo story |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
172 |
AddSkipFunction(dialog02, Skipanim, {dialog02}) |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
173 |
table.insert(dialog02, {func = AnimWait, args = {hero.gear, 3200}}) |
9757 | 174 |
table.insert(dialog02, {func = AnimCaption, args = {hero.gear, loc("The truth about Professor Hogevil"), 5000}}) |
175 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("Amazing! I was never beaten in a race before!"), SAY_SAY, 4000}}) |
|
11697
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
176 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("So, let me tell you what I know about Professor Hogevil."), SAY_SAY, 4000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
177 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("Professor Hogevil, then known as James Hogus, worked for PAotH back in my time."), SAY_SAY, 4000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
178 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("He was the lab assistant of Dr. Goodhogan, the inventor of the anti-gravity device."), SAY_SAY, 5000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
179 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("During the final testing of the device an accident happened."), SAY_SAY, 5000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
180 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("In this accident, Professor Hogevil lost all his spines on his head!"), SAY_SAY, 5000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
181 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("That's why he always wears a hat since then."), SAY_SAY, 4000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
182 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("After that incident he went underground and started working on his plan to steal the device."), SAY_SAY, 5000}}) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
183 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("He is a very tough and very determined hedgehog. I would be extremely careful if I were you."), SAY_SAY, 5000}}) |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
184 |
table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("I should go now, goodbye!"), SAY_SAY, 3000}}) |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
185 |
table.insert(dialog02, {func = win, args = {}}) |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
186 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
187 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
188 |
------------- other functions --------------- |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
189 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
190 |
function isHeroNextToRunner() |
11497
806da449d355
Fix Lua error spam in "Chasing the blue hog" after drowning both Crazy Runner and Hog Solo
Wuzzy <almikes@aol.com>
parents:
10289
diff
changeset
|
191 |
if GetGearType(hero.gear) == gtHedgehog and GetGearType(runner.gear) == gtHedgehog and |
806da449d355
Fix Lua error spam in "Chasing the blue hog" after drowning both Crazy Runner and Hog Solo
Wuzzy <almikes@aol.com>
parents:
10289
diff
changeset
|
192 |
math.abs(GetX(hero.gear) - GetX(runner.gear)) < 75 and |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
193 |
math.abs(GetY(hero.gear) - GetY(runner.gear)) < 75 and StoppedGear(hero.gear) then |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
194 |
return true |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
195 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
196 |
return false |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
197 |
end |
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
198 |
|
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
199 |
function moveRunner() |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
200 |
if currentPosition == 4 then |
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
201 |
currentPosition = currentPosition + 1 |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
202 |
if GetX(hero.gear) > GetX(runner.gear) then |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
203 |
HogTurnLeft(runner.gear, false) |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
204 |
end |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
205 |
AddAnim(dialog02) |
11896
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
206 |
|
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
207 |
-- Update time record |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
208 |
local baseTime = 0 |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
209 |
for i=1, #runner.places do |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
210 |
baseTime = baseTime + runner.places[i].turnTime |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
211 |
end |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
212 |
winningTime = baseTime - TurnTimeLeft |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
213 |
SendStat(siCustomAchievement, string.format(loc("You have managed to catch the blue hedgehog in %.3f seconds."), winningTime/1000)) |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
214 |
local record = tonumber(GetCampaignVar("FastestBlueHogCatch")) |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
215 |
if record ~= nil and winningTime >= record then |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
216 |
SendStat(siCustomAchievement, string.format(loc("Your personal best time so far: %.3f seconds"), record/1000)) |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
217 |
end |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
218 |
if record == nil or winningTime < record then |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
219 |
SaveCampaignVar("FastestBlueHogCatch", tostring(winningTime)) |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
220 |
if record ~= nil then |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
221 |
SendStat(siCustomAchievement, loc("This is a new personal best time, congratulations!")) |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
222 |
end |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
223 |
end |
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
224 |
|
12472
de69155f976b
Use new turn ending method in moon02.lua
Wuzzy <almikes@aol.com>
parents:
12093
diff
changeset
|
225 |
EndTurn(true) |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
226 |
elseif currentPosition < 4 then |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
227 |
if not startChallenge then |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
228 |
startChallenge = true |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
229 |
end |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
230 |
AddAmmo(hero.gear, amRope, 1) |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
231 |
if currentPosition ~= 1 then |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
232 |
PlaySound(sndVictory) |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
233 |
if currentPosition > 1 and currentPosition < 4 then |
11697
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
234 |
AnimCaption(hero.gear, loc("Go, get him again!"), 3000) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
235 |
AnimSay(runner.gear, loc("You got me!"), SAY_SAY, 3000) |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
236 |
end |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
237 |
previousTimeLeft = TurnTimeLeft |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
238 |
end |
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
239 |
currentPosition = currentPosition + 1 |
9772
30a9e740ec09
moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9758
diff
changeset
|
240 |
AddVisualGear(GetX(runner.gear), GetY(runner.gear), vgtExplosion, 0, false) |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
241 |
SetGearPosition(runner.gear, runner.places[currentPosition].x, runner.places[currentPosition].y) |
12472
de69155f976b
Use new turn ending method in moon02.lua
Wuzzy <almikes@aol.com>
parents:
12093
diff
changeset
|
242 |
EndTurn(true) |
9612 | 243 |
end |
9611
ef374528a9fb
moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff
changeset
|
244 |
end |
9612 | 245 |
|
246 |
function lose() |
|
11697
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
247 |
SendStat(siGameResult, loc("Too slow! Try again ...")) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
248 |
SendStat(siCustomAchievement, loc("You have to catch the other hog 3 times.")) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
249 |
SendStat(siCustomAchievement, loc("The time that you have left when you reach the blue hedgehog will be added to the next turn.")) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
250 |
SendStat(siCustomAchievement, loc("Each turn you'll have only one rope to use.")) |
68eddcdc9f26
Typo fixes for A Space Adventure campaign
Wuzzy <almikes@aol.com>
parents:
11497
diff
changeset
|
251 |
SendStat(siCustomAchievement, loc("You'll lose if you die or if your time is up.")) |
12543
952afc3d2df2
Show correct kill counts in all ASA missions (fixes #147)
Wuzzy <almikes@aol.com>
parents:
12520
diff
changeset
|
252 |
sendSimpleTeamRankings({teamB.name, teamA.name}) |
9612 | 253 |
EndGame() |
254 |
end |
|
255 |
||
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
256 |
function win() |
9642
8a691e0f117a
use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9615
diff
changeset
|
257 |
SendStat(siGameResult, loc("Congratulations, you are the fastest!")) |
11896
d79621bcb709
Save record time for Chasing the blue hog mission
Wuzzy <almikes@aol.com>
parents:
11697
diff
changeset
|
258 |
-- siCustomAchievements were added earlier |
12543
952afc3d2df2
Show correct kill counts in all ASA missions (fixes #147)
Wuzzy <almikes@aol.com>
parents:
12520
diff
changeset
|
259 |
sendSimpleTeamRankings({teamA.name, teamB.name}) |
11957
63988f36debf
Save mission success for A Space Adventure missions
Wuzzy <almikes@aol.com>
parents:
11896
diff
changeset
|
260 |
SaveCampaignVar("Mission13Won", "true") |
11970
72be38f6d0c0
Complete space campaign's spacetrip mission if all main+side missions are completed
Wuzzy <almikes@aol.com>
parents:
11957
diff
changeset
|
261 |
checkAllMissionsCompleted() |
9613
142ba1d08205
cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents:
9612
diff
changeset
|
262 |
EndGame() |
9612 | 263 |
end |