More initialize tweaks (#2971)

changes:

Organs now use Initialize().
The observe message now shows the configured respawn delay instead of always 30 minutes.
Seed datums no longer have a timer in New().
External organs no longer have a timer in New()/Initialize()
Converted some spawns in organs to timers.
Floor init no longer breaks to plating first for mapped in tiles.
Added the INITIALIZE_IMMEDIATE macro to make Initialize() not wait for SSatoms init.
Mannequins now use INITIALIZE_IMMEDIATE instead of a custom-defined New().
Mannequins (from get_mannequin) now delete themselves if unused for 5 minutes or longer.
This commit is contained in:
Lohikar
2017-07-28 04:00:36 -05:00
committed by Erki
parent 92d4ccec5a
commit f8cdcd013c
14 changed files with 254 additions and 222 deletions

View File

@@ -28,6 +28,18 @@
#define TIMER_ID_NULL -1 #define TIMER_ID_NULL -1
// -- SSatoms stuff -- // -- SSatoms stuff --
// Technically this check will fail if someone loads a map mid-round, but that's not enabled right now.
#define SSATOMS_IS_PROBABLY_DONE (SSatoms.initialized == INITIALIZATION_INNEW_REGULAR)
//type and all subtypes should always call Initialize in New()
#define INITIALIZE_IMMEDIATE(X) ##X/New(loc, ...){\
..();\
if(!initialized) {\
args[1] = TRUE;\
SSatoms.InitAtom(src, args);\
}\
}
// SSatoms Initialization state. // SSatoms Initialization state.
#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize #define INITIALIZATION_INSSATOMS 0 //New should not call Initialize
#define INITIALIZATION_INNEW_MAPLOAD 1 //New should call Initialize(TRUE) #define INITIALIZATION_INNEW_MAPLOAD 1 //New should call Initialize(TRUE)

View File

@@ -55,3 +55,10 @@
if (!.) if (!.)
. = new /mob/living/carbon/human/dummy/mannequin . = new /mob/living/carbon/human/dummy/mannequin
mannequins[ckey] = . mannequins[ckey] = .
addtimer(CALLBACK(src, .proc/del_mannequin, ckey), 5 MINUTES, TIMER_UNIQUE | TIMER_OVERRIDE)
/datum/controller/subsystem/mobs/proc/del_mannequin(ckey)
var/mannequin = mannequins[ckey]
qdel(mannequin)
mannequins -= ckey

View File

@@ -31,9 +31,10 @@
if(!floortype && initial_flooring) if(!floortype && initial_flooring)
floortype = initial_flooring floortype = initial_flooring
if(floortype) if(floortype)
set_flooring(get_flooring_data(floortype)) set_flooring(get_flooring_data(floortype), mapload)
/turf/simulated/floor/proc/set_flooring(var/decl/flooring/newflooring) /turf/simulated/floor/proc/set_flooring(decl/flooring/newflooring, mapload)
if (!mapload)
make_plating(defer_icon_update = 1) make_plating(defer_icon_update = 1)
flooring = newflooring flooring = newflooring
update_icon(1) update_icon(1)

View File

@@ -24,8 +24,9 @@
var/has_mob_product var/has_mob_product
var/force_layer var/force_layer
/datum/seed/New() /datum/seed/proc/setup_traits()
/datum/seed/New()
set_trait(TRAIT_IMMUTABLE, 0) // If set, plant will never mutate. If -1, plant is highly mutable. set_trait(TRAIT_IMMUTABLE, 0) // If set, plant will never mutate. If -1, plant is highly mutable.
set_trait(TRAIT_HARVEST_REPEAT, 0) // If 1, this plant will fruit repeatedly. set_trait(TRAIT_HARVEST_REPEAT, 0) // If 1, this plant will fruit repeatedly.
set_trait(TRAIT_PRODUCES_POWER, 0) // Can be used to make a battery. set_trait(TRAIT_PRODUCES_POWER, 0) // Can be used to make a battery.
@@ -62,7 +63,9 @@
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25) // Plant eats this much per tick. set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25) // Plant eats this much per tick.
set_trait(TRAIT_PLANT_COLOUR, "#46B543") // Colour of the plant icon. set_trait(TRAIT_PLANT_COLOUR, "#46B543") // Colour of the plant icon.
addtimer(CALLBACK(src, .proc/update_growth_stages), 5) setup_traits()
update_growth_stages()
/datum/seed/proc/get_trait(var/trait) /datum/seed/proc/get_trait(var/trait)
return traits["[trait]"] return traits["[trait]"]

View File

@@ -7,7 +7,7 @@
mutants = list("icechili") mutants = list("icechili")
kitchen_tag = "chili" kitchen_tag = "chili"
/datum/seed/chili/New() /datum/seed/chili/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_MATURATION,5)
@@ -28,7 +28,7 @@
chems = list("frostoil" = list(3,5), "nutriment" = list(1,50)) chems = list("frostoil" = list(3,5), "nutriment" = list(1,50))
kitchen_tag = "icechili" kitchen_tag = "icechili"
/datum/seed/chili/ice/New() /datum/seed/chili/ice/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,4) set_trait(TRAIT_MATURATION,4)
set_trait(TRAIT_PRODUCTION,4) set_trait(TRAIT_PRODUCTION,4)
@@ -43,7 +43,7 @@
chems = list("nutriment" = list(1,10), "berryjuice" = list(10,10)) chems = list("nutriment" = list(1,10), "berryjuice" = list(10,10))
kitchen_tag = "berries" kitchen_tag = "berries"
/datum/seed/berry/New() /datum/seed/berry/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_JUICY,1) set_trait(TRAIT_JUICY,1)
@@ -64,7 +64,7 @@
mutants = null mutants = null
chems = list("nutriment" = list(1,10), "uranium" = list(3,5)) chems = list("nutriment" = list(1,10), "uranium" = list(3,5))
/datum/seed/berry/glow/New() /datum/seed/berry/glow/setup_traits()
..() ..()
set_trait(TRAIT_SPREAD,1) set_trait(TRAIT_SPREAD,1)
set_trait(TRAIT_BIOLUM,1) set_trait(TRAIT_BIOLUM,1)
@@ -84,7 +84,7 @@
mutants = list("deathberries") mutants = list("deathberries")
chems = list("nutriment" = list(1), "toxin" = list(3,5), "poisonberryjuice" = list(10,5)) chems = list("nutriment" = list(1), "toxin" = list(3,5), "poisonberryjuice" = list(10,5))
/datum/seed/berry/poison/New() /datum/seed/berry/poison/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCT_COLOUR,"#6DC961") set_trait(TRAIT_PRODUCT_COLOUR,"#6DC961")
set_trait(TRAIT_WATER_CONSUMPTION, 3) set_trait(TRAIT_WATER_CONSUMPTION, 3)
@@ -97,7 +97,7 @@
mutants = null mutants = null
chems = list("nutriment" = list(1), "toxin" = list(3,3), "lexorin" = list(1,5)) chems = list("nutriment" = list(1), "toxin" = list(3,3), "lexorin" = list(1,5))
/datum/seed/berry/poison/death/New() /datum/seed/berry/poison/death/setup_traits()
..() ..()
set_trait(TRAIT_YIELD,3) set_trait(TRAIT_YIELD,3)
set_trait(TRAIT_POTENCY,50) set_trait(TRAIT_POTENCY,50)
@@ -114,7 +114,7 @@
kitchen_tag = "nettle" kitchen_tag = "nettle"
kitchen_tag = "nettle" kitchen_tag = "nettle"
/datum/seed/nettle/New() /datum/seed/nettle/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -134,7 +134,7 @@
chems = list("nutriment" = list(1,50), "pacid" = list(0,1)) chems = list("nutriment" = list(1,50), "pacid" = list(0,1))
kitchen_tag = "deathnettle" kitchen_tag = "deathnettle"
/datum/seed/nettle/death/New() /datum/seed/nettle/death/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_YIELD,2) set_trait(TRAIT_YIELD,2)
@@ -150,7 +150,7 @@
chems = list("nutriment" = list(1,10), "tomatojuice" = list(10,10)) chems = list("nutriment" = list(1,10), "tomatojuice" = list(10,10))
kitchen_tag = "tomato" kitchen_tag = "tomato"
/datum/seed/tomato/New() /datum/seed/tomato/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_JUICY,1) set_trait(TRAIT_JUICY,1)
@@ -173,7 +173,7 @@
chems = list("nutriment" = list(1,10), "blood" = list(1,5)) chems = list("nutriment" = list(1,10), "blood" = list(1,5))
splat_type = /obj/effect/decal/cleanable/blood/splatter splat_type = /obj/effect/decal/cleanable/blood/splatter
/datum/seed/tomato/blood/New() /datum/seed/tomato/blood/setup_traits()
..() ..()
set_trait(TRAIT_YIELD,3) set_trait(TRAIT_YIELD,3)
set_trait(TRAIT_PRODUCT_COLOUR,"#FF0000") set_trait(TRAIT_PRODUCT_COLOUR,"#FF0000")
@@ -186,7 +186,7 @@
can_self_harvest = 1 can_self_harvest = 1
has_mob_product = /mob/living/simple_animal/tomato has_mob_product = /mob/living/simple_animal/tomato
/datum/seed/tomato/killer/New() /datum/seed/tomato/killer/setup_traits()
..() ..()
set_trait(TRAIT_YIELD,2) set_trait(TRAIT_YIELD,2)
set_trait(TRAIT_PRODUCT_COLOUR,"#A86747") set_trait(TRAIT_PRODUCT_COLOUR,"#A86747")
@@ -198,7 +198,7 @@
mutants = list("bluespacetomato") mutants = list("bluespacetomato")
chems = list("nutriment" = list(1,20), "lube" = list(1,5)) chems = list("nutriment" = list(1,20), "lube" = list(1,5))
/datum/seed/tomato/blue/New() /datum/seed/tomato/blue/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCT_COLOUR,"#4D86E8") set_trait(TRAIT_PRODUCT_COLOUR,"#4D86E8")
set_trait(TRAIT_PLANT_COLOUR,"#070AAD") set_trait(TRAIT_PLANT_COLOUR,"#070AAD")
@@ -210,7 +210,7 @@
mutants = null mutants = null
chems = list("nutriment" = list(1,20), "singulo" = list(10,5)) chems = list("nutriment" = list(1,20), "singulo" = list(10,5))
/datum/seed/tomato/blue/teleport/New() /datum/seed/tomato/blue/teleport/setup_traits()
..() ..()
set_trait(TRAIT_TELEPORTING,1) set_trait(TRAIT_TELEPORTING,1)
set_trait(TRAIT_PRODUCT_COLOUR,"#00E5FF") set_trait(TRAIT_PRODUCT_COLOUR,"#00E5FF")
@@ -226,7 +226,7 @@
chems = list("nutriment" = list(1,10)) chems = list("nutriment" = list(1,10))
kitchen_tag = "eggplant" kitchen_tag = "eggplant"
/datum/seed/eggplant/New() /datum/seed/eggplant/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -246,7 +246,7 @@
chems = list("nutriment" = list(15,30)) chems = list("nutriment" = list(15,30))
kitchen_tag = "realeggplant" kitchen_tag = "realeggplant"
/datum/seed/realeggplant/New() /datum/seed/realeggplant/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,4) set_trait(TRAIT_MATURATION,4)
@@ -268,7 +268,7 @@
chems = list("nutriment" = list(1,10)) chems = list("nutriment" = list(1,10))
kitchen_tag = "apple" kitchen_tag = "apple"
/datum/seed/apple/New() /datum/seed/apple/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -294,7 +294,7 @@
chems = list("nutriment" = list(1,10), "gold" = list(1,5)) chems = list("nutriment" = list(1,10), "gold" = list(1,5))
kitchen_tag = "goldapple" kitchen_tag = "goldapple"
/datum/seed/apple/gold/New() /datum/seed/apple/gold/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_MATURATION,10)
set_trait(TRAIT_PRODUCTION,10) set_trait(TRAIT_PRODUCTION,10)
@@ -311,7 +311,7 @@
chems = list("nutriment" = list(1), "space_drugs" = list(1,8), "kelotane" = list(1,8,1), "bicaridine" = list(1,10,1), "toxin" = list(1,10)) chems = list("nutriment" = list(1), "space_drugs" = list(1,8), "kelotane" = list(1,8,1), "bicaridine" = list(1,10,1), "toxin" = list(1,10))
kitchen_tag = "ambrosia" kitchen_tag = "ambrosia"
/datum/seed/ambrosia/New() /datum/seed/ambrosia/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -331,7 +331,7 @@
chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "space_drugs" = list(1,10)) chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "space_drugs" = list(1,10))
kitchen_tag = "ambrosiadeus" kitchen_tag = "ambrosiadeus"
/datum/seed/ambrosia/deus/New() /datum/seed/ambrosia/deus/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCT_COLOUR,"#A3F0AD") set_trait(TRAIT_PRODUCT_COLOUR,"#A3F0AD")
set_trait(TRAIT_PLANT_COLOUR,"#2A9C61") set_trait(TRAIT_PLANT_COLOUR,"#2A9C61")
@@ -347,7 +347,7 @@
splat_type = /obj/effect/plant splat_type = /obj/effect/plant
kitchen_tag = "mushroom" kitchen_tag = "mushroom"
/datum/seed/mushroom/New() /datum/seed/mushroom/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,7) set_trait(TRAIT_MATURATION,7)
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
@@ -373,7 +373,7 @@
splat_type = /obj/effect/plant splat_type = /obj/effect/plant
kitchen_tag = "koisspore" kitchen_tag = "koisspore"
/datum/seed/koisspore/New() /datum/seed/koisspore/setup_traits()
..() ..()
set_trait(TRAIT_SPREAD,1) set_trait(TRAIT_SPREAD,1)
set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_MATURATION,5)
@@ -396,7 +396,7 @@
display_name = "brown mold" display_name = "brown mold"
mutants = null mutants = null
/datum/seed/mushroom/mold/New() /datum/seed/mushroom/mold/setup_traits()
..() ..()
set_trait(TRAIT_SPREAD,1) set_trait(TRAIT_SPREAD,1)
set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_MATURATION,10)
@@ -414,7 +414,7 @@
chems = list("nutriment" = list(2,10)) chems = list("nutriment" = list(2,10))
kitchen_tag = "plumphelmet" kitchen_tag = "plumphelmet"
/datum/seed/mushroom/plump/New() /datum/seed/mushroom/plump/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_YIELD,4) set_trait(TRAIT_YIELD,4)
@@ -432,7 +432,7 @@
can_self_harvest = 1 can_self_harvest = 1
has_mob_product = /mob/living/simple_animal/mushroom has_mob_product = /mob/living/simple_animal/mushroom
/datum/seed/mushroom/plump/walking/New() /datum/seed/mushroom/plump/walking/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_YIELD,1) set_trait(TRAIT_YIELD,1)
@@ -446,7 +446,7 @@
mutants = list("libertycap","glowshroom") mutants = list("libertycap","glowshroom")
chems = list("nutriment" = list(1,50), "psilocybin" = list(3,5)) chems = list("nutriment" = list(1,50), "psilocybin" = list(3,5))
/datum/seed/mushroom/hallucinogenic/New() /datum/seed/mushroom/hallucinogenic/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_MATURATION,10)
set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_PRODUCTION,5)
@@ -464,7 +464,7 @@
mutants = null mutants = null
chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25)) chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25))
/datum/seed/mushroom/hallucinogenic/strong/New() /datum/seed/mushroom/hallucinogenic/strong/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
set_trait(TRAIT_POTENCY,15) set_trait(TRAIT_POTENCY,15)
@@ -480,7 +480,7 @@
mutants = list("destroyingangel","plastic") mutants = list("destroyingangel","plastic")
chems = list("nutriment" = list(1), "amatoxin" = list(3,3), "psilocybin" = list(1,25)) chems = list("nutriment" = list(1), "amatoxin" = list(3,3), "psilocybin" = list(1,25))
/datum/seed/mushroom/poison/New() /datum/seed/mushroom/poison/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_MATURATION,10)
set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_PRODUCTION,5)
@@ -498,7 +498,7 @@
mutants = null mutants = null
chems = list("nutriment" = list(1,50), "amatoxin" = list(13,3), "psilocybin" = list(1,25)) chems = list("nutriment" = list(1,50), "amatoxin" = list(13,3), "psilocybin" = list(1,25))
/datum/seed/mushroom/poison/death/New() /datum/seed/mushroom/poison/death/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,12) set_trait(TRAIT_MATURATION,12)
set_trait(TRAIT_YIELD,2) set_trait(TRAIT_YIELD,2)
@@ -515,7 +515,7 @@
chems = list("woodpulp" = list(10,1)) chems = list("woodpulp" = list(10,1))
mutants = null mutants = null
/datum/seed/mushroom/towercap/New() /datum/seed/mushroom/towercap/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,15) set_trait(TRAIT_MATURATION,15)
set_trait(TRAIT_PRODUCT_ICON,"mushroom7") set_trait(TRAIT_PRODUCT_ICON,"mushroom7")
@@ -530,7 +530,7 @@
mutants = null mutants = null
chems = list("radium" = list(1,20)) chems = list("radium" = list(1,20))
/datum/seed/mushroom/glowshroom/New() /datum/seed/mushroom/glowshroom/setup_traits()
..() ..()
set_trait(TRAIT_SPREAD,1) set_trait(TRAIT_SPREAD,1)
set_trait(TRAIT_MATURATION,15) set_trait(TRAIT_MATURATION,15)
@@ -550,7 +550,7 @@
mutants = null mutants = null
chems = list("plasticide" = list(1,10)) chems = list("plasticide" = list(1,10))
/datum/seed/mushroom/plastic/New() /datum/seed/mushroom/plastic/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_PRODUCTION,6)
@@ -568,7 +568,7 @@
display_name = "harebells" display_name = "harebells"
chems = list("nutriment" = list(1,20)) chems = list("nutriment" = list(1,20))
/datum/seed/flower/New() /datum/seed/flower/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,7) set_trait(TRAIT_MATURATION,7)
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
@@ -586,7 +586,7 @@
chems = list("nutriment" = list(1,20), "bicaridine" = list(1,10)) chems = list("nutriment" = list(1,20), "bicaridine" = list(1,10))
kitchen_tag = "poppy" kitchen_tag = "poppy"
/datum/seed/flower/poppy/New() /datum/seed/flower/poppy/setup_traits()
..() ..()
set_trait(TRAIT_POTENCY,20) set_trait(TRAIT_POTENCY,20)
set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_MATURATION,8)
@@ -604,7 +604,7 @@
seed_name = "sunflower" seed_name = "sunflower"
display_name = "sunflowers" display_name = "sunflowers"
/datum/seed/flower/sunflower/New() /datum/seed/flower/sunflower/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCT_ICON,"flower2") set_trait(TRAIT_PRODUCT_ICON,"flower2")
@@ -622,7 +622,7 @@
mutants = list("greengrapes") mutants = list("greengrapes")
chems = list("nutriment" = list(1,10), "sugar" = list(1,5), "grapejuice" = list(10,10)) chems = list("nutriment" = list(1,10), "sugar" = list(1,5), "grapejuice" = list(10,10))
/datum/seed/grapes/New() /datum/seed/grapes/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_MATURATION,3)
@@ -643,7 +643,7 @@
mutants = null mutants = null
chems = list("nutriment" = list(1,10), "kelotane" = list(3,5), "grapejuice" = list(10,10)) chems = list("nutriment" = list(1,10), "kelotane" = list(3,5), "grapejuice" = list(10,10))
/datum/seed/grapes/green/New() /datum/seed/grapes/green/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCT_COLOUR,"42ed2f") set_trait(TRAIT_PRODUCT_COLOUR,"42ed2f")
@@ -655,7 +655,7 @@
chems = list("nutriment" = list(1,10)) chems = list("nutriment" = list(1,10))
kitchen_tag = "peanut" kitchen_tag = "peanut"
/datum/seed/peanuts/New() /datum/seed/peanuts/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -674,7 +674,7 @@
chems = list("nutriment" = list(1,10)) chems = list("nutriment" = list(1,10))
kitchen_tag = "cabbage" kitchen_tag = "cabbage"
/datum/seed/cabbage/New() /datum/seed/cabbage/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_MATURATION,3)
@@ -697,7 +697,7 @@
trash_type = /obj/item/weapon/bananapeel trash_type = /obj/item/weapon/bananapeel
kitchen_tag = "banana" kitchen_tag = "banana"
/datum/seed/banana/New() /datum/seed/banana/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -719,7 +719,7 @@
kitchen_tag = "corn" kitchen_tag = "corn"
trash_type = /obj/item/weapon/corncob trash_type = /obj/item/weapon/corncob
/datum/seed/corn/New() /datum/seed/corn/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,8) set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_PRODUCTION,6)
@@ -740,7 +740,7 @@
chems = list("nutriment" = list(1,10), "potato" = list(10,10)) chems = list("nutriment" = list(1,10), "potato" = list(10,10))
kitchen_tag = "potato" kitchen_tag = "potato"
/datum/seed/potato/New() /datum/seed/potato/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCES_POWER,1) set_trait(TRAIT_PRODUCES_POWER,1)
set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_MATURATION,10)
@@ -759,7 +759,7 @@
chems = list("nutriment" = list(1,20), "soymilk" = list(10,20)) chems = list("nutriment" = list(1,20), "soymilk" = list(10,20))
kitchen_tag = "soybeans" kitchen_tag = "soybeans"
/datum/seed/soybean/New() /datum/seed/soybean/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,4) set_trait(TRAIT_MATURATION,4)
@@ -777,7 +777,7 @@
chems = list("nutriment" = list(1,25), "flour" = list(15,15)) chems = list("nutriment" = list(1,25), "flour" = list(15,15))
kitchen_tag = "wheat" kitchen_tag = "wheat"
/datum/seed/wheat/New() /datum/seed/wheat/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
@@ -797,7 +797,7 @@
chems = list("nutriment" = list(1,25), "rice" = list(10,15)) chems = list("nutriment" = list(1,25), "rice" = list(10,15))
kitchen_tag = "rice" kitchen_tag = "rice"
/datum/seed/rice/New() /datum/seed/rice/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
@@ -817,7 +817,7 @@
chems = list("nutriment" = list(1,20), "imidazoline" = list(3,5), "carrotjuice" = list(10,20)) chems = list("nutriment" = list(1,20), "imidazoline" = list(3,5), "carrotjuice" = list(10,20))
kitchen_tag = "carrot" kitchen_tag = "carrot"
/datum/seed/carrots/New() /datum/seed/carrots/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,10) set_trait(TRAIT_MATURATION,10)
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
@@ -833,7 +833,7 @@
seed_name = "weed" seed_name = "weed"
display_name = "weeds" display_name = "weeds"
/datum/seed/weeds/New() /datum/seed/weeds/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_PRODUCTION,1)
@@ -852,7 +852,7 @@
chems = list("nutriment" = list(0,20), "sugar" = list(1,5)) chems = list("nutriment" = list(0,20), "sugar" = list(1,5))
kitchen_tag = "whitebeet" kitchen_tag = "whitebeet"
/datum/seed/whitebeets/New() /datum/seed/whitebeets/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_PRODUCTION,6)
@@ -870,7 +870,7 @@
display_name = "sugarcanes" display_name = "sugarcanes"
chems = list("sugar" = list(4,5)) chems = list("sugar" = list(4,5))
/datum/seed/sugarcane/New() /datum/seed/sugarcane/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_MATURATION,3)
@@ -889,7 +889,7 @@
display_name = "watermelon vine" display_name = "watermelon vine"
chems = list("nutriment" = list(1,6), "watermelonjuice" = list(10,6)) chems = list("nutriment" = list(1,6), "watermelonjuice" = list(10,6))
/datum/seed/watermelon/New() /datum/seed/watermelon/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_JUICY,1) set_trait(TRAIT_JUICY,1)
@@ -913,7 +913,7 @@
chems = list("nutriment" = list(1,6)) chems = list("nutriment" = list(1,6))
kitchen_tag = "pumpkin" kitchen_tag = "pumpkin"
/datum/seed/pumpkin/New() /datum/seed/pumpkin/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
@@ -933,7 +933,7 @@
chems = list("nutriment" = list(1,20), "limejuice" = list(10,20)) chems = list("nutriment" = list(1,20), "limejuice" = list(10,20))
kitchen_tag = "lime" kitchen_tag = "lime"
/datum/seed/citrus/New() /datum/seed/citrus/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_JUICY,1) set_trait(TRAIT_JUICY,1)
@@ -953,7 +953,7 @@
chems = list("nutriment" = list(1,20), "lemonjuice" = list(10,20)) chems = list("nutriment" = list(1,20), "lemonjuice" = list(10,20))
kitchen_tag = "lemon" kitchen_tag = "lemon"
/datum/seed/citrus/lemon/New() /datum/seed/citrus/lemon/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCES_POWER,1) set_trait(TRAIT_PRODUCES_POWER,1)
set_trait(TRAIT_PRODUCT_COLOUR,"#F0E226") set_trait(TRAIT_PRODUCT_COLOUR,"#F0E226")
@@ -967,7 +967,7 @@
kitchen_tag = "orange" kitchen_tag = "orange"
chems = list("nutriment" = list(1,20), "orangejuice" = list(10,20)) chems = list("nutriment" = list(1,20), "orangejuice" = list(10,20))
/datum/seed/citrus/orange/New() /datum/seed/citrus/orange/setup_traits()
..() ..()
set_trait(TRAIT_PRODUCT_COLOUR,"#FFC20A") set_trait(TRAIT_PRODUCT_COLOUR,"#FFC20A")
set_trait(TRAIT_FLESH_COLOUR,"#FFC20A") set_trait(TRAIT_FLESH_COLOUR,"#FFC20A")
@@ -979,7 +979,7 @@
chems = list("nutriment" = list(1,20)) chems = list("nutriment" = list(1,20))
kitchen_tag = "grass" kitchen_tag = "grass"
/datum/seed/grass/New() /datum/seed/grass/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,2) set_trait(TRAIT_MATURATION,2)
@@ -998,7 +998,7 @@
display_name = "cacao tree" display_name = "cacao tree"
chems = list("nutriment" = list(1,10), "coco" = list(4,5)) chems = list("nutriment" = list(1,10), "coco" = list(4,5))
/datum/seed/cocoa/New() /datum/seed/cocoa/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_MATURATION,5)
@@ -1019,7 +1019,7 @@
chems = list("nutriment" = list(1,15), "sugar" = list(1,15), "cherryjelly" = list(10,15)) chems = list("nutriment" = list(1,15), "sugar" = list(1,15), "cherryjelly" = list(10,15))
kitchen_tag = "cherries" kitchen_tag = "cherries"
/datum/seed/cherries/New() /datum/seed/cherries/setup_traits()
..() ..()
set_trait(TRAIT_HARVEST_REPEAT,1) set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_JUICY,1) set_trait(TRAIT_JUICY,1)
@@ -1038,7 +1038,7 @@
display_name = "kudzu vines" display_name = "kudzu vines"
chems = list("nutriment" = list(1,50), "anti_toxin" = list(1,25)) chems = list("nutriment" = list(1,50), "anti_toxin" = list(1,25))
/datum/seed/kudzu/New() /datum/seed/kudzu/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,6) set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_PRODUCTION,6)
@@ -1059,7 +1059,7 @@
can_self_harvest = 1 can_self_harvest = 1
has_mob_product = /mob/living/carbon/alien/diona has_mob_product = /mob/living/carbon/alien/diona
/datum/seed/diona/New() /datum/seed/diona/setup_traits()
..() ..()
set_trait(TRAIT_IMMUTABLE,1) set_trait(TRAIT_IMMUTABLE,1)
set_trait(TRAIT_ENDURANCE,8) set_trait(TRAIT_ENDURANCE,8)
@@ -1079,7 +1079,7 @@
chems = list("bicaridine" = list(0,10)) chems = list("bicaridine" = list(0,10))
kitchen_tag = "shand" kitchen_tag = "shand"
/datum/seed/shand/New() /datum/seed/shand/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_MATURATION,3)
set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_PRODUCTION,5)
@@ -1099,7 +1099,7 @@
chems = list("honey" = list(1,10), "kelotane" = list(3,5)) chems = list("honey" = list(1,10), "kelotane" = list(3,5))
kitchen_tag = "mtear" kitchen_tag = "mtear"
/datum/seed/mtear/New() /datum/seed/mtear/setup_traits()
..() ..()
set_trait(TRAIT_MATURATION,3) set_trait(TRAIT_MATURATION,3)
set_trait(TRAIT_PRODUCTION,5) set_trait(TRAIT_PRODUCTION,5)
@@ -1118,7 +1118,7 @@
display_name = "telriis grass" display_name = "telriis grass"
chems = list("pwine" = list(1,5), "nutriment" = list(1,6)) chems = list("pwine" = list(1,5), "nutriment" = list(1,6))
/datum/seed/telriis/New() /datum/seed/telriis/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"telriis") set_trait(TRAIT_PLANT_ICON,"telriis")
set_trait(TRAIT_ENDURANCE,50) set_trait(TRAIT_ENDURANCE,50)
@@ -1133,7 +1133,7 @@
display_name = "thaa'dra lichen" display_name = "thaa'dra lichen"
chems = list("frostoil" = list(1,5),"nutriment" = list(1,5)) chems = list("frostoil" = list(1,5),"nutriment" = list(1,5))
/datum/seed/thaadra/New() /datum/seed/thaadra/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"thaadra") set_trait(TRAIT_PLANT_ICON,"thaadra")
set_trait(TRAIT_ENDURANCE,10) set_trait(TRAIT_ENDURANCE,10)
@@ -1148,7 +1148,7 @@
display_name = "jurl'mah reeds" display_name = "jurl'mah reeds"
chems = list("serotrotium" = list(1,5),"nutriment" = list(1,5)) chems = list("serotrotium" = list(1,5),"nutriment" = list(1,5))
/datum/seed/jurlmah/New() /datum/seed/jurlmah/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"jurlmah") set_trait(TRAIT_PLANT_ICON,"jurlmah")
set_trait(TRAIT_ENDURANCE,12) set_trait(TRAIT_ENDURANCE,12)
@@ -1163,7 +1163,7 @@
display_name = "amauri plant" display_name = "amauri plant"
chems = list("zombiepowder" = list(1,10),"condensedcapsaicin" = list(1,5),"nutriment" = list(1,5)) chems = list("zombiepowder" = list(1,10),"condensedcapsaicin" = list(1,5),"nutriment" = list(1,5))
/datum/seed/amauri/New() /datum/seed/amauri/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"amauri") set_trait(TRAIT_PLANT_ICON,"amauri")
set_trait(TRAIT_ENDURANCE,10) set_trait(TRAIT_ENDURANCE,10)
@@ -1178,7 +1178,7 @@
display_name = "gelthi plant" display_name = "gelthi plant"
chems = list("stoxin" = list(1,5),"capsaicin" = list(1,5),"nutriment" = list(1,5)) chems = list("stoxin" = list(1,5),"capsaicin" = list(1,5),"nutriment" = list(1,5))
/datum/seed/gelthi/New() /datum/seed/gelthi/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"gelthi") set_trait(TRAIT_PLANT_ICON,"gelthi")
set_trait(TRAIT_ENDURANCE,15) set_trait(TRAIT_ENDURANCE,15)
@@ -1193,7 +1193,7 @@
display_name = "vale bush" display_name = "vale bush"
chems = list("paracetamol" = list(1,5),"dexalin" = list(1,2),"nutriment"= list(1,5)) chems = list("paracetamol" = list(1,5),"dexalin" = list(1,2),"nutriment"= list(1,5))
/datum/seed/vale/New() /datum/seed/vale/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"vale") set_trait(TRAIT_PLANT_ICON,"vale")
set_trait(TRAIT_ENDURANCE,15) set_trait(TRAIT_ENDURANCE,15)
@@ -1208,7 +1208,7 @@
display_name = "surik vine" display_name = "surik vine"
chems = list("impedrezene" = list(1,3),"synaptizine" = list(1,2),"nutriment" = list(1,5)) chems = list("impedrezene" = list(1,3),"synaptizine" = list(1,2),"nutriment" = list(1,5))
/datum/seed/surik/New() /datum/seed/surik/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"surik") set_trait(TRAIT_PLANT_ICON,"surik")
set_trait(TRAIT_ENDURANCE,18) set_trait(TRAIT_ENDURANCE,18)
@@ -1225,7 +1225,7 @@
force_layer = 3 force_layer = 3
chems = list("phoron" = list(1,3)) chems = list("phoron" = list(1,3))
/datum/seed/xenomorph/New() /datum/seed/xenomorph/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"vine2") set_trait(TRAIT_PLANT_ICON,"vine2")
set_trait(TRAIT_IMMUTABLE,1) set_trait(TRAIT_IMMUTABLE,1)

View File

@@ -32,12 +32,15 @@
icon = 'icons/mob/alien.dmi' icon = 'icons/mob/alien.dmi'
icon_state = "chitin" icon_state = "chitin"
/obj/item/organ/brain/New() /obj/item/organ/brain/Initialize(mapload)
..() . = ..()
health = config.default_brain_health health = config.default_brain_health
spawn(5) if (!mapload)
addtimer(CALLBACK(src, .proc/clear_screen), 5)
/obj/item/organ/brain/proc/clear_screen()
if (brainmob && brainmob.client) if (brainmob && brainmob.client)
brainmob.client.screen.len = null //clear the hud brainmob.client.screen.Cut()
/obj/item/organ/brain/Destroy() /obj/item/organ/brain/Destroy()
if(brainmob) if(brainmob)

View File

@@ -2,11 +2,7 @@
real_name = "Test Dummy" real_name = "Test Dummy"
status_flags = GODMODE|CANPUSH status_flags = GODMODE|CANPUSH
/mob/living/carbon/human/dummy/mannequin/New(location, ...) INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
..()
if (!initialized)
args[1] = TRUE
SSatoms.InitAtom(src, args)
/mob/living/carbon/human/dummy/mannequin/Initialize() /mob/living/carbon/human/dummy/mannequin/Initialize()
. = ..() . = ..()

View File

@@ -114,13 +114,13 @@
new_player_panel_proc() new_player_panel_proc()
if(href_list["observe"]) if(href_list["observe"])
if (SSatoms.initialized < INITIALIZATION_INNEW_REGULAR) if (!SSATOMS_IS_PROBABLY_DONE)
// Don't allow players to observe until initialization is more or less complete. // Don't allow players to observe until initialization is more or less complete.
// Letting them join too early breaks things, they can wait. // Letting them join too early breaks things, they can wait.
src << span("alert", "The server is still initializing, try observing again in a minute or so.") alert(src, "Please wait, the map is not initialized yet.")
return return 0
if(alert(src,"Are you sure you wish to observe? You will have to wait 30 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes") if(alert(src,"Are you sure you wish to observe? You will have to wait [config.respawn_delay] minutes before being able to respawn!","Player Setup","Yes","No") == "Yes")
if(!client) return 1 if(!client) return 1
var/mob/dead/observer/observer = new /mob/dead/observer(src) var/mob/dead/observer/observer = new /mob/dead/observer(src)
spawning = 1 spawning = 1

View File

@@ -27,6 +27,12 @@
var/force_skintone = FALSE // If true, icon generation will skip is-robotic checks. Used for synthskin limbs. var/force_skintone = FALSE // If true, icon generation will skip is-robotic checks. Used for synthskin limbs.
/obj/item/organ/New(loc, ...)
..()
if (!initialized && istype(loc, /mob/living/carbon/human/dummy/mannequin))
args[1] = TRUE
SSatoms.InitAtom(src, args)
/obj/item/organ/Destroy() /obj/item/organ/Destroy()
STOP_PROCESSING(SSprocessing, src) STOP_PROCESSING(SSprocessing, src)
if(!owner) if(!owner)
@@ -51,8 +57,9 @@
/obj/item/organ/proc/update_health() /obj/item/organ/proc/update_health()
return return
/obj/item/organ/New(var/mob/living/carbon/holder, var/internal) /obj/item/organ/Initialize(mapload, internal)
..(holder) . = ..()
var/mob/living/carbon/holder = loc
create_reagents(5) create_reagents(5)
if(!max_damage) if(!max_damage)
max_damage = min_broken_damage * 2 max_damage = min_broken_damage * 2

View File

@@ -165,18 +165,17 @@
damage = min(max_damage, (brute_dam + burn_dam)) damage = min(max_damage, (brute_dam + burn_dam))
return return
/obj/item/organ/external/Initialize(mapload)
/obj/item/organ/external/New(var/mob/living/carbon/holder) . = ..(mapload, FALSE)
..(holder, 0)
if(owner) if(owner)
replaced(owner) replaced(owner)
sync_colour_to_human(owner) sync_colour_to_human(owner)
addtimer(CALLBACK(src, .proc/get_icon), 1)
if ((status & ORGAN_PLANT)) if ((status & ORGAN_PLANT))
cannot_break = 1 cannot_break = 1
get_icon()
/obj/item/organ/external/replaced(var/mob/living/carbon/human/target) /obj/item/organ/external/replaced(var/mob/living/carbon/human/target)
owner = target owner = target
forceMove(owner) forceMove(owner)

View File

@@ -240,14 +240,14 @@ obj/item/organ/vaurca/neuralsocket/process()
var/volume = 50 var/volume = 50
var/manipulated_by = null var/manipulated_by = null
/obj/item/organ/vaurca/preserve/New() /obj/item/organ/vaurca/preserve/Initialize()
..() . = ..()
src.air_contents = new /datum/gas_mixture() air_contents = new /datum/gas_mixture()
src.air_contents.adjust_gas("phoron", (ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) air_contents.adjust_gas("phoron", (ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
src.air_contents.volume = volume //liters air_contents.volume = volume //liters
src.air_contents.temperature = T20C air_contents.temperature = T20C
src.distribute_pressure = ((pick(1.8,2.0,2.4,2.8)*ONE_ATMOSPHERE)*O2STANDARD) distribute_pressure = ((pick(1.8,2.0,2.4,2.8)*ONE_ATMOSPHERE)*O2STANDARD)
START_PROCESSING(SSprocessing, src) START_PROCESSING(SSprocessing, src)
var/mob/living/carbon/location = loc var/mob/living/carbon/location = loc

View File

@@ -3,7 +3,7 @@
icon_name = "" icon_name = ""
dislocated = -1 dislocated = -1
/obj/item/organ/external/stump/New(var/mob/living/carbon/holder, var/internal, var/obj/item/organ/external/limb) /obj/item/organ/external/stump/Initialize(mapload, var/internal, var/obj/item/organ/external/limb)
if(istype(limb)) if(istype(limb))
limb_name = limb.limb_name limb_name = limb.limb_name
body_part = limb.body_part body_part = limb.body_part
@@ -11,7 +11,7 @@
joint = limb.joint joint = limb.joint
parent_organ = limb.parent_organ parent_organ = limb.parent_organ
wounds = limb.wounds wounds = limb.wounds
..(holder, internal) . = ..(mapload, internal)
if(istype(limb)) if(istype(limb))
max_damage = limb.max_damage max_damage = limb.max_damage
if((limb.status & ORGAN_ROBOT) && (!parent || (parent.status & ORGAN_ROBOT))) if((limb.status & ORGAN_ROBOT) && (!parent || (parent.status & ORGAN_ROBOT)))

View File

@@ -6,88 +6,88 @@
can_intake_reagents = 0 can_intake_reagents = 0
encased = "support frame" encased = "support frame"
/obj/item/organ/external/head/ipc/New() /obj/item/organ/external/head/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/chest/ipc /obj/item/organ/external/chest/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/chest/ipc/New() /obj/item/organ/external/chest/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/groin/ipc /obj/item/organ/external/groin/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/groin/ipc/New() /obj/item/organ/external/groin/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/arm/ipc /obj/item/organ/external/arm/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/arm/ipc/New() /obj/item/organ/external/arm/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/arm/right/ipc /obj/item/organ/external/arm/right/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/arm/right/ipc/New() /obj/item/organ/external/arm/right/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/leg/ipc /obj/item/organ/external/leg/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/leg/ipc/New() /obj/item/organ/external/leg/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/leg/right/ipc /obj/item/organ/external/leg/right/ipc
dislocated = -1 dislocated = -1
/obj/item/organ/external/leg/right/ipc/New() /obj/item/organ/external/leg/right/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/foot/ipc /obj/item/organ/external/foot/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/foot/ipc/New() /obj/item/organ/external/foot/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/foot/right/ipc /obj/item/organ/external/foot/right/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/foot/right/ipc/New() /obj/item/organ/external/foot/right/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/hand/ipc /obj/item/organ/external/hand/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/hand/ipc/New() /obj/item/organ/external/hand/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/external/hand/right/ipc /obj/item/organ/external/hand/right/ipc
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/hand/right/ipc/New() /obj/item/organ/external/hand/right/ipc/Initialize()
robotize("Hephaestus Integrated Limb") robotize("Hephaestus Integrated Limb")
..() . = ..()
/obj/item/organ/cell /obj/item/organ/cell
name = "microbattery" name = "microbattery"
@@ -98,12 +98,12 @@
parent_organ = "chest" parent_organ = "chest"
vital = 1 vital = 1
/obj/item/organ/cell/New() /obj/item/organ/cell/Initialize()
robotize() robotize()
..() . = ..()
/obj/item/organ/cell/replaced() /obj/item/organ/cell/replaced()
..() . = ..()
// This is very ghetto way of rebooting an IPC. TODO better way. // This is very ghetto way of rebooting an IPC. TODO better way.
if(owner && owner.stat == DEAD) if(owner && owner.stat == DEAD)
owner.stat = 0 owner.stat = 0
@@ -116,9 +116,9 @@
icon_state = "camera" icon_state = "camera"
dead_icon = "camera_broken" dead_icon = "camera_broken"
/obj/item/organ/eyes/optical_sensor/New() /obj/item/organ/eyes/optical_sensor/Initialize()
robotize() robotize()
..() . = ..()
/obj/item/organ/ipc_tag /obj/item/organ/ipc_tag
name = "identification tag" name = "identification tag"
@@ -128,9 +128,9 @@
icon_state = "gps-c" icon_state = "gps-c"
dead_icon = "gps-c" dead_icon = "gps-c"
/obj/item/organ/ipc_tag/New() /obj/item/organ/ipc_tag/Initialize()
robotize() robotize()
..() . = ..()
// Used for an MMI or posibrain being installed into a human. // Used for an MMI or posibrain being installed into a human.
/obj/item/organ/mmi_holder /obj/item/organ/mmi_holder
@@ -154,26 +154,31 @@
stored_mmi.loc = get_turf(src) stored_mmi.loc = get_turf(src)
if(owner.mind) if(owner.mind)
owner.mind.transfer_to(stored_mmi.brainmob) owner.mind.transfer_to(stored_mmi.brainmob)
..() . = ..()
var/mob/living/holder_mob = loc var/mob/living/holder_mob = loc
if(istype(holder_mob)) if(istype(holder_mob))
holder_mob.drop_from_inventory(src) holder_mob.drop_from_inventory(src)
qdel(src) qdel(src)
/obj/item/organ/mmi_holder/New() /obj/item/organ/mmi_holder/Initialize(mapload)
..() . = ..()
// This is very ghetto way of rebooting an IPC. TODO better way. // This is very ghetto way of rebooting an IPC. TODO better way.
spawn(1) if (!mapload)
addtimer(CALLBACK(src, .proc/attempt_revive), 1)
/obj/item/organ/mmi_holder/proc/attempt_revive()
if (owner && owner.stat == DEAD) if (owner && owner.stat == DEAD)
owner.stat = 0 owner.stat = 0
owner.visible_message("<span class='danger'>\The [owner] twitches visibly!</span>") owner.visible_message("<span class='danger'>\The [owner] twitches visibly!</span>")
/obj/item/organ/mmi_holder/posibrain/New() /obj/item/organ/mmi_holder/posibrain/Initialize()
robotize() robotize()
stored_mmi = new /obj/item/device/mmi/digital/posibrain(src) stored_mmi = new /obj/item/device/mmi/digital/posibrain(src)
..() . = ..()
spawn(1) addtimer(CALLBACK(src, .proc/setup_brain), 1)
/obj/item/organ/mmi_holder/posibrain/proc/setup_brain()
if(owner) if(owner)
stored_mmi.name = "positronic brain ([owner.name])" stored_mmi.name = "positronic brain ([owner.name])"
stored_mmi.brainmob.real_name = owner.name stored_mmi.brainmob.real_name = owner.name
@@ -184,7 +189,6 @@
stored_mmi.loc = get_turf(src) stored_mmi.loc = get_turf(src)
qdel(src) qdel(src)
////////////// //////////////
//Terminator// //Terminator//
////////////// //////////////
@@ -205,9 +209,9 @@
vital = 0 vital = 0
emp_coeff = 0.1 emp_coeff = 0.1
/obj/item/organ/data/New() /obj/item/organ/data/Initialize()
robotize() robotize()
..() . = ..()
/obj/item/organ/cell/terminator /obj/item/organ/cell/terminator
name = "shielded microbattery" name = "shielded microbattery"
@@ -219,9 +223,9 @@
vital = 1 vital = 1
emp_coeff = 0.1 emp_coeff = 0.1
/obj/item/organ/cell/New() /obj/item/organ/cell/Initialize()
robotize() robotize()
..() . = ..()
/obj/item/organ/external/head/terminator /obj/item/organ/external/head/terminator
dislocated = -1 dislocated = -1
@@ -232,99 +236,99 @@
/obj/item/organ/eyes/optical_sensor/terminator /obj/item/organ/eyes/optical_sensor/terminator
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/head/terminator/New() /obj/item/organ/external/head/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/chest/terminator /obj/item/organ/external/chest/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/chest/terminator/New() /obj/item/organ/external/chest/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/groin/terminator /obj/item/organ/external/groin/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/groin/terminator/New() /obj/item/organ/external/groin/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/arm/terminator /obj/item/organ/external/arm/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/arm/terminator/New() /obj/item/organ/external/arm/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/arm/right/terminator /obj/item/organ/external/arm/right/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/arm/right/terminator/New() /obj/item/organ/external/arm/right/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/leg/terminator /obj/item/organ/external/leg/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/leg/terminator/New() /obj/item/organ/external/leg/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/leg/right/terminator /obj/item/organ/external/leg/right/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/leg/right/terminator/New() /obj/item/organ/external/leg/right/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/foot/terminator /obj/item/organ/external/foot/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/foot/terminator/New() /obj/item/organ/external/foot/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/foot/right/terminator /obj/item/organ/external/foot/right/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/foot/right/terminator/New() /obj/item/organ/external/foot/right/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/hand/terminator /obj/item/organ/external/hand/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/hand/terminator/New() /obj/item/organ/external/hand/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
/obj/item/organ/external/hand/right/terminator /obj/item/organ/external/hand/right/terminator
dislocated = -1 dislocated = -1
encased = "reinforced support frame" encased = "reinforced support frame"
emp_coeff = 0.5 emp_coeff = 0.5
/obj/item/organ/external/hand/right/terminator/New() /obj/item/organ/external/hand/right/terminator/Initialize()
robotize("Hephaestus Vulcanite Limb") robotize("Hephaestus Vulcanite Limb")
..() . = ..()
////////////// //////////////
//Industrial// //Industrial//
@@ -335,89 +339,89 @@
can_intake_reagents = 0 can_intake_reagents = 0
encased = "support frame" encased = "support frame"
/obj/item/organ/external/head/industrial/New() /obj/item/organ/external/head/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/chest/industrial /obj/item/organ/external/chest/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/chest/industrial/New() /obj/item/organ/external/chest/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/groin/industrial /obj/item/organ/external/groin/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/groin/industrial/New() /obj/item/organ/external/groin/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/arm/industrial /obj/item/organ/external/arm/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/arm/industrial/New() /obj/item/organ/external/arm/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/arm/right/industrial /obj/item/organ/external/arm/right/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/arm/right/industrial/New() /obj/item/organ/external/arm/right/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/leg/industrial /obj/item/organ/external/leg/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/leg/industrial/New() /obj/item/organ/external/leg/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/leg/right/industrial /obj/item/organ/external/leg/right/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/leg/right/industrial/New() /obj/item/organ/external/leg/right/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/foot/industrial /obj/item/organ/external/foot/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/foot/industrial/New() /obj/item/organ/external/foot/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/foot/right/industrial /obj/item/organ/external/foot/right/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/foot/right/industrial/New() /obj/item/organ/external/foot/right/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/hand/industrial /obj/item/organ/external/hand/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/hand/industrial/New() /obj/item/organ/external/hand/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/obj/item/organ/external/hand/right/industrial /obj/item/organ/external/hand/right/industrial
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
/obj/item/organ/external/hand/right/industrial/New() /obj/item/organ/external/hand/right/industrial/Initialize()
robotize("Hephaestus Industrial Limb") robotize("Hephaestus Industrial Limb")
..() . = ..()
/////////////// ///////////////
//Shell limbs// //Shell limbs//
@@ -429,9 +433,9 @@
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/head/shell/New() /obj/item/organ/external/head/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/chest/shell /obj/item/organ/external/chest/shell
dislocated = -1 dislocated = -1
@@ -439,87 +443,87 @@
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/chest/shell/New() /obj/item/organ/external/chest/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/groin/shell /obj/item/organ/external/groin/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/groin/shell/New() /obj/item/organ/external/groin/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/arm/shell /obj/item/organ/external/arm/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/arm/shell/New() /obj/item/organ/external/arm/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/arm/right/shell /obj/item/organ/external/arm/right/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/arm/right/shell/New() /obj/item/organ/external/arm/right/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/leg/shell /obj/item/organ/external/leg/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/leg/shell/New() /obj/item/organ/external/leg/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/leg/right/shell /obj/item/organ/external/leg/right/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/leg/right/shell/New() /obj/item/organ/external/leg/right/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/foot/shell /obj/item/organ/external/foot/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/foot/shell/New() /obj/item/organ/external/foot/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/foot/right/shell /obj/item/organ/external/foot/right/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/foot/right/shell/New() /obj/item/organ/external/foot/right/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/hand/shell /obj/item/organ/external/hand/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/hand/shell/New() /obj/item/organ/external/hand/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()
/obj/item/organ/external/hand/right/shell /obj/item/organ/external/hand/right/shell
dislocated = -1 dislocated = -1
encased = "support frame" encased = "support frame"
force_skintone = TRUE force_skintone = TRUE
/obj/item/organ/external/hand/right/shell/New() /obj/item/organ/external/hand/right/shell/Initialize()
robotize("Human Synthskin") robotize("Human Synthskin")
..() . = ..()

View File

@@ -61,7 +61,7 @@
chems = list("bicaridine" = list(3,7), "dermaline" = list(3,7), "anti_toxin" = list(3,7), "tricordrazine" = list(3,7), "alkysine" = list(1,2), "imidazoline" = list(1,2), "peridaxon" = list(4,5)) chems = list("bicaridine" = list(3,7), "dermaline" = list(3,7), "anti_toxin" = list(3,7), "tricordrazine" = list(3,7), "alkysine" = list(1,2), "imidazoline" = list(1,2), "peridaxon" = list(4,5))
kitchen_tag = "berries" kitchen_tag = "berries"
/datum/seed/merlin_tear/New() /datum/seed/merlin_tear/setup_traits()
..() ..()
set_trait(TRAIT_PLANT_ICON,"bush5") set_trait(TRAIT_PLANT_ICON,"bush5")
set_trait(TRAIT_PRODUCT_ICON,"berry") set_trait(TRAIT_PRODUCT_ICON,"berry")