diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm
index 9aa0eeb4789..f789c869865 100644
--- a/code/game/objects/items/weapons/cigs.dm
+++ b/code/game/objects/items/weapons/cigs.dm
@@ -40,8 +40,8 @@ LIGHTERS ARE IN LIGHTERS.DM
"Grey" = 'icons/mob/clothing/species/grey/mask.dmi')
-/obj/item/clothing/mask/cigarette/New()
- ..()
+/obj/item/clothing/mask/cigarette/Initialize(mapload)
+ . = ..()
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 30
reagents.set_reacting(FALSE) // so it doesn't react until you light it
if(list_reagents)
@@ -261,8 +261,8 @@ LIGHTERS ARE IN LIGHTERS.DM
throw_speed = 0.5
item_state = "spliffoff"
-/obj/item/clothing/mask/cigarette/rollie/New()
- ..()
+/obj/item/clothing/mask/cigarette/rollie/Initialize(mapload)
+ . = ..()
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
@@ -275,8 +275,8 @@ LIGHTERS ARE IN LIGHTERS.DM
desc = "A manky old roach, or for non-stoners, a used rollup."
icon_state = "roach"
-/obj/item/cigbutt/roach/New()
- ..()
+/obj/item/cigbutt/roach/Initialize(mapload)
+ . = ..()
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
@@ -322,8 +322,8 @@ LIGHTERS ARE IN LIGHTERS.DM
w_class = WEIGHT_CLASS_TINY
throwforce = 1
-/obj/item/cigbutt/New()
- ..()
+/obj/item/cigbutt/Initialize(mapload)
+ . = ..()
pixel_x = rand(-10,10)
pixel_y = rand(-10,10)
transform = turn(transform,rand(0,360))
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 135842141b6..e98cb47de1e 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -364,8 +364,8 @@
var/remaining_uses //Set by the changeling ability.
-/obj/item/shield/changeling/New()
- ..()
+/obj/item/shield/changeling/Initialize(mapload)
+ . = ..()
if(ismob(loc))
loc.visible_message("The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!", "We inflate our hand into a strong shield.", "You hear organic matter ripping and tearing!")
@@ -409,8 +409,8 @@
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 90) //No armor at all
-/obj/item/clothing/suit/space/changeling/New()
- ..()
+/obj/item/clothing/suit/space/changeling/Initialize(mapload)
+ . = ..()
if(ismob(loc))
loc.visible_message("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around [loc.p_their()] body!", "We inflate our flesh, creating a spaceproof suit!", "You hear organic matter ripping and tearing!")
START_PROCESSING(SSobj, src)
@@ -458,8 +458,8 @@
heat_protection = 0
sprite_sheets = null
-/obj/item/clothing/suit/armor/changeling/New()
- ..()
+/obj/item/clothing/suit/armor/changeling/Initialize(mapload)
+ . = ..()
if(ismob(loc))
loc.visible_message("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!", "We harden our flesh, creating a suit of armor!", "You hear organic matter ripping and tearing!")
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index fe2a9ffaa53..50ff83049ce 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -702,10 +702,10 @@ BLIND // can't see anything
var/rolled_down = FALSE
var/basecolor
-/obj/item/clothing/under/rank/New()
+/obj/item/clothing/under/rank/Initialize(mapload)
+ . = ..()
if(random_sensor)
sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_VITALS, SENSOR_COORDS)
- ..()
/obj/item/clothing/under/Destroy()
QDEL_LIST(accessories)
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 54d0e0193b4..799e8ab5315 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -1,4 +1,4 @@
-/obj/item/clothing/glasses/New()
+/obj/item/clothing/glasses/Initialize(mapload)
. = ..()
if(prescription_upgradable && prescription)
// Pre-upgraded upgradable glasses
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 8c12be1b1e0..b80d346bf30 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -65,16 +65,16 @@
item_color="yellow"
resistance_flags = NONE
-/obj/item/clothing/gloves/color/fyellow/New()
- ..()
+/obj/item/clothing/gloves/color/fyellow/Initialize(mapload)
+ . = ..()
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
/obj/item/clothing/gloves/color/fyellow/old
name = "worn out insulated gloves"
desc = "Old and worn out insulated gloves, hopefully they still work."
-/obj/item/clothing/gloves/color/fyellow/old/New()
- ..()
+/obj/item/clothing/gloves/color/fyellow/old/Initialize(mapload)
+ . = ..()
siemens_coefficient = pick(0,0,0,0.5,0.5,0.5,0.75)
/obj/item/clothing/gloves/color/black
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 62fdb63a927..0dd5c01c5e0 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -91,8 +91,8 @@
/obj/item/clothing/gloves/color/yellow/stun/get_cell()
return cell
-/obj/item/clothing/gloves/color/yellow/stun/New()
- ..()
+/obj/item/clothing/gloves/color/yellow/stun/Initialize(mapload)
+ . = ..()
update_icon(UPDATE_OVERLAYS)
/obj/item/clothing/gloves/color/yellow/stun/Destroy()
diff --git a/code/modules/clothing/gloves/rings.dm b/code/modules/clothing/gloves/rings.dm
index 1a608b31af7..1de30c936a8 100644
--- a/code/modules/clothing/gloves/rings.dm
+++ b/code/modules/clothing/gloves/rings.dm
@@ -11,8 +11,8 @@
var/stud = 0
var/ring_color = "iron"
-/obj/item/clothing/gloves/ring/New()
- ..()
+/obj/item/clothing/gloves/ring/Initialize(mapload)
+ . = ..()
update_icon(UPDATE_ICON_STATE)
/obj/item/clothing/gloves/ring/update_icon_state()
@@ -73,10 +73,10 @@
icon_state = "redring"
ring_color = "red"
-/obj/item/clothing/gloves/ring/plastic/random/New()
+/obj/item/clothing/gloves/ring/plastic/random/Initialize(mapload)
ring_color = pick("white","blue","red")
name = "[ring_color] plastic ring"
- ..()
+ . = ..()
// weird
/obj/item/clothing/gloves/ring/glass
diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm
index 16af8fca4f5..b5aec5bc931 100644
--- a/code/modules/clothing/spacesuits/ert.dm
+++ b/code/modules/clothing/spacesuits/ert.dm
@@ -244,8 +244,8 @@
)
hide_tail_by_species = list("Unathi, Tajaran, Vox, Vulpkanin")
-/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New()
- ..()
+/obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize(mapload)
+ . = ..()
new /obj/item/nullrod(src)
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 4030d17e10a..3e3c3ad0ae2 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -172,10 +172,28 @@
"Vulpkanin" = 'icons/obj/clothing/species/vulpkanin/suits.dmi'
)
-/obj/item/clothing/suit/space/hardsuit/New()
- if(jetpack && ispath(jetpack))
+/obj/item/clothing/suit/space/hardsuit/Initialize(mapload)
+ . = ..()
+ MakeHelmet()
+ if(ispath(jetpack))
jetpack = new jetpack(src)
- ..()
+
+/obj/item/clothing/suit/space/hardsuit/Destroy()
+ QDEL_NULL(helmet)
+ QDEL_NULL(jetpack)
+ return ..()
+
+/obj/item/clothing/head/helmet/space/hardsuit/Destroy()
+ suit = null
+ return ..()
+
+/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet()
+ if(!helmettype)
+ return
+ if(!helmet)
+ var/obj/item/clothing/head/helmet/space/hardsuit/W = new helmettype(src)
+ W.suit = src
+ helmet = W
/obj/item/clothing/suit/space/hardsuit/attack_self(mob/user)
user.changeNext_move(CLICK_CD_MELEE)
@@ -344,11 +362,15 @@
/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon_state()
icon_state = "hardsuit[on]-[item_color]"
-/obj/item/clothing/head/helmet/space/hardsuit/syndi/New()
- ..()
+/obj/item/clothing/head/helmet/space/hardsuit/syndi/Initialize(mapload)
+ . = ..()
if(istype(loc, /obj/item/clothing/suit/space/hardsuit/syndi))
linkedsuit = loc
+/obj/item/clothing/head/helmet/space/hardsuit/syndi/Destroy()
+ linkedsuit = null
+ return ..()
+
/obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) //Toggle Helmet
if(!isturf(user.loc))
to_chat(user, "You cannot toggle your helmet while in this [user.loc]!" )
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index a871eb5171a..c8f9cc3124f 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -24,8 +24,8 @@
species_restricted = list("Plasmaman")
sprite_sheets = list("Plasmaman" = 'icons/mob/clothing/species/plasmaman/helmet.dmi')
-/obj/item/clothing/head/helmet/space/plasmaman/New()
- ..()
+/obj/item/clothing/head/helmet/space/plasmaman/Initialize(mapload)
+ . = ..()
visor_toggling()
update_icon()
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 64b924dfe24..7c7e796463a 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -181,8 +181,8 @@
name = "\improper super-hero E-N suit"
icon_state = "ensuit"
-/obj/item/clothing/suit/corgisuit/super_hero/en/New()
- ..()
+/obj/item/clothing/suit/corgisuit/super_hero/en/Initialize(mapload)
+ . = ..()
START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/corgisuit/super_hero/en/Destroy()
diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm
index 6d198a28b1e..cca318674d4 100644
--- a/code/modules/clothing/suits/storage.dm
+++ b/code/modules/clothing/suits/storage.dm
@@ -2,8 +2,8 @@
var/obj/item/storage/internal/pockets
w_class = WEIGHT_CLASS_NORMAL //we don't want these to be able to fit in their own pockets.
-/obj/item/clothing/suit/storage/New()
- ..()
+/obj/item/clothing/suit/storage/Initialize(mapload)
+ . = ..()
pockets = new/obj/item/storage/internal(src)
pockets.storage_slots = 2 //two slots
pockets.max_w_class = WEIGHT_CLASS_SMALL //fit only pocket sized items
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index 398ea9d959b..422674268a1 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -1,27 +1,5 @@
//Hardsuit toggle code
-/obj/item/clothing/suit/space/hardsuit/New()
- MakeHelmet()
- ..()
-/obj/item/clothing/suit/space/hardsuit/Destroy()
- if(helmet)
- helmet.suit = null
- QDEL_NULL(helmet)
- QDEL_NULL(jetpack)
- return ..()
-
-/obj/item/clothing/head/helmet/space/hardsuit/Destroy()
- if(suit)
- suit.helmet = null
- return ..()
-
-/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet()
- if(!helmettype)
- return
- if(!helmet)
- var/obj/item/clothing/head/helmet/space/hardsuit/W = new helmettype(src)
- W.suit = src
- helmet = W
/obj/item/clothing/suit/space/hardsuit/ui_action_click()
..()
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 0e4a4b110d0..db8bbdfa676 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -12,8 +12,8 @@
var/image/inv_overlay = null //overlay used when attached to clothing.
var/allow_duplicates = TRUE // Allow accessories of the same type.
-/obj/item/clothing/accessory/New()
- ..()
+/obj/item/clothing/accessory/Initialize(mapload)
+ . = ..()
inv_overlay = image("icon" = 'icons/obj/clothing/ties_overlay.dmi', "icon_state" = "[item_color? "[item_color]" : "[icon_state]"]")
/obj/item/clothing/accessory/Moved(atom/OldLoc, Dir, Forced)
diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm
index dc15bd65d88..7d11d12d73f 100644
--- a/code/modules/clothing/under/accessories/storage.dm
+++ b/code/modules/clothing/under/accessories/storage.dm
@@ -9,8 +9,8 @@
actions_types = list(/datum/action/item_action/accessory/storage)
w_class = WEIGHT_CLASS_NORMAL // so it doesn't fit in pockets
-/obj/item/clothing/accessory/storage/New()
- ..()
+/obj/item/clothing/accessory/storage/Initialize(mapload)
+ . = ..()
hold = new/obj/item/storage/internal(src)
hold.storage_slots = slots
@@ -104,8 +104,8 @@
item_color = "unathiharness2"
slots = 2
-/obj/item/clothing/accessory/storage/knifeharness/New()
- ..()
+/obj/item/clothing/accessory/storage/knifeharness/Initialize(mapload)
+ . = ..()
hold.max_combined_w_class = 4
hold.can_hold = list(/obj/item/hatchet/unathiknife, /obj/item/kitchen/knife)
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 1d2cf1b2da9..8d4631655e2 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -2,8 +2,8 @@
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
dyeable = TRUE
-/obj/item/clothing/under/color/random/New()
- ..()
+/obj/item/clothing/under/color/random/Initialize(mapload)
+ . = ..()
var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color/blackf, /obj/item/clothing/under/color/blue/dodgeball, /obj/item/clothing/under/color/orange/prison, /obj/item/clothing/under/color/red/dodgeball, /obj/item/clothing/under/color/red/jersey, /obj/item/clothing/under/color/blue/jersey)
var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - excluded)
name = initial(C.name)
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 877e44f00ba..ff758db20cb 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -159,8 +159,8 @@
item_color = "officer"
displays_id = FALSE
-/obj/item/clothing/under/rank/centcom/representative/New()
- ..()
+/obj/item/clothing/under/rank/centcom/representative/Initialize(mapload)
+ . = ..()
desc = "Gold trim on space-black cloth, this uniform bears [station_name()] on the left shoulder."
/obj/item/clothing/under/rank/centcom/magistrate
@@ -171,8 +171,8 @@
item_color = "officer"
displays_id = FALSE
-/obj/item/clothing/under/rank/centcom/magistrate/New()
- ..()
+/obj/item/clothing/under/rank/centcom/magistrate/Initialize(mapload)
+ . = ..()
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears [station_name()] on the left shoulder."
/obj/item/clothing/under/rank/centcom/diplomatic
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index db464598e0c..4074f32e452 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -85,8 +85,8 @@
ink.icon += rgb(tattoo_r, tattoo_g, tattoo_b, 190)
. += ink
-/obj/item/fluff/tattoo_gun/New()
- ..()
+/obj/item/fluff/tattoo_gun/Initialize(mapload)
+ . = ..()
update_icon()
/obj/item/fluff/tattoo_gun/elliot_cybernetic_tat
@@ -635,8 +635,8 @@
icon_state = "pirate"
item_state = "pirate"
-/obj/item/clothing/head/pirate/fluff/stumpy/New()
- ..()
+/obj/item/clothing/head/pirate/fluff/stumpy/Initialize(mapload)
+ . = ..()
START_PROCESSING(SSobj, src)
/obj/item/clothing/head/pirate/fluff/stumpy/Destroy()
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index ccdbcf4d885..0abd614d4fa 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -55,15 +55,19 @@
armor = list(MELEE = 70, BULLET = 40, LASER = 10, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 100)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/melee/spellblade)
-/obj/item/clothing/suit/space/hostile_environment/New()
- ..()
- AddComponent(/datum/component/spraycan_paintable)
+
+/obj/item/clothing/suit/space/hostile_environment/Initialize(mapload)
+ . = ..()
START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/space/hostile_environment/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
+/obj/item/clothing/suit/space/hostile_environment/ComponentInitialize()
+ ..()
+ AddComponent(/datum/component/spraycan_paintable)
+
/obj/item/clothing/suit/space/hostile_environment/process()
var/mob/living/carbon/C = loc
if(istype(C) && prob(2)) //cursed by bubblegum
@@ -83,10 +87,13 @@
armor = list(MELEE = 70, BULLET = 40, LASER = 10, ENERGY = 10, BOMB = 50, BIO = 100, RAD = 100, FIRE = 100, ACID = 100)
resistance_flags = FIRE_PROOF | LAVA_PROOF
-/obj/item/clothing/head/helmet/space/hostile_environment/New()
+/obj/item/clothing/head/helmet/space/hostile_environment/Initialize(mapload)
+ . = ..()
+ update_icon()
+
+/obj/item/clothing/head/helmet/space/hostile_environment/ComponentInitialize()
..()
AddComponent(/datum/component/spraycan_paintable)
- update_icon()
/obj/item/clothing/head/helmet/space/hostile_environment/update_overlays()
. = ..()