Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into upstream-merge-26952

This commit is contained in:
LetterJay
2017-05-17 10:12:36 -05:00
454 changed files with 16010 additions and 8089 deletions
+3
View File
@@ -64,6 +64,9 @@
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
sight_flags = SEE_MOBS
/obj/item/organ/eyes/night_vision/zombie
name = "undead eyes"
desc = "Somewhat counterintuitively, these half rotten eyes actually have superior vision to those of a living human."
///Robotic
@@ -125,16 +125,13 @@
if(!getorganslot("tongue"))
var/obj/item/organ/tongue/T
if(dna && dna.species)
for(var/tongue_type in dna.species.mutant_organs)
if(ispath(tongue_type, /obj/item/organ/tongue))
T = new tongue_type()
T.Insert(src)
if(dna && dna.species && dna.species.mutanttongue)
T = new dna.species.mutanttongue()
else
T = new()
// if they have no mutant tongues, give them a regular one
if(!T)
T = new()
T.Insert(src)
T.Insert(src)
if(!getorganslot("eye_sight"))
var/obj/item/organ/eyes/E
+8 -14
View File
@@ -10,9 +10,10 @@
var/taste_sensitivity = 15 // lower is more sensitive.
/obj/item/organ/tongue/Initialize(mapload)
..()
. = ..()
languages_possible = typecacheof(list(
/datum/language/common,
/datum/language/draconic,
/datum/language/monkey,
/datum/language/ratvar
))
@@ -33,7 +34,7 @@
if(say_mod && M.dna && M.dna.species)
M.dna.species.say_mod = initial(M.dna.species.say_mod)
/obj/item/organ/tongue/can_speak_in_language(datum/language/dt)
/obj/item/organ/tongue/could_speak_in_language(datum/language/dt)
. = is_type_in_typecache(dt, languages_possible)
/obj/item/organ/tongue/lizard
@@ -123,10 +124,11 @@
taste_sensitivity = 10 // LIZARDS ARE ALIENS CONFIRMED
/obj/item/organ/tongue/alien/Initialize(mapload)
..()
. = ..()
languages_possible = typecacheof(list(
/datum/language/xenocommon,
/datum/language/common,
/datum/language/draconic,
/datum/language/ratvar,
/datum/language/monkey))
@@ -175,7 +177,7 @@
/obj/item/organ/tongue/bone/plasmaman/get_spans()
return
/obj/item/organ/tongue/robot
name = "robotic voicebox"
desc = "A voice synthesizer that can interface with organic lifeforms."
@@ -185,16 +187,8 @@
attack_verb = list("beeped", "booped")
taste_sensitivity = 25 // not as good as an organic tongue
/obj/item/organ/tongue/robot/Initialize(mapload)
..()
languages_possible = typecacheof(list(
/datum/language/xenocommon,
/datum/language/common,
/datum/language/ratvar,
/datum/language/monkey,
/datum/language/drone,
/datum/language/machine,
/datum/language/swarmer))
/obj/item/organ/tongue/robot/can_speak_in_language(datum/language/dt)
. = TRUE // THE MAGIC OF ELECTRONICS
/obj/item/organ/tongue/robot/get_spans()
return ..() | SPAN_ROBOT
+35 -1
View File
@@ -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, owner)
to_chat(m, "[link] [msg]")
//Colossus drop, forces the listeners to obey certain commands
/obj/item/organ/vocal_cords/colossus
name = "divine vocal cords"
@@ -248,7 +282,7 @@
else if((findtext(message, silence_words)))
cooldown = COOLDOWN_STUN
for(var/mob/living/carbon/C in listeners)
if(user.mind && (user.mind.assigned_role == "Librarian" || user.mind.assigned_role == "Mime"))
if(user.mind && (user.mind.assigned_role == "Curator" || user.mind.assigned_role == "Mime"))
power_multiplier *= 3
C.silent += (10 * power_multiplier)
@@ -0,0 +1,10 @@
diff a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm (rejected hunks)
@@ -51,7 +51,7 @@
if(C.getorganslot("adamantine_resonator"))
to_chat(C, msg)
if(isobserver(m))
- var/link = FOLLOW_LINK(m, src)
+ var/link = FOLLOW_LINK(m, owner)
to_chat(m, "[link] [msg]")
//Colossus drop, forces the listeners to obey certain commands