mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Adamantine golem leadership
🆑 coiax add: Adamantine golems have special vocal cords that allow them to send one-way messages to all golems, due to fragments of resonating adamantine in their heads. Both of these are organs, and can be removed and put in other species. add: You can use adamantine vocal cords by prefixing your message with ":x". del: Xenobiology is no longer capable of making golem runes with plasma. Instead, inject iron into the adamantine slime core to get an incomplete golem shell, then complete it with 10 sheets of a suitable material. /🆑 Adamantine Golems are the starting Free Golem spawns, and they are previously just as ordinary as Iron Golems, which are strictly worse than a variety of other golem materials. This gives them limited one way telepathy, to act as leaders and communicate to the other golems. They're vocal cords because it's a suitable fit for the vocal cord code, and recieving it is organ based because more organs are always fun. Making "leadership" slave golems is somewhat of a contradiction, and they're also somewhat easy to spam. This requires xenobio to at least have some spare materials lying around (remember, you can use metal and glass or plasteel).
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
name = "Golem"
|
||||
id = "iron golem"
|
||||
species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR)
|
||||
mutant_organs = list(/obj/item/organ/adamantine_resonator)
|
||||
speedmod = 2
|
||||
armor = 55
|
||||
siemens_coeff = 0
|
||||
@@ -54,8 +55,9 @@
|
||||
name = "Adamantine Golem"
|
||||
id = "adamantine golem"
|
||||
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine
|
||||
mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine)
|
||||
fixed_mut_color = "4ed"
|
||||
info_text = "As an <span class='danger'>Adamantine Golem</span>, you don't have any special traits."
|
||||
info_text = "As an <span class='danger'>Adamantine Golem</span>, you possess special vocal cords allowing you to \"resonate\" messages to all golems."
|
||||
prefix = "Adamantine"
|
||||
|
||||
//Explodes on death
|
||||
|
||||
@@ -478,17 +478,6 @@
|
||||
..()
|
||||
|
||||
//Adamantine
|
||||
/datum/chemical_reaction/slime/slimegolem
|
||||
name = "Slime Golem"
|
||||
id = "m_golem"
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_container = /obj/item/slime_extract/adamantine
|
||||
required_other = 1
|
||||
|
||||
/datum/chemical_reaction/slime/slimegolem/on_reaction(datum/reagents/holder)
|
||||
new /obj/effect/golemrune(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/slime/slimegolem2
|
||||
name = "Slime Golem 2"
|
||||
id = "m_golem2"
|
||||
|
||||
@@ -20,6 +20,42 @@
|
||||
/obj/item/organ/vocal_cords/proc/handle_speech(message) //actually say the message
|
||||
owner.say(message, spans = spans, sanitize = FALSE)
|
||||
|
||||
/obj/item/organ/adamantine_resonator
|
||||
name = "adamantine resonator"
|
||||
desc = "Fragments of adamantine exists in all golems, stemming from their origins as purely magical constructs. These are used to \"hear\" messages from their leaders."
|
||||
zone = "head"
|
||||
slot = "adamantine_resonator"
|
||||
icon_state = "appendix"
|
||||
color = "#40E0D0"
|
||||
|
||||
/obj/item/organ/vocal_cords/adamantine
|
||||
name = "adamantine vocal cords"
|
||||
desc = "When adamantine resonates, it causes all nearby pieces of adamantine to resonate as well. Adamantine golems use this to broadcast messages to nearby golems."
|
||||
actions_types = list(/datum/action/item_action/organ_action/use/adamantine_vocal_cords)
|
||||
zone = "mouth"
|
||||
slot = "vocal_cords"
|
||||
icon_state = "voice_of_god"
|
||||
color = "#40E0D0"
|
||||
|
||||
/datum/action/item_action/organ_action/use/adamantine_vocal_cords/Trigger()
|
||||
if(!IsAvailable())
|
||||
return
|
||||
var/message = input(owner, "Resonate a message to all nearby golems.", "Resonate")
|
||||
if(QDELETED(src) || QDELETED(owner) || !message)
|
||||
return
|
||||
owner.say(".x[message]")
|
||||
|
||||
/obj/item/organ/vocal_cords/adamantine/handle_speech(message)
|
||||
var/msg = "<span class='resonate'><span class='name'>[owner.real_name]</span> <span class='message'>resonates, \"[message]\"</span></span>"
|
||||
for(var/m in GLOB.player_list)
|
||||
if(iscarbon(m))
|
||||
var/mob/living/carbon/C = m
|
||||
if(C.getorganslot("adamantine_resonator"))
|
||||
to_chat(C, msg)
|
||||
if(isobserver(m))
|
||||
var/link = FOLLOW_LINK(m, src)
|
||||
to_chat(m, "[link] [msg]")
|
||||
|
||||
//Colossus drop, forces the listeners to obey certain commands
|
||||
/obj/item/organ/vocal_cords/colossus
|
||||
name = "divine vocal cords"
|
||||
|
||||
@@ -151,4 +151,5 @@ BIG IMG.icon {width: 32px; height: 32px;}
|
||||
.drone {color: #848482;}
|
||||
.monkey {color: #975032;}
|
||||
.swarmer {color: #2C75FF;}
|
||||
.resonate {color: #298F85;}
|
||||
</style>"}
|
||||
|
||||
Reference in New Issue
Block a user