diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm index 5f71769cd3..6e08101676 100644 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm +++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm @@ -188,7 +188,7 @@ phaseanim.dir = H.dir H.invisibility = initial(H.invisibility) respite_activating = FALSE - belly.owner.update_fullness() + belly.owner.handle_belly_update() // CHOMPEdit H.clear_fullscreen("belly") if(H.hud_used) if(!H.hud_used.hud_shown) diff --git a/code/modules/mob/living/silicon/robot/robot_bellies.dm b/code/modules/mob/living/silicon/robot/robot_bellies.dm index 01ca34d867..51d65064ab 100644 --- a/code/modules/mob/living/silicon/robot/robot_bellies.dm +++ b/code/modules/mob/living/silicon/robot/robot_bellies.dm @@ -16,7 +16,7 @@ if(sprite_datum.has_sleeper_light_indicator) vore_light_states = list("sleeper" = 0) sprite_datum.belly_light_list = list("sleeper") - update_fullness() //Set how full the newly defined bellies are, if they're already full + handle_belly_update() //Set how full the newly defined bellies are, if they're already full /mob/living/silicon/robot/proc/reset_belly_lights(var/b_class) if(sprite_datum.belly_light_list.len && sprite_datum.belly_light_list.Find(b_class)) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm index 1eab9c536b..d32158301c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm @@ -302,7 +302,7 @@ forceMove(pick(floors)) flick("tp_in",src) respite_activating = FALSE - belly.owner.update_fullness() + belly.owner.handle_belly_update() // CHOMPEdit clear_fullscreen("belly") if(hud_used) if(!hud_used.hud_shown) diff --git a/code/modules/vore/eating/belly_import.dm b/code/modules/vore/eating/belly_import.dm index c16bf16a1d..6a7b739b32 100644 --- a/code/modules/vore/eating/belly_import.dm +++ b/code/modules/vore/eating/belly_import.dm @@ -1177,6 +1177,6 @@ new_belly.items_preserved.Cut() new_belly.update_internal_overlay() // Signal not implemented! CHOMPEnable - host.update_fullness() + host.handle_belly_update() host.updateVRPanel() unsaved_changes = TRUE diff --git a/code/modules/vore/eating/belly_obj_ch.dm b/code/modules/vore/eating/belly_obj_ch.dm index 28e8c58e69..182d12dd7b 100644 --- a/code/modules/vore/eating/belly_obj_ch.dm +++ b/code/modules/vore/eating/belly_obj_ch.dm @@ -177,7 +177,7 @@ for(var/reagent in generated_reagents) reagents.add_reagent(reagent, generated_reagents[reagent]) if(count_liquid_for_sprite) - owner.update_fullness() //This is run whenever a belly's contents are changed. + owner.handle_belly_update() //This is run whenever a belly's contents are changed. if(LAZYLEN(belly_surrounding)) SEND_SIGNAL(src, COMSIG_BELLY_UPDATE_VORE_FX, FALSE, reagents.total_volume) // Signals vore_fx() reagents updates. diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 69d080c8b4..8505a47899 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -443,6 +443,7 @@ var/mob/living/L = thing startfx.Add(L) startfx.Add(get_belly_surrounding(L.contents)) + owner.handle_belly_update() //CHOMPEdit - This is run whenever a belly's contents are changed. if(istype(thing,/obj/item)) var/obj/item/I = thing startfx.Add(get_belly_surrounding(I.contents)) @@ -466,16 +467,15 @@ vore_fx(M, TRUE) //CHOMPEdit: update belleh if(owner.previewing_belly == src) //CHOMPEdit vore_fx(owner, TRUE) //CHOMPEdit: update belleh - owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. //Stop AI processing in bellies if(M.ai_holder) M.ai_holder.go_sleep() if(reagents.total_volume >= 5) //CHOMPEdit Start if(digest_mode == DM_DIGEST && M.digestable) reagents.trans_to(M, reagents.total_volume * 0.1, 1 / max(LAZYLEN(contents), 1), FALSE) - to_chat(M, span_vwarning("You splash into a pool of [reagent_name]!")) + to_chat(M, span_vwarning(span_bold("You splash into a pool of [reagent_name]!"))) if(!isliving(thing) && count_items_for_sprite) //CHOMPEdit - If this is enabled also update fullness for non-living things - owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. + owner.handle_belly_update() //CHOMPEdit - This is run whenever a belly's contents are changed. //if(istype(thing, /obj/item/capture_crystal)) //CHOMPEdit start: Capture crystal occupant gets to see belly text too. Moved to modular_chomp capture_crystal.dm. //var/obj/item/capture_crystal/CC = thing //if(CC.bound_mob && desc) @@ -500,7 +500,7 @@ if(isbelly(thing.loc)) //CHOMPEdit Start var/obj/belly/NB = thing.loc if(count_items_for_sprite && !NB.count_items_for_sprite) - owner.update_fullness() + owner.handle_belly_update() return //CHOMPEdit End //CHOMPEdit Start - Remove vorefx from all those indirectly viewing as well @@ -509,13 +509,13 @@ var/mob/living/L = thing endfx.Add(L) endfx.Add(get_belly_surrounding(L.contents)) + owner.handle_belly_update() //CHOMPEdit - This is run whenever a belly's contents are changed. if(istype(thing,/obj/item)) var/obj/item/I = thing endfx.Add(get_belly_surrounding(I.contents)) if(!isbelly(thing.loc)) for(var/mob/living/L in endfx) //CHOMPEdit End if(L.surrounding_belly()) continue - owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. L.clear_fullscreen("belly") //L.clear_fullscreen("belly2") // CHOMP Disable - using our implementation, not upstream's //L.clear_fullscreen("belly3") // CHOMP Disable - using our implementation, not upstream's @@ -529,7 +529,7 @@ //CHOMPEdit End of indirect vorefx changes if(isitem(thing) && !isbelly(thing.loc)) //CHOMPEdit: Digest stage effects. Don't bother adding overlays to stuff that won't make it back out. if(count_items_for_sprite) //CHOMPEdit - If this is enabled also update fullness for non-living things - owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. + owner.handle_belly_update() //CHOMPEdit - This is run whenever a belly's contents are changed. var/obj/item/I = thing if(I.gurgled) I.cut_overlay(gurgled_overlays[I.gurgled_color]) //No double-overlay for worn items. @@ -922,8 +922,6 @@ //Clean up our own business items_preserved.Cut() - if(!ishuman(owner)) - owner.update_icons() //Determines privacy var/privacy_range = world.view @@ -1007,9 +1005,6 @@ if(ML.stat) ML.SetSleeping(min(ML.sleeping,20)) - //Clean up our own business - if(!ishuman(owner)) - owner.update_icons() //Determines privacy var/privacy_range = world.view @@ -1059,8 +1054,6 @@ var/mob/ourmob = prey ourmob.reset_view(owner) owner.updateVRPanel() - if(isanimal(owner)) - owner.update_icon() for(var/mob/living/M in contents) M.updateVRPanel() @@ -1161,7 +1154,7 @@ M.reagents.del_reagent(REAGENT_ID_CLEANER) //Don't need this stuff in our bloodstream. M.reagents.trans_to_holder(Pred.ingested, M.reagents.total_volume, 0.5, TRUE) //CHOMPEdit End - owner.update_fullness() + owner.handle_belly_update() //Incase they have the loop going, let's double check to stop it. M.stop_sound_channel(CHANNEL_PREYLOOP) @@ -1204,8 +1197,7 @@ M.forceMove(G) else qdel(M) - if(isanimal(owner)) - owner.update_icon() + owner.handle_belly_update() //CHOMPEdit End // Handle a mob being absorbed @@ -1259,10 +1251,7 @@ //Update owner owner.updateVRPanel() - if(isanimal(owner)) - owner.update_icon() - else - owner.update_fullness() + owner.handle_belly_update() // Finally, if they're to be sent to a special pudge belly, send them there if(transferlocation_absorb) var/obj/belly/dest_belly @@ -1289,10 +1278,7 @@ //Update owner owner.updateVRPanel() - if(isanimal(owner)) - owner.update_icon() - else - owner.update_fullness() + owner.handle_belly_update() ///////////////////////////////////////////////////////////////////////// /obj/belly/proc/handle_absorb_langs() @@ -1617,7 +1603,7 @@ owner.updateVRPanel() for(var/mob/living/M in contents) M.updateVRPanel() - owner.update_icon() + owner.handle_belly_update() //Autotransfer callback CHOMPEdit Start /obj/belly/proc/check_autotransfer(var/atom/movable/prey) diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index d17c222f6e..73578a2f87 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -42,7 +42,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) else B.handle_digestion_death(L) if(!L) - B.owner.update_fullness() + B.owner.handle_belly_update() return list("to_update" = TRUE) if(!L) return //CHOMPEdit End @@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) L.adjustBruteLoss(-paratox*2) //Should automaticaly clamp to 0 L.adjustFireLoss(-paratox*2) //Should automaticaly clamp to 0 if(B.health_impacts_size) //CHOMPEdit - Health probably changed so... - B.owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. + B.owner.handle_belly_update() //CHOMPEdit - This is run whenever a belly's contents are changed. return //CHOMPedit end @@ -89,7 +89,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) var/difference = B.owner.size_multiplier / L.size_multiplier if(B.health_impacts_size) - B.owner.update_fullness() + B.owner.handle_belly_update() consider_healthbar(L, old_health, B.owner) /*if(isrobot(B.owner)) //CHOMPEdit: Borgos can now use nutrition too @@ -158,7 +158,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) L.resize(L.size_multiplier - 0.01) // Shrink by 1% per tick if(L.size_multiplier <= B.shrink_grow_size) // Adds some feedback so the pred knows their prey has stopped shrinking. to_chat(B.owner, span_vnotice("You feel [L] get as small as you would like within your [lowertext(B.name)].")) - B.owner.update_fullness() + B.owner.handle_belly_update() . = ..() /datum/digest_mode/grow @@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) L.resize(L.size_multiplier + 0.01) // Shrink by 1% per tick if(L.size_multiplier >= B.shrink_grow_size) // Adds some feedback so the pred knows their prey has stopped growing. to_chat(B.owner, span_vnotice("You feel [L] get as big as you would like within your [lowertext(B.name)].")) - B.owner.update_fullness() + B.owner.handle_belly_update() /datum/digest_mode/drain/sizesteal id = DM_SIZE_STEAL @@ -183,7 +183,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) L.resize(L.size_multiplier - 0.01) //Shrink by 1% per tick if(L.size_multiplier <= B.shrink_grow_size) // Adds some feedback so the pred knows their prey has stopped shrinking. to_chat(B.owner, span_vnotice("You feel [L] get as small as you would like within your [lowertext(B.name)].")) - B.owner.update_fullness() + B.owner.handle_belly_update() . = ..() /datum/digest_mode/heal @@ -202,14 +202,14 @@ GLOBAL_LIST_INIT(digest_modes, list()) O.heal_damage(0.5, 0.5, 0, 1) // Less effective healing as able to fix broken limbs B.owner.adjust_nutrition(-5) // More costly for the pred, since metals and stuff if(B.health_impacts_size) - B.owner.update_fullness() + B.owner.handle_belly_update() if(L.health < L.maxHealth) L.adjustToxLoss(-2) L.adjustOxyLoss(-2) L.adjustCloneLoss(-1) B.owner.adjust_nutrition(-1) // Normal cost per old functionality if(B.health_impacts_size) - B.owner.update_fullness() + B.owner.handle_belly_update() if(B.owner.nutrition > 90 && (L.health < L.maxHealth) && !H.isSynthetic()) L.adjustBruteLoss(-2.5) L.adjustFireLoss(-2.5) @@ -218,7 +218,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) L.adjustCloneLoss(-1.25) B.owner.adjust_nutrition(-2) if(B.health_impacts_size) - B.owner.update_fullness() + B.owner.handle_belly_update() if(L.nutrition <= 400) L.adjust_nutrition(1) else if(B.owner.nutrition > 90 && (L.nutrition <= 400)) diff --git a/code/modules/vore/eating/living_bellies.dm b/code/modules/vore/eating/living_bellies.dm index fe352c8f38..b02c991b5a 100644 --- a/code/modules/vore/eating/living_bellies.dm +++ b/code/modules/vore/eating/living_bellies.dm @@ -34,3 +34,10 @@ /mob/living/proc/vs_animate(var/belly_to_animate) return + +// use this instead of upsate fullness where you need to directly update a belly size +/mob/proc/handle_belly_update() + if(ishuman(src)) + update_fullness() + return + update_icon() diff --git a/code/modules/vore/eating/living_ch.dm b/code/modules/vore/eating/living_ch.dm index 3180eedbe5..cf34ca8f0a 100644 --- a/code/modules/vore/eating/living_ch.dm +++ b/code/modules/vore/eating/living_ch.dm @@ -135,7 +135,7 @@ add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s [TB]") //Bonus for staff so they can see if people have abused transfer and done pref breaks RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_VORE, 1, 0, TB) if(RTB.count_liquid_for_sprite || TB.count_liquid_for_sprite) - update_fullness() + handle_belly_update() else if(TR.receive_reagents == FALSE) to_chat(user, span_vwarning("This person's prefs dont allow that!")) @@ -159,9 +159,9 @@ RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_VORE, 1, 0, TB) add_attack_logs(user,TR,"Transfered reagents from [TG]'s [RTB] to [TR]'s [TB]") //Bonus for staff so they can see if people have abused transfer and done pref breaks if(RTB.count_liquid_for_sprite) - update_fullness() + handle_belly_update() if(TB.count_liquid_for_sprite) - TR.update_fullness() + TR.handle_belly_update() if("Stomach") @@ -178,7 +178,7 @@ RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null) add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach") if(RTB.count_liquid_for_sprite) - update_fullness() + handle_belly_update() else if(TR.receive_reagents == FALSE) to_chat(user, span_vwarning("This person's prefs dont allow that!")) @@ -193,7 +193,7 @@ RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null) add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach") //Bonus for staff so they can see if people have abused transfer and done pref breaks if(RTB.count_liquid_for_sprite) - update_fullness() + handle_belly_update() if("Container") if(RTB.reagentid == REAGENT_ID_STOMACID) @@ -215,13 +215,13 @@ RTB.reagents.vore_trans_to_con(T, transfer_amount, 1, 0) add_attack_logs(user, T,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to a [T]") //Bonus for staff so they can see if people have abused transfer and done pref breaks if(RTB.count_liquid_for_sprite) - update_fullness() + handle_belly_update() if("Floor") if(RTB.reagentid == REAGENT_ID_WATER) return var/amount_removed = RTB.reagents.remove_any(transfer_amount) if(RTB.count_liquid_for_sprite) - update_fullness() + handle_belly_update() var/puddle_amount = round(amount_removed/5) if(puddle_amount == 0) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 9ae1112dcd..898cf356fc 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -628,9 +628,7 @@ LAZYSET(SA.prey_excludes, src, world.time) log_and_message_admins("used the OOC escape button to get out of [key_name(B.owner)] ([B.owner ? "JMP" : "null"])", src) - B.owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. - if(!ishuman(B.owner)) - B.owner.update_icons() + B.owner.handle_belly_update() //CHOMPEdit - This is run whenever a belly's contents are changed. //You're in a dogborg! else if(istype(loc, /obj/item/dogborg/sleeper)) diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index db6af4ea2d..c1be6497f1 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -2788,56 +2788,35 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", return FALSE else host.vore_selected.belly_sprite_to_affect = belly_choice - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_affects_vore_sprites") host.vore_selected.affects_vore_sprites = !host.vore_selected.affects_vore_sprites - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_count_absorbed_prey_for_sprites") host.vore_selected.count_absorbed_prey_for_sprite = !host.vore_selected.count_absorbed_prey_for_sprite - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_absorbed_multiplier") var/absorbed_multiplier_input = tgui_input_number(user, "Set the impact absorbed prey's size have on your vore sprite. 1 means no scaling, 0.5 means absorbed prey count half as much, 2 means absorbed prey count double. (Range from 0.1 - 3)", "Absorbed Multiplier", host.vore_selected.absorbed_multiplier, 3, 0.1, round_value=FALSE) if(!isnull(absorbed_multiplier_input)) host.vore_selected.absorbed_multiplier = CLAMP(absorbed_multiplier_input, 0.1, 3) - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_count_items_for_sprites") host.vore_selected.count_items_for_sprite = !host.vore_selected.count_items_for_sprite - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_item_multiplier") var/item_multiplier_input = tgui_input_number(user, "Set the impact items will have on your vore sprite. 1 means a belly with 8 normal-sized items will count as 1 normal sized prey-thing's worth, 0.5 means items count half as much, 2 means items count double. (Range from 0.1 - 10)", "Item Multiplier", host.vore_selected.item_multiplier, 10, 0.1, round_value=FALSE) if(!isnull(item_multiplier_input)) host.vore_selected.item_multiplier = CLAMP(item_multiplier_input, 0.1, 10) - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_health_impacts_size") host.vore_selected.health_impacts_size = !host.vore_selected.health_impacts_size - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_resist_animation") host.vore_selected.resist_triggers_animation = !host.vore_selected.resist_triggers_animation @@ -2846,10 +2825,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", var/size_factor_input = tgui_input_number(user, "Set the impact all belly content's collective size has on your vore sprite. 1 means no scaling, 0.5 means content counts half as much, 2 means contents count double. (Range from 0.1 - 3)", "Size Factor", host.vore_selected.size_factor_for_sprite, 3, 0.1, round_value=FALSE) if(!isnull(size_factor_input)) host.vore_selected.size_factor_for_sprite = CLAMP(size_factor_input, 0.1, 3) - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_vore_sprite_flags") var/list/menu_list = host.vore_selected.vore_sprite_flag_list.Copy() @@ -2860,19 +2836,13 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", . = TRUE if("b_count_liquid_for_sprites") //CHOMP Addition host.vore_selected.count_liquid_for_sprite = !host.vore_selected.count_liquid_for_sprite - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_liquid_multiplier") //CHOMP Addition var/liquid_multiplier_input = tgui_input_number(user, "Set the impact amount of liquid reagents will have on your vore sprite. 1 means a belly with 100 reagents of fluid will count as 1 normal sized prey-thing's worth, 0.5 means liquid counts half as much, 2 means liquid counts double. (Range from 0.1 - 10)", "Liquid Multiplier", host.vore_selected.liquid_multiplier, 10, 0.1, round_value=FALSE) if(!isnull(liquid_multiplier_input)) host.vore_selected.liquid_multiplier = CLAMP(liquid_multiplier_input, 0.1, 10) - if(isanimal(host)) - host.update_icon() - else - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_undergarment_choice") var/datum/category_group/underwear/undergarment_choice = tgui_input_list(user, "Which undergarment do you want to enable when your [lowertext(host.vore_selected.name)] is filled?","Select Undergarment Class", global_underwear.categories) @@ -2880,7 +2850,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", return FALSE else host.vore_selected.undergarment_chosen = undergarment_choice.name - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_undergarment_if_none") var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[host.vore_selected.undergarment_chosen] @@ -2889,13 +2859,13 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", return FALSE else host.vore_selected.undergarment_if_none = selected_underwear - host.update_fullness() + host.handle_belly_update() host.updateVRPanel() if("b_undergarment_color") var/newcolor = tgui_color_picker(user, "Choose a color.", "", host.vore_selected.undergarment_color) if(newcolor) host.vore_selected.undergarment_color = newcolor - host.update_fullness() + host.handle_belly_update() . = TRUE if("b_tail_to_change_to") var/tail_choice = tgui_input_list(user, "Which tail sprite do you want to use when your [lowertext(host.vore_selected.name)] is filled?","Select Sprite", global.tail_styles_list)