Language Diversity / Racial fixes

This commit is contained in:
Dip
2020-09-12 22:30:37 -03:00
parent bb9b88b6d1
commit c35c942f72
5 changed files with 75 additions and 2 deletions
+61 -1
View File
@@ -232,4 +232,64 @@
/datum/quirk/slimespeaker/remove()
var/mob/living/M = quirk_holder
M.remove_language(/datum/language/slime)
M.remove_language(/datum/language/slime)
/datum/quirk/narsianspeaker
name = "Nar-Sian speaker"
desc = "Obsessed with the inner workings of the blood cult, you've learned how to speak their ancient language."
value = 1
gain_text = "<span class='notice'>Your mind feels sensitive to the slurred, ancient language of Nar'Sian cultists.</span>"
lose_text = "<span class='notice'>You forget how to speak Nar'Sian!</span>"
/datum/quirk/narsianspeaker/add()
var/mob/living/M = quirk_holder
M.grant_language(/datum/language/narsie)
/datum/quirk/narsianspeaker/remove()
var/mob/living/M = quirk_holder
M.remove_language(/datum/language/narsie)
/datum/quirk/ratvarianspeaker
name = "Ratvarian speaker"
desc = "Obsessed with forbidden knowledge regarding the clock cult, you've learned how to speak their language."
value = 1
gain_text = "<span class='notice'>Your mind feels sensitive to the ancient language of Ratvarian cultists.</span>"
lose_text = "<span class='notice'>You forget how to speak Ratvarian!</span>"
/datum/quirk/ratvarianspeaker/add()
var/mob/living/M = quirk_holder
M.grant_language(/datum/language/ratvar)
/datum/quirk/ratvarianspeaker/remove()
var/mob/living/M = quirk_holder
M.remove_language(/datum/language/ratvar)
/datum/quirk/encodedspeaker
name = "Encoded Audio speaker"
desc = "You've been augmented with language encoders, allowing you to understand encoded audio."
value = 1
gain_text = "<span class='notice'>Your mouth feels a little weird for a moment as your language encoder kicks in.</span>"
lose_text = "<span class='notice'>You feel your encoded audio chip malfunction. You can no longer speak or understand the language of fax machines.</span>"
/datum/quirk/encodedspeaker/add()
var/mob/living/M = quirk_holder
M.grant_language(/datum/language/machine)
/datum/quirk/encodedspeaker/remove()
var/mob/living/M = quirk_holder
M.remove_language(/datum/language/machine)
/datum/quirk/xenospeaker
name = "Xenocommon speaker"
desc = "Through time observing and interacting with xenos and xeno hybrids, you've learned the intricate hissing patterns of their language."
value = 1
gain_text = "<span class='notice'>You feel that you are now able to hiss in the same way xenomorphs do.</span>"
lose_text = "<span class='notice'>You seem to no longer know how to speak xenocommon.</span>"
/datum/quirk/xenospeaker/add()
var/mob/living/M = quirk_holder
M.grant_language(/datum/language/xenocommon)
/datum/quirk/xenospeaker/remove()
var/mob/living/M = quirk_holder
M.remove_language(/datum/language/xenocommon)
@@ -29,10 +29,12 @@
..()
assume_disguise(old_species, H)
RegisterSignal(H, COMSIG_MOB_SAY, .proc/handle_speech)
H.grant_language(/datum/language/machine)
/datum/species/synth/on_species_loss(mob/living/carbon/human/H)
. = ..()
UnregisterSignal(H, COMSIG_MOB_SAY)
H.remove_language(/datum/language/machine)
/datum/species/synth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
if(chem.id == "synthflesh")
@@ -123,4 +125,4 @@
if (/datum/species/golem/bananium)
speech_args[SPEECH_SPANS] |= SPAN_CLOWN
if (/datum/species/golem/clockwork)
speech_args[SPEECH_SPANS] |= SPAN_ROBOT
speech_args[SPEECH_SPANS] |= SPAN_ROBOT
+7
View File
@@ -22,6 +22,7 @@
/datum/language/ratvar,
/datum/language/aphasia,
/datum/language/slime,
/datum/language/xenocommon,
))
healing_factor = STANDARD_ORGAN_HEALING*5 //Fast!!
decay_factor = STANDARD_ORGAN_DECAY/2
@@ -252,6 +253,12 @@
/obj/item/organ/tongue/robot/can_speak_in_language(datum/language/dt)
return ..() || electronics_magic
/obj/item/organ/tongue/robot/Initialize(mapload)
. = ..()
var/static/list/languages_possible_robot = languages_possible_base + typecacheof(list(
/datum/language/machine))
languages_possible = languages_possible_robot
/obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args)
speech_args[SPEECH_SPANS] |= SPAN_ROBOT
@@ -227,6 +227,7 @@
liked_food = MEAT
/datum/species/xeno/on_species_gain(mob/living/carbon/human/C, datum/species/old_species)
C.grant_language(/datum/language/xenocommon)
if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs")
species_traits += DIGITIGRADE
if(DIGITIGRADE in species_traits)
@@ -234,6 +235,7 @@
. = ..()
/datum/species/xeno/on_species_loss(mob/living/carbon/human/C, datum/species/new_species)
C.remove_language(/datum/language/xenocommon)
if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Normal Legs")
species_traits -= DIGITIGRADE
if(DIGITIGRADE in species_traits)
@@ -24,12 +24,14 @@
var/datum/action/innate/monitor_change/screen
/datum/species/ipc/on_species_gain(mob/living/carbon/human/C)
C.grant_language(/datum/language/machine)
if(isipcperson(C) && !screen)
screen = new
screen.Grant(C)
..()
/datum/species/ipc/on_species_loss(mob/living/carbon/human/C)
C.remove_language(/datum/language/machine)
if(screen)
screen.Remove(C)
..()