diff --git a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm
index 60cedb281fa..9a5bf275abc 100644
--- a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm
+++ b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm
@@ -104,6 +104,11 @@
H.rename_character(null, H.dna.species.get_random_name())
else
H.rename_character(null, name)
+ if(is_species(H, /datum/species/golem/tranquillite) && H.mind)
+ H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall(null))
+ H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null))
+ H.mind.miming = TRUE
+
if(has_owner)
new_spawn.mind.assigned_role = "Servant Golem"
else
diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm
index c1e416a8a48..9d74e7e2130 100644
--- a/code/modules/mob/living/carbon/human/species/golem.dm
+++ b/code/modules/mob/living/carbon/human/species/golem.dm
@@ -251,28 +251,44 @@
attack_verb = list("smash")
attack_sound = 'sound/effects/meteorimpact.ogg'
-//More resistant to burn damage
-//Add ashstorm resistance if we ever port lavaland
+//More resistant to burn damage and immune to ashstorm
/datum/species/golem/titanium
name = "Titanium Golem"
golem_colour = rgb(255, 255, 255)
skinned_type = /obj/item/stack/ore/titanium
- info_text = "As a Titanium Golem, you are resistant to burn damage."
+ info_text = "As a Titanium Golem, you are resistant to burn damage and immune to ash storms."
burn_mod = 0.3
prefix = "Titanium"
special_names = list("Dioxide")
-//Even more resistant to burn damage
-//Add ashstorm and lava resistance if we ever port lavaland
+/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species)
+ . = ..()
+ C.weather_immunities |= "ash"
+
+/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C)
+ . = ..()
+ C.weather_immunities -= "ash"
+
+//Even more resistant to burn damage and immune to ashstorms and lava
/datum/species/golem/plastitanium
name = "Plastitanium Golem"
golem_colour = rgb(136, 136, 136)
skinned_type = /obj/item/stack/ore/titanium
- info_text = "As a Plastitanium Golem, you are very resistant to burn damage."
+ info_text = "As a Plastitanium Golem, you are very resistant to burn damage and immune to both ash storms and lava."
burn_mod = 0.15
prefix = "Plastitanium"
special_names = null
+/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species)
+ . = ..()
+ C.weather_immunities |= "lava"
+ C.weather_immunities |= "ash"
+
+/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C)
+ . = ..()
+ C.weather_immunities -= "ash"
+ C.weather_immunities -= "lava"
+
//Fast and regenerates... but can only speak like an abductor
/datum/species/golem/alloy
name = "Alien Alloy Golem"
@@ -357,10 +373,12 @@
/datum/species/golem/uranium/handle_life(mob/living/carbon/human/H)
for(var/mob/living/L in range(2, H))
- if(isgolem(H))
- continue
- to_chat(L, "You are enveloped by a soft green glow emanating from [H].")
- L.apply_effect(10, IRRADIATE)
+ if(ishuman(L))
+ var/mob/living/carbon/human/I = L
+ if(!(RADIMMUNE in I.dna.species.species_traits))
+ L.apply_effect(10, IRRADIATE)
+ if(prob(25)) //reduce spam
+ to_chat(L, "You are enveloped by a soft green glow emanating from [H].")
..()
//Ventcrawler
@@ -592,7 +610,7 @@
punchdamagehigh = 0
punchstunthreshold = 1 //Harmless and can't stun
skinned_type = /obj/item/stack/ore/bananium
- info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you can barely even hurt people when punching them. Your skin also bleeds banana peels when damaged."
+ info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and punching people will just harmlessly honk them. Your skin also bleeds banana peels when damaged."
prefix = "Bananium"
special_names = null
unarmed_type = /datum/unarmed_attack/golem/bananium
@@ -610,6 +628,12 @@
H.mutations.Add(COMIC)
H.equip_to_slot_or_del(new /obj/item/reagent_containers/food/drinks/bottle/bottleofbanana(H), slot_r_store)
H.equip_to_slot_or_del(new /obj/item/bikehorn(H), slot_l_store)
+ H.AddComponent(/datum/component/waddling)
+
+/datum/species/golem/bananium/on_species_loss(mob/living/carbon/C)
+ . = ..()
+ GET_COMPONENT_FROM(waddling, /datum/component/waddling, C)
+ waddling.Destroy()
/datum/species/golem/bananium/get_random_name()
var/clown_name = pick(GLOB.clown_names)