[MIRROR] Adamantine golem leadership (#785)
* Adamantine golem leadership * Update stylesheet.dm * Delete golems.dm.rej * Delete stylesheet.dm.rej * Update golems.dm * fuck line endings
This commit is contained in:
committed by
kevinz000
parent
c7b78203a5
commit
faf8829d30
@@ -9,7 +9,7 @@
|
||||
punchdamagelow = 5
|
||||
punchdamagehigh = 14
|
||||
punchstunthreshold = 11 //about 40% chance to stun
|
||||
no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store)
|
||||
no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store)
|
||||
nojumpsuit = 1
|
||||
sexes = 1
|
||||
damage_overlay_type = ""
|
||||
@@ -20,6 +20,7 @@
|
||||
dangerous_existence = TRUE
|
||||
limbs_id = "golem"
|
||||
fixed_mut_color = "aaa"
|
||||
mutant_organs = list(/obj/item/organ/adamantine_resonator)
|
||||
var/info_text = "As an <span class='danger'>Iron Golem</span>, you don't have any special traits."
|
||||
|
||||
var/prefix = "Iron"
|
||||
@@ -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
|
||||
@@ -71,14 +73,14 @@
|
||||
prefix = "Plasma"
|
||||
special_names = list("Flood","Fire","Bar","Man")
|
||||
|
||||
/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H)
|
||||
if(H.bodytemperature > 900 && H.on_fire)
|
||||
explosion(get_turf(H),1,2,4,flame_range = 5)
|
||||
if(H)
|
||||
H.gib()
|
||||
if(H.fire_stacks < 2) //flammable
|
||||
H.adjust_fire_stacks(1)
|
||||
..()
|
||||
/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H)
|
||||
if(H.bodytemperature > 900 && H.on_fire)
|
||||
explosion(get_turf(H),1,2,4,flame_range = 5)
|
||||
if(H)
|
||||
H.gib()
|
||||
if(H.fire_stacks < 2) //flammable
|
||||
H.adjust_fire_stacks(1)
|
||||
..()
|
||||
|
||||
//Harder to hurt
|
||||
/datum/species/golem/diamond
|
||||
@@ -505,7 +507,7 @@
|
||||
sexes = FALSE
|
||||
info_text = "As a <span class='danger'>Runic Golem</span>, you possess eldritch powers granted by the Elder God Nar'Sie."
|
||||
species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER) //no mutcolors
|
||||
prefix = "Runic"
|
||||
prefix = "Runic"
|
||||
|
||||
var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift
|
||||
var/obj/effect/proc_holder/spell/targeted/abyssal_gaze/abyssal_gaze
|
||||
@@ -643,18 +645,19 @@
|
||||
|
||||
if(P.is_hot())
|
||||
visible_message("<span class='danger'>[src] bursts into flames!</span>")
|
||||
fire_act()
|
||||
/datum/species/golem/plastic
|
||||
name = "Plastic"
|
||||
id = "plastic golem"
|
||||
prefix = "Plastic"
|
||||
fixed_mut_color = "fff"
|
||||
info_text = "As a <span class='danger'>Plastic Golem</span>, you are capable of ventcrawling, and passing through plastic flaps."
|
||||
|
||||
/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species)
|
||||
. = ..()
|
||||
C.ventcrawler = VENTCRAWLER_NUDE
|
||||
|
||||
/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C)
|
||||
. = ..()
|
||||
C.ventcrawler = initial(C.ventcrawler)
|
||||
|
||||
fire_act()
|
||||
/datum/species/golem/plastic
|
||||
name = "Plastic"
|
||||
id = "plastic golem"
|
||||
prefix = "Plastic"
|
||||
fixed_mut_color = "fff"
|
||||
info_text = "As a <span class='danger'>Plastic Golem</span>, you are capable of ventcrawling, and passing through plastic flaps."
|
||||
|
||||
/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species)
|
||||
. = ..()
|
||||
C.ventcrawler = VENTCRAWLER_NUDE
|
||||
|
||||
/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C)
|
||||
. = ..()
|
||||
C.ventcrawler = initial(C.ventcrawler)
|
||||
|
||||
@@ -477,26 +477,15 @@
|
||||
..()
|
||||
|
||||
//Adamantine
|
||||
/datum/chemical_reaction/slime/slimegolem
|
||||
name = "Slime Golem"
|
||||
id = "m_golem"
|
||||
/datum/chemical_reaction/slime/adamantine
|
||||
name = "Adamantine"
|
||||
id = "adamantine"
|
||||
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"
|
||||
required_reagents = list("iron" = 1)
|
||||
required_container = /obj/item/slime_extract/adamantine
|
||||
required_other = 1
|
||||
|
||||
/datum/chemical_reaction/slime/slimegolem2/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/golem_shell/artificial(get_turf(holder.my_atom))
|
||||
/datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder)
|
||||
new /obj/item/stack/sheet/mineral/adamantine(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
//Bluespace
|
||||
|
||||
@@ -107,6 +107,9 @@
|
||||
if(istype(O, /obj/item/stack/sheet/plastic))
|
||||
species = /datum/species/golem/plastic
|
||||
|
||||
if(istype(O, /obj/item/stack/sheet/mineral/adamantine))
|
||||
species = /datum/species/golem/adamantine
|
||||
|
||||
if(species)
|
||||
if(O.use(10))
|
||||
to_chat(user, "You finish up the golem shell with ten sheets of [O].")
|
||||
|
||||
@@ -20,6 +20,40 @@
|
||||
/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 = "adamantine_resonator"
|
||||
|
||||
/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 = "adamantine_cords"
|
||||
|
||||
/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"
|
||||
|
||||
Reference in New Issue
Block a user