author | Wuzzy <Wuzzy2@mail.ru> |
Wed, 16 Jan 2019 06:24:50 +0100 | |
changeset 14609 | ce315bb8b59d |
parent 14489 | 764ba6182389 |
child 14816 | d65e25e211d4 |
permissions | -rw-r--r-- |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
1 |
--[=[ |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
2 |
= Simple Mission Framework for Hedgewars = |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
3 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
4 |
This is a simple library intended to make setting up simple missions an |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
5 |
easy task for Lua scripters. The entire game logic and coding is |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
6 |
abtracted away in a single function which you just need to feed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
7 |
a large definition table in which you define gears, goals, etc. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
8 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
9 |
This is ideal for missions in which you set up the entire scenario |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
10 |
from the start and don't need any complex in-mission events. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
11 |
BUT! This is NOT suited for missions with scripted events, cut-scenes, |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
12 |
branching story, etc. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
13 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
14 |
This library has the following features: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
15 |
* Add teams, clans, hogs |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
16 |
* Spawn gears |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
17 |
* Sensible defaults for almost everything |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
18 |
* Set custom goals or use the default one (kill all enemies) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
19 |
* Add non-goals to fail the mission |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
20 |
* Checks victory and failure automatically |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
21 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
22 |
To use this library, you first have to load it and to call SimpleMission once with |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
23 |
the appropriate parameters. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
24 |
See the comment of SimpleMission for a specification of all parameters. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
25 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
26 |
]=] |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
27 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
28 |
HedgewarsScriptLoad("/Scripts/Locale.lua") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
29 |
HedgewarsScriptLoad("/Scripts/Tracker.lua") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
30 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
31 |
--[[ |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
32 |
SimpleMission(params) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
33 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
34 |
This function sets up the *entire* mission and needs one argument: params. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
35 |
The argument “params” is a table containing fields which describe the mission. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
36 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
37 |
Mandatory fields: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
38 |
- teams: Table of teams. There must be 1-8 teams. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
39 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
40 |
Optional fields |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
41 |
- ammoConfig Table containing basic ammo values (default: infinite skip only) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
42 |
- initVars Table where you set up environment parameters such as MinesNum. |
13066
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
43 |
- wind If set, the wind will permanently set to this value (-100..100). Implies gfDisableWind |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
44 |
- gears: Table of objects. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
45 |
- girders Table of girders |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
46 |
- rubbers Table of rubbers |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
47 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
48 |
AMMO |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
49 |
- ammoType ammo type |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
50 |
- delay delay (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
51 |
- numberInCrate ammo per crate (default: 1) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
52 |
- count default starter ammo for everyone, 9 for infinite (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
53 |
- probability probability in crates (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
54 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
55 |
TEAM DATA |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
56 |
- isMissionTeam if true, this is the player's chosen team for this mission (default: false) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
57 |
- hogs table of hedgehogs in this team (must contain at least 1 hog) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
58 |
- clanID ID of the clan to which this team belongs to. Counting starts at 0. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
59 |
By default, each team goes into its own clan. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
60 |
Important: The clan of the player and allies MUST be 0. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
61 |
Important: You MUST either set the clan ID explicitly for all teams or none of them. |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
62 |
These arguments will be ignored if this is a mission team: |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
63 |
- name team name |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
64 |
- flag flag name (default: hedgewars) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
65 |
- grave grave name (has default grave for each team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
66 |
- fort fort name (default: Castle) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
67 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
68 |
HEDGEHOG DATA: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
69 |
- id optional identifier for goals |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
70 |
- health hog health (default: 100) |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
71 |
- ammo table of ammo types |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
72 |
- x, y hog position (default: spawns randomly on land) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
73 |
- poisoned if true, hedgehog starts poisoned with 5 poison damage. Set to a number for other poison damage (default: false) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
74 |
- frozen if true, hedgehogs starts frozen (default: false) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
75 |
- faceLeft initial facing direction. true=left, false=false (default: false) |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
76 |
These arguments will be ignored if the hog is in a mission team: |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
77 |
- name hog name |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
78 |
- botLevel 1-5: Bot level (lower=stronger). 0=human player (default: 0) |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
79 |
- hat hat name (default: NoHat) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
80 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
81 |
GEAR TYPES: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
82 |
- type gear type |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
83 |
ALL types: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
84 |
id optional identifier for goals |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
85 |
x x coordinate of starting position (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
86 |
y y coordinate of starting position (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
87 |
dx initial x speed (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
88 |
dy initial y speed (default: 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
89 |
- type=gtMine Mine |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
90 |
timer Mine timer (only for non-duds). Default: MinesTime |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
91 |
isDud Whether the mine is a dud. default: false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
92 |
isFrozen Whether the mine is frozen. If true, it implies being a dud as well. Default: false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
93 |
health Initial health of dud mines. Has no effect if isDud=false. Default: 36 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
94 |
- type=gtSMine Sticky mine |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
95 |
timer Timer. Default: 500 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
96 |
- type=gtAirMine Air mine |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
97 |
timer Timer. Default: (MinesTime/1000 * 250) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
98 |
- type=gtExplosives Barrel |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
99 |
health Initial health. Default: 60 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
100 |
isFrozen Whether the barrel is frozen. Default: true with health > 60, false otherwise |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
101 |
isRolling Whether the barrel starts in “rolling” state. Default: false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
102 |
- type=gtCase Crate |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
103 |
crateType "health": Health crate |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
104 |
"supply": Ammo or utility crate (select crate type automatically) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
105 |
"supply_ammo_explicit": Ammo crate (not recommened) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
106 |
"supply_utility_explicit": Utility crate (not recommededn) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
107 |
ammoType Contained ammo (only for ammo and utility crates). |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
108 |
health Contained health (only for health crates). Default: HealthCaseAmount |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
109 |
isFrozen Whether the crate is frozen. Default: false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
110 |
- type=gtKnife Cleaver |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
111 |
- type=gtTarget Target |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
112 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
113 |
GOALS: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
114 |
Note: If there are at least two opposing teams, a default goal is used, which is to defeat all the enemies of the |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
115 |
player's team. If this is what you want, you can skip this section. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
116 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
117 |
The default goal is overwritten as if customGoals has been set. Set customGoals and other related parameters for |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
118 |
defining your own special goals. In this case, the mission is won if all customGoals are completed. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
119 |
Note the mission will always fail if the player's hedgehogs and all their allies have been defeated. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
120 |
If there is only one team (for the player), there is no default goal and one must be set explicitly. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
121 |
- customGoals Table of custom goals (see below). All of them must be met to win. Some goal types might fail, |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
122 |
rendering the mission unwinnable and leading to the loss of the mission. An example is |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
123 |
blowing up a crate which you should have collected.ed. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
124 |
- customNonGoals Table of non-goals, the player loses if one of them is achieved |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
125 |
- customGoalCheck When to check goals and non-goals. Values: "instant" (default), "turnStart", "turnEnd" |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
126 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
127 |
- missionTitle: The name of the mission (highly recommended) |
13062
8b44518d1002
Convert Newton and the Hammock to SimpleMission format
Wuzzy <Wuzzy2@mail.ru>
parents:
13060
diff
changeset
|
128 |
- missionIcon: Icon of the mission panel, see documentation of ShowMission in the Lua API |
13058
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
129 |
- goalText: A short string explaining the goal of the mission (use this if you set custom goals). |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
130 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
131 |
GOAL TYPES: |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
132 |
- type name of goal type |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
133 |
- failText Optional. For non-goals, this text will be shown in the stats if mission fails due to this non-goal |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
134 |
being completed. For goals which fail, this text will be displayed at failure. Note that |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
135 |
all normal goals have sensible default fail texts. |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
136 |
- type="destroy" Gear must be destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
137 |
- id Gear to destroy |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
138 |
- type="teamDefeat" Team must be defeated |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
139 |
- teamName Name of team to defeat |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
140 |
- type="collect" Crate must be collected |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
141 |
FAIL CONDITION: Crate taken by enemy, or destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
142 |
- id ID of crate gear to collect |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
143 |
- collectors Optional table of gear IDs, any one of which must collect the gear (but nobody else!). |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
144 |
By default, this is for the player's teams and allies. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
145 |
- type="turns" Achieved when a number of turns has been played |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
146 |
- turns Number of played turns |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
147 |
- type="rounds" Achieved when a number of rounds has been played |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
148 |
- rounds Number of played rounds |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
149 |
- type="suddenDeath" Sudden Death has started |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
150 |
- type="inZone" A gear is within given coordinate bounds. Each of xMin, xMax, yMin and yMax is a sub-goal. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
151 |
Each sub-goal is only checked if not nil. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
152 |
You can use this to check if a gear left, right, above or below a given coordinate. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
153 |
To check if the gear is within a rectangle, just set all 4 sub-goals. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
154 |
FAIL CONDITION: Gear destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
155 |
- id Gear to watch |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
156 |
- xMin gear's X coordinate must be lower than this |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
157 |
- xMax gear's X coordinate must be higher than this |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
158 |
- yMin gear's Y coordinate must be lower than this |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
159 |
- yMax gear's Y coordinate must be higher than this |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
160 |
- type="distGearPos" Distance between a gear and a fixed position |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
161 |
FAIL CONDITION: Gear destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
162 |
- distance goal distance to compare to |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
163 |
- relationship "greaterThan" or "lowerThan" |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
164 |
- id gear to watch |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
165 |
- x x coordinate to reach |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
166 |
- y y coordinate to reach |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
167 |
- type="distGearGear" Distance between two gears |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
168 |
FAIL CONDITION: Any of both gears destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
169 |
- distance goal distance to compare to |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
170 |
- relationship "greaterThan" or "lowerThan" |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
171 |
- id1 first gear to compare |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
172 |
- id2 second gear to compare |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
173 |
- type="damage" Gear took damage or was destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
174 |
- id Gear to watch |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
175 |
- damage Minimum amount of damage to take at a single blow. Default: 1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
176 |
- canDestroy If false, this goal will fail if the gear was destroyed without taking the required damage |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
177 |
- type="drown" Gear has drowned |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
178 |
FAIL CONDITION: Gear destroyed by other means |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
179 |
- id Gear to watch |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
180 |
- type="poison" Gear must be poisoned |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
181 |
FAIL CONDITION: Gear destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
182 |
- id Gear to be poisoned |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
183 |
- type="cure" Gear must exist and be free from poisoning |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
184 |
FAIL CONDITION: Gear destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
185 |
- id Gear to check |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
186 |
- type="freeze" Gear must exist and be frozen |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
187 |
FAIL CONDITION: Gear destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
188 |
- id Gear to be frozen |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
189 |
- type="melt" Gear must exist and be unfrozen |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
190 |
FAIL CONDITION: Gear destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
191 |
- id Gear to check |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
192 |
- type="waterSkip" Gear must have skipped over water |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
193 |
FAIL CONDITION: Gear destroyed before it reached the required number of skips |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
194 |
- id |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
195 |
- skips Total number of water skips required at least (default: 1) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
196 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
197 |
]] |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
198 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
199 |
local goals |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
200 |
local teamHogs = {} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
201 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
202 |
--[[ |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
203 |
HELPER VARIABLES |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
204 |
]] |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
205 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
206 |
local defaultGraves = { |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
207 |
"Grave", "Statue", "pyramid", "Simple", "skull", "Badger", "Duck2", "Flower" |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
208 |
} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
209 |
local defaultFlags = { |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
210 |
"hedgewars", "cm_birdy", "cm_eyes", "cm_spider", "cm_kiwi", "cm_scout", "cm_skull", "cm_bars" |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
211 |
} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
212 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
213 |
-- Utility functions |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
214 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
215 |
-- Returns value if it is non-nil, otherwise returns default |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
216 |
local function def(value, default) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
217 |
if value == nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
218 |
return default |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
219 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
220 |
return value |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
221 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
222 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
223 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
224 |
-- Get hypotenuse of a triangle with legs x and y |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
225 |
local function hypot(x, y) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
226 |
local t |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
227 |
x = math.abs(x) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
228 |
y = math.abs(y) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
229 |
t = math.min(x, y) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
230 |
x = math.max(x, y) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
231 |
if x == 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
232 |
return 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
233 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
234 |
t = t / x |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
235 |
return x * math.sqrt(1 + t * t) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
236 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
237 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
238 |
local errord = false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
239 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
240 |
-- This function generates the mission. See above for the meaning of params. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
241 |
function SimpleMission(params) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
242 |
if params.missionTitle == nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
243 |
params.missionTitle = loc("Scenario") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
244 |
end |
13062
8b44518d1002
Convert Newton and the Hammock to SimpleMission format
Wuzzy <Wuzzy2@mail.ru>
parents:
13060
diff
changeset
|
245 |
if params.missionIcon == nil then |
8b44518d1002
Convert Newton and the Hammock to SimpleMission format
Wuzzy <Wuzzy2@mail.ru>
parents:
13060
diff
changeset
|
246 |
params.missionIcon = 1 -- target icon |
8b44518d1002
Convert Newton and the Hammock to SimpleMission format
Wuzzy <Wuzzy2@mail.ru>
parents:
13060
diff
changeset
|
247 |
end |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
248 |
if params.goalText == nil then |
13064
2f21d92eae27
Convert Nobody Laugh to SimpleMission format
Wuzzy <Wuzzy2@mail.ru>
parents:
13062
diff
changeset
|
249 |
params.goalText = loc("Eliminate the enemy.") |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
250 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
251 |
if params.customGoalCheck == nil and (params.customGoals ~= nil or params.customNonGoals ~= nil) then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
252 |
params.customGoalCheck = "instant" |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
253 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
254 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
255 |
_G.sm = {} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
256 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
257 |
_G.sm.isInSuddenDeath = false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
258 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
259 |
-- Number of completed turns |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
260 |
_G.sm.gameTurns = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
261 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
262 |
_G.sm.goalGears = {} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
263 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
264 |
_G.sm.params = params |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
265 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
266 |
_G.sm.gameEnded = false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
267 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
268 |
_G.sm.playerClan = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
269 |
|
14469
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14236
diff
changeset
|
270 |
_G.sm.wonVarWritten = false |
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14236
diff
changeset
|
271 |
|
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
272 |
_G.sm.makeStats = function(winningClan, customAchievements) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
273 |
for t=0, TeamsCount-1 do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
274 |
local team = GetTeamName(t) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
275 |
local stats = GetTeamStats(team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
276 |
local clan = GetTeamClan(team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
277 |
if clan == winningClan then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
278 |
SendStat(siPlayerKills, stats.Kills, team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
279 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
280 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
281 |
for t=0, TeamsCount-1 do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
282 |
local team = GetTeamName(t) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
283 |
local stats = GetTeamStats(team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
284 |
local clan = GetTeamClan(team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
285 |
if clan ~= winningClan then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
286 |
SendStat(siPlayerKills, stats.Kills, team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
287 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
288 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
289 |
if customAchievements ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
290 |
for a=1, #customAchievements do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
291 |
SendStat(siCustomAchievement, customAchievements[a]) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
292 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
293 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
294 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
295 |
|
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
296 |
_G.sm.criticalGearFailText = function(gearSmid) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
297 |
local gear = _G.sm.goalGears[gearSmid] |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
298 |
if GetGearType(gear) == gtHedgehog then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
299 |
return string.format(loc("%s is dead, who was critical to this mission!"), GetHogName(gear)) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
300 |
else |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
301 |
return loc("We have lost an object which was critical to this mission.") |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
302 |
end |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
303 |
end |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
304 |
|
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
305 |
_G.sm.checkGoal = function(goal) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
306 |
if goal.type == "destroy" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
307 |
return getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
308 |
elseif goal.type == "collect" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
309 |
local collector = getGearValue(_G.sm.goalGears[goal.id], "sm_collected") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
310 |
if collector then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
311 |
if not goal.collectors then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
312 |
if GetHogClan(collector) == _G.sm.playerClan then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
313 |
return true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
314 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
315 |
-- Fail if the crate was collected by enemy |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
316 |
return "fail", loc("The enemy has taken a crate which we really needed!") |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
317 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
318 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
319 |
for c=1, #goal.collectors do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
320 |
if _G.sm.goalGears[goal.collectors[c]] == collector then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
321 |
return true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
322 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
323 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
324 |
-- Fail if the crate was collected by someone who was not supposed to get it |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
325 |
return "fail", loc("The wrong hedgehog has taken the crate.") |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
326 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
327 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
328 |
-- Fail goal if crate was destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
329 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
330 |
return "fail", loc("A crate critical to this mission has been destroyed.") |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
331 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
332 |
return false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
333 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
334 |
elseif goal.type == "turns" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
335 |
return sm.gameTurns >= goal.turns |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
336 |
elseif goal.type == "rounds" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
337 |
return (TotalRounds) >= goal.rounds |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
338 |
elseif goal.type == "inZone" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
339 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
340 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
341 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
342 |
local gX, gY = GetGearPosition(_G.sm.goalGears[goal.id]) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
343 |
-- 4 sub-goals, each optional |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
344 |
local g1 = (not goal.xMin) or gX >= goal.xMin |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
345 |
local g2 = (not goal.xMax) or gX <= goal.xMax |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
346 |
local g3 = (not goal.yMin) or gY >= goal.yMin |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
347 |
local g4 = (not goal.yMax) or gY <= goal.yMax |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
348 |
return g1 and g2 and g3 and g4 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
349 |
elseif goal.type == "distGearPos" or goal.type == "distGearGear" then |
14236
74bf2d906097
Turn accidental globals to locals in Lua libraries
Wuzzy <Wuzzy2@mail.ru>
parents:
13648
diff
changeset
|
350 |
local gX, gY, tX, tY |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
351 |
if goal.type == "distGearPos" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
352 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
353 |
-- Fail if gear was destroyed |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
354 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
355 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
356 |
gX, gY = GetGearPosition(_G.sm.goalGears[goal.id]) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
357 |
tX, tY = goal.x, goal.y |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
358 |
elseif goal.type == "distGearGear" then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
359 |
-- Fail if one of the gears was destroyed |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
360 |
if getGearValue(_G.sm.goalGears[goal.id1], "sm_destroyed") then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
361 |
return "fail", criticalGearFailText(goal.id1) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
362 |
elseif getGearValue(_G.sm.goalGears[goal.id2], "sm_destroyed") then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
363 |
return "fail", criticalGearFailText(goal.id2) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
364 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
365 |
gX, gY = GetGearPosition(_G.sm.goalGears[goal.id1]) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
366 |
tX, tY = GetGearPosition(_G.sm.goalGears[goal.id2]) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
367 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
368 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
369 |
local h = hypot(gX - tX, gY - tY) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
370 |
if goal.relationship == "smallerThan" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
371 |
return h < goal.distance |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
372 |
elseif goal.relationship == "greaterThan" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
373 |
return h > goal.distance |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
374 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
375 |
-- Invalid parameters! |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
376 |
error("SimpleMission: Invalid parameters for distGearPos/distGearGear!") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
377 |
errord = true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
378 |
return false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
379 |
elseif goal.type == "suddenDeath" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
380 |
return sm.isInSuddenDeath |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
381 |
elseif goal.type == "damage" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
382 |
local damage = goal.damage or 1 |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
383 |
local gear = _G.sm.goalGears[goal.id] |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
384 |
local tookEnoughDamage = getGearValue(gear, "sm_maxDamage") >= damage |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
385 |
if getGearValue(gear, "sm_destroyed") then |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
386 |
-- Fail if gear was destroyed without taking enough damage first |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
387 |
if not tookEnoughDamage and goal.canDestroy == false then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
388 |
if GetGearType(gear) == gtHedgehog then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
389 |
return "fail", string.format(loc("%s has been killed before taking enough damage first."), GetHogName(gear)) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
390 |
else |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
391 |
return "fail", loc("An object has been destroyed before it took enough damage.") |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
392 |
end |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
393 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
394 |
-- By default, succeed if gear was destroyed |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
395 |
return true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
396 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
397 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
398 |
return tookEnoughDamage |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
399 |
elseif goal.type == "drown" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
400 |
local drowned = getGearValue(_G.sm.goalGears[goal.id], "sm_drowned") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
401 |
-- Fail if gear was destroyed by something other than drowning |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
402 |
if not drowned and getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
403 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
404 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
405 |
return drowned |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
406 |
elseif goal.type == "poison" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
407 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
408 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
409 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
410 |
return GetEffect(_G.sm.goalGears[goal.id], hePoisoned) >= 1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
411 |
elseif goal.type == "freeze" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
412 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
413 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
414 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
415 |
return GetEffect(_G.sm.goalGears[goal.id], heFrozen) >= 256 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
416 |
elseif goal.type == "cure" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
417 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
418 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
419 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
420 |
return GetEffect(_G.sm.goalGears[goal.id], hePoisoned) == 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
421 |
elseif goal.type == "melt" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
422 |
if getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
423 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
424 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
425 |
return GetEffect(_G.sm.goalGears[goal.id], heFrozen) == 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
426 |
elseif goal.type == "waterSkip" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
427 |
local skips = goal.skips or 1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
428 |
local hasEnoughSkips = getGearValue(_G.sm.goalGears[goal.id], "sm_waterSkips") >= skips |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
429 |
-- Fail if gear was destroyed before it got the required number of skips |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
430 |
if not hasEnoughSkips and getGearValue(_G.sm.goalGears[goal.id], "sm_destroyed") then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
431 |
return "fail", criticalGearFailText(goal.id) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
432 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
433 |
return hasEnoughSkips |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
434 |
elseif goal.type == "teamDefeat" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
435 |
return #teamHogs[goal.teamName] == 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
436 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
437 |
return false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
438 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
439 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
440 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
441 |
--[[ Checks the custom goals. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
442 |
Returns true when all custom goals are met. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
443 |
Returns false when not all custom goals are met. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
444 |
Returns "fail" if any of the goals has failed (i.e. is impossible to complete). |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
445 |
Returns nil when there are no custom goals ]] |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
446 |
_G.sm.checkGoals = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
447 |
if params.customGoals ~= nil and #params.customGoals > 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
448 |
for key, goal in pairs(params.customGoals) do |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
449 |
local done, defaultFailText = _G.sm.checkGoal(goal) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
450 |
if done == false or done == "fail" then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
451 |
local failText |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
452 |
if goal.failText then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
453 |
failText = goal.failText |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
454 |
else |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
455 |
failText = customFailText |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
456 |
end |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
457 |
return done, failText |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
458 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
459 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
460 |
return true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
461 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
462 |
return nil |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
463 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
464 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
465 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
466 |
--[[ Checks the custom non-goals. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
467 |
Returns true when any non-goal is met. |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
468 |
Returns false otherwise. ]] |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
469 |
_G.sm.checkNonGoals = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
470 |
if params.customNonGoals ~= nil and #params.customNonGoals > 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
471 |
for key, nonGoal in pairs(params.customNonGoals) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
472 |
local done = _G.sm.checkGoal(nonGoal) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
473 |
if done == true then |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
474 |
return true, nonGoal.failText |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
475 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
476 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
477 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
478 |
return false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
479 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
480 |
|
13058
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
481 |
-- Declare the game ended if all enemy teams are dead and player teams or allies are still alive |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
482 |
_G.sm.checkRegularVictory = function() |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
483 |
local victory = true |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
484 |
for t=0, TeamsCount-1 do |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
485 |
local team = GetTeamName(t) |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
486 |
local defeat = _G.sm.checkGoal({type="teamDefeat", teamName=team}) |
13060
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
487 |
if not defeat then |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
488 |
-- Deep check, also look at damage of all hogs |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
489 |
local dead = 0 |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
490 |
for h=1, #teamHogs[team] do |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
491 |
local _,_,_,_,_,_,_,_,_,_,_,Damage = GetGearValues(teamHogs[team][h]) |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
492 |
if Damage >= GetHealth(teamHogs[team][h]) then |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
493 |
dead = dead + 1 |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
494 |
end |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
495 |
end |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
496 |
if dead >= #teamHogs[team] then |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
497 |
defeat = true |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
498 |
end |
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
499 |
end |
13058
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
500 |
if (defeat == true) and (GetTeamClan(team) == _G.sm.playerClan) then |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
501 |
victory = false |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
502 |
break |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
503 |
elseif (defeat == false) and (GetTeamClan(team) ~= _G.sm.playerClan) then |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
504 |
victory = false |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
505 |
break |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
506 |
end |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
507 |
end |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
508 |
if victory then |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
509 |
_G.sm.gameEnded = true |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
510 |
end |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
511 |
end |
8b42562dcada
SimpleMission: Check regular victory before anything else
Wuzzy <Wuzzy2@mail.ru>
parents:
13054
diff
changeset
|
512 |
|
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
513 |
-- Checks goals and non goals and wins or loses mission |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
514 |
_G.sm.checkWinOrFail = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
515 |
if errord then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
516 |
return |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
517 |
end |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
518 |
local nonGoalStatus, nonGoalFailText = _G.sm.checkNonGoals() |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
519 |
local goalStatus, goalFailText = _G.sm.checkGoals() |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
520 |
if nonGoalStatus == true then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
521 |
_G.sm.lose(nonGoalFailText) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
522 |
elseif goalStatus == "fail" then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
523 |
_G.sm.lose(goalText) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
524 |
elseif goalStatus == true then |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
525 |
_G.sm.win() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
526 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
527 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
528 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
529 |
_G.sm.win = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
530 |
if not _G.sm.gameEnded then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
531 |
_G.sm.gameEnded = true |
14469
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14236
diff
changeset
|
532 |
if not _G.sm.wonVarWritten then |
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14236
diff
changeset
|
533 |
SaveMissionVar("Won", "true") |
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14236
diff
changeset
|
534 |
_G.sm.wonVarWritten = true |
ead8928a59f8
Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents:
14236
diff
changeset
|
535 |
end |
13648 | 536 |
AddCaption(loc("Victory!"), capcolDefault, capgrpGameState) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
537 |
SendStat(siGameResult, loc("You win!")) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
538 |
if GetHogLevel(CurrentHedgehog) == 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
539 |
SetState(CurrentHedgehog, bor(GetState(CurrentHedgehog), gstWinner)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
540 |
SetState(CurrentHedgehog, band(GetState(CurrentHedgehog), bnot(gstHHDriven))) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
541 |
PlaySound(sndVictory, CurrentHedgehog) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
542 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
543 |
_G.sm.makeStats(_G.sm.playerClan) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
544 |
EndGame() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
545 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
546 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
547 |
|
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
548 |
_G.sm.lose = function(failReason) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
549 |
if not _G.sm.gameEnded then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
550 |
_G.sm.gameEnded = true |
13648 | 551 |
AddCaption(loc("Scenario failed!"), capcolDefault, capgrpGameState) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
552 |
SendStat(siGameResult, loc("You lose!")) |
13059
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
553 |
if failReason then |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
554 |
SendStat(siCustomAchievement, failReason) |
2d0f3e12fcad
SimpleMission: Add support for failure texts in the stats screen
Wuzzy <Wuzzy2@mail.ru>
parents:
13058
diff
changeset
|
555 |
end |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
556 |
if GetHogLevel(CurrentHedgehog) == 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
557 |
SetState(CurrentHedgehog, bor(GetState(CurrentHedgehog), gstLoser)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
558 |
SetState(CurrentHedgehog, band(GetState(CurrentHedgehog), bnot(gstHHDriven))) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
559 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
560 |
local clan = ClansCount-1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
561 |
for t=0, TeamsCount-1 do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
562 |
local team = GetTeamName(t) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
563 |
-- Just declare any living team other than the player team the winner |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
564 |
if (_G.sm.checkGoal({type="teamDefeat", teamName=team}) == false) and (GetTeamClan(team) ~= _G.sm.playerClan) then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
565 |
clan = GetTeamClan(team) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
566 |
break |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
567 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
568 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
569 |
_G.sm.makeStats(clan) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
570 |
EndGame() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
571 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
572 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
573 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
574 |
_G.onSuddenDeath = function() |
14236
74bf2d906097
Turn accidental globals to locals in Lua libraries
Wuzzy <Wuzzy2@mail.ru>
parents:
13648
diff
changeset
|
575 |
_G.sm.isInSuddenDeath = true |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
576 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
577 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
578 |
_G.onGearWaterSkip = function(gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
579 |
increaseGearValue(gear, "sm_waterSkips") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
580 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
581 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
582 |
_G.onGearAdd = function(gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
583 |
if GetGearType(gear) == gtHedgehog then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
584 |
local team = GetHogTeamName(gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
585 |
if teamHogs[team] == nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
586 |
teamHogs[team] = {} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
587 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
588 |
table.insert(teamHogs[GetHogTeamName(gear)], gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
589 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
590 |
setGearValue(gear, "sm_waterSkips", 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
591 |
setGearValue(gear, "sm_maxDamage", 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
592 |
setGearValue(gear, "sm_drowned", false) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
593 |
setGearValue(gear, "sm_destroyed", false) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
594 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
595 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
596 |
_G.onGearResurrect = function(gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
597 |
if GetGearType(gear) == gtHedgehog then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
598 |
table.insert(teamHogs[GetHogTeamName(gear)], gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
599 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
600 |
setGearValue(gear, "sm_destroyed", false) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
601 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
602 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
603 |
_G.onGearDelete = function(gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
604 |
if GetGearType(gear) == gtCase and band(GetGearMessage(gear), gmDestroy) ~= 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
605 |
-- Set ID of collector |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
606 |
setGearValue(gear, "sm_collected", CurrentHedgehog) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
607 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
608 |
if GetGearType(gear) == gtHedgehog then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
609 |
local team = GetHogTeamName(gear) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
610 |
local hogList = teamHogs[team] |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
611 |
for h=1, #hogList do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
612 |
if hogList[h] == gear then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
613 |
table.remove(hogList, h) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
614 |
break |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
615 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
616 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
617 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
618 |
if band(GetState(gear), gstDrowning) ~= 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
619 |
setGearValue(gear, "sm_drowned", true) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
620 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
621 |
setGearValue(gear, "sm_destroyed", true) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
622 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
623 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
624 |
_G.onGearDamage = function(gear, damage) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
625 |
local currentDamage = getGearValue(gear, "sm_maxDamage") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
626 |
if damage > currentDamage then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
627 |
setGearValue(gear, "sm_maxDamage", damage) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
628 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
629 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
630 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
631 |
_G.onGameInit = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
632 |
CaseFreq = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
633 |
WaterRise = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
634 |
HealthDecrease = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
635 |
MinesNum = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
636 |
Explosives = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
637 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
638 |
for initVarName, initVarValue in pairs(params.initVars) do |
13592
818134c33f54
Fix SimpleMission failure to init GameFlags correctly
Wuzzy <Wuzzy2@mail.ru>
parents:
13588
diff
changeset
|
639 |
if initVarName == "GameFlags" then |
13105
61076bb26cb3
SimpleMission: Set GameFlags more cleanly
Wuzzy <Wuzzy2@mail.ru>
parents:
13066
diff
changeset
|
640 |
EnableGameFlags(initVarValue) |
61076bb26cb3
SimpleMission: Set GameFlags more cleanly
Wuzzy <Wuzzy2@mail.ru>
parents:
13066
diff
changeset
|
641 |
else |
61076bb26cb3
SimpleMission: Set GameFlags more cleanly
Wuzzy <Wuzzy2@mail.ru>
parents:
13066
diff
changeset
|
642 |
_G[initVarName] = initVarValue |
61076bb26cb3
SimpleMission: Set GameFlags more cleanly
Wuzzy <Wuzzy2@mail.ru>
parents:
13066
diff
changeset
|
643 |
end |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
644 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
645 |
if #params.teams == 1 then |
13105
61076bb26cb3
SimpleMission: Set GameFlags more cleanly
Wuzzy <Wuzzy2@mail.ru>
parents:
13066
diff
changeset
|
646 |
EnableGameFlags(gfOneClanMode) |
13066
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
647 |
end |
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
648 |
if params.wind then |
13105
61076bb26cb3
SimpleMission: Set GameFlags more cleanly
Wuzzy <Wuzzy2@mail.ru>
parents:
13066
diff
changeset
|
649 |
EnableGameFlags(gfDisableWind) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
650 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
651 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
652 |
local clanCounter = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
653 |
for teamID, teamData in pairs(params.teams) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
654 |
local name, clanID, grave, fort, voice, flag |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
655 |
name = def(teamData.name, string.format(loc("Team %d"), teamID)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
656 |
if teamData.clanID == nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
657 |
clanID = clanCounter |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
658 |
clanCounter = clanCounter + 1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
659 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
660 |
clanID = teamData.clanID |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
661 |
end |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
662 |
|
14489
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
663 |
local realName |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
664 |
if teamData.isMissionTeam then |
14489
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
665 |
realName = AddMissionTeam(-(clanID+1)) |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
666 |
_G.sm.playerClan = clanID |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
667 |
else |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
668 |
grave = def(teamData.grave, defaultGraves[math.min(teamID, 8)]) |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
669 |
fort = def(teamData.fort, "Castle") |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
670 |
voice = def(teamData.voice, "Default") |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
671 |
flag = def(teamData.flag, defaultFlags[math.min(teamID, 8)]) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
672 |
|
14489
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
673 |
realName = AddTeam(name, -(clanID+1), grave, fort, voice, flag) |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
674 |
end |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
675 |
|
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
676 |
-- Update all teamDefeat goals if the real team name differs from the |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
677 |
-- team configuration. |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
678 |
-- (AddTeam might change the name due to naming collisions) |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
679 |
if name ~= realName then |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
680 |
local checks = { params.customGoals, params.customNonGoals } |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
681 |
for c=1, 2 do |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
682 |
if checks[c] then |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
683 |
for k,goal in pairs(checks[c]) do |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
684 |
if goal.type == "teamDefeat" and goal.teamName == name then |
764ba6182389
Change AddTeam/AddMissionTeam to return real team name and index (in that order)
Wuzzy <Wuzzy2@mail.ru>
parents:
14488
diff
changeset
|
685 |
goal.teamName = realName |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
686 |
end |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
687 |
end |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
688 |
end |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
689 |
end |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
690 |
end |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
691 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
692 |
for hogID, hogData in pairs(teamData.hogs) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
693 |
local name, botLevel, health, hat |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
694 |
name = def(hogData.name, string.format(loc("Hog %d"), hogID)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
695 |
botLevel = def(hogData.botLevel, 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
696 |
health = def(hogData.health, 100) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
697 |
hat = def(hogData.hat, "NoHat") |
14488
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
698 |
local hog |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
699 |
if teamData.isMissionTeam then |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
700 |
hog = AddMissionHog(health) |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
701 |
else |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
702 |
hog = AddHog(name, botLevel, health, hat) |
310b167141cc
Use player's team identity for SimpleMission-based mission
Wuzzy <Wuzzy2@mail.ru>
parents:
14471
diff
changeset
|
703 |
end |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
704 |
if hogData.x ~= nil and hogData.y ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
705 |
SetGearPosition(hog, hogData.x, hogData.y) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
706 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
707 |
if hogData.faceLeft then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
708 |
HogTurnLeft(hog, true) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
709 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
710 |
if hogData.poisoned == true then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
711 |
SetEffect(hog, hePoisoned, 5) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
712 |
elseif type(hogData.poisoned) == "number" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
713 |
SetEffect(hog, hePoisoned, hogData.poisoned) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
714 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
715 |
if hogData.frozen then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
716 |
SetEffect(hog, heFrozen, 199999) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
717 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
718 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
719 |
if hog ~= nil and hogData.id ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
720 |
_G.sm.goalGears[hogData.id] = hog |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
721 |
setGearValue(hog, "sm_id", hogData.id) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
722 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
723 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
724 |
-- Remember this hedgehog's gear ID for later use |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
725 |
hogData.gearID = hog |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
726 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
727 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
728 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
729 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
730 |
_G.onNewTurn = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
731 |
_G.sm.gameStarted = true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
732 |
|
14471
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
733 |
if params.customGoalCheck == "turnStart" then |
13060
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
734 |
_G.sm.checkRegularVictory() |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
735 |
_G.sm.checkWinOrFail() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
736 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
737 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
738 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
739 |
_G.onEndTurn = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
740 |
_G.sm.gameTurns = _G.sm.gameTurns + 1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
741 |
|
14471
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
742 |
if params.customGoalCheck == "turnEnd" then |
13060
5ceb8b0632c4
SimpleMission: Check regular victory at turn and or start
Wuzzy <Wuzzy2@mail.ru>
parents:
13059
diff
changeset
|
743 |
_G.sm.checkRegularVictory() |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
744 |
_G.sm.checkWinOrFail() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
745 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
746 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
747 |
|
14471
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
748 |
_G.onGameResult = function(winningClan) |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
749 |
if (params.customGoals == nil) and (not _G.sm.wonVarWritten) and (winningClan == _G.sm.playerClan) then |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
750 |
SaveMissionVar("Won", "true") |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
751 |
_G.sm.wonVarWritten = true |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
752 |
end |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
753 |
end |
734a7af2dfc2
Fix victory check of a few scenarios
Wuzzy <Wuzzy2@mail.ru>
parents:
14469
diff
changeset
|
754 |
|
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
755 |
_G.onAmmoStoreInit = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
756 |
local ammoTypesDone = {} |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
757 |
-- Read script's stated ammo wishes |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
758 |
if params.ammoConfig ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
759 |
for ammoType, v in pairs(params.ammoConfig) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
760 |
SetAmmo(ammoType, def(v.count, 0), def(v.probability, 0), def(v.delay, 0), def(v.numberInCrate, 1)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
761 |
ammoTypesDone[ammoType] = true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
762 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
763 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
764 |
-- Apply default values for all ammo types which have not been set |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
765 |
for a=0, AmmoTypeMax do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
766 |
if a ~= amNothing and ammoTypesDone[a] ~= true then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
767 |
local count = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
768 |
if a == amSkip then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
769 |
count = 9 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
770 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
771 |
SetAmmo(a, count, 0, 0, 1) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
772 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
773 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
774 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
775 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
776 |
_G.onGameStart = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
777 |
-- Mention mines timer |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
778 |
if MinesTime ~= 3000 and MinesTime ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
779 |
if MinesTime < 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
780 |
params.goalText = params.goalText .. "|" .. loc("Mines time: 0s-5s") |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
781 |
elseif (MinesTime % 1000) == 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
782 |
params.goalText = params.goalText .. "|" .. string.format(loc("Mines time: %ds"), MinesTime/1000) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
783 |
elseif (MinesTime % 100) == 0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
784 |
params.goalText = params.goalText .. "|" .. string.format(loc("Mines time: %.1fs"), MinesTime/1000) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
785 |
else |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
786 |
params.goalText = params.goalText .. "|" .. string.format(loc("Mines time: %.2fs"), MinesTime/1000) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
787 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
788 |
end |
13066
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
789 |
if params.wind then |
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
790 |
SetWind(params.wind) |
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
791 |
end |
13062
8b44518d1002
Convert Newton and the Hammock to SimpleMission format
Wuzzy <Wuzzy2@mail.ru>
parents:
13060
diff
changeset
|
792 |
ShowMission(params.missionTitle, loc("Scenario"), params.goalText, params.missionIcon, 5000) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
793 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
794 |
-- Spawn objects |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
795 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
796 |
if params.gears ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
797 |
for listGearID, gv in pairs(params.gears) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
798 |
local timer, state, x, y, dx, dy |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
799 |
local g |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
800 |
state = 0 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
801 |
if gv.type == gtMine then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
802 |
if gv.isFrozen then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
803 |
state = gstFrozen |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
804 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
805 |
g = AddGear(def(gv.x,0), def(gv.y,0), gv.type, state, def(gv.dx, 0), def(gv.dy, 0), def(gv.timer, MinesTime)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
806 |
if gv.isDud then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
807 |
SetHealth(g, 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
808 |
if gv.health ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
809 |
SetGearValues(g, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 36 - gv.health) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
810 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
811 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
812 |
elseif gv.type == gtSMine then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
813 |
g = AddGear(def(gv.x,0), def(gv.y,0), gv.type, 0, def(gv.dx,0), def(gv.dy,0), def(gv.timer, 500)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
814 |
elseif gv.type == gtAirMine then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
815 |
if gv.isFrozen then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
816 |
state = gstFrozen |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
817 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
818 |
local timer = def(gv.timer, div(MinesTime, 1000) * 250) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
819 |
g = AddGear(def(gv.x,0), def(gv.y,0), gv.type, state, def(gv.dx,0), def(gv.dy,0), timer) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
820 |
SetGearValues(g, nil, nil, timer) -- WDTimer |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
821 |
elseif gv.type == gtExplosives then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
822 |
if gv.isRolling then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
823 |
state = gsttmpFlag |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
824 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
825 |
g = AddGear(def(gv.x,0), def(gv.y,0), gv.type, state, def(gv.dx,0), def(gv.dy,0), 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
826 |
if gv.health then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
827 |
SetHealth(g, gv.health) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
828 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
829 |
if gv.isFrozen ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
830 |
if gv.isFrozen == true then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
831 |
SetState(g, bor(GetState(g, gstFrozen))) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
832 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
833 |
elseif GetHealth(g) > 60 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
834 |
SetState(g, bor(GetState(g, gstFrozen))) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
835 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
836 |
elseif gv.type == gtCase then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
837 |
local x, y, spawnTrick |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
838 |
spawnTrick = false |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
839 |
x = def(gv.x, 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
840 |
y = def(gv.y, 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
841 |
if x==0 and y==0 then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
842 |
x=1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
843 |
y=1 |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
844 |
spawnTrick = true |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
845 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
846 |
g = AddGear(x, y, gv.type, 0, def(gv.dx,0), def(gv.dy,0), 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
847 |
if spawnTrick then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
848 |
SetGearPosition(g, 0, 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
849 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
850 |
if gv.crateType == "supply" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
851 |
g = SpawnSupplyCrate(def(gv.x, 0), def(gv.y, 0), gv.ammoType) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
852 |
elseif gv.crateType == "supply_ammo_explicit" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
853 |
g = SpawnAmmoCrate(def(gv.x, 0), def(gv.y, 0), gv.ammoType) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
854 |
elseif gv.crateType == "supply_utility_explicit" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
855 |
g = SpawnUtilityCrate(def(gv.x, 0), def(gv.y, 0), gv.ammoType) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
856 |
elseif gv.crateType == "health" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
857 |
g = SpawnHealthCrate(def(gv.x, 0), def(gv.y, 0)) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
858 |
if gv.health ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
859 |
SetHealth(g, gv.health) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
860 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
861 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
862 |
if gv.isFrozen then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
863 |
SetState(g, bor(GetState(g, gstFrozen))) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
864 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
865 |
elseif gv.type == gtKnife or gv.type == gtTarget then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
866 |
g = AddGear(def(gv.x,0), def(gv.y,0), gv.type, 0, def(gv.dx,0), def(gv.dy,0), 0) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
867 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
868 |
if g ~= nil and gv.id ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
869 |
_G.sm.goalGears[gv.id] = g |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
870 |
setGearValue(g, "sm_id", gv.id) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
871 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
872 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
873 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
874 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
875 |
-- Spawn girders and rubbers |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
876 |
if params.girders ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
877 |
for i, girderData in pairs(params.girders) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
878 |
PlaceGirder(girderData.x, girderData.y, girderData.frameIdx) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
879 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
880 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
881 |
if params.rubbers ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
882 |
for i, rubberData in pairs(params.rubbers) do |
13648 | 883 |
PlaceSprite(rubberData.x, rubberData.y, sprAmRubber, capcolDefault, rubberData.frameIdx, false, false, false, lfBouncy) |
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
884 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
885 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
886 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
887 |
-- Per-hedgehog ammo loadouts |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
888 |
for teamID, teamData in pairs(params.teams) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
889 |
for hogID, hogData in pairs(teamData.hogs) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
890 |
if hogData.ammo ~= nil then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
891 |
for ammoType, count in pairs(hogData.ammo) do |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
892 |
AddAmmo(hogData.gearID, ammoType, count) |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
893 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
894 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
895 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
896 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
897 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
898 |
|
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
899 |
_G.onGameTick20 = function() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
900 |
if params.customGoalCheck == "instant" then |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
901 |
_G.sm.checkWinOrFail() |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
902 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
903 |
end |
13066
8d2087c85b8d
Fix incorrect wind bar in some missions
Wuzzy <Wuzzy2@mail.ru>
parents:
13064
diff
changeset
|
904 |
|
13054
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
905 |
end |
f18cefc4309d
Add SimpleMission lua library for easier mission creation
Wuzzy <Wuzzy2@mail.ru>
parents:
diff
changeset
|
906 |