mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-16 12:07:48 +00:00
/obj/effect/ex_act had several different re-definitions to make it a noop. The original definition would randomly delete it, which is bad news when a lot of /obj/effects are just that--effects, that shouldn't be blown up. The ones that actually do want to be blown up (like decals) already have their own implementations. The one in place was never ran, and nobody had problems with it.
432 lines
10 KiB
Plaintext
432 lines
10 KiB
Plaintext
/obj/effect/landmark
|
|
name = "landmark"
|
|
icon = 'icons/effects/landmarks_static.dmi'
|
|
icon_state = "x2"
|
|
anchored = TRUE
|
|
layer = MID_LANDMARK_LAYER
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
|
|
|
/obj/effect/landmark/singularity_act()
|
|
return
|
|
|
|
/obj/effect/landmark/singularity_pull()
|
|
return
|
|
|
|
INITIALIZE_IMMEDIATE(/obj/effect/landmark)
|
|
|
|
/obj/effect/landmark/Initialize()
|
|
. = ..()
|
|
GLOB.landmarks_list += src
|
|
|
|
/obj/effect/landmark/Destroy()
|
|
GLOB.landmarks_list -= src
|
|
return ..()
|
|
|
|
/obj/effect/landmark/start
|
|
name = "start"
|
|
icon = 'icons/mob/landmarks.dmi'
|
|
icon_state = "x"
|
|
anchored = TRUE
|
|
layer = MOB_LAYER
|
|
var/jobspawn_override = FALSE
|
|
var/delete_after_roundstart = TRUE
|
|
var/used = FALSE
|
|
|
|
/obj/effect/landmark/start/proc/after_round_start()
|
|
if(delete_after_roundstart)
|
|
qdel(src)
|
|
|
|
/obj/effect/landmark/start/Initialize()
|
|
. = ..()
|
|
GLOB.start_landmarks_list += src
|
|
if(jobspawn_override)
|
|
LAZYADDASSOC(GLOB.jobspawn_overrides, name, src)
|
|
if(name != "start")
|
|
tag = "start*[name]"
|
|
|
|
/obj/effect/landmark/start/Destroy()
|
|
GLOB.start_landmarks_list -= src
|
|
if(jobspawn_override)
|
|
LAZYREMOVEASSOC(GLOB.jobspawn_overrides, name, src)
|
|
return ..()
|
|
|
|
// START LANDMARKS FOLLOW. Don't change the names unless
|
|
// you are refactoring shitty landmark code.
|
|
/obj/effect/landmark/start/assistant
|
|
name = "Assistant"
|
|
icon_state = "Assistant" //icon_state is case sensitive. why are all of these capitalized? because fuck you that's why
|
|
|
|
/obj/effect/landmark/start/assistant/override
|
|
jobspawn_override = TRUE
|
|
delete_after_roundstart = FALSE
|
|
|
|
/obj/effect/landmark/start/prisoner
|
|
name = "Prisoner"
|
|
icon_state = "Prisoner"
|
|
|
|
/obj/effect/landmark/start/janitor
|
|
name = "Janitor"
|
|
icon_state = "Janitor"
|
|
|
|
/obj/effect/landmark/start/cargo_technician
|
|
name = "Cargo Technician"
|
|
icon_state = "Cargo Technician"
|
|
|
|
/obj/effect/landmark/start/bartender
|
|
name = "Bartender"
|
|
icon_state = "Bartender"
|
|
|
|
/obj/effect/landmark/start/clown
|
|
name = "Clown"
|
|
icon_state = "Clown"
|
|
|
|
/obj/effect/landmark/start/mime
|
|
name = "Mime"
|
|
icon_state = "Mime"
|
|
|
|
/obj/effect/landmark/start/quartermaster
|
|
name = "Quartermaster"
|
|
icon_state = "Quartermaster"
|
|
|
|
/obj/effect/landmark/start/atmospheric_technician
|
|
name = "Atmospheric Technician"
|
|
icon_state = "Atmospheric Technician"
|
|
|
|
/obj/effect/landmark/start/cook
|
|
name = "Cook"
|
|
icon_state = "Cook"
|
|
|
|
/obj/effect/landmark/start/shaft_miner
|
|
name = "Shaft Miner"
|
|
icon_state = "Shaft Miner"
|
|
|
|
/obj/effect/landmark/start/security_officer
|
|
name = "Security Officer"
|
|
icon_state = "Security Officer"
|
|
|
|
/obj/effect/landmark/start/botanist
|
|
name = "Botanist"
|
|
icon_state = "Botanist"
|
|
|
|
/obj/effect/landmark/start/head_of_security
|
|
name = "Head of Security"
|
|
icon_state = "Head of Security"
|
|
|
|
/obj/effect/landmark/start/captain
|
|
name = "Captain"
|
|
icon_state = "Captain"
|
|
|
|
/obj/effect/landmark/start/detective
|
|
name = "Detective"
|
|
icon_state = "Detective"
|
|
|
|
/obj/effect/landmark/start/warden
|
|
name = "Warden"
|
|
icon_state = "Warden"
|
|
|
|
/obj/effect/landmark/start/chief_engineer
|
|
name = "Chief Engineer"
|
|
icon_state = "Chief Engineer"
|
|
|
|
/obj/effect/landmark/start/head_of_personnel
|
|
name = "Head of Personnel"
|
|
icon_state = "Head of Personnel"
|
|
|
|
/obj/effect/landmark/start/librarian
|
|
name = "Curator"
|
|
icon_state = "Curator"
|
|
|
|
/obj/effect/landmark/start/lawyer
|
|
name = "Lawyer"
|
|
icon_state = "Lawyer"
|
|
|
|
/obj/effect/landmark/start/station_engineer
|
|
name = "Station Engineer"
|
|
icon_state = "Station Engineer"
|
|
|
|
/obj/effect/landmark/start/medical_doctor
|
|
name = "Medical Doctor"
|
|
icon_state = "Medical Doctor"
|
|
|
|
/obj/effect/landmark/start/paramedic
|
|
name = "Paramedic"
|
|
icon_state = "Paramedic"
|
|
|
|
/obj/effect/landmark/start/scientist
|
|
name = "Scientist"
|
|
icon_state = "Scientist"
|
|
|
|
/obj/effect/landmark/start/chemist
|
|
name = "Chemist"
|
|
icon_state = "Chemist"
|
|
|
|
/obj/effect/landmark/start/roboticist
|
|
name = "Roboticist"
|
|
icon_state = "Roboticist"
|
|
|
|
/obj/effect/landmark/start/research_director
|
|
name = "Research Director"
|
|
icon_state = "Research Director"
|
|
|
|
/obj/effect/landmark/start/geneticist
|
|
name = "Geneticist"
|
|
icon_state = "Geneticist"
|
|
|
|
/obj/effect/landmark/start/chief_medical_officer
|
|
name = "Chief Medical Officer"
|
|
icon_state = "Chief Medical Officer"
|
|
|
|
/obj/effect/landmark/start/virologist
|
|
name = "Virologist"
|
|
icon_state = "Virologist"
|
|
|
|
/obj/effect/landmark/start/psychologist
|
|
name = "Psychologist"
|
|
icon_state = "Psychologist"
|
|
|
|
/obj/effect/landmark/start/chaplain
|
|
name = "Chaplain"
|
|
icon_state = "Chaplain"
|
|
|
|
/obj/effect/landmark/start/cyborg
|
|
name = "Cyborg"
|
|
icon_state = "Cyborg"
|
|
|
|
/obj/effect/landmark/start/ai
|
|
name = "AI"
|
|
icon_state = "AI"
|
|
delete_after_roundstart = FALSE
|
|
var/primary_ai = TRUE
|
|
var/latejoin_active = TRUE
|
|
|
|
/obj/effect/landmark/start/ai/after_round_start()
|
|
if(latejoin_active && !used)
|
|
new /obj/structure/ai_core/latejoin_inactive(loc)
|
|
return ..()
|
|
|
|
/obj/effect/landmark/start/ai/secondary
|
|
icon = 'icons/effects/landmarks_static.dmi'
|
|
icon_state = "ai_spawn"
|
|
primary_ai = FALSE
|
|
latejoin_active = FALSE
|
|
|
|
//Department Security spawns
|
|
|
|
/obj/effect/landmark/start/depsec
|
|
name = "department_sec"
|
|
icon_state = "Security Officer"
|
|
|
|
/obj/effect/landmark/start/depsec/New()
|
|
..()
|
|
GLOB.department_security_spawns += src
|
|
|
|
/obj/effect/landmark/start/depsec/Destroy()
|
|
GLOB.department_security_spawns -= src
|
|
return ..()
|
|
|
|
/obj/effect/landmark/start/depsec/supply
|
|
name = "supply_sec"
|
|
|
|
/obj/effect/landmark/start/depsec/medical
|
|
name = "medical_sec"
|
|
|
|
/obj/effect/landmark/start/depsec/engineering
|
|
name = "engineering_sec"
|
|
|
|
/obj/effect/landmark/start/depsec/science
|
|
name = "science_sec"
|
|
|
|
//Antagonist spawns
|
|
|
|
/obj/effect/landmark/start/wizard
|
|
name = "wizard"
|
|
icon = 'icons/effects/landmarks_static.dmi'
|
|
icon_state = "wiznerd_spawn"
|
|
|
|
/obj/effect/landmark/start/wizard/Initialize()
|
|
..()
|
|
GLOB.wizardstart += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/start/nukeop
|
|
name = "nukeop"
|
|
icon = 'icons/effects/landmarks_static.dmi'
|
|
icon_state = "snukeop_spawn"
|
|
|
|
/obj/effect/landmark/start/nukeop/Initialize()
|
|
..()
|
|
GLOB.nukeop_start += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/start/nukeop_leader
|
|
name = "nukeop leader"
|
|
icon = 'icons/effects/landmarks_static.dmi'
|
|
icon_state = "snukeop_leader_spawn"
|
|
|
|
/obj/effect/landmark/start/nukeop_leader/Initialize()
|
|
..()
|
|
GLOB.nukeop_leader_start += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
// Must be immediate because players will
|
|
// join before SSatom initializes everything.
|
|
INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
|
|
|
/obj/effect/landmark/start/new_player
|
|
name = "New Player"
|
|
|
|
/obj/effect/landmark/start/new_player/Initialize()
|
|
..()
|
|
GLOB.newplayer_start += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/latejoin
|
|
name = "JoinLate"
|
|
|
|
/obj/effect/landmark/latejoin/Initialize(mapload)
|
|
..()
|
|
SSjob.latejoin_trackers += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//space carps, magicarps, lone ops, slaughter demons, possibly revenants spawn here
|
|
/obj/effect/landmark/carpspawn
|
|
name = "carpspawn"
|
|
icon_state = "carp_spawn"
|
|
|
|
//observer start
|
|
/obj/effect/landmark/observer_start
|
|
name = "Observer-Start"
|
|
icon_state = "observer_start"
|
|
|
|
//xenos, morphs and nightmares spawn here
|
|
/obj/effect/landmark/xeno_spawn
|
|
name = "xeno_spawn"
|
|
icon_state = "xeno_spawn"
|
|
|
|
/obj/effect/landmark/xeno_spawn/Initialize(mapload)
|
|
..()
|
|
GLOB.xeno_spawn += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//objects with the stationloving component (nuke disk) respawn here.
|
|
//also blobs that have their spawn forcemoved (running out of time when picking their spawn spot) and santa
|
|
/obj/effect/landmark/blobstart
|
|
name = "blobstart"
|
|
icon_state = "blob_start"
|
|
|
|
/obj/effect/landmark/blobstart/Initialize(mapload)
|
|
..()
|
|
GLOB.blobstart += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//spawns sec equipment lockers depending on the number of sec officers
|
|
/obj/effect/landmark/secequipment
|
|
name = "secequipment"
|
|
icon_state = "secequipment"
|
|
|
|
/obj/effect/landmark/secequipment/Initialize(mapload)
|
|
..()
|
|
GLOB.secequipment += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//players that get put in admin jail show up here
|
|
/obj/effect/landmark/prisonwarp
|
|
name = "prisonwarp"
|
|
icon_state = "prisonwarp"
|
|
|
|
/obj/effect/landmark/prisonwarp/Initialize(mapload)
|
|
..()
|
|
GLOB.prisonwarp += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/ert_spawn
|
|
name = "Emergencyresponseteam"
|
|
icon_state = "ert_spawn"
|
|
|
|
/obj/effect/landmark/ert_spawn/Initialize(mapload)
|
|
..()
|
|
GLOB.emergencyresponseteamspawn += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//ninja energy nets teleport victims here
|
|
/obj/effect/landmark/holding_facility
|
|
name = "Holding Facility"
|
|
icon_state = "holding_facility"
|
|
|
|
/obj/effect/landmark/holding_facility/Initialize(mapload)
|
|
..()
|
|
GLOB.holdingfacility += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdome/observe
|
|
name = "tdomeobserve"
|
|
icon_state = "tdome_observer"
|
|
|
|
/obj/effect/landmark/thunderdome/observe/Initialize(mapload)
|
|
..()
|
|
GLOB.tdomeobserve += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdome/one
|
|
name = "tdome1"
|
|
icon_state = "tdome_t1"
|
|
|
|
/obj/effect/landmark/thunderdome/one/Initialize(mapload)
|
|
..()
|
|
GLOB.tdome1 += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdome/two
|
|
name = "tdome2"
|
|
icon_state = "tdome_t2"
|
|
|
|
/obj/effect/landmark/thunderdome/two/Initialize(mapload)
|
|
..()
|
|
GLOB.tdome2 += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdome/admin
|
|
name = "tdomeadmin"
|
|
icon_state = "tdome_admin"
|
|
|
|
/obj/effect/landmark/thunderdome/admin/Initialize(mapload)
|
|
..()
|
|
GLOB.tdomeadmin += loc
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//generic event spawns
|
|
/obj/effect/landmark/event_spawn
|
|
name = "generic event spawn"
|
|
icon_state = "generic_event"
|
|
layer = HIGH_LANDMARK_LAYER
|
|
|
|
|
|
/obj/effect/landmark/event_spawn/New()
|
|
..()
|
|
GLOB.generic_event_spawns += src
|
|
|
|
/obj/effect/landmark/event_spawn/Destroy()
|
|
GLOB.generic_event_spawns -= src
|
|
return ..()
|
|
|
|
/obj/effect/landmark/ruin
|
|
var/datum/map_template/ruin/ruin_template
|
|
|
|
/obj/effect/landmark/ruin/New(loc, my_ruin_template)
|
|
name = "ruin_[GLOB.ruin_landmarks.len + 1]"
|
|
..(loc)
|
|
ruin_template = my_ruin_template
|
|
GLOB.ruin_landmarks |= src
|
|
|
|
/obj/effect/landmark/ruin/Destroy()
|
|
GLOB.ruin_landmarks -= src
|
|
ruin_template = null
|
|
. = ..()
|
|
|
|
// handled in portals.dm, id connected to one-way portal
|
|
/obj/effect/landmark/portal_exit
|
|
name = "portal exit"
|
|
icon_state = "portal_exit"
|
|
var/id
|