2014-11-30 06:17:28 +00:00
-- ff_bases.lua
-----------------------------------------------------------------------------
-- includes
-----------------------------------------------------------------------------
IncludeScript ( " base " )
IncludeScript ( " base_ctf " )
IncludeScript ( " base_location " )
IncludeScript ( " base_respawnturret " )
-----------------------------------------------------------------------------
function precache ( )
PrecacheSound ( " Backpack.Touch " )
PrecacheSound ( " misc.thunder " )
end
-----------------------------------------------------------------------------
-- Doors
-----------------------------------------------------------------------------
blue_only = bluerespawndoor
red_only = redrespawndoor
-----------------------------------------------------------------------------
-- Computer Explodeded
-----------------------------------------------------------------------------
fr_computer = trigger_ff_script : new ( { team = Team.kUnassigned } )
function fr_computer : onexplode ( explosion_entity )
if IsDetpack ( explosion_entity ) then
local detpack = CastToDetpack ( explosion_entity )
if detpack : GetTeamId ( ) ~= self.team then
local points = 5
local team = detpack : GetTeam ( )
team : AddScore ( points )
local player = detpack : GetOwner ( )
player : AddFortPoints ( points * 100 , " Destroyed Computer " )
SmartSound ( player , " misc.thunder " , " misc.thunder " , " misc.thunder " )
SmartMessage ( player , " You Destroyed the Enemy Command Centre! " , " Your Team Destroyed the Enemy Command Centre! " , " Your Command Centre has been Destroyed! " )
if team : GetTeamId ( ) == Team.kBlue then
SpeakAll ( " CZ_RCC_DET " )
elseif team : GetTeamId ( ) == Team.kRed then
SpeakAll ( " CZ_BCC_DET " )
end
end
end
return EVENT_ALLOWED
end
blue_computer = fr_computer : new ( { team = Team.kBlue } )
red_computer = fr_computer : new ( { team = Team.kRed } )
-----------------------------------------------------------------------------
-- Backpacks
-----------------------------------------------------------------------------
blue_gen_pack = genericbackpack : new ( {
health = 50 ,
armor = 50 ,
grenades = 0 ,
nails = 300 ,
shells = 300 ,
rockets = 300 ,
gren1 = 1 ,
gren2 = 0 ,
cells = 130 ,
respawntime = 15 ,
model = " models/items/backpack/backpack.mdl " ,
materializesound = " Item.Materialize " ,
touchsound = " Backpack.Touch " ,
touchflags = { AllowFlags.kOnlyPlayers , AllowFlags.kBlue } } )
blue_fr_gen_pack = genericbackpack : new ( {
health = 30 ,
armor = 30 ,
grenades = 0 ,
nails = 300 ,
shells = 300 ,
rockets = 300 ,
gren1 = 0 ,
gren2 = 0 ,
cells = 130 ,
respawntime = 20 ,
model = " models/items/backpack/backpack.mdl " ,
materializesound = " Item.Materialize " ,
touchsound = " Backpack.Touch " ,
touchflags = { AllowFlags.kOnlyPlayers , AllowFlags.kBlue } } )
red_gen_pack = genericbackpack : new ( {
health = 50 ,
armor = 50 ,
grenades = 0 ,
nails = 300 ,
shells = 300 ,
rockets = 300 ,
gren1 = 1 ,
gren2 = 0 ,
cells = 130 ,
respawntime = 15 ,
model = " models/items/backpack/backpack.mdl " ,
materializesound = " Item.Materialize " ,
touchsound = " Backpack.Touch " ,
touchflags = { AllowFlags.kOnlyPlayers , AllowFlags.kRed } } )
red_fr_gen_pack = genericbackpack : new ( {
health = 30 ,
armor = 30 ,
grenades = 0 ,
nails = 300 ,
shells = 300 ,
rockets = 300 ,
gren1 = 0 ,
gren2 = 0 ,
cells = 130 ,
respawntime = 20 ,
model = " models/items/backpack/backpack.mdl " ,
materializesound = " Item.Materialize " ,
touchsound = " Backpack.Touch " ,
touchflags = { AllowFlags.kOnlyPlayers , AllowFlags.kRed } } )
-----------------------------------------------------------------------------
-- Locations
-- Switched all "Left"/"Right" so that it's from defenders pov so it makes sense to say "INCOMING RIGHT RAMP"/etc (caesium)
-----------------------------------------------------------------------------
location_midmap = location_info : new ( { text = " Midmap " , team = Team.kUnassigned } )
location_water = location_info : new ( { text = " Water " , team = Team.kUnassigned } )
location_blue_bments = location_info : new ( { text = " Battlements " , team = Team.kBlue } )
location_red_bments = location_info : new ( { text = " Battlements " , team = Team.kRed } )
location_blue_balcony = location_info : new ( { text = " Balcony " , team = Team.kBlue } )
location_red_balcony = location_info : new ( { text = " Balcony " , team = Team.kRed } )
location_blue_frontdoor = location_info : new ( { text = " Front Door " , team = Team.kBlue } )
location_red_frontdoor = location_info : new ( { text = " Front Door " , team = Team.kRed } )
location_blue_frontdoor_ramp = location_info : new ( { text = " Front Door Ramp " , team = Team.kBlue } )
location_red_frontdoor_ramp = location_info : new ( { text = " Front Door Ramp " , team = Team.kRed } )
location_blue_midramps = location_info : new ( { text = " Mid Ramps " , team = Team.kBlue } )
location_red_midramps = location_info : new ( { text = " Mid Ramps " , team = Team.kRed } )
location_blue_midramps_left = location_info : new ( { text = " Right Ramp " , team = Team.kBlue } )
location_red_midramps_left = location_info : new ( { text = " Right Ramp " , team = Team.kRed } )
location_blue_midramps_right = location_info : new ( { text = " Left Ramp " , team = Team.kBlue } )
location_red_midramps_right = location_info : new ( { text = " Left Ramp " , team = Team.kRed } )
location_blue_flagroom = location_info : new ( { text = " Flag Room " , team = Team.kBlue } )
location_red_flagroom = location_info : new ( { text = " Flag Room " , team = Team.kRed } )
location_blue_sniperdeck = location_info : new ( { text = " Sniper Deck " , team = Team.kBlue } )
location_red_sniperdeck = location_info : new ( { text = " Sniper Deck " , team = Team.kRed } )
location_blue_ramproom = location_info : new ( { text = " Main Room " , team = Team.kBlue } )
location_red_ramproom = location_info : new ( { text = " Main Room " , team = Team.kRed } )
location_blue_lower = location_info : new ( { text = " Lower Level " , team = Team.kBlue } )
location_red_lower = location_info : new ( { text = " Lower Level " , team = Team.kRed } )
location_blue_upper = location_info : new ( { text = " Upper Level " , team = Team.kBlue } )
location_red_upper = location_info : new ( { text = " Upper Level " , team = Team.kRed } )
location_blue_airlift = location_info : new ( { text = " Air Lift " , team = Team.kBlue } )
location_red_airlift = location_info : new ( { text = " Air Lift " , team = Team.kRed } )
location_blue_lowerladder = location_info : new ( { text = " Lower Ladder to Ramp Room " , team = Team.kBlue } )
location_red_lowerladder = location_info : new ( { text = " Lower Ladder to Ramp Room " , team = Team.kRed } )
location_blue_rightcorridoor = location_info : new ( { text = " Left Corridor " , team = Team.kBlue } )
location_red_rightcorridoor = location_info : new ( { text = " Left Corridor " , team = Team.kRed } )
location_blue_leftcorridoor = location_info : new ( { text = " Right Corridor " , team = Team.kBlue } )
location_red_leftcorridoor = location_info : new ( { text = " Right Corridor " , team = Team.kRed } )
location_blue_rightresupply = location_info : new ( { text = " Left Respawn " , team = Team.kBlue } )
location_red_rightresupply = location_info : new ( { text = " Left Respawn " , team = Team.kRed } )
location_blue_leftresupply = location_info : new ( { text = " Right Respawn " , team = Team.kBlue } )
location_red_leftresupply = location_info : new ( { text = " Right Respawn " , team = Team.kRed } )
location_blue_leftspawn = location_info : new ( { text = " Left Respawn " , team = Team.kBlue } )
location_red_leftspawn = location_info : new ( { text = " Left Respawn " , team = Team.kRed } )
location_blue_secret = location_info : new ( { text = " Secret Passage " , team = Team.kBlue } )
location_red_secret = location_info : new ( { text = " Secret Passage " , team = Team.kRed } )
location_blue_flagroom_passage = location_info : new ( { text = " Flagroom Hole Access Passage " , team = Team.kBlue } )
location_red_flagroom_passage = location_info : new ( { text = " Flagroom Hole Access Passage " , team = Team.kRed } )
location_blue_flagroom_ramp = location_info : new ( { text = " Flag Room Ramp " , team = Team.kBlue } )
location_red_flagroom_ramp = location_info : new ( { text = " Flag Room Ramp " , team = Team.kRed } )
location_blue_water_entry = location_info : new ( { text = " Water Entrance " , team = Team.kBlue } )
location_red_water_entry = location_info : new ( { text = " Water Entrance " , team = Team.kRed } )
location_blue_water_exit = location_info : new ( { text = " Water Exit " , team = Team.kBlue } )
location_red_water_exit = location_info : new ( { text = " Water Exit " , team = Team.kRed } )
location_blue_water_access = location_info : new ( { text = " Water Access " , team = Team.kBlue } )
location_red_water_access = location_info : new ( { text = " Water Access " , team = Team.kRed } )
-----------------------------------------------------------------------------
-- spawn
-----------------------------------------------------------------------------
function player_spawn ( player_entity )
local player = CastToPlayer ( player_entity )
player : AddHealth ( 400 )
player : AddArmor ( 400 )
player : AddAmmo ( Ammo.kNails , 400 )
player : AddAmmo ( Ammo.kShells , 400 )
player : AddAmmo ( Ammo.kRockets , 400 )
player : AddAmmo ( Ammo.kCells , 400 )
-- end of default player_spawn
player : RemoveAmmo ( Ammo.kManCannon , 1 )
end
-----------------------------------------------------------------------------
-- Respawns
-----------------------------------------------------------------------------
spawn_red_offence = function ( self , player )
return ( ( player : GetTeamId ( ) == Team.kRed )
and ( ( player : GetClass ( ) == Player.kScout )
or ( player : GetClass ( ) == Player.kMedic )
or ( player : GetClass ( ) == Player.kSpy ) ) )
end
spawn_red_defence = function ( self , player )
return ( ( player : GetTeamId ( ) == Team.kRed )
and ( ( ( player : GetClass ( ) == Player.kScout ) == false )
and ( ( player : GetClass ( ) == Player.kMedic ) == false )
and ( ( player : GetClass ( ) == Player.kSpy ) == false ) ) )
end
spawn_blue_offence = function ( self , player )
return ( ( player : GetTeamId ( ) == Team.kBlue )
and ( ( player : GetClass ( ) == Player.kScout )
or ( player : GetClass ( ) == Player.kMedic )
or ( player : GetClass ( ) == Player.kSpy ) ) )
end
spawn_blue_defence = function ( self , player )
return ( ( player : GetTeamId ( ) == Team.kBlue )
and ( ( ( player : GetClass ( ) == Player.kScout ) == false )
and ( ( player : GetClass ( ) == Player.kMedic ) == false )
and ( ( player : GetClass ( ) == Player.kSpy ) == false ) ) )
end
bluespawn_offence = { validspawn = spawn_blue_offence }
bluespawn_defence = { validspawn = spawn_blue_defence }
redspawn_offence = { validspawn = spawn_red_offence }
redspawn_defence = { validspawn = spawn_red_defence }
-----------------------------------------------------------------------------
-- Basecap (no mancannon)
-----------------------------------------------------------------------------
bases_cap = basecap : new ( {
mancannons = 0 ,
} )
-- red cap point
red_cap = bases_cap : new ( { team = Team.kRed ,
item = { " blue_flag " , " yellow_flag " , " green_flag " } } )
-- blue cap point
blue_cap = bases_cap : new ( { team = Team.kBlue ,
item = { " red_flag " , " yellow_flag " , " green_flag " } } )