share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua
author Wuzzy <Wuzzy2@mail.ru>
Thu, 26 Oct 2017 05:25:45 +0200
changeset 12771 957e4e2e2802
parent 12425 f9cbb896967b
child 13073 bd629a70b4a1
permissions -rw-r--r--
Expose the gotten achievements of Bamboo Thicked and Dangerous Ducklings in the stats screen Also fix Basic rope training captions. The string freeze is maintained. Only existing strings are used.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     1
-- Hedgewars Bazooka Training
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     2
-- Scripting Example
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     3
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     4
-- Lines such as this one are comments - they are ignored
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     5
-- by the game, no matter what kind of text is in there.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     6
-- It's also possible to place a comment after some real
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     7
-- instruction as you see below. In short, everything
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     8
-- following "--" is ignored.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
     9
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    10
---------------------------------------------------------------
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    11
-- At first we implement the localization library using loadfile.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    12
-- This allows us to localize strings without needing to think
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    13
-- about translations.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    14
-- We can use the function loc(text) to localize a string.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    15
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    16
HedgewarsScriptLoad("/Scripts/Locale.lua")
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    17
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    18
-- This variable will hold the number of destroyed targets.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    19
local score = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    20
-- This variable represents the number of targets to destroy.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    21
local score_goal = 5
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    22
-- This variable controls how many milliseconds/ticks we'd
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    23
-- like to wait before we end the round once all targets
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    24
-- have been destroyed.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    25
local end_timer = 1000 -- 1000 ms = 1 s
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    26
-- This variable is set to true if the game is lost (i.e.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    27
-- time runs out).
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    28
local game_lost = false
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    29
-- This variable will point to the hog's gear
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    30
local player = nil
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    31
-- This variable will grab the time left at the end of the round
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    32
local time_goal = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    33
-- This variable stores the number of bazooka shots
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    34
local shots = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    35
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    36
-- This is a custom function to make it easier to
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    37
-- spawn more targets with just one line of code
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    38
-- You may define as many custom functions as you
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    39
-- like.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    40
function spawnTarget()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    41
	-- add a new target gear
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    42
	gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    43
	
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    44
	-- move it to a random position within 0 and
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    45
	-- LAND_WIDTH - the width of the map
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    46
	FindPlace(gear, true, 0, LAND_WIDTH)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    47
	
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    48
	-- move the target to a higher vertical position
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    49
	-- to ensure it's not somewhere down below
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    50
	x, y = GetGearPosition(gear)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    51
	SetGearPosition(gear, x, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    52
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    53
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    54
-- This function is called before the game loads its
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    55
-- resources.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    56
-- It's one of the predefined function names that will
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    57
-- be called by the game. They give you entry points
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    58
-- where you're able to call your own code using either
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    59
-- provided instructions or custom functions.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    60
function onGameInit()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    61
	-- At first we have to overwrite/set some global variables
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    62
	-- that define the map, the game has to load, as well as
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    63
	-- other things such as the game rules to use, etc.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    64
	-- Things we don't modify here will use their default values.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    65
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    66
	-- The base number for the random number generator
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    67
	Seed = 1
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    68
	-- Game settings and rules
12345
b0293e4ef0de Set fixed wind in bazooka training. Fixed impossible first target when bad wind
Wuzzy <almikes@aol.com>
parents: 12224
diff changeset
    69
    EnableGameFlags(gfMultiWeapon, gfOneClanMode, gfSolidLand, gfDisableWind)
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    70
    -- Uncommenting this wouldn't do anything
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    71
    --EnableGameFlags(gfMultiWeapon, gfOneClanMode, gfSolidLand)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    72
    -- Neither this
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    73
    --DisableGameFlags(gfArtillery)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    74
    -- Uncommenting this would make the terrain damageable
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    75
    --DisableGameFlags(gfSolidLand)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    76
    -- Uncommenting this would remove all flags set previously
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    77
    --ClearGameFlags()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    78
	-- The time the player has to move each round (in ms)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    79
	TurnTime = 60000
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    80
	-- The frequency of crate drops
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    81
	CaseFreq = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    82
	-- The number of mines being placed
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    83
	MinesNum = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    84
	-- The number of explosives being placed
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    85
	Explosives = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    86
	-- The delay between each round
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    87
	Delay = 0
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    88
	-- The map to be played
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    89
	Map = "Bamboo"
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    90
	-- The theme to be used
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    91
	Theme = "Bamboo"
12224
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 12049
diff changeset
    92
	-- Setting these 2 values to 0 is the official way to disable Sudden Death cleanly
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 12049
diff changeset
    93
	HealthDecrease = 0	-- Sudden Death damage
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 12049
diff changeset
    94
	WaterRise = 0		-- Water rise in Sudden Death
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    95
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    96
	-- Create the player team
12049
030464f34d47 Tweak flags used in all missions to fit more to the theme
Wuzzy <almikes@aol.com>
parents: 11242
diff changeset
    97
	AddTeam(loc("'Zooka Team"), 14483456, "Simple", "Island", "Default", "cm_crosshair")
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    98
	-- And add a hog to it
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
    99
	player = AddHog(loc("Hunter"), 0, 1, "NoHat")
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   100
	SetGearPosition(player, 936, 136)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   101
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   102
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   103
-- This function is called when the round starts
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   104
-- it spawns the first target that has to be destroyed.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   105
-- In addition it shows the scenario goal(s).
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   106
function onGameStart()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   107
	-- Disable the graph in the stats screen, we don't need it
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   108
	SendHealthStatsOff()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   109
	-- Spawn the first target.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   110
	spawnTarget()
12345
b0293e4ef0de Set fixed wind in bazooka training. Fixed impossible first target when bad wind
Wuzzy <almikes@aol.com>
parents: 12224
diff changeset
   111
	SetWind(-20)
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   112
	
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   113
	-- Show some nice mission goals.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   114
	-- Parameters are: caption, sub caption, description,
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   115
	-- extra text, icon and time to show.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   116
	-- A negative icon parameter (-n) represents the n-th weapon icon
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   117
	-- A positive icon paramter (n) represents the (n+1)-th mission icon
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   118
	-- A timeframe of 0 is replaced with the default time to show.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   119
	ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amBazooka, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   120
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   121
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   122
function onNewTurn()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   123
	SetWeapon(amBazooka)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   124
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   125
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   126
-- This function is called every game tick.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   127
-- Note that there are 1000 ticks within one second.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   128
-- You shouldn't try to calculate too complicated
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   129
-- code here as this might slow down your game.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   130
function onGameTick20()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   131
	-- If time's up, set the game to be lost.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   132
	-- We actually check the time to be "1 ms" as it
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   133
	-- will be at "0 ms" right at the start of the game.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   134
	if TurnTimeLeft < 40 and TurnTimeLeft > 0 and score < score_goal and not game_lost then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   135
		game_lost = true
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   136
		-- ... and show a short message.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   137
		ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   138
		-- How about killing our poor hog due to his poor performance?
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   139
		SetHealth(player, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   140
		-- Just to be sure set the goal time to 1 ms
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   141
		time_goal = 1
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   142
	end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   143
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   144
	if band(GetState(player), gstDrowning) == gstDrowning and game_lost == false and score < score_goal then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   145
		game_lost = true
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   146
		time_goal = 1
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   147
		AddCaption(loc("You lose!"), 0xFFFFFFFF, capgrpGameState)
11242
1e55e4c5dda0 - Partial rus localization for User Missions and Basic Trainings in ru.lua
antonc27 <antonc27@mail.ru>
parents: 11015
diff changeset
   148
		ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Oh no! You failed! Just try again."), -amSkip, 0)
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   149
	end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   150
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   151
	-- If the goal is reached or we've lost ...
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   152
	if score == score_goal or game_lost then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   153
		-- ... check to see if the time we'd like to
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   154
		-- wait has passed and then ...
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   155
		if end_timer == 0 then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   156
			-- Let’s create some stats for the stats screen!
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   157
			-- We will expose the number of hit targets hit, launched bazooka and the accuracy
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   158
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   159
			SendStat(siPointType, loc("hits"))
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   160
			SendStat(siPlayerKills, tostring(score), loc("'Zooka Team"))
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   161
			SendStat(siCustomAchievement, string.format(loc("You have destroyed %d of %d targets."), score, score_goal))
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   162
			SendStat(siCustomAchievement, string.format(loc("You have launched %d bazookas."), shots))
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   163
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   164
			-- We must avoid a division by zero
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   165
			if(shots > 0) then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   166
				SendStat(siCustomAchievement, string.format(loc("Your accuracy was %.1f%%."), (score/shots)*100))
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   167
			end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   168
			if score == score_goal then
11242
1e55e4c5dda0 - Partial rus localization for User Missions and Basic Trainings in ru.lua
antonc27 <antonc27@mail.ru>
parents: 11015
diff changeset
   169
				SendStat(siGameResult, loc("You have finished the bazooka training!"))
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   170
				SendStat(siCustomAchievement, string.format(loc("%.1f seconds were remaining."), (time_goal/1000), math.ceil(time_goal/12)))
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   171
			end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   172
			if game_lost then
11242
1e55e4c5dda0 - Partial rus localization for User Missions and Basic Trainings in ru.lua
antonc27 <antonc27@mail.ru>
parents: 11015
diff changeset
   173
				SendStat(siGameResult, loc("You lose!"))
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   174
			end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   175
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   176
			-- Finally we end the game ...
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   177
			EndGame()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   178
		else
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   179
			-- ... or just lower the timer by 20ms.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   180
			-- Reset the time left to stop the timer
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   181
			TurnTimeLeft = time_goal
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   182
		end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   183
        end_timer = end_timer - 20
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   184
	end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   185
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   186
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   187
-- This function is called when the game is initialized
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   188
-- to request the available ammo and probabilities
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   189
function onAmmoStoreInit()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   190
	-- add an unlimited supply of bazooka ammo
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   191
	SetAmmo(amBazooka, 9, 0, 0, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   192
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   193
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   194
-- This function is called when a new gear is added.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   195
-- We don't need it for this training, so we can
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   196
-- keep it empty.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   197
-- function onGearAdd(gear)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   198
-- end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   199
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   200
-- This function is called before a gear is destroyed.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   201
-- We use it to count the number of targets destroyed.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   202
function onGearDelete(gear)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   203
	-- We're only interested in target gears.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   204
	if GetGearType(gear) == gtTarget then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   205
		-- Add one point to our score/counter
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   206
		score = score + 1
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   207
		-- If we haven't reached the goal ...
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   208
		if score < score_goal then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   209
			-- ... spawn another target.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   210
			spawnTarget()
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   211
		else
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   212
			if not game_lost then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   213
			-- Otherwise show that the goal was accomplished
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   214
			ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   215
			-- Also let the hogs shout "victory!"
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   216
			PlaySound(sndVictory)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   217
			-- Save the time left so we may keep it.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   218
			time_goal = TurnTimeLeft
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   219
			end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   220
		end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   221
	end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   222
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   223
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   224
-- This function is called when a gear has been damaged.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   225
-- We only use it to determine wheather our hog took damage in order to abort the mission.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   226
function onGearDamage(gear, damage)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   227
	if GetGearType(gear) == gtHedgehog then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   228
		if not game_lost then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   229
			game_lost = true
12425
f9cbb896967b Fix 3 more incorrect uses of loc() in scripts
Wuzzy <almikes@aol.com>
parents: 12345
diff changeset
   230
			AddCaption(loc("You lose!"), 0xFFFFFFFF, capgrpGameState)
11242
1e55e4c5dda0 - Partial rus localization for User Missions and Basic Trainings in ru.lua
antonc27 <antonc27@mail.ru>
parents: 11015
diff changeset
   231
			ShowMission(loc("Bazooka Training") , loc("Aiming Practice"), loc("Oh no! You failed! Just try again."), -amSkip, 0)
11015
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   232
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   233
			time_goal = 1
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   234
		end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   235
	end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   236
end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   237
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   238
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   239
-- This function is called after a gear is added.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   240
-- We use it to count the number of bazooka shots.
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   241
function onGearAdd(gear)
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   242
	-- Count the number of bazooka shots for our stats
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   243
	if GetGearType(gear) == gtShell then
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   244
		shots = shots + 1
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   245
	end
7a905f0070ce CRLF purge
nemo
parents: 10655
diff changeset
   246
end