The road to Initialize() stability - Enforcing parent call on New(), Initialize() and Destroy() (#14719)

* The road to Initialize() stability

* Fixes sanity, for now
This commit is contained in:
AffectedArc07
2020-10-28 12:35:36 -04:00
committed by GitHub
parent 997f527f3a
commit 2c37ae8fd0
50 changed files with 102 additions and 59 deletions
+8 -8
View File
@@ -11645,7 +11645,7 @@
pixel_x = -26;
pixel_y = 3
},
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/item/clothing/suit/suspenders,
/turf/simulated/floor/plasteel{
icon_state = "redbluefull"
@@ -12844,7 +12844,7 @@
"aBr" = (
/obj/structure/table/wood,
/obj/item/clothing/shoes/jackboots,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria";
@@ -33813,7 +33813,7 @@
/area/security/main)
"bmP" = (
/obj/structure/rack,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 2;
name = "2maintenance loot spawner"
@@ -99471,8 +99471,8 @@
"dya" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/rack,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/landmark/costume/random,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "neutral"
@@ -100052,8 +100052,8 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/landmark/costume/random,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "neutral"
@@ -100762,7 +100762,7 @@
"dAu" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/closet/crate,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plating,
/area/maintenance/starboard)
@@ -12230,7 +12230,7 @@
/area/maintenance/starboard)
"avz" = (
/obj/structure/rack,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plating,
/area/maintenance/starboard)
@@ -27346,8 +27346,8 @@
/area/crew_quarters/locker)
"aVX" = (
/obj/structure/rack,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/landmark/costume/random,
/obj/item/clothing/mask/balaclava,
/obj/machinery/alarm{
dir = 8;
@@ -55965,8 +55965,8 @@
dir = 8;
layer = 2.9
},
/obj/effect/landmark/costume,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/landmark/costume/random,
/turf/simulated/floor/plating,
/area/maintenance/fpmaint2{
name = "Port Maintenance"
@@ -55977,8 +55977,8 @@
dir = 8;
layer = 2.9
},
/obj/effect/landmark/costume,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/landmark/costume/random,
/turf/simulated/floor/plating,
/area/maintenance/fpmaint2{
name = "Port Maintenance"
@@ -86060,7 +86060,7 @@
/area/medical/virology)
"cQH" = (
/obj/structure/rack,
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 2;
name = "2maintenance loot spawner"
+1 -1
View File
@@ -83,7 +83,7 @@
/turf/unsimulated/floor/snow,
/area/syndicate_mothership)
"an" = (
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/structure/rack,
/turf/simulated/floor/holofloor{
tag = "icon-cult";
+1 -1
View File
@@ -70,7 +70,7 @@
},
/area/space)
"al" = (
/obj/effect/landmark/costume,
/obj/effect/landmark/costume/random,
/obj/structure/rack/holorack,
/turf/simulated/floor/holofloor{
tag = "icon-cult";
+2
View File
@@ -1400,8 +1400,10 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
see_in_dark = 1e6
/mob/dview/New() //For whatever reason, if this isn't called, then BYOND will throw a type mismatch runtime when attempting to add this to the mobs list. -Fox
SHOULD_CALL_PARENT(FALSE)
/mob/dview/Destroy()
SHOULD_CALL_PARENT(FALSE)
// should never be deleted
return QDEL_HINT_LETMELIVE
+1
View File
@@ -20,6 +20,7 @@
// This should be overridden to remove all references pointing to the object being destroyed.
// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE.
/datum/proc/Destroy(force = FALSE, ...)
SHOULD_CALL_PARENT(TRUE)
tag = null
var/list/timers = active_timers
+2
View File
@@ -54,6 +54,7 @@
var/chat_color
/atom/New(loc, ...)
SHOULD_CALL_PARENT(TRUE)
if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
GLOB._preloader.load(src)
. = ..()
@@ -81,6 +82,7 @@
// /turf/open/space/Initialize
/atom/proc/Initialize(mapload, ...)
SHOULD_CALL_PARENT(TRUE)
if(initialized)
stack_trace("Warning: [src]([type]) initialized multiple times!")
initialized = TRUE
+1
View File
@@ -428,6 +428,7 @@
simulated = FALSE
/atom/movable/overlay/New()
. = ..()
verbs.Cut()
return
+1
View File
@@ -195,6 +195,7 @@
//layer = 15
/obj/effect/self_deleting/New(atom/location, icon/I, duration = 20, oname = "something")
. = ..()
name = oname
loc=location
icon = I
+2 -1
View File
@@ -13,7 +13,8 @@
/obj/machinery/computer/salvage_ship/New()
curr_location= locate(/area/shuttle/salvage/start)
. = ..()
curr_location = locate(/area/shuttle/salvage/start)
/obj/machinery/computer/salvage_ship/proc/salvage_move_to(area/destination as area)
+1
View File
@@ -474,6 +474,7 @@ GLOBAL_LIST_EMPTY(tcomms_machines)
* Otherwise shit breaks BADLY
*/
/obj/item/paper/tcommskey/Initialize(mapload)
..()
return INITIALIZE_HINT_LATELOAD
/**
+1
View File
@@ -214,6 +214,7 @@
var/emote
/obj/effect/dummy/mecha_emote_step/New(e)
. = ..()
emote = e
/obj/item/mecha_parts/chassis/reticence/hear_message(mob/living/M, msg)
+1
View File
@@ -11,6 +11,7 @@
var/obj/item/assembly/signaler/anomaly/aSignal = null
/obj/effect/anomaly/New()
. = ..()
set_light(initial(luminosity))
aSignal = new(src)
aSignal.code = rand(1,100)
+25 -3
View File
@@ -123,26 +123,29 @@
//Costume spawner landmarks
/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
var/list/options = typesof(/obj/effect/landmark/costume)
/obj/effect/landmark/costume/random/New() //costume spawner, selects a random subclass and disappears
. = ..()
var/list/options = (typesof(/obj/effect/landmark/costume) - /obj/effect/landmark/costume/random)
var/PICK= options[rand(1,options.len)]
new PICK(src.loc)
qdel(src)
//SUBCLASSES. Spawn a bunch of items and disappear likewise
/obj/effect/landmark/costume/chicken/New()
. = ..()
new /obj/item/clothing/suit/chickensuit(src.loc)
new /obj/item/clothing/head/chicken(src.loc)
new /obj/item/reagent_containers/food/snacks/egg(src.loc)
qdel(src)
/obj/effect/landmark/costume/gladiator/New()
. = ..()
new /obj/item/clothing/under/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
qdel(src)
/obj/effect/landmark/costume/madscientist/New()
. = ..()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
@@ -150,6 +153,7 @@
qdel(src)
/obj/effect/landmark/costume/elpresidente/New()
. = ..()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/cigarette/cigar/havana(src.loc)
@@ -157,11 +161,13 @@
qdel(src)
/obj/effect/landmark/costume/nyangirl/New()
. = ..()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
qdel(src)
/obj/effect/landmark/costume/maid/New()
. = ..()
new /obj/item/clothing/under/blackskirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
@@ -169,12 +175,14 @@
qdel(src)
/obj/effect/landmark/costume/butler/New()
. = ..()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
qdel(src)
/obj/effect/landmark/costume/scratch/New()
. = ..()
new /obj/item/clothing/gloves/color/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
new /obj/item/clothing/under/scratch(src.loc)
@@ -183,11 +191,13 @@
qdel(src)
/obj/effect/landmark/costume/highlander/New()
. = ..()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
qdel(src)
/obj/effect/landmark/costume/prig/New()
. = ..()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowlerhat, /obj/item/clothing/head/that)
@@ -199,16 +209,19 @@
qdel(src)
/obj/effect/landmark/costume/plaguedoctor/New()
. = ..()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
qdel(src)
/obj/effect/landmark/costume/nightowl/New()
. = ..()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
qdel(src)
/obj/effect/landmark/costume/waiter/New()
. = ..()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
@@ -216,6 +229,7 @@
qdel(src)
/obj/effect/landmark/costume/pirate/New()
. = ..()
new /obj/item/clothing/under/pirate(src.loc)
new /obj/item/clothing/suit/pirate_black(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
@@ -224,44 +238,52 @@
qdel(src)
/obj/effect/landmark/costume/commie/New()
. = ..()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
qdel(src)
/obj/effect/landmark/costume/imperium_monk/New()
. = ..()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if(prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
qdel(src)
/obj/effect/landmark/costume/holiday_priest/New()
. = ..()
new /obj/item/clothing/suit/holidaypriest(src.loc)
qdel(src)
/obj/effect/landmark/costume/marisawizard/fake/New()
. = ..()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
qdel(src)
/obj/effect/landmark/costume/cutewitch/New()
. = ..()
new /obj/item/clothing/under/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/twohanded/staff/broom(src.loc)
qdel(src)
/obj/effect/landmark/costume/fakewizard/New()
. = ..()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
new /obj/item/twohanded/staff/(src.loc)
qdel(src)
/obj/effect/landmark/costume/sexyclown/New()
. = ..()
new /obj/item/clothing/mask/gas/clown_hat/sexy(loc)
new /obj/item/clothing/under/rank/clown/sexy(loc)
qdel(src)
/obj/effect/landmark/costume/sexymime/New()
. = ..()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
qdel(src)
-21
View File
@@ -1,21 +0,0 @@
/obj/effect/manifest
name = "manifest"
icon = 'icons/mob/screen_gen.dmi'
icon_state = "x"
/obj/effect/manifest/New()
src.invisibility = 101
return
/obj/effect/manifest/proc/manifest()
var/dat = "<B>Crew Manifest</B>:<BR>"
for(var/thing in GLOB.human_list)
var/mob/living/carbon/human/M = thing
dat += text(" <B>[]</B> - []<BR>", M.name, M.get_assignment())
var/obj/item/paper/P = new /obj/item/paper( src.loc )
P.info = dat
P.name = "paper- 'Crew Manifest'"
//SN src = null
qdel(src)
return
@@ -220,6 +220,7 @@
)
/obj/effect/spawner/lootdrop/trade_sol/minerals/New()
. = ..()
if(loot && loot.len)
for(var/i = lootcount, i > 0, i--)
if(!loot.len)
@@ -345,6 +346,7 @@
)
/obj/effect/spawner/lootdrop/trade_sol/vehicle/New()
. = ..()
if(!loot.len)
return
var/lootspawn = pickweight(loot)
@@ -5,6 +5,7 @@
var/minY = 2
/obj/effect/vaultspawner/New(turf/location as turf,lX = minX,uX = maxX,lY = minY,uY = maxY,var/type = null)
. = ..()
if(!type)
type = pick("sandstone","rock","alien")
@@ -59,7 +59,7 @@
//The payload spawner effect
/////////////////////////////////
/obj/effect/payload_spawner/New(var/turf/newloc,var/type, var/numspawned as num)
. = ..()
for(var/loop = numspawned ,loop > 0, loop--)
var/obj/item/grenade/P = new type(loc)
if(istype(P, /obj/item/grenade))
@@ -232,6 +232,7 @@
var/nanofrost_cooldown = 0
/obj/item/extinguisher/mini/nozzle/New(parent_tank)
. = ..()
if(check_tank_exists(parent_tank, src))
tank = parent_tank
reagents = tank.reagents
@@ -128,6 +128,7 @@
/obj/structure/closet/paramedic/New()
. = ..()
new /obj/item/clothing/under/rank/medical/paramedic(src)
new /obj/item/clothing/under/rank/medical/paramedic(src)
new /obj/item/radio/headset/headset_med(src)
@@ -59,6 +59,7 @@
qdel(src)*/
/obj/structure/closet/emcloset/legacy/New()
. = ..()
new /obj/item/tank/oxygen(src)
new /obj/item/clothing/mask/gas(src)
+1
View File
@@ -306,6 +306,7 @@
var/stump = 0
/obj/structure/bush/New()
. = ..()
if(prob(20))
opacity = 1
+1
View File
@@ -24,6 +24,7 @@
var/width = 3
/obj/structure/grille/fence/New()
. = ..()
if(width > 1)
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
+1
View File
@@ -19,6 +19,7 @@
plane = PLANE_SPACE
/turf/space/Initialize(mapload)
SHOULD_CALL_PARENT(FALSE)
if(!istype(src, /turf/space/transit))
icon_state = SPACE_ICON_STATE
vis_contents.Cut() //removes inherited overlays
+1
View File
@@ -40,6 +40,7 @@
var/shoe_walking_volume = 20
/turf/Initialize(mapload)
SHOULD_CALL_PARENT(FALSE)
if(initialized)
stack_trace("Warning: [src]([type]) initialized multiple times!")
initialized = TRUE
+1
View File
@@ -27,6 +27,7 @@ GLOBAL_VAR_INIT(intercom_range_display_status, 0)
icon_state = "25percent"
/obj/effect/debugging/camera_range/New()
. = ..()
src.pixel_x = -224
src.pixel_y = -224
@@ -133,6 +133,7 @@
var/obj/machinery/computer/mob_battle_terminal/my_terminal
/obj/effect/nanomob/battle/New(loc, datum/mob_hunt/new_info)
. = ..()
if(new_info)
mob_info = new_info
update_self()
@@ -12,6 +12,7 @@
var/water_timer = 0
/obj/effect/waterfall/New()
. = ..()
water_timer = addtimer(CALLBACK(src, .proc/drip), water_frequency, TIMER_STOPPABLE)
/obj/effect/waterfall/Destroy()
@@ -47,6 +47,7 @@
name = "Safecode hint spawner"
/obj/effect/landmark/sc_bible_spawner/New()
. = ..()
var/obj/item/storage/bible/B = new /obj/item/storage/bible/booze(src.loc)
B.name = "The Holy book of the Geometer"
B.deity_name = "Narsie"
@@ -135,9 +135,6 @@
var/triggerproc = "triggerrad1" //name of the proc thats called when the mine is triggered
var/triggered = 0
/obj/effect/meatgrinder/New()
icon_state = "blobpod"
/obj/effect/meatgrinder/Crossed(AM as mob|obj, oldloc)
Bumped(AM)
+1
View File
@@ -3,6 +3,7 @@
var/client/cl
/obj/effect/buildmode_line/New(client/C, atom/atom_a, atom/atom_b, linename)
. = ..()
name = linename
loc = get_turf(atom_a)
I = image('icons/misc/mark.dmi', src, "line", 19.0)
+1
View File
@@ -182,6 +182,7 @@
slot_flags = SLOT_EARS | SLOT_TWOEARS
/obj/item/clothing/ears/offear/New(var/obj/O)
. = ..()
name = O.name
desc = O.desc
icon = O.icon
+1
View File
@@ -95,6 +95,7 @@
var/suits = list("red", "green", "ntblue", "purple", "yellow", "ltblue")
/obj/effect/nasavoidsuitspawner/New()
. = ..()
var/obj/item/clothing/head/helmet/space/nasavoid/H
var/obj/item/clothing/suit/space/nasavoid/S
switch(pick(suits))
+1
View File
@@ -32,6 +32,7 @@
life = 40
/obj/effect/space_dust/New()
. = ..()
var/startx = 0
var/starty = 0
var/endy = 0
+1
View File
@@ -33,6 +33,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
var/move_delay = 1
/obj/effect/immovablerod/New(atom/start, atom/end, delay)
. = ..()
loc = start
z_original = z
destination = end
+7
View File
@@ -200,6 +200,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
var/obj/effect/hallucination/simple/xeno/xeno = null
/obj/effect/hallucination/xeno_attack/New(loc, mob/living/carbon/T)
. = ..()
target = T
for(var/obj/machinery/atmospherics/unary/vent_pump/U in orange(7,target))
if(!U.welded)
@@ -340,6 +341,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
var/obj/effect/hallucination/simple/singularity/s = null
/obj/effect/hallucination/singularity_scare/New(loc, mob/living/carbon/T)
. = ..()
target = T
var/turf/start = get_turf(T)
var/screen_border = pick(GLOB.cardinal)
@@ -370,6 +372,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
/obj/effect/hallucination/battle
/obj/effect/hallucination/battle/New(loc, mob/living/carbon/T)
. = ..()
target = T
var/hits = rand(2,5)
switch(rand(1,5))
@@ -459,6 +462,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
var/list/image/delusions = list()
/obj/effect/hallucination/delusion/New(loc, mob/living/carbon/T, force_kind = null, duration = 300,skip_nearby = 1, custom_icon = null, custom_icon_file = null)
. = ..()
target = T
var/image/A = null
var/kind = force_kind ? force_kind : pick("clown", "corgi", "carp", "skeleton", "demon","zombie")
@@ -707,6 +711,7 @@ GLOBAL_LIST_INIT(non_fakeattack_weapons, list(/obj/item/gun/projectile, /obj/ite
var/list/doors = list()
/obj/effect/hallucination/bolts/New(loc, mob/living/carbon/T, door_number = -1) //-1 for sever 1-2 for subtle
. = ..()
target = T
var/image/I = null
var/count = 0
@@ -731,6 +736,7 @@ GLOBAL_LIST_INIT(non_fakeattack_weapons, list(/obj/item/gun/projectile, /obj/ite
/obj/effect/hallucination/whispers
/obj/effect/hallucination/whispers/New(loc,var/mob/living/carbon/T)
. = ..()
target = T
var/speak_messages = list("I'm watching you...","[target.name]!","Get out!","Kchck-Chkck? Kchchck!","Did you hear that?","What did you do ?","Why?","Give me that!","Honk!","HELP!!", "EI NATH!!", "RUN!!", "Kill me!","O bidai nabora se'sma!")
var/radio_messages = list("Xenos!","Singularity loose!","Comms down!","They are arming the nuke!","They butchered Ian!","H-help!","[pick("Cult", "Wizard", "Ling", "Ops", "Revenant", "Murderer", "Harm", "I hear flashing", "Help")] in [pick(GLOB.teleportlocs)][prob(50)?"!":"!!"]","Where's [target.name]?","Call the shuttle!","AI rogue!!")
@@ -766,6 +772,7 @@ GLOBAL_LIST_INIT(non_fakeattack_weapons, list(/obj/item/gun/projectile, /obj/ite
/obj/effect/hallucination/message
/obj/effect/hallucination/message/New(loc,var/mob/living/carbon/T)
. = ..()
target = T
var/chosen = pick("<span class='userdanger'>The light burns you!</span>",
"<span class='danger'>You don't feel like yourself.</span>",
@@ -23,6 +23,7 @@
var/bottling = 0
/obj/machinery/bottler/New()
. = ..()
if(!available_recipes)
available_recipes = list()
acceptable_items = list()
@@ -31,6 +31,7 @@
)
/obj/machinery/juicer/New()
. = ..()
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
/obj/machinery/juicer/update_icon()
@@ -8,5 +8,6 @@
/obj/item/honey_frame/New()
. = ..()
pixel_x = rand(8,-8)
pixel_y = rand(8,-8)
@@ -77,7 +77,8 @@
/obj/machinery/anomalous_crystal/ex_act()
ActivationReaction(null,"bomb")
/obj/machinery/anomalous_crystal/random/New()//Just a random crysal spawner for loot
/obj/machinery/anomalous_crystal/random/New() //Just a random crysal spawner for loot
. = ..()
var/random_crystal = pick(typesof(/obj/machinery/anomalous_crystal) - /obj/machinery/anomalous_crystal/random - /obj/machinery/anomalous_crystal)
new random_crystal(loc)
qdel(src)
@@ -6,12 +6,6 @@
canmove = 0
a_intent = INTENT_HARM // This is apparently the only thing that stops other mobs walking through them as if they were thin air.
/mob/living/silicon/decoy/New()
src.icon = 'icons/mob/ai.dmi'
src.icon_state = "ai"
src.anchored = 1
src.canmove = 0
/mob/living/silicon/decoy/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/aicard))
to_chat(user, "<span class='warning'>You cannot find an intellicard slot on [src].</span>")
+7 -4
View File
@@ -39,15 +39,18 @@
/mob/living/silicon/New()
GLOB.silicon_mob_list |= src
..()
var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC]
diag_hud.add_to_hud(src)
diag_hud_set_status()
diag_hud_set_health()
add_language("Galactic Common")
init_subsystems()
RegisterSignal(SSalarm, COMSIG_TRIGGERED_ALARM, .proc/alarm_triggered)
RegisterSignal(SSalarm, COMSIG_CANCELLED_ALARM, .proc/alarm_cancelled)
/mob/living/silicon/Initialize()
. = ..()
var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC]
diag_hud.add_to_hud(src)
diag_hud_set_status()
diag_hud_set_health()
/mob/living/silicon/med_hud_set_health()
return //we use a different hud
+1
View File
@@ -121,6 +121,7 @@
/datum/feed_channel/Destroy()
for(var/m in messages)
GLOB.news_network.stories -= m
return ..()
/**
* Returns whether the given user can publish new stories to this channel.
+2
View File
@@ -16,10 +16,12 @@
var/screen = 0
/obj/item/paper_bundle/New(default_papers = TRUE)
. = ..()
if(default_papers) // This is to avoid runtime occuring from a paper bundle being created without a paper in it.
new /obj/item/paper(src)
new /obj/item/paper(src)
amount += 1
/obj/item/paper_bundle/attackby(obj/item/W as obj, mob/user as mob, params)
..()
var/obj/item/paper/P
@@ -195,6 +195,7 @@
harmful = FALSE
/obj/item/ammo_casing/energy/wormhole/New(var/obj/item/gun/energy/wormhole_projector/wh)
. = ..()
gun = wh
/obj/item/ammo_casing/energy/wormhole/orange
+1
View File
@@ -294,4 +294,5 @@
density = 0
/obj/effect/syringe_gun_dummy/New()
. = ..()
create_reagents(15)
@@ -214,6 +214,7 @@
color = "#FF6600"
/obj/item/projectile/beam/wormhole/New(var/obj/item/ammo_casing/energy/wormhole/casing)
. = ..()
if(casing)
gun = casing.gun
+1
View File
@@ -223,6 +223,7 @@ GLOBAL_DATUM(blackbox, /obj/machinery/blackbox_recorder)
//Only one can exsist in the world!
/obj/machinery/blackbox_recorder/New()
SHOULD_CALL_PARENT(FALSE) // TODO: I still need to shoot this
if(GLOB.blackbox)
if(istype(GLOB.blackbox,/obj/machinery/blackbox_recorder))
qdel(src)
@@ -203,6 +203,7 @@
log_debug("Multiple nodes left behind after SW grid qdel: [available_nodes.len]")
for(var/datum/point/P in available_nodes)
log_debug("([P.x],[P.y])")
return ..()
/datum/spacewalk_grid/proc/add_available_node(datum/point/P)
var/hash = P.hash()
-1
View File
@@ -816,7 +816,6 @@
#include "code\game\objects\effects\gibs.dm"
#include "code\game\objects\effects\glowshroom.dm"
#include "code\game\objects\effects\landmarks.dm"
#include "code\game\objects\effects\manifest.dm"
#include "code\game\objects\effects\mapping_helpers.dm"
#include "code\game\objects\effects\mines.dm"
#include "code\game\objects\effects\misc.dm"