share/hedgewars/Data/Missions/Challenge/User_Mission_-_Rope_Knock_Challenge.lua
author alfadur
Sat, 13 Oct 2018 22:44:21 +0300
changeset 13897 57bac0456b86
parent 13759 5525f69bf76b
child 13982 e340ce5500d7
permissions -rw-r--r--
Fix overflow in CheckGearNear
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8043
da083f8d95e6 We need custom script loading function in lua now
unc0rr
parents: 7889
diff changeset
     1
HedgewarsScriptLoad("/Scripts/Locale.lua")
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
     2
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
     3
local hhs = {}
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
     4
local missionWon = nil
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
     5
local endTimer = 1000
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
     6
local hogsKilled = 0
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
     7
local finishTime
12744
2f873afda0e2 Rope Knock Challenge: Don't count hog kills after hero hurt itself
Wuzzy <Wuzzy2@mail.ru>
parents: 12743
diff changeset
     8
local ouchies = false
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
     9
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    10
local HogData =	{
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    11
					{"amn",			"NinjaFull",false},
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    12
					{"alfadur",		"NoHat",false},
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    13
					{"Anachron",		"war_americanww2helmet",false},
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    14
					{"Bufon", 			"ShaggyYeti",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    15
					{"burp", 			"lambda",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    16
					{"Blue", 			"cap_blue",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    17
					{"bender", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    18
					{"Castell",			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    19
					{"cekoto", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    20
					{"CheezeMonkey",	"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    21
					{"claymore", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    22
					{"CIA-144", 		"cyborg1",false},
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    23
					{"cri.the.grinch",	"sf_blanka",false},
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    24
					{"eldiablo",		"Evil",false},
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    25
					{"Displacer",		"fr_lemon",false},
13098
403dbadfc8fb Rope Knock Challenge: Remove trailing space of name "doomy "
Wuzzy <Wuzzy2@mail.ru>
parents: 13072
diff changeset
    26
					{"doomy", 			"NoHat",false},
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    27
					{"Falkenauge", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    28
					{"FadeOne", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    29
					{"hayaa", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    30
					{"Hermes", 			"laurel",false},
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    31
					{"Henek", 		"WizardHat",false},
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    32
					{"HedgeKing",		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    33
					{"Izack1535", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    34
					{"Kiofspa", 		"NoHat",false},
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    35
					{"KoBeWi",		"NoHat",false},
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    36
					{"Komplex", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    37
					{"koda", 			"poke_mudkip",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    38
					{"Lalo", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    39
					{"Logan", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    40
					{"lollkiller", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    41
					{"Luelle", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    42
					{"mikade", 			"Skull",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    43
					{"Mushi", 			"sm_daisy",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    44
					{"Naboo", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    45
					{"nemo", 			"bb_bub",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    46
					{"practice", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    47
					{"Prof. Panic",  	"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    48
					{"Randy",			"zoo_Sheep",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    49
					{"rhino", 			"NinjaTriangle",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    50
					{"Radissthor",  	"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    51
					{"Sami",			"sm_peach",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    52
					{"soreau", 			"NoHat",false},
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    53
					{"Solar",		"pinksunhat",false},
12775
cf1377ab2f89 Add sparkle's name to Rope Knock Challenge
Wuzzy <Wuzzy2@mail.ru>
parents: 12744
diff changeset
    54
					{"sparkle",		"NoHat",false},
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    55
					{"szczur", 		"mp3",false},
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    56
					{"sdw195", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    57
					{"sphrix", 			"TeamTopHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    58
					{"sheepluva",		"zoo_Sheep",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    59
					{"Smaxx", 			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    60
					{"shadowzero", 		"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    61
					{"Star and Moon",	"SparkleSuperFun",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    62
					{"The 24",			"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    63
					{"TLD",				"NoHat",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    64
					{"Tiyuri", 			"sf_ryu",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    65
					{"unC0Rr", 			"cyborg1",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    66
					{"Waldsau", 		"cyborg1",false},
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    67
					{"wolfmarc", 		"knight",false},
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    68
					{"Wuzzy",		"fr_orange",false},
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    69
					{"Xeli", 			"android",false}
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    70
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    71
				}
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    72
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    73
local playerTeamName = loc("Wannabe Shoppsta")
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    74
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    75
function GetKillScore()
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    76
	return math.ceil((hogsKilled / 16)*6000)
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    77
end
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    78
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    79
function ProtectEnemies()
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    80
	for i=1, 16 do
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    81
		if hhs[i] and GetHealth(hhs[i]) then
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    82
			SetEffect(hhs[i], heInvulnerable, 1)
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    83
		end
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    84
	end
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    85
end
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    86
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    87
function GameOverMan()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    88
	missionWon = false
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    89
	ProtectEnemies()
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
    90
	ShowMission(loc("Rope-knocking Challenge"), loc("Challenge over!"), loc("Oh no! Just try again!"), -amSkip, 0)
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
    91
	SendStat(siGameResult, loc("Challenge over!"))
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    92
	local score = GetKillScore()
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
    93
	SendStat(siCustomAchievement, string.format(loc("You have killed %d of 16 hedgehogs (+%d points)."), hogsKilled, score))
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
    94
	SendStat(siPointType, loc("points"))
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
    95
	SendStat(siPlayerKills, tostring(score), playerTeamName)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    96
	PlaySound(sndHellish)
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
    97
	EndGame()
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    98
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
    99
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   100
function GG()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   101
	missionWon = true
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   102
	local completeTime = (TurnTime - finishTime) / 1000
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   103
	ShowMission(loc("Rope-knocking Challenge"), loc("Challenge completed!"), loc("Congratulations!") .. "|" .. string.format(loc("Completion time: %.2fs"), completeTime), 0, 0)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   104
	PlaySound(sndHomerun)
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   105
	SendStat(siGameResult, loc("Challenge completed!"))
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
   106
	local hogScore = GetKillScore()
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   107
	local timeScore = math.ceil((finishTime/TurnTime)*6000)
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   108
	local score = hogScore + timeScore
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   109
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   110
	SendStat(siCustomAchievement, string.format(loc("You have killed %d of 16 hedgehogs (+%d points)."), hogsKilled, hogScore))
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   111
	SendStat(siCustomAchievement, string.format(loc("You have completed this challenge in %.2f s (+%d points)."), completeTime, timeScore))
12743
49c45424a333 Rope knock challenge: Add names of developers and Shoppa tournament players who ranked 1st/2nd/3rd
Wuzzy <Wuzzy2@mail.ru>
parents: 12591
diff changeset
   112
	SendStat(siPointType, loc("points"))
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
   113
	SendStat(siPlayerKills, tostring(score), playerTeamName)
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
   114
	SetTeamLabel(playerTeamName, tostring(score))
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   115
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   116
	if hhs[0] and GetHealth(hhs[0]) then
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   117
		SetEffect(hhs[0], heInvulnerable, 1)
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   118
	end
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   119
	SetTurnTimeLeft(MAX_TURN_TIME)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   120
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   121
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   122
function AssignCharacter(p)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   123
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   124
	done = false
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   125
	sanityCheck = 0
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   126
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   127
	while(done == false) do
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   128
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   129
		i = 1+ GetRandom(#HogData)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   130
		if HogData[i][3] == false then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   131
			HogData[i][3] = true
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   132
			done = true
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   133
			SetHogName(hhs[p], HogData[i][1])
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   134
			SetHogHat(hhs[p], HogData[i][2])
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   135
		elseif HogData[i][3] == true then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   136
			sanityCheck = sanityCheck +1
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   137
			if sanityCheck == 100 then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   138
				done = true
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   139
				SetHogName(hhs[p], "Newbie")
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   140
				SetHogHat(hhs[p], "NoHat")
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   141
			end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   142
		end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   143
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   144
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   145
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   146
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   147
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   148
function onGameInit()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   149
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   150
	--Seed = 1
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   151
	GameFlags = gfBorder + gfSolidLand
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   152
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   153
	TurnTime = 180 * 1000
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   154
	Delay = 500
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   155
	Map = "Ropes"
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   156
	Theme = "Eyes"
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   157
12229
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 11973
diff changeset
   158
	-- Disable Sudden Death
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 11973
diff changeset
   159
	WaterRise = 0
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 11973
diff changeset
   160
	HealthDecrease = 0
d62d6f8ebef1 Disable Sudden Death consistently in all missions which don't require it
Wuzzy <almikes@aol.com>
parents: 11973
diff changeset
   161
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   162
	CaseFreq = 0
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   163
	MinesNum = 0
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   164
	Explosives = 0
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   165
13588
141cdfe0f3ca Switch almost all Lua calls of AddTeam to using default clan colors instead of hardcoded color
Wuzzy <Wuzzy2@mail.ru>
parents: 13359
diff changeset
   166
	AddTeam(playerTeamName, -1, "money", "Island", "Default", "cm_shoppa")
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   167
	hhs[0] = AddHog(loc("Ace"), 0, 1, "Gasmask")
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   168
	SetGearPosition(player, 1380, 1500)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   169
13588
141cdfe0f3ca Switch almost all Lua calls of AddTeam to using default clan colors instead of hardcoded color
Wuzzy <Wuzzy2@mail.ru>
parents: 13359
diff changeset
   170
	AddTeam(loc("Unsuspecting Louts"), -2, "Simple", "Island", "Default", "cm_face")
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   171
	for i = 1, 8 do
13072
64aba90811a2 Change team colors in rope knock challenge to standard color scheme
Wuzzy <Wuzzy2@mail.ru>
parents: 13070
diff changeset
   172
		-- The name "generic" is a placeholder and will be replaced in AssignCharacter
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   173
		hhs[i] = AddHog("generic", 0, 1, "NoHat")
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   174
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   175
13588
141cdfe0f3ca Switch almost all Lua calls of AddTeam to using default clan colors instead of hardcoded color
Wuzzy <Wuzzy2@mail.ru>
parents: 13359
diff changeset
   176
	AddTeam(loc("Unlucky Sods"), -2, "Simple", "Island", "Default", "cm_balrog")
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   177
	for i = 9, 16 do
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   178
		hhs[i] = AddHog("generic", 0, 1, "NoHat")
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   179
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   180
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   181
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   182
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   183
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   184
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   185
function onGameStart()
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   186
	SendHealthStatsOff()
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   187
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   188
	ShowMission     (
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   189
                        loc("Rope-knocking Challenge"),
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   190
                        loc("Challenge"),
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   191
                        loc("Use the rope to knock your enemies to their doom.") .. "|" ..
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   192
                        loc("Finish this challenge as fast as possible to earn bonus points."),
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   193
                        -amRope, 4000)
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
   194
	SetTeamLabel(playerTeamName, "0")
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   195
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   196
	PlaceGirder(46,1783, 0)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   197
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   198
	SetGearPosition(hhs[0], 2419, 1769)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   199
	SetGearPosition(hhs[1], 3350, 570)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   200
	SetGearPosition(hhs[2], 3039, 1300)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   201
	SetGearPosition(hhs[3], 2909, 430)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   202
	SetGearPosition(hhs[4], 2150, 879)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   203
	SetGearPosition(hhs[5], 1735, 1136)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   204
	SetGearPosition(hhs[6], 1563, 553)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   205
	SetGearPosition(hhs[7], 679, 859)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   206
	SetGearPosition(hhs[8], 1034, 251)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   207
	SetGearPosition(hhs[9], 255, 67)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   208
	SetGearPosition(hhs[10], 2671, 7)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   209
	SetGearPosition(hhs[11], 2929, 244)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   210
	SetGearPosition(hhs[12], 1946, 221)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   211
	SetGearPosition(hhs[13], 3849, 1067)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   212
	SetGearPosition(hhs[14], 3360, 659)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   213
	SetGearPosition(hhs[15], 3885, 285)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   214
	SetGearPosition(hhs[16], 935, 1160)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   215
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   216
	for i = 1, 16 do
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   217
		AssignCharacter(i)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   218
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   219
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   220
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   221
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   222
function onGameTick()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   223
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   224
	if (TurnTimeLeft == 1) and (missionWon == nil) then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   225
		GameOverMan()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   226
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   227
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   228
	if missionWon ~= nil then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   229
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   230
		endTimer = endTimer - 1
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   231
		if endTimer == 1 then
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   232
			EndGame()
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   233
		end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   234
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   235
		if missionWon == true then
13648
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13588
diff changeset
   236
			AddCaption(loc("Victory!"), capcolDefault, capgrpGameState)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   237
		else
13648
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13588
diff changeset
   238
			AddCaption(loc("Challenge over!"), capcolDefault, capgrpGameState)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   239
		end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   240
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   241
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   242
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   243
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   244
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   245
function onGearDamage(gear, damage)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   246
12744
2f873afda0e2 Rope Knock Challenge: Don't count hog kills after hero hurt itself
Wuzzy <Wuzzy2@mail.ru>
parents: 12743
diff changeset
   247
	if gear == hhs[0] then
2f873afda0e2 Rope Knock Challenge: Don't count hog kills after hero hurt itself
Wuzzy <Wuzzy2@mail.ru>
parents: 12743
diff changeset
   248
		ouchies = true
13759
5525f69bf76b Fix stats screwing up in Rope Knock Challenge if you lose
Wuzzy <Wuzzy2@mail.ru>
parents: 13648
diff changeset
   249
		ProtectEnemies()
12744
2f873afda0e2 Rope Knock Challenge: Don't count hog kills after hero hurt itself
Wuzzy <Wuzzy2@mail.ru>
parents: 12743
diff changeset
   250
	end
2f873afda0e2 Rope Knock Challenge: Don't count hog kills after hero hurt itself
Wuzzy <Wuzzy2@mail.ru>
parents: 12743
diff changeset
   251
2f873afda0e2 Rope Knock Challenge: Don't count hog kills after hero hurt itself
Wuzzy <Wuzzy2@mail.ru>
parents: 12743
diff changeset
   252
	if gear ~= hhs[0] and GetGearType(gear) == gtHedgehog and missionWon == nil and ouchies == false then
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   253
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   254
		AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   255
		DeleteGear(gear)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   256
		PlaySound(sndExplosion)
13648
690cc84e9fd6 Use capcolDefault in Lua scripts
Wuzzy <Wuzzy2@mail.ru>
parents: 13588
diff changeset
   257
		AddCaption(string.format(knockTaunt(), GetHogName(gear)), capcolDefault, capgrpMessage)
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   258
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   259
		hogsKilled = hogsKilled +1
13070
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
   260
		SetTeamLabel(playerTeamName, tostring(GetKillScore()))
a297e06d1607 Display score next to team bar in singleplayer challenges
Wuzzy <Wuzzy2@mail.ru>
parents: 12775
diff changeset
   261
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   262
		if hogsKilled == 15 then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   263
			PlaySound(sndRideOfTheValkyries)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   264
		elseif hogsKilled == 16 then
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   265
			finishTime = TurnTimeLeft
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   266
			GG()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   267
		end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   268
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   269
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   270
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   271
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   272
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   273
function knockTaunt()
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   274
	local r = math.random(0,23)
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   275
	local taunt
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   276
	if r == 0 then taunt =		loc("%s has been knocked out.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   277
	elseif r == 1 then taunt =	loc("%s hit the ground.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   278
	elseif r == 2 then taunt =	loc("%s splatted.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   279
	elseif r == 3 then taunt =	loc("%s was smashed.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   280
	elseif r == 4 then taunt =	loc("%s felt unstable.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   281
	elseif r == 5 then taunt =	loc("%s exploded.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   282
	elseif r == 6 then taunt =	loc("%s fell from a high cliff.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   283
	elseif r == 7 then taunt =	loc("%s goes the way of the lemming.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   284
	elseif r == 8 then taunt =	loc("%s was knocked away.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   285
	elseif r == 9 then taunt =	loc("%s was really unlucky.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   286
	elseif r == 10 then taunt =	loc("%s felt victim to rope-knocking.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   287
	elseif r == 11 then taunt =	loc("%s had no chance.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   288
	elseif r == 12 then taunt =	loc("%s was a good target.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   289
	elseif r == 13 then taunt =	loc("%s spawned at a really bad position.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   290
	elseif r == 14 then taunt =	loc("%s was doomed from the beginning.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   291
	elseif r == 15 then taunt =	loc("%s has fallen victim to gravity.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   292
	elseif r == 16 then taunt =	loc("%s hates Newton.")		-- Isaac Newton
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   293
	elseif r == 17 then taunt =	loc("%s had it coming.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   294
	elseif r == 18 then taunt =	loc("%s is eliminated!")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   295
	elseif r == 19 then taunt =	loc("%s fell too fast.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   296
	elseif r == 20 then taunt =	loc("%s flew like a rock.")
13359
f9a15dcd857c Fix a couple of English typos
Wuzzy <Wuzzy2@mail.ru>
parents: 13098
diff changeset
   297
	elseif r == 21 then taunt =	loc("%s stumbled.")
11692
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   298
	elseif r == 22 then taunt =	loc("%s was shoved away.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   299
	elseif r == 23 then taunt =	loc("%s didn't expect that.")
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   300
	end
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   301
	return taunt
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   302
end
594016813e06 Update Rope-Knocking Challenge
Wuzzy <almikes@aol.com>
parents: 10290
diff changeset
   303
7889
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   304
function onGearDelete(gear)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   305
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   306
	if (gear == hhs[0]) and (missionWon == nil) then
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   307
		GameOverMan()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   308
	end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   309
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   310
end
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   311
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   312
function onAmmoStoreInit()
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   313
	SetAmmo(amRope, 9, 0, 0, 0)
57b117d441b9 consistent line endings
nemo
parents: 7095
diff changeset
   314
end
11694
c0ad9cf7db65 preselect weapons
sheepluva
parents: 11692
diff changeset
   315
c0ad9cf7db65 preselect weapons
sheepluva
parents: 11692
diff changeset
   316
function onNewTurn()
c0ad9cf7db65 preselect weapons
sheepluva
parents: 11692
diff changeset
   317
 	SetWeapon(amRope)
c0ad9cf7db65 preselect weapons
sheepluva
parents: 11692
diff changeset
   318
end