author | Wuzzy <Wuzzy2@mail.ru> |
Mon, 21 Jan 2019 19:49:38 +0100 | |
changeset 14670 | e7b2542c4d28 |
parent 14516 | ff2c1f25fc03 |
child 14953 | ff4003a90ff8 |
permissions | -rw-r--r-- |
12228 | 1 |
-- Teamwork 2 |
2 |
-- Original scenario by Arkhnen |
|
3 |
||
4 |
HedgewarsScriptLoad("Scripts/Locale.lua") |
|
5 |
||
6 |
local player = nil |
|
7 |
local hlayer = nil |
|
8 |
local enemy = nil |
|
9 |
local Pack = nil |
|
10 |
local help = false |
|
11 |
local GameOver = false |
|
14503
d4aa64f51c9f
Use player-chosen team identity for most challenges and scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14487
diff
changeset
|
12 |
local playerTeamName |
12228 | 13 |
|
14 |
function onGameInit() |
|
15 |
Seed = 0 |
|
16 |
GameFlags = gfDisableWind |
|
13752
110d6c1e817f
Lua: Rename globals: NoPointX→NO_CURSOR, cMaxTurnTime→MAX_TURN_TIME, cMaxHogHealth→MAX_HOG_HEALTH
Wuzzy <Wuzzy2@mail.ru>
parents:
13664
diff
changeset
|
17 |
TurnTime = MAX_TURN_TIME |
12228 | 18 |
CaseFreq = 0 |
19 |
MinesNum = 0 |
|
20 |
MinesTime = 0 |
|
21 |
-- Disable Sudden Death |
|
22 |
HealthDecrease = 0 |
|
23 |
WaterRise = 0 |
|
24 |
||
25 |
Explosives = 0 |
|
26 |
Map = "CrazyMission" |
|
27 |
Theme = "CrazyMission" |
|
28 |
||
14516 | 29 |
playerTeamName = AddMissionTeam(-1) |
14503
d4aa64f51c9f
Use player-chosen team identity for most challenges and scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14487
diff
changeset
|
30 |
player = AddMissionHog(30) |
d4aa64f51c9f
Use player-chosen team identity for most challenges and scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14487
diff
changeset
|
31 |
hlayer = AddMissionHog(40) |
12228 | 32 |
|
13583
141cdfe0f3ca
Switch almost all Lua calls of AddTeam to using default clan colors instead of hardcoded color
Wuzzy <Wuzzy2@mail.ru>
parents:
13354
diff
changeset
|
33 |
AddTeam(loc("Cybernetic Empire"), -6, "ring", "Island", "Robot", "cm_binary") |
12228 | 34 |
enemy = AddHog(loc("WatchBot 4000"), 5, 50, "cyborg1") |
35 |
||
36 |
SetGearPosition(player, 180, 555) |
|
37 |
SetGearPosition(enemy, 1500, 914) |
|
38 |
SetGearPosition(hlayer, 333, 555) |
|
39 |
end |
|
40 |
||
41 |
function onGameStart() |
|
12933
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
42 |
Pack = SpawnSupplyCrate(40, 888, amPickHammer) |
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
43 |
SpawnSupplyCrate(90, 888, amBaseballBat) |
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
44 |
SpawnSupplyCrate(822, 750, amBlowTorch) |
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
45 |
SpawnSupplyCrate(700, 580, amJetpack) |
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
46 |
SpawnSupplyCrate(1400, 425, amParachute) |
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
47 |
SpawnSupplyCrate(1900, 770, amDynamite) |
e65aa3c3d4e6
Refactor scripts to use SpawnSupplyCrate (where it makes sense)
Wuzzy <Wuzzy2@mail.ru>
parents:
12586
diff
changeset
|
48 |
SpawnSupplyCrate(1794, 970, amDynamite) |
12228 | 49 |
|
50 |
ShowMission(loc("Teamwork 2"), loc("Scenario"), loc("Eliminate WatchBot 4000.") .. "|" .. loc("Both your hedgehogs must survive.") .. "|" .. loc("Land mines explode instantly."), -amBaseballBat, 0) |
|
51 |
||
52 |
AddGear(355, 822, gtSMine, 0, 0, 0, 0) |
|
53 |
AddGear(515, 525, gtSMine, 0, 0, 0, 0) |
|
54 |
AddGear(1080, 821, gtMine, 0, 0, 0, 0) |
|
55 |
AddGear(1055, 821, gtMine, 0, 0, 0, 0) |
|
56 |
AddGear(930, 587, gtMine, 0, 0, 0, 0) |
|
57 |
AddGear(955, 556, gtMine, 0, 0, 0, 0) |
|
58 |
AddGear(980, 556, gtMine, 0, 0, 0, 0) |
|
59 |
AddGear(1005, 556, gtMine, 0, 0, 0, 0) |
|
60 |
AddGear(710, 790, gtMine, 0, 0, 0, 0) |
|
61 |
AddGear(685, 790, gtMine, 0, 0, 0, 0) |
|
62 |
AddGear(660, 790, gtMine, 0, 0, 0, 0) |
|
63 |
AddGear(1560, 540, gtMine, 0, 0, 0, 0) |
|
64 |
AddGear(1610, 600, gtMine, 0, 0, 0, 0) |
|
65 |
AddGear(1660, 655, gtMine, 0, 0, 0, 0) |
|
66 |
AddGear(713, 707, gtMine, 0, 0, 0, 0) |
|
67 |
AddGear(1668, 969, gtExplosives, 0, 0, 0, 0) |
|
68 |
AddGear(1668, 906, gtExplosives, 0, 0, 0, 0) |
|
69 |
AddGear(1668, 842, gtExplosives, 0, 0, 0, 0) |
|
70 |
AddGear(1713, 969, gtExplosives, 0, 0, 0, 0) |
|
71 |
SetWind(90) |
|
12353
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
72 |
|
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
73 |
-- The enemy has no weapons and can only skip |
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
74 |
for i=0, AmmoTypeMax do |
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
75 |
if i ~= amNothing and i ~= amSkip then |
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
76 |
AddAmmo(enemy, i, 0) |
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
77 |
end |
ebff18a44c1e
Refactor Teamwork 2: No more hacky skipping, set proper ammos for enemy instead
Wuzzy <almikes@aol.com>
parents:
12352
diff
changeset
|
78 |
end |
12228 | 79 |
end |
80 |
||
81 |
function onGearAdd(gear) |
|
82 |
if GetGearType(gear) == gtJetpack then |
|
83 |
SetHealth(gear, 300) |
|
84 |
end |
|
85 |
end |
|
86 |
||
87 |
function onAmmoStoreInit() |
|
88 |
SetAmmo(amParachute, 1, 0, 0, 2) |
|
89 |
SetAmmo(amSwitch, 9, 0, 0, 0) |
|
90 |
SetAmmo(amSkip, 9, 0, 0, 0) |
|
91 |
SetAmmo(amPickHammer, 0, 0, 0, 1) |
|
92 |
SetAmmo(amBaseballBat, 0, 0, 0, 1) |
|
93 |
SetAmmo(amBlowTorch, 0, 0, 0, 2) |
|
94 |
SetAmmo(amJetpack, 0, 0, 0, 1) |
|
95 |
SetAmmo(amDynamite, 0, 0, 0, 1) |
|
96 |
end |
|
97 |
||
98 |
function onGearDelete(gear) |
|
99 |
if gear == Pack then |
|
13354 | 100 |
HogSay(CurrentHedgehog, loc("This will certainly come in handy."), SAY_THINK) |
12228 | 101 |
end |
12352
7f09d01ecb45
Fix false victory in Teamwork/Teamwork 2 when one of your hogs die in same turn as enemy
Wuzzy <almikes@aol.com>
parents:
12228
diff
changeset
|
102 |
-- Note: The victory sequence is done automatically by Hedgewars |
7f09d01ecb45
Fix false victory in Teamwork/Teamwork 2 when one of your hogs die in same turn as enemy
Wuzzy <almikes@aol.com>
parents:
12228
diff
changeset
|
103 |
if ( ((gear == player) or (gear == hlayer)) and (GameOver == false)) then |
12228 | 104 |
ShowMission(loc("Teamwork 2"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0) |
105 |
GameOver = true |
|
106 |
SetHealth(hlayer, 0) |
|
107 |
SetHealth(player, 0) |
|
108 |
end |
|
14487
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14485
diff
changeset
|
109 |
end |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14485
diff
changeset
|
110 |
|
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14485
diff
changeset
|
111 |
function onGameResult(winningClan) |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14485
diff
changeset
|
112 |
if winningClan == GetTeamClan(playerTeamName) then |
14485
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14422
diff
changeset
|
113 |
SaveMissionVar("Won", "true") |
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14422
diff
changeset
|
114 |
end |
12228 | 115 |
end |