--- [[ Global Variables ]] ----------
g_arena = nil -- The global arena class, to avoid having to pass it around functions
g_state = nil
g_bGameRunning = false -- Is the game running?
g_titan = 400
g_collie = 402
--- [[ Functions ]] -------
function Arena_OnCreate(arena)
-- Set our global value
g_arena = arena
-- Initialize random
math.randomseed(os.time())
-- Use our own game dynamic
local cfg = GameSettings()
cfg.minplayers = 2
cfg.gamedelay = 15
cfg.str_pregame = "Game starting in "
cfg.str_noplayers = "Not Enough Players"
cfg.bDesertedGameEnd = false
cfg.bIngameTicker = true
cfg.tckrUpdateSpacing = 10000
g_state = g_arena:Takeover_State(cfg)
end
-- Code in this function is carried out when the player joins
function Player_OnJoin(player)
player:message("Welcome to Traffic Control, Lua is running.")
end
function Player_OnDeath(killer, victim) -- player, player
end
-- when the game starts, it sets gameRunning to true
function Arena_OnGameStart()
g_bGameRunning = true
local collie = g_arena:vehicle_create(g_collie, 319, 4705, 0)
local titan = g_arena:vehicle_create(g_titan, 4543, 390, 0)
titan:setfrequency(0)
collie:setfrequency(1)
end
-- when the game finishes, it sets gameRunning to false
function Arena_OnGameEnd()
g_bGameRunning = false
end
function Vehicle_OnDeath(victim, killer, itemid)
local vid = victim:vehicletypeid()
if (vid == g_titan) then --titan?
g_state:Endgame()
g_arena:message("Collective has destroyed Titan's tank factory. Game Over")
elseif (vid == g_collie) then --collie?
g_state:Endgame()
g_arena:message("Titan has destroyed Collective's tank factory. Game Over")
end
end
function CollieWin()
g_arena:message("Collective has destroyed Titan's tank factory. Game Over")
end
function TitanWin()
g_arena:message("Titan has destroyed Collective's tank factory. Game Over")
end