Mob Hose Inflation and Draining (#17849)

* inflation handling

* lets not allow that

* some fixes

* additional sanity and sanitization

* borg connector, refactors

* type correction

* reagents to bellies become belly reagents

* handle prefs

* pref handling expanded

* pain tweaks

* need to handle it this way

* multiple fixes

* proper belly interaction

* belly update belly update for vore
This commit is contained in:
Will
2025-06-14 03:02:42 -07:00
committed by GitHub
parent 87ad61b72c
commit e9f7e3b784
8 changed files with 311 additions and 40 deletions
@@ -69,6 +69,7 @@
regenerate_icons()
AddComponent(/datum/component/personal_crafting)
AddComponent(/datum/component/hose_connector/inflation) // Comment out to disable all human mob inflation mechanics
// Chicken Stuff
var/animal = pick("cow","chicken_brown", "chicken_black", "chicken_white", "chick", "mouse_brown", "mouse_gray", "mouse_white", "lizard", "cat2", "goose", "penguin")
@@ -203,6 +203,8 @@
riding_datum = new /datum/riding/dogborg(src)
AddComponent(/datum/component/hose_connector/input/borg)
AddComponent(/datum/component/hose_connector/output/borg)
/mob/living/silicon/robot/LateInitialize()
pick_module()
+3 -1
View File
@@ -261,9 +261,11 @@
var/part = amount / total_volume
var/target_is_belly = isbelly(target.my_atom) // Sending reagents into bellies turns them into belly reagents
for(var/datum/reagent/current in reagent_list)
var/amount_to_transfer = current.volume * part
target.add_reagent(current.id, amount_to_transfer * multiplier, current.get_data(), safety = 1, was_from_belly = current.from_belly) // We don't react until everything is in place
target.add_reagent(current.id, amount_to_transfer * multiplier, current.get_data(), safety = 1, was_from_belly = (current.from_belly || target_is_belly)) // We don't react until everything is in place
if(!copy)
remove_reagent(current.id, amount_to_transfer, 1)
+6 -1
View File
@@ -1411,7 +1411,12 @@
if(!RTB)
return FALSE
to_chat(src, span_vnotice("[RTB] has [RTB.reagents.total_volume] units of liquid."))
var/total_report = span_vnotice("[RTB] has [RTB.reagents.total_volume] units of liquid.")
if(RTB.reagents.total_volume > 0)
for(var/datum/reagent/R in RTB.reagents.reagent_list)
total_report += "<br>"
total_report += span_info(" -[R.name]: [R.volume]u")
to_chat(src, total_report)
/mob/living/proc/vore_transfer_reagents()
set name = "Transfer Liquid (Vore)"