diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index f6a415912dc..1320ca0a855 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -262,7 +262,6 @@ client
body += ""
if(ishuman(D))
body += ""
- body += ""
body += ""
body += ""
body += ""
@@ -790,27 +789,6 @@ client
holder.Topic(href, list("makemask"=href_list["makemask"]))
- else if(href_list["setmutantrace"])
- if(!check_rights(R_SPAWN)) return
-
- var/mob/living/carbon/human/H = locate(href_list["setmutantrace"])
- if(!istype(H))
- usr << "This can only be done to instances of type /mob/living/carbon/human"
- return
-
- var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow","tajaran","skrell","vox")
- switch(new_mutantrace)
- if(null)
- return
- if("NONE")
- new_mutantrace = ""
- if(!H)
- usr << "Mob doesn't exist anymore"
- return
- if(H.dna)
- H.dna.mutantrace = new_mutantrace
- H.update_mutantrace()
-
else if(href_list["setspecies"])
if(!check_rights(R_SPAWN)) return
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index ee372c90967..bf19dbc0ad4 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -102,6 +102,10 @@
h_style = "Bald"
..(new_loc, "Shadow")
+/mob/living/carbon/human/golem/New(var/new_loc)
+ h_style = "Bald"
+ ..(new_loc, "Golem")
+
/mob/living/carbon/human/Bump(atom/movable/AM as mob|obj, yes)
if ((!( yes ) || now_pushing))
return
@@ -1076,9 +1080,6 @@
if(!species)
set_species()
- if(dna && dna.mutantrace == "golem")
- return "Animated Construct"
-
return species.name
/mob/living/carbon/human/proc/play_xylophone()
diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm
new file mode 100644
index 00000000000..c959ab16c9e
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/golem.dm
@@ -0,0 +1,23 @@
+/datum/species/golem
+ name = "Golem"
+
+ icobase = 'icons/mob/human_races/r_golem.dmi'
+ deform = 'icons/mob/human_races/r_golem.dmi'
+
+ default_language = "Galactic Common"
+ flags = NO_BREATHE | NO_PAIN | NO_BLOOD | NO_SCAN
+
+ blood_color = "#515573"
+ flesh_color = "#137E8F"
+
+ has_organ = list(
+ "brain" = /obj/item/organ/brain/golem
+ )
+
+/datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H)
+ if(H.mind)
+ H.mind.assigned_role = "Golem"
+ H.mind.special_role = "Golem"
+ H.real_name = "adamantine golem ([rand(1, 1000)])"
+ H.name = H.real_name
+ ..()
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 4c48fd8a12b..1358d8cc1b9 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -447,14 +447,12 @@ proc/get_damage_icon_part(damage_state, body_part)
if(dna)
switch(dna.mutantrace)
- if("golem","adamantine")
- overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s")
if("slime")
overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/slimemutant.dmi', "icon_state" = "[slime_color]_[dna.mutantrace][fat]_[gender]_s")
else
overlays_standing[MUTANTRACE_LAYER] = null
- if(!dna || !(dna.mutantrace in list("golem","metroid")))
+ if(!dna || !(dna.mutantrace in list("metroid")))
update_body(0)
update_hair(0)
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 63f35cd1db7..5b0738f9a76 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -899,90 +899,6 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
- /*afterattack(obj/target, mob/user , flag)
- if(istype(target, /obj/item/slime_extract))
- if(target.enhanced == 1)
- user << " This extract has already been enhanced!"
- return ..()
- if(target.Uses == 0)
- user << " You can't enhance a used extract!"
- return ..()
- user <<"You apply the enhancer. It now has triple the amount of uses."
- target.Uses = 3
- target.enahnced = 1
- del(src)*/
-
-////////Adamantine Golem stuff I dunno where else to put it
-
-// This will eventually be removed.
-
-/obj/item/clothing/under/golem
- name = "adamantine skin"
- desc = "a golem's skin"
- icon_state = "golem"
- item_state = "golem"
- _color = "golem"
- has_sensor = 0
- flags = ABSTRACT | NODROP
- armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
-
-/obj/item/clothing/suit/golem
- name = "adamantine shell"
- desc = "a golem's thick outter shell"
- icon_state = "golem"
- item_state = "golem"
- w_class = 4//bulky item
- gas_transfer_coefficient = 0.90
- permeability_coefficient = 0.50
- body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD
- slowdown = 1.0
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
- flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE | ABSTRACT | NODROP
- heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD
- max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
- cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD
- min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
- armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0)
-
-/obj/item/clothing/shoes/golem
- name = "golem's feet"
- desc = "sturdy adamantine feet"
- icon_state = "golem"
- item_state = "golem"
- flags = NOSLIP | ABSTRACT | MASKINTERNALS | MASKCOVERSMOUTH | NODROP
- slowdown = SHOES_SLOWDOWN+1
-
-
-/obj/item/clothing/mask/gas/golem
- name = "golem's face"
- desc = "the imposing face of an adamantine golem"
- icon_state = "golem"
- item_state = "golem"
- siemens_coefficient = 0
- unacidable = 1
- flags = ABSTRACT | NODROP
-
-
-/obj/item/clothing/gloves/golem
- name = "golem's hands"
- desc = "strong adamantine hands"
- icon_state = "golem"
- item_state = null
- siemens_coefficient = 0
- flags = ABSTRACT | NODROP
-
-
-/obj/item/clothing/head/space/golem
- icon_state = "golem"
- item_state = "dermal"
- _color = "dermal"
- name = "golem's head"
- desc = "a golem's head"
- unacidable = 1
- flags = STOPSPRESSUREDMAGE | ABSTRACT | NODROP
- heat_protection = HEAD
- max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
- armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0)
/obj/effect/goleRUNe
anchored = 1
@@ -1014,16 +930,8 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
if(!ghost)
user << "The rune fizzles uselessly. There is no spirit nearby."
return
- var/mob/living/carbon/human/G = new /mob/living/carbon/human
- G.dna.mutantrace = "adamantine"
+ var/mob/living/carbon/human/golem/G = new /mob/living/carbon/human/golem
if(prob(50)) G.gender = "female"
- G.real_name = text("Adamantine Golem ([rand(1, 1000)])")
- G.equip_to_slot_or_del(new /obj/item/clothing/under/golem(G), slot_w_uniform)
- G.equip_to_slot_or_del(new /obj/item/clothing/suit/golem(G), slot_wear_suit)
- G.equip_to_slot_or_del(new /obj/item/clothing/shoes/golem(G), slot_shoes)
- G.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/golem(G), slot_wear_mask)
- G.equip_to_slot_or_del(new /obj/item/clothing/gloves/golem(G), slot_gloves)
- //G.equip_to_slot_or_del(new /obj/item/clothing/head/space/golem(G), slot_head)
G.loc = src.loc
G.key = ghost.key
G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost."
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 0051f472e7c..74d91d2c4e3 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -217,7 +217,7 @@ proc/wabbajack(mob/living/M)
var/mob/living/carbon/human/human/H = new_mob
// ready_dna(H)
if(H.dna)
- H.dna.mutantrace = pick("lizard","golem","plant","fly","adamantine","skeleton",8;"")
+ H.dna.mutantrace = pick("lizard","plant","fly","skeleton",8;"")
H.update_body()
else
return
diff --git a/icons/mob/human_races/r_shadow.dmi b/icons/mob/human_races/r_shadow.dmi
index 773948e4e12..70450af6902 100644
Binary files a/icons/mob/human_races/r_shadow.dmi and b/icons/mob/human_races/r_shadow.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 0f867a0d784..0a89cfa2638 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1217,6 +1217,7 @@
#include "code\modules\mob\living\carbon\human\say.dm"
#include "code\modules\mob\living\carbon\human\update_icons.dm"
#include "code\modules\mob\living\carbon\human\whisper.dm"
+#include "code\modules\mob\living\carbon\human\species\golem.dm"
#include "code\modules\mob\living\carbon\human\species\plasmaman.dm"
#include "code\modules\mob\living\carbon\human\species\shadow.dm"
#include "code\modules\mob\living\carbon\metroid\death.dm"