mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 23:14:18 +01:00
Revenant Gameplay Enhancement (#11049)
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
var/list/partial_understanding // List of languages that can /somehwat/ understand it, format is: name = chance of understanding a word
|
||||
var/machine_understands = TRUE // Whether machines can parse and understand this language
|
||||
var/allow_accents = FALSE
|
||||
var/always_parse_language = FALSE // forces the language to parse for language keys even when a default is set
|
||||
|
||||
/datum/language/proc/get_random_name(var/gender, name_count=2, syllable_count=4, syllable_divisor=2)
|
||||
if(!syllables || !syllables.len)
|
||||
|
||||
@@ -104,4 +104,11 @@
|
||||
key = "c"
|
||||
syllables = list("grhhg", "ghrohg", "grgugh", "grrhh", "hghh", "rghghh", "gghhh", "ggrh", "aghrh")
|
||||
flags = RESTRICTED
|
||||
partial_understanding = list(LANGUAGE_TCB = 80)
|
||||
partial_understanding = list(LANGUAGE_TCB = 80)
|
||||
always_parse_language = TRUE
|
||||
|
||||
/datum/language/revenant/hivemind
|
||||
name = LANGUAGE_REVENANT_RIFTSPEAK
|
||||
desc = "A manner of speaking that allows revenants to talk to eachother no matter the distance."
|
||||
key = "rs"
|
||||
flags = RESTRICTED | HIVEMIND
|
||||
@@ -101,6 +101,7 @@
|
||||
if(player_is_antag(H.mind))
|
||||
var/datum/ghostspawner/revenant/R = SSghostroles.get_spawner(MODE_REVENANT)
|
||||
R.count = max(R.count - 1, 0)
|
||||
revenants.kill_count++
|
||||
INVOKE_ASYNC(src, .proc/spawn_gore, get_turf(H))
|
||||
H.set_death_time(ANIMAL, world.time)
|
||||
for(var/obj/item/I in H)
|
||||
@@ -108,6 +109,8 @@
|
||||
qdel(H)
|
||||
|
||||
/datum/species/revenant/proc/spawn_gore(var/turf/T)
|
||||
var/portal_type = pick(/obj/effect/portal/spawner/silver, /obj/effect/portal/spawner/gold, /obj/effect/portal/spawner/phoron)
|
||||
new portal_type(T)
|
||||
var/obj/effect/decal/cleanable/blood/gibs/G = new /obj/effect/decal/cleanable/blood/gibs(T)
|
||||
G.basecolor = blood_color
|
||||
G.fleshcolor = flesh_color
|
||||
@@ -119,6 +122,7 @@
|
||||
..()
|
||||
H.gender = NEUTER
|
||||
H.universal_understand = TRUE
|
||||
H.add_language(LANGUAGE_REVENANT_RIFTSPEAK)
|
||||
|
||||
/datum/species/revenant/get_random_name()
|
||||
return "Revenant"
|
||||
|
||||
@@ -184,7 +184,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
message = formalize_text(message)
|
||||
|
||||
//parse the language code and consume it
|
||||
if(!speaking)
|
||||
if(!speaking || speaking.always_parse_language)
|
||||
speaking = parse_language(message)
|
||||
if(speaking)
|
||||
message = copytext(message,2+length(speaking.key))
|
||||
|
||||
@@ -140,6 +140,14 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/proc/isrevenant(A)
|
||||
if(ishuman(A))
|
||||
var/mob/living/carbon/human/H = A
|
||||
switch(H.get_species())
|
||||
if(SPECIES_REVENANT)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/proc/islesserform(A)
|
||||
if(istype(A, /mob/living/carbon/human))
|
||||
switch(A:get_species())
|
||||
|
||||
@@ -159,9 +159,12 @@
|
||||
return all_languages["Noise"]
|
||||
|
||||
if(length(message) >= 2 && is_language_prefix(prefix))
|
||||
var/language_prefix = lowertext(copytext(message, 2 ,3))
|
||||
var/language_prefix = lowertext(copytext(message, 2, 4))
|
||||
var/datum/language/L = language_keys[language_prefix]
|
||||
if (can_speak(L))
|
||||
if(!L)
|
||||
language_prefix = lowertext(copytext(message, 2, 3))
|
||||
L = language_keys[language_prefix]
|
||||
if(can_speak(L))
|
||||
return L
|
||||
|
||||
return null
|
||||
|
||||
Reference in New Issue
Block a user