vorepanel reloaded (#17723)

* vorepanel rework part 1

* finish first tab

* those should be fine

* .

* floating for the addons

* .

* tooltip prep and style

* while on it

* prep data compile for tab 2 rework

* message tab

* undef

* .

* some more components

* unify the mesage procs

* option tab preps

* tooltip prep

* small fixes

* sorting

* some more preps

* .

* move that

* move that

* finish options tab

* sound preps

* sound preps

* finish sound tab

* visual tab prep

* .

* visual tab prep2

* visual

* move that

* interaction tab prep

* interactions

* interaction tab

* more basic contents only for now

* defaulted

* .

* .

* clean up

* liquid tab

* wordng

* make it the same

* soulcatcher tab

* prefs

* crash save

* typing

* docs

* .

* sanitize corrupted save data

* use the right type
This commit is contained in:
Kashargul
2025-05-27 19:45:30 +02:00
committed by GitHub
parent d78157f9b0
commit faf52ecce2
98 changed files with 7624 additions and 5709 deletions
+118 -118
View File
@@ -156,274 +156,274 @@
new_belly.release_verb = new_release_verb
if(islist(belly_data["digest_messages_prey"]))
var/new_digest_messages_prey = sanitize(jointext(belly_data["digest_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_digest_messages_prey = sanitize(jointext(belly_data["digest_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_digest_messages_prey)
new_belly.set_messages(new_digest_messages_prey,DIGEST_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_digest_messages_prey,DIGEST_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["digest_messages_owner"]))
var/new_digest_messages_owner = sanitize(jointext(belly_data["digest_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_digest_messages_owner = sanitize(jointext(belly_data["digest_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_digest_messages_owner)
new_belly.set_messages(new_digest_messages_owner,DIGEST_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_digest_messages_owner,DIGEST_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["absorb_messages_prey"]))
var/new_absorb_messages_prey = sanitize(jointext(belly_data["absorb_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_absorb_messages_prey = sanitize(jointext(belly_data["absorb_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_absorb_messages_prey)
new_belly.set_messages(new_absorb_messages_prey,ABSORB_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_absorb_messages_prey,ABSORB_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["absorb_messages_owner"]))
var/new_absorb_messages_owner = sanitize(jointext(belly_data["absorb_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_absorb_messages_owner = sanitize(jointext(belly_data["absorb_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_absorb_messages_owner)
new_belly.set_messages(new_absorb_messages_owner,ABSORB_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_absorb_messages_owner,ABSORB_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["unabsorb_messages_prey"]))
var/new_unabsorb_messages_prey = sanitize(jointext(belly_data["unabsorb_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_unabsorb_messages_prey = sanitize(jointext(belly_data["unabsorb_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_unabsorb_messages_prey)
new_belly.set_messages(new_unabsorb_messages_prey,UNABSORBS_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_unabsorb_messages_prey,UNABSORBS_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["unabsorb_messages_owner"]))
var/new_unabsorb_messages_owner = sanitize(jointext(belly_data["unabsorb_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_unabsorb_messages_owner = sanitize(jointext(belly_data["unabsorb_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_unabsorb_messages_owner)
new_belly.set_messages(new_unabsorb_messages_owner,UNABSORBS_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_unabsorb_messages_owner,UNABSORBS_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["struggle_messages_outside"]))
var/new_struggle_messages_outside = sanitize(jointext(belly_data["struggle_messages_outside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_struggle_messages_outside = sanitize(jointext(belly_data["struggle_messages_outside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_struggle_messages_outside)
new_belly.set_messages(new_struggle_messages_outside,STRUGGLE_OUTSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_struggle_messages_outside,STRUGGLE_OUTSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["struggle_messages_inside"]))
var/new_struggle_messages_inside = sanitize(jointext(belly_data["struggle_messages_inside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_struggle_messages_inside = sanitize(jointext(belly_data["struggle_messages_inside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_struggle_messages_inside)
new_belly.set_messages(new_struggle_messages_inside,STRUGGLE_INSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_struggle_messages_inside,STRUGGLE_INSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["absorbed_struggle_messages_outside"]))
var/new_absorbed_struggle_messages_outside = sanitize(jointext(belly_data["absorbed_struggle_messages_outside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_absorbed_struggle_messages_outside = sanitize(jointext(belly_data["absorbed_struggle_messages_outside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_absorbed_struggle_messages_outside)
new_belly.set_messages(new_absorbed_struggle_messages_outside,ABSORBED_STRUGGLE_OUSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_absorbed_struggle_messages_outside,ABSORBED_STRUGGLE_OUSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["absorbed_struggle_messages_inside"]))
var/new_absorbed_struggle_messages_inside = sanitize(jointext(belly_data["absorbed_struggle_messages_inside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_absorbed_struggle_messages_inside = sanitize(jointext(belly_data["absorbed_struggle_messages_inside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_absorbed_struggle_messages_inside)
new_belly.set_messages(new_absorbed_struggle_messages_inside,ABSORBED_STRUGGLE_INSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_absorbed_struggle_messages_inside,ABSORBED_STRUGGLE_INSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_attempt_messages_prey"]))
var/new_escape_attempt_messages_prey = sanitize(jointext(belly_data["escape_attempt_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_attempt_messages_prey = sanitize(jointext(belly_data["escape_attempt_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_attempt_messages_prey)
new_belly.set_messages(new_escape_attempt_messages_prey,ESCAPE_ATTEMPT_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_attempt_messages_prey,ESCAPE_ATTEMPT_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_attempt_messages_owner"]))
var/new_escape_attempt_messages_owner = sanitize(jointext(belly_data["escape_attempt_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_attempt_messages_owner = sanitize(jointext(belly_data["escape_attempt_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_attempt_messages_owner)
new_belly.set_messages(new_escape_attempt_messages_owner,ESCAPE_ATTEMPT_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_attempt_messages_owner,ESCAPE_ATTEMPT_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_messages_prey"]))
var/new_escape_messages_prey = sanitize(jointext(belly_data["escape_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_messages_prey = sanitize(jointext(belly_data["escape_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_messages_prey)
new_belly.set_messages(new_escape_messages_prey,ESCAPE_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_messages_prey,ESCAPE_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_messages_owner"]))
var/new_escape_messages_owner = sanitize(jointext(belly_data["escape_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_messages_owner = sanitize(jointext(belly_data["escape_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_messages_owner)
new_belly.set_messages(new_escape_messages_owner,ESCAPE_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_messages_owner,ESCAPE_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_messages_outside"]))
var/new_escape_messages_outside = sanitize(jointext(belly_data["escape_messages_outside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_messages_outside = sanitize(jointext(belly_data["escape_messages_outside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_messages_outside)
new_belly.set_messages(new_escape_messages_outside,ESCAPE_OUTSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_messages_outside,ESCAPE_OUTSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_item_messages_prey"]))
var/new_escape_item_messages_prey = sanitize(jointext(belly_data["escape_item_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_item_messages_prey = sanitize(jointext(belly_data["escape_item_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_item_messages_prey)
new_belly.set_messages(new_escape_item_messages_prey,ESCAPE_ITEM_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_item_messages_prey,ESCAPE_ITEM_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_item_messages_owner"]))
var/new_escape_item_messages_owner = sanitize(jointext(belly_data["escape_item_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_item_messages_owner = sanitize(jointext(belly_data["escape_item_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_item_messages_owner)
new_belly.set_messages(new_escape_item_messages_owner,ESCAPE_ITEM_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_item_messages_owner,ESCAPE_ITEM_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_item_messages_outside"]))
var/new_escape_item_messages_outside = sanitize(jointext(belly_data["escape_item_messages_outside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_item_messages_outside = sanitize(jointext(belly_data["escape_item_messages_outside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_item_messages_outside)
new_belly.set_messages(new_escape_item_messages_outside,ESCAPE_ITEM_OUTSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_item_messages_outside,ESCAPE_ITEM_OUTSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_fail_messages_prey"]))
var/new_escape_fail_messages_prey = sanitize(jointext(belly_data["escape_fail_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_fail_messages_prey = sanitize(jointext(belly_data["escape_fail_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_fail_messages_prey)
new_belly.set_messages(new_escape_fail_messages_prey,ESCAPE_FAIL_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_fail_messages_prey,ESCAPE_FAIL_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_fail_messages_owner"]))
var/new_escape_fail_messages_owner = sanitize(jointext(belly_data["escape_fail_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_fail_messages_owner = sanitize(jointext(belly_data["escape_fail_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_fail_messages_owner)
new_belly.set_messages(new_escape_fail_messages_owner,ESCAPE_FAIL_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_fail_messages_owner,ESCAPE_FAIL_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_attempt_absorbed_messages_prey"]))
var/new_escape_attempt_absorbed_messages_prey = sanitize(jointext(belly_data["escape_attempt_absorbed_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_attempt_absorbed_messages_prey = sanitize(jointext(belly_data["escape_attempt_absorbed_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_attempt_absorbed_messages_prey)
new_belly.set_messages(new_escape_attempt_absorbed_messages_prey,ABSORBED_ESCAPE_ATTEMPT_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_attempt_absorbed_messages_prey,ABSORBED_ESCAPE_ATTEMPT_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_attempt_absorbed_messages_owner"]))
var/new_escape_attempt_absorbed_messages_owner = sanitize(jointext(belly_data["escape_attempt_absorbed_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_attempt_absorbed_messages_owner = sanitize(jointext(belly_data["escape_attempt_absorbed_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_attempt_absorbed_messages_owner)
new_belly.set_messages(new_escape_attempt_absorbed_messages_owner,ABSORBED_ESCAPE_ATTEMPT_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_attempt_absorbed_messages_owner,ABSORBED_ESCAPE_ATTEMPT_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_absorbed_messages_prey"]))
var/new_escape_absorbed_messages_prey = sanitize(jointext(belly_data["escape_absorbed_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_absorbed_messages_prey = sanitize(jointext(belly_data["escape_absorbed_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_absorbed_messages_prey)
new_belly.set_messages(new_escape_absorbed_messages_prey,ABSORBED_ESCAPE_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_absorbed_messages_prey,ABSORBED_ESCAPE_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_absorbed_messages_owner"]))
var/new_escape_absorbed_messages_owner = sanitize(jointext(belly_data["escape_absorbed_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_absorbed_messages_owner = sanitize(jointext(belly_data["escape_absorbed_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_absorbed_messages_owner)
new_belly.set_messages(new_escape_absorbed_messages_owner,ABSORBED_ESCAPE_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_absorbed_messages_owner,ABSORBED_ESCAPE_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_absorbed_messages_outside"]))
var/new_escape_absorbed_messages_outside = sanitize(jointext(belly_data["escape_absorbed_messages_outside"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_absorbed_messages_outside = sanitize(jointext(belly_data["escape_absorbed_messages_outside"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_absorbed_messages_outside)
new_belly.set_messages(new_escape_absorbed_messages_outside,ABSORBED_ESCAPE_OUTSIDE, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_absorbed_messages_outside,ABSORBED_ESCAPE_OUTSIDE, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_fail_absorbed_messages_prey"]))
var/new_escape_fail_absorbed_messages_prey = sanitize(jointext(belly_data["escape_fail_absorbed_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_fail_absorbed_messages_prey = sanitize(jointext(belly_data["escape_fail_absorbed_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_fail_absorbed_messages_prey)
new_belly.set_messages(new_escape_fail_absorbed_messages_prey,FULL_ABSORBED_ESCAPE_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_fail_absorbed_messages_prey,ABSORBED_ESCAPE_FAIL_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["escape_fail_absorbed_messages_owner"]))
var/new_escape_fail_absorbed_messages_owner = sanitize(jointext(belly_data["escape_fail_absorbed_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_escape_fail_absorbed_messages_owner = sanitize(jointext(belly_data["escape_fail_absorbed_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_escape_fail_absorbed_messages_owner)
new_belly.set_messages(new_escape_fail_absorbed_messages_owner,FULL_ABSORBED_ESCAPE_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_escape_fail_absorbed_messages_owner,ABSORBED_ESCAPE_FAIL_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["primary_transfer_messages_prey"]))
var/new_primary_transfer_messages_prey = sanitize(jointext(belly_data["primary_transfer_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_primary_transfer_messages_prey = sanitize(jointext(belly_data["primary_transfer_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_primary_transfer_messages_prey)
new_belly.set_messages(new_primary_transfer_messages_prey,PRIMARY_TRANSFER_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_primary_transfer_messages_prey,PRIMARY_TRANSFER_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["primary_transfer_messages_owner"]))
var/new_primary_transfer_messages_owner = sanitize(jointext(belly_data["primary_transfer_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_primary_transfer_messages_owner = sanitize(jointext(belly_data["primary_transfer_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_primary_transfer_messages_owner)
new_belly.set_messages(new_primary_transfer_messages_owner,PRIMARY_TRANSFER_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_primary_transfer_messages_owner,PRIMARY_TRANSFER_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["secondary_transfer_messages_prey"]))
var/new_secondary_transfer_messages_prey = sanitize(jointext(belly_data["secondary_transfer_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_secondary_transfer_messages_prey = sanitize(jointext(belly_data["secondary_transfer_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_secondary_transfer_messages_prey)
new_belly.set_messages(new_secondary_transfer_messages_prey,SECONDARY_TRANSFER_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_secondary_transfer_messages_prey,SECONDARY_TRANSFER_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["secondary_transfer_messages_owner"]))
var/new_secondary_transfer_messages_owner = sanitize(jointext(belly_data["secondary_transfer_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_secondary_transfer_messages_owner = sanitize(jointext(belly_data["secondary_transfer_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_secondary_transfer_messages_owner)
new_belly.set_messages(new_secondary_transfer_messages_owner,SECONDARY_TRANSFER_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_secondary_transfer_messages_owner,SECONDARY_TRANSFER_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["primary_autotransfer_messages_prey"]))
var/new_primary_autotransfer_messages_prey = sanitize(jointext(belly_data["primary_autotransfer_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_primary_autotransfer_messages_prey = sanitize(jointext(belly_data["primary_autotransfer_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_primary_autotransfer_messages_prey)
new_belly.set_messages(new_primary_autotransfer_messages_prey,PRIMARY_AUTO_TRANSFER_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_primary_autotransfer_messages_prey,PRIMARY_AUTO_TRANSFER_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["primary_autotransfer_messages_owner"]))
var/new_primary_autotransfer_messages_owner = sanitize(jointext(belly_data["primary_autotransfer_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_primary_autotransfer_messages_owner = sanitize(jointext(belly_data["primary_autotransfer_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_primary_autotransfer_messages_owner)
new_belly.set_messages(new_primary_autotransfer_messages_owner,PRIMARY_AUTO_TRANSFER_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_primary_autotransfer_messages_owner,PRIMARY_AUTO_TRANSFER_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["secondary_autotransfer_messages_prey"]))
var/new_secondary_autotransfer_messages_prey = sanitize(jointext(belly_data["secondary_autotransfer_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_secondary_autotransfer_messages_prey = sanitize(jointext(belly_data["secondary_autotransfer_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_secondary_autotransfer_messages_prey)
new_belly.set_messages(new_secondary_autotransfer_messages_prey,SECONDARY_AUTO_TRANSFER_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_secondary_autotransfer_messages_prey,SECONDARY_AUTO_TRANSFER_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["secondary_autotransfer_messages_owner"]))
var/new_secondary_autotransfer_messages_owner = sanitize(jointext(belly_data["secondary_autotransfer_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_secondary_autotransfer_messages_owner = sanitize(jointext(belly_data["secondary_autotransfer_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_secondary_autotransfer_messages_owner)
new_belly.set_messages(new_secondary_autotransfer_messages_owner,SECONDARY_AUTO_TRANSFER_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_secondary_autotransfer_messages_owner,SECONDARY_AUTO_TRANSFER_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["digest_chance_messages_prey"]))
var/new_digest_chance_messages_prey = sanitize(jointext(belly_data["digest_chance_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_digest_chance_messages_prey = sanitize(jointext(belly_data["digest_chance_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_digest_chance_messages_prey)
new_belly.set_messages(new_digest_chance_messages_prey,DIGEST_CHANCE_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_digest_chance_messages_prey,DIGEST_CHANCE_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["digest_chance_messages_owner"]))
var/new_digest_chance_messages_owner = sanitize(jointext(belly_data["digest_chance_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_digest_chance_messages_owner = sanitize(jointext(belly_data["digest_chance_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_digest_chance_messages_owner)
new_belly.set_messages(new_digest_chance_messages_owner,DIGEST_CHANCE_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_digest_chance_messages_owner,DIGEST_CHANCE_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["absorb_chance_messages_prey"]))
var/new_absorb_chance_messages_prey = sanitize(jointext(belly_data["absorb_chance_messages_prey"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_absorb_chance_messages_prey = sanitize(jointext(belly_data["absorb_chance_messages_prey"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_absorb_chance_messages_prey)
new_belly.set_messages(new_absorb_chance_messages_prey,ABSORB_CHANCE_PREY, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_absorb_chance_messages_prey,ABSORB_CHANCE_PREY, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["absorb_chance_messages_owner"]))
var/new_absorb_chance_messages_owner = sanitize(jointext(belly_data["absorb_chance_messages_owner"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_absorb_chance_messages_owner = sanitize(jointext(belly_data["absorb_chance_messages_owner"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_absorb_chance_messages_owner)
new_belly.set_messages(new_absorb_chance_messages_owner,ABSORB_CHANCE_OWNER, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_absorb_chance_messages_owner,ABSORB_CHANCE_OWNER, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["examine_messages"]))
var/new_examine_messages = sanitize(jointext(belly_data["examine_messages"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_examine_messages = sanitize(jointext(belly_data["examine_messages"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_examine_messages)
new_belly.set_messages(new_examine_messages,EXAMINES, limit = MAX_MESSAGE_LEN / 2)
new_belly.set_messages(new_examine_messages,EXAMINES, limit = BELLIES_EXAMINE_MAX)
if(islist(belly_data["examine_messages_absorbed"]))
var/new_examine_messages_absorbed = sanitize(jointext(belly_data["examine_messages_absorbed"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_examine_messages_absorbed = sanitize(jointext(belly_data["examine_messages_absorbed"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_examine_messages_absorbed)
new_belly.set_messages(new_examine_messages_absorbed,EXAMINES_ABSORBED, limit = MAX_MESSAGE_LEN / 2)
new_belly.set_messages(new_examine_messages_absorbed,EXAMINES_ABSORBED, limit = BELLIES_EXAMINE_MAX)
if(islist(belly_data["emotes_digest"]))
var/new_emotes_digest = sanitize(jointext(belly_data["emotes_digest"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_digest = sanitize(jointext(belly_data["emotes_digest"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_digest)
new_belly.set_messages(new_emotes_digest,BELLY_MODE_DIGEST, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_digest,BELLY_MODE_DIGEST, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["trash_eater_in"]))
var/new_trash_eater_in = sanitize(jointext(belly_data["trash_eater_in"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_trash_eater_in = sanitize(jointext(belly_data["trash_eater_in"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_trash_eater_in)
new_belly.set_messages(new_trash_eater_in ,BELLY_TRASH_EATER_IN, limit = MAX_MESSAGE_LEN / 2)
new_belly.set_messages(new_trash_eater_in ,BELLY_TRASH_EATER_IN, limit = BELLIES_EXAMINE_MAX)
if(islist(belly_data["trash_eater_out"]))
var/new_trash_eater_out = sanitize(jointext(belly_data["trash_eater_out"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_trash_eater_out = sanitize(jointext(belly_data["trash_eater_out"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_trash_eater_out)
new_belly.set_messages(new_trash_eater_out,BELLY_TRASH_EATER_OUT, limit = MAX_MESSAGE_LEN / 2)
new_belly.set_messages(new_trash_eater_out,BELLY_TRASH_EATER_OUT, limit = BELLIES_EXAMINE_MAX)
if(islist(belly_data["emotes_hold"]))
var/new_emotes_hold = sanitize(jointext(belly_data["emotes_hold"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_hold = sanitize(jointext(belly_data["emotes_hold"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_hold)
new_belly.set_messages(new_emotes_hold,BELLY_MODE_HOLD, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_hold,BELLY_MODE_HOLD, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_holdabsorbed"]))
var/new_emotes_holdabsorbed = sanitize(jointext(belly_data["emotes_holdabsorbed"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_holdabsorbed = sanitize(jointext(belly_data["emotes_holdabsorbed"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_holdabsorbed)
new_belly.set_messages(new_emotes_holdabsorbed,BELLY_MODE_HOLD_ABSORB, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_holdabsorbed,BELLY_MODE_HOLD_ABSORB, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_absorb"]))
var/new_emotes_absorb = sanitize(jointext(belly_data["emotes_absorb"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_absorb = sanitize(jointext(belly_data["emotes_absorb"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_absorb)
new_belly.set_messages(new_emotes_absorb,BELLY_MODE_ABSORB, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_absorb,BELLY_MODE_ABSORB, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_heal"]))
var/new_emotes_heal = sanitize(jointext(belly_data["emotes_heal"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_heal = sanitize(jointext(belly_data["emotes_heal"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_heal)
new_belly.set_messages(new_emotes_heal,BELLY_MODE_HEAL, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_heal,BELLY_MODE_HEAL, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_drain"]))
var/new_emotes_drain = sanitize(jointext(belly_data["emotes_drain"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_drain = sanitize(jointext(belly_data["emotes_drain"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_drain)
new_belly.set_messages(new_emotes_drain,BELLY_MODE_DRAIN, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_drain,BELLY_MODE_DRAIN, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_steal"]))
var/new_emotes_steal = sanitize(jointext(belly_data["emotes_steal"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_steal = sanitize(jointext(belly_data["emotes_steal"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_steal)
new_belly.set_messages(new_emotes_steal,BELLY_MODE_STEAL, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_steal,BELLY_MODE_STEAL, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_egg"]))
var/new_emotes_egg = sanitize(jointext(belly_data["emotes_egg"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_egg = sanitize(jointext(belly_data["emotes_egg"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_egg)
new_belly.set_messages(new_emotes_egg,BELLY_MODE_EGG, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_egg,BELLY_MODE_EGG, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_shrink"]))
var/new_emotes_shrink = sanitize(jointext(belly_data["emotes_shrink"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_shrink = sanitize(jointext(belly_data["emotes_shrink"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_shrink)
new_belly.set_messages(new_emotes_shrink,BELLY_MODE_SHRINK, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_shrink,BELLY_MODE_SHRINK, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_grow"]))
var/new_emotes_grow = sanitize(jointext(belly_data["emotes_grow"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_grow = sanitize(jointext(belly_data["emotes_grow"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_grow)
new_belly.set_messages(new_emotes_grow,BELLY_MODE_GROW, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_grow,BELLY_MODE_GROW, limit = BELLIES_IDLE_MAX)
if(islist(belly_data["emotes_unabsorb"]))
var/new_emotes_unabsorb = sanitize(jointext(belly_data["emotes_unabsorb"],"\n\n"),MAX_MESSAGE_LEN * 1.5,0,0,0)
var/new_emotes_unabsorb = sanitize(jointext(belly_data["emotes_unabsorb"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_emotes_unabsorb)
new_belly.set_messages(new_emotes_unabsorb,BELLY_MODE_UNABSORB, limit = MAX_MESSAGE_LEN / 4)
new_belly.set_messages(new_emotes_unabsorb,BELLY_MODE_UNABSORB, limit = BELLIES_IDLE_MAX)
// Options
if(isnum(belly_data["can_taste"]))
@@ -1154,29 +1154,29 @@
new_belly.liquid_fullness5_messages = TRUE
if(islist(belly_data["fullness1_messages"]))
var/new_fullness1_messages = sanitize(jointext(belly_data["fullness1_messages"],"\n\n"),MAX_MESSAGE_LEN,0,0,0)
var/new_fullness1_messages = sanitize(jointext(belly_data["fullness1_messages"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_fullness1_messages)
new_belly.set_reagent_messages(new_fullness1_messages,"full1")
new_belly.set_messages(new_fullness1_messages,BELLY_LIQUID_MESSAGE1, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["fullness2_messages"]))
var/new_fullness2_messages = sanitize(jointext(belly_data["fullness2_messages"],"\n\n"),MAX_MESSAGE_LEN,0,0,0)
var/new_fullness2_messages = sanitize(jointext(belly_data["fullness2_messages"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_fullness2_messages)
new_belly.set_reagent_messages(new_fullness2_messages,"full2")
new_belly.set_messages(new_fullness2_messages,BELLY_LIQUID_MESSAGE2, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["fullness3_messages"]))
var/new_fullness3_messages = sanitize(jointext(belly_data["fullness3_messages"],"\n\n"),MAX_MESSAGE_LEN,0,0,0)
var/new_fullness3_messages = sanitize(jointext(belly_data["fullness3_messages"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_fullness3_messages)
new_belly.set_reagent_messages(new_fullness3_messages,"full3")
new_belly.set_messages(new_fullness3_messages,BELLY_LIQUID_MESSAGE3, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["fullness4_messages"]))
var/new_fullness4_messages = sanitize(jointext(belly_data["fullness4_messages"],"\n\n"),MAX_MESSAGE_LEN,0,0,0)
var/new_fullness4_messages = sanitize(jointext(belly_data["fullness4_messages"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_fullness4_messages)
new_belly.set_reagent_messages(new_fullness4_messages,"full4")
new_belly.set_messages(new_fullness4_messages,BELLY_LIQUID_MESSAGE4, limit = BELLIES_MESSAGE_MAX)
if(islist(belly_data["fullness5_messages"]))
var/new_fullness5_messages = sanitize(jointext(belly_data["fullness5_messages"],"\n\n"),MAX_MESSAGE_LEN,0,0,0)
var/new_fullness5_messages = sanitize(jointext(belly_data["fullness5_messages"],"\n\n"),BELLIES_MESSAGE_COMBINED,0,0,0)
if(new_fullness5_messages)
new_belly.set_reagent_messages(new_fullness5_messages,"full5")
new_belly.set_messages(new_fullness5_messages,BELLY_LIQUID_MESSAGE5, limit = BELLIES_MESSAGE_MAX)
// After import updates
new_belly.items_preserved.Cut()
+30 -6
View File
@@ -326,9 +326,9 @@ GLOBAL_LIST_INIT(vore_words_snake, list("snake","serpent","reptilian","noodle","
raw_messages = escape_absorbed_messages_prey
if(ABSORBED_ESCAPE_OUTSIDE)
raw_messages = escape_absorbed_messages_outside
if(FULL_ABSORBED_ESCAPE_OWNER)
if(ABSORBED_ESCAPE_FAIL_OWNER)
raw_messages = escape_fail_absorbed_messages_owner
if(FULL_ABSORBED_ESCAPE_PREY)
if(ABSORBED_ESCAPE_FAIL_PREY)
raw_messages = escape_fail_absorbed_messages_prey
if(PRIMARY_TRANSFER_OWNER)
raw_messages = primary_transfer_messages_owner
@@ -396,6 +396,16 @@ GLOBAL_LIST_INIT(vore_words_snake, list("snake","serpent","reptilian","noodle","
raw_messages = trash_eater_in
if(BELLY_TRASH_EATER_OUT)
raw_messages = trash_eater_out
if(BELLY_LIQUID_MESSAGE1)
raw_messages = fullness1_messages
if(BELLY_LIQUID_MESSAGE2)
raw_messages = fullness2_messages
if(BELLY_LIQUID_MESSAGE3)
raw_messages = fullness3_messages
if(BELLY_LIQUID_MESSAGE4)
raw_messages = fullness4_messages
if(BELLY_LIQUID_MESSAGE5)
raw_messages = fullness5_messages
var/messages = null
if(raw_messages)
@@ -413,11 +423,15 @@ GLOBAL_LIST_INIT(vore_words_snake, list("snake","serpent","reptilian","noodle","
var/list/raw_list
if(findtext(raw_text, delim))
raw_list = splittext(html_encode(raw_text), delim)
if(islist(raw_text))
raw_list = raw_text
else if(findtext(raw_text, delim))
raw_list = splittext(raw_text, delim)
else
raw_list = list(raw_text)
for(var/i = 1, i <= raw_list.len, i++)
raw_list[i] = html_encode(raw_list[i])
if(!length(raw_list[i]))
raw_list.Cut(i, i + 1)
i--
@@ -480,9 +494,9 @@ GLOBAL_LIST_INIT(vore_words_snake, list("snake","serpent","reptilian","noodle","
escape_absorbed_messages_prey = raw_list
if(ABSORBED_ESCAPE_OUTSIDE)
escape_absorbed_messages_outside = raw_list
if(FULL_ABSORBED_ESCAPE_OWNER)
if(ABSORBED_ESCAPE_FAIL_OWNER)
escape_fail_absorbed_messages_owner = raw_list
if(FULL_ABSORBED_ESCAPE_PREY)
if(ABSORBED_ESCAPE_FAIL_PREY)
escape_fail_absorbed_messages_prey = raw_list
if(PRIMARY_TRANSFER_OWNER)
primary_transfer_messages_owner = raw_list
@@ -550,3 +564,13 @@ GLOBAL_LIST_INIT(vore_words_snake, list("snake","serpent","reptilian","noodle","
trash_eater_in = raw_list
if(BELLY_TRASH_EATER_OUT)
trash_eater_out = raw_list
if(BELLY_LIQUID_MESSAGE1)
fullness1_messages = raw_list
if(BELLY_LIQUID_MESSAGE2)
fullness2_messages = raw_list
if(BELLY_LIQUID_MESSAGE3)
fullness3_messages = raw_list
if(BELLY_LIQUID_MESSAGE4)
fullness4_messages = raw_list
if(BELLY_LIQUID_MESSAGE5)
fullness5_messages = raw_list
@@ -263,65 +263,6 @@
return(span_red("[formatted_message]<BR>"))
// The next function gets the messages set on the belly, in human-readable format.
// This is useful in customization boxes and such. The delimiter right now is \n\n so
// in message boxes, this looks nice and is easily delimited.
/obj/belly/proc/get_reagent_messages(var/type, var/delim = "\n\n")
ASSERT(type == "full1" || type == "full2" || type == "full3" || type == "full4" || type == "full5")
var/list/raw_messages
switch(type)
if("full1")
raw_messages = fullness1_messages
if("full2")
raw_messages = fullness2_messages
if("full3")
raw_messages = fullness3_messages
if("full4")
raw_messages = fullness4_messages
if("full5")
raw_messages = fullness5_messages
var/messages = raw_messages.Join(delim)
return messages
// The next function sets the messages on the belly, from human-readable var
// replacement strings and linebreaks as delimiters (two \n\n by default).
// They also sanitize the messages.
/obj/belly/proc/set_reagent_messages(var/raw_text, var/type, var/delim = "\n\n")
ASSERT(type == "full1" || type == "full2" || type == "full3" || type == "full4" || type == "full5")
var/list/raw_list = splittext(html_encode(raw_text),delim)
if(raw_list.len > 10)
raw_list.Cut(11)
log_debug("[owner] tried to set [lowertext(name)] with 11+ messages")
for(var/i = 1, i <= raw_list.len, i++)
if(length(raw_list[i]) > 160 || length(raw_list[i]) < 10) //160 is fudged value due to htmlencoding increasing the size
raw_list.Cut(i,i)
log_debug("[owner] tried to set [lowertext(name)] with >121 or <10 char message")
else
raw_list[i] = readd_quotes(raw_list[i])
//Also fix % sign for var replacement
raw_list[i] = replacetext(raw_list[i],"&#37;","%")
ASSERT(raw_list.len <= 10) //Sanity
switch(type)
if("full1")
fullness1_messages = raw_list
if("full2")
fullness2_messages = raw_list
if("full3")
fullness3_messages = raw_list
if("full4")
fullness4_messages = raw_list
if("full5")
fullness5_messages = raw_list
return
/////////////////////////// Process Cycle Lite /////////////////////////// CHOMP PCL
/obj/belly/proc/quick_cycle() //For manual belly cycling without straining the bellies subsystem.
HandleBellyReagents() //reagent belly stuff.
+1 -1
View File
@@ -129,7 +129,7 @@
S.use(1)
digest_stage = w_class
else
if(istype(src, /obj/item/reagent_containers/food))
if(istype(B) && istype(src, /obj/item/reagent_containers/food))
if(ishuman(B.owner) && reagents)
var/mob/living/carbon/human/H = B.owner
reagents.trans_to_holder(H.ingested, (reagents.total_volume), B.nutrition_percent / 100, 0)
-1
View File
@@ -25,7 +25,6 @@
var/allow_spontaneous_tf = FALSE // Obviously.
var/show_vore_fx = TRUE // Show belly fullscreens
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
var/text_warnings = TRUE // Allows us to dismiss the text limit warning messages after viewing it once per round
var/eating_privacy_global = FALSE // Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
var/allow_mimicry = TRUE // Allows mimicking their character
var/allow_mind_transfer = FALSE //Allows ones mind to be taken over or swapped
@@ -0,0 +1,111 @@
/datum/vore_look/proc/get_preference_data(mob/owner)
return list(
"digestable" = owner.digestable,
"devourable" = owner.devourable,
"resizable" = owner.resizable,
"feeding" = owner.feeding,
"absorbable" = owner.absorbable,
"digest_leave_remains" = owner.digest_leave_remains,
"allowmobvore" = owner.allowmobvore,
"permit_healbelly" = owner.permit_healbelly,
"show_vore_fx" = owner.show_vore_fx,
"can_be_drop_prey" = owner.can_be_drop_prey,
"can_be_drop_pred" = owner.can_be_drop_pred,
"latejoin_vore" = owner.latejoin_vore,
"latejoin_prey" = owner.latejoin_prey,
"no_spawnpred_warning" = owner.no_latejoin_vore_warning,
"no_spawnprey_warning" = owner.no_latejoin_prey_warning,
"no_spawnpred_warning_time" = owner.no_latejoin_vore_warning_time,
"no_spawnprey_warning_time" = owner.no_latejoin_prey_warning_time,
"no_spawnpred_warning_save" = owner.no_latejoin_vore_warning_persists,
"no_spawnprey_warning_save" = owner.no_latejoin_prey_warning_persists,
"allow_spontaneous_tf" = owner.allow_spontaneous_tf,
"step_mechanics_active" = owner.step_mechanics_pref,
"pickup_mechanics_active" = owner.pickup_pref,
"strip_mechanics_active" = owner.strip_pref,
"noisy" = owner.noisy,
//liquid belly prefs
"liq_rec" = owner.receive_reagents,
"liq_giv" = owner.give_reagents,
"liq_apply" = owner.apply_reagents,
"autotransferable" = owner.autotransferable,
"noisy_full" = owner.noisy_full, //Belching while full
"selective_active" = owner.selective_preference, //Reveal active selective mode in prefs
"allow_mind_transfer" = owner.allow_mind_transfer,
"drop_vore" = owner.drop_vore,
"slip_vore" = owner.slip_vore,
"stumble_vore" = owner.stumble_vore,
"throw_vore" = owner.throw_vore,
"phase_vore" = owner.phase_vore,
"food_vore" = owner.food_vore,
"consume_liquid_belly" = owner.consume_liquid_belly,
"digest_pain" = owner.digest_pain,
"eating_privacy_global" = owner.eating_privacy_global,
"allow_mimicry" = owner.allow_mimicry,
//Soulcatcher
"soulcatcher_allow_capture" = owner.soulcatcher_pref_flags & SOULCATCHER_ALLOW_CAPTURE,
"soulcatcher_allow_transfer" = owner.soulcatcher_pref_flags & SOULCATCHER_ALLOW_TRANSFER,
"soulcatcher_allow_takeover" = owner.soulcatcher_pref_flags & SOULCATCHER_ALLOW_TAKEOVER,
"soulcatcher_allow_deletion" = (global_flag_check(owner.soulcatcher_pref_flags, SOULCATCHER_ALLOW_DELETION) + global_flag_check(owner.soulcatcher_pref_flags, SOULCATCHER_ALLOW_DELETION_INSTANT))
)
#define SET_TASTE "Set Taste"
#define SET_SMELL "Set Smell"
#define SET_NUTRITION_EX "Set Nutrition Examine"
#define SET_WEIGHT_EX "Set Weight Examine"
/datum/vore_look/proc/get_general_data(mob/owner)
return list(
"active_belly" = owner.vore_selected?.name,
"belly_rub_target" = owner.belly_rub_target,
// start, vore sprites
"aestethic_messages" = compile_aesthetic_messages(owner),
"vore_sprite_color" = owner.vore_sprite_color,
"vore_sprite_multiply" = owner.vore_sprite_multiply,
"vore_icon_options" = owner.vore_icon_bellies
)
/datum/vore_look/proc/compile_aesthetic_messages(mob/owner)
if(!aset_message_subtab)
aset_message_subtab = SET_TASTE
var/list/tab_data = list(
"possible_messages" = list(SET_TASTE, SET_SMELL, SET_NUTRITION_EX, SET_WEIGHT_EX),
"aest_subtab" = aset_message_subtab
)
if(aset_message_subtab == SET_TASTE)
tab_data["max_length"] = FLAVOR_MAX
tab_data["active_message"] = owner.vore_taste
tab_data["set_action"] = TASTE_FLAVOR
tab_data["tooltip"] = "What your character tastes like. This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream'"
if(aset_message_subtab == SET_SMELL)
tab_data["max_length"] = FLAVOR_MAX
tab_data["active_message"] = owner.vore_smell
tab_data["set_action"] = SMELL_FLAVOR
tab_data["tooltip"] = "What your character smells like. This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream'"
if(aset_message_subtab == SET_NUTRITION_EX)
tab_data["max_length"] = BELLIES_EXAMINE_MAX
tab_data["active_message"] = owner.nutrition_messages
tab_data["set_action"] = "set_attribute"
tab_data["sub_action"] = GENERAL_EXAMINE_NUTRI
tab_data["tooltip"] = "Change the nutrition display messages on examine."
tab_data["button_label"] = "Display Nutrition Examine"
tab_data["button_action"] = "toggle_nutrition_ex"
tab_data["button_data"] = owner.nutrition_message_visible
tab_data["button_tooltip"] = "the nutition messages on examine." // those will automatically be preceeded by Enables / Disables!
if(aset_message_subtab == SET_WEIGHT_EX)
tab_data["max_length"] = BELLIES_EXAMINE_MAX
tab_data["active_message"] = owner.weight_messages
tab_data["set_action"] = "set_attribute"
tab_data["sub_action"] = GENERAL_EXAMINE_WEIGHT
tab_data["tooltip"] = "Change the weight display messages on examine."
tab_data["button_label"] = "Display Weight Examine"
tab_data["button_action"] = "toggle_weight_ex"
tab_data["button_data"] = owner.weight_message_visible
tab_data["button_tooltip"] = "the weight messages on examine." // those will automatically be preceeded by Enables / Disables!
return tab_data
#undef SET_TASTE
#undef SET_SMELL
#undef SET_NUTRITION_EX
#undef SET_WEIGHT_EX
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,215 @@
// liquid belly procs
/datum/vore_look/proc/liq_set_attr(mob/user, params)
if(!host.vore_selected)
tgui_alert(user, "No belly selected to modify.")
return FALSE
var/attr = params["attribute"]
switch(attr)
if("b_show_liq")
if(!host.vore_selected.show_liquids)
host.vore_selected.show_liquids = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] now has liquid options."))
else
host.vore_selected.show_liquids = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] no longer has liquid options."))
. = TRUE
if("b_liq_reagent_gen")
if(!host.vore_selected.reagentbellymode) //liquid container adjustments and interactions.
host.vore_selected.reagentbellymode = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] now has interactions which can produce liquids."))
else //Doesnt produce liquids
host.vore_selected.reagentbellymode = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] wont produce liquids, liquids already in your [lowertext(host.vore_selected.name)] must be emptied out or removed with purge."))
. = TRUE
if("b_liq_reagent_type")
var/new_reagent = params["val"]
if(!(new_reagent in host.vore_selected.reagent_choices))
return FALSE
host.vore_selected.reagent_chosen = new_reagent
host.vore_selected.ReagentSwitch() // For changing variables when a new reagent is chosen
. = TRUE
if("b_liq_reagent_name")
var/new_name = params["val"]
if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN)
tgui_alert(user, "Entered name length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error")
return FALSE
host.vore_selected.reagent_name = new_name
. = TRUE
if("b_liq_reagent_transfer_verb")
var/new_verb = params["val"]
if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN)
tgui_alert(user, "Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error")
return FALSE
host.vore_selected.reagent_transfer_verb = new_verb
. = TRUE
if("b_liq_reagent_nutri_rate")
host.vore_selected.gen_time_display = params["val"]
switch(host.vore_selected.gen_time_display)
if("10 minutes")
host.vore_selected.gen_time = 0
if("30 minutes")
host.vore_selected.gen_time = 2
if("1 hour")
host.vore_selected.gen_time = 5
if("3 hours")
host.vore_selected.gen_time = 17
if("6 hours")
host.vore_selected.gen_time = 35
if("12 hours")
host.vore_selected.gen_time = 71
if("24 hours")
host.vore_selected.gen_time = 143
. = TRUE
if("b_liq_reagent_capacity")
var/new_custom_vol = text2num(params["val"])
if(!isnum(new_custom_vol))
return FALSE
host.vore_selected.custom_max_volume = CLAMP(new_custom_vol, 10, 300)
. = TRUE
if("b_liq_sloshing")
if(!host.vore_selected.vorefootsteps_sounds)
host.vore_selected.vorefootsteps_sounds = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] can now make sounds when you walk around depending on how full you are."))
else
host.vore_selected.vorefootsteps_sounds = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] wont make any liquid sounds no matter how full it is."))
. = TRUE
if("b_liq_reagent_addons")
var/reagent_toggle_addon = params["val"]
if(!reagent_toggle_addon)
return FALSE
host.vore_selected.reagent_mode_flags ^= host.vore_selected.reagent_mode_flag_list[reagent_toggle_addon]
. = TRUE
if("b_liquid_overlay")
if(!host.vore_selected.liquid_overlay)
host.vore_selected.liquid_overlay = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] now has liquid overlay enabled."))
else
host.vore_selected.liquid_overlay = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] no longer has liquid overlay enabled."))
. = TRUE
if("b_max_liquid_level")
var/new_max_liquid_level = params["val"]
if(!isnum(new_max_liquid_level))
return FALSE
host.vore_selected.max_liquid_level = CLAMP(new_max_liquid_level, 0, 100)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_custom_reagentcolor")
var/newcolor = tgui_color_picker(user, "Choose custom color for liquid overlay. Cancel for normal reagent color.", "", host.vore_selected.custom_reagentcolor)
if(newcolor)
host.vore_selected.custom_reagentcolor = newcolor
else
host.vore_selected.custom_reagentcolor = null
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_custom_reagentalpha")
var/newalpha = text2num(params["val"])
if(!isnum(newalpha))
return FALSE
if(newalpha)
host.vore_selected.custom_reagentalpha = CLAMP(newalpha, 0, 255)
else
host.vore_selected.custom_reagentalpha = null
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_reagent_touches")
if(!host.vore_selected.reagent_touches)
host.vore_selected.reagent_touches = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] will now apply reagents to creatures when digesting."))
else
host.vore_selected.reagent_touches = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] will no longer apply reagents to creatures when digesting."))
. = TRUE
if("b_mush_overlay")
if(!host.vore_selected.mush_overlay)
host.vore_selected.mush_overlay = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] now has fullness overlay enabled."))
else
host.vore_selected.mush_overlay = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] no longer has fullness overlay enabled."))
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_mush_color")
var/newcolor = tgui_color_picker(user, "Choose custom color for mush overlay.", "", host.vore_selected.mush_color)
if(newcolor)
host.vore_selected.mush_color = newcolor
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_mush_alpha")
var/newalpha = text2num(params["val"])
if(!isnum(newalpha))
return FALSE
host.vore_selected.mush_alpha = CLAMP(newalpha, 0, 255)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_max_mush")
var/new_max_mush = text2num(params["val"])
if(!isnum(new_max_mush))
return FALSE
host.vore_selected.max_mush = CLAMP(new_max_mush, 0, 6000)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_min_mush")
var/new_min_mush = text2num(params["val"])
if(!isnum(new_min_mush))
return FALSE
host.vore_selected.min_mush = CLAMP(new_min_mush, 0, 100)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_item_mush_val")
var/new_item_mush_val = text2num(params["val"])
if(!isnum(new_item_mush_val))
return FALSE
host.vore_selected.item_mush_val = CLAMP(new_item_mush_val, 0, 1000)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_metabolism_overlay")
if(!host.vore_selected.metabolism_overlay)
host.vore_selected.metabolism_overlay = 1
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] now has ingested metabolism overlay enabled."))
else
host.vore_selected.metabolism_overlay = 0
to_chat(user,span_warning("Your [lowertext(host.vore_selected.name)] no longer has ingested metabolism overlay enabled."))
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_metabolism_mush_ratio")
var/new_metabolism_mush_ratio = text2num(params["val"])
if(!isnum(new_metabolism_mush_ratio))
return FALSE
host.vore_selected.metabolism_mush_ratio = CLAMP(new_metabolism_mush_ratio, 0, 500)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_max_ingested")
var/new_max_ingested = text2num(params["val"])
if(!isnum(new_max_ingested))
return FALSE
host.vore_selected.max_ingested = CLAMP(new_max_ingested, 0, 6000)
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_custom_ingested_color")
var/newcolor = tgui_color_picker(user, "Choose custom color for ingested metabolism overlay. Cancel for reagent-based dynamic blend.", "", host.vore_selected.custom_ingested_color)
if(newcolor)
host.vore_selected.custom_ingested_color = newcolor
else
host.vore_selected.custom_ingested_color = null
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_custom_ingested_alpha")
var/newalpha = text2num(params["val"])
if(!isnum(newalpha))
return FALSE
host.vore_selected.custom_ingested_alpha = newalpha
host.vore_selected.update_internal_overlay()
. = TRUE
if("b_liq_purge")
host.vore_selected.reagents.clear_reagents()
. = TRUE
if(.)
unsaved_changes = TRUE
@@ -0,0 +1,99 @@
#define INTERIOR_DESIGN "Interior Design"
#define CAPTURE_MESSAGE "Capture Message"
#define TRANSIT_MESSAGE "Transit Message"
#define TRANSFER_MESSAGE "Transfer Message"
#define RELEASE_MESSAGE "Release Message"
#define DELETE_MESSAGE "Delete Message"
/datum/vore_look/proc/get_soulcatcher_data(mob/owner)
if(!owner.soulgem)
return null
var/list/stored_souls = list()
for(var/soul in owner.soulgem.brainmobs)
var/list/info = list("displayText" = "[soul]", "value" = "\ref[soul]")
stored_souls.Add(list(info))
var/list/soulcatcher_data = list(
"active" = owner.soulgem.flag_check(SOULGEM_ACTIVE),
"name" = owner.soulgem.name,
"caught_souls" = stored_souls,
"selected_soul" = owner.soulgem.selected_soul,
"selected_sfx" = owner.soulgem.linked_belly,
"sc_message_data" = compile_soulcatcher_message_data(owner.soulgem),
"taken_over" = owner.soulgem.is_taken_over(),
"catch_self" = owner.soulgem.flag_check(NIF_SC_CATCHING_ME),
"catch_prey" = owner.soulgem.flag_check(NIF_SC_CATCHING_OTHERS),
"catch_drain" = owner.soulgem.flag_check(SOULGEM_CATCHING_DRAIN),
"catch_ghost" = owner.soulgem.flag_check(SOULGEM_CATCHING_GHOSTS),
"ext_hearing" = owner.soulgem.flag_check(NIF_SC_ALLOW_EARS),
"ext_vision" = owner.soulgem.flag_check(NIF_SC_ALLOW_EYES),
"mind_backups" = owner.soulgem.flag_check(NIF_SC_BACKUPS),
"sr_projecting" = owner.soulgem.flag_check(NIF_SC_PROJECTING),
"show_vore_sfx" = owner.soulgem.flag_check(SOULGEM_SHOW_VORE_SFX),
"see_sr_projecting" = owner.soulgem.flag_check(SOULGEM_SEE_SR_SOULS),
)
return soulcatcher_data
/datum/vore_look/proc/compile_soulcatcher_message_data(obj/soulgem/gem)
if(!sc_message_subtab)
sc_message_subtab = INTERIOR_DESIGN
var/list/tab_data = list(
"possible_messages" = list(INTERIOR_DESIGN, CAPTURE_MESSAGE, TRANSIT_MESSAGE, TRANSFER_MESSAGE, RELEASE_MESSAGE, DELETE_MESSAGE),
"sc_subtab" = sc_message_subtab
)
if(sc_message_subtab == INTERIOR_DESIGN)
tab_data["max_length"] = VORE_SC_DESC_MAX
tab_data["active_message"] = gem.inside_flavor
tab_data["set_action"] = SC_INTERIOR_MESSAGE
tab_data["tooltip"] = "Displayed to prey after being 'caught' by the soulcatcher. This will be displayed after an intro set in the capture message. If you already have prey and change the interior, this will be displayed after the transit message."
if(sc_message_subtab == CAPTURE_MESSAGE)
tab_data["max_length"] = VORE_SC_MAX
tab_data["active_message"] = gem.capture_message
tab_data["set_action"] = SC_CAPTURE_MEESAGE
tab_data["tooltip"] = "Change what the prey sees while being 'caught'. This will be printed before the iterior design to the prey."
if(sc_message_subtab == TRANSIT_MESSAGE)
tab_data["max_length"] = VORE_SC_MAX
tab_data["active_message"] = gem.transit_message
tab_data["set_action"] = SC_TRANSIT_MESSAGE
tab_data["tooltip"] = "Change what the prey sees when you change the interior with them already captured."
if(sc_message_subtab == TRANSFER_MESSAGE)
tab_data["max_length"] = VORE_SC_MAX
tab_data["active_message"] = gem.transfer_message
tab_data["set_action"] = SC_TRANSFERE_MESSAGE
tab_data["tooltip"] = "Change what the prey sees when they are transfered."
if(sc_message_subtab == RELEASE_MESSAGE)
tab_data["max_length"] = VORE_SC_MAX
tab_data["active_message"] = gem.release_message
tab_data["set_action"] = SC_RELEASE_MESSAGE
tab_data["tooltip"] = "Change what the prey sees when they are released."
if(sc_message_subtab == DELETE_MESSAGE)
tab_data["max_length"] = VORE_SC_MAX
tab_data["active_message"] = gem.delete_message
tab_data["set_action"] = SC_DELETE_MESSAGE
tab_data["tooltip"] = "Change what the prey sees when they are deleted."
return tab_data
/datum/vore_look/proc/get_ability_data(mob/owner)
var/list/abilities = list()
var/nutri_value = 0
if(isliving(owner))
var/mob/living/H = owner
nutri_value = H.nutrition
abilities["nutrition"] = nutri_value
abilities["size_change"] = list (
"current_size" = owner.size_multiplier,
"minimum_size" = owner.has_large_resize_bounds() ? RESIZE_MINIMUM_DORMS : RESIZE_MINIMUM,
"maximum_size" = owner.has_large_resize_bounds() ? RESIZE_MAXIMUM_DORMS : RESIZE_MAXIMUM,
"resize_cost" = VORE_RESIZE_COST
)
return abilities
#undef INTERIOR_DESIGN
#undef CAPTURE_MESSAGE
#undef TRANSIT_MESSAGE
#undef TRANSFER_MESSAGE
#undef RELEASE_MESSAGE
#undef DELETE_MESSAGE
@@ -0,0 +1,328 @@
#define CONTROL_TAB 0
#define DESCRIPTIONS_TAB 1
#define OPTIONS_TAB 2
#define SOUNDS_TAB 3
#define VISUALS_TAB 4
#define INTERACTIONS_TAB 5
#define CONTENTS_TAB 6
#define LIQUID_OPTIONS_TAB 7
/datum/vore_look/proc/get_vorebellies(mob/owner, full_data = TRUE)
var/list/our_bellies = list()
for(var/obj/belly/B as anything in owner.vore_organs)
var/list/belly_data = list()
belly_data += list(
"name" = B.name,
"ref" = "\ref[B]"
)
if(full_data)
belly_data += list(
"selected" = (B == owner.vore_selected),
"digest_mode" = B.digest_mode,
"contents" = LAZYLEN(B.contents),
"prevent_saving" = B.prevent_saving
)
UNTYPED_LIST_ADD(our_bellies, belly_data)
return our_bellies
/datum/vore_look/proc/get_inside_data(mob/owner)
var/atom/hostloc = owner.loc
//Allow VorePanel to show pred belly details even while indirectly inside
if(isliving(owner))
var/mob/living/H = owner
hostloc = H.surrounding_belly()
//End of indirect vorefx additions
var/list/inside = list()
if(isbelly(hostloc))
var/obj/belly/inside_belly = hostloc
var/mob/living/pred = inside_belly.owner
var/inside_desc = "No description."
if(owner.absorbed && inside_belly.absorbed_desc)
inside_desc = inside_belly.absorbed_desc
else if(inside_belly.desc)
inside_desc = inside_belly.desc
if(inside_desc != "No description.")
inside_desc = inside_belly.belly_format_string(inside_desc, owner, use_first_only = TRUE)
inside = list(
"absorbed" = owner.absorbed,
"belly_name" = inside_belly.name,
"belly_mode" = inside_belly.digest_mode,
"desc" = inside_desc,
"pred" = pred,
"ref" = "\ref[inside_belly]",
"liq_lvl" = inside_belly.reagents.total_volume,
"liq_reagent_type" = inside_belly.reagent_chosen,
"liuq_name" = inside_belly.reagent_name,
)
var/list/inside_contents = list()
for(var/atom/movable/O in inside_belly)
if(O == owner)
continue
var/list/info = list(
"name" = "[O]",
"absorbed" = FALSE,
"stat" = 0,
"ref" = "\ref[O]",
"outside" = FALSE,
)
if(show_pictures) //disables icon mode
if(inside_belly.contents.len <= max_icon_content)
icon_overflow = FALSE
info["icon"] = cached_nom_icon(O)
else
icon_overflow = TRUE
if(isliving(O))
var/mob/living/M = O
info["stat"] = M.stat
if(M.absorbed)
info["absorbed"] = TRUE
UNTYPED_LIST_ADD(inside_contents, info)
inside["contents"] = inside_contents
return inside
/datum/vore_look/proc/get_host_mobtype(mob/owner)
var/list/host_mobtype = list("is_cyborg" = FALSE, "is_vore_simple_mob" = FALSE)
if(isrobot(owner))
host_mobtype["is_cyborg"] = TRUE
else if(istype(owner, /mob/living/simple_mob/vore)) //So far, this does nothing. But, creating this for future belly work
host_mobtype["is_vore_simple_mob"] = TRUE
return host_mobtype
/datum/vore_look/proc/get_selected_data(mob/owner)
var/list/selected_list = null
if(owner.vore_selected)
var/obj/belly/selected = owner.vore_selected
selected_list = list("belly_name" = selected.name)
if(active_vore_tab == CONTROL_TAB)
var/list/addons = list()
for(var/flag_name in selected.mode_flag_list)
UNTYPED_LIST_ADD(addons, list("label" = flag_name, "selection" = selected.mode_flags & selected.mode_flag_list[flag_name]))
var/list/belly_mode_data = list(
"mode" = selected.digest_mode,
"item_mode" = selected.item_digest_mode,
"addons" = addons,
"name_length" = BELLIES_NAME_MAX,
"name_min" = BELLIES_NAME_MIN,
"mode_options" = host.vore_selected.digest_modes,
"item_mode_options" = host.vore_selected.item_digest_modes,
)
selected_list["belly_mode_data"] = belly_mode_data
if(active_vore_tab == DESCRIPTIONS_TAB)
// Compile our displayed options
var/list/displayed_options = list(
VPANEL_DESCRIPTION_TAB,
VPANEL_EXAMINE_TAB,
VPANEL_TRASH_EATER_TAB
)
if(selected.message_mode || selected.escapable)
displayed_options += VPANEL_STRUGGLE_TAB
displayed_options += VPANEL_ESCAPE_TAB
displayed_options += VPANEL_ESCAPE_ABSORBED_TAB
if(selected.message_mode || (selected.escapable && (selected.transferlocation || selected.transferlocation_secondary)) || selected.autotransfer_enabled && (selected.autotransferlocation || selected.autotransferlocation_secondary))
displayed_options += VPANEL_TRANSFER_TAB
if(selected.message_mode || selected.escapable && (selected.digestchance || selected.absorbchance))
displayed_options += VPANEL_INTERACTION_TAB
if(selected.message_mode || selected.digest_mode == DM_DIGEST || selected.digest_mode == DM_SELECT || selected.digest_mode == DM_ABSORB || selected.digest_mode == DM_UNABSORB)
displayed_options += VPANEL_BELLYMODE_TAB
if(selected.message_mode || selected.emote_active)
displayed_options += VPANEL_IDLE_TAB
if(selected.message_mode || selected.show_fullness_messages)
displayed_options += VPANEL_LIQUIDS_TAB
var/list/belly_description_data = list(
"displayed_message_types" = compile_message_data(selected),
"verb" = selected.vore_verb,
"release_verb" = selected.release_verb,
"message_mode" = selected.message_mode,
"displayed_options" = displayed_options,
"message_option" = message_option,
"message_subtab" = message_subtab,
"selected_message" = selected_message,
"show_liq_fullness" = selected.show_fullness_messages,
"emote_time" = selected.emote_time,
"emote_active" = selected.emote_active,
"entrance_logs" = selected.entrance_logs,
"item_digest_logs" = selected.item_digest_logs,
"name_min" = BELLIES_NAME_MIN,
"name_length" = BELLIES_NAME_MAX,
)
selected_list["belly_description_data"] = belly_description_data
if(active_vore_tab == OPTIONS_TAB)
var/list/silicon_control = list(
"silicon_belly_overlay_preference" = selected.silicon_belly_overlay_preference,
"belly_sprite_option_shown" = LAZYLEN(owner.vore_icon_bellies) >= 1 ? TRUE : FALSE,
"belly_sprite_to_affect" = selected.belly_sprite_to_affect
)
var/list/belly_option_data = list(
"can_taste" = selected.can_taste,
"is_feedable" = selected.is_feedable,
"nutrition_percent" = selected.nutrition_percent,
"digest_brute" = selected.digest_brute,
"digest_burn" = selected.digest_burn,
"digest_oxy" = selected.digest_oxy,
"digest_tox" = selected.digest_tox,
"digest_clone" = selected.digest_clone,
"digest_max" = selected.digest_max,
"digest_free" = selected.get_unused_digestion_damage(),
"bulge_size" = selected.bulge_size,
"shrink_grow_size" = selected.shrink_grow_size,
"contaminates" = selected.contaminates,
"egg_type" = selected.egg_type,
"egg_types" = GLOB.global_vore_egg_types,
"egg_name" = selected.egg_name,
"egg_size" = selected.egg_size,
"recycling" = selected.recycling,
"storing_nutrition" = selected.storing_nutrition,
"selective_preference" = selected.selective_preference,
"save_digest_mode" = selected.save_digest_mode,
"eating_privacy_local" = selected.eating_privacy_local,
"vorespawn_blacklist" = selected.vorespawn_blacklist,
"vorespawn_whitelist" = selected.vorespawn_whitelist,
"vorespawn_absorbed" = (global_flag_check(selected.vorespawn_absorbed, VS_FLAG_ABSORB_YES) + global_flag_check(selected.vorespawn_absorbed, VS_FLAG_ABSORB_PREY)),
"private_struggle" = selected.private_struggle,
"drainmode" = selected.drainmode,
"drainmode_options" = selected.drainmodes,
"mob_belly_controls" = silicon_control
)
if(selected.contaminates)
belly_option_data += list(
"contaminate_flavor" = selected.contamination_flavor,
"contaminate_options" = GLOB.contamination_flavors,
"contaminate_color" = selected.contamination_color,
"contaminate_colors" = GLOB.contamination_colors
)
selected_list["belly_option_data"] = belly_option_data
if(active_vore_tab == SOUNDS_TAB)
var/list/belly_sound_data = list(
"is_wet" = selected.is_wet,
"wet_loop" = selected.wet_loop,
"fancy" = selected.fancy_vore,
"sound" = selected.vore_sound,
"release_sound" = selected.release_sound,
"sound_volume" = selected.sound_volume,
"noise_freq" = selected.noise_freq,
"min_voice_freq" = MIN_VOICE_FREQ,
"max_voice_freq" = MAX_VOICE_FREQ,
"vore_sound_list" = (selected.fancy_vore ? GLOB.fancy_vore_sounds : GLOB.classic_vore_sounds),
"release_sound_list" = (selected.fancy_vore ? GLOB.fancy_release_sounds : GLOB.classic_release_sounds)
)
selected_list["belly_sound_data"] = belly_sound_data
if(active_vore_tab == VISUALS_TAB)
var/list/belly_fullscreens
if(selected.colorization_enabled)
belly_fullscreens = icon_states('icons/mob/screen_full_vore_list.dmi') //Makes any icons inside of here selectable.
else
belly_fullscreens = icon_states('icons/mob/screen_full_vore.dmi') //Non colorable
var/list/vs_flags = list()
for(var/flag_name in selected.vore_sprite_flag_list)
UNTYPED_LIST_ADD(vs_flags, list("label" = flag_name, "selection" = selected.vore_sprite_flags & selected.vore_sprite_flag_list[flag_name]))
var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[host.vore_selected.undergarment_chosen]
var/list/undergarments
if(UWC)
undergarments = UWC.items
var/list/belly_visual_data = list(
"belly_fullscreen" = selected.belly_fullscreen,
"colorization_enabled" = selected.colorization_enabled,
"belly_fullscreen_color" = selected.belly_fullscreen_color,
"belly_fullscreen_color2" = selected.belly_fullscreen_color2,
"belly_fullscreen_color3" = selected.belly_fullscreen_color3,
"belly_fullscreen_color4" = selected.belly_fullscreen_color4,
"belly_fullscreen_alpha" = selected.belly_fullscreen_alpha,
"possible_fullscreens" = belly_fullscreens,
"disable_hud" = selected.disable_hud,
"vore_sprite_flags" = vs_flags,
"affects_voresprite" = selected.affects_vore_sprites,
"absorbed_voresprite" = selected.count_absorbed_prey_for_sprite,
"absorbed_multiplier" = selected.absorbed_multiplier,
"liquid_voresprite" = selected.count_liquid_for_sprite,
"liquid_multiplier" = selected.liquid_multiplier,
"item_voresprite" = selected.count_items_for_sprite,
"item_multiplier" = selected.item_multiplier,
"health_voresprite" = selected.health_impacts_size,
"resist_animation" = selected.resist_triggers_animation,
"voresprite_size_factor" = selected.size_factor_for_sprite,
"belly_sprite_to_affect" = selected.belly_sprite_to_affect,
"belly_sprite_options" = host.vore_icon_bellies,
"undergarment_chosen" = selected.undergarment_chosen,
"undergarment_if_none" = selected.undergarment_if_none || "None",
"undergarment_options" = global_underwear.categories,
"undergarment_options_if_none" = undergarments,
"undergarment_color" = selected.undergarment_color,
"tail_option_shown" = ishuman(owner),
"tail_to_change_to" = selected.tail_to_change_to,
"tail_sprite_options" = global.tail_styles_list
)
selected_list["belly_visual_data"] = belly_visual_data
if(active_vore_tab == INTERACTIONS_TAB)
var/list/belly_interaction_data = list(
"escapable" = selected.escapable,
"interacts" = compile_interact_data(selected),
"autotransfer_enabled" = selected.autotransfer_enabled,
"autotransfer" = compile_autotransfer_data(selected)
)
selected_list["belly_interaction_data"] = belly_interaction_data
var/list/selected_contents
var/total_content_count = 0
for(var/O in selected)
total_content_count++
if(active_vore_tab == CONTENTS_TAB)
var/list/info = list(
"name" = "[O]",
"absorbed" = FALSE,
"stat" = 0,
"ref" = "\ref[O]",
"outside" = TRUE,
)
if(show_pictures) //disables icon mode
if(selected.contents.len <= max_icon_content)
icon_overflow = FALSE
info["icon"] = cached_nom_icon(O)
else
icon_overflow = TRUE
if(isliving(O))
var/mob/living/M = O
info["stat"] = M.stat
if(M.absorbed)
info["absorbed"] = TRUE
LAZYADD(selected_contents, list(info))
if(active_vore_tab == CONTENTS_TAB)
selected_list["contents"] = selected_contents
selected_list["content_length"] = total_content_count
if(active_vore_tab == LIQUID_OPTIONS_TAB)
// liquid belly options
var/list/belly_liquid_data = list(
"show_liq" = selected.show_liquids,
"liq_interacts" = compile_liquid_interact_data(selected)
)
selected_list["belly_liquid_data"] = belly_liquid_data
return selected_list
#undef CONTROL_TAB
#undef DESCRIPTIONS_TAB
#undef OPTIONS_TAB
#undef SOUNDS_TAB
#undef VISUALS_TAB
#undef INTERACTIONS_TAB
#undef CONTENTS_TAB
#undef LIQUID_OPTIONS_TAB
@@ -0,0 +1,759 @@
#define DEFAULT_MESSAGE "Default"
#define ABSORBED_MESSAGE "Absorbed"
#define WITH_PREY "With Prey"
#define WITH_ABSORBED_PREY "With Absorbed Prey"
#define TRASH_EAT "Eat"
#define TRASH_EXPEL "Expel"
#define OUTSIDE_MESSAGE "Outside"
#define INSIDE_MESSAGE "Inside"
#define TO_YOU "To You"
#define TO_PREY "To Prey"
#define ATTEMPT_MESSAGE "Attempt"
#define SUCCESS_MESSAGE "Success"
#define ITEM_MESSAGE "Item"
#define FAIL_MESSAGE "Fail"
#define PRIMARY_MESSAGE "Primary"
#define SECONARY_MESSAGE "Secondary"
#define PRIMARY_AUTO_MESSAGE "Primary (Auto)"
#define SECONARY_AUTO_MESSAGE "Secondary (Auto)"
#define DIGEST_MESSAGE "Digest"
#define HOLD_MESSAGE "Hold"
#define HOLDABSORBED_MESSAGE "Hold (Absorbed)"
#define ABSORB_MESSAGE "Absorb"
#define HEAL_MESSAGE "Heal"
#define DRAIN_MESSAGE "Drain"
#define STEAL_MESSAGE "Steal"
#define EGG_MESSAGE "Egg"
#define SHRINK_MESSAGE "Shrink"
#define GROW_MESSAGE "Grow"
#define UNABSORB_MESSAGE "Unabsorb"
#define LIQUID0 "Liquid 0-20%"
#define LIQUID20 "Liquid 20-40%"
#define LIQUID40 "Liquid 40-60%"
#define LIQUID60 "Liquid 60-80%"
#define LIQUID80 "Liquid 80-100%"
/datum/vore_look/proc/compile_message_data(obj/belly/selected)
if(message_option == VPANEL_DESCRIPTION_TAB)
var/list/tab_data = list(
"possible_messages" = list(DEFAULT_MESSAGE, ABSORBED_MESSAGE)
)
if(!selected_message)
selected_message = DEFAULT_MESSAGE
if(selected_message == DEFAULT_MESSAGE)
tab_data["max_length"] = BELLIES_DESC_MAX
tab_data["active_message"] = selected.desc
tab_data["set_action"] = BELLY_DESCRIPTION_MESSAGE
tab_data["tooltip"] = "Displayed to prey upon consumption."
return tab_data
if(selected_message == ABSORBED_MESSAGE)
tab_data["max_length"] = BELLIES_DESC_MAX
tab_data["active_message"] = selected.absorbed_desc
tab_data["set_action"] = BELLY_DESCRIPTION_MESSAGE_ABSROED
tab_data["tooltip"] = "Displayed to prey after absorption."
return tab_data
if(message_option == VPANEL_EXAMINE_TAB)
var/list/tab_data = list(
"possible_messages" = list(WITH_PREY, WITH_ABSORBED_PREY)
)
if(!selected_message)
selected_message = WITH_PREY
if(selected_message == WITH_PREY)
tab_data["max_length"] = BELLIES_EXAMINE_MAX
tab_data["active_message"] = selected.examine_messages
tab_data["set_action"] = EXAMINES
tab_data["tooltip"] = "Displayed to nearby players during examination when the vorgan is full."
return tab_data
if(selected_message == WITH_ABSORBED_PREY)
tab_data["max_length"] = BELLIES_EXAMINE_MAX
tab_data["active_message"] = selected.examine_messages_absorbed
tab_data["set_action"] = EXAMINES_ABSORBED
tab_data["tooltip"] = "Displayed to nearby players during examination when the vorgan contains absorbed prey."
tab_data["button_label"] = "Display Absorbed Examine"
tab_data["button_action"] = "b_display_absorbed_examine"
tab_data["button_data"] = selected.display_absorbed_examine
tab_data["button_tooltip"] = "the absorbed description on examine." // those will automatically be preceeded by Enables / Disables!
return tab_data
if(message_option == VPANEL_TRASH_EATER_TAB)
var/list/tab_data = list(
"possible_messages" = list(TRASH_EAT, TRASH_EXPEL)
)
if(!selected_message)
selected_message = TRASH_EAT
if(selected_message == TRASH_EAT)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.trash_eater_in
tab_data["set_action"] = BELLY_TRASH_EATER_IN
tab_data["tooltip"] = "Displayed to nearby players when you ingest trash items."
return tab_data
if(selected_message == TRASH_EXPEL)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.trash_eater_out
tab_data["set_action"] = BELLY_TRASH_EATER_OUT
tab_data["tooltip"] = "Displayed to nearby players when you expel trash items."
return tab_data
if(message_option == VPANEL_STRUGGLE_TAB)
var/list/tab_data = list(
"subtypes" = list(DEFAULT_MESSAGE, ABSORBED_MESSAGE)
)
if(!message_subtab)
message_subtab = DEFAULT_MESSAGE
if(message_subtab == DEFAULT_MESSAGE)
tab_data["possible_messages"] = list(OUTSIDE_MESSAGE, INSIDE_MESSAGE)
if(!selected_message)
selected_message = OUTSIDE_MESSAGE
if(selected_message == OUTSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.struggle_messages_outside
tab_data["set_action"] = STRUGGLE_OUTSIDE
tab_data["tooltip"] = "Displayed to nearby players when your prey resists."
return tab_data
if(selected_message == INSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.struggle_messages_inside
tab_data["set_action"] = STRUGGLE_INSIDE
tab_data["tooltip"] = "Displayed to your prey when they resists."
return tab_data
if(message_subtab == ABSORBED_MESSAGE)
tab_data["possible_messages"] = list(OUTSIDE_MESSAGE, INSIDE_MESSAGE)
if(!selected_message)
selected_message = OUTSIDE_MESSAGE
if(selected_message == OUTSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.absorbed_struggle_messages_outside
tab_data["set_action"] = ABSORBED_STRUGGLE_OUSIDE
tab_data["tooltip"] = "Displayed to nearby players when your absorb prey resists."
return tab_data
if(selected_message == INSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.absorbed_struggle_messages_inside
tab_data["set_action"] = ABSORBED_STRUGGLE_INSIDE
tab_data["tooltip"] = "Displayed to your prey when absorbed prey resists."
return tab_data
if(message_option == VPANEL_ESCAPE_TAB)
var/list/tab_data = list(
"subtypes" = list(ITEM_MESSAGE, ATTEMPT_MESSAGE, FAIL_MESSAGE)
)
if(selected.message_mode || selected.escapechance)
tab_data["subtypes"] += SUCCESS_MESSAGE
if(!message_subtab)
message_subtab = ATTEMPT_MESSAGE
if(message_subtab == ATTEMPT_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_attempt_messages_prey
tab_data["set_action"] = ESCAPE_ATTEMPT_PREY
tab_data["tooltip"] = "Displayed to your prey when they trigger an escape attempt."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_attempt_messages_owner
tab_data["set_action"] = ESCAPE_ATTEMPT_OWNER
tab_data["tooltip"] = "Displayed to you when your prey triggers an escape attempt."
return tab_data
if(message_subtab == SUCCESS_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU, OUTSIDE_MESSAGE)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_messages_prey
tab_data["set_action"] = ESCAPE_PREY
tab_data["tooltip"] = "Displayed to your prey when they succeed an escape attempt."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_messages_owner
tab_data["set_action"] = ESCAPE_OWNER
tab_data["tooltip"] = "Displayed to you when your prey succeeds an escape attempt."
return tab_data
if(selected_message == OUTSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_messages_outside
tab_data["set_action"] = ESCAPE_OUTSIDE
tab_data["tooltip"] = "Displayed to nearby players when your prey succeeds an escape attempt."
return tab_data
if(message_subtab == ITEM_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU, OUTSIDE_MESSAGE)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_item_messages_prey
tab_data["set_action"] = ESCAPE_ITEM_PREY
tab_data["tooltip"] = "Displayed to your prey when they manage to push an item out of your belly."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_item_messages_owner
tab_data["set_action"] = ESCAPE_ITEM_OWNER
tab_data["tooltip"] = "Displayed to you when your prey manages to push an item out of your belly."
return tab_data
if(selected_message == OUTSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_item_messages_outside
tab_data["set_action"] = ESCAPE_ITEM_OUTSIDE
tab_data["tooltip"] = "Displayed to nearby players when your prey manages to push an item out of your belly."
return tab_data
if(message_subtab == FAIL_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_fail_messages_prey
tab_data["set_action"] = ESCAPE_FAIL_PREY
tab_data["tooltip"] = "Displayed to your prey when they fail an escape attempt."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_fail_messages_owner
tab_data["set_action"] = ESCAPE_FAIL_OWNER
tab_data["tooltip"] = "Displayed to you when your prey fails an escape attempt."
return tab_data
if(message_option == VPANEL_ESCAPE_ABSORBED_TAB)
var/list/tab_data = list(
"subtypes" = list(ATTEMPT_MESSAGE, FAIL_MESSAGE)
)
if(selected.message_mode || selected.escapechance_absorbed)
tab_data["subtypes"] += SUCCESS_MESSAGE
if(!message_subtab)
message_subtab = ATTEMPT_MESSAGE
if(message_subtab == ATTEMPT_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_attempt_absorbed_messages_prey
tab_data["set_action"] = ABSORBED_ESCAPE_ATTEMPT_PREY
tab_data["tooltip"] = "Displayed to your prey when they trigger an escape attempt."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_attempt_absorbed_messages_owner
tab_data["set_action"] = ABSORBED_ESCAPE_ATTEMPT_OWNER
tab_data["tooltip"] = "Displayed to you when your prey triggers an escape attempt."
return tab_data
if(message_subtab == SUCCESS_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU, OUTSIDE_MESSAGE)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_absorbed_messages_prey
tab_data["set_action"] = ABSORBED_ESCAPE_PREY
tab_data["tooltip"] = "Displayed to your absorbed prey when they succeed an escape attempt."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_absorbed_messages_owner
tab_data["set_action"] = ABSORBED_ESCAPE_OWNER
tab_data["tooltip"] = "Displayed to you when your absorbed prey succeeds an escape attempt."
return tab_data
if(selected_message == OUTSIDE_MESSAGE)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_absorbed_messages_outside
tab_data["set_action"] = ABSORBED_ESCAPE_OUTSIDE
tab_data["tooltip"] = "Displayed to nearby players when your absorbed prey succeeds an escape attempt."
return tab_data
if(message_subtab == FAIL_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_fail_absorbed_messages_prey
tab_data["set_action"] = ABSORBED_ESCAPE_FAIL_PREY
tab_data["tooltip"] = "Displayed to your absorbed prey when they fail an escape attempt."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.escape_fail_absorbed_messages_owner
tab_data["set_action"] = ABSORBED_ESCAPE_FAIL_OWNER
tab_data["tooltip"] = "Displayed to you when your absorbed prey fails an escape attempt."
return tab_data
if(message_option == VPANEL_TRANSFER_TAB)
var/list/tab_data = list(
"subtypes" = list()
)
if(selected.message_mode || selected.transferlocation)
tab_data["subtypes"] += PRIMARY_MESSAGE
if(selected.message_mode || selected.transferlocation_secondary)
tab_data["subtypes"] += SECONARY_MESSAGE
if(selected.message_mode || selected.autotransferlocation)
tab_data["subtypes"] += PRIMARY_AUTO_MESSAGE
if(selected.message_mode || selected.autotransferlocation_secondary)
tab_data["subtypes"] += SECONARY_AUTO_MESSAGE
if(!message_subtab)
message_subtab = PRIMARY_MESSAGE
if(message_subtab == PRIMARY_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.primary_transfer_messages_prey
tab_data["set_action"] = PRIMARY_TRANSFER_PREY
tab_data["tooltip"] = "Displayed to your prey when they get transfered to the primary transfer location."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.primary_transfer_messages_owner
tab_data["set_action"] = PRIMARY_TRANSFER_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets transfered to the primary transfer location."
return tab_data
if(message_subtab == SECONARY_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.secondary_transfer_messages_prey
tab_data["set_action"] = SECONDARY_TRANSFER_PREY
tab_data["tooltip"] = "Displayed to your prey when they get transfered to the secondary transfer location."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.secondary_transfer_messages_owner
tab_data["set_action"] = SECONDARY_TRANSFER_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets transfered to the secondary transfer location."
return tab_data
if(message_subtab == PRIMARY_AUTO_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.primary_autotransfer_messages_prey
tab_data["set_action"] = PRIMARY_AUTO_TRANSFER_PREY
tab_data["tooltip"] = "Displayed to your prey when they get transfered to the primary auto transfer location."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.primary_autotransfer_messages_owner
tab_data["set_action"] = PRIMARY_AUTO_TRANSFER_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets transfered to the primary auto transfer location."
return tab_data
if(message_subtab == SECONARY_AUTO_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.secondary_autotransfer_messages_prey
tab_data["set_action"] = SECONDARY_AUTO_TRANSFER_PREY
tab_data["tooltip"] = "Displayed to your prey when they get transfered to the secondary auto transfer location."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.secondary_autotransfer_messages_owner
tab_data["set_action"] = SECONDARY_AUTO_TRANSFER_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets transfered to the secondary auto transfer location."
return tab_data
if(message_option == VPANEL_INTERACTION_TAB)
var/list/tab_data = list(
"subtypes" = list()
)
if(selected.message_mode || selected.digestchance)
tab_data["subtypes"] += DIGEST_MESSAGE
if(selected.message_mode || selected.absorbchance)
tab_data["subtypes"] += ABSORB_MESSAGE
if(!message_subtab)
message_subtab = DIGEST_MESSAGE
if(message_subtab == DIGEST_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.digest_chance_messages_prey
tab_data["set_action"] = DIGEST_CHANCE_PREY
tab_data["tooltip"] = "Displayed to your prey when their struggles trigger digest mode."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.digest_chance_messages_owner
tab_data["set_action"] = DIGEST_CHANCE_OWNER
tab_data["tooltip"] = "Displayed to you when your prey's struggles trigger digest mode."
return tab_data
if(message_subtab == ABSORB_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.absorb_chance_messages_prey
tab_data["set_action"] = ABSORB_CHANCE_PREY
tab_data["tooltip"] = "Displayed to your prey when their struggles trigger absorb mode."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.absorb_chance_messages_owner
tab_data["set_action"] = ABSORB_CHANCE_OWNER
tab_data["tooltip"] = "Displayed to you when your prey's struggles trigger absorb mode."
return tab_data
if(message_option == VPANEL_BELLYMODE_TAB)
var/list/tab_data = list(
"subtypes" = list()
)
if(selected.message_mode || selected.digest_mode == DM_DIGEST || DM_SELECT)
tab_data["subtypes"] += DIGEST_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_ABSORB || DM_SELECT)
tab_data["subtypes"] += ABSORB_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_UNABSORB)
tab_data["subtypes"] += UNABSORB_MESSAGE
if(!message_subtab)
message_subtab = DIGEST_MESSAGE
if(message_subtab == DIGEST_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.digest_messages_prey
tab_data["set_action"] = DIGEST_PREY
tab_data["tooltip"] = "Displayed to your prey when they get digested."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.digest_messages_owner
tab_data["set_action"] = DIGEST_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets digested."
return tab_data
if(message_subtab == ABSORBED_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.absorb_messages_prey
tab_data["set_action"] = ABSORB_PREY
tab_data["tooltip"] = "Displayed to your prey when they get absorbed."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.absorb_messages_owner
tab_data["set_action"] = ABSORB_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets absorbed."
if(message_subtab == UNABSORB_MESSAGE)
tab_data["possible_messages"] = list(TO_PREY, TO_YOU)
if(!selected_message)
selected_message = TO_PREY
if(selected_message == TO_PREY)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.unabsorb_messages_prey
tab_data["set_action"] = UNABSORBS_PREY
tab_data["tooltip"] = "Displayed to your prey when they get unabsorbed."
return tab_data
if(selected_message == TO_YOU)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = selected.unabsorb_messages_owner
tab_data["set_action"] = UNABSORBS_OWNER
tab_data["tooltip"] = "Displayed to you when your prey gets unabsorbed."
return tab_data
if(message_option == VPANEL_IDLE_TAB)
var/list/tab_data = list(
"possible_messages" = list()
)
if(selected.message_mode || selected.digest_mode == DM_DIGEST || selected.digest_mode == DM_SELECT)
tab_data["possible_messages"] += DIGEST_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_HOLD || selected.digest_mode == DM_SELECT)
tab_data["possible_messages"] += HOLD_MESSAGE
tab_data["possible_messages"] += HOLDABSORBED_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_ABSORB || selected.digest_mode == DM_SELECT)
tab_data["possible_messages"] += ABSORB_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_HEAL)
tab_data["possible_messages"] += HEAL_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_DRAIN || selected.digest_mode == DM_SELECT)
tab_data["possible_messages"] += DRAIN_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_SIZE_STEAL)
tab_data["possible_messages"] += STEAL_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_EGG)
tab_data["possible_messages"] += EGG_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_SHRINK)
tab_data["possible_messages"] += SHRINK_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_GROW)
tab_data["possible_messages"] += GROW_MESSAGE
if(selected.message_mode || selected.digest_mode == DM_UNABSORB)
tab_data["possible_messages"] += UNABSORB_MESSAGE
if(!selected_message)
selected_message = DIGEST_MESSAGE
if(selected_message == DIGEST_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_DIGEST])
tab_data["set_action"] = BELLY_MODE_DIGEST
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting digested."
return tab_data
if(selected_message == HOLD_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_HOLD])
tab_data["set_action"] = BELLY_MODE_HOLD
tab_data["tooltip"] = "Cyclic idle messages while your prey is being held."
return tab_data
if(selected_message == HOLDABSORBED_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_HOLD_ABSORBED])
tab_data["set_action"] = BELLY_MODE_HOLD_ABSORB
tab_data["tooltip"] = "Cyclic idle messages while your absorbed prey is being held."
return tab_data
if(selected_message == ABSORB_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_ABSORB])
tab_data["set_action"] = BELLY_MODE_ABSORB
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting absorbed."
return tab_data
if(selected_message == HEAL_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_HEAL])
tab_data["set_action"] = BELLY_MODE_HEAL
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting healed."
return tab_data
if(selected_message == DRAIN_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_DRAIN])
tab_data["set_action"] = BELLY_MODE_DRAIN
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting drained."
return tab_data
if(selected_message == STEAL_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_SIZE_STEAL])
tab_data["set_action"] = BELLY_MODE_STEAL
tab_data["tooltip"] = "Cyclic idle messages while your prey's size is stolen."
return tab_data
if(selected_message == EGG_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_EGG])
tab_data["set_action"] = BELLY_MODE_EGG
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting getting encased in an egg."
return tab_data
if(selected_message == SHRINK_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_SHRINK])
tab_data["set_action"] = BELLY_MODE_SHRINK
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting shrunk."
return tab_data
if(selected_message == GROW_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_GROW])
tab_data["set_action"] = BELLY_MODE_GROW
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting grown."
return tab_data
if(selected_message == UNABSORB_MESSAGE)
tab_data["max_length"] = BELLIES_IDLE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.emote_lists[DM_UNABSORB])
tab_data["set_action"] = BELLY_MODE_UNABSORB
tab_data["tooltip"] = "Cyclic idle messages while your prey is getting unabsorbed."
return tab_data
if(message_option == VPANEL_LIQUIDS_TAB)
var/list/tab_data = list(
"possible_messages" = list(LIQUID0, LIQUID20, LIQUID40, LIQUID60, LIQUID80)
)
if(!selected_message)
selected_message = LIQUID0
if(selected_message == LIQUID0)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.fullness1_messages)
tab_data["set_action"] = BELLY_LIQUID_MESSAGE1
tab_data["tooltip"] = "Displayed on examine when the belly contains 0 to 20% of liquids."
tab_data["button_label"] = "Display Fullness 0-20%"
tab_data["button_action"] = "b_liq_msg_toggle1"
tab_data["button_data"] = selected.liquid_fullness1_messages
tab_data["button_tooltip"] = "the 0-20% examine description." // those will automatically be preceeded by Enables / Disables!
return tab_data
if(selected_message == LIQUID20)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.fullness2_messages)
tab_data["set_action"] = BELLY_LIQUID_MESSAGE2
tab_data["tooltip"] = "Displayed on examine when the belly contains 20 to 40% of liquids."
tab_data["button_label"] = "Display Fullness 20-40%"
tab_data["button_action"] = "b_liq_msg_toggle2"
tab_data["button_data"] = selected.liquid_fullness2_messages
tab_data["button_tooltip"] = "the 20-40% examine description." // those will automatically be preceeded by Enables / Disables!
return tab_data
if(selected_message == LIQUID40)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.fullness3_messages)
tab_data["set_action"] = BELLY_LIQUID_MESSAGE3
tab_data["tooltip"] = "Displayed on examine when the belly contains 40 to 60% of liquids."
tab_data["button_label"] = "Display Fullness 40-60%"
tab_data["button_action"] = "b_liq_msg_toggle3"
tab_data["button_data"] = selected.liquid_fullness3_messages
tab_data["button_tooltip"] = "the 40-60% examine description." // those will automatically be preceeded by Enables / Disables!
return tab_data
if(selected_message == LIQUID60)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.fullness4_messages)
tab_data["set_action"] = BELLY_LIQUID_MESSAGE4
tab_data["tooltip"] = "Displayed on examine when the belly contains 60 to 80% of liquids."
tab_data["button_label"] = "Display Fullness 60-80%"
tab_data["button_action"] = "b_liq_msg_toggle4"
tab_data["button_data"] = selected.liquid_fullness4_messages
tab_data["button_tooltip"] = "the 60-80% examine description." // those will automatically be preceeded by Enables / Disables!
return tab_data
if(selected_message == LIQUID80)
tab_data["max_length"] = BELLIES_MESSAGE_MAX
tab_data["active_message"] = SANITIZE_LIST(selected.fullness5_messages)
tab_data["set_action"] = BELLY_LIQUID_MESSAGE5
tab_data["tooltip"] = "Displayed on examine when the belly contains 80 to 100% of liquids."
tab_data["button_label"] = "Display Fullness 80-100%"
tab_data["button_action"] = "b_liq_msg_toggle5"
tab_data["button_data"] = selected.liquid_fullness5_messages
tab_data["button_tooltip"] = "the 80-100% examine description." // those will automatically be preceeded by Enables / Disables!
return tab_data
/datum/vore_look/proc/compile_interact_data(obj/belly/selected)
var/list/interact_data = list()
if(selected.escapable)
interact_data += list(
"escapechance" = selected.escapechance,
"escapechance_absorbed" = selected.escapechance_absorbed,
"escapetime" = selected.escapetime,
"transferchance" = selected.transferchance,
"transferlocation" = selected.transferlocation,
"transferchance_secondary" = selected.transferchance_secondary,
"transferlocation_secondary" = selected.transferlocation_secondary,
"absorbchance" = selected.absorbchance,
"digestchance" = selected.digestchance,
"belchchance" = selected.belchchance
)
return interact_data
/datum/vore_look/proc/compile_autotransfer_data(obj/belly/selected)
var/list/autotransfer_data = list()
if(selected.autotransfer_enabled)
//auto-transfer flags
var/list/at_whitelist = list()
var/list/at_secondary_whitelist = list()
var/list/at_blacklist = list()
var/list/at_secondary_blacklist = list()
for(var/flag_name in selected.autotransfer_flags_list)
UNTYPED_LIST_ADD(at_whitelist, list("label" = flag_name, "selection" = selected.autotransfer_whitelist & selected.autotransfer_flags_list[flag_name]))
UNTYPED_LIST_ADD(at_blacklist, list("label" = flag_name, "selection" = selected.autotransfer_blacklist & selected.autotransfer_flags_list[flag_name]))
UNTYPED_LIST_ADD(at_secondary_whitelist, list("label" = flag_name, "selection" = selected.autotransfer_secondary_whitelist & selected.autotransfer_flags_list[flag_name]))
UNTYPED_LIST_ADD(at_secondary_blacklist, list("label" = flag_name, "selection" = selected.autotransfer_secondary_blacklist & selected.autotransfer_flags_list[flag_name]))
var/list/at_whitelist_items = list()
var/list/at_blacklist_items = list()
var/list/at_secondary_whitelist_items = list()
var/list/at_secondary_blacklist_items = list()
for(var/flag_name in selected.autotransfer_flags_list_items)
UNTYPED_LIST_ADD(at_whitelist_items, list("label" = flag_name, "selection" = selected.autotransfer_whitelist_items & selected.autotransfer_flags_list_items[flag_name]))
UNTYPED_LIST_ADD(at_blacklist_items, list("label" = flag_name, "selection" = selected.autotransfer_blacklist_items & selected.autotransfer_flags_list_items[flag_name]))
UNTYPED_LIST_ADD(at_secondary_whitelist_items, list("label" = flag_name, "selection" = selected.autotransfer_secondary_whitelist_items & selected.autotransfer_flags_list_items[flag_name]))
UNTYPED_LIST_ADD(at_secondary_blacklist_items, list("label" = flag_name, "selection" = selected.autotransfer_secondary_blacklist_items & selected.autotransfer_flags_list_items[flag_name]))
var/list/primary_transfer = list(
"autotransferchance" = selected.autotransferchance,
"autotransferlocation" = selected.autotransferlocation,
"autotransferextralocation" = selected.autotransferextralocation,
"autotransfer_whitelist" = at_whitelist,
"autotransfer_blacklist" = at_blacklist,
"autotransfer_whitelist_items" = at_whitelist_items,
"autotransfer_blacklist_items" = at_blacklist_items
)
var/list/secondary_transfer = list(
"autotransferchance" = selected.autotransferchance_secondary,
"autotransferlocation" = selected.autotransferlocation_secondary,
"autotransferextralocation" = selected.autotransferextralocation_secondary,
"autotransfer_whitelist" = at_secondary_whitelist,
"autotransfer_blacklist" = at_secondary_blacklist,
"autotransfer_whitelist_items" = at_secondary_whitelist_items,
"autotransfer_blacklist_items" = at_secondary_blacklist_items
)
autotransfer_data += list(
"autotransferwait" = selected.autotransferwait,
"autotransfer_min_amount" = selected.autotransfer_min_amount,
"autotransfer_max_amount" = selected.autotransfer_max_amount,
"primary_transfer" = primary_transfer,
"secondary_transfer" = secondary_transfer
)
return autotransfer_data
/datum/vore_look/proc/compile_liquid_interact_data(obj/belly/selected)
var/list/liq_interacts = list()
if(selected.show_liquids)
var/list/liquid_addon_list = list()
for(var/flag_name in selected.reagent_mode_flag_list)
UNTYPED_LIST_ADD(liquid_addon_list, list("label" = flag_name, "selection" = selected.reagent_mode_flags & selected.reagent_mode_flag_list[flag_name]))
liq_interacts += list(
"liq_reagent_gen" = selected.reagentbellymode,
"liq_reagent_type" = selected.reagent_chosen,
"liq_reagent_types" = selected.reagent_choices,
"liq_reagent_name" = selected.reagent_name,
"liq_custom_name_max" = BELLIES_NAME_MAX,
"liq_custom_name_min" = BELLIES_NAME_MIN,
"liq_reagent_transfer_verb" = selected.reagent_transfer_verb,
"liq_reagent_nutri_rate" = selected.gen_time,
"liq_reagent_capacity" = selected.custom_max_volume,
"liq_sloshing" = selected.vorefootsteps_sounds,
"liq_reagent_addons" = liquid_addon_list,
"custom_reagentcolor" = (selected.custom_reagentcolor ? selected.custom_reagentcolor : selected.reagentcolor),
"custom_reagentalpha" = selected.custom_reagentalpha,
"liquid_overlay" = selected.liquid_overlay,
"max_liquid_level" = selected.max_liquid_level,
"reagent_touches" = selected.reagent_touches,
"mush_overlay" = selected.mush_overlay,
"mush_color" = selected.mush_color,
"mush_alpha" = selected.mush_alpha,
"max_mush" = selected.max_mush,
"min_mush" = selected.min_mush,
"item_mush_val" = selected.item_mush_val,
"metabolism_overlay" = selected.metabolism_overlay,
"metabolism_mush_ratio" = selected.metabolism_mush_ratio,
"max_ingested" = selected.max_ingested,
"custom_ingested_color" = (selected.custom_ingested_color ? selected.custom_ingested_color : "#3f6088"),
"custom_ingested_alpha" = selected.custom_ingested_alpha
)
return liq_interacts
#undef DEFAULT_MESSAGE
#undef ABSORBED_MESSAGE
#undef WITH_PREY
#undef WITH_ABSORBED_PREY
#undef TRASH_EAT
#undef TRASH_EXPEL
#undef OUTSIDE_MESSAGE
#undef INSIDE_MESSAGE
#undef TO_YOU
#undef TO_PREY
#undef ATTEMPT_MESSAGE
#undef SUCCESS_MESSAGE
#undef ITEM_MESSAGE
#undef FAIL_MESSAGE
#undef PRIMARY_MESSAGE
#undef SECONARY_MESSAGE
#undef PRIMARY_AUTO_MESSAGE
#undef SECONARY_AUTO_MESSAGE
#undef DIGEST_MESSAGE
#undef HOLD_MESSAGE
#undef HOLDABSORBED_MESSAGE
#undef ABSORB_MESSAGE
#undef HEAL_MESSAGE
#undef DRAIN_MESSAGE
#undef STEAL_MESSAGE
#undef EGG_MESSAGE
#undef SHRINK_MESSAGE
#undef GROW_MESSAGE
#undef UNABSORB_MESSAGE
#undef LIQUID0
#undef LIQUID20
#undef LIQUID40
#undef LIQUID60
#undef LIQUID80
+10 -9
View File
@@ -198,7 +198,7 @@
// Allows to adjust the interior of the soulcatcher
/obj/soulgem/proc/adjust_interior(var/new_flavor)
new_flavor = sanitize(new_flavor, MAX_MESSAGE_LEN * 2)
new_flavor = sanitize(new_flavor, VORE_SC_DESC_MAX, FALSE, TRUE, FALSE)
inside_flavor = new_flavor
notify_holder("Updating environment...")
for(var/mob/living/carbon/brain/caught_soul/vore/CS as anything in brainmobs)
@@ -225,26 +225,27 @@
// Sets the custom messages depending on the input
/obj/soulgem/proc/set_custom_message(var/message, var/target)
message = sanitize(message, MAX_MESSAGE_LEN / 4)
message = sanitize(message, VORE_SC_MAX, FALSE, TRUE, FALSE)
switch(target)
if("capture")
if(SC_CAPTURE_MEESAGE)
capture_message = message
if("transit")
if(SC_TRANSIT_MESSAGE)
transit_message = message
if("release")
if(SC_RELEASE_MESSAGE)
release_message = message
if("transfer")
if(SC_TRANSFERE_MESSAGE)
transfer_message = message
if("delete")
if(SC_DELETE_MESSAGE)
delete_message = message
// Allows to rename the soulgem
/obj/soulgem/proc/rename(var/new_name)
if(length(new_name) < 3 || length(new_name) > 60)
to_chat(owner, span_warning("Your soulcatcher's name needs to be between 3 and 60 characters long!"))
return
new_name = sanitize(new_name, 60)
return FALSE
new_name = sanitize(new_name, 60, FALSE, TRUE, FALSE)
name = new_name
return TRUE
// Toggles the given flag
/obj/soulgem/proc/toggle_setting(var/flag)
File diff suppressed because it is too large Load Diff
-1
View File
@@ -154,7 +154,6 @@
new_mob.ooc_notes_dislikes = ooc_notes_dislikes
new_mob.appendage_color = appendage_color
new_mob.appendage_alt_setting = appendage_alt_setting
new_mob.text_warnings = text_warnings
VORE_PREF_TRANSFER(new_mob, src)