share/hedgewars/Data/Missions/Training/Basic_Training_-_Flying_Saucer.lua
author Wuzzy <Wuzzy2@mail.ru>
Wed, 15 May 2019 03:25:20 +0200
changeset 14951 c173fae0a223
parent 14939 7b597da60fda
permissions -rw-r--r--
Hide player ranks in training missions
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     1
--[[
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     2
	Flying Saucer Training
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     3
	This is a training mission which teaches many basic (and not-so-basic) moves
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     4
	with the flying saucer.
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     5
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     6
	Lesson plan:
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     7
	- Taking off
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     8
	- Basic flight
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
     9
	- Landing safely
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    10
	- Managing fuel
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    11
	- Changing saucers in mid-flight
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    12
	- Diving
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    13
	- Dropping weapons from flying saucer
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    14
	- Firing from flying saucer with [Precise] + [Attack]
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    15
	- Aiming in flying saucer with [Precise] + [Up]/[Down]
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    16
	- Underwater attack
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    17
	- Free flight with inf. fuel and some weapons at end of training
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    18
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    19
	FIXME:
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    20
	- Bad respawn animation ("explosion" just happens randomly because of the way the resurrection effect works)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    21
	- Hide fuel if infinite (probably needs engine support)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    22
]]
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    23
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    24
HedgewarsScriptLoad("/Scripts/Locale.lua")
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    25
HedgewarsScriptLoad("/Scripts/Tracker.lua")
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    26
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    27
local Player = nil -- Pointer to hog created in: onGameInit
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    28
local Target = nil -- Pointer to target hog
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    29
local Objective = false -- Get to the target
14668
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
    30
local Flawless = true -- Track flawless victory
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    31
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    32
local TargetNumber = 0 -- The current target number
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    33
local GrenadeThrown = false -- Used for the Boom Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    34
local BazookasLeft = 0 -- Used by the Launch Target and the Unterwater Attack Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    35
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    36
local InfFuel = false -- If true, flying saucer has infinite fuel
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    37
local SaucerGear = nil -- Store flying saucer gear here (if one exists)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    38
local TargetGears = {} -- List of remaining gears to collect or destroy in the current round
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    39
local TargetsRemaining = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    40
local Barrels = {} -- Table contraining the explosive barrel gears
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    41
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    42
local CheckTimer = 500 -- Time to wait at least before checking safe landing
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    43
local Check = false -- The last target has recently been collected/destroyed and the CheckTimer is running
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    44
local GrenadeTimer = 0 -- Time after a grenade has been thrown
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    45
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    46
local TargetPos = {} -- Table of targets
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    47
14649
e7b2542c4d28 More spawn height tweaking in missions
Wuzzy <Wuzzy2@mail.ru>
parents: 14480
diff changeset
    48
local StartPos = { X = 742, Y = 316 }
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    49
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    50
--[[
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    51
List of all targets (or "objectives"). The player has to complete them one-by-one and must always land safely afterwards.
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    52
Some target numbers have names for easier reference.
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    53
]]
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    54
-- Intro
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    55
TargetPos[1] =  {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    56
	Targets = {{ X = 1027, Y = 217 }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    57
	Ammo = { },
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    58
	Message = loc("Here you will learn how to fly the flying saucer|and get so learn some cool tricks.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    59
	loc("Collect the first crate to begin!"),
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    60
	MessageIcon = -amJetpack, }
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    61
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    62
-- First flight, infinite fuel
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    63
TargetPos[2] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    64
	Targets = {{ X = 1369, Y = 265 }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    65
	Ammo = { [amJetpack] = 100 },
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    66
	InfFuel = true,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    67
	MessageTime = 10000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    68
	Message = loc("Get to the crate using your flying saucer!") .. "|" ..
13354
f9a15dcd857c Fix a couple of English typos
Wuzzy <Wuzzy2@mail.ru>
parents: 13172
diff changeset
    69
	loc("Press [Attack] (space bar by default) to start,|repeatedly tap the up, left and right movement keys to accelerate.") .. "|" ..
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    70
	loc("Try to land softly, as you can still take fall damage!"), }
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    71
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    72
-- First flight, limited fuel
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    73
TargetPos[3] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    74
	Targets = {{ X = 689, Y = 58 }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    75
	Ammo = { [amJetpack] = 100 },
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    76
	MessageTime = 5000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    77
	Message = loc("Now collect the next crate!") .. "|" .. loc("Be careful, your fuel is limited from now on!") .."|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    78
	loc("Tip: If you get stuck in this training, use \"Skip turn\" to restart the current objective.") }
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    79
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    80
-- The Double Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    81
TargetPos[4] = {
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    82
	Targets = { { X = 178, Y = -20 }, { X = 1962 , Y = -20 } },
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    83
	Ammo = { [amJetpack] = 2 },
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    84
	CratesContainAmmo = true,
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    85
	MessageTime = 9000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    86
	Message = loc("Now collect the 2 crates to the far left and right.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    87
	loc("You only have 2 flying saucers this time.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    88
	loc("Tip: You can change your flying saucer|in mid-flight by hitting the [Attack] key twice."), }
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    89
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    90
-- Intermission
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    91
TargetPos[5] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    92
	Targets = {{ X = 47, Y = 804 }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    93
	Ammo = { [amJetpack] = 100 },
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    94
	MessageTime = 5000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    95
	Message = loc("Time for a more interesting stunt, but first just collect the next crate!"), }
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    96
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
    97
-- First Dive
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    98
TargetPos[6] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
    99
	Targets = {{ X = 604, Y = 871}},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   100
	MessageTime = 15000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   101
	Message = loc("You can dive with your flying saucer!") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   102
	loc("Try it now and dive here to collect the crate on the right girder.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   103
	loc("You only have one flying saucer this time.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   104
	loc("Beware, though, you will only be able to move slowly through the water.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   105
	loc("Warning: Never ever leave the flying saucer while in water!"),
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   106
	Ammo = { [amJetpack] = 1 },
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   107
	Respawn = { X = 758, Y = 847, FaceLeft = false }, }
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   108
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   109
-- Second Dive
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   110
TargetPos[7] = { 
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   111
	Targets = {{ X = 1884, Y = 704 }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   112
	MessageTime = 6500,
12424
b9cc405541c1 Fix various loc() syntax errors in scripts
Wuzzy <almikes@aol.com>
parents: 11405
diff changeset
   113
	Message = loc("Now dive just one more time and collect the next crate.") .. "|" ..
b9cc405541c1 Fix various loc() syntax errors in scripts
Wuzzy <almikes@aol.com>
parents: 11405
diff changeset
   114
		loc("Tip: Don't remain for too long in the water, or you won't make it."),
14939
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   115
	Ammo = { [amJetpack] = 2 },
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   116
	Respawn = { X = 1968, Y = -1, FaceLeft = true }, }
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   117
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   118
-- The Grenade Drop Target
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   119
local BoomTarget = 8
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   120
TargetPos[8] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   121
	Modifier = true, Func = function()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   122
		Info(loc("Instructions"),
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   123
		loc("Now let's try to drop weapons while flying!") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   124
		loc("You have to destroy the target above by dropping a grenade on it from your flying saucer.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   125
		loc("It's not that easy, so listen carefully:") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   126
		loc("Step 1: Activate your flying saucer but do NOT move yet!") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   127
		loc("Step 2: Select your grenade.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   128
		loc("Step 3: Start flying and get yourself right above the target.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   129
		loc("Step 4: Drop your grenade by pressing the [Long jump] key.") .. "|" ..
12424
b9cc405541c1 Fix various loc() syntax errors in scripts
Wuzzy <almikes@aol.com>
parents: 11405
diff changeset
   130
		loc("Step 5: Get away quickly and land safely anywhere.") .. "| |" ..
b9cc405541c1 Fix various loc() syntax errors in scripts
Wuzzy <almikes@aol.com>
parents: 11405
diff changeset
   131
		loc("Note: We only give you grenades if you stay in your flying saucer."), nil, 20000)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   132
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   133
		SpawnBoomTarget()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   134
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   135
		if SaucerGear ~= nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   136
			AddAmmo(Player, amGrenade, 1)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   137
		else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   138
			AddAmmo(Player, amGrenade, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   139
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   140
		GrenadeThrown = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   141
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   142
	end,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   143
	Ammo = { [amJetpack] = 100 },
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   144
	Respawn = { X = 2000, Y = 742, FaceLeft = true }, }
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   145
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   146
-- The Launch Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   147
local LaunchTarget = 9
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   148
TargetPos[9] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   149
	Targets = {{ X = 1700, Y = 640, Type = gtTarget }, { X = 1460, Y = 775, Type = gtTarget }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   150
	MessageTime = 20000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   151
	Message = loc("Only the best pilots can master the following stunts.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   152
		loc("As you've seen, the dropped grenade roughly fell into your flying direction.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   153
		loc("You have to destroy two targets, but the previous technique would be very difficult or dangerous to use.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   154
		loc("So you are able to launch projectiles into your aiming direction, always at full power.") .."|"..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   155
		loc("To launch a projectile in mid-flight, hold [Precise] and press [Long jump].") .. "|" ..
13354
f9a15dcd857c Fix a couple of English typos
Wuzzy <Wuzzy2@mail.ru>
parents: 13172
diff changeset
   156
		loc("You can even change your aiming direction in mid-flight if you first hold [Precise] and then press [Up] or [Down].") .. "|" ..
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   157
		loc("Tip: Changing your aim while flying is very difficult, so adjust it before you take off."),
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   158
	Ammo = { [amJetpack] = 1, },
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   159
	Respawn = { X = 1760, Y = 754, FaceLeft = true },
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   160
	ExtraFunc = function()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   161
		if SaucerGear ~= nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   162
			AddAmmo(Player, amBazooka, 2)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   163
		else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   164
			AddAmmo(Player, amBazooka, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   165
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   166
		BazookasLeft = 2
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   167
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   168
	end }
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   169
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   170
-- The Underwater Attack Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   171
local UnderwaterAttackTarget = 10
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   172
TargetPos[10] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   173
	MessageTime = 17000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   174
	Message = loc("Now for the supreme discipline of saucer flying, the underwater attack.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   175
	loc("Basically this is a combination of diving and launching.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   176
	loc("Dropping a weapon while in water would just drown it, but launching one would work.") .."|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   177
	loc("Based on what you've learned, destroy the target on the girder and as always, land safely!"), 
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   178
	Targets = {{ X = 1200, Y = 930, Type = gtTarget }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   179
	Ammo = { [amJetpack] = 1, },
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   180
	Respawn = { X = 1027, Y = 217, FaceLeft = true },
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   181
	ExtraFunc = function()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   182
		if SaucerGear ~= nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   183
			AddAmmo(Player, amBazooka, 1)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   184
		else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   185
			AddAmmo(Player, amBazooka, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   186
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   187
		BazookasLeft = 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   188
	end }
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   189
-- Final target / Sandbox
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   190
TargetPos[11] = {
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   191
	Targets = {{ X = 742, Y = 290 }},
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   192
	MessageTime = 5000,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   193
	Message = loc("This almost concludes our tutorial.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   194
	loc("You now have infinite fuel, grenades and bazookas for fun.") .. "|" ..
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   195
	loc("Collect or destroy the final crate to finish the training."),
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   196
	Ammo = { [amJetpack] = 100, [amGrenade] = 100, [amBazooka] = 100 },
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   197
	InfFuel = true, }
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   198
-- Outro
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   199
TargetPos[12] = { Modifier = true, Func = function()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   200
	Objective = true
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   201
	AddCaption(loc("Training complete!"), capcolDefault, capgrpGameState)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   202
	Info(loc("Training complete!"), loc("Good bye!"), 4, 5000)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   203
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   204
	if SaucerGear ~= nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   205
		DeleteGear(SaucerGear)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   206
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   207
	SetState(Player, band(GetState(Player), bnot(gstHHDriven)))
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   208
	SetState(Player, bor(GetState(Player), gstWinner))
14668
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   209
	if Flawless then
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   210
		PlaySound(sndFlawless, Player)
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   211
	else
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   212
		PlaySound(sndVictory, Player)
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   213
	end
14464
ead8928a59f8 Report mission victory for most missions
Wuzzy <Wuzzy2@mail.ru>
parents: 14453
diff changeset
   214
	SaveMissionVar("Won", "true")
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   215
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   216
	SendStat(siGameResult, loc("You have finished the Flying Saucer Training!"))
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   217
	SendStat(siCustomAchievement, loc("Good job!"))
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   218
13763
29abd3d5f9bb Call EndTurn(true) instead of TurnTimeLeft(0) in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13750
diff changeset
   219
	EndTurn(true)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   220
	EndGame()
14928
4c5fb1ee75b7 Add winner animation for missions that didn't have it
Wuzzy <Wuzzy2@mail.ru>
parents: 14668
diff changeset
   221
	SetState(Player, gstWinner)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   222
end,
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   223
}
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   224
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   225
-- Just a wrapper for ShowMission
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   226
function Info(Title, Text, Icon, Time)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   227
	if Time == nil then Time = 0 end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   228
	if Icon == nil then Icon = 2 end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   229
	ShowMission(loc("Flying Saucer Training"), Title, Text, Icon, Time)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   230
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   231
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   232
-- Spawn all the gears for the Boom Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   233
function SpawnBoomTarget()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   234
	if TargetsRemaining < 1 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   235
		TargetGears[1] = AddGear(1602, 507, gtTarget, 0, 0, 0, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   236
		TargetsRemaining = TargetsRemaining + 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   237
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   238
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   239
	if Barrels[1] == nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   240
		Barrels[1] = AddGear(1563, 532, gtExplosives, 0, 0, 0, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   241
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   242
	if Barrels[2] == nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   243
		Barrels[2] = AddGear(1648, 463, gtExplosives, 0, 0, 0, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   244
	end
14939
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   245
	if Barrels[3] == nil then
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   246
		Barrels[3] = AddGear(1513, 575, gtExplosives, 0, 0, 0, 0)
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   247
	end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   248
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   249
	for i=1,#Barrels do
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   250
		SetHealth(Barrels[i], 1)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   251
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   252
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   253
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   254
-- Generic target spawning for the current target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   255
function SpawnTargets()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   256
	for i=1,#TargetPos[TargetNumber].Targets do
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   257
		if TargetGears[i] == nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   258
			SpawnTarget(TargetPos[TargetNumber].Targets[i].X, TargetPos[TargetNumber].Targets[i].Y,
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   259
				TargetPos[TargetNumber].Targets[i].Type, i, TargetPos[TargetNumber].CratesContainAmmo )
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   260
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   261
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   262
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   263
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   264
function SpawnTarget( PosX, PosY, Type, ID, ContainsAmmo )
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   265
	if Type ~= nil and Type ~= gtCase then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   266
		if Type == gtTarget then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   267
			TargetGears[ID] = AddGear(PosX, PosY, gtTarget, 0, 0, 0, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   268
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   269
	else
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   270
		if ContainsAmmo == true then
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   271
			TargetGears[ID] = SpawnSupplyCrate(PosX, PosY, amJetpack)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   272
		else
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   273
			TargetGears[ID] = SpawnFakeUtilityCrate(PosX, PosY, false, false)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   274
		end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   275
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   276
	TargetsRemaining = TargetsRemaining + 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   277
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   278
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   279
function AutoSpawn() -- Auto-spawn the next target after you've obtained the current target!
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   280
	TargetNumber = TargetNumber + 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   281
	TargetsRemaining = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   282
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   283
	if TargetPos[TargetNumber].Ammo then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   284
		for ammoType, count in pairs(TargetPos[TargetNumber].Ammo) do
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   285
			AddAmmo(Player, ammoType, count)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   286
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   287
		if GetCurAmmoType() ~= amJetpack then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   288
			SetWeapon(amJetpack)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   289
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   290
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   291
	if TargetPos[TargetNumber].InfFuel then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   292
		InfFuel = true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   293
	else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   294
		InfFuel = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   295
	end
13594
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   296
	UpdateInfFuel()
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   297
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   298
	-- Func (if present) will be run instead of the ordinary spawning handling
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   299
	if TargetPos[TargetNumber].Modifier then -- If there is a modifier, run the function
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   300
		TargetPos[TargetNumber].Func()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   301
		return true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   302
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   303
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   304
	-- ExtraFunc is for additional events for a target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   305
	if TargetPos[TargetNumber].ExtraFunc ~= nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   306
		TargetPos[TargetNumber].ExtraFunc()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   307
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   308
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   309
	local subcap
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   310
	if TargetNumber == 1 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   311
		subcap = loc("Training")
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   312
	else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   313
		subcap = loc("Instructions")
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   314
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   315
	Info(subcap, TargetPos[TargetNumber].Message, TargetPos[TargetNumber].MessageIcon, TargetPos[TargetNumber].MessageTime)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   316
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   317
	-- Spawn targets on the next position
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   318
	SpawnTargets()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   319
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   320
	if TargetNumber > 1 then
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   321
		AddCaption(loc("Next target is ready!"), capcolDefault, capgrpMessage2)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   322
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   323
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   324
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   325
-- Returns true if the hedgehog has safely "landed" (alive, no flying saucer gear and not moving)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   326
-- This is to ensure the training only continues when the player didn't screw up and to restart the current target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   327
function HasHedgehogLandedYet()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   328
	if band(GetState(Player), gstMoving) == 0 and SaucerGear == nil and GetHealth(Player) > 0 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   329
		return true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   330
	else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   331
		return false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   332
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   333
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   334
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   335
-- Clean up the gear mess left behind when the player failed to get a clean state after restarting
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   336
function CleanUpGears()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   337
	-- (We track flames, grenades, bazooka shells)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   338
	runOnGears(DeleteGear)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   339
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   340
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   341
-- Completely restarts the current target/objective; the hedgehog is spawned at the last "checkpoint"
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   342
-- Called when hedgeghog is resurrected or skips turn
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   343
function ResetCurrentTarget()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   344
	GrenadeThrown = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   345
	GrenadeTimer = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   346
	if TargetNumber == LaunchTarget then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   347
		BazookasLeft = 2
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   348
	elseif TargetNumber == UnderwaterAttackTarget then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   349
		BazookasLeft = 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   350
	else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   351
		BazookasLeft = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   352
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   353
	Check = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   354
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   355
	CleanUpGears()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   356
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   357
	local X, Y, FaceLeft
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   358
	if TargetNumber == 1 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   359
		X, Y = StartPos.X, StartPos.Y
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   360
	else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   361
		if TargetPos[TargetNumber-1].Modifier or TargetPos[TargetNumber-1].Respawn ~= nil then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   362
			X, Y = TargetPos[TargetNumber-1].Respawn.X, TargetPos[TargetNumber-1].Respawn.Y
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   363
			FaceLeft = TargetPos[TargetNumber-1].Respawn.FaceLeft
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   364
		else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   365
			X, Y = TargetPos[TargetNumber-1].Targets[1].X, TargetPos[TargetNumber-1].Targets[1].Y
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   366
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   367
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   368
	if TargetNumber == BoomTarget then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   369
		SpawnBoomTarget()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   370
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   371
	if TargetPos[TargetNumber].Modifier ~= true then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   372
		SpawnTargets()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   373
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   374
	if TargetPos[TargetNumber].Ammo then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   375
		for ammoType, count in pairs(TargetPos[TargetNumber].Ammo) do
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   376
			AddAmmo(Player, ammoType, count)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   377
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   378
		if GetCurAmmoType() ~= amJetpack then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   379
			SetWeapon(amJetpack)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   380
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   381
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   382
	if TargetPos[TargetNumber].InfFuel then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   383
		InfFuel = true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   384
	else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   385
		InfFuel = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   386
	end
13594
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   387
	UpdateInfFuel()
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   388
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   389
	SetGearPosition(Player, X, Y)
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   390
	if FaceLeft ~= nil then
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   391
		HogTurnLeft(Player, FaceLeft)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   392
	end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   393
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   394
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   395
function onGameInit()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   396
	Seed = 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   397
	GameFlags = gfInfAttack + gfOneClanMode + gfSolidLand + gfDisableWind
13750
110d6c1e817f Lua: Rename globals: NoPointX→NO_CURSOR, cMaxTurnTime→MAX_TURN_TIME, cMaxHogHealth→MAX_HOG_HEALTH
Wuzzy <Wuzzy2@mail.ru>
parents: 13740
diff changeset
   398
	TurnTime = MAX_TURN_TIME --[[ This effectively hides the turn time; a turn time above 1000s is not displayed.
13664
85506d95977d Use new script variable cMaxTurnTime in scripts for consistency
Wuzzy <Wuzzy2@mail.ru>
parents: 13643
diff changeset
   399
			   	     We will also ensure this timer always stays above 999s later ]]
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   400
	CaseFreq = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   401
	MinesNum = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   402
	Explosives = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   403
	Map = "Eyes"
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   404
	Theme = "EarthRise"
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   405
	SuddenDeathTurns = 50
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   406
	WaterRise = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   407
	HealthDecrease = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   408
14480
208359558642 Use player-chosen team identity for training and a few challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 14464
diff changeset
   409
	AddMissionTeam(-9)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   410
14480
208359558642 Use player-chosen team identity for training and a few challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 14464
diff changeset
   411
	Player = AddMissionHog(1)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   412
	SetGearPosition( Player, StartPos.X, StartPos.Y)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   413
	SetEffect( Player, heResurrectable, 1 )
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   414
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   415
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   416
function onGameStart()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   417
	SendHealthStatsOff()
14951
c173fae0a223 Hide player ranks in training missions
Wuzzy <Wuzzy2@mail.ru>
parents: 14939
diff changeset
   418
	SendRankingStatsOff()
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   419
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   420
	-- Girder near first crate
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   421
	PlaceGirder(1257, 204, 6)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   422
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   423
	-- The upper girders
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   424
	PlaceGirder(84, 16, 4)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   425
	PlaceGirder(243, 16, 4)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   426
	PlaceGirder(1967, 16, 4)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   427
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   428
	-- The lower girder platform at the water pit
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   429
	PlaceGirder(509, 896, 4)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   430
	PlaceGirder(668, 896, 4)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   431
	PlaceGirder(421, 896, 2)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   432
	PlaceGirder(758, 896, 2)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   433
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   434
	-- Girders for the Launch Target and the Underwater Attack Target
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   435
	PlaceGirder(1191, 960, 4)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   436
	PlaceGirder(1311, 960, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   437
	PlaceGirder(1460, 827, 3)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   438
	PlaceGirder(1509, 763, 2)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   439
	PlaceGirder(1605, 672, 4)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   440
	PlaceGirder(1764, 672, 4)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   441
	PlaceGirder(1803, 577, 6)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   442
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   443
	-- Spawn our 1st target using the wrapper function
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   444
	AutoSpawn()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   445
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   446
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   447
function onAmmoStoreInit()
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   448
	SetAmmo(amJetpack, 0, 0, 0, 1)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   449
	SetAmmo(amGrenade, 0, 0, 0, 1)
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   450
	SetAmmo(amBazooka, 0, 0, 0, 1)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   451
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   452
	-- Added for resetting current target/objective when player is stuck somehow
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   453
	SetAmmo(amSkip, 9, 0, 0, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   454
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   455
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   456
function onGearAdd(Gear)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   457
	if GetGearType(Gear) == gtJetpack then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   458
		SaucerGear = Gear
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   459
		if TargetNumber == BoomTarget and GrenadeThrown == false then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   460
			AddAmmo(Player, amGrenade, 1)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   461
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   462
		if (TargetNumber == LaunchTarget or TargetNumber == UnderwaterAttackTarget) and BazookasLeft > 0 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   463
			AddAmmo(Player, amBazooka, BazookasLeft)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   464
		end
13594
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   465
		UpdateInfFuel()
13071
bcb205281f38 Some minor convenience improvements in Basic Flying Saucer Training
Wuzzy <Wuzzy2@mail.ru>
parents: 12424
diff changeset
   466
		-- If player starts using saucer, the player probably finished reading and the mission panel
bcb205281f38 Some minor convenience improvements in Basic Flying Saucer Training
Wuzzy <Wuzzy2@mail.ru>
parents: 12424
diff changeset
   467
		-- would just get in the way. So we hide it!
bcb205281f38 Some minor convenience improvements in Basic Flying Saucer Training
Wuzzy <Wuzzy2@mail.ru>
parents: 12424
diff changeset
   468
		HideMission()
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   469
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   470
	if GetGearType(Gear) == gtGrenade then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   471
		GrenadeThrown = true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   472
		GrenadeTimer = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   473
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   474
	if GetGearType(Gear) == gtShell then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   475
		BazookasLeft = BazookasLeft - 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   476
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   477
	if GetGearType(Gear) == gtFlame or GetGearType(Gear) == gtGrenade or GetGearType(Gear) == gtShell then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   478
		trackGear(Gear)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   479
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   480
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   481
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   482
function onGearDelete(Gear)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   483
	if GetGearType(Player) ~= nil and (GetGearType(Gear) == gtTarget or GetGearType(Gear) == gtCase) then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   484
		for i=1, #TargetGears do
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   485
			if Gear == TargetGears[i] then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   486
				TargetGears[i] = nil
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   487
				TargetsRemaining = TargetsRemaining - 1
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   488
			end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   489
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   490
		if TargetsRemaining <= 0 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   491
			if TargetNumber == BoomTarget or not HasHedgehogLandedYet() then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   492
				if SaucerGear then
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   493
					AddCaption(loc("Objective completed! Now land safely."), capcolDefault, capgrpMessage2)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   494
				end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   495
				Check = true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   496
				CheckTimer = 500
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   497
			else
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   498
				AutoSpawn()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   499
			end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   500
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   501
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   502
	if GetGearType(Gear) == gtGrenade then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   503
		GrenadeTimer = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   504
		GrenadeExploded = true
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   505
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   506
	if GetGearType(Gear) == gtJetpack then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   507
		SaucerGear = nil
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   508
		if TargetNumber == BoomTarget then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   509
			AddAmmo(Player, amGrenade, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   510
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   511
		if TargetNumber == LaunchTarget or TargetNumber == UnderwaterAttackTarget then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   512
			AddAmmo(Player, amBazooka, 0)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   513
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   514
	end
14453
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   515
	-- Fake crate collected
09bfe9df51e9 Make various stunts in flying saucer training easier
Wuzzy <Wuzzy2@mail.ru>
parents: 13763
diff changeset
   516
	if GetGearType(Gear) == gtCase and band(GetGearMessage(Gear), gmDestroy) ~= 0 and band(GetGearPos(Gear), 0x8) ~= 0 then
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   517
		PlaySound(sndShotgunReload)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   518
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   519
	if Gear == Barrels[1] then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   520
		Barrels[1] = nil
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   521
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   522
	if Gear == Barrels[2] then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   523
		Barrels[2] = nil
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   524
		AddCaption(loc("Kaboom!"), capcolDefault, capgrpMessage)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   525
	end
14939
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   526
	if Gear == Barrels[3] then
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   527
		Barrels[3] = nil
7b597da60fda Flying Saucer training: Make Grenade Drop Target a bit easier
Wuzzy <Wuzzy2@mail.ru>
parents: 14928
diff changeset
   528
	end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   529
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   530
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   531
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   532
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   533
function onNewTurn()
13071
bcb205281f38 Some minor convenience improvements in Basic Flying Saucer Training
Wuzzy <Wuzzy2@mail.ru>
parents: 12424
diff changeset
   534
	if GetAmmoCount(CurrentHedgehog, amJetpack) > 0 then
bcb205281f38 Some minor convenience improvements in Basic Flying Saucer Training
Wuzzy <Wuzzy2@mail.ru>
parents: 12424
diff changeset
   535
		SetWeapon(amJetpack)
bcb205281f38 Some minor convenience improvements in Basic Flying Saucer Training
Wuzzy <Wuzzy2@mail.ru>
parents: 12424
diff changeset
   536
	end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   537
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   538
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   539
function onGameTick20()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   540
	if (TurnTimeLeft < 1500000 and not Objective) then
13740
2bb7141496a9 Use SetTurnTimeLeft and SetReadyTimeLeft in all scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13664
diff changeset
   541
		SetTurnTimeLeft(TurnTime)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   542
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   543
	if Check then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   544
		CheckTimer = CheckTimer - 20
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   545
		if CheckTimer <= 0 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   546
			if HasHedgehogLandedYet() then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   547
				AutoSpawn()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   548
				Check = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   549
				GrenadeThrown = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   550
			end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   551
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   552
	end
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   553
	if GrenadeExploded and TargetNumber == BoomTarget and GetHealth(Player) then
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   554
		GrenadeTimer = GrenadeTimer + 20
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   555
		if GrenadeTimer > 1500 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   556
			GrenadeTimer = 0
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   557
			GrenadeThrown = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   558
			GrenadeExploded = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   559
			if SaucerGear and TargetNumber == BoomTarget and TargetsRemaining > 0 then
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   560
				PlaySound(sndShotgunReload)
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   561
				AddCaption(loc("+1 Grenade"), GetClanColor(GetHogClan(Player)), capgrpAmmoinfo)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   562
				AddAmmo(Player, amGrenade, 1)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   563
			end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   564
		end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   565
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   566
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   567
13594
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   568
function UpdateInfFuel()
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   569
	if SaucerGear then
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   570
		if InfFuel then
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   571
			SetHealth(SaucerGear, JETPACK_FUEL_INFINITE)
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   572
		elseif GetHealth(SaucerGear == JETPACK_FUEL_INFINITE) then
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   573
			SetHealth(SaucerGear, 2000)
ddd90e92c4c3 Use proper infinite fuel feature in flying saucer training
Wuzzy <Wuzzy2@mail.ru>
parents: 13583
diff changeset
   574
		end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   575
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   576
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   577
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   578
function onGearDamage(Gear)
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   579
	if Gear == Player then
14668
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   580
		Flawless = false
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   581
		CleanUpGears()
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   582
		GrenadeThrown = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   583
		Check = false
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   584
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   585
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   586
13630
fe7d2bbf5f3f Fix resurrection animation appearing at wrong position for some missions and styles
Wuzzy <Wuzzy2@mail.ru>
parents: 13594
diff changeset
   587
function onGearResurrect(Gear, VGear)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   588
	if Gear == Player then
14668
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   589
		Flawless = false
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   590
		AddCaption(loc("Oh no! You have died. Try again!"), capcolDefault, capgrpMessage2)
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   591
		ResetCurrentTarget()
13630
fe7d2bbf5f3f Fix resurrection animation appearing at wrong position for some missions and styles
Wuzzy <Wuzzy2@mail.ru>
parents: 13594
diff changeset
   592
		if VGear then
fe7d2bbf5f3f Fix resurrection animation appearing at wrong position for some missions and styles
Wuzzy <Wuzzy2@mail.ru>
parents: 13594
diff changeset
   593
			SetVisualGearValues(VGear, GetX(Gear), GetY(Gear))
fe7d2bbf5f3f Fix resurrection animation appearing at wrong position for some missions and styles
Wuzzy <Wuzzy2@mail.ru>
parents: 13594
diff changeset
   594
		end
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   595
	end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   596
end
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   597
13172
159004144897 Use onSkipTurn in scripts to detect turn skips
Wuzzy <Wuzzy2@mail.ru>
parents: 13071
diff changeset
   598
function onSkipTurn()
14668
38836d6c5c8a Play "Flawless" voice when completing the rope or saucer training perfectly
Wuzzy <Wuzzy2@mail.ru>
parents: 14649
diff changeset
   599
	Flawless = false
13643
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13630
diff changeset
   600
	AddCaption(loc("Try again!"), capcolDefault, capgrpMessage2)
13172
159004144897 Use onSkipTurn in scripts to detect turn skips
Wuzzy <Wuzzy2@mail.ru>
parents: 13071
diff changeset
   601
	ResetCurrentTarget()
11405
307832da2756 Add Basic Flying Saucer Training
Wuzzy <almikes@aol.com>
parents:
diff changeset
   602
end