diff --git a/aurorastation.dme b/aurorastation.dme index 21a05232ae0..17827cc691a 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -525,7 +525,6 @@ #include "code\game\gamemodes\endgame\supermatter_cascade\blob.dm" #include "code\game\gamemodes\endgame\supermatter_cascade\portal.dm" #include "code\game\gamemodes\endgame\supermatter_cascade\universe.dm" -#include "code\game\gamemodes\events\black_hole.dm" #include "code\game\gamemodes\events\clang.dm" #include "code\game\gamemodes\events\dust.dm" #include "code\game\gamemodes\events\power_failure.dm" @@ -760,7 +759,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\misc.dm" #include "code\game\objects\effects\overlays.dm" #include "code\game\objects\effects\plastic_explosive.dm" @@ -2753,8 +2751,6 @@ #include "code\modules\spell_system\spells\spell_projectile.dm" #include "code\modules\spell_system\spells\spell_verb.dm" #include "code\modules\spell_system\spells\spells.dm" -#include "code\modules\spell_system\spells\hand\hand.dm" -#include "code\modules\spell_system\spells\hand\hand_item.dm" #include "code\modules\spell_system\spells\spell_list\aoe_turf.dm" #include "code\modules\spell_system\spells\spell_list\conjure.dm" #include "code\modules\spell_system\spells\spell_list\construct_spells.dm" diff --git a/code/controllers/subsystems/garbage-debug.dm b/code/controllers/subsystems/garbage-debug.dm index 64e88438830..f1bac25e0d1 100644 --- a/code/controllers/subsystems/garbage-debug.dm +++ b/code/controllers/subsystems/garbage-debug.dm @@ -799,7 +799,6 @@ SearchVar(sent_faxes) SearchVar(alldepartments) SearchVar(admin_departments) - SearchVar(photo_count) SearchVar(possible_cable_coil_colours) SearchVar(rad_collectors) SearchVar(blacklisted_tesla_types) diff --git a/code/game/gamemodes/cult/structures/gateway.dm b/code/game/gamemodes/cult/structures/gateway.dm index d1142ab4494..8354f549ce6 100644 --- a/code/game/gamemodes/cult/structures/gateway.dm +++ b/code/game/gamemodes/cult/structures/gateway.dm @@ -36,7 +36,8 @@ /obj/effect/gateway/active/cult/cultify() return -/obj/effect/gateway/active/New() +/obj/effect/gateway/active/Initialize(mapload, ...) + . = ..() addtimer(CALLBACK(src, .proc/do_spawn), rand(30, 60) SECONDS) /obj/effect/gateway/active/proc/do_spawn() diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm deleted file mode 100644 index 82c0ab0461b..00000000000 --- a/code/game/gamemodes/events/black_hole.dm +++ /dev/null @@ -1,93 +0,0 @@ -/obj/effect/bhole - name = "black hole" - icon = 'icons/obj/objects.dmi' - desc = "FUCK FUCK FUCK AAAHHH" - icon_state = "bhole3" - opacity = 1 - unacidable = 1 - density = 0 - anchored = 1 - -/obj/effect/bhole/New() - spawn(4) - controller() - -/obj/effect/bhole/proc/controller() - while(src) - - if(!isturf(loc)) - qdel(src) - return - - //DESTROYING STUFF AT THE EPICENTER - for(var/mob/living/M in orange(1,src)) - qdel(M) - for(var/obj/O in orange(1,src)) - qdel(O) - var/turf/T = loc - var/base_turf = T.baseturf - for(var/turf/simulated/ST in orange(1,src)) - if(ST.type == base_turf) - continue - ST.ChangeTurf(base_turf) - - sleep(6) - grav(10, 4, 10, 0 ) - sleep(6) - grav( 8, 4, 10, 0 ) - sleep(6) - grav( 9, 4, 10, 0 ) - sleep(6) - grav( 7, 3, 40, 1 ) - sleep(6) - grav( 5, 3, 40, 1 ) - sleep(6) - grav( 6, 3, 40, 1 ) - sleep(6) - grav( 4, 2, 50, 6 ) - sleep(6) - grav( 3, 2, 50, 6 ) - sleep(6) - grav( 2, 2, 75,25 ) - sleep(6) - - - - //MOVEMENT - if( prob(50) ) - src.anchored = 0 - step(src,pick(alldirs)) - src.anchored = 1 - -/obj/effect/bhole/proc/grav(var/r, var/ex_act_force, var/pull_chance, var/turf_removal_chance) - if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen - qdel(src) - return - for(var/t = -r, t < r, t++) - affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance) - affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance) - return - -/obj/effect/bhole/proc/affect_coord(var/x, var/y, var/ex_act_force, var/pull_chance, var/turf_removal_chance) - //Get turf at coordinate - var/turf/T = locate(x, y, z) - if(isnull(T)) return - - //Pulling and/or ex_act-ing movable atoms in that turf - if( prob(pull_chance) ) - for(var/obj/O in T.contents) - if(O.anchored) - O.ex_act(ex_act_force) - else - step_towards(O,src) - for(var/mob/living/M in T.contents) - step_towards(M,src) - - //Destroying the turf - if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) ) - var/turf/simulated/ST = T - var/base_turf = get_base_turf_by_area(src) - if(ST.type != base_turf) - ST.ChangeTurf(base_turf) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 9824cdc405d..3fd27e84e34 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -6,53 +6,57 @@ unacidable = 1 simulated = 0 invisibility = 101 - var/delete_me = 0 -/obj/effect/landmark/New() - ..() + var/add_to_landmark_list = TRUE + +/obj/effect/landmark/Initialize() + . = ..() + + var/do_qdel = do_landmark_action() + if(do_qdel) + return INITIALIZE_HINT_QDEL + + if(add_to_landmark_list) + landmarks_list += src + +/obj/effect/landmark/Destroy() + landmarks_list -= src + return ..() + +/obj/effect/landmark/proc/do_landmark_action() tag = text("landmark*[]", name) switch(name) //some of these are probably obsolete if("monkey") monkeystart += loc - delete_me = 1 - return + return TRUE if("start") newplayer_start = get_turf(loc) - delete_me = 1 - return + return TRUE if("JoinLate") latejoin += loc - delete_me = 1 - return + return TRUE if("KickoffLocation") kickoffsloc += loc - delete_me = 1 - return + return TRUE if("JoinLateGateway") latejoin_gateway += loc - delete_me = 1 - return + return TRUE if("JoinLateCryo") latejoin_cryo += loc - delete_me = 1 - return + return TRUE if("JoinLateCryoCommand") latejoin_cryo_command += loc - delete_me = 1 - return + return TRUE if("JoinLateCyborg") latejoin_cyborg += loc - delete_me = 1 - return + return TRUE if("JoinLateMerchant") latejoin_merchant += loc - delete_me = 1 - return + return TRUE if("prisonwarp") prisonwarp += loc - delete_me = 1 - return + return TRUE if("Holding Facility") holdingfacility += loc if("tdome1") @@ -65,43 +69,24 @@ tdomeobserve += loc if("prisonsecuritywarp") prisonsecuritywarp += loc - delete_me = 1 - return + return TRUE if("xeno_spawn") xeno_spawn += loc - delete_me = 1 - return + return TRUE if("endgame_exit") endgame_safespawns += loc - delete_me = 1 - return + return TRUE if("bluespacerift") endgame_exits += loc - delete_me = 1 - return + return TRUE if("asteroid spawn") asteroid_spawn += loc - delete_me = 1 - return + return TRUE if("skrell_entry") dream_entries += loc - delete_me = 1 - return + return TRUE - landmarks_list += src - return 1 - -/obj/effect/landmark/proc/delete() - delete_me = 1 - -/obj/effect/landmark/Initialize() - . = ..() - if(delete_me) - qdel(src) - -/obj/effect/landmark/Destroy() - landmarks_list -= src - return ..() + return FALSE /obj/effect/landmark/start name = "start" @@ -110,146 +95,143 @@ anchored = 1.0 invisibility = 101 -/obj/effect/landmark/start/New() - ..() +/obj/effect/landmark/start/do_landmark_action() tag = "start*[name]" - - return 1 + return FALSE //Costume spawner landmarks -/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears - +/obj/effect/landmark/costume/do_landmark_action() //costume spawner, selects a random subclass and disappears var/list/options = typesof(/obj/effect/landmark/costume) - var/PICK= options[rand(1,options.len)] - new PICK(src.loc) - delete_me = 1 + var/costume_type = pick(options) + new costume_type(loc) + return TRUE //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) - delete_me = 1 +/obj/effect/landmark/costume/chicken/do_landmark_action() + new /obj/item/clothing/suit/chickensuit(loc) + new /obj/item/clothing/head/chicken(loc) + new /obj/item/reagent_containers/food/snacks/egg(loc) + return TRUE -/obj/effect/landmark/costume/gladiator/New() - new /obj/item/clothing/under/gladiator(src.loc) - new /obj/item/clothing/head/helmet/gladiator(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/gladiator/do_landmark_action() + new /obj/item/clothing/under/gladiator(loc) + new /obj/item/clothing/head/helmet/gladiator(loc) + return TRUE -/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/toggle/labcoat(src.loc) - new /obj/item/clothing/glasses/regular(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/madscientist/do_landmark_action() + new /obj/item/clothing/under/gimmick/rank/captain/suit(loc) + new /obj/item/clothing/head/flatcap(loc) + new /obj/item/clothing/suit/storage/toggle/labcoat(loc) + new /obj/item/clothing/glasses/regular(loc) + return TRUE -/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/smokable/cigarette/cigar/havana(src.loc) - new /obj/item/clothing/shoes/jackboots(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/elpresidente/do_landmark_action() + new /obj/item/clothing/under/gimmick/rank/captain/suit(loc) + new /obj/item/clothing/head/flatcap(loc) + new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(loc) + new /obj/item/clothing/shoes/jackboots(loc) + return TRUE -/obj/effect/landmark/costume/maid/New() - new /obj/item/clothing/under/skirt/(src.loc) - var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears ) - new CHOICE(src.loc) - new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/maid/do_landmark_action() + new /obj/item/clothing/under/skirt(loc) + var/maid_headwear_type = pick(/obj/item/clothing/head/beret, /obj/item/clothing/head/rabbitears) + new maid_headwear_type(loc) + new /obj/item/clothing/glasses/sunglasses/blindfold(loc) // hollup + return TRUE -/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) - delete_me = 1 +/obj/effect/landmark/costume/butler/do_landmark_action() + new /obj/item/clothing/suit/wcoat(loc) + new /obj/item/clothing/under/suit_jacket(loc) + new /obj/item/clothing/head/that(loc) + return TRUE -/obj/effect/landmark/costume/scratch/New() - new /obj/item/clothing/gloves/white(src.loc) - new /obj/item/clothing/shoes/white(src.loc) - new /obj/item/clothing/under/suit_jacket/white(src.loc) - if (prob(30)) - new /obj/item/clothing/head/cueball(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/scratch/do_landmark_action() + new /obj/item/clothing/gloves/white(loc) + new /obj/item/clothing/shoes/white(loc) + new /obj/item/clothing/under/suit_jacket/white(loc) + if(prob(30)) + new /obj/item/clothing/head/cueball(loc) + return TRUE -/obj/effect/landmark/costume/highlander/New() - new /obj/item/clothing/under/kilt(src.loc) - new /obj/item/clothing/head/beret/red(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/highlander/do_landmark_action() + new /obj/item/clothing/under/kilt(loc) + new /obj/item/clothing/head/beret/red(loc) + return TRUE -/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/bowler, /obj/item/clothing/head/that) - new CHOICE(src.loc) - new /obj/item/clothing/shoes/black(src.loc) - new /obj/item/cane(src.loc) - new /obj/item/clothing/under/sl_suit(src.loc) - new /obj/item/clothing/mask/fakemoustache(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/prig/do_landmark_action() + new /obj/item/clothing/suit/wcoat(loc) + new /obj/item/clothing/glasses/monocle(loc) + var/hat_path = pick(/obj/item/clothing/head/bowler, /obj/item/clothing/head/that) + new hat_path(loc) + new /obj/item/clothing/shoes/black(loc) + new /obj/item/cane(loc) + new /obj/item/clothing/under/sl_suit(loc) + new /obj/item/clothing/mask/fakemoustache(loc) + return TRUE -/obj/effect/landmark/costume/plaguedoctor/New() - new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc) - new /obj/item/clothing/head/plaguedoctorhat(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/plaguedoctor/do_landmark_action() + new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(loc) + new /obj/item/clothing/head/plaguedoctorhat(loc) + return TRUE -/obj/effect/landmark/costume/nightowl/New() - new /obj/item/clothing/under/owl(src.loc) - new /obj/item/clothing/mask/gas/owl_mask(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/nightowl/do_landmark_action() + new /obj/item/clothing/under/owl(loc) + new /obj/item/clothing/mask/gas/owl_mask(loc) + return TRUE -/obj/effect/landmark/costume/waiter/New() - new /obj/item/clothing/under/waiter(src.loc) - new /obj/item/clothing/head/rabbitears(src.loc) - new /obj/item/clothing/suit/apron(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/waiter/do_landmark_action() + new /obj/item/clothing/under/waiter(loc) + new /obj/item/clothing/head/rabbitears(loc) + new /obj/item/clothing/suit/apron(loc) + return TRUE -/obj/effect/landmark/costume/pirate/New() - new /obj/item/clothing/suit/pirate(src.loc) - var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana/pirate) - new CHOICE(src.loc) - new /obj/item/clothing/glasses/eyepatch(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/pirate/do_landmark_action() + new /obj/item/clothing/suit/pirate(loc) + var/hat_path = pick(/obj/item/clothing/head/pirate, /obj/item/clothing/head/bandana/pirate) + new hat_path(loc) + new /obj/item/clothing/glasses/eyepatch(loc) + return TRUE -/obj/effect/landmark/costume/commie/New() - new /obj/item/clothing/head/ushanka/grey(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/commie/do_landmark_action() + new /obj/item/clothing/head/ushanka/grey(loc) + return TRUE -/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) - delete_me = 1 +/obj/effect/landmark/costume/imperium_monk/do_landmark_action() + new /obj/item/clothing/suit/imperium_monk(loc) + if(prob(25)) + new /obj/item/clothing/mask/gas/cyborg(loc) + return TRUE -/obj/effect/landmark/costume/holiday_priest/New() - new /obj/item/clothing/suit/holidaypriest(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/holiday_priest/do_landmark_action() + new /obj/item/clothing/suit/holidaypriest(loc) + return TRUE -/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) - delete_me = 1 +/obj/effect/landmark/costume/marisawizard/fake/do_landmark_action() + new /obj/item/clothing/head/wizard/marisa/fake(loc) + new/obj/item/clothing/suit/wizrobe/marisa/fake(loc) + return TRUE -/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/staff/broom(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/cutewitch/do_landmark_action() + new /obj/item/clothing/under/sundress(loc) + new /obj/item/clothing/head/witchwig(loc) + new /obj/item/staff/broom(loc) + return TRUE -/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/staff/(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/fakewizard/do_landmark_action() + new /obj/item/clothing/suit/wizrobe/fake(loc) + new /obj/item/clothing/head/wizard/fake(loc) + new /obj/item/staff(loc) + return TRUE -/obj/effect/landmark/costume/sexyclown/New() - new /obj/item/clothing/mask/gas/sexyclown(src.loc) - new /obj/item/clothing/under/sexyclown(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/sexyclown/do_landmark_action() + new /obj/item/clothing/mask/gas/sexyclown(loc) + new /obj/item/clothing/under/sexyclown(loc) + return TRUE -/obj/effect/landmark/costume/sexymime/New() - new /obj/item/clothing/mask/gas/sexymime(src.loc) - new /obj/item/clothing/under/sexymime(src.loc) - delete_me = 1 +/obj/effect/landmark/costume/sexymime/do_landmark_action() + new /obj/item/clothing/mask/gas/sexymime(loc) + new /obj/item/clothing/under/sexymime(loc) + return TRUE /obj/effect/landmark/dungeon_spawn name = "asteroid spawn" diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm deleted file mode 100644 index a973dce441d..00000000000 --- a/code/game/objects/effects/manifest.dm +++ /dev/null @@ -1,21 +0,0 @@ -/obj/effect/manifest - name = "manifest" - icon = 'icons/mob/screen/generic.dmi' - icon_state = "x" - unacidable = 1//Just to be sure. - -/obj/effect/manifest/New() - - src.invisibility = 101 - return - -/obj/effect/manifest/proc/manifest() - var/dat = "Crew Manifest:
" - for(var/mob/living/carbon/human/M in mob_list) - dat += text(" [] - []
", 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 diff --git a/code/game/objects/items/bees_items.dm b/code/game/objects/items/bees_items.dm index e8324e7192f..bf0ba5e2e7e 100644 --- a/code/game/objects/items/bees_items.dm +++ b/code/game/objects/items/bees_items.dm @@ -19,9 +19,11 @@ name = "bottle of BeezEez" icon = 'icons/obj/chemical.dmi' icon_state = "bottle17" - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) + randpixel = 5 + +/obj/item/beezeez/Initialize() + . = ..() + randpixel_xy() /obj/item/reagent_containers/food/snacks/honeycomb name = "honeycomb" diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm index 877e309958f..800acbe4dde 100644 --- a/code/game/objects/items/devices/spy_bug.dm +++ b/code/game/objects/items/devices/spy_bug.dm @@ -19,8 +19,8 @@ var/obj/item/device/radio/spy/radio var/obj/machinery/camera/spy/camera -/obj/item/device/spy_bug/New() - ..() +/obj/item/device/spy_bug/Initialize() + . = ..() radio = new(src) camera = new(src) listening_objects += src @@ -67,7 +67,8 @@ var/obj/machinery/camera/spy/selected_camera var/list/obj/machinery/camera/spy/cameras = new() -/obj/item/device/spy_monitor/New() +/obj/item/device/spy_monitor/Initialize() + . = ..() radio = new(src) listening_objects += src diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm index e509c148a22..d6808a1e21b 100644 --- a/code/game/objects/items/devices/uplink.dm +++ b/code/game/objects/items/devices/uplink.dm @@ -22,17 +22,20 @@ A list of items and costs is stored under the datum of every game mode, alongsid /obj/item/device/uplink/ui_host() return loc -/obj/item/device/uplink/New(var/location, var/datum/mind/owner, var/telecrystals = DEFAULT_TELECRYSTAL_AMOUNT) - ..() - src.uplink_owner = owner - purchase_log = list() - world_uplinks += src - uses = telecrystals +/obj/item/device/uplink/Initialize(mapload, var/datum/mind/owner, var/telecrystals = DEFAULT_TELECRYSTAL_AMOUNT) + . = ..() + do_uplink_action(owner, telecrystals) /obj/item/device/uplink/Destroy() world_uplinks -= src return ..() +/obj/item/device/uplink/proc/do_uplink_action(var/datum/mind/owner, var/telecrystals = DEFAULT_TELECRYSTAL_AMOUNT) + src.uplink_owner = owner + purchase_log = list() + world_uplinks += src + uses = telecrystals + // HIDDEN UPLINK - Can be stored in anything but the host item has to have a trigger for it. /* How to create an uplink in 3 easy steps! @@ -53,15 +56,16 @@ A list of items and costs is stored under the datum of every game mode, alongsid var/exploit_id // Id of the current exploit record we are viewing var/pda_code = "" - // The hidden uplink MUST be inside an obj/item's contents. -/obj/item/device/uplink/hidden/New() - spawn(2) - if(!istype(src.loc, /obj/item)) - qdel(src) +/obj/item/device/uplink/hidden/do_uplink_action(var/datum/mind/owner, var/telecrystals = DEFAULT_TELECRYSTAL_AMOUNT) ..() nanoui_data = list() update_nano_data() + addtimer(CALLBACK(src, .proc/check_loc), 2) + +/obj/item/device/uplink/hidden/proc/check_loc() + if(!isitem(loc)) + qdel(src) // Toggles the uplink on and off. Normally this will bypass the item's normal functions and go to the uplink menu, if activated. /obj/item/device/uplink/hidden/proc/toggle() @@ -314,26 +318,28 @@ A list of items and costs is stored under the datum of every game mode, alongsid // Includes normal radio uplink, multitool uplink, // implant uplink (not the implant tool) and a preset headset uplink. -/obj/item/device/radio/uplink/New(var/loc, var/mind) +/obj/item/device/radio/uplink/Initialize(mapload, var/datum/mind/mind) + . = ..() hidden_uplink = new(src, mind) icon_state = "radio" -/obj/item/device/radio/uplink/attack_self(mob/user as mob) +/obj/item/device/radio/uplink/attack_self(mob/user) if(hidden_uplink) hidden_uplink.trigger(user) -/obj/item/device/multitool/uplink/New(var/loc, var/mind) +/obj/item/device/multitool/uplink/Initialize(mapload, var/datum/mind/mind) + . = ..() hidden_uplink = new(src, mind) -/obj/item/device/multitool/uplink/attack_self(mob/user as mob) +/obj/item/device/multitool/uplink/attack_self(mob/user) if(hidden_uplink) hidden_uplink.trigger(user) /obj/item/device/radio/headset/uplink traitor_frequency = 1445 -/obj/item/device/radio/headset/uplink/New(var/loc, var/mind) - ..() +/obj/item/device/radio/headset/uplink/Initialize(mapload, var/datum/mind/mind) + . = ..() hidden_uplink = new(src, mind) hidden_uplink.uses = DEFAULT_TELECRYSTAL_AMOUNT @@ -349,13 +355,13 @@ A list of items and costs is stored under the datum of every game mode, alongsid flags = CONDUCT w_class = ITEMSIZE_SMALL -/obj/item/device/contract_uplink/New(var/loc, var/mind) - ..() +/obj/item/device/contract_uplink/Initialize(mapload, var/datum/mind/mind) + . = ..() hidden_uplink = new(src, mind) hidden_uplink.uses = 0 hidden_uplink.nanoui_menu = 3 -/obj/item/device/contract_uplink/attack_self(mob/user as mob) +/obj/item/device/contract_uplink/attack_self(mob/user) if (hidden_uplink) hidden_uplink.trigger(user) @@ -368,7 +374,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid desc_antag = "This device allows you to create a single central command report. It has only one use." w_class = ITEMSIZE_SMALL -/obj/item/device/announcer/attack_self(mob/user as mob) +/obj/item/device/announcer/attack_self(mob/user) if(!player_is_antag(user.mind)) return @@ -394,8 +400,8 @@ A list of items and costs is stored under the datum of every game mode, alongsid w_class = ITEMSIZE_SMALL var/starting_telecrystals // how much telecrystals the uplink should spawn with, defaults to default amount if not set -/obj/item/device/special_uplink/New(var/loc, var/mind) - ..() +/obj/item/device/special_uplink/Initialize(mapload, var/datum/mind/mind) + . = ..() hidden_uplink = new(src, mind) if(!starting_telecrystals) hidden_uplink.uses = DEFAULT_TELECRYSTAL_AMOUNT @@ -403,7 +409,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid hidden_uplink.uses = starting_telecrystals hidden_uplink.nanoui_menu = 1 -/obj/item/device/special_uplink/attack_self(mob/user as mob) +/obj/item/device/special_uplink/attack_self(mob/user) if(hidden_uplink) hidden_uplink.trigger(user) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7a00cb34994..f04afb65a8d 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -43,10 +43,10 @@ drop_sound = 'sound/items/drop/rubber.ogg' pickup_sound = 'sound/items/pickup/rubber.ogg' -/obj/item/toy/waterballoon/New() - var/datum/reagents/R = new/datum/reagents(10) +/obj/item/toy/waterballoon/Initialize() + . = ..() + var/datum/reagents/R = new /datum/reagents(10, src) reagents = R - R.my_atom = src /obj/item/toy/waterballoon/attack(mob/living/carbon/human/M as mob, mob/user as mob) return diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index 4ab4be2dbee..0682f921dcb 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -6,40 +6,40 @@ icon_state = "lipstick" w_class = ITEMSIZE_TINY slot_flags = SLOT_EARS - var/colour = "red" + var/lipstick_color = "red" var/open = 0 drop_sound = 'sound/items/drop/screwdriver.ogg' pickup_sound = 'sound/items/pickup/screwdriver.ogg' /obj/item/lipstick/purple name = "purple lipstick" - colour = "purple" + lipstick_color = "purple" /obj/item/lipstick/jade name = "jade lipstick" - colour = "jade" + lipstick_color = "jade" /obj/item/lipstick/black name = "black lipstick" - colour = "black" + lipstick_color = "black" /obj/item/lipstick/pink name = "pink lipstick" - colour = "pink" + lipstick_color = "pink" /obj/item/lipstick/random name = "lipstick" -/obj/item/lipstick/random/New() - colour = pick("red","purple","jade","pink","black") - name = "[colour] lipstick" - +/obj/item/lipstick/random/Initialize() + . = ..() + name = "[lipstick_color] lipstick" + lipstick_color = pick("red","purple","jade","pink","black") /obj/item/lipstick/attack_self(mob/user as mob) to_chat(user, "You twist \the [src] [open ? "closed" : "open"].") open = !open if(open) - icon_state = "[initial(icon_state)]_[colour]" + icon_state = "[initial(icon_state)]_[lipstick_color]" else icon_state = initial(icon_state) @@ -56,7 +56,7 @@ if(H == user) user.visible_message("[user] does their lips with \the [src].", \ "You take a moment to apply \the [src]. Perfect!") - H.lip_style = colour + H.lip_style = lipstick_color H.update_body() else user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ @@ -64,7 +64,7 @@ if(do_after(user, 20) && do_after(H, 20, 0)) //user needs to keep their active hand, H does not. user.visible_message("[user] does [H]'s lips with \the [src].", \ "You apply \the [src].") - H.lip_style = colour + H.lip_style = lipstick_color H.update_body() else to_chat(user, "Where are the lips on that?") diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 3e57e77d35c..c67895c88c0 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -24,7 +24,8 @@ var/datatype=0 var/value=0 -/obj/item/dnainjector/New() +/obj/item/dnainjector/Initialize() + . = ..() if(datatype && block) buf=new buf.dna=new diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index eb2733a5ab6..a511c6be9e3 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -236,23 +236,26 @@ origin_tech = list(TECH_MAGNET = 3, TECH_ILLEGAL = 4) sharp = 1 edge = 1 + var/possible_blade_colors = "{'red':1,'blue':1,'green':1,'purple':1}" var/blade_color shield_power = 75 -/obj/item/melee/energy/sword/New() - blade_color = pick("red","blue","green","purple") +/obj/item/melee/energy/sword/Initialize() + . = ..() + blade_color = pick(json_decode(possible_blade_colors)) -/obj/item/melee/energy/sword/green/New() +/obj/item/melee/energy/sword/green + possible_blade_colors = "{'green':1}" blade_color = "green" -/obj/item/melee/energy/sword/red/New() - blade_color = "red" +/obj/item/melee/energy/sword/red + possible_blade_colors = "{'red':1}" -/obj/item/melee/energy/sword/blue/New() - blade_color = "blue" +/obj/item/melee/energy/sword/blue + possible_blade_colors = "{'blue':1}" -/obj/item/melee/energy/sword/purple/New() - blade_color = "purple" +/obj/item/melee/energy/sword/purple + possible_blade_colors = "{'blue':1}" /obj/item/melee/energy/sword/activate(mob/living/user) if(!active) diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm index 160e1eec5e4..1e2aea08062 100644 --- a/code/game/objects/items/weapons/syndie.dm +++ b/code/game/objects/items/weapons/syndie.dm @@ -23,7 +23,8 @@ power = 2 size = "large" -/obj/item/syndie/c4explosive/New() +/obj/item/syndie/c4explosive/Initialize() + . = ..() var/K = rand(1,2000) K = md5(num2text(K)+name) K = copytext(K,1,7) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index 4c4eb46036d..d5bdba83194 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -20,7 +20,8 @@ var/force_piano = FALSE var/broken = 0 //Whether or not the piano can actually be played. -/obj/structure/device/piano/New() +/obj/structure/device/piano/Initialize(mapload) + . = ..() if(prob(50) && !force_piano) name = "space minimoog" desc = "This is a minimoog, like a space piano, but more spacey!" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 9fdfc2e0ae4..a5fcda9f3a1 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1119,10 +1119,6 @@ if(!check_rights(R_FUN,0)) removed_paths += dirty_path continue - else if(ispath(path, /obj/effect/bhole)) - if(!check_rights(R_FUN,0)) - removed_paths += dirty_path - continue paths += path if(!paths) diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index eb378a4a2b7..f413c0e10ae 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -26,9 +26,10 @@ var/intercom_range_display_status = 0 icon = 'icons/480x480.dmi' icon_state = "25percent" - New() - src.pixel_x = -224 - src.pixel_y = -224 +/obj/effect/debugging/camera_range/Initialize(mapload, ...) + . = ..() + pixel_x = -224 + pixel_y = -224 /obj/effect/debugging/marker icon = 'icons/turf/areas.dmi' diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index b8ce8e3e78f..3b5669c944b 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -13,14 +13,15 @@ name = "budget insulated gloves" icon_state = "yellow" item_state = "yellow" - siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() + siemens_coefficient = 1 //Set to a default of 1, gets overridden in initialize permeability_coefficient = 0.05 drop_sound = 'sound/items/drop/rubber.ogg' pickup_sound = 'sound/items/pickup/rubber.ogg' - New() - //average of 0.5, somewhat better than regular gloves' 0.75 - siemens_coefficient = pick(0,0.1,0.3,0.5,0.5,0.75,1.35) +/obj/item/clothing/gloves/fyellow/Initialize(mapload, material_key) + . = ..() + //average of 0.5, somewhat better than regular gloves' 0.75 + siemens_coefficient = pick(0,0.1,0.3,0.5,0.5,0.75,1.35) /obj/item/clothing/gloves/black desc = "These work gloves are thick and fire-resistant." diff --git a/code/modules/games/cardemon.dm b/code/modules/games/cardemon.dm index cc9cac32a8e..95419a1a2b9 100644 --- a/code/modules/games/cardemon.dm +++ b/code/modules/games/cardemon.dm @@ -3,7 +3,8 @@ desc = "Finally! A children's card game in space!" icon_state = "card_pack_cardemon" -/obj/item/pack/cardemon/New() +/obj/item/pack/cardemon/Initialize() + . = ..() var/datum/playingcard/P var/i for(i=0; i<5; i++) diff --git a/code/modules/games/spaceball_cards.dm b/code/modules/games/spaceball_cards.dm index 6fe6f542f91..23e0cc93d41 100644 --- a/code/modules/games/spaceball_cards.dm +++ b/code/modules/games/spaceball_cards.dm @@ -3,7 +3,8 @@ desc = "Officially licensed to take your money." icon_state = "card_pack_spaceball" -/obj/item/pack/spaceball/New() +/obj/item/pack/spaceball/Initialize() + . = ..() var/datum/playingcard/P var/i var/year = 554 + text2num(time2text(world.timeofday, "YYYY")) @@ -20,4 +21,4 @@ P.card_icon = "spaceball_standard" P.back_icon = "card_back_spaceball" - cards += P + cards += P \ No newline at end of file diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 53bcae8cc34..ca1ff445bc2 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -275,7 +275,8 @@ return 1 return 0 -/obj/item/holo/esword/New() +/obj/item/holo/esword/Initialize() + . = ..() if(!item_color) item_color = pick("red","blue","green","purple") diff --git a/code/modules/lighting/lighting_overlay.dm b/code/modules/lighting/lighting_overlay.dm index 6b0fdbf5151..f00f2040abb 100644 --- a/code/modules/lighting/lighting_overlay.dm +++ b/code/modules/lighting/lighting_overlay.dm @@ -18,6 +18,7 @@ #endif /atom/movable/lighting_overlay/New() + // im too scared to touch this - geeves SSlighting.total_lighting_overlays++ var/turf/T = loc // If this runtimes atleast we'll know what's creating overlays in things that aren't turfs. diff --git a/code/modules/mining/coins.dm b/code/modules/mining/coins.dm index ec23024c186..a862dd95356 100644 --- a/code/modules/mining/coins.dm +++ b/code/modules/mining/coins.dm @@ -17,7 +17,9 @@ var/sides = 2 var/cmineral = null var/last_flip = 0 //Spam limiter -/obj/item/coin/New() + +/obj/item/coin/Initialize() + . = ..() randpixel_xy() /obj/item/coin/gold diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index b37a4586b1e..f9317a7d1df 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -411,9 +411,9 @@ var/list/mineral_can_smooth_with = list( //otherwise, they come out inside a chunk of rock var/obj/item/X if(prob_clean) - X = new /obj/item/archaeological_find(src, new_item_type = F.find_type) + X = new /obj/item/archaeological_find(src, F.find_type) else - X = new /obj/item/ore/strangerock(src, inside_item_type = F.find_type) + X = new /obj/item/ore/strangerock(src, F.find_type) geologic_data.UpdateNearbyArtifactInfo(src) //AAAAAAAAAAAAAAAAAAAAAAAAAA X:geologic_data = geologic_data //AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/code/modules/mob/living/silicon/decoy/decoy.dm b/code/modules/mob/living/silicon/decoy/decoy.dm index 17b44f1028a..ac35842538e 100644 --- a/code/modules/mob/living/silicon/decoy/decoy.dm +++ b/code/modules/mob/living/silicon/decoy/decoy.dm @@ -1,3 +1,4 @@ +// someone please just turn this into a structure /mob/living/silicon/decoy name = "AI" icon = 'icons/mob/AI.dmi'// @@ -5,12 +6,13 @@ anchored = 1 // -- TLE canmove = 0 -/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/Initialize() . = ..() - return INITIALIZE_HINT_NORMAL + mob_list -= src + living_mob_list -= src + silicon_mob_list -= src + icon = 'icons/mob/AI.dmi' + icon_state = "ai" + anchored = 1 + canmove = 0 + return INITIALIZE_HINT_NORMAL \ No newline at end of file diff --git a/code/modules/multiz/basic.dm b/code/modules/multiz/basic.dm index 766fde7ba20..2ed551c7c0e 100644 --- a/code/modules/multiz/basic.dm +++ b/code/modules/multiz/basic.dm @@ -1,8 +1,11 @@ // If you add a more comprehensive system, just untick this file. // WARNING: Only works for up to 17 z-levels! +/obj/effect/landmark/map_data + add_to_landmark_list = FALSE + // If the height is more than 1, we mark all contained levels as connected. -/obj/effect/landmark/map_data/New() +/obj/effect/landmark/map_data/do_landmark_action() SSatlas.height_markers += src /obj/effect/landmark/map_data/proc/setup() diff --git a/code/modules/multiz/zmimic/mimic_movable.dm b/code/modules/multiz/zmimic/mimic_movable.dm index 0f5e465c45c..278c88210b2 100644 --- a/code/modules/multiz/zmimic/mimic_movable.dm +++ b/code/modules/multiz/zmimic/mimic_movable.dm @@ -134,6 +134,7 @@ var/destruction_timer /atom/movable/openspace/overlay/New() + // im too scared to touch this - geeves initialized = TRUE SSzcopy.openspace_overlays += src diff --git a/code/modules/overmap/spacetravel.dm b/code/modules/overmap/spacetravel.dm index 48ae90b7bc1..6d35df31fc3 100644 --- a/code/modules/overmap/spacetravel.dm +++ b/code/modules/overmap/spacetravel.dm @@ -9,6 +9,7 @@ var/list/cached_space = list() known = 0 /obj/effect/overmap/visitable/sector/temporary/New(var/nx, var/ny, var/nz) + // since this is a recent bay port, i assume not calling parent is intentional - geeves | 25/02/2021 loc = locate(nx, ny, current_map.overmap_z) x = nx y = ny diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 9fc1b56dabc..9220b4b2486 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -21,8 +21,6 @@ /******** * photo * ********/ -var/global/photo_count = 0 - /obj/item/photo name = "photo" desc = "An archaic means of visual preservation, kept alive as kitschy memorabilia by paparazzi, conspiracy theorists and teenage girls." @@ -40,9 +38,6 @@ var/global/photo_count = 0 drop_sound = 'sound/items/drop/paper.ogg' pickup_sound = 'sound/items/pickup/paper.ogg' -/obj/item/photo/New() - id = photo_count++ - /obj/item/photo/attack_self(mob/user as mob) user.examinate(src) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 16a0b8c0eaf..d177e6b309e 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -31,15 +31,12 @@ movement_range = 20 energy = 50 -/obj/effect/accelerated_particle/New(loc, dir = 2) - src.forceMove(loc) - src.set_dir(dir) +/obj/effect/accelerated_particle/Initialize(mapload, dir = SOUTH) + . = ..() + set_dir(dir) if(movement_range > 20) movement_range = 20 - spawn(0) - move(1) - return - + INVOKE_ASYNC(src, .proc/move, 1) /obj/effect/accelerated_particle/Collide(atom/A) . = ..() diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index fb4b0105e27..5fc901a8dbd 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -9,9 +9,9 @@ muzzle_type = null -/obj/item/projectile/bullet/chemdart/New() - reagents = new/datum/reagents(reagent_amount) - reagents.my_atom = src +/obj/item/projectile/bullet/chemdart/Initialize() + . = ..() + reagents = new /datum/reagents(reagent_amount, src) /obj/item/projectile/bullet/chemdart/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) if(blocked < 100 && ishuman(target)) diff --git a/code/modules/psionics/interface/ui.dm b/code/modules/psionics/interface/ui.dm index 3beffd94bce..b5a4c229da2 100644 --- a/code/modules/psionics/interface/ui.dm +++ b/code/modules/psionics/interface/ui.dm @@ -4,6 +4,7 @@ var/hidden = TRUE /obj/screen/psi/New(var/mob/living/_owner) + // since this is a recent bay port, i assume this not calling parent is intentional - geeves | 25/02/2021 loc = null owner = _owner update_icon() diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm index fd6e67b93bc..a8491256918 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -41,7 +41,8 @@ var/datum/artifact_find/artifact_find var/last_act = 0 -/obj/structure/boulder/New() +/obj/structure/boulder/Initialize(mapload) + . = ..() icon_state = "boulder[rand(1,4)]" excavation_level = rand(5,50) diff --git a/code/modules/research/xenoarchaeology/finds/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm index 9618ad67884..b1cd9426f32 100644 --- a/code/modules/research/xenoarchaeology/finds/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -32,12 +32,12 @@ var/method = 0// 0 = fire, 1 = brush, 2 = pick origin_tech = list(TECH_MATERIAL = 5) -/obj/item/ore/strangerock/New(loc, var/inside_item_type = 0) - ..(loc) +/obj/item/ore/strangerock/Initialize(mapload, var/inside_item_type = 0) + . = ..() //method = rand(0,2) if(inside_item_type) - inside = new/obj/item/archaeological_find(src, new_item_type = inside_item_type) + inside = new /obj/item/archaeological_find(src, inside_item_type) if(!inside) inside = locate() in contents @@ -84,7 +84,8 @@ icon_state = "ano01" var/find_type = 0 -/obj/item/archaeological_find/New(loc, var/new_item_type) +/obj/item/archaeological_find/Initialize(mapload, var/new_item_type) + . = ..() if(new_item_type) find_type = new_item_type else @@ -553,7 +554,7 @@ if(talkative) new_item.talking_atom = new(new_item) - qdel(src) + return INITIALIZE_HINT_QDEL else if(talkative) - src.talking_atom = new(src) + src.talking_atom = new(src) \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/finds/finds_fossils.dm b/code/modules/research/xenoarchaeology/finds/finds_fossils.dm index cc548b8e00e..6297711b639 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_fossils.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_fossils.dm @@ -9,15 +9,16 @@ desc = "It's a fossil." var/animal = 1 -/obj/item/fossil/base/New() - var/list/l = list("/obj/item/fossil/bone"=9,"/obj/item/fossil/skull"=3, - "/obj/item/fossil/skull/horned"=2) - var/t = pickweight(l) - var/obj/item/W = new t(src.loc) +/obj/item/fossil/base/Initialize() + ..() + var/list/possible_fossils = list(/obj/item/fossil/bone = 9, /obj/item/fossil/skull = 3, /obj/item/fossil/skull/horned = 2) + var/fossil_path = pickweight(possible_fossils) + var/obj/item/fossil = new fossil_path(src.loc) var/turf/T = get_turf(src) if(istype(T, /turf/simulated/mineral)) - T:last_find = W - qdel(src) + var/turf/simulated/mineral/M = T + M.last_find = fossil + return INITIALIZE_HINT_QDEL /obj/item/fossil/bone name = "Fossilised bone" @@ -53,7 +54,8 @@ var/bstate = 0 var/plaque_contents = "Unnamed alien creature" -/obj/skeleton/New() +/obj/skeleton/Initialize(mapload, ...) + . = ..() src.breq = rand(6)+3 src.desc = "An incomplete skeleton, looks like it could use [src.breq-src.bnum] more bones." @@ -100,5 +102,6 @@ desc = "It's fossilised plant remains." animal = 0 -/obj/item/fossil/plant/New() - icon_state = "plant[rand(1,4)]" +/obj/item/fossil/plant/Initialize() + . = ..() + icon_state = "plant[rand(1,4)]" \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/finds/finds_special.dm b/code/modules/research/xenoarchaeology/finds/finds_special.dm index a9d9894a82f..ff1d6c72533 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_special.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_special.dm @@ -64,8 +64,8 @@ var/wight_check_index = 1 var/list/shadow_wights = list() -/obj/item/vampiric/New() - ..() +/obj/item/vampiric/Initialize() + . = ..() START_PROCESSING(SSprocessing, src) listening_objects += src @@ -157,8 +157,8 @@ var/turf/target_turf var/loc_last_process -/obj/effect/decal/cleanable/blood/splatter/animated/New() - ..() +/obj/effect/decal/cleanable/blood/splatter/animated/Initialize(mapload) + . = ..() START_PROCESSING(SSprocessing, src) loc_last_process = src.loc @@ -192,7 +192,8 @@ icon_state = "shade" density = 1 -/obj/effect/shadow_wight/New() +/obj/effect/shadow_wight/Initialize(mapload, ...) + . = ..() START_PROCESSING(SSprocessing, src) /obj/effect/shadow_wight/Destroy() diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index ccaf2104c3d..9beea01b756 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -26,11 +26,12 @@ var/source_rock = "/turf/simulated/mineral/" var/datum/geosample/geological_data -/obj/item/rocksliver/New() +/obj/item/rocksliver/Initialize() + . = ..() icon_state = "sliver[rand(1,3)]" randpixel_xy() create_reagents(50) - reagents.add_reagent(/decl/reagent/stone_dust,50) + reagents.add_reagent(/decl/reagent/stone_dust, 50) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Geosample datum diff --git a/code/modules/research/xenoarchaeology/misc.dm b/code/modules/research/xenoarchaeology/misc.dm index 8c8ca46034a..309f79c3807 100644 --- a/code/modules/research/xenoarchaeology/misc.dm +++ b/code/modules/research/xenoarchaeology/misc.dm @@ -5,7 +5,9 @@ notices = 5 icon_state = "nboard05" -/obj/structure/noticeboard/anomaly/New() +/obj/structure/noticeboard/anomaly/Initialize() + . = ..() + //add some memos var/obj/item/paper/P = new() P.name = "Memo RE: proper analysis procedure" diff --git a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm index 157c5ef50d5..a483f5497ff 100644 --- a/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm +++ b/code/modules/research/xenoarchaeology/tools/ano_device_battery.dm @@ -8,8 +8,9 @@ var/stored_charge = 0 var/effect_id = "" -/obj/item/anobattery/New() - battery_effect = new() +/obj/item/anobattery/Initialize() + . = ..() + battery_effect = new /datum/artifact_effect() /obj/item/anobattery/proc/UpdateSprite() var/p = (stored_charge/capacity)*100 diff --git a/code/modules/spell_system/spells/hand/hand.dm b/code/modules/spell_system/spells/hand/hand.dm deleted file mode 100644 index 2188bdbc808..00000000000 --- a/code/modules/spell_system/spells/hand/hand.dm +++ /dev/null @@ -1,33 +0,0 @@ -/spell/hand - var/min_range = 0 - var/list/compatible_targets = list() - var/casts = 1 - var/spell_delay = 5 - var/move_delay - var/click_delay - var/hand_state = "magic" - -/spell/hand/choose_targets(mob/user = usr) - return list(user) - -/spell/hand/cast(list/targets, mob/user) - for(var/mob/M in targets) - if(M.get_active_hand()) - to_chat(user, "You need an empty hand to cast this spell.") - return - var/obj/item/magic_hand/H = new(src) - if(!M.put_in_active_hand(H)) - qdel(H) - return - to_chat(user, "You ready the [name] spell ([casts]/[casts] charges).") - -/spell/hand/proc/valid_target(var/atom/a,var/mob/user) //we use seperate procs for our target checking for the hand spells. - var/distance = get_dist(a,user) - if((min_range && distance < min_range) || (range && distance > range)) - return 0 - if(!is_type_in_list(a,compatible_targets)) - return 0 - return 1 - -/spell/hand/proc/cast_hand(var/atom/a,var/mob/user) //same for casting. - return 1 diff --git a/code/modules/spell_system/spells/hand/hand_item.dm b/code/modules/spell_system/spells/hand/hand_item.dm deleted file mode 100644 index e78c6966114..00000000000 --- a/code/modules/spell_system/spells/hand/hand_item.dm +++ /dev/null @@ -1,56 +0,0 @@ -/*much like grab this item is used primarily for the utility it provides. -Basically: I can use it to target things where I click. I can then pass these targets to a spell and target things not using a list. -*/ - -/obj/item/magic_hand - name = "Magic Hand" - icon = 'icons/mob/screen/generic.dmi' - flags = 0 - abstract = 1 - w_class = ITEMSIZE_HUGE - icon_state = "grabbed1" - var/next_spell_time = 0 - var/spell/hand/hand_spell - var/casts = 0 - -/obj/item/magic_hand/New(var/spell/hand/S) - hand_spell = S - name = "[name] ([S.name])" - casts = S.casts - icon_state = S.hand_state - -/obj/item/magic_hand/attack() //can't be used to actually bludgeon things - return 1 - -/obj/item/magic_hand/afterattack(atom/A, mob/living/user) - if(!hand_spell) //no spell? Die. - user.drop_from_inventory(src) - - if(!hand_spell.valid_target(A,user)) - return - if(world.time < next_spell_time) - to_chat(user, "The spell isn't ready yet!") - return - - if(hand_spell.cast_hand(A,user)) - next_spell_time = world.time + hand_spell.spell_delay - casts-- - if(hand_spell.move_delay) - user.setMoveCooldown(hand_spell.move_delay) - if(hand_spell.click_delay) - user.setClickCooldown(hand_spell.move_delay) - if(!casts) - user.drop_from_inventory(src) - return - to_chat(user, "[casts]/[hand_spell.casts] charges left.") - -/obj/item/magic_hand/throw_at() //no throwing pls - usr.drop_from_inventory(src) - -/obj/item/magic_hand/dropped() //gets deleted on drop - loc = null - qdel(src) - -/obj/item/magic_hand/Destroy() //better save than sorry. - hand_spell = null - return ..() diff --git a/html/changelogs/geeves-new_check.yml b/html/changelogs/geeves-new_check.yml new file mode 100644 index 00000000000..b7d30bb8367 --- /dev/null +++ b/html/changelogs/geeves-new_check.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - refactor: "Refactors how a lot of items handles being initialized. A full list of affected items can be found in the New Check PR." \ No newline at end of file