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"