[Ready]Minor Slime Update: slimepeople get the slime language, slimes speak slime instead of common

This commit is contained in:
XDTM
2018-01-24 20:47:21 +01:00
committed by CitadelStationBot
parent f4a817be01
commit 3aa246d39b
3 changed files with 37 additions and 11 deletions
+6 -6
View File
@@ -701,9 +701,9 @@
language_holder = new initial_language_holder(src)
return language_holder
/atom/movable/proc/grant_language(datum/language/dt)
var/datum/language_holder/H = get_language_holder()
H.grant_language(dt)
/atom/movable/proc/grant_language(datum/language/dt, body = FALSE)
var/datum/language_holder/H = get_language_holder(!body)
H.grant_language(dt, body)
/atom/movable/proc/grant_all_languages(omnitongue=FALSE)
var/datum/language_holder/H = get_language_holder()
@@ -713,9 +713,9 @@
var/datum/language_holder/H = get_language_holder()
. = H.get_random_understood_language()
/atom/movable/proc/remove_language(datum/language/dt)
var/datum/language_holder/H = get_language_holder()
H.remove_language(dt)
/atom/movable/proc/remove_language(datum/language/dt, body = FALSE)
var/datum/language_holder/H = get_language_holder(!body)
H.remove_language(dt, body)
/atom/movable/proc/remove_all_languages()
var/datum/language_holder/H = get_language_holder()
+11 -4
View File
@@ -31,8 +31,11 @@
copy.omnitongue = src.omnitongue
return copy
/datum/language_holder/proc/grant_language(datum/language/dt)
languages[dt] = TRUE
/datum/language_holder/proc/grant_language(datum/language/dt, shadow = FALSE)
if(shadow)
shadow_languages[dt] = TRUE
else
languages[dt] = TRUE
/datum/language_holder/proc/grant_all_languages(omnitongue=FALSE)
for(var/la in GLOB.all_languages)
@@ -47,8 +50,11 @@
possible += dt
. = safepick(possible)
/datum/language_holder/proc/remove_language(datum/language/dt)
languages -= dt
/datum/language_holder/proc/remove_language(datum/language/dt, shadow = FALSE)
if(shadow)
shadow_languages -= dt
else
languages -= dt
/datum/language_holder/proc/remove_all_languages()
languages.Cut()
@@ -120,6 +126,7 @@
/datum/language_holder/slime
languages = list(/datum/language/common, /datum/language/slime)
only_speaks_language = /datum/language/slime
/datum/language_holder/lightbringer
// TODO change to a lightbringer specific sign language
@@ -14,10 +14,13 @@
/datum/species/jelly/on_species_loss(mob/living/carbon/C)
if(regenerate_limbs)
regenerate_limbs.Remove(C)
C.remove_language(/datum/language/slime, TRUE)
C.faction -= "slime"
..()
/datum/species/jelly/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
C.grant_language(/datum/language/slime, TRUE)
if(ishuman(C))
regenerate_limbs = new
regenerate_limbs.Grant(C)
@@ -101,7 +104,7 @@
name = "Slimeperson"
id = "slime"
default_color = "00FFFF"
species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER)
species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,TOXINLOVER)
say_mod = "says"
hair_color = "mutcolor"
hair_alpha = 150
@@ -137,8 +140,24 @@
bodies = list(C)
else
bodies |= C
<<<<<<< HEAD
C.faction |= "slime"
=======
/datum/species/jelly/slime/spec_death(gibbed, mob/living/carbon/human/H)
if(slime_split)
var/datum/mind/M
for(var/mob/living/L in bodies)
if(L.mind && L.mind.active)
M = L.mind
if(!M || M != H.mind)
return
var/list/available_bodies = (bodies - H)
if(!LAZYLEN(available_bodies))
return
swap_body.swap_to_dupe(M, pick(available_bodies))
>>>>>>> f4847c2... [Ready]Minor Slime Update: slimepeople get the slime language, slimes speak slime instead of common (#33773)
//If you're cloned you get your body pool back
/datum/species/jelly/slime/copy_properties_from(datum/species/jelly/slime/old_species)