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:
Jack Edge
2017-05-01 18:41:34 +01:00
parent 148a4d659c
commit be7b49422e
4 changed files with 40 additions and 12 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -151,4 +151,5 @@ BIG IMG.icon {width: 32px; height: 32px;}
.drone {color: #848482;}
.monkey {color: #975032;}
.swarmer {color: #2C75FF;}
.resonate {color: #298F85;}
</style>"}