From b1bb99eea10aa5bfe59908e5d8f9dc284f038765 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Thu, 31 Aug 2023 00:29:01 +1000 Subject: [PATCH] Fixing issues with the gibber not processing humans. --- code/game/objects/effects/spawners/gibs.dm | 2 +- code/modules/food/kitchen/gibber.dm | 20 +++++++++---------- .../living/carbon/human/species/species.dm | 1 + .../carbon/human/species/station/monkey.dm | 2 ++ 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/code/game/objects/effects/spawners/gibs.dm b/code/game/objects/effects/spawners/gibs.dm index c8ece6ee04..0343b7ebdb 100644 --- a/code/game/objects/effects/spawners/gibs.dm +++ b/code/game/objects/effects/spawners/gibs.dm @@ -3,7 +3,7 @@ #define GIB_DATA_DIRECTIONS "directions" /proc/gibs(atom/location, var/datum/dna/MobDNA, gibber_type = /obj/effect/spawner/gibs/generic, var/fleshcolor, var/bloodcolor) - new gibber_type(FALSE,location,MobDNA,fleshcolor,bloodcolor) + new gibber_type(location, MobDNA, fleshcolor, bloodcolor) /obj/effect/spawner/gibs /// If non-null, sparks will be spawned alongside the gibs. diff --git a/code/modules/food/kitchen/gibber.dm b/code/modules/food/kitchen/gibber.dm index 8927b54619..1554e0787c 100644 --- a/code/modules/food/kitchen/gibber.dm +++ b/code/modules/food/kitchen/gibber.dm @@ -130,11 +130,11 @@ to_chat(user, "This is not suitable for the gibber!") return - if(istype(victim,/mob/living/carbon/human) && !emagged) + var/datum/species/victim_species = victim?.get_species() + if(victim_species?.checks_gibber_safety && !emagged) to_chat(user, "The gibber safety guard is engaged!") return - if(victim.abiotic(1)) to_chat(user, "Subject may not have abiotic items on.") return @@ -175,7 +175,7 @@ return -/obj/machinery/gibber/proc/startgibbing(mob/user as mob) +/obj/machinery/gibber/proc/startgibbing(mob/user) if(src.operating) return if(!src.occupant) @@ -191,8 +191,9 @@ var/slab_count = 2 + occupant.meat_amount var/slab_type = occupant.meat_type ? occupant.meat_type : /obj/item/reagent_containers/food/snacks/meat var/slab_nutrition = src.occupant.nutrition / 15 + var/slab_reagents = round(occupant.reagents?.total_volume / slab_count,1) - var/list/byproducts = occupant?.butchery_loot?.Copy() + var/list/byproducts = occupant.butchery_loot?.Copy() if(istype(src.occupant,/mob/living/carbon/human)) var/mob/living/carbon/human/H = occupant @@ -204,14 +205,13 @@ slab_nutrition *= 0.5 slab_nutrition /= slab_count - while(slab_count) - slab_count-- + for(var/slab = 1 to slab_count) var/obj/item/reagent_containers/food/snacks/meat/new_meat = new slab_type(src, rand(3,8)) if(istype(new_meat)) new_meat.name = "[slab_name] [new_meat.name]" - new_meat.reagents.add_reagent("nutriment",slab_nutrition) - if(src.occupant.reagents) - src.occupant.reagents.trans_to_obj(new_meat, round(occupant.reagents.total_volume/slab_count,1)) + new_meat.reagents.add_reagent("nutriment", slab_nutrition) + if(slab_reagents > 0) + occupant.reagents.trans_to_obj(new_meat, slab_reagents) add_attack_logs(user,occupant,"Used [src] to gib") @@ -243,5 +243,3 @@ thing.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(0,3),emagged ? 100 : 50) // Being pelted with bits of meat and bone would hurt. update_icon() - - diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 826cf53a50..6da7dff570 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -54,6 +54,7 @@ var/hunger_factor = 0.05 // Multiplier for hunger. var/active_regen_mult = 1 // Multiplier for 'Regenerate' power speed, in human_powers.dm var/hearboost = 0 //Extra ranger on whisper hearing. 0 is adjacent. + var/checks_gibber_safety = TRUE // This species is only gibbable in the gibber if it has been emagged. var/taste_sensitivity = TASTE_NORMAL // How sensitive the species is to minute tastes. var/allergens = null // Things that will make this species very sick diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index 5dde9cba9a..a80225c3ef 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -16,6 +16,8 @@ show_ssd = null health_hud_intensity = 2 + checks_gibber_safety = FALSE + gibbed_anim = "gibbed-m" dusted_anim = "dust-m" death_message = "lets out a faint chimper as it collapses and stops moving..."