[MIRROR] updates belly handling (#10152)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-02-13 02:03:58 -07:00
committed by GitHub
parent e465c23293
commit 35fc6f0aaa
11 changed files with 53 additions and 92 deletions

View File

@@ -188,7 +188,7 @@
phaseanim.dir = H.dir phaseanim.dir = H.dir
H.invisibility = initial(H.invisibility) H.invisibility = initial(H.invisibility)
respite_activating = FALSE respite_activating = FALSE
belly.owner.update_fullness() belly.owner.handle_belly_update() // CHOMPEdit
H.clear_fullscreen("belly") H.clear_fullscreen("belly")
if(H.hud_used) if(H.hud_used)
if(!H.hud_used.hud_shown) if(!H.hud_used.hud_shown)

View File

@@ -16,7 +16,7 @@
if(sprite_datum.has_sleeper_light_indicator) if(sprite_datum.has_sleeper_light_indicator)
vore_light_states = list("sleeper" = 0) vore_light_states = list("sleeper" = 0)
sprite_datum.belly_light_list = list("sleeper") 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) /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)) if(sprite_datum.belly_light_list.len && sprite_datum.belly_light_list.Find(b_class))

View File

@@ -302,7 +302,7 @@
forceMove(pick(floors)) forceMove(pick(floors))
flick("tp_in",src) flick("tp_in",src)
respite_activating = FALSE respite_activating = FALSE
belly.owner.update_fullness() belly.owner.handle_belly_update() // CHOMPEdit
clear_fullscreen("belly") clear_fullscreen("belly")
if(hud_used) if(hud_used)
if(!hud_used.hud_shown) if(!hud_used.hud_shown)

View File

@@ -1177,6 +1177,6 @@
new_belly.items_preserved.Cut() new_belly.items_preserved.Cut()
new_belly.update_internal_overlay() // Signal not implemented! CHOMPEnable new_belly.update_internal_overlay() // Signal not implemented! CHOMPEnable
host.update_fullness() host.handle_belly_update()
host.updateVRPanel() host.updateVRPanel()
unsaved_changes = TRUE unsaved_changes = TRUE

View File

@@ -177,7 +177,7 @@
for(var/reagent in generated_reagents) for(var/reagent in generated_reagents)
reagents.add_reagent(reagent, generated_reagents[reagent]) reagents.add_reagent(reagent, generated_reagents[reagent])
if(count_liquid_for_sprite) 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)) if(LAZYLEN(belly_surrounding))
SEND_SIGNAL(src, COMSIG_BELLY_UPDATE_VORE_FX, FALSE, reagents.total_volume) // Signals vore_fx() reagents updates. SEND_SIGNAL(src, COMSIG_BELLY_UPDATE_VORE_FX, FALSE, reagents.total_volume) // Signals vore_fx() reagents updates.

View File

@@ -443,6 +443,7 @@
var/mob/living/L = thing var/mob/living/L = thing
startfx.Add(L) startfx.Add(L)
startfx.Add(get_belly_surrounding(L.contents)) 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)) if(istype(thing,/obj/item))
var/obj/item/I = thing var/obj/item/I = thing
startfx.Add(get_belly_surrounding(I.contents)) startfx.Add(get_belly_surrounding(I.contents))
@@ -466,16 +467,15 @@
vore_fx(M, TRUE) //CHOMPEdit: update belleh vore_fx(M, TRUE) //CHOMPEdit: update belleh
if(owner.previewing_belly == src) //CHOMPEdit if(owner.previewing_belly == src) //CHOMPEdit
vore_fx(owner, TRUE) //CHOMPEdit: update belleh 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 //Stop AI processing in bellies
if(M.ai_holder) if(M.ai_holder)
M.ai_holder.go_sleep() M.ai_holder.go_sleep()
if(reagents.total_volume >= 5) //CHOMPEdit Start if(reagents.total_volume >= 5) //CHOMPEdit Start
if(digest_mode == DM_DIGEST && M.digestable) if(digest_mode == DM_DIGEST && M.digestable)
reagents.trans_to(M, reagents.total_volume * 0.1, 1 / max(LAZYLEN(contents), 1), FALSE) reagents.trans_to(M, reagents.total_volume * 0.1, 1 / max(LAZYLEN(contents), 1), FALSE)
to_chat(M, span_vwarning("<B>You splash into a pool of [reagent_name]!</B>")) 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 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. //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 //var/obj/item/capture_crystal/CC = thing
//if(CC.bound_mob && desc) //if(CC.bound_mob && desc)
@@ -500,7 +500,7 @@
if(isbelly(thing.loc)) //CHOMPEdit Start if(isbelly(thing.loc)) //CHOMPEdit Start
var/obj/belly/NB = thing.loc var/obj/belly/NB = thing.loc
if(count_items_for_sprite && !NB.count_items_for_sprite) if(count_items_for_sprite && !NB.count_items_for_sprite)
owner.update_fullness() owner.handle_belly_update()
return //CHOMPEdit End return //CHOMPEdit End
//CHOMPEdit Start - Remove vorefx from all those indirectly viewing as well //CHOMPEdit Start - Remove vorefx from all those indirectly viewing as well
@@ -509,13 +509,13 @@
var/mob/living/L = thing var/mob/living/L = thing
endfx.Add(L) endfx.Add(L)
endfx.Add(get_belly_surrounding(L.contents)) 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)) if(istype(thing,/obj/item))
var/obj/item/I = thing var/obj/item/I = thing
endfx.Add(get_belly_surrounding(I.contents)) endfx.Add(get_belly_surrounding(I.contents))
if(!isbelly(thing.loc)) if(!isbelly(thing.loc))
for(var/mob/living/L in endfx) //CHOMPEdit End for(var/mob/living/L in endfx) //CHOMPEdit End
if(L.surrounding_belly()) continue 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("belly")
//L.clear_fullscreen("belly2") // CHOMP Disable - using our implementation, not upstream's //L.clear_fullscreen("belly2") // CHOMP Disable - using our implementation, not upstream's
//L.clear_fullscreen("belly3") // 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 //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(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 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 var/obj/item/I = thing
if(I.gurgled) if(I.gurgled)
I.cut_overlay(gurgled_overlays[I.gurgled_color]) //No double-overlay for worn items. I.cut_overlay(gurgled_overlays[I.gurgled_color]) //No double-overlay for worn items.
@@ -922,8 +922,6 @@
//Clean up our own business //Clean up our own business
items_preserved.Cut() items_preserved.Cut()
if(!ishuman(owner))
owner.update_icons()
//Determines privacy //Determines privacy
var/privacy_range = world.view var/privacy_range = world.view
@@ -1007,9 +1005,6 @@
if(ML.stat) if(ML.stat)
ML.SetSleeping(min(ML.sleeping,20)) ML.SetSleeping(min(ML.sleeping,20))
//Clean up our own business
if(!ishuman(owner))
owner.update_icons()
//Determines privacy //Determines privacy
var/privacy_range = world.view var/privacy_range = world.view
@@ -1059,8 +1054,6 @@
var/mob/ourmob = prey var/mob/ourmob = prey
ourmob.reset_view(owner) ourmob.reset_view(owner)
owner.updateVRPanel() owner.updateVRPanel()
if(isanimal(owner))
owner.update_icon()
for(var/mob/living/M in contents) for(var/mob/living/M in contents)
M.updateVRPanel() M.updateVRPanel()
@@ -1161,7 +1154,7 @@
M.reagents.del_reagent(REAGENT_ID_CLEANER) //Don't need this stuff in our bloodstream. 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 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. //Incase they have the loop going, let's double check to stop it.
M.stop_sound_channel(CHANNEL_PREYLOOP) M.stop_sound_channel(CHANNEL_PREYLOOP)
@@ -1204,8 +1197,7 @@
M.forceMove(G) M.forceMove(G)
else else
qdel(M) qdel(M)
if(isanimal(owner)) owner.handle_belly_update()
owner.update_icon()
//CHOMPEdit End //CHOMPEdit End
// Handle a mob being absorbed // Handle a mob being absorbed
@@ -1259,10 +1251,7 @@
//Update owner //Update owner
owner.updateVRPanel() owner.updateVRPanel()
if(isanimal(owner)) owner.handle_belly_update()
owner.update_icon()
else
owner.update_fullness()
// Finally, if they're to be sent to a special pudge belly, send them there // Finally, if they're to be sent to a special pudge belly, send them there
if(transferlocation_absorb) if(transferlocation_absorb)
var/obj/belly/dest_belly var/obj/belly/dest_belly
@@ -1289,10 +1278,7 @@
//Update owner //Update owner
owner.updateVRPanel() owner.updateVRPanel()
if(isanimal(owner)) owner.handle_belly_update()
owner.update_icon()
else
owner.update_fullness()
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
/obj/belly/proc/handle_absorb_langs() /obj/belly/proc/handle_absorb_langs()
@@ -1617,7 +1603,7 @@
owner.updateVRPanel() owner.updateVRPanel()
for(var/mob/living/M in contents) for(var/mob/living/M in contents)
M.updateVRPanel() M.updateVRPanel()
owner.update_icon() owner.handle_belly_update()
//Autotransfer callback CHOMPEdit Start //Autotransfer callback CHOMPEdit Start
/obj/belly/proc/check_autotransfer(var/atom/movable/prey) /obj/belly/proc/check_autotransfer(var/atom/movable/prey)

View File

@@ -42,7 +42,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
else else
B.handle_digestion_death(L) B.handle_digestion_death(L)
if(!L) if(!L)
B.owner.update_fullness() B.owner.handle_belly_update()
return list("to_update" = TRUE) return list("to_update" = TRUE)
if(!L) if(!L)
return //CHOMPEdit End return //CHOMPEdit End
@@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
L.adjustBruteLoss(-paratox*2) //Should automaticaly clamp to 0 L.adjustBruteLoss(-paratox*2) //Should automaticaly clamp to 0
L.adjustFireLoss(-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... 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 return
//CHOMPedit end //CHOMPedit end
@@ -89,7 +89,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
var/difference = B.owner.size_multiplier / L.size_multiplier var/difference = B.owner.size_multiplier / L.size_multiplier
if(B.health_impacts_size) if(B.health_impacts_size)
B.owner.update_fullness() B.owner.handle_belly_update()
consider_healthbar(L, old_health, B.owner) consider_healthbar(L, old_health, B.owner)
/*if(isrobot(B.owner)) //CHOMPEdit: Borgos can now use nutrition too /*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 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. 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)].")) 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 /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 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. 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)].")) 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 /datum/digest_mode/drain/sizesteal
id = DM_SIZE_STEAL 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 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. 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)].")) 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 /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 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 B.owner.adjust_nutrition(-5) // More costly for the pred, since metals and stuff
if(B.health_impacts_size) if(B.health_impacts_size)
B.owner.update_fullness() B.owner.handle_belly_update()
if(L.health < L.maxHealth) if(L.health < L.maxHealth)
L.adjustToxLoss(-2) L.adjustToxLoss(-2)
L.adjustOxyLoss(-2) L.adjustOxyLoss(-2)
L.adjustCloneLoss(-1) L.adjustCloneLoss(-1)
B.owner.adjust_nutrition(-1) // Normal cost per old functionality B.owner.adjust_nutrition(-1) // Normal cost per old functionality
if(B.health_impacts_size) 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()) if(B.owner.nutrition > 90 && (L.health < L.maxHealth) && !H.isSynthetic())
L.adjustBruteLoss(-2.5) L.adjustBruteLoss(-2.5)
L.adjustFireLoss(-2.5) L.adjustFireLoss(-2.5)
@@ -218,7 +218,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
L.adjustCloneLoss(-1.25) L.adjustCloneLoss(-1.25)
B.owner.adjust_nutrition(-2) B.owner.adjust_nutrition(-2)
if(B.health_impacts_size) if(B.health_impacts_size)
B.owner.update_fullness() B.owner.handle_belly_update()
if(L.nutrition <= 400) if(L.nutrition <= 400)
L.adjust_nutrition(1) L.adjust_nutrition(1)
else if(B.owner.nutrition > 90 && (L.nutrition <= 400)) else if(B.owner.nutrition > 90 && (L.nutrition <= 400))

View File

@@ -34,3 +34,10 @@
/mob/living/proc/vs_animate(var/belly_to_animate) /mob/living/proc/vs_animate(var/belly_to_animate)
return 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()

View File

@@ -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 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) 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) if(RTB.count_liquid_for_sprite || TB.count_liquid_for_sprite)
update_fullness() handle_belly_update()
else if(TR.receive_reagents == FALSE) else if(TR.receive_reagents == FALSE)
to_chat(user, span_vwarning("This person's prefs dont allow that!")) 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) 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 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) if(RTB.count_liquid_for_sprite)
update_fullness() handle_belly_update()
if(TB.count_liquid_for_sprite) if(TB.count_liquid_for_sprite)
TR.update_fullness() TR.handle_belly_update()
if("Stomach") if("Stomach")
@@ -178,7 +178,7 @@
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null) 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") add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach")
if(RTB.count_liquid_for_sprite) if(RTB.count_liquid_for_sprite)
update_fullness() handle_belly_update()
else if(TR.receive_reagents == FALSE) else if(TR.receive_reagents == FALSE)
to_chat(user, span_vwarning("This person's prefs dont allow that!")) 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) 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 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) if(RTB.count_liquid_for_sprite)
update_fullness() handle_belly_update()
if("Container") if("Container")
if(RTB.reagentid == REAGENT_ID_STOMACID) if(RTB.reagentid == REAGENT_ID_STOMACID)
@@ -215,13 +215,13 @@
RTB.reagents.vore_trans_to_con(T, transfer_amount, 1, 0) 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 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) if(RTB.count_liquid_for_sprite)
update_fullness() handle_belly_update()
if("Floor") if("Floor")
if(RTB.reagentid == REAGENT_ID_WATER) if(RTB.reagentid == REAGENT_ID_WATER)
return return
var/amount_removed = RTB.reagents.remove_any(transfer_amount) var/amount_removed = RTB.reagents.remove_any(transfer_amount)
if(RTB.count_liquid_for_sprite) if(RTB.count_liquid_for_sprite)
update_fullness() handle_belly_update()
var/puddle_amount = round(amount_removed/5) var/puddle_amount = round(amount_removed/5)
if(puddle_amount == 0) if(puddle_amount == 0)

View File

@@ -628,9 +628,7 @@
LAZYSET(SA.prey_excludes, src, world.time) 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 ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[B.owner.x];Y=[B.owner.y];Z=[B.owner.z]'>JMP</a>" : "null"])", src) log_and_message_admins("used the OOC escape button to get out of [key_name(B.owner)] ([B.owner ? "<a href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[B.owner.x];Y=[B.owner.y];Z=[B.owner.z]'>JMP</a>" : "null"])", src)
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.
if(!ishuman(B.owner))
B.owner.update_icons()
//You're in a dogborg! //You're in a dogborg!
else if(istype(loc, /obj/item/dogborg/sleeper)) else if(istype(loc, /obj/item/dogborg/sleeper))

View File

@@ -2788,56 +2788,35 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
return FALSE return FALSE
else else
host.vore_selected.belly_sprite_to_affect = belly_choice host.vore_selected.belly_sprite_to_affect = belly_choice
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_affects_vore_sprites") if("b_affects_vore_sprites")
host.vore_selected.affects_vore_sprites = !host.vore_selected.affects_vore_sprites host.vore_selected.affects_vore_sprites = !host.vore_selected.affects_vore_sprites
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_count_absorbed_prey_for_sprites") if("b_count_absorbed_prey_for_sprites")
host.vore_selected.count_absorbed_prey_for_sprite = !host.vore_selected.count_absorbed_prey_for_sprite host.vore_selected.count_absorbed_prey_for_sprite = !host.vore_selected.count_absorbed_prey_for_sprite
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_absorbed_multiplier") 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) 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)) if(!isnull(absorbed_multiplier_input))
host.vore_selected.absorbed_multiplier = CLAMP(absorbed_multiplier_input, 0.1, 3) host.vore_selected.absorbed_multiplier = CLAMP(absorbed_multiplier_input, 0.1, 3)
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_count_items_for_sprites") if("b_count_items_for_sprites")
host.vore_selected.count_items_for_sprite = !host.vore_selected.count_items_for_sprite host.vore_selected.count_items_for_sprite = !host.vore_selected.count_items_for_sprite
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_item_multiplier") 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) 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)) if(!isnull(item_multiplier_input))
host.vore_selected.item_multiplier = CLAMP(item_multiplier_input, 0.1, 10) host.vore_selected.item_multiplier = CLAMP(item_multiplier_input, 0.1, 10)
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_health_impacts_size") if("b_health_impacts_size")
host.vore_selected.health_impacts_size = !host.vore_selected.health_impacts_size host.vore_selected.health_impacts_size = !host.vore_selected.health_impacts_size
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_resist_animation") if("b_resist_animation")
host.vore_selected.resist_triggers_animation = !host.vore_selected.resist_triggers_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) 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)) if(!isnull(size_factor_input))
host.vore_selected.size_factor_for_sprite = CLAMP(size_factor_input, 0.1, 3) host.vore_selected.size_factor_for_sprite = CLAMP(size_factor_input, 0.1, 3)
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_vore_sprite_flags") if("b_vore_sprite_flags")
var/list/menu_list = host.vore_selected.vore_sprite_flag_list.Copy() 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 . = TRUE
if("b_count_liquid_for_sprites") //CHOMP Addition if("b_count_liquid_for_sprites") //CHOMP Addition
host.vore_selected.count_liquid_for_sprite = !host.vore_selected.count_liquid_for_sprite host.vore_selected.count_liquid_for_sprite = !host.vore_selected.count_liquid_for_sprite
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_liquid_multiplier") //CHOMP Addition 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) 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)) if(!isnull(liquid_multiplier_input))
host.vore_selected.liquid_multiplier = CLAMP(liquid_multiplier_input, 0.1, 10) host.vore_selected.liquid_multiplier = CLAMP(liquid_multiplier_input, 0.1, 10)
if(isanimal(host)) host.handle_belly_update()
host.update_icon()
else
host.update_fullness()
. = TRUE . = TRUE
if("b_undergarment_choice") 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) 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 return FALSE
else else
host.vore_selected.undergarment_chosen = undergarment_choice.name host.vore_selected.undergarment_chosen = undergarment_choice.name
host.update_fullness() host.handle_belly_update()
. = TRUE . = TRUE
if("b_undergarment_if_none") if("b_undergarment_if_none")
var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[host.vore_selected.undergarment_chosen] 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 return FALSE
else else
host.vore_selected.undergarment_if_none = selected_underwear host.vore_selected.undergarment_if_none = selected_underwear
host.update_fullness() host.handle_belly_update()
host.updateVRPanel() host.updateVRPanel()
if("b_undergarment_color") if("b_undergarment_color")
var/newcolor = tgui_color_picker(user, "Choose a color.", "", host.vore_selected.undergarment_color) var/newcolor = tgui_color_picker(user, "Choose a color.", "", host.vore_selected.undergarment_color)
if(newcolor) if(newcolor)
host.vore_selected.undergarment_color = newcolor host.vore_selected.undergarment_color = newcolor
host.update_fullness() host.handle_belly_update()
. = TRUE . = TRUE
if("b_tail_to_change_to") 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) 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)