share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua
author sheepluva
Thu, 12 Jun 2014 20:47:11 +0200
changeset 10289 c3a77ff02a23
parent 9772 30a9e740ec09
child 11492 806da449d355
permissions -rw-r--r--
lua api: SetWeapon(ammoType)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     1
------------------- ABOUT ----------------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     2
--
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     3
-- Hog Solo has to catch the other hog in order
9614
7fa70d381c75 added custom stats
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9613
diff changeset
     4
-- to get informations about the origin of Pr. Hogevil
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     5
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     6
HedgewarsScriptLoad("/Scripts/Locale.lua")
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     7
HedgewarsScriptLoad("/Scripts/Animate.lua")
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     8
HedgewarsScriptLoad("/Missions/Campaign/A_Space_Adventure/global_functions.lua")
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
     9
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    10
----------------- VARIABLES --------------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    11
-- globals
9615
86b82816b222 image and description
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9614
diff changeset
    12
local missionName = loc("Chasing the blue hog")
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
    13
local challengeObjectives = loc("Use the rope in order to catch the blue hedgehog").."|"..
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    14
	loc("You have to stand very close to him")
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    15
local currentPosition = 1
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    16
local previousTimeLeft = 0
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
    17
local startChallenge = false
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    18
-- dialogs
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    19
local dialog01 = {}
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
    20
local dialog02 = {}
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    21
-- mission objectives
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    22
local goals = {
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    23
	[dialog01] = {missionName, loc("Challenge Objectives"), challengeObjectives, 1, 4500},
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    24
}
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    25
-- hogs
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    26
local hero = {
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    27
	name = loc("Hog Solo"),
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    28
	x = 1300,
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    29
	y = 850
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    30
}
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    31
local runner = {
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    32
	name = loc("Crazy Runner"),
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    33
	places = {
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    34
		{x = 1400,y = 850, turnTime = 0},
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    35
		{x = 3880,y = 33, turnTime = 30000},
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    36
		{x = 250,y = 1780, turnTime = 25000},
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    37
		{x = 3850,y = 1940, turnTime = 20000},
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    38
	}
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    39
}
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    40
-- teams
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    41
local teamA = {
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    42
	name = loc("Hog Solo"),
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    43
	color = tonumber("38D61C",16) -- green
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    44
}
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    45
local teamB = {
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    46
	name = loc("Crazy Runner"),
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    47
	color = tonumber("FF0000",16) -- red
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    48
}
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    49
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    50
-------------- LuaAPI EVENT HANDLERS ------------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    51
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    52
function onGameInit()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    53
	GameFlags = gfDisableWind
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    54
	Seed = 1
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    55
	TurnTime = 25000
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    56
	CaseFreq = 0
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    57
	MinesNum = 0
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    58
	MinesTime = 1
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    59
	Explosives = 0
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    60
	Map = "moon02_map"
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    61
	Theme = "Cheese"
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
    62
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    63
	-- Hog Solo
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    64
	AddTeam(teamA.name, teamA.color, "Bone", "Island", "HillBilly", "cm_birdy")
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
    65
	hero.gear = AddHog(hero.name, 0, 1, "war_desertgrenadier1")
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    66
	AnimSetGearPosition(hero.gear, hero.x, hero.y)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    67
	-- Crazy Runner
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    68
	AddTeam(teamB.name, teamB.color, "Bone", "Island", "HillBilly", "cm_birdy")
9615
86b82816b222 image and description
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9614
diff changeset
    69
	runner.gear = AddHog(runner.name, 0, 100, "sth_Sonic")
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    70
	AnimSetGearPosition(runner.gear, runner.places[1].x, runner.places[1].y)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    71
	HogTurnLeft(runner.gear, true)
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
    72
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    73
	initCheckpoint("moon02")
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
    74
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    75
	AnimInit()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    76
	AnimationSetup()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    77
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    78
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    79
function onGameStart()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    80
	AnimWait(hero.gear, 3000)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    81
	FollowGear(hero.gear)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    82
	ShowMission(missionName, loc("Challenge Objectives"), challengeObjectives, -amSkip, 0)
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
    83
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    84
	AddEvent(onHeroDeath, {hero.gear}, heroDeath, {hero.gear}, 0)
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
    85
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    86
	AddAmmo(hero.gear, amRope, 1)
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
    87
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    88
	SendHealthStatsOff()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    89
	hogTurn = runner.gear
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    90
	AddAnim(dialog01)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    91
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    92
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
    93
function onNewTurn()
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
    94
	if startChallenge and currentPosition < 5 then
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
    95
		if CurrentHedgehog ~= hero.gear then
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
    96
			TurnTimeLeft = 0
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
    97
		else
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
    98
			if GetAmmoCount(hero.gear, amRope) == 0  then
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
    99
				lose()
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   100
			end
10289
c3a77ff02a23 lua api: SetWeapon(ammoType)
sheepluva
parents: 9772
diff changeset
   101
			SetWeapon(amRope)
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   102
			TurnTimeLeft = runner.places[currentPosition].turnTime + previousTimeLeft
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   103
			previousTimeLeft = 0
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   104
		end
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   105
	end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   106
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   107
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   108
function onGameTick()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   109
	AnimUnWait()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   110
	if ShowAnimation() == false then
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   111
		return
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   112
	end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   113
	ExecuteAfterAnimations()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   114
	CheckEvents()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   115
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   116
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   117
function onGameTick20()
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   118
	if GetHealth(hero.gear) and startChallenge and isHeroNextToRunner() and currentPosition < 5 then
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   119
		moveRunner()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   120
	end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   121
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   122
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   123
function onPrecise()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   124
	if GameTime > 3000 then
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
   125
		SetAnimSkip(true)
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   126
	end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   127
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   128
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   129
-------------- EVENTS ------------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   130
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   131
function onHeroDeath(gear)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   132
	if not GetHealth(hero.gear) then
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   133
		return true
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   134
	end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   135
	return false
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   136
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   137
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   138
-------------- ACTIONS ------------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   139
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   140
function heroDeath(gear)
9614
7fa70d381c75 added custom stats
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9613
diff changeset
   141
	lose()
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   142
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   143
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   144
-------------- ANIMATIONS ------------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   145
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   146
function Skipanim(anim)
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   147
	if goals[anim] ~= nil then
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   148
		ShowMission(unpack(goals[anim]))
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   149
    end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   150
    if anim == dialog01 then
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   151
		moveRunner()
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   152
	elseif anim == dialog02 then
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   153
		win()
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   154
    end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   155
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   156
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   157
function AnimationSetup()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   158
	-- DIALOG 01 - Start, game instructions
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   159
	AddSkipFunction(dialog01, Skipanim, {dialog01})
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   160
	table.insert(dialog01, {func = AnimWait, args = {hero.gear, 3200}})
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   161
	table.insert(dialog01, {func = AnimCaption, args = {hero.gear, loc("On the other side of the moon..."), 5000}})
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   162
	table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("So you are interested in Professor Hogevil"), SAY_SAY, 3000}})
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   163
	table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("We'll play a game first"), SAY_SAY, 3000}})
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   164
	table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("I'll let you know whatever I know about him if you manage to catch me 3 times"), SAY_SAY, 4000}})
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
   165
	table.insert(dialog01, {func = AnimSay, args = {runner.gear, loc("Let's go!"), SAY_SAY, 2000}})
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   166
	table.insert(dialog01, {func = moveRunner, args = {}})
9758
3b8058b251b8 some more campaign string tweaks
sheepluva
parents: 9757
diff changeset
   167
	-- DIALOG 02 - Hog Solo story
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   168
	AddSkipFunction(dialog02, Skipanim, {dialog02})
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   169
	table.insert(dialog02, {func = AnimWait, args = {hero.gear, 3200}})
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   170
	table.insert(dialog02, {func = AnimCaption, args = {hero.gear, loc("The truth about Professor Hogevil"), 5000}})
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   171
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("Amazing! I was never beaten in a race before!"), SAY_SAY, 4000}})
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   172
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("So, let me tell you what I know about Professor Hogevil..."), SAY_SAY, 4000}})
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   173
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("Professor Hogevil, then known as James Hogus, worked for PAotH back in my time"), SAY_SAY, 4000}})
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   174
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("He was the lab assistant of Dr. Goodhogan, the inventor of the anti-gravity device"), SAY_SAY, 5000}})
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   175
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("During the final testing of the device an accident happened"), SAY_SAY, 5000}})
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   176
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("In this accident Professor Hogevil lost all his spines on his head!"), SAY_SAY, 5000}})
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   177
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("That's why he always wears a hat since then"), SAY_SAY, 4000}})
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   178
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("After that incident he went underground and started working on his plan to steal the device"), SAY_SAY, 5000}})
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   179
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("He is a very tough and very determined hedgehog. I would be extremely careful if I were you"), SAY_SAY, 5000}})
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   180
	table.insert(dialog02, {func = AnimSay, args = {runner.gear, loc("I should go now, goodbye!"), SAY_SAY, 3000}})
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   181
	table.insert(dialog02, {func = win, args = {}})
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   182
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   183
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   184
------------- other functions ---------------
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   185
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   186
function isHeroNextToRunner()
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   187
	if GetHealth(hero.gear) and math.abs(GetX(hero.gear) - GetX(runner.gear)) < 75 and
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   188
			math.abs(GetY(hero.gear) - GetY(runner.gear)) < 75 and StoppedGear(hero.gear) then
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   189
		return true
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   190
	end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   191
	return false
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   192
end
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   193
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   194
function moveRunner()
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   195
	if currentPosition == 4 then
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   196
		currentPosition = currentPosition + 1
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   197
		if GetX(hero.gear) > GetX(runner.gear) then
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   198
			HogTurnLeft(runner.gear, false)
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   199
		end
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   200
		AddAnim(dialog02)
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   201
		TurnTimeLeft = 0
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   202
	elseif currentPosition < 4 then
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   203
		if not startChallenge then
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   204
			startChallenge = true
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   205
		end
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   206
		AddAmmo(hero.gear, amRope, 1)
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   207
		if currentPosition ~= 1 then
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   208
			PlaySound(sndVictory)
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   209
			if currentPosition > 1 and currentPosition < 4 then
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   210
				AnimCaption(hero.gear, loc("Go get him again"), 3000)
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   211
				AnimSay(runner.gear, loc("You got me"), SAY_SAY, 3000)
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   212
			end
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   213
			previousTimeLeft = TurnTimeLeft
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   214
		end
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   215
		currentPosition = currentPosition + 1
9772
30a9e740ec09 moon02 fixes: bug that didn't called win(), changed map so blue hog not placed on edges, teleport animations, removed amSkip, also error when drow hero and enemy seems fixed
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9758
diff changeset
   216
		AddVisualGear(GetX(runner.gear), GetY(runner.gear), vgtExplosion, 0, false) 
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   217
		SetGearPosition(runner.gear, runner.places[currentPosition].x, runner.places[currentPosition].y)
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   218
		TurnTimeLeft = 0
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   219
	end
9611
ef374528a9fb moon side mission map and most of the logic
Periklis Ntanasis <pntanasis@gmail.com>
parents:
diff changeset
   220
end
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   221
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   222
function lose()
9642
8a691e0f117a use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9615
diff changeset
   223
	SendStat(siGameResult, loc("Too slow! Try again..."))
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   224
	SendStat(siCustomAchievement, loc("You have to catch the other hog 3 times"))
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   225
	SendStat(siCustomAchievement, loc("The time that you have left when you reach the blue hedgehog will be added to the next turn"))
9642
8a691e0f117a use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9615
diff changeset
   226
	SendStat(siCustomAchievement, loc("Each turn you'll have only one rope to use"))
8a691e0f117a use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9615
diff changeset
   227
	SendStat(siCustomAchievement, loc("You'll lose if you die or if your time is up"))
8a691e0f117a use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9615
diff changeset
   228
	SendStat(siPlayerKills,'0',teamA.name)
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   229
	EndGame()
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   230
end
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   231
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   232
function win()
9642
8a691e0f117a use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9615
diff changeset
   233
	SendStat(siGameResult, loc("Congratulations, you are the fastest!"))
9757
9be28be004d4 string tweaks and whitespace fixes
sheepluva
parents: 9645
diff changeset
   234
	SendStat(siCustomAchievement, loc("You have managed to catch the blue hedgehog in time"))
9642
8a691e0f117a use consts for TStatInfo enum
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9615
diff changeset
   235
	SendStat(siPlayerKills,'1',teamA.name)
9613
142ba1d08205 cleanup - removed debug prints
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9612
diff changeset
   236
	EndGame()
9612
825856c67563 many corrections
Periklis Ntanasis <pntanasis@gmail.com>
parents: 9611
diff changeset
   237
end