author | Wuzzy <Wuzzy2@mail.ru> |
Tue, 18 Dec 2018 18:16:31 +0100 | |
changeset 14469 | ead8928a59f8 |
parent 14406 | 6c21bd8547dd |
child 14480 | 2113296b7a29 |
permissions | -rw-r--r-- |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
1 |
--[=[ |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
2 |
Speed Shoppa Mission Framework for Hedgewars |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
3 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
4 |
This is a simple library intended to make setting up simple training missions a trivial |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
5 |
task. The library has been created to reduce redundancy in Lua scripts. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
6 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
7 |
The framework generates complete and fully Speed Shoppa missions by just |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
8 |
one function call. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
9 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
10 |
The missions generated by this script are all the same: |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
11 |
- The player will get a team with a single hedgehog. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
12 |
- The team gets infinite ropes. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
13 |
- A fixed set of crates will spawn at predefined positions. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
14 |
- The mission ends successfully when all crates have been collected |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
15 |
- The mission ends unsuccessfully when the time runs out or the hedgehog dies |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
16 |
- When the mission ends, the time it took to finish the mission is shown |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
17 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
18 |
To use this library, you first have to load it and to call SpeedShoppaMission once with |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
19 |
the appropriate parameters. Really, that’s all! |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
20 |
See the comment of SpeedShoppaMission for a specification of all parameters. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
21 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
22 |
]=] |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
23 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
24 |
HedgewarsScriptLoad("/Scripts/Locale.lua") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
25 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
26 |
--[[ |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
27 |
SpeedShoppaMission(params) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
28 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
29 |
This function sets up the *entire* mission and needs one argument: params. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
30 |
The argument “params” is a table containing fields which describe the training mission. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
31 |
mandatory fields: |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
32 |
- map: the name of the map to be used |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
33 |
- theme: the name of the theme (does not need to be a standalone theme) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
34 |
- time: the time limit in milliseconds |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
35 |
- crates: The coordinates of where the crates will be spawned. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
36 |
It is a table containing tables containing coordinates of format |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
37 |
{ x=value, y=value }. Example: |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
38 |
crates = { |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
39 |
{ x = 324, y = 43 }, |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
40 |
{ x = 123, y = 56 }, |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
41 |
{ x = 6, y = 0 }, |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
42 |
} |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
43 |
There must be at least 1 crate. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
44 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
45 |
optional fields: |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
46 |
- missionTitle: the name of the mission (optional but highly recommended) (default: "Speed Shoppa") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
47 |
- hogHat: hat of the hedgehog (default: "NoHat") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
48 |
- hogName: name of the hedgehog (default: "Roper") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
49 |
- teamName: name of the hedgehog’s team (default: "Shoppers") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
50 |
- teamGrave: name of the hedgehog’s grave (default: "Statue") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
51 |
- teamFlag: name of the team’s flag (default: "cm_shoppa") |
13588
141cdfe0f3ca
Switch almost all Lua calls of AddTeam to using default clan colors instead of hardcoded color
Wuzzy <Wuzzy2@mail.ru>
parents:
13071
diff
changeset
|
52 |
- clanColor: color of the (only) clan (default: -1, default first clan color) |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
53 |
- goalText: A short string explaining the goal of the mission |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
54 |
(default: "Use your rope to collect all crates as fast as possible.") |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
55 |
- faceLeft: If true, the hog faces to the left initially, if false, it faces to the right. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
56 |
(default: false (=right)) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
57 |
- crateType Specify the type of crate (this has no gameplay effect), pick one of |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
58 |
"ammo", "utility", "health". Default: "ammo" |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
59 |
- extra_onGameStart: A function which is called at the end of this script's onGameStart. It takes no parameters. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
60 |
You could use this to spawn additional gears like girders or mines. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
61 |
- extra_onGameInit: A function which is called at the end of this script's onGameInit. |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
62 |
]] |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
63 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
64 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
65 |
local playerHog |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
66 |
local gameStarted = false |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
67 |
local cratesCollected = 0 |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
68 |
local gameEnded = false |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
69 |
local timeOut = false |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
70 |
local hogHurt = false |
14236
74bf2d906097
Turn accidental globals to locals in Lua libraries
Wuzzy <Wuzzy2@mail.ru>
parents:
13745
diff
changeset
|
71 |
local startTime, endTime |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
72 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
73 |
local crates |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
74 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
75 |
function SpeedShoppaMission(params) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
76 |
if params.hogHat == nil then params.hogHat = "NoHat" end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
77 |
if params.hogName == nil then params.hogName = loc("Roper") end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
78 |
if params.teamName == nil then params.teamName = loc("Shoppers") end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
79 |
if params.goalText == nil then params.goalText = loc("Use your rope to collect all crates as fast as possible.") end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
80 |
if params.missionTitle == nil then params.missionTitle = loc("Speed Shoppa") end |
13588
141cdfe0f3ca
Switch almost all Lua calls of AddTeam to using default clan colors instead of hardcoded color
Wuzzy <Wuzzy2@mail.ru>
parents:
13071
diff
changeset
|
81 |
if params.clanColor == nil then params.clanColor = -1 end |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
82 |
if params.teamGrave == nil then params.teamGrave = "Statue" end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
83 |
if params.teamFlag == nil then params.teamFlag = "cm_shoppa" end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
84 |
if params.extra_onGameInit == nil then params.extra_onGameInit = function() end end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
85 |
if params.extra_onGameStart == nil then params.extra_onGameStart = function() end end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
86 |
if params.faceLeft == nil then params.faceLeft = false end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
87 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
88 |
crates = params.crates |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
89 |
startTime = params.time |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
90 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
91 |
_G.onGameInit = function() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
92 |
GameFlags = gfDisableWind + gfOneClanMode + gfBorder + gfSolidLand |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
93 |
TurnTime = startTime |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
94 |
CaseFreq = 0 |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
95 |
MinesNum = 0 |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
96 |
Explosives = 0 |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
97 |
Theme = params.theme |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
98 |
Map = params.map |
12229
d62d6f8ebef1
Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents:
11034
diff
changeset
|
99 |
-- Disable Sudden Death |
d62d6f8ebef1
Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents:
11034
diff
changeset
|
100 |
WaterRise = 0 |
d62d6f8ebef1
Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents:
11034
diff
changeset
|
101 |
HealthDecrease = 0 |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
102 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
103 |
AddTeam(params.teamName, params.clanColor, params.teamGrave, "Castle", "Default", params.teamFlag) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
104 |
playerHog = AddHog(params.hogName, 0, 1, params.hogHat) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
105 |
HogTurnLeft(playerHog, params.faceLeft) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
106 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
107 |
SetGearPosition(playerHog, params.hog_x, params.hog_y) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
108 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
109 |
params.extra_onGameInit() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
110 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
111 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
112 |
_G.onAmmoStoreInit = function() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
113 |
SetAmmo(amRope, 9, 0, 0, 1) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
114 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
115 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
116 |
_G.onGameStart = function() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
117 |
SendHealthStatsOff() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
118 |
ShowMission(params.missionTitle, loc("Challenge"), params.goalText, -amRope, 5000) |
13070
a297e06d1607
Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
13039
diff
changeset
|
119 |
-- <crates collected>/<total number of crates> |
a297e06d1607
Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
13039
diff
changeset
|
120 |
SetTeamLabel(params.teamName, string.format(loc("%d/%d"), cratesCollected, #crates)) |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
121 |
for i=1,#crates do |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
122 |
spawnCrate(crates[i].x, crates[i].y) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
123 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
124 |
params.extra_onGameStart() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
125 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
126 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
127 |
_G.onNewTurn = function() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
128 |
SetWeapon(amRope) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
129 |
gameStarted = true |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
130 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
131 |
_G.onGearDelete = function(gear) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
132 |
if GetGearType(gear) == gtCase and not hogHurt and not timeOut then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
133 |
cratesCollected = cratesCollected + 1 |
13070
a297e06d1607
Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
13039
diff
changeset
|
134 |
-- <crates collected>/<total number of crates> |
a297e06d1607
Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents:
13039
diff
changeset
|
135 |
SetTeamLabel(params.teamName, string.format(loc("%d/%d"), cratesCollected, #crates)) |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
136 |
PlaySound(sndShotgunReload) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
137 |
if cratesCollected == #crates then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
138 |
endTime = TurnTimeLeft |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
139 |
finalize() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
140 |
else |
13071
ad75ed9a1e15
RC Plane Challenge: Switch to using fake crates only
Wuzzy <Wuzzy2@mail.ru>
parents:
13070
diff
changeset
|
141 |
AddCaption(string.format(loc("Crates left: %d"), #crates - cratesCollected)) |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
142 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
143 |
elseif gear == playerHog then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
144 |
finalize() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
145 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
146 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
147 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
148 |
_G.onGearDamage = function(gear) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
149 |
if gear == playerHog then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
150 |
hogHurt = true |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
151 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
152 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
153 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
154 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
155 |
_G.onGameTick20 = function() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
156 |
if TurnTimeLeft < 40 and TurnTimeLeft > 0 and gameStarted and not timeOut and not gameEnded then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
157 |
timeOut = true |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
158 |
AddCaption(loc("Time's up!")) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
159 |
SetHealth(playerHog, 0) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
160 |
hogHurt = true |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
161 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
162 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
163 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
164 |
_G.finalize = function() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
165 |
if not gameEnded then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
166 |
if cratesCollected == #crates then |
14469
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14406
diff
changeset
|
167 |
SaveMissionVar("Won", "true") |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
168 |
PlaySound(sndVictory, playerHog) |
13039
fe9c12209f15
Make hog invulnerable after winning SpeedShoppa or TargetPractice mission
Wuzzy <Wuzzy2@mail.ru>
parents:
12229
diff
changeset
|
169 |
SetEffect(playerHog, heInvulnerable, 1) |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
170 |
SetState(playerHog, bor(GetState(playerHog), gstWinner)) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
171 |
SetState(playerHog, band(GetState(playerHog), bnot(gstHHDriven))) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
172 |
AddCaption(loc("Challenge completed!")) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
173 |
SendStat(siGameResult, loc("Challenge completed!")) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
174 |
SendStat(siPointType, loc("milliseconds")) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
175 |
local time = startTime - endTime |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
176 |
SendStat(siPlayerKills, tostring(time), params.teamName) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
177 |
SendStat(siCustomAchievement, string.format(loc("You have finished the challenge in %.3f s."), (time/1000))) |
13745
2bb7141496a9
Use SetTurnTimeLeft and SetReadyTimeLeft in all scripts
Wuzzy <Wuzzy2@mail.ru>
parents:
13588
diff
changeset
|
178 |
SetTurnTimeLeft(0) |
11034
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
179 |
else |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
180 |
SendStat(siGameResult, loc("Challenge failed!")) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
181 |
SendStat(siPointType, loc("crate(s)")) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
182 |
SendStat(siPlayerKills, tostring(cratesCollected), params.teamName) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
183 |
SendStat(siCustomAchievement, string.format(loc("You have collected %d out of %d crate(s)."), cratesCollected, #crates)) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
184 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
185 |
gameEnded = true |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
186 |
EndGame() |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
187 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
188 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
189 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
190 |
_G.spawnCrate = function(x, y) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
191 |
if params.crateType == "utility" then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
192 |
SpawnFakeUtilityCrate(x, y, false, false) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
193 |
elseif params.crateType == "ammo" then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
194 |
SpawnFakeAmmoCrate(x, y, false, false) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
195 |
elseif params.crateType == "health" then |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
196 |
SpawnFakeHealthCrate(x, y, false, false) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
197 |
else |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
198 |
SpawnFakeAmmoCrate(x, y, false, false) |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
199 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
200 |
end |
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
201 |
|
a9bafac12634
Add Wuzzy's SpeedShoppa challenges.
mikade <redgrinner@gmail.com>
parents:
diff
changeset
|
202 |
end |