fortressforever-scripts/maps/ff_genesis.lua

141 lines
5.6 KiB
Lua

-----------------------------------------------------------------------------
-- includes
-----------------------------------------------------------------------------
IncludeScript("base_adzone")
IncludeScript("base_location")
IncludeScript("base_respawnturret")
-----------------------------------------------------------------------------
-- global overrides that you can do what you want with
-----------------------------------------------------------------------------
ZONE_COLOR = "green"
USE_ZONE_AREA = true
NUM_DEFENDER_ONLY_PACKS = 3
-----------------------------------------------------------------------------
-- Zone-controlling outputs
-----------------------------------------------------------------------------
function zone_on_outputs()
-- outputs
OutputEvent( "alarm1", "PlaySound" )
OutputEvent( "light1", "TurnOn" )
OutputEvent( "spot1", "LightOn" )
OutputEvent( "rotate1", "Start" )
OutputEvent( "rotate2", "Start" )
OutputEvent( "Tesla1", "DoSpark" )
end
function zone_off_outputs()
OutputEvent( "alarm1", "StopSound" )
OutputEvent( "light1", "TurnOff" )
OutputEvent( "spot1", "LightOff" )
OutputEvent( "rotate1", "Stop" )
OutputEvent( "rotate2", "Stop" )
end
function openstartdoor()
-- unlock them doors
attacker_door_trigger2 = id_door:new({ team = attackers, door = "attacker_door2" })
attacker_door_trigger3 = id_door:new({ team = attackers, door = "attacker_door3" })
-- open the first door
OutputEvent( "attacker_door2", "Open" )
OutputEvent( "attacker_door3", "Open" )
end
function onswitch()
-- reset doors to open for the right team
attacker_door_trigger1 = id_door:new({ team = attackers, door = "attacker_door1" })
attacker_door_trigger4 = id_door:new({ team = attackers, door = "attacker_door4" })
attacker_door_trigger5 = id_door:new({ team = attackers, door = "attacker_door5" })
attacker_door_trigger6 = id_door:new({ team = attackers, door = "attacker_door6" })
defender_door_trigger1 = id_door:new({ team = defenders, door = "defender_door1" })
defender_door_trigger2 = id_door:new({ team = defenders, door = "defender_door2" })
-- lock them doors
attacker_door_trigger2 = id_door:new({ team = Team.kUnassigned, door = "attacker_door2" })
attacker_door_trigger3 = id_door:new({ team = Team.kUnassigned, door = "attacker_door3" })
end
function onswitch_bluetodef()
-- switch the lights
OutputEvent( "defender_light1", "TurnOff" )
OutputEvent( "defender_spotlight1", "LightOff" )
OutputEvent( "defender_light2", "TurnOn" )
OutputEvent( "defender_spotlight2", "LightOn" )
end
function onswitch_redtodef()
-- switch the lights
OutputEvent( "defender_light1", "TurnOn" )
OutputEvent( "defender_spotlight1", "LightOn" )
OutputEvent( "defender_light2", "TurnOff" )
OutputEvent( "defender_spotlight2", "LightOff" )
end
------------------------------------------------------------------
--Resup Doors
------------------------------------------------------------------
neutral_door_trigger1 = trigger_ff_script:new({})
function neutral_door_trigger1:ontouch( trigger_entity )
OutputEvent( "neutral_door1", "Open" )
end
id_door = trigger_ff_script:new({ team = Team.kUnassigned, door = nil })
function id_door:allowed( touch_entity )
if IsPlayer( touch_entity ) then
local player = CastToPlayer( touch_entity )
return player:GetTeamId() == self.team
end
return EVENT_DISALLOWED
end
function id_door:ontrigger( touch_entity )
if IsPlayer( touch_entity ) then
OutputEvent(self.door, "Open")
end
end
attacker_door_trigger1 = id_door:new({ team = attackers, door = "attacker_door1" })
attacker_door_trigger2 = id_door:new({ team = Team.kUnassigned, door = "attacker_door2" })
attacker_door_trigger3 = id_door:new({ team = Team.kUnassigned, door = "attacker_door3" })
attacker_door_trigger4 = id_door:new({ team = attackers, door = "attacker_door4" })
attacker_door_trigger5 = id_door:new({ team = attackers, door = "attacker_door5" })
attacker_door_trigger6 = id_door:new({ team = attackers, door = "attacker_door6" })
defender_door_trigger1 = id_door:new({ team = defenders, door = "defender_door1" })
defender_door_trigger2 = id_door:new({ team = defenders, door = "defender_door2" })
-----------------------------------------------------------------------------
-- Locations
-----------------------------------------------------------------------------
location_a_spawn = location_info:new({ text = "Attacker's Spawn"})
location_a_spawn2 = location_info:new({ text = "Attacker's Spawn"})
location_a_spawn3 = location_info:new({ text = "Attacker's Gate Room"})
location_a_bottom = location_info:new({ text = "Secondary Attacker Route"})
location_a_bottom2 = location_info:new({ text = "Secondary Attacker Route"})
location_gate = location_info:new({ text = "Attacker's Gate"})
location_lower = location_info:new({ text = "Lower Hallway"})
location_gate_balcony = location_info:new({ text = "Overhanging Defensive Balcony"})
location_side_balcony = location_info:new({ text = "Side Defensive Balcony"})
location_elevator = location_info:new({ text = "Elevator Shaft"})
location_lab = location_info:new({ text = "Center Laboratory"})
location_building = location_info:new({ text = "Defense Building"})
location_main = location_info:new({ text = "Main Area"})
location_main_top = location_info:new({ text = "Top Balcony"})
location_cap = location_info:new({ text = "Capture Area"})
location_d_spawn = location_info:new({ text = "Defense Spawn"})