Hail Lii'dra (#17925)

* fsad

* uihj
This commit is contained in:
Fluffy
2023-12-13 19:06:40 +00:00
committed by GitHub
parent 04dc739845
commit e27a6f3070
58 changed files with 121 additions and 120 deletions
@@ -16,7 +16,6 @@
var/acceleration = 1
var/owner_follows_eye = 0
see_in_dark = 7
status_flags = GODMODE
invisibility = INVISIBILITY_EYE
@@ -42,7 +42,6 @@
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
see_invisible = SEE_INVISIBLE_OBSERVER
see_in_dark = 100
add_verb(src, /mob/abstract/observer/proc/dead_tele)
set_stat(DEAD)
@@ -873,12 +872,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(on_restricted_level())
//On the restricted level they have the same sight as the mob
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_in_dark(2)
set_see_invisible(SEE_INVISIBLE_OBSERVER)
else
//Outside of the restrcited level, they have enhanced vision
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(100)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
if (!seedarkness)
-1
View File
@@ -73,7 +73,6 @@
layer = MOB_LAYER
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
drop_r_hand()
+49 -6
View File
@@ -190,22 +190,65 @@
SHOULD_NOT_SLEEP(TRUE)
return TRUE
// Language handling.
/mob/proc/add_language(var/language)
/**
* Adds a language to the known ones for the mob, returns `TRUE` if added successfully, `FALSE` otherwise
*
* Does NOT make it the default language
*
* * language - The language to add, can either be a `/datum/language` or a string, see the LANGUAGE_* defines in `code\__defines\species_languages.dm` for the strings
*/
/mob/proc/add_language(language)
SHOULD_NOT_SLEEP(TRUE)
var/datum/language/new_language
if(istype(language, /datum/language))
new_language = language
else
new_language = all_languages[language]
if (!istype(new_language) || !new_language)
CRASH("ERROR: Language [language] not found in list of all languages. The language you're looking for may have been moved, renamed, or removed. Please recheck the spelling of the name.")
if(!istype(new_language) || !new_language)
crash_with("ERROR: Language [language] not found in list of all languages. The language you're looking for may have been moved, renamed, or removed. Please recheck the spelling of the name.")
if(new_language in languages)
return 0
return FALSE
languages.Add(new_language)
return 1
return TRUE
/**
* Set default language for a `/mob/living`, return `TRUE` if set successfully, `FALSE` otherwise
*
* * language - The language to set as default, can either be a `/datum/language`, a string as per `LANGUAGE_*` defines in `code\__defines\species_languages.dm`,
* or `null` to remove the default language
*/
/mob/living/proc/set_default_language(language)
SHOULD_NOT_SLEEP(TRUE)
var/datum/language/new_default_language
if(istype(language, /datum/language))
new_default_language = language
else
new_default_language = all_languages[language]
if(!isnull(new_default_language) && !istype(new_default_language))
stack_trace("ERROR: Language [language] not found in list of all languages. The language you're looking for may have been moved, renamed, or removed. Please recheck the spelling of the name.")
return FALSE
if(!isnull(new_default_language) && !(new_default_language in languages))
stack_trace("Trying to set a default language that is not known by the mob! The language must first be added for it to be set as default!")
return FALSE
default_language = new_default_language
return TRUE
//Silicons can only speak languages listed in the `speech_synthesizer_langs`, even if they can understand more
/mob/living/silicon/set_default_language(language)
//Return FALSE if they can't speak this language
if(!(language in speech_synthesizer_langs))
return FALSE
. = ..()
/mob/proc/remove_language(var/rem_language)
var/datum/language/L = all_languages[rem_language]
+3 -1
View File
@@ -318,7 +318,9 @@
/datum/language/bug/check_speech_restrict(var/mob/speaker)
var/mob/living/carbon/human/H = speaker
var/obj/item/organ/internal/vaurca/neuralsocket/S = H.internal_organs_by_name[BP_NEURAL_SOCKET]
if(S.muted || S.disrupted)
//Black k'ois zombies don't have neural sockets but need to talk, hence check if the socket exists, or it will runtime for them
if(S && (S.muted || S.disrupted))
to_chat(speaker, SPAN_WARNING("You have been muted over the Hivenet!"))
return FALSE
else
@@ -96,14 +96,12 @@
if(stat == DEAD || HAS_FLAG(mutations, XRAY))
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
else if(stat != DEAD && is_ventcrawling == FALSE)
if(species && species.vision_flags)
sight = species.vision_flags
else
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_in_dark(2)
set_see_invisible(SEE_INVISIBLE_LIVING)
if (healths)
@@ -167,11 +167,9 @@
/mob/living/carbon/brain/handle_regular_hud_updates()
if(stat == DEAD || HAS_FLAG(mutations, XRAY))
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
else if(stat != DEAD)
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_in_dark(2)
set_see_invisible(SEE_INVISIBLE_LIVING)
if (healths)
@@ -196,11 +194,9 @@
if(stat == DEAD || HAS_FLAG(mutations, XRAY))
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
else if(stat != DEAD)
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_in_dark(2)
set_see_invisible(SEE_INVISIBLE_LIVING)
if (client)
@@ -548,7 +548,6 @@
return 1
if(!H.druggy)
H.set_see_in_dark((H.sight == (SEE_TURFS|SEE_MOBS|SEE_OBJS)) ? 8 : min(darksight + H.equipment_darkness_modifier, 8))
if(H.seer)
var/obj/effect/rune/R = locate(/obj/effect/rune) in get_turf(H)
if(R && R.type == /datum/rune/see_invisible)
@@ -30,7 +30,7 @@
meat_type = /obj/item/reagent_containers/food/snacks/meat/bug
rarity_value = 4
slowdown = 1
darksight = 8 //USELESS
darksight = 8 //Allows you to see through black k'ois if the night vision is on
eyes = "vaurca_eyes" //makes it so that eye colour is not changed when skin colour is.
eyes_are_impermeable = TRUE
@@ -17,7 +17,6 @@
nutrition = 700
max_nutrition = 1200
see_in_dark = 8
update_slimes = 0
// canstun and canweaken don't affect slimes because they ignore stun and weakened variables
+12 -11
View File
@@ -1,26 +1,27 @@
/mob/living
var/datum/language/default_language
/mob/living/verb/set_default_language()
/mob/living/verb/set_default_language_verb()
set name = "Set Default Language"
set category = "IC"
var/datum/language/language = input(src, "Choose a language.", "Set Default Language") as null|anything in languages
if(language)
to_chat(src, "<span class='notice'>You will now speak [language] if you do not specify a language when speaking.</span>")
else
to_chat(src, "<span class='notice'>You will now speak whatever your standard default language is if you do not specify one when speaking.</span>")
default_language = language
if(!language)
to_chat(src, SPAN_NOTICE("You will keep speaking your current default language, by default."))
return
// Silicons can't neccessarily speak everything in their languages list
/mob/living/silicon/set_default_language(language as null|anything in speech_synthesizer_langs)
..()
var/set_result = set_default_language(language)
if(set_result)
to_chat(src, SPAN_NOTICE("You will now speak [language] if you do not specify a language when speaking."))
else
to_chat(src, SPAN_NOTICE("You are unable to speak [language], choose another one or keep using [default_language]."))
/mob/living/verb/check_default_language()
set name = "Check Default Language"
set category = "IC"
if(default_language)
to_chat(src, "<span class='notice'>You are currently speaking [default_language] by default.</span>")
to_chat(src, SPAN_NOTICE("You are currently speaking [default_language] by default."))
else
to_chat(src, "<span class='notice'>Your current default language is your species or mob type default.</span>")
to_chat(src, SPAN_NOTICE("Your current default language is your species or mob type default."))
-3
View File
@@ -162,7 +162,6 @@
/mob/living/proc/update_sight()
set_sight(0)
set_see_in_dark(0)
if(stat == DEAD || eyeobj)
update_dead_sight()
else
@@ -180,12 +179,10 @@
set_sight_flags &= ~BLIND
set_sight(set_sight_flags)
set_see_in_dark(initial(see_in_dark))
set_see_invisible(initial(see_invisible))
/mob/living/proc/update_dead_sight()
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
/mob/living/proc/handle_hud_icons()
@@ -1,5 +1,4 @@
/mob/living
see_in_dark = 2
see_invisible = SEE_INVISIBLE_LIVING
//Health and life related vars
@@ -148,13 +148,11 @@
update_icon()
overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_in_dark(0)
set_see_invisible(SEE_INVISIBLE_LIVING)
else if(stat == DEAD)
update_dead_sight()
else
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LIVING)
/mob/living/silicon/ai/is_blind()
@@ -149,26 +149,20 @@
..()
if(stat == DEAD || HAS_FLAG(mutations, XRAY) || (sight_mode & BORGXRAY))
set_sight(sight|SEE_TURFS|SEE_MOBS|SEE_OBJS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
else if((sight_mode & BORGMESON) && (sight_mode & BORGTHERM))
set_sight(sight|SEE_TURFS|SEE_MOBS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_NOLIGHTING)
else if(sight_mode & BORGMESON)
set_sight(sight|SEE_TURFS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_NOLIGHTING)
else if(sight_mode & BORGMATERIAL)
set_sight(sight|SEE_OBJS)
set_see_in_dark(8)
else if(sight_mode & BORGTHERM)
set_sight(sight|SEE_MOBS)
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LEVEL_TWO)
else if(stat != DEAD)
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_in_dark(8)
set_see_invisible(SEE_INVISIBLE_LIVING)
switch(sensor_mode)
@@ -27,7 +27,6 @@
show_stat_health = TRUE
faction = "cult"
supernatural = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_ONE
blood_type = "#000000"
@@ -14,7 +14,6 @@
organ_names = list("core", "harvesting array")
speed = -1
environment_smash = 1
see_in_dark = 7
attack_sound = 'sound/weapons/pierce.ogg'
can_repair = TRUE
construct_spells = list(
@@ -13,7 +13,6 @@
organ_names = list("core", "right arm", "left arm")
speed = -1
environment_smash = TRUE
see_in_dark = 7
attack_sound = 'sound/weapons/rapidslice.ogg'
construct_spells = list(/spell/targeted/ethereal_jaunt/shift)
@@ -77,7 +77,6 @@
emote_see = list("shakes its head")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_amount = 30
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
@@ -262,7 +261,6 @@
emote_see = list("shakes its head", "stomps its feet")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
@@ -331,7 +329,6 @@
emote_see = list("shakes its head")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_amount = 50
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
@@ -15,7 +15,6 @@
emote_see = list("floats steadily", "inflates its gills")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/fish/carpmeat
organ_names = list("head", "chest", "tail", "left flipper", "right flipper")
response_help = "brushes"
@@ -16,7 +16,6 @@
emote_see = list("shakes their head", "shivers")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
@@ -19,7 +19,6 @@
response_help = "pets"
response_disarm = "bops"
response_harm = "kicks"
see_in_dark = 5
mob_size = 3.5
max_nutrition = 70 //Dogs are insatiable eating monsters. This scales with their mob size too
stomach_size_mult = 8
@@ -31,7 +31,6 @@
minbodytemp = 0
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
/mob/living/simple_animal/cosmozoan/Initialize()
@@ -12,7 +12,6 @@
emote_see = list("shakes its head", "stamps a foot", "glares around")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
meat_amount = 6
mob_size = 4.5//weight based on Chanthangi goats
@@ -89,7 +88,6 @@
emote_see = list("shakes its head")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
meat_amount = 40 //Cows are huge, should be worth a lot of meat
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
@@ -134,7 +132,6 @@
emote_see = list("sways its tail")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat/pig
meat_amount = 20
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
@@ -6,7 +6,6 @@
emote_hear = list("glubs","glibs")
emote_see = list("flops around", "inflates its gills")
speak_chance = 1
see_in_dark = 6
density = FALSE
mob_size = MOB_SMALL
item_state = "fish"
@@ -13,7 +13,6 @@
emote_see = list("shakes its head", "shivers")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
meat_amount = 3
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
@@ -26,7 +26,6 @@
pass_flags = PASSTABLE
speak_chance = 3
turns_per_move = 5
see_in_dark = 6
maxHealth = 5
health = 5
meat_type = /obj/item/reagent_containers/food/snacks/meat/rat
@@ -21,7 +21,6 @@
icon_dead = "rat_gray_dead"
icon_rest = "rat_gray_sleep"
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
var/swarm_name = "peasentry"
@@ -101,7 +101,6 @@
environment_smash = 1
attack_emote = "wiggles toward"
see_in_dark = 10
see_invisible = SEE_INVISIBLE_NOLIGHTING
blood_type = "#281C2D"
@@ -132,7 +131,6 @@
mob_size = 5
attack_emote = "hums at"
see_in_dark = 10
see_invisible = SEE_INVISIBLE_NOLIGHTING
smart_ranged = TRUE
@@ -15,7 +15,6 @@
emote_see = list("stares ferociously", "stomps")
speak_chance = 10
turns_per_move = 10
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/bearmeat
meat_amount = 5
organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
@@ -31,7 +31,6 @@
attacktext = "mangled"
attack_sound = 'sound/weapons/bloodyslice.ogg'
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
pixel_x = -16
speed = -1
@@ -37,7 +37,6 @@
attack_sound = 'sound/weapons/bloodyslice.ogg'
emote_sounds = list('sound/effects/creatures/bear_loud_1.ogg', 'sound/effects/creatures/bear_loud_2.ogg', 'sound/effects/creatures/bear_loud_3.ogg', 'sound/effects/creatures/bear_loud_4.ogg')
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
minbodytemp = 0
@@ -167,7 +166,6 @@
attacktext = "mangled"
attack_sound = 'sound/weapons/bloodyslice.ogg'
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
pass_flags = PASSTABLE
@@ -16,7 +16,6 @@
speak_chance = 1
turns_per_move = 7
see_in_dark = 6
speak = list("Woof!", "Bark!", "AUUUUUU!","AwooOOOoo!")
speak_emote = list("barks", "woofs")
@@ -20,7 +20,6 @@
speak_chance = 1
turns_per_move = 7
see_in_dark = 6
speak = list("Rawr!", "Gawrgle!", "Bizzbop!", "Bweeewoooo!")
speak_emote = list("roars pitifully", "squeals out a mechanical attempt at a growl")
@@ -19,7 +19,6 @@
emote_hear = list("chitters")
speak_chance = 5
turns_per_move = 5
see_in_dark = 10
meat_amount = 3
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
organ_names = list("thorax", "legs", "head")
@@ -31,7 +31,6 @@
tameable = FALSE
flying = TRUE
smart_melee = FALSE
see_in_dark = 8
pass_flags = PASSTABLE|PASSRAILING
emote_hear = list("emits a harsh noise")
emote_sounds = list(
@@ -33,7 +33,6 @@
max_n2 = 0
minbodytemp = 0
speed = -10
see_in_dark = 8
destroy_surroundings = 0
var/bot_type
var/bot_amt = 160 //Number of total bots that are spawned before the beacon disappears completely.
@@ -30,7 +30,6 @@
tameable = FALSE
flying = 1
mob_size = MOB_LARGE
see_in_dark = 8
pass_flags = PASSTABLE|PASSRAILING
attack_emote = "focuses on"
var/mob/living/simple_animal/hostile/hivebotbeacon/linked_parent = null
@@ -56,7 +56,6 @@
tameable = FALSE
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
psi_pingable = FALSE
@@ -30,7 +30,6 @@
attacktext = "punished"
attack_sound = 'sound/weapons/bladeslice.ogg'
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
minbodytemp = 0
@@ -32,7 +32,6 @@
melee_damage_lower = 12
melee_damage_upper = 16
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
stop_sight_update = TRUE
@@ -31,7 +31,6 @@
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
mob_push_flags = ALLMOBS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
minbodytemp = 0
@@ -194,7 +194,6 @@
tameable = FALSE
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
emote_sounds = list('sound/effects/creatures/PRA_drone.ogg')
@@ -37,7 +37,6 @@
name = "carnivorous aquatic creature"
desc = "A threatening-looking aquatic creature with a mouth full of densely-packed, razor sharp teeth."
emote_see = list("swishes around elegantly", "floats threateningly")
see_in_dark = 6
mob_size = MOB_LARGE
icon_state = "thresher"
icon_living = "thresher"
@@ -45,7 +45,6 @@
faction = "cavern"
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
/mob/living/simple_animal/hostile/retaliate/cavern_dweller/Allow_Spacemove(var/check_drift = 0)
@@ -110,7 +109,6 @@
minbodytemp = 0
light_range = 10
light_wedge = LIGHT_WIDE
see_in_dark = 8
psi_pingable = FALSE
faction = "sol"
@@ -92,7 +92,6 @@
desc = "The gaping maw opens and closes eternally, insatiably... Rumours however tell that those who can sate it are rewarded."
icon = 'icons/mob/npc/cavern.dmi'
icon_state = "sarlacc"
see_in_dark = 8
health = 100
maxHealth = 100
gender = NEUTER
@@ -313,7 +312,6 @@
desc = "This pulsating brain seems somehow connected to all the other orifices in this room..."
icon = 'icons/mob/npc/cavern.dmi'
icon_state = "sarlaccbrain"
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
universal_speak = 1
@@ -48,7 +48,6 @@
attack_emote = "nashes at"
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
/mob/living/simple_animal/hostile/carp/update_icon()
@@ -291,5 +290,4 @@
attack_emote = "nashes at"
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
@@ -13,7 +13,6 @@
emote_hear = list("chitters")
speak_chance = 5
turns_per_move = 5
see_in_dark = 10
see_invisible = SEE_INVISIBLE_NOLIGHTING
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
organ_names = list("thorax", "legs", "head")
+4
View File
@@ -6,6 +6,10 @@
sight = DEFAULT_SIGHT
var/datum/mind/mind
// we never want to hide a turf because it's not lit
// We can rely on the lighting plane to handle that for us
see_in_dark = 1e6
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
can_be_buckled = TRUE