fortressforever-scripts/maps/ff_2fort.lua

181 lines
10 KiB
Lua

IncludeScript("base_ctf");
IncludeScript("base_location");
IncludeScript("base_respawnturret");
-----------------------------------------------------------------------------------------------------------------------------
-- LOCATIONS
-- Q: wow clover, there sure are alot of them!
-- A: hell yes there are.
-----------------------------------------------------------------------------------------------------------------------------
blue_location_ulobby = location_info:new({ text = "Upper Lobby", team = Team.kBlue })
blue_location_llobby = location_info:new({ text = "Lower Lobby", team = Team.kBlue })
blue_location_ch = location_info:new({ text = "Covered Hallway", team = Team.kBlue })
blue_location_bspawn = location_info:new({ text = "Battlements Spawn", team = Team.kBlue })
blue_location_lspawn = location_info:new({ text = "Lobby Spawn", team = Team.kBlue })
blue_location_rr = location_info:new({ text = "#FF_LOCATION_RAMPROOM", team = Team.kBlue })
blue_location_crates = location_info:new({ text = "Crate Tunnel", team = Team.kBlue })
blue_location_ulift = location_info:new({ text = "Upper Elevator Room", team = Team.kBlue })
blue_location_llift = location_info:new({ text = "Lower Elevator Room", team = Team.kBlue })
blue_location_cod = location_info:new({ text = "Corner of Eternal Despair", team = Team.kBlue })
blue_location_fd = location_info:new({ text = "#FF_LOCATION_FRONTDOOR", team = Team.kBlue })
blue_location_grate = location_info:new({ text = "Grate Room", team = Team.kBlue })
blue_location_uspiral = location_info:new({ text = "Upper Spiral", team = Team.kBlue })
blue_location_mspiral = location_info:new({ text = "Mid Spiral", team = Team.kBlue })
blue_location_lspiral = location_info:new({ text = "Lower Spiral", team = Team.kBlue })
blue_location_waccess = location_info:new({ text = "Water Access", team = Team.kBlue })
blue_location_wtunnel = location_info:new({ text = "Water Tunnel", team = Team.kBlue })
blue_location_bfr = location_info:new({ text = "Basement - Flagroom", team = Team.kBlue })
blue_location_bsteam = location_info:new({ text = "Basement - Steam Corridor", team = Team.kBlue })
blue_location_bmf = location_info:new({ text = "Basement - Mainframe", team = Team.kBlue })
blue_location_blobby = location_info:new({ text = "Basement - Lobby", team = Team.kBlue })
blue_location_blift = location_info:new({ text = "Basement - Elevator Side", team = Team.kBlue })
blue_location_bresup = location_info:new({ text = "Basement - Resupply", team = Team.kBlue })
blue_location_batts = location_info:new({ text = "#FF_LOCATION_BATTLEMENTS", team = Team.kBlue })
neutral_location_yard = location_info:new({ text = "#FF_LOCATION_YARD", team = Team.kUnassigned })
neutral_location_ywater = location_info:new({ text = "Yard - Water", team = Team.kUnassigned })
red_location_ulobby = location_info:new({ text = "Upper Lobby", team = Team.kRed })
red_location_llobby = location_info:new({ text = "Lower Lobby", team = Team.kRed })
red_location_ch = location_info:new({ text = "Covered Hallway", team = Team.kRed })
red_location_bspawn = location_info:new({ text = "Battlements Spawn", team = Team.kRed })
red_location_lspawn = location_info:new({ text = "Lobby Spawn", team = Team.kRed })
red_location_rr = location_info:new({ text = "#FF_LOCATION_RAMPROOM", team = Team.kRed })
red_location_crates = location_info:new({ text = "Crate Tunnel", team = Team.kRed })
red_location_ulift = location_info:new({ text = "Upper Elevator Room", team = Team.kRed })
red_location_llift = location_info:new({ text = "Lower Elevator Room", team = Team.kRed })
red_location_cod = location_info:new({ text = "Corner of Eternal Despair", team = Team.kRed })
red_location_fd = location_info:new({ text = "#FF_LOCATION_FRONTDOOR", team = Team.kRed })
red_location_grate = location_info:new({ text = "Grate Room", team = Team.kRed })
red_location_uspiral = location_info:new({ text = "Upper Spiral", team = Team.kRed })
red_location_mspiral = location_info:new({ text = "Mid Spiral", team = Team.kRed })
red_location_lspiral = location_info:new({ text = "Lower Spiral", team = Team.kRed })
red_location_waccess = location_info:new({ text = "Water Access", team = Team.kRed })
red_location_wtunnel = location_info:new({ text = "Water Tunnel", team = Team.kRed })
red_location_bfr = location_info:new({ text = "Basement - Flagroom", team = Team.kRed })
red_location_bsteam = location_info:new({ text = "Basement - Steam Corridor", team = Team.kRed })
red_location_bmf = location_info:new({ text = "Basement - Mainframe", team = Team.kRed })
red_location_blobby = location_info:new({ text = "Basement - Lobby", team = Team.kRed })
red_location_blift = location_info:new({ text = "Basement - Elevator Side", team = Team.kRed })
red_location_bresup = location_info:new({ text = "Basement - Resupply", team = Team.kRed })
red_location_batts = location_info:new({ text = "#FF_LOCATION_BATTLEMENTS", team = Team.kRed })
-----------------------------------------------------------------------------------------------------------------------------
-- bag for respawns
-----------------------------------------------------------------------------------------------------------------------------
ff_2fort_genericpack = genericbackpack:new({
health = 400,
armor = 400,
grenades = 400,
nails = 400,
shells = 400,
rockets = 400,
cells = 400,
gren1 = 0,
gren2 = 0,
respawntime = 2,
model = "models/items/backpack/backpack.mdl",
materializesound = "Item.Materialize",
touchsound = "Backpack.Touch",
botgoaltype = Bot.kBackPack_Ammo
})
function ff_2fort_genericpack:dropatspawn() return false end
blue_2fort_genericpack = ff_2fort_genericpack:new({ touchflags = { AllowFlags.kOnlyPlayers, AllowFlags.kBlue } })
red_2fort_genericpack = ff_2fort_genericpack:new({ touchflags = { AllowFlags.kOnlyPlayers, AllowFlags.kRed } })
-----------------------------------------------------------------------------------------------------------------------------
-- grenpack
-----------------------------------------------------------------------------------------------------------------------------
ff_2fort_grenpack = genericbackpack:new({
health = 0,
armor = 0,
grenades = 0,
nails = 0,
shells = 0,
rockets = 0,
cells = 0,
gren1 = 2,
gren2 = 2,
respawntime = 15,
model = "models/items/backpack/backpack.mdl",
materializesound = "Item.Materialize",
touchsound = "Backpack.Touch",
botgoaltype = Bot.kBackPack_Ammo
})
function ff_2fort_grenpack:dropatspawn() return false end
blue_2fort_grenpack = ff_2fort_grenpack:new({ touchflags = { AllowFlags.kOnlyPlayers, AllowFlags.kBlue } })
red_2fort_grenpack = ff_2fort_grenpack:new({ touchflags = { AllowFlags.kOnlyPlayers, AllowFlags.kRed } })
-----------------------------------------------------------------------------------------------------------------------------
-- bag by water exit that anyone can use
-----------------------------------------------------------------------------------------------------------------------------
ff_2fort_waterpack = genericbackpack:new({
health = 50,
armor = 50,
grenades = 400,
nails = 400,
shells = 400,
rockets = 400,
cells = 80,
gren1 = 0,
gren2 = 0,
respawntime = 30,
model = "models/items/backpack/backpack.mdl",
materializesound = "Item.Materialize",
touchsound = "Backpack.Touch",
botgoaltype = Bot.kBackPack_Ammo
})
function ff_2fort_waterpack:dropatspawn() return false end
blue_2fort_waterpack = ff_2fort_waterpack:new({})
red_2fort_waterpack = ff_2fort_waterpack:new({})
-----------------------------------------------------------------------------------------------------------------------------
-- bag used in mid spiral and bottom lift resupply to stagger resources
-- tweak the respawntime of this bag to control offence/defence balance
-----------------------------------------------------------------------------------------------------------------------------
ff_2fort_spiralpack = genericbackpack:new({
health = 50,
armor = 50,
grenades = 400,
nails = 400,
shells = 400,
rockets = 400,
cells = 130,
gren1 = 0,
gren2 = 0,
respawntime = 20,
model = "models/items/backpack/backpack.mdl",
materializesound = "Item.Materialize",
touchsound = "Backpack.Touch",
botgoaltype = Bot.kBackPack_Ammo
})
function ff_2fort_spiralpack:dropatspawn() return false end
blue_2fort_spiralpack = ff_2fort_spiralpack:new({ touchflags = { AllowFlags.kOnlyPlayers, AllowFlags.kBlue } })
red_2fort_spiralpack = ff_2fort_spiralpack:new({ touchflags = { AllowFlags.kOnlyPlayers, AllowFlags.kRed } })
-----------------------------------------------------------------------------
-- SPAWNS
-----------------------------------------------------------------------------
red_spiral = function(self,player) return ((player:GetTeamId() == Team.kRed) and ((player:GetClass() == Player.kScout) or (player:GetClass() == Player.kMedic) or (player:GetClass() == Player.kSniper) or (player:GetClass() == Player.kSpy))) end
red_balc = function(self,player) return ((player:GetTeamId() == Team.kRed) and ((player:GetClass() == Player.kScout) or (player:GetClass() == Player.kMedic) or (player:GetClass() == Player.kSniper) or (player:GetClass() == Player.kSpy) or (player:GetClass() == Player.kSoldier) or (player:GetClass() == Player.kHwguy) or (player:GetClass() == Player.kDemoman) or (player:GetClass() == Player.kPyro) or (player:GetClass() == Player.kEngineer))) end
red_spiralspawn = { validspawn = red_spiral }
red_balcspawn = { validspawn = red_balc }
blue_spiral = function(self,player) return ((player:GetTeamId() == Team.kBlue) and ((player:GetClass() == Player.kScout) or (player:GetClass() == Player.kMedic) or (player:GetClass() == Player.kSniper) or (player:GetClass() == Player.kSpy))) end
blue_balc = function(self,player) return ((player:GetTeamId() == Team.kBlue) and ((player:GetClass() == Player.kScout) or (player:GetClass() == Player.kMedic) or (player:GetClass() == Player.kSniper) or (player:GetClass() == Player.kSpy) or (player:GetClass() == Player.kSoldier) or (player:GetClass() == Player.kHwguy) or (player:GetClass() == Player.kDemoman) or (player:GetClass() == Player.kPyro) or (player:GetClass() == Player.kEngineer))) end
blue_spiralspawn = { validspawn = blue_spiral }
blue_balcspawn = { validspawn = blue_balc }