Fix a bunch of issues and runtimes (#17951)

* selection target

* ugh

* fix deadmin

* larger

* fix paper icons

* those are inverted

* don't miss that

* fix all

* point transfer

* add nostrip flag to items

* un....  teppi

* .

* end life proc after qdel

* this could be null in very rare cases

* this has a lot of sleeps, someday should be refactored and check for qdeleted

* needs to be an object

* qdel check this

* use the rsc properly

* wtf?

* .

* fix narrate

* .

* push

* inform user, null it

* .

* can be null

* fix maint lurkers

* .

* spans

* .

* fix that too

* urg

* fix distillery

* don't wrap them

* needs usr

* Update cash_register.dm

* quick hook cleanup

* lots of fixes

* .

* clean that up for reasons
This commit is contained in:
Kashargul
2025-07-05 00:45:18 -04:00
committed by GitHub
parent 080a74c229
commit 3735a31e05
68 changed files with 193 additions and 217 deletions
+1 -1
View File
@@ -220,7 +220,7 @@
target = null
busy = 0
update_icons()
else if(istype(A, /turf/space) || istype(A, /turf/simulated/mineral/floor))
else if(isopenturf(A) || istype(A, /turf/simulated/mineral/floor))
var/building = 2
if(locate(/obj/structure/lattice, A))
building = 1
@@ -125,11 +125,11 @@
base_species = SPECIES_LLEILL
var/list/lleill_abilities = list(/datum/power/lleill/invisibility,
/datum/power/lleill/transmute,
/datum/power/lleill/rings,
/datum/power/lleill/contact,
/datum/power/lleill/alchemy,
/datum/power/lleill/beastform)
/datum/power/lleill/transmute,
/datum/power/lleill/rings,
/datum/power/lleill/contact,
/datum/power/lleill/alchemy,
/datum/power/lleill/beastform)
var/list/lleill_ability_datums = list()
@@ -221,7 +221,7 @@
H.lleill_display.icon_state = "lleill-4"
/datum/species/proc/update_lleill_hud(var/mob/living/carbon/human/H)
var/relative_energy = ((lleill_energy/lleill_energy_max)*100)
var/relative_energy = lleill_energy_max ? ((lleill_energy/lleill_energy_max)*100) : 0
if(H.lleill_display)
H.lleill_display.invisibility = INVISIBILITY_NONE
switch(relative_energy)
@@ -668,7 +668,7 @@
return TRUE
// Used to find a special target for falling on, such as pouncing on someone from above.
/datum/species/proc/find_fall_target_special(src, landing)
/datum/species/proc/find_fall_target_special(source, landing)
return FALSE
// Used to override normal fall behaviour. Use only when the species does fall down a level.
@@ -527,8 +527,8 @@
to_chat(src, span_warning("You must remain still to blobform!"))
//For some reason, there's no way to force drop all the mobs grabbed. This ought to fix that. And be moved elsewhere. Call with caution, doesn't handle cycles.
/proc/remove_micros(var/src, var/mob/root)
for(var/obj/item/I in src)
/proc/remove_micros(var/source, var/mob/root)
for(var/obj/item/I in source)
remove_micros(I, root) //Recursion. I'm honestly depending on there being no containment loop, but at the cost of performance that can be fixed too.
if(istype(I, /obj/item/holder))
root.remove_from_mob(I)
@@ -16,6 +16,7 @@
seal_delay = 0
var/mob/living/myprotean
initial_modules = list(/obj/item/rig_module/protean/syphon, /obj/item/rig_module/protean/armor, /obj/item/rig_module/protean/healing)
item_flags = NOSTRIP
helm_type = /obj/item/clothing/head/helmet/space/rig/protean //These are important for sprite pointers
boot_type = /obj/item/clothing/shoes/magboots/rig/protean
+1
View File
@@ -44,5 +44,6 @@
else
voice_sounds_list = DEFAULT_TALK_SOUNDS
resize(size_multiplier, animate = FALSE, uncapped = has_large_resize_bounds(), ignore_prefs = TRUE, aura_animation = FALSE)
init_vore()
return .
@@ -1041,7 +1041,7 @@
for(var/belly_class in vore_fullness_ex)
reset_belly_lights(belly_class)
var/vs_fullness = vore_fullness_ex[belly_class]
if(belly_class == "sleeper")
if(belly_class == "sleeper" && vore_selected)
if(sleeper_state == 0 && vore_selected.silicon_belly_overlay_preference == "Sleeper") continue
if(sleeper_state != 0 && !(vs_fullness + 1 > vore_capacity_ex[belly_class]))
if(vore_selected.silicon_belly_overlay_preference == "Sleeper")
@@ -686,7 +686,9 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
else if (not_hungy)
var/nutrition_cost = 500 + (nutrition / 2)
adjust_nutrition(-nutrition_cost)
new /mob/living/simple_mob/vore/alienanimals/teppi(loc, src)
new /mob/living/simple_mob/vore/alienanimals/teppi(loc, store_teppi_data(src))
qdel(src)
return
else
visible_message("\The [src] whines pathetically...", runemessage = "whines")
if(prob(50))
@@ -765,7 +767,6 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
GLOB.teppi_count ++
if(teppi1 && !teppi2)
inherit_from_baby(teppi1)
qdel(teppi1)
else if (teppi1 && teppi2)
inherit_from_parents(teppi1, teppi2)
. = ..()
@@ -919,26 +920,46 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
/mob/living/simple_mob/vore/alienanimals/teppi/baby/init_vore() //shouldn't need all the vore bidness if they aren't using it as babbies. They get their tummies when they grow up.
return
/mob/living/simple_mob/vore/alienanimals/teppi/proc/store_teppi_data(mob/living/simple_mob/vore/alienanimals/teppi/teppi)
var/list/teppi_data = list(
"dir" = teppi.dir,
"name" = teppi.name,
"real_name" = teppi.real_name,
"faction" = teppi.faction,
"affinity" = teppi.affinity,
"affection_factor" = teppi.affection_factor,
"nutrition" = teppi.nutrition,
"allergen_preference" = teppi.allergen_preference,
"allergen_unpreference" = teppi.allergen_unpreference,
"color" = teppi.color,
"marking_color" = teppi.marking_color,
"horn_color" = teppi.horn_color,
"eye_color" = teppi.eye_color,
"skin_color" = teppi.skin_color,
)
return teppi_data
//This sets all the things on adult teppi when they grow from a baby
/mob/living/simple_mob/vore/alienanimals/teppi/proc/inherit_from_baby(mob/living/simple_mob/vore/alienanimals/teppi/baby/baby)
/mob/living/simple_mob/vore/alienanimals/teppi/proc/inherit_from_baby(list/teppi_data)
inherit_colors = TRUE
inherit_allergen = TRUE
dir = baby.dir
name = baby.name
real_name = baby.real_name
faction = baby.faction
affinity = baby.affinity
affection_factor = baby.affection_factor
nutrition = baby.nutrition
allergen_preference = baby.allergen_preference
allergen_unpreference = baby.allergen_unpreference
color = baby.color
marking_color = baby.marking_color
horn_color = baby.horn_color
eye_color = baby.eye_color
skin_color = baby.skin_color
dir = teppi_data["dir"]
name = teppi_data["name"]
real_name = teppi_data["real_name"]
faction = teppi_data["faction"]
affinity = teppi_data["affinity"]
affection_factor = teppi_data["affection_factor"]
nutrition = teppi_data["nutrition"]
allergen_preference = teppi_data["allergen_preference"]
allergen_unpreference = teppi_data["allergen_unpreference"]
color = teppi_data["color"]
marking_color = teppi_data["marking_color"]
horn_color = teppi_data["horn_color"]
eye_color = teppi_data["eye_color"]
skin_color = teppi_data["skin_color"]
ghostjoin = 1
GLOB.active_ghost_pods |= src
GLOB.active_ghost_pods += src
update_icon()
//This sets all the things on baby teppi when they are bred from adult teppi
@@ -147,7 +147,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) // How mant chickens DO we have?
var/mob/living/simple_mob/animal/passive/chicken/C = new (src.loc)
C.ghostjoin = 1
C.ghostjoin_icon()
GLOB.active_ghost_pods |= C
GLOB.active_ghost_pods += C
qdel(src)
// Say Lists
-1
View File
@@ -76,7 +76,6 @@
living_mob_list += src
lastarea = get_area(src)
set_focus(src) // VOREStation Add - Key Handling
hook_vr("mob_new",list(src)) //VOREStation Code
update_transform() // Some mobs may start bigger or smaller than normal.
. = ..()
//return QDEL_HINT_HARDDEL_NOW Just keep track of mob references. They delete SO much faster now.