mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
Desinning the past step by step (#10308)
This commit is contained in:
@@ -12875,10 +12875,6 @@
|
||||
/obj/item/gun/projectile/automatic/sts35,
|
||||
/turf/simulated/shuttle/floor/voidcraft/light,
|
||||
/area/space)
|
||||
"iIq" = (
|
||||
/obj/effect/ctrigger,
|
||||
/turf/simulated/floor/outdoors/dirt,
|
||||
/area/space)
|
||||
"iIv" = (
|
||||
/obj/structure/artilleryplaceholder{
|
||||
icon_state = "33"
|
||||
@@ -17978,10 +17974,6 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/techmaint,
|
||||
/area/space)
|
||||
"mfO" = (
|
||||
/obj/effect/ctrigger,
|
||||
/turf/template_noop,
|
||||
/area/space)
|
||||
"mfQ" = (
|
||||
/obj/machinery/shower{
|
||||
dir = 4
|
||||
@@ -40769,7 +40761,7 @@ cmZ
|
||||
sRR
|
||||
plK
|
||||
mYY
|
||||
iIq
|
||||
mYY
|
||||
imH
|
||||
mYY
|
||||
mYY
|
||||
@@ -43858,7 +43850,7 @@ nwG
|
||||
nwG
|
||||
dmw
|
||||
nwG
|
||||
mfO
|
||||
nwG
|
||||
nwG
|
||||
nwG
|
||||
cmZ
|
||||
|
||||
@@ -327,7 +327,6 @@
|
||||
JOB_CLOWN = /datum/alt_title/clown, JOB_ALT_JESTER = /datum/alt_title/clown/jester,JOB_ALT_FOOL = /datum/alt_title/clown/fool,
|
||||
JOB_MIME= /datum/alt_title/mime,JOB_ALT_PASEUR= /datum/alt_title/mime/poseur, //CHOMPEDIT: Adding clown + mime and their alts as alts of entertainer
|
||||
JOB_ALT_ARTIST = /datum/alt_title/artist, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitnessinstructor, JOB_ALT_GAME_MASTER = /datum/alt_title/game_master)
|
||||
|
||||
// Entertainer Alt Titles
|
||||
/datum/alt_title/actor
|
||||
title = JOB_ALT_ACTOR
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
/datum/job/entertainer
|
||||
alt_titles = list(JOB_ALT_PERFORMER = /datum/alt_title/performer, JOB_ALT_MUSICIAN = /datum/alt_title/musician, JOB_ALT_STAGEHAND = /datum/alt_title/stagehand,
|
||||
JOB_ALT_ACTOR = /datum/alt_title/actor, JOB_ALT_DANCER = /datum/alt_title/dancer, JOB_ALT_SINGER = /datum/alt_title/singer,
|
||||
JOB_ALT_MAGICIAN = /datum/alt_title/magician, JOB_ALT_COMEDIAN = /datum/alt_title/comedian, JOB_ALT_TRAGEDIAN = /datum/alt_title/tragedian,
|
||||
JOB_CLOWN = /datum/alt_title/clown, JOB_ALT_JESTER = /datum/alt_title/clown/jester,JOB_ALT_FOOL = /datum/alt_title/clown/fool,
|
||||
JOB_MIME= /datum/alt_title/mime,JOB_ALT_PASEUR= /datum/alt_title/mime/poseur, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitness) //CHOMPEDIT: Adding clown + mime and their alts as alts of entertainer, as well as fitness instructor
|
||||
|
||||
/datum/alt_title/fitness
|
||||
title = JOB_ALT_FITNESS_INSTRUCTOR
|
||||
title_blurb = "A " + JOB_ALT_FITNESS_INSTRUCTOR + "'s goal is to keep the station in shape. Get the crew shaving up those built up pounds and get them to eat something other than chocolate bars and burgers for once"
|
||||
|
||||
//Below, well sort off, these are the clown and mime returning! as entertainer alts
|
||||
//They even get their respective outfits.
|
||||
/datum/alt_title/clown
|
||||
title = JOB_CLOWN
|
||||
title_blurb = "A " + JOB_CLOWN + " is there to entertain the crew and keep high morale using various harmless pranks and ridiculous jokes!"
|
||||
title_outfit = /decl/hierarchy/outfit/job/clown
|
||||
|
||||
/datum/alt_title/clown/jester
|
||||
title = JOB_ALT_JESTER
|
||||
|
||||
/datum/alt_title/clown/fool
|
||||
title = JOB_ALT_FOOL
|
||||
|
||||
/datum/alt_title/mime
|
||||
title = JOB_MIME
|
||||
title_blurb = "A " + JOB_MIME + " is there to entertain the crew and keep high morale using unbelievable performances and acting skills!"
|
||||
title_outfit = /decl/hierarchy/outfit/job/mime
|
||||
|
||||
/datum/alt_title/mime/poseur
|
||||
title = JOB_ALT_PASEUR
|
||||
@@ -1,91 +0,0 @@
|
||||
/obj/effect/ctrigger
|
||||
name = "Step Trigger"
|
||||
icon = null
|
||||
anchored = 1
|
||||
invisibility = INVISIBILITY_OBSERVER
|
||||
density = 0
|
||||
var/list/potential_triggerers = list() //What can set off our trigger?
|
||||
var/list/trig_target_paths = list() //What are the paths of whatever we want to call our proc on?
|
||||
var/trig_target_trigger_uid //What is the trigger_uid of whatever we want to call our proc on?
|
||||
var/trig_proc //What proc do we want to call?
|
||||
var/list/trig_args = list() //What are the arguments for said proc?
|
||||
var/trig_message //Should we send a message to the person who stepped here?
|
||||
var/message_span_class = "notice" //If we're gonna send them a message, what span class to use?
|
||||
var/trig_single_use = FALSE //Is this only a single use trigger, or can it be used multiple times?
|
||||
var/has_been_used = FALSE //Has this trigger been set off yet?
|
||||
var/list/trig_targets = list() //This is set automatically if the other target vars are set.
|
||||
var/list/been_triggered_by = list() //Who has set this off so far?
|
||||
var/trig_single_use_per_triggerer = FALSE //Do we want to make so each atom can only trigger this once?
|
||||
var/trig_target_is_trigerrer = FALSE //Do we want to use the atom that trigerred us as the target?
|
||||
|
||||
/obj/effect/ctrigger/proc/can_use_trigger(atom/movable/mover)
|
||||
if(trig_single_use && has_been_used)
|
||||
return FALSE
|
||||
if(trig_single_use_per_triggerer && (mover in been_triggered_by))
|
||||
return FALSE
|
||||
if(!potential_triggerers.len)
|
||||
return TRUE
|
||||
else
|
||||
for(var/path in potential_triggerers)
|
||||
if(istype(mover,text2path(trim(path))))
|
||||
return TRUE
|
||||
else
|
||||
continue
|
||||
return FALSE
|
||||
|
||||
/obj/effect/ctrigger/Crossed(atom/movable/mover)
|
||||
. = ..()
|
||||
if(can_use_trigger(mover))
|
||||
if(trig_proc)
|
||||
if(trig_target_is_trigerrer)
|
||||
trig_targets = list(mover)
|
||||
if(trig_targets.len)
|
||||
var/testname = trig_proc
|
||||
//Find one of the 3 possible ways they could have written /proc/PROCNAME
|
||||
if(findtext(trig_proc, "/proc/"))
|
||||
testname = replacetext(trig_proc, "/proc/", "")
|
||||
else if(findtext(trig_proc, "/proc"))
|
||||
testname = replacetext(trig_proc, "/proc", "")
|
||||
else if(findtext(trig_proc, "proc/"))
|
||||
testname = replacetext(trig_proc, "proc/", "")
|
||||
//Clear out any parenthesis if they're a dummy
|
||||
testname = replacetext(testname, "()", "")
|
||||
for(var/trig_target in trig_targets)
|
||||
if(trig_target && !hascall(trig_target,testname))
|
||||
message_admins("TRIGGER ERROR: ONE OR MORE TRIGGER TARGETS LACKS THE MENTIONED PROC")
|
||||
return
|
||||
for(var/trig_target in trig_targets)
|
||||
call(trig_target,testname)(arglist(trig_args))
|
||||
else
|
||||
var/procpath = text2path(trig_proc)
|
||||
if(!procpath)
|
||||
message_admins("TRIGGER ERROR: INVALID PROC")
|
||||
return
|
||||
call(procpath)(arglist(trig_args))
|
||||
if(trig_message)
|
||||
to_chat(mover,"<span class='[message_span_class]'>"+trig_message+"</span>")
|
||||
has_been_used = TRUE
|
||||
been_triggered_by |= mover
|
||||
else
|
||||
return
|
||||
|
||||
/obj/effect/ctrigger/proc/update_trig_targets()
|
||||
trig_targets = list()
|
||||
for(var/path in trig_target_paths)
|
||||
var/trig_target_path = text2path(path)
|
||||
if(trig_target_path && trig_target_trigger_uid)
|
||||
var/list/candidates = get_all_of_type(trig_target_path)
|
||||
for(var/candidate in candidates)
|
||||
var/datum/cand_datum = candidate
|
||||
if(istype(cand_datum))
|
||||
if(cand_datum.trigger_uid == trig_target_trigger_uid)
|
||||
trig_targets += candidate
|
||||
continue
|
||||
continue
|
||||
if(!trig_targets.len)
|
||||
message_admins("TRIGGER ERROR: trig_targets STILL EMPTY AFTER CALLED update_trig_targets()")
|
||||
|
||||
/obj/effect/ctrigger/Initialize(mapload)
|
||||
. = ..()
|
||||
if(trig_target_paths.len)
|
||||
update_trig_targets()
|
||||
@@ -1,231 +0,0 @@
|
||||
/obj/kbutton
|
||||
name = "button"
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "launcherbtt"
|
||||
desc = "A remote control switch for something."
|
||||
anchored = 1.0
|
||||
var/nothing_sound_file //Sound to play when button fails to be pressed
|
||||
var/nothing_sound_volume //Volume of sound when button fails to be pressed
|
||||
var/pressed_sound_file = 'sound/machines/button.ogg'//Sound to play when button is successfully pressed
|
||||
var/pressed_sound_volume = 100 //Volume of sound when button is successfully pressed
|
||||
var/list/trig_target_paths = list() //What are the paths of whatever we want to call our proc on?
|
||||
var/trig_target_trigger_uid //What is the trigger_uid of whatever we want to call our proc on?
|
||||
var/trig_proc //What proc do we want to call?
|
||||
var/list/trig_args = list() //What are the arguments for said proc?
|
||||
var/trig_message = "You press the button" //Should we send a message to the person who pressed the button?
|
||||
var/trig_message_span_class = "notice" //Span class used for pressed message, normal ones include notice, warning, and danger.
|
||||
var/nothing_message = "Nothing happens." //Should we send a message if nothing happens when the button is pressed?
|
||||
var/nothing_message_span_class = "warning" //Span class used for nothing message, normal ones include notice, warning, and danger.
|
||||
var/list/trig_targets = list()
|
||||
var/trig_target_is_trigerrer = FALSE //Should we use the button presser as the target?
|
||||
|
||||
/obj/kbutton/attackby(obj/item/W, mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/kbutton/attack_hand(mob/user as mob)
|
||||
. = ..()
|
||||
if(can_press(user))
|
||||
if(trig_target_is_trigerrer)
|
||||
trig_targets = list(user)
|
||||
button_trigger()
|
||||
if(pressed_sound_file)
|
||||
playsound(src, pressed_sound_file, pressed_sound_volume, 1)
|
||||
if(trig_message)
|
||||
to_chat(user,"<span class='[trig_message_span_class]'>"+trig_message+"</span>")
|
||||
else
|
||||
if(nothing_sound_file)
|
||||
playsound(src, nothing_sound_file, nothing_sound_volume, 1)
|
||||
if(nothing_message)
|
||||
to_chat(user,"<span class='[nothing_message_span_class]'>"+nothing_message+"</span>")
|
||||
return
|
||||
|
||||
/obj/kbutton/proc/button_trigger()
|
||||
if(trig_proc)
|
||||
if(trig_targets.len)
|
||||
var/testname = trig_proc
|
||||
//Find one of the 3 possible ways they could have written /proc/PROCNAME
|
||||
if(findtext(trig_proc, "/proc/"))
|
||||
testname = replacetext(trig_proc, "/proc/", "")
|
||||
else if(findtext(trig_proc, "/proc"))
|
||||
testname = replacetext(trig_proc, "/proc", "")
|
||||
else if(findtext(trig_proc, "proc/"))
|
||||
testname = replacetext(trig_proc, "proc/", "")
|
||||
//Clear out any parenthesis if they're a dummy
|
||||
testname = replacetext(testname, "()", "")
|
||||
for(var/trig_target in trig_targets)
|
||||
if(trig_target && !hascall(trig_target,testname))
|
||||
message_admins("TRIGGER ERROR: ONE OR MORE TRIGGER TARGETS LACKS THE MENTIONED PROC")
|
||||
return
|
||||
for(var/trig_target in trig_targets)
|
||||
call(trig_target,testname)(arglist(trig_args))
|
||||
else
|
||||
var/procpath = text2path(trig_proc)
|
||||
if(!procpath)
|
||||
message_admins("TRIGGER ERROR: INVALID PROC")
|
||||
return
|
||||
call(procpath)(arglist(trig_args))
|
||||
|
||||
/obj/kbutton/proc/can_press(mob/user)
|
||||
return TRUE
|
||||
|
||||
/obj/kbutton/proc/update_trig_targets()
|
||||
trig_targets = list()
|
||||
for(var/path in trig_target_paths)
|
||||
var/trig_target_path = text2path(path)
|
||||
if(trig_target_path && trig_target_trigger_uid)
|
||||
var/list/candidates = get_all_of_type(trig_target_path)
|
||||
for(var/candidate in candidates)
|
||||
var/datum/cand_datum = candidate
|
||||
if(istype(cand_datum))
|
||||
if(cand_datum.trigger_uid == trig_target_trigger_uid)
|
||||
trig_targets += candidate
|
||||
continue
|
||||
continue
|
||||
if(!trig_targets.len)
|
||||
message_admins("TRIGGER ERROR: trig_targets STILL EMPTY AFTER CALLED update_trig_targets()")
|
||||
|
||||
/obj/kbutton/Initialize(mapload)
|
||||
. = ..()
|
||||
update_trig_targets()
|
||||
return
|
||||
|
||||
/obj/kbutton/single_use
|
||||
name = "single use button"
|
||||
var/has_been_pressed = FALSE
|
||||
|
||||
/obj/kbutton/single_use/button_trigger()
|
||||
has_been_pressed = TRUE
|
||||
..()
|
||||
|
||||
/obj/kbutton/single_use/can_press(mob/user)
|
||||
return !has_been_pressed
|
||||
|
||||
/obj/kbutton/single_use_per_mob
|
||||
name = "button"
|
||||
var/list/been_triggered_by = list()
|
||||
|
||||
/obj/kbutton/single_use_per_mob/can_press(mob/user)
|
||||
if(user in been_triggered_by)
|
||||
return FALSE
|
||||
else
|
||||
been_triggered_by |= user
|
||||
return TRUE
|
||||
|
||||
/obj/kbutton/toggle
|
||||
name = "toggle button"
|
||||
var/toggled = FALSE
|
||||
//For each of the following, each of the following variables will be used when switching to that state,
|
||||
//and if it's set to null, it will use def(short for default)
|
||||
var/trig_message_types = list(\
|
||||
"def" = "You toggle the button.", \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/nothing_message_types = list(\
|
||||
"def" = "Nothing happens.", \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/pressed_sound_file_types = list(\
|
||||
"def" = 'sound/machines/button.ogg', \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/pressed_sound_volume_types = list(\
|
||||
"def" = 100, \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/nothing_sound_file_types = list(\
|
||||
"def" = null, \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/nothing_sound_volume_types = list(\
|
||||
"def" = null, \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/icon_types = list(\
|
||||
"def" = 'icons/obj/objects.dmi', \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/icon_state_types = list(\
|
||||
"def" = "launcherbtt", \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/trig_proc_types = list(\
|
||||
"def" = null, \
|
||||
"on" = null, \
|
||||
"off" = null)
|
||||
var/trig_args_types = list(\
|
||||
"def" = list(), \
|
||||
"on" = list(), \
|
||||
"off" = list())
|
||||
|
||||
/obj/kbutton/toggle/Initialize(mapload)
|
||||
. = ..()
|
||||
update_variables()
|
||||
|
||||
/obj/kbutton/toggle/proc/update_variables()
|
||||
var/index = toggled ? "on" : "off"
|
||||
trig_message = trig_message_types[index] ? trig_message_types[index] : trig_message_types["def"]
|
||||
nothing_message = nothing_message_types[index] ? nothing_message_types[index] : nothing_message_types["def"]
|
||||
pressed_sound_file = pressed_sound_file_types[index] ? pressed_sound_file_types[index] : pressed_sound_file_types["def"]
|
||||
pressed_sound_volume = pressed_sound_volume_types[index] ? pressed_sound_volume_types[index] : pressed_sound_volume_types["def"]
|
||||
nothing_sound_file = nothing_sound_file_types[index] ? nothing_sound_file_types[index] : nothing_sound_file_types["def"]
|
||||
nothing_sound_volume = nothing_sound_volume_types[index] ? nothing_sound_volume_types[index] : nothing_sound_volume_types["def"]
|
||||
icon = icon_types[index] ? icon_types[index] : icon_types["def"]
|
||||
icon_state = icon_state_types[index] ? icon_state_types[index] : icon_state_types["def"]
|
||||
trig_proc = trig_proc_types[index] ? trig_proc_types[index] : trig_proc_types["def"]
|
||||
var/list/trig_arg_type = trig_args_types[index]
|
||||
trig_args = (istype(trig_arg_type) && trig_arg_type.len) ? trig_args_types[index] : trig_args_types["def"]
|
||||
|
||||
/obj/kbutton/toggle/button_trigger()
|
||||
toggled = !toggled
|
||||
update_variables()
|
||||
..()
|
||||
//An example button which opens and closes a closet.
|
||||
/obj/kbutton/toggle/example
|
||||
var/press_wait_time = 25
|
||||
var/last_pressed = 0
|
||||
|
||||
trig_target_paths = list("/obj/structure/closet")
|
||||
trig_target_trigger_uid = 97482
|
||||
|
||||
trig_message_types = list(\
|
||||
"def" = "You toggle the button.", \
|
||||
"on" = "You switch the button on.", \
|
||||
"off" = "You switch the button off.")
|
||||
nothing_message_types = list(\
|
||||
"def" = "Nothing happens.", \
|
||||
"on" = "You fail to switch the button off.", \
|
||||
"off" = "You fail to switch the button on.")
|
||||
pressed_sound_file_types = list(\
|
||||
"def" = 'sound/machines/button.ogg', \
|
||||
"on" = 'sound/machines/chime.ogg', \
|
||||
"off" = 'sound/machines/buttonbeep.ogg')
|
||||
pressed_sound_volume_types = list(\
|
||||
"def" = 80, \
|
||||
"on" = 80, \
|
||||
"off" = 80)
|
||||
nothing_sound_file_types = list(\
|
||||
"def" = 'sound/machines/buzz-sigh.ogg', \
|
||||
"on" = 'sound/machines/buzz-sigh.ogg', \
|
||||
"off" = 'sound/machines/buzz-two.ogg')
|
||||
nothing_sound_volume_types = list(\
|
||||
"def" = 100, \
|
||||
"on" = 100, \
|
||||
"off" = 100)
|
||||
icon_state_types = list(\
|
||||
"def" = "launcherbtt", \
|
||||
"on" = "launcheract", \
|
||||
"off" = "launcherbtt")
|
||||
trig_proc_types = list(\
|
||||
"def" = "close", \
|
||||
"on" = "open", \
|
||||
"off" = "close")
|
||||
|
||||
/obj/kbutton/toggle/example/can_press(mob/user)
|
||||
if(world.time > last_pressed + press_wait_time)
|
||||
last_pressed = world.time
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
//Corresponding closet for example button
|
||||
/obj/structure/closet/button_example
|
||||
trigger_uid = 97482
|
||||
20
modular_chomp/code/game/jobs/job/entertainer_alts.dm
Normal file
20
modular_chomp/code/game/jobs/job/entertainer_alts.dm
Normal file
@@ -0,0 +1,20 @@
|
||||
//Below, well sort off, these are the clown and mime returning! as entertainer alts
|
||||
//They even get their respective outfits.
|
||||
/datum/alt_title/clown
|
||||
title = JOB_CLOWN
|
||||
title_blurb = "A " + JOB_CLOWN + " is there to entertain the crew and keep high morale using various harmless pranks and ridiculous jokes!"
|
||||
title_outfit = /decl/hierarchy/outfit/job/clown
|
||||
|
||||
/datum/alt_title/clown/jester
|
||||
title = JOB_ALT_JESTER
|
||||
|
||||
/datum/alt_title/clown/fool
|
||||
title = JOB_ALT_FOOL
|
||||
|
||||
/datum/alt_title/mime
|
||||
title = JOB_MIME
|
||||
title_blurb = "A " + JOB_MIME + " is there to entertain the crew and keep high morale using unbelievable performances and acting skills!"
|
||||
title_outfit = /decl/hierarchy/outfit/job/mime
|
||||
|
||||
/datum/alt_title/mime/poseur
|
||||
title = JOB_ALT_PASEUR
|
||||
@@ -61,4 +61,4 @@
|
||||
|
||||
/mob/living/silicon/robot/drone/min
|
||||
name = "mining drone"
|
||||
law_type = /datum/ai_laws/mining_drone
|
||||
law_type = /datum/ai_laws/mining_drone
|
||||
@@ -1,3 +1,5 @@
|
||||
GLOBAL_LIST_EMPTY(simple_portals)
|
||||
|
||||
/obj/effect/simple_portal
|
||||
name = "Portal"
|
||||
desc = "It looks like a portal that leads to somewhere, although you can't quite see through it."
|
||||
@@ -9,6 +11,20 @@
|
||||
var/atom/destination
|
||||
var/teleport_sound = 'sound/effects/portal_effect.ogg'
|
||||
|
||||
/obj/effect/simple_portal/Initialize(mapload)
|
||||
..()
|
||||
GLOB.simple_portals += src
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/effect/simple_portal/linked/LateInitialize()
|
||||
. = ..()
|
||||
if(portal_id)
|
||||
link_portal()
|
||||
|
||||
/obj/effect/simple_portal/Destroy()
|
||||
. = ..()
|
||||
GLOB.simple_portals -= src
|
||||
|
||||
/obj/effect/simple_portal/Bumped(atom/movable/AM)
|
||||
. = ..()
|
||||
handle_teleport(AM)
|
||||
@@ -43,7 +59,7 @@
|
||||
icon_state = "portal1"
|
||||
var/obj/effect/simple_portal/linked/linked_portal
|
||||
var/portal_id
|
||||
|
||||
|
||||
/obj/effect/simple_portal/linked/handle_teleport(atom/movable/AM)
|
||||
destination = null
|
||||
update_icon()
|
||||
@@ -69,7 +85,7 @@
|
||||
if(valid_destination(destination))
|
||||
break
|
||||
. = ..()
|
||||
|
||||
|
||||
/obj/effect/simple_portal/linked/proc/valid_destination(var/turf/dest,var/atom/movable/AM)
|
||||
if(!dest)
|
||||
return FALSE
|
||||
@@ -98,8 +114,7 @@
|
||||
/obj/effect/simple_portal/linked/proc/link_portal()
|
||||
if(!portal_id)
|
||||
return "SET PORTAL ID FIRST"
|
||||
var/list/candidates = get_all_of_type(/obj/effect/simple_portal/linked)
|
||||
for(var/obj/effect/simple_portal/linked/candidate in candidates)
|
||||
for(var/obj/effect/simple_portal/linked/candidate in GLOB.simple_portals)
|
||||
if(istype(candidate) && portal_id == candidate.portal_id && candidate != src)
|
||||
linked_portal = candidate
|
||||
break
|
||||
@@ -110,8 +125,3 @@
|
||||
icon_state = "portal"
|
||||
else
|
||||
icon_state = "portal1"
|
||||
|
||||
/obj/effect/simple_portal/linked/Initialize()
|
||||
. = ..()
|
||||
if(portal_id)
|
||||
link_portal()
|
||||
@@ -1005,7 +1005,6 @@
|
||||
#include "code\game\jobs\job\security.dm"
|
||||
#include "code\game\jobs\job\silicon.dm"
|
||||
#include "code\game\jobs\job\special.dm"
|
||||
#include "code\game\jobs\job\zz_alt_titles_ch.dm"
|
||||
#include "code\game\machinery\adv_med.dm"
|
||||
#include "code\game\machinery\adv_med_vr.dm"
|
||||
#include "code\game\machinery\ai_slipper.dm"
|
||||
@@ -1305,7 +1304,6 @@
|
||||
#include "code\game\objects\explosion_recursive.dm"
|
||||
#include "code\game\objects\items.dm"
|
||||
#include "code\game\objects\items_vr.dm"
|
||||
#include "code\game\objects\kasscbuttons_ch.dm"
|
||||
#include "code\game\objects\mail.dm"
|
||||
#include "code\game\objects\micro_event.dm"
|
||||
#include "code\game\objects\micro_structures.dm"
|
||||
@@ -1343,8 +1341,6 @@
|
||||
#include "code\game\objects\effects\step_triggers.dm"
|
||||
#include "code\game\objects\effects\wire_deleter.dm"
|
||||
#include "code\game\objects\effects\zone_divider.dm"
|
||||
#include "code\game\objects\effects\zz_portals_ch.dm"
|
||||
#include "code\game\objects\effects\zz_triggers_ch.dm"
|
||||
#include "code\game\objects\effects\alien\aliens.dm"
|
||||
#include "code\game\objects\effects\chem\chemsmoke.dm"
|
||||
#include "code\game\objects\effects\chem\coating.dm"
|
||||
@@ -3417,7 +3413,6 @@
|
||||
#include "code\modules\mob\living\silicon\robot\drone\swarm.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\drone\swarm_abilities.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\drone\swarm_items.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\drone\zzz_unify_drone.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_modules\__Widerobot_Misc_Tools_ch.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_modules\event.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_modules\station.dm"
|
||||
@@ -4808,6 +4803,7 @@
|
||||
#include "modular_chomp\code\game\jobs\job\captain.dm"
|
||||
#include "modular_chomp\code\game\jobs\job\department.dm"
|
||||
#include "modular_chomp\code\game\jobs\job\engineering.dm"
|
||||
#include "modular_chomp\code\game\jobs\job\entertainer_alts.dm"
|
||||
#include "modular_chomp\code\game\jobs\job\medical.dm"
|
||||
#include "modular_chomp\code\game\jobs\job\noncrew.dm"
|
||||
#include "modular_chomp\code\game\jobs\job\security.dm"
|
||||
@@ -4978,6 +4974,7 @@
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\positive.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\trait_mods.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\xenomorph_hybrid_trait.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\silicon\drone\unify_drone.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\robot.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\silicon\robot\robot_movement.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\simple_animal\aliens\synx.dm"
|
||||
@@ -5135,6 +5132,7 @@
|
||||
#include "modular_chomp\code\ZAS\Fire.dm"
|
||||
#include "modular_chomp\code\ZAS\Fire_acts.dm"
|
||||
#include "modular_chomp\datums\tgs_event_handler.dm"
|
||||
#include "modular_chomp\game\effects\simple_portals.dm"
|
||||
#include "modular_chomp\game\effects\spawner.dm"
|
||||
#include "modular_chomp\game\machinery\bluespace_denier.dm"
|
||||
#include "modular_chomp\game\machinery\buttons.dm"
|
||||
|
||||
Reference in New Issue
Block a user