share/hedgewars/Data/Maps/TrophyRace/map.lua
author Henek
Sat, 11 Dec 2010 01:00:00 +0100
changeset 4503 a8ab151bcae3
parent 4350 cdb3d7a39fa2
child 4506 37744d5c877e
permissions -rw-r--r--
also updated TrophyRace to new system
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
     1
loadfile(GetDataPath() .. "Scripts/Locale.lua")()
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     2
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
     3
-- Hedgewars - Roperace for 2+ Players
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     4
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     5
-- store number of hedgehogs
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     6
local numhhs = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     7
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     8
-- store hedgehog gears
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
     9
local hhs = {}
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    10
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    11
-- store best time per team
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    12
local clantimes = {}
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    13
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    14
-- store best times
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    15
local times = {}
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    16
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    17
-- in milisseconds
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    18
local maxtime = 99000
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    19
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    20
-- define start area (left, top, width, height)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    21
local start_area = {1606, 498, 356, 80}
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    22
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    23
-- define goal area (left, top, width, height)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    24
local goal_area = {2030, 300, 56, 280}
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    25
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    26
-- last active hog
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    27
local lasthog = nil
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    28
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    29
-- active hog reached the goal?
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    30
local reached = false
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    31
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    32
-- hog with best time
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    33
local besthog = nil
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    34
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    35
-- hog with worst time (per round)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    36
local worsthog = nil
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    37
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    38
-- best time
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    39
local besttime = maxtime + 1
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    40
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    41
-- worst time (per round)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    42
local worsttime = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    43
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    44
function onGameInit()
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    45
	GameFlags = gfSolidLand + gfInvulnerable
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    46
	TurnTime = maxtime
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    47
	CaseFreq = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    48
	MinesNum = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    49
	Explosives = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    50
	Delay = 500
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    51
	SuddenDeathTurns = 99999 -- "disable" sudden death
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    52
	Theme = 'Olympics'
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    53
end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    54
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    55
function onGameStart()
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
    56
	ShowMission(loc("TrophyRace"), "", loc("Use your rope to get from start to finish as fast as you can!"), -amRope, 0)
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    57
	started = true
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    58
	p=1820
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    59
	for i = 0, numhhs - 1 do
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    60
	p = p + 50	
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    61
	SetGearPosition(hhs[i], p, 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    62
	end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    63
	
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    64
	for i=0, ClansCount-1 do
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    65
		clantimes[i] = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    66
	end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    67
end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    68
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    69
function onAmmoStoreInit()
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    70
	SetAmmo(amRope, 9, 2, 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    71
end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    72
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    73
function onGameTick()
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    74
	if TurnTimeLeft == 1 and CurrentHedgehog ~= nil then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    75
		SetHealth(CurrentHedgehog, 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    76
		x, y = GetGearPosition(CurrentHedgehog)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    77
		AddGear(x, y, gtAmmo_Grenade, 0, 0, 0, 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    78
		worsttime = 99999
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    79
		worsthog = nil
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    80
	elseif TurnTimeLeft == maxtime - 1 and CurrentHedgehog ~= nil then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    81
		if lasthog ~= nil then 
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    82
		SetGearPosition(lasthog, p , 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    83
		end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    84
		reached = false
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    85
		SetGearPosition(CurrentHedgehog, start_area[1] + start_area[3] / 2, start_area[2] + start_area[4] / 2)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    86
	elseif CurrentHedgehog ~= nil then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    87
		x, y = GetGearPosition(CurrentHedgehog)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    88
		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
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    89
			reached = true
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    90
			local ttime = maxtime - TurnTimeLeft
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    91
			--give it a sound;)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    92
			if ttime < besttime then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    93
				PlaySound (sndHomerun)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    94
			else
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    95
				PlaySound (sndHellish)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    96
			end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    97
			for i = 0, numhhs - 1 do
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    98
				if hhs[i] == CurrentHedgehog then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
    99
					times[numhhs] = ttime
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   100
				end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   101
			end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   102
				
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   103
			local hscore = "| |"
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   104
			local clan = GetHogClan(CurrentHedgehog)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   105
			if ttime < clantimes[clan] or clantimes[clan] == 0 then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   106
				clantimes[clan] = ttime
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   107
			end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   108
			
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   109
			if ttime < besttime then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   110
				besttime = ttime
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   111
				besthog = CurrentHedgehog
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
   112
				hscore = hscore .. loc("NEW fastest lap: ")
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   113
			else
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
   114
				hscore = hscore .. loc("Fastest lap: ")
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   115
			end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   116
			if ttime > worsttime then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   117
				worsttime = ttime
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   118
				worsthog = CurrentHedgehog
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   119
			end
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
   120
			hscore = hscore .. GetHogName(besthog) .. " - " .. (besttime / 1000) .. " s | |" .. loc("Best laps per team: ")
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   121
			
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   122
			if clan == ClansCount -1 then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   123
				-- Time for elimination - worst hog is out and the worst hog vars are reset.
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   124
				SetHealth(worsthog, 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   125
				--Place a grenade to make inactive slowest hog active
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   126
				x, y = GetGearPosition(worsthog)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   127
				AddGear(x, y, gtShell, 0, 0, 0, 0)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   128
				worsttime = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   129
				worsthog = nil
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   130
				end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   131
			
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   132
			for i=0, ClansCount -1 do
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   133
				local tt = "" .. (clantimes[i] / 1000) .. " s"
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   134
				if clantimes[i] == 0 then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   135
					tt = "--"
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   136
				end
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
   137
				hscore = hscore .. "|" .. string.format(loc("Team %d: "), i+1) .. tt
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   138
			end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   139
			
4503
a8ab151bcae3 also updated TrophyRace to new system
Henek
parents: 4350
diff changeset
   140
			ShowMission(loc("TrophyRace"), "", loc("You've reached the goal!| |Time: ") .. (ttime / 1000) .. " s" .. hscore, 0, 0)
4188
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   141
			TurnTimeLeft = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   142
		end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   143
	end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   144
end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   145
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   146
function onGearAdd(gear)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   147
	if GetGearType(gear) == gtHedgehog then
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   148
		hhs[numhhs] = gear
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   149
		times[numhhs] = 0
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   150
		numhhs = numhhs + 1
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   151
	elseif GetGearType(gear) == gtRope then -- rope is shot
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   152
		
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   153
	end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   154
end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   155
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   156
function onGearDelete(gear)
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   157
	if GetGearType(gear) == gtRope then -- rope deletion - hog didn't manage to rerope
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   158
		--TurnTimeLeft = 0 -- end turn or not? hm...
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   159
		lasthog = CurrentHedgehog
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   160
		
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   161
	end
e1bf1b5a301e pt_BR, the return. also fix line ending screwups
arrom
parents: 4174
diff changeset
   162
end