Merge branch 'voreupdate' of https://github.com/Yawn-Wider/YWPolarisVore; branch 'release' of https://github.com/VOREStation/VOREStation into voreupdate

This commit is contained in:
izac112
2024-12-30 21:16:49 +01:00
76 changed files with 1489 additions and 866 deletions
+2
View File
@@ -13,10 +13,12 @@
/datum/modifier/feysight/on_applied()
holder.see_invisible = 60
holder.see_invisible_default = 60
holder.plane_holder.set_vis(VIS_GHOSTS,TRUE)
/datum/modifier/feysight/on_expire()
holder.see_invisible_default = initial(holder.see_invisible_default)
holder.see_invisible = holder.see_invisible_default
holder.plane_holder.set_vis(VIS_GHOSTS,FALSE)
/datum/modifier/feysight/can_apply(var/mob/living/L)
if(L.stat)
+18 -8
View File
@@ -36,6 +36,7 @@
incorporeal_move = 1
var/is_manifest = 0 //If set to 1, the ghost is able to whisper. Usually only set if a cultist drags them through the veil.
var/toggled_invisible = 0
var/ghost_sprite = null
var/global/list/possible_ghost_sprites = list(
"Clear" = "blank",
@@ -841,15 +842,19 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/proc/manifest(mob/user)
is_manifest = TRUE
add_verb(src, /mob/observer/dead/proc/toggle_visibility)
add_verb(src, /mob/observer/dead/proc/ghost_whisper)
// Allows them to use the 'toggle_visibility' verb add_verb(src, /mob/observer/dead/verb/toggle_visibility)
// Allows them to use the 'ghost whisper' verb add_verb(src, /mob/observer/dead/verb/ghost_whisper)
to_chat(src, span_filter_notice(span_purple("As you are now in the realm of the living, you can whisper to the living with the " + span_bold("Spectral Whisper") + " verb, inside the IC tab.")))
if(!user)
visible_message(span_deadsay("The ghost of \the [src] is dragged back in to our plane of reality!"))
toggle_ghost_visibility(TRUE)
return
if(plane != PLANE_WORLD)
user.visible_message( \
span_warning("\The [user] drags ghost, [src], to our plane of reality!"), \
span_warning("You drag [src] to our plane of reality!") \
)
toggle_visibility(TRUE)
toggle_ghost_visibility(TRUE)
else
var/datum/gender/T = gender_datums[user.get_visible_gender()]
user.visible_message ( \
@@ -871,12 +876,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon)
client.images += J
/mob/observer/dead/proc/toggle_visibility(var/forced = 0)
set category = "Ghost.Settings"
/mob/observer/dead/verb/toggle_visibility()
set name = "Toggle Visibility"
set desc = "Allows you to turn (in)visible (almost) at will."
set category = "Ghost.Settings"
toggle_ghost_visibility()
var/toggled_invisible
/mob/observer/dead/proc/toggle_ghost_visibility(var/forced = FALSE)
if(!is_manifest)
to_chat(src, span_filter_notice("You are not strong enough to pierce the veil..."))
return
if(!forced && plane == PLANE_GHOSTS && world.time < toggled_invisible + 600)
to_chat(src, span_filter_notice("You must gather strength before you can turn visible again..."))
return
@@ -972,7 +982,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
//Culted Ghosts
/mob/observer/dead/proc/ghost_whisper()
/mob/observer/dead/verb/ghost_whisper()
set name = "Spectral Whisper"
set category = "IC.Subtle"
@@ -992,7 +1002,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
return 1
else
to_chat(src, span_danger("You have not been pulled past the veil!"))
to_chat(src, span_danger("You have not been pulled past the veil! You can not whisper to the living."))
/mob/observer/dead/verb/choose_ghost_sprite()
set category = "Ghost.Settings"
@@ -60,3 +60,23 @@
else
to_chat(src, span_warning("You do not have enough chemicals stored to reproduce."))
return
/mob/living/proc/toggle_active_cloaking() // Borrowed from Rogue Star, thanks guys!
set category = "Abilities.General"
set name = "Toggle Active Cloaking"
if(invisibility == INVISIBILITY_OBSERVER)
invisibility = initial(invisibility)
to_chat(src, span_notice("You are now visible."))
alpha = max(alpha + 100, 255)
else
invisibility = INVISIBILITY_OBSERVER
to_chat(src, span_notice("You are now invisible."))
alpha = max(alpha - 100, 0)
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(5, 0, src)
sparks.attach(loc)
sparks.start()
visible_message(span_warning("Electrical sparks manifest around \the [src] as they suddenly appear!"))
qdel(sparks)
@@ -302,3 +302,4 @@
. = ..()
if(. && (species.tail || tail_style))
update_tail_showing()
update_inv_wear_suit()
+11 -3
View File
@@ -1631,7 +1631,11 @@
else //We aren't dead
sight &= ~(SEE_TURFS|SEE_MOBS|SEE_OBJS)
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default
if(see_invisible_default > SEE_INVISIBLE_LEVEL_ONE)
see_invisible = see_invisible_default
else
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default
// Do this early so certain stuff gets turned off before vision is assigned.
var/area/A = get_area(src)
@@ -1659,7 +1663,10 @@
else
sight = species.get_vision_flags(src)
see_in_dark = species.darksight
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default
if(see_invisible_default > SEE_INVISIBLE_LEVEL_ONE)
see_invisible = see_invisible_default
else
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default
var/glasses_processed = 0
var/obj/item/rig/rig = get_rig()
@@ -1673,7 +1680,8 @@
if(XRAY in mutations)
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO
if(!druggy)
see_invisible = SEE_INVISIBLE_LEVEL_TWO
for(var/datum/modifier/M in modifiers)
if(!isnull(M.vision_flags))
+17 -13
View File
@@ -5,30 +5,34 @@
set name = "Set Default Language"
set category = "IC.Settings"
var/language = tgui_input_list(usr, "Select your default language", "Available languages", languages)
if(!LAZYLEN(languages))
to_chat(src, span_warning("You can't speak any languages."))
return
var/language = tgui_input_list(src, "Select your default language", "Available languages", languages)
if(!language)
return
apply_default_language(language)
// Silicons can't neccessarily speak everything in their languages list
/mob/living/silicon/set_default_language()
var/language = tgui_input_list(usr, "Select your default language", "Available languages", speech_synthesizer_langs)
// Silicons have no species language usually. So let's default them to GALCOM
if(!language)
to_chat(src, span_notice("You will now speak your standard default language, common, if you do not specify a language when speaking."))
for(var/datum/language/lang in speech_synthesizer_langs)
if(lang.name == LANGUAGE_GALCOM)
default_language = lang
break
if(!LAZYLEN(speech_synthesizer_langs))
to_chat(src, span_warning("You can't speak any languages."))
return
var/language = tgui_input_list(src, "Select your default language", "Available languages", speech_synthesizer_langs)
if(!language)
return
apply_default_language(language)
/mob/living/proc/apply_default_language(var/language)
if (only_species_language && language != GLOB.all_languages[src.species_language])
to_chat(src, span_notice("You can only speak your species language, [src.species_language]."))
if (only_species_language && language != GLOB.all_languages[species_language])
to_chat(src, span_notice("You can only speak your species language, [species_language]."))
return 0
if(language == GLOB.all_languages[src.species_language])
to_chat(src, span_notice("You will now speak your standard default language, [language ? language : "common"], if you do not specify a language when speaking."))
if(language == GLOB.all_languages[species_language])
to_chat(src, span_notice("You will now speak your standard default language, [language], if you do not specify a language when speaking."))
else if (language)
if(language && !can_speak(language))
+10 -7
View File
@@ -1,5 +1,4 @@
/mob/living/silicon/pai
var/people_eaten = 0
icon = 'icons/mob/pai_vr.dmi'
softfall = TRUE
var/eye_glow = TRUE
@@ -156,14 +155,18 @@
add_eyes()
return
update_fullness()
if(!people_eaten && !resting)
//Add a check when selecting a chassis if you add in support for this, to set vore_capacity to 2 or however many states you have.
var/fullness_extension = ""
if(vore_capacity > 1 && vore_fullness > 1)
fullness_extension = "_[vore_fullness]"
if(!vore_fullness && !resting)
icon_state = "[chassis]"
else if(!people_eaten && resting)
else if(!vore_fullness && resting)
icon_state = "[chassis]_rest"
else if(people_eaten && !resting)
icon_state = "[chassis]_full"
else if(people_eaten && resting)
icon_state = "[chassis]_rest_full"
else if(vore_fullness && !resting)
icon_state = "[chassis]_full[fullness_extension]"
else if(vore_fullness && resting)
icon_state = "[chassis]_rest_full[fullness_extension]"
if(chassis in wide_chassis)
pixel_x = -16
default_pixel_x = -16
@@ -24,6 +24,7 @@
var/crisis //Admin-settable for combat module use.
var/crisis_override = 0
var/integrated_light_power = 6
var/robotdecal_on = 0
var/datum/wires/robot/wires
can_be_antagged = TRUE
@@ -443,6 +444,13 @@
handle_light()
update_icon()
/mob/living/silicon/robot/verb/toggle_robot_decals() // loads overlay UNDER lights.
set category = "Abilities.Silicon"
set name = "Toggle extras"
robotdecal_on = !robotdecal_on
to_chat(usr, span_filter_notice("You [robotdecal_on ? "enable" : "disable"] your extra apperances."))
update_icon()
/mob/living/silicon/robot/verb/spark_plug() //So you can still sparkle on demand without violence.
set category = "Abilities.Silicon"
set name = "Emit Sparks"
@@ -956,6 +964,12 @@
if(eyes_overlay)
add_overlay(eyes_overlay)
if(robotdecal_on && sprite_datum.has_robotdecal_sprites)
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
var/robotdecal_overlay = sprite_datum.get_robotdecal_overlay(src)
if(robotdecal_overlay)
add_overlay(robotdecal_overlay)
if(lights_on && sprite_datum.has_eye_light_sprites)
if(!shell || deployed) // Shell borgs that are not deployed will have no eyes.
var/eyes_overlay = sprite_datum.get_eye_light_overlay(src)
@@ -42,7 +42,7 @@
modules.Add(shell_module_types)
else
modules.Add(robot_module_types)
if(R.crisis || security_level == SEC_LEVEL_RED || R.crisis_override)
if(R.crisis || security_level >= SEC_LEVEL_RED || R.crisis_override)
to_chat(R, span_red("Crisis mode active. Combat module available."))
modules |= emergency_module_types
for(var/module_name in whitelisted_module_types)
@@ -10,6 +10,7 @@
var/has_eye_sprites = TRUE
var/has_eye_light_sprites = FALSE
var/has_robotdecal_sprites = FALSE
var/has_custom_open_sprites = FALSE
var/has_vore_belly_sprites = FALSE
var/has_vore_belly_resting_sprites = FALSE
@@ -131,6 +132,12 @@
else
return
/datum/robot_sprite/proc/get_robotdecal_overlay(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.resting && has_rest_sprites))
return "[sprite_icon_state]-decals"
else
return
/datum/robot_sprite/proc/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.rest_style in rest_sprite_options))
ourborg.rest_style = "Default"
@@ -181,21 +188,7 @@
has_dead_sprite_overlay = TRUE
has_custom_equipment_sprites = TRUE
pixel_x = -16
/* //Does not need to be dogborg-only, letting all borgs use these -Reo
/datum/robot_sprite/dogborg/get_rest_sprite(var/mob/living/silicon/robot/ourborg)
if(!(ourborg.rest_style in rest_sprite_options))
ourborg.rest_style = "Default"
switch(ourborg.rest_style)
if("Sit")
return "[sprite_icon_state]-sit"
if("Bellyup")
return "[sprite_icon_state]-bellyup"
else
return "[sprite_icon_state]-rest"
/datum/robot_sprite/dogborg/get_belly_overlay(var/mob/living/silicon/robot/ourborg)
return "[sprite_icon_state]-sleeper"
*/
/datum/robot_sprite/dogborg/do_equipment_glamour(var/obj/item/robot_module/module)
if(!has_custom_equipment_sprites)
return
@@ -308,6 +308,27 @@
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/service/dullahan
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/service/dullahan/basic
name = "Dullahan service v3"
sprite_icon_state = "dullahanservice"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
/datum/robot_sprite/dogborg/tall/service/dullahanv3/barista
name = "Dullahan matcha v3"
sprite_icon_state = "dullahanbarista"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
// Clerical
@@ -212,4 +212,17 @@
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/engineering/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/engineering/dullahanv3/engineerdully
name = "Dullahan engineer v3"
sprite_icon_state = "dullahanengineer"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
@@ -191,10 +191,23 @@
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/mining/k4t_alt1
/datum/robot_sprite/dogborg/tall/janitor/k4t_alt1
name = "K4T Alt"
sprite_icon_state = "k4t_alt1"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/janitor/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/janitor/dullahanv3/janitordully
name = "Dullahan janitor v3"
sprite_icon_state = "dullahanjanitor"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
@@ -137,6 +137,18 @@
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/medical/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/medical/dullahanv3/medicaldully
name = "Dullahan medical v3"
sprite_icon_state = "dullahanmedical"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
// Surgeon
@@ -182,4 +182,17 @@
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/mining/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/mining/dullahanv3/miningdully
name = "Dullahan mining v3"
sprite_icon_state = "dullahanmining"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
@@ -205,3 +205,16 @@
has_custom_open_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/science/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/science/dullahanv3/sciencedully
name = "Dullahan science v3"
sprite_icon_state = "dullahanscience"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
@@ -211,3 +211,16 @@
has_custom_open_sprites = TRUE
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/security/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/security/dullahanv3/securitydully
name = "Dullahan security v3"
sprite_icon_state = "dullahansecurity"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
@@ -126,4 +126,21 @@
sprite_icon = 'icons/mob/robot/standard_large.dmi'
// None yet
*/
*/
/datum/robot_sprite/dogborg/tall/standard
module_type = "Standard"
//sprite_icon = 'icons/mob/robot/standard_large.dmi' NOT USED YET
/datum/robot_sprite/dogborg/tall/standard/dullahanv3
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
//named v3 to avoid conflicts with downstream
/datum/robot_sprite/dogborg/tall/standard/dullahanv3/standarddully
name = "Dullahan standard v3"
sprite_icon_state = "dullahanstandard"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
@@ -69,6 +69,15 @@
has_vore_belly_sprites = FALSE
rest_sprite_options = list("Default", "Bellyup")
/datum/robot_sprite/dogborg/tall/syndie/dullahanv3syndi
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
sprite_icon_state = "dullahansyndi"
name = "Dullahan syndie v3"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
// Protector
@@ -158,6 +167,16 @@
sprite_icon = 'icons/mob/robot/syndie_large.dmi'
sprite_hud_icon_state = "malf"
/datum/robot_sprite/dogborg/tall/mechanist/dullahanv3mech
sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi'
sprite_icon_state = "dullahanmechanist"
name = "Dullahan mechanist v3"
has_eye_light_sprites = TRUE
has_custom_open_sprites = TRUE
has_vore_belly_sprites = TRUE
has_robotdecal_sprites = TRUE
rest_sprite_options = list("Default", "sit")
/datum/robot_sprite/dogborg/tall/mechanist/syndimechraptor
name = "Raptor V-4"
sprite_icon_state = "syndimechraptor"
+1 -1
View File
@@ -33,7 +33,7 @@
silicon_mob_list |= src
..()
add_language(LANGUAGE_GALCOM)
set_default_language(GLOB.all_languages[LANGUAGE_GALCOM])
apply_default_language(GLOB.all_languages[LANGUAGE_GALCOM])
init_id()
init_subsystems()
@@ -81,11 +81,13 @@
return
if(resting)
vore_selected.digest_mode = DM_UNABSORB
if(isbelly(vore_selected))
vore_selected.digest_mode = DM_UNABSORB
ai_holder.go_sleep()
else
vore_selected.digest_mode = vore_default_mode
if(isbelly(vore_selected))
vore_selected.digest_mode = vore_default_mode
ai_holder.go_wake()
/mob/living/simple_mob/vore/pakkun/attack_hand(mob/user)
+1 -1
View File
@@ -9,7 +9,7 @@
/mob/living/voice/Initialize(loc)
add_language(LANGUAGE_GALCOM)
set_default_language(GLOB.all_languages[LANGUAGE_GALCOM])
apply_default_language(GLOB.all_languages[LANGUAGE_GALCOM])
if(istype(loc, /obj/item/communicator))
comm = loc