share/hedgewars/Data/Maps/Knockball/map.lua
author smxx
Thu, 01 Apr 2010 16:46:44 +0000
changeset 3240 e3b52d10b4c2
parent 3238 e99a43a2405b
child 3257 fff80d469185
permissions -rw-r--r--
Maps: * Basketball/Knockball: Avoid trying to count score or show mission goals before round start (would crash engine)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3240
smxx
parents: 3238
diff changeset
     1
-- Hedgewars - Knockball for 2+ Players
smxx
parents: 3238
diff changeset
     2
smxx
parents: 3238
diff changeset
     3
local caption = {
smxx
parents: 3238
diff changeset
     4
	["en"] = "Hedgewars-Knockball",
smxx
parents: 3238
diff changeset
     5
	["de"] = "Hedgewars-Knockball",
3223
f0e590790f3b credits updated, adding Palewolf, sheepluva and prg as devs and replaced my previous openal stuff with something more current
koda
parents: 3197
diff changeset
     6
	["es"] = "Hedgewars-Knockball",
3240
smxx
parents: 3238
diff changeset
     7
	["pl"] = "Hedgewars-Knockball"
smxx
parents: 3238
diff changeset
     8
	}
smxx
parents: 3238
diff changeset
     9
smxx
parents: 3238
diff changeset
    10
local subcaption = {
smxx
parents: 3238
diff changeset
    11
	["en"] = "Not So Friendly Match",
smxx
parents: 3238
diff changeset
    12
	["de"] = "Kein-so-Freundschaftsspiel",
3223
f0e590790f3b credits updated, adding Palewolf, sheepluva and prg as devs and replaced my previous openal stuff with something more current
koda
parents: 3197
diff changeset
    13
	["es"] = "Partido no-tan-amistoso",
3240
smxx
parents: 3238
diff changeset
    14
	["pl"] = "Mecz Nie-Taki-Towarzyski"
smxx
parents: 3238
diff changeset
    15
	}
smxx
parents: 3238
diff changeset
    16
smxx
parents: 3238
diff changeset
    17
local goal = {
smxx
parents: 3238
diff changeset
    18
	["en"] = "Bat balls at your enemies and|push them into the sea!",
smxx
parents: 3238
diff changeset
    19
	["de"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!",
3223
f0e590790f3b credits updated, adding Palewolf, sheepluva and prg as devs and replaced my previous openal stuff with something more current
koda
parents: 3197
diff changeset
    20
	["es"] = "¡Batea pelotas hacia tus enemigos|y hazlos caer al agua!",
3240
smxx
parents: 3238
diff changeset
    21
	["pl"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!"
smxx
parents: 3238
diff changeset
    22
	}
smxx
parents: 3238
diff changeset
    23
smxx
parents: 3238
diff changeset
    24
local scored = {
smxx
parents: 3238
diff changeset
    25
	["en"] = "%s is out and Team %d|scored a point!| |Score:",
smxx
parents: 3238
diff changeset
    26
	["de"] = "%s ist draußen und Team %d|erhält einen Punkt!| |Punktestand:",
3223
f0e590790f3b credits updated, adding Palewolf, sheepluva and prg as devs and replaced my previous openal stuff with something more current
koda
parents: 3197
diff changeset
    27
	["es"] = "¡%s cayó y Equipo %d|anotó un tanto!| |Puntuación:",
3240
smxx
parents: 3238
diff changeset
    28
	["pl"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:"
smxx
parents: 3238
diff changeset
    29
	}
smxx
parents: 3238
diff changeset
    30
smxx
parents: 3238
diff changeset
    31
local failed = {
smxx
parents: 3238
diff changeset
    32
	["en"] = "%s is out and Team %d|scored a penalty!| |Score:",
smxx
parents: 3238
diff changeset
    33
	["de"] = "%s ist draußen und Team %d|erhält eine Strafe!| |Punktestand:",
3223
f0e590790f3b credits updated, adding Palewolf, sheepluva and prg as devs and replaced my previous openal stuff with something more current
koda
parents: 3197
diff changeset
    34
	["es"] = "¡%s cayó y Equipo %d|anotó una falta!| |Puntuación:",
3240
smxx
parents: 3238
diff changeset
    35
	["pl"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:"
smxx
parents: 3238
diff changeset
    36
	}
smxx
parents: 3238
diff changeset
    37
smxx
parents: 3238
diff changeset
    38
local function loc(text)
smxx
parents: 3238
diff changeset
    39
	if text == nil then return "**missing**"
smxx
parents: 3238
diff changeset
    40
	elseif text[L] == nil then return text["en"]
smxx
parents: 3238
diff changeset
    41
	else return text[L]
smxx
parents: 3238
diff changeset
    42
	end
smxx
parents: 3238
diff changeset
    43
end
smxx
parents: 3238
diff changeset
    44
smxx
parents: 3238
diff changeset
    45
---------------------------------------------------------------
smxx
parents: 3238
diff changeset
    46
smxx
parents: 3238
diff changeset
    47
local score = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0}
smxx
parents: 3238
diff changeset
    48
smxx
parents: 3238
diff changeset
    49
local ball = nil
smxx
parents: 3238
diff changeset
    50
smxx
parents: 3238
diff changeset
    51
local started = false
smxx
parents: 3238
diff changeset
    52
smxx
parents: 3238
diff changeset
    53
function onGameInit()
smxx
parents: 3238
diff changeset
    54
	GameFlags = gfSolidLand + gfInvulnerable + gfDivideTeams
smxx
parents: 3238
diff changeset
    55
	TurnTime = 20000
smxx
parents: 3238
diff changeset
    56
	CaseFreq = 0
smxx
parents: 3238
diff changeset
    57
	LandAdds = 0
smxx
parents: 3238
diff changeset
    58
	Explosives = 0
smxx
parents: 3238
diff changeset
    59
	Delay = 500
smxx
parents: 3238
diff changeset
    60
	SuddenDeathTurns = 99999 -- "disable" sudden death
smxx
parents: 3238
diff changeset
    61
end
smxx
parents: 3238
diff changeset
    62
smxx
parents: 3238
diff changeset
    63
function onGameStart()
smxx
parents: 3238
diff changeset
    64
	ShowMission(loc(caption), loc(subcaption), loc(goal), -amBaseballBat, 0)
smxx
parents: 3238
diff changeset
    65
	started = true
smxx
parents: 3238
diff changeset
    66
end
smxx
parents: 3238
diff changeset
    67
smxx
parents: 3238
diff changeset
    68
function onGameTick()
smxx
parents: 3238
diff changeset
    69
	if ball ~= nil and GetFollowGear() ~= nil then FollowGear(ball) end
smxx
parents: 3238
diff changeset
    70
end
smxx
parents: 3238
diff changeset
    71
smxx
parents: 3238
diff changeset
    72
function onAmmoStoreInit()
smxx
parents: 3238
diff changeset
    73
	SetAmmo(amBaseballBat, 9, 0, 0)
smxx
parents: 3238
diff changeset
    74
	SetAmmo(amSkip, 9, 0, 0)
smxx
parents: 3238
diff changeset
    75
end
smxx
parents: 3238
diff changeset
    76
smxx
parents: 3238
diff changeset
    77
function onGearAdd(gear)
smxx
parents: 3238
diff changeset
    78
	if GetGearType(gear) == gtShover then
smxx
parents: 3238
diff changeset
    79
		ball = AddGear(GetX(gear), GetY(gear), gtBall, 0, 0, 0, 0)
smxx
parents: 3238
diff changeset
    80
		if ball ~= nil then
smxx
parents: 3238
diff changeset
    81
			CopyPV2(gear, ball)
smxx
parents: 3238
diff changeset
    82
			SetState(ball, 0x200) -- temporary - might change!
smxx
parents: 3238
diff changeset
    83
			SetTag(ball, 8) -- baseball skin
smxx
parents: 3238
diff changeset
    84
			FollowGear(ball)
smxx
parents: 3238
diff changeset
    85
		end
smxx
parents: 3238
diff changeset
    86
	end
smxx
parents: 3238
diff changeset
    87
end
smxx
parents: 3238
diff changeset
    88
smxx
parents: 3238
diff changeset
    89
function onGearDelete(gear)
smxx
parents: 3238
diff changeset
    90
	if not started then
smxx
parents: 3238
diff changeset
    91
		return
smxx
parents: 3238
diff changeset
    92
	if gear == ball then
smxx
parents: 3238
diff changeset
    93
		ball = nil
smxx
parents: 3238
diff changeset
    94
	elseif (GetGearType(gear) == gtHedgehog) and CurrentHedgehog ~= nil then
smxx
parents: 3238
diff changeset
    95
		local clan = GetHogClan(CurrentHedgehog)
smxx
parents: 3238
diff changeset
    96
		local s
smxx
parents: 3238
diff changeset
    97
		if clan ~= nil then
smxx
parents: 3238
diff changeset
    98
			if GetHogClan(CurrentHedgehog) ~= GetHogClan(gear) then
smxx
parents: 3238
diff changeset
    99
				score[clan] = score[clan] + 1
smxx
parents: 3238
diff changeset
   100
				s = string.format(loc(scored), GetHogName(gear), clan + 1)
smxx
parents: 3238
diff changeset
   101
			else
smxx
parents: 3238
diff changeset
   102
				score[clan] = score[clan] - 1
smxx
parents: 3238
diff changeset
   103
				s = string.format(loc(failed), GetHogName(gear), clan + 1)
smxx
parents: 3238
diff changeset
   104
			end
smxx
parents: 3238
diff changeset
   105
			s = s .. " " .. score[0]
smxx
parents: 3238
diff changeset
   106
			for i = 1, ClansCount - 1 do s = s .. " - " .. score[i] end
smxx
parents: 3238
diff changeset
   107
			ShowMission(loc(caption), loc(subcaption), s, -amBaseballBat, 0)
smxx
parents: 3238
diff changeset
   108
		end
smxx
parents: 3238
diff changeset
   109
	end
smxx
parents: 3238
diff changeset
   110
end