--- a/share/hedgewars/Data/Maps/TrophyRace/map.lua Sun Oct 31 20:19:31 2010 -0400
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua Sun Oct 31 20:24:39 2010 -0400
@@ -1,202 +1,202 @@
--- Hedgewars - Roperace for 2+ Players
-
-local caption = {
- ["en"] = "ShoppaKing Map Three: TrophyRace",
- }
-
-local subcaption = {
- ["en"] = "Made by Wolfmarc and Dragonfly",
- }
-
-local goal = {
- ["en"] = "Use your rope to get from start to finish as fast as you can!",
- }
-
-local done = {
- ["en"] = "You've reached the goal!| |Time: ",
- }
-local eliminated = {
- ["en"] = "Eliminating worst hedgehog this round...| |%s is OUT!",
- }
-
-local newbesttime = {
- ["en"] = "NEW fastest lap: ",
- }
-
-local oldbesttime = {
- ["en"] = "Fastest lap: ",
- }
-local bestclantimes = {
- ["en"] = "Best laps per team: ",
- }
-local clantime = {
- ["en"] = "Team %d: ",
- }
-
- local function loc(text)
- if text == nil then return "**missing**"
- elseif text[L] == nil then return text["en"]
- else return text[L]
- end
-end
-
----------------------------------------------------------------
-
--- store number of hedgehogs
-local numhhs = 0
-
--- store hedgehog gears
-local hhs = {}
-
--- store best time per team
-local clantimes = {}
-
--- store best times
-local times = {}
-
--- in milisseconds
-local maxtime = 99000
-
--- define start area (left, top, width, height)
-local start_area = {1606, 498, 356, 80}
-
--- define goal area (left, top, width, height)
-local goal_area = {2030, 300, 56, 280}
-
--- last active hog
-local lasthog = nil
-
--- active hog reached the goal?
-local reached = false
-
--- hog with best time
-local besthog = nil
-
--- hog with worst time (per round)
-local worsthog = nil
-
--- best time
-local besttime = maxtime + 1
-
--- worst time (per round)
-local worsttime = 0
-
-function onGameInit()
- GameFlags = gfSolidLand + gfInvulnerable
- TurnTime = maxtime
- CaseFreq = 0
- LandAdds = 0
- Explosives = 0
- Delay = 500
- SuddenDeathTurns = 99999 -- "disable" sudden death
- Theme = 'Olympics'
-end
-
-function onGameStart()
- ShowMission(loc(caption), loc(subcaption), loc(goal), -amRope, 0)
- started = true
- p=1820
- for i = 0, numhhs - 1 do
- p = p + 50
- SetGearPosition(hhs[i], p, 0)
- end
-
- for i=0, ClansCount-1 do
- clantimes[i] = 0
- end
-end
-
-function onAmmoStoreInit()
- SetAmmo(amRope, 9, 2, 0)
-end
-
-function onGameTick()
- if TurnTimeLeft == 1 and CurrentHedgehog ~= nil then
- SetHealth(CurrentHedgehog, 0)
- x, y = GetGearPosition(CurrentHedgehog)
- AddGear(x, y, gtAmmo_Grenade, 0, 0, 0, 0)
- worsttime = 99999
- worsthog = nil
- elseif TurnTimeLeft == maxtime - 1 and CurrentHedgehog ~= nil then
- if lasthog ~= nil then
- SetGearPosition(lasthog, p , 0)
- end
- reached = false
- SetGearPosition(CurrentHedgehog, start_area[1] + start_area[3] / 2, start_area[2] + start_area[4] / 2)
- elseif CurrentHedgehog ~= nil then
- x, y = GetGearPosition(CurrentHedgehog)
- if not reached and x > goal_area[1] and x < goal_area[1] + goal_area[3] and y > goal_area[2] and y < goal_area[2] + goal_area[4] then -- hog is within goal rectangle
- reached = true
- local ttime = maxtime - TurnTimeLeft
- --give it a sound;)
- if ttime < besttime then
- PlaySound (sndHomerun)
- else
- PlaySound (sndHellish)
- end
- for i = 0, numhhs - 1 do
- if hhs[i] == CurrentHedgehog then
- times[numhhs] = ttime
- end
- end
-
- local hscore = "| |"
- local clan = GetHogClan(CurrentHedgehog)
- if ttime < clantimes[clan] or clantimes[clan] == 0 then
- clantimes[clan] = ttime
- end
-
- if ttime < besttime then
- besttime = ttime
- besthog = CurrentHedgehog
- hscore = hscore .. loc(newbesttime)
- else
- hscore = hscore .. loc(oldbesttime)
- end
- if ttime > worsttime then
- worsttime = ttime
- worsthog = CurrentHedgehog
- end
- hscore = hscore .. GetHogName(besthog) .. " - " .. (besttime / 1000) .. " s | |" .. loc(bestclantimes)
-
- if clan == ClansCount -1 then
- -- Time for elimination - worst hog is out and the worst hog vars are reset.
- SetHealth(worsthog, 0)
- --Place a grenade to make inactive slowest hog active
- x, y = GetGearPosition(worsthog)
- AddGear(x, y, gtAmmo_Grenade, 0, 0, 0, 0)
- worsttime = 0
- worsthog = nil
- end
-
- for i=0, ClansCount -1 do
- local tt = "" .. (clantimes[i] / 1000) .. " s"
- if clantimes[i] == 0 then
- tt = "--"
- end
- hscore = hscore .. "|" .. string.format(loc(clantime), i+1) .. tt
- end
-
- ShowMission(loc(caption), loc(subcaption), loc(done) .. (ttime / 1000) .. " s" .. hscore, 0, 0)
- TurnTimeLeft = 0
- end
- end
-end
-
-function onGearAdd(gear)
- if GetGearType(gear) == gtHedgehog then
- hhs[numhhs] = gear
- times[numhhs] = 0
- numhhs = numhhs + 1
- elseif GetGearType(gear) == gtRope then -- rope is shot
-
- end
-end
-
-function onGearDelete(gear)
- if GetGearType(gear) == gtRope then -- rope deletion - hog didn't manage to rerope
- --TurnTimeLeft = 0 -- end turn or not? hm...
- lasthog = CurrentHedgehog
-
- end
-end
+-- Hedgewars - Roperace for 2+ Players
+
+local caption = {
+ ["en"] = "ShoppaKing Map Three: TrophyRace",
+ }
+
+local subcaption = {
+ ["en"] = "Made by Wolfmarc and Dragonfly",
+ }
+
+local goal = {
+ ["en"] = "Use your rope to get from start to finish as fast as you can!",
+ }
+
+local done = {
+ ["en"] = "You've reached the goal!| |Time: ",
+ }
+local eliminated = {
+ ["en"] = "Eliminating worst hedgehog this round...| |%s is OUT!",
+ }
+
+local newbesttime = {
+ ["en"] = "NEW fastest lap: ",
+ }
+
+local oldbesttime = {
+ ["en"] = "Fastest lap: ",
+ }
+local bestclantimes = {
+ ["en"] = "Best laps per team: ",
+ }
+local clantime = {
+ ["en"] = "Team %d: ",
+ }
+
+ local function loc(text)
+ if text == nil then return "**missing**"
+ elseif text[L] == nil then return text["en"]
+ else return text[L]
+ end
+end
+
+---------------------------------------------------------------
+
+-- store number of hedgehogs
+local numhhs = 0
+
+-- store hedgehog gears
+local hhs = {}
+
+-- store best time per team
+local clantimes = {}
+
+-- store best times
+local times = {}
+
+-- in milisseconds
+local maxtime = 99000
+
+-- define start area (left, top, width, height)
+local start_area = {1606, 498, 356, 80}
+
+-- define goal area (left, top, width, height)
+local goal_area = {2030, 300, 56, 280}
+
+-- last active hog
+local lasthog = nil
+
+-- active hog reached the goal?
+local reached = false
+
+-- hog with best time
+local besthog = nil
+
+-- hog with worst time (per round)
+local worsthog = nil
+
+-- best time
+local besttime = maxtime + 1
+
+-- worst time (per round)
+local worsttime = 0
+
+function onGameInit()
+ GameFlags = gfSolidLand + gfInvulnerable
+ TurnTime = maxtime
+ CaseFreq = 0
+ LandAdds = 0
+ Explosives = 0
+ Delay = 500
+ SuddenDeathTurns = 99999 -- "disable" sudden death
+ Theme = 'Olympics'
+end
+
+function onGameStart()
+ ShowMission(loc(caption), loc(subcaption), loc(goal), -amRope, 0)
+ started = true
+ p=1820
+ for i = 0, numhhs - 1 do
+ p = p + 50
+ SetGearPosition(hhs[i], p, 0)
+ end
+
+ for i=0, ClansCount-1 do
+ clantimes[i] = 0
+ end
+end
+
+function onAmmoStoreInit()
+ SetAmmo(amRope, 9, 2, 0)
+end
+
+function onGameTick()
+ if TurnTimeLeft == 1 and CurrentHedgehog ~= nil then
+ SetHealth(CurrentHedgehog, 0)
+ x, y = GetGearPosition(CurrentHedgehog)
+ AddGear(x, y, gtAmmo_Grenade, 0, 0, 0, 0)
+ worsttime = 99999
+ worsthog = nil
+ elseif TurnTimeLeft == maxtime - 1 and CurrentHedgehog ~= nil then
+ if lasthog ~= nil then
+ SetGearPosition(lasthog, p , 0)
+ end
+ reached = false
+ SetGearPosition(CurrentHedgehog, start_area[1] + start_area[3] / 2, start_area[2] + start_area[4] / 2)
+ elseif CurrentHedgehog ~= nil then
+ x, y = GetGearPosition(CurrentHedgehog)
+ if not reached and x > goal_area[1] and x < goal_area[1] + goal_area[3] and y > goal_area[2] and y < goal_area[2] + goal_area[4] then -- hog is within goal rectangle
+ reached = true
+ local ttime = maxtime - TurnTimeLeft
+ --give it a sound;)
+ if ttime < besttime then
+ PlaySound (sndHomerun)
+ else
+ PlaySound (sndHellish)
+ end
+ for i = 0, numhhs - 1 do
+ if hhs[i] == CurrentHedgehog then
+ times[numhhs] = ttime
+ end
+ end
+
+ local hscore = "| |"
+ local clan = GetHogClan(CurrentHedgehog)
+ if ttime < clantimes[clan] or clantimes[clan] == 0 then
+ clantimes[clan] = ttime
+ end
+
+ if ttime < besttime then
+ besttime = ttime
+ besthog = CurrentHedgehog
+ hscore = hscore .. loc(newbesttime)
+ else
+ hscore = hscore .. loc(oldbesttime)
+ end
+ if ttime > worsttime then
+ worsttime = ttime
+ worsthog = CurrentHedgehog
+ end
+ hscore = hscore .. GetHogName(besthog) .. " - " .. (besttime / 1000) .. " s | |" .. loc(bestclantimes)
+
+ if clan == ClansCount -1 then
+ -- Time for elimination - worst hog is out and the worst hog vars are reset.
+ SetHealth(worsthog, 0)
+ --Place a grenade to make inactive slowest hog active
+ x, y = GetGearPosition(worsthog)
+ AddGear(x, y, gtAmmo_Grenade, 0, 0, 0, 0)
+ worsttime = 0
+ worsthog = nil
+ end
+
+ for i=0, ClansCount -1 do
+ local tt = "" .. (clantimes[i] / 1000) .. " s"
+ if clantimes[i] == 0 then
+ tt = "--"
+ end
+ hscore = hscore .. "|" .. string.format(loc(clantime), i+1) .. tt
+ end
+
+ ShowMission(loc(caption), loc(subcaption), loc(done) .. (ttime / 1000) .. " s" .. hscore, 0, 0)
+ TurnTimeLeft = 0
+ end
+ end
+end
+
+function onGearAdd(gear)
+ if GetGearType(gear) == gtHedgehog then
+ hhs[numhhs] = gear
+ times[numhhs] = 0
+ numhhs = numhhs + 1
+ elseif GetGearType(gear) == gtRope then -- rope is shot
+
+ end
+end
+
+function onGearDelete(gear)
+ if GetGearType(gear) == gtRope then -- rope deletion - hog didn't manage to rerope
+ --TurnTimeLeft = 0 -- end turn or not? hm...
+ lasthog = CurrentHedgehog
+
+ end
+end