mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
vorepanel setting update (#7567)
Co-authored-by: Selis <selis@xynolabs.com>
This commit is contained in:
@@ -702,7 +702,14 @@ var/global/datum/controller/occupations/job_master
|
||||
log_admin("[key_name(C)] has requested to vore spawn into [key_name(pred)]")
|
||||
message_admins("[key_name(C)] has requested to vore spawn into [key_name(pred)]")
|
||||
|
||||
var/confirm = alert(pred, "[C.prefs.real_name] is attempting to spawn into your [vore_spawn_gut]. Let them?", "Confirm", "No", "Yes")
|
||||
var/confirm
|
||||
if(pred.no_latejoin_vore_warning)
|
||||
if(pred.no_latejoin_vore_warning_time > 0)
|
||||
confirm = tgui_alert(pred, "[C.prefs.real_name] is attempting to spawn into your [vore_spawn_gut]. Let them?", "Confirm", list("No", "Yes"), pred.no_latejoin_vore_warning_time SECONDS)
|
||||
if(!confirm)
|
||||
confirm = "Yes"
|
||||
else
|
||||
confirm = alert(pred, "[C.prefs.real_name] is attempting to spawn into your [vore_spawn_gut]. Let them?", "Confirm", "No", "Yes")
|
||||
if(confirm != "Yes")
|
||||
to_chat(C, "<span class='warning'>[pred] has declined your spawn request.</span>")
|
||||
var/message = sanitizeSafe(input(pred,"Do you want to leave them a message?")as text|null)
|
||||
@@ -763,7 +770,14 @@ var/global/datum/controller/occupations/job_master
|
||||
log_admin("[key_name(C)] has requested to pred spawn onto [key_name(prey)]")
|
||||
message_admins("[key_name(C)] has requested to pred spawn onto [key_name(prey)]")
|
||||
|
||||
var/confirm = alert(prey, "[C.prefs.real_name] is attempting to televore you into their [vore_spawn_gut]. Let them?", "Confirm", "No", "Yes")
|
||||
var/confirm
|
||||
if(prey.no_latejoin_prey_warning)
|
||||
if(prey.no_latejoin_prey_warning_time > 0)
|
||||
confirm = tgui_alert(prey, "[C.prefs.real_name] is attempting to televore you into their [vore_spawn_gut]. Let them?", "Confirm", list("No", "Yes"), prey.no_latejoin_prey_warning_time SECONDS)
|
||||
if(!confirm)
|
||||
confirm = "Yes"
|
||||
else
|
||||
confirm = alert(prey, "[C.prefs.real_name] is attempting to televore you into their [vore_spawn_gut]. Let them?", "Confirm", "No", "Yes")
|
||||
if(confirm != "Yes")
|
||||
to_chat(C, "<span class='warning'>[prey] has declined your spawn request.</span>")
|
||||
var/message = sanitizeSafe(input(prey,"Do you want to leave them a message?")as text|null)
|
||||
|
||||
@@ -63,6 +63,10 @@
|
||||
new_mob.key = picked_client.key //Finally put them in the mob
|
||||
if(organs)
|
||||
new_mob.copy_from_prefs_vr()
|
||||
// CHOMPEdit Start
|
||||
if(LAZYLEN(new_mob.vore_organs))
|
||||
new_mob.vore_selected = new_mob.vore_organs[1]
|
||||
// CHOMPEdit End
|
||||
|
||||
log_admin("[key_name_admin(src)] has spawned [new_mob.key] as mob [new_mob.type].")
|
||||
message_admins("[key_name_admin(src)] has spawned [new_mob.key] as mob [new_mob.type].", 1)
|
||||
|
||||
@@ -178,13 +178,18 @@
|
||||
remove_modifiers_of_type(/datum/modifier/shadekin_phase) //CHOMPEdit - Shadekin probably shouldn't be hit while phasing
|
||||
|
||||
//Potential phase-in vore
|
||||
if(can_be_drop_pred) //Toggleable in vore panel
|
||||
if(can_be_drop_pred || can_be_drop_prey) //Toggleable in vore panel
|
||||
var/list/potentials = living_mobs(0)
|
||||
if(potentials.len)
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
|
||||
if(can_be_drop_pred && istype(target) && target.devourable && target.can_be_drop_prey && target.phase_vore && vore_selected && phase_vore)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target,"<span class='vwarning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
to_chat(target, "<span class='vwarning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
to_chat(src, "<span class='vwarning'>You phase around [target], [vore_selected.vore_verb]ing them into your [vore_selected.name]!</span>")
|
||||
else if(can_be_drop_prey && istype(target) && devourable && target.can_be_drop_pred && target.phase_vore && target.vore_selected && phase_vore)
|
||||
forceMove(target.vore_selected)
|
||||
to_chat(target, "<span class='vwarning'>\The [src] phases into you, [target.vore_selected.vore_verb]ing them into your [target.vore_selected.name]!</span>")
|
||||
to_chat(src, "<span class='vwarning'>You phase into [target], having them [target.vore_selected.vore_verb] you into their [target.vore_selected.name]!</span>")
|
||||
|
||||
ability_flags &= ~AB_PHASE_SHIFTING
|
||||
|
||||
@@ -683,7 +688,7 @@
|
||||
to_chat(owner, "<span class='warning'>A dark maw you deployed has triggered!</span>")
|
||||
spawn(10)
|
||||
var/will_vore = 1
|
||||
if(!owner || !(target in owner) || !L.devourable || !L.can_be_drop_prey || !owner.can_be_drop_pred)
|
||||
if(!owner || !(target in owner) || !L.devourable || !L.can_be_drop_prey || !owner.can_be_drop_pred || !L.phase_vore)
|
||||
will_vore = 0
|
||||
if(!src || src.gc_destroyed)
|
||||
//We got deleted probably, do nothing more
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
feeding = client.prefs_vr.feeding
|
||||
can_be_drop_prey = client.prefs_vr.can_be_drop_prey
|
||||
can_be_drop_pred = client.prefs_vr.can_be_drop_pred
|
||||
latejoin_vore = client.prefs_vr.latejoin_vore //CHOMPedit
|
||||
throw_vore = client.prefs_vr.throw_vore
|
||||
food_vore = client.prefs_vr.food_vore
|
||||
allow_spontaneous_tf = client.prefs_vr.allow_spontaneous_tf
|
||||
@@ -47,6 +46,26 @@
|
||||
step_mechanics_pref = client.prefs_vr.step_mechanics_pref
|
||||
pickup_pref = client.prefs_vr.pickup_pref
|
||||
|
||||
//CHOMP Stuff Start
|
||||
phase_vore = client.prefs_vr.phase_vore
|
||||
latejoin_vore = client.prefs_vr.latejoin_vore
|
||||
latejoin_prey = client.prefs_vr.latejoin_prey
|
||||
receive_reagents = client.prefs_vr.receive_reagents
|
||||
give_reagents = client.prefs_vr.give_reagents
|
||||
apply_reagents = client.prefs_vr.apply_reagents
|
||||
autotransferable = client.prefs_vr.autotransferable
|
||||
noisy_full = client.prefs_vr.noisy_full
|
||||
strip_pref = client.prefs_vr.strip_pref
|
||||
vore_sprite_color = client.prefs_vr.vore_sprite_color
|
||||
vore_sprite_multiply = client.prefs_vr.vore_sprite_multiply
|
||||
no_latejoin_vore_warning = client.prefs_vr.no_latejoin_vore_warning
|
||||
no_latejoin_prey_warning = client.prefs_vr.no_latejoin_prey_warning
|
||||
no_latejoin_vore_warning_time = client.prefs_vr.no_latejoin_vore_warning_time
|
||||
no_latejoin_prey_warning_time = client.prefs_vr.no_latejoin_prey_warning_time
|
||||
no_latejoin_vore_warning_persists = client.prefs_vr.no_latejoin_vore_warning_persists
|
||||
no_latejoin_prey_warning_persists = client.prefs_vr.no_latejoin_prey_warning_persists
|
||||
//CHOMP Stuff End
|
||||
|
||||
/mob/living/simple_mob/proc/set_name()
|
||||
set name = "Set Name"
|
||||
set desc = "Sets your mobs name. You only get to do this once."
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
remove_self(volume)
|
||||
return
|
||||
if(B.owner)
|
||||
if(B.reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && B.reagents.total_volume < B.custom_max_volume)
|
||||
if(B.show_liquids && B.reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && B.reagents.total_volume < B.custom_max_volume)
|
||||
B.owner_adjust_nutrition(removed * (B.nutrition_percent / 100) * power)
|
||||
B.digest_nutri_gain += removed * (B.nutrition_percent / 100) + 0.5
|
||||
B.GenerateBellyReagents_digesting()
|
||||
@@ -466,7 +466,7 @@
|
||||
remove_self(volume)
|
||||
return
|
||||
if(B.owner)
|
||||
if(B.reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && B.reagents.total_volume < B.custom_max_volume)
|
||||
if(B.show_liquids && B.reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && B.reagents.total_volume < B.custom_max_volume)
|
||||
B.owner_adjust_nutrition(volume * (B.nutrition_percent / 100) * power)
|
||||
B.digest_nutri_gain += volume * (B.nutrition_percent / 100) + 0.5
|
||||
B.GenerateBellyReagents_digesting()
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
else if(prob(10))
|
||||
B.absorb_living(P)
|
||||
//absorption reagent production
|
||||
if(B.reagent_mode_flags & DM_FLAG_REAGENTSABSORB && B.reagents.total_volume < B.reagents.maximum_volume)
|
||||
if(B.show_liquids && B.reagent_mode_flags & DM_FLAG_REAGENTSABSORB && B.reagents.total_volume < B.reagents.maximum_volume)
|
||||
B.GenerateBellyReagents_absorbed()
|
||||
|
||||
/datum/reagent/radium/concentrated
|
||||
@@ -81,4 +81,4 @@
|
||||
if(rad_organ && !rad_organ.is_broken())
|
||||
absorbed = 1
|
||||
if(!absorbed)
|
||||
M.adjustToxLoss(100)
|
||||
M.adjustToxLoss(100)
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
var/custom_ingested_alpha = 255 //Custom alpha for ingested reagent layer if not using normal mush layer.
|
||||
|
||||
var/nutri_reagent_gen = FALSE //if belly produces reagent over time using nutrition, needs to be optimized to use subsystem - Jack
|
||||
var/is_beneficial = FALSE //Sets a reagent as a beneficial one / healing reagents
|
||||
var/list/generated_reagents = list("water" = 1) //Any number of reagents, the associated value is how many units are generated per process()
|
||||
var/reagent_name = "water" //What is shown when reagents are removed, doesn't need to be an actual reagent
|
||||
var/reagentid = "water" //Selected reagent's id, for use in puddle system currently
|
||||
@@ -89,6 +90,7 @@
|
||||
"Cherry Jelly",
|
||||
"Digestive acid",
|
||||
"Diluted digestive acid",
|
||||
"Space cleaner",
|
||||
"Lube",
|
||||
"Biomass",
|
||||
"Concentrated Radium",
|
||||
@@ -182,10 +184,10 @@
|
||||
///////////////////// NUTRITION REAGENT PRODUCTION /////////////////
|
||||
|
||||
/obj/belly/proc/HandleBellyReagents()
|
||||
if(reagentbellymode && reagent_mode_flags & DM_FLAG_REAGENTSNUTRI && reagents.total_volume < custom_max_volume && !isnewplayer(owner)) //Removed if(reagentbellymode == TRUE) since that's less optimized
|
||||
if(show_liquids && reagentbellymode && reagent_mode_flags & DM_FLAG_REAGENTSNUTRI && reagents.total_volume < custom_max_volume && !isnewplayer(owner)) //Removed if(reagentbellymode == TRUE) since that's less optimized
|
||||
if(isrobot(owner))
|
||||
var/mob/living/silicon/robot/R = owner
|
||||
if(R.cell.charge >= gen_cost*10 && gen_interval >= gen_time)
|
||||
if(R.cell && R.cell.charge >= gen_cost*10 && gen_interval >= gen_time)
|
||||
GenerateBellyReagents()
|
||||
gen_interval = 0
|
||||
else
|
||||
@@ -199,15 +201,22 @@
|
||||
|
||||
/obj/belly/proc/HandleBellyReagentEffects(var/list/touchable_atoms)
|
||||
if(LAZYLEN(contents))
|
||||
if(reagent_touches && reagents.total_volume >= 5)
|
||||
if(show_liquids && reagent_touches && reagents.total_volume >= 5)
|
||||
var/affecting_amt = reagents.total_volume / max(LAZYLEN(touchable_atoms), 1)
|
||||
if(affecting_amt > 5)
|
||||
affecting_amt = 5
|
||||
if(affecting_amt >= 1)
|
||||
for(var/mob/living/L in touchable_atoms)
|
||||
if(L.digestable && digest_mode == DM_DIGEST)
|
||||
if(!L.apply_reagents)
|
||||
continue
|
||||
if((L.digestable && digest_mode == DM_DIGEST))
|
||||
if(!L.permit_healbelly && is_beneficial) // Healing reagents turned off in preferences!
|
||||
continue
|
||||
if(reagents.total_volume)
|
||||
reagents.trans_to(L, affecting_amt, 1, FALSE)
|
||||
if(L.permit_healbelly && digest_mode == DM_HEAL)
|
||||
if(is_beneficial && reagents.total_volume)
|
||||
reagents.trans_to(L, affecting_amt, 1, FALSE)
|
||||
for(var/obj/item/I in touchable_atoms)
|
||||
if(reagents.total_volume)
|
||||
reagents.trans_to(I, affecting_amt, 1, FALSE)
|
||||
@@ -277,88 +286,101 @@
|
||||
switch(reagent_chosen)
|
||||
if("Water")
|
||||
generated_reagents = list("water" = 1)
|
||||
reagent_name = "water"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "water"
|
||||
gen_amount = 1
|
||||
gen_cost = 1
|
||||
reagentid = "water"
|
||||
reagentcolor = "#0064C877"
|
||||
if("Milk")
|
||||
generated_reagents = list("milk" = 1)
|
||||
reagent_name = "milk"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "milk"
|
||||
gen_amount = 1
|
||||
gen_cost = 5
|
||||
reagentid = "milk"
|
||||
reagentcolor = "#DFDFDF"
|
||||
if("Cream")
|
||||
generated_reagents = list("cream" = 1)
|
||||
reagent_name = "cream"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "cream"
|
||||
gen_amount = 1
|
||||
gen_cost = 5
|
||||
reagentid = "cream"
|
||||
reagentcolor = "#DFD7AF"
|
||||
if("Honey")
|
||||
generated_reagents = list("honey" = 1)
|
||||
reagent_name = "honey"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "honey"
|
||||
gen_amount = 1
|
||||
gen_cost = 10
|
||||
reagentid = "honey"
|
||||
reagentcolor = "#FFFF00"
|
||||
if("Cherry Jelly") //Kinda WIP, allows slime like folks something to stuff others with, should make a generic jelly in future
|
||||
generated_reagents = list("cherryjelly" = 1)
|
||||
reagent_name = "cherry jelly"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "cherry jelly"
|
||||
gen_amount = 1
|
||||
gen_cost = 10
|
||||
reagentid = "cherryjelly"
|
||||
reagentcolor = "#801E28"
|
||||
if("Digestive acid")
|
||||
generated_reagents = list("stomacid" = 1)
|
||||
reagent_name = "digestive acid"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "digestive acid"
|
||||
gen_amount = 1
|
||||
gen_cost = 1
|
||||
reagentid = "stomacid"
|
||||
reagentcolor = "#664330"
|
||||
if("Diluted digestive acid")
|
||||
generated_reagents = list("diet_stomacid" = 1)
|
||||
reagent_name = "diluted digestive acid"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "diluted digestive acid"
|
||||
gen_amount = 1
|
||||
gen_cost = 1
|
||||
reagentid = "diet_stomacid"
|
||||
reagentcolor = "#664330"
|
||||
if("Space cleaner")
|
||||
generated_reagents = list("cleaner" = 1)
|
||||
reagent_name = "space cleaner"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "space cleaner"
|
||||
gen_amount = 1
|
||||
gen_cost = 10
|
||||
reagentid = "cleaner"
|
||||
reagentcolor = "#A5F0EE"
|
||||
if("Lube")
|
||||
generated_reagents = list("lube" = 1)
|
||||
reagent_name = "lube"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "lube"
|
||||
gen_amount = 1
|
||||
gen_cost = 10
|
||||
reagentid = "lube"
|
||||
reagentcolor = "#009CA8"
|
||||
if("Biomass")
|
||||
generated_reagents = list("biomass" = 1)
|
||||
reagent_name = "biomass"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "biomass"
|
||||
gen_amount = 1
|
||||
gen_cost = 10
|
||||
reagentid = "biomass"
|
||||
reagentcolor = "#DF9FBF"
|
||||
if("Concentrated Radium")
|
||||
generated_reagents = list("concentrated_radium" = 1)
|
||||
reagent_name = "concentrated radium"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "concentrated radium"
|
||||
gen_amount = 1
|
||||
gen_cost = 1
|
||||
reagentid = "concentrated_radium"
|
||||
reagentcolor = "#C7C7C7"
|
||||
if("Tricordrazine")
|
||||
generated_reagents = list("tricordrazine" = 1)
|
||||
reagent_name = "tricordrazine"
|
||||
if(capitalize(reagent_name) in reagent_choices)
|
||||
reagent_name = "tricordrazine"
|
||||
gen_amount = 1
|
||||
gen_cost = 10
|
||||
reagentid = "tricordrazine"
|
||||
reagentcolor = "#8040FF"
|
||||
is_beneficial = TRUE
|
||||
|
||||
|
||||
/////////////////////// FULLNESS MESSAGES //////////////////////
|
||||
@@ -374,7 +396,7 @@
|
||||
formatted_message = replacetext(raw_message,"%belly",lowertext(name))
|
||||
formatted_message = replacetext(formatted_message,"%pred",owner)
|
||||
|
||||
return("<span class='warning'>[formatted_message]</span><BR>")
|
||||
return(span_red("[formatted_message]<BR>"))
|
||||
|
||||
/obj/belly/proc/get_reagent_examine_msg2()
|
||||
if(fullness1_messages.len)
|
||||
@@ -384,7 +406,7 @@
|
||||
formatted_message = replacetext(raw_message,"%belly",lowertext(name))
|
||||
formatted_message = replacetext(formatted_message,"%pred",owner)
|
||||
|
||||
return("<span class='warning'>[formatted_message]</span><BR>")
|
||||
return(span_red("[formatted_message]<BR>"))
|
||||
|
||||
/obj/belly/proc/get_reagent_examine_msg3()
|
||||
if(fullness1_messages.len)
|
||||
@@ -394,7 +416,7 @@
|
||||
formatted_message = replacetext(raw_message,"%belly",lowertext(name))
|
||||
formatted_message = replacetext(formatted_message,"%pred",owner)
|
||||
|
||||
return("<span class='warning'>[formatted_message]</span><BR>")
|
||||
return(span_red("[formatted_message]<BR>"))
|
||||
|
||||
/obj/belly/proc/get_reagent_examine_msg4()
|
||||
if(fullness1_messages.len)
|
||||
@@ -404,7 +426,7 @@
|
||||
formatted_message = replacetext(raw_message,"%belly",lowertext(name))
|
||||
formatted_message = replacetext(formatted_message,"%pred",owner)
|
||||
|
||||
return("<span class='warning'>[formatted_message]</span><BR>")
|
||||
return(span_red("[formatted_message]<BR>"))
|
||||
|
||||
/obj/belly/proc/get_reagent_examine_msg5()
|
||||
if(fullness1_messages.len)
|
||||
@@ -414,7 +436,7 @@
|
||||
formatted_message = replacetext(raw_message,"%belly",lowertext(name))
|
||||
formatted_message = replacetext(formatted_message,"%pred",owner)
|
||||
|
||||
return("<span class='warning'>[formatted_message]</span><BR>")
|
||||
return(span_red("[formatted_message]<BR>"))
|
||||
|
||||
|
||||
// The next function gets the messages set on the belly, in human-readable format.
|
||||
|
||||
@@ -575,8 +575,8 @@
|
||||
//Stop AI processing in bellies
|
||||
if(M.ai_holder)
|
||||
M.ai_holder.go_sleep()
|
||||
if(reagents.total_volume >= 5 && M.digestable) //CHOMPEdit Start
|
||||
if(digest_mode == DM_DIGEST)
|
||||
if(reagents.total_volume >= 5) //CHOMPEdit Start
|
||||
if(digest_mode == DM_DIGEST && M.digestable)
|
||||
reagents.trans_to(M, reagents.total_volume * 0.1, 1 / max(LAZYLEN(contents), 1), FALSE)
|
||||
to_chat(M, "<span class='vwarning'><B>You splash into a pool of [reagent_name]!</B></span>")
|
||||
if(!isliving(thing) && count_items_for_sprite) //CHOMPEdit - If this is enabled also update fullness for non-living things
|
||||
@@ -727,7 +727,7 @@
|
||||
I.alpha = custom_ingested_alpha
|
||||
I.pixel_y = -450 + ((450 / max(max_ingested, 1)) * min(max_ingested, ingested.total_volume))
|
||||
F.add_overlay(I)
|
||||
if(L.liquidbelly_visuals && mush_overlay && (owner.nutrition > 0 || max_mush == 0 || min_mush > 0 || (LAZYLEN(contents) * item_mush_val) > 0))
|
||||
if(show_liquids && L.liquidbelly_visuals && mush_overlay && (owner.nutrition > 0 || max_mush == 0 || min_mush > 0 || (LAZYLEN(contents) * item_mush_val) > 0))
|
||||
I = image('modular_chomp/icons/mob/vore_fullscreens/bubbles.dmi', "mush")
|
||||
I.color = mush_color
|
||||
I.alpha = mush_alpha
|
||||
@@ -743,7 +743,7 @@
|
||||
I.alpha = min(mush_alpha, (extra_mush / max(total_mush_content, 1)) * mush_alpha)
|
||||
I.pixel_y = stored_y
|
||||
F.add_overlay(I)
|
||||
if(L.liquidbelly_visuals && liquid_overlay && reagents.total_volume)
|
||||
if(show_liquids && L.liquidbelly_visuals && liquid_overlay && reagents.total_volume)
|
||||
if(digest_mode == DM_HOLD && item_digest_mode == IM_HOLD)
|
||||
I = image('modular_chomp/icons/mob/vore_fullscreens/bubbles.dmi', "calm")
|
||||
else
|
||||
@@ -785,7 +785,7 @@
|
||||
I.alpha = custom_ingested_alpha
|
||||
I.pixel_y = -450 + (450 / max(max_ingested, 1) * max(min(max_ingested, ingested.total_volume), 1))
|
||||
F.add_overlay(I)
|
||||
if(L.liquidbelly_visuals && mush_overlay && (owner.nutrition > 0 || max_mush == 0 || min_mush > 0 || (LAZYLEN(contents) * item_mush_val) > 0))
|
||||
if(show_liquids && L.liquidbelly_visuals && mush_overlay && (owner.nutrition > 0 || max_mush == 0 || min_mush > 0 || (LAZYLEN(contents) * item_mush_val) > 0))
|
||||
I = image('modular_chomp/icons/mob/vore_fullscreens/bubbles.dmi', "mush")
|
||||
I.color = mush_color
|
||||
I.alpha = mush_alpha
|
||||
@@ -801,7 +801,7 @@
|
||||
I.alpha = min(mush_alpha, (extra_mush / max(total_mush_content, 1)) * mush_alpha)
|
||||
I.pixel_y = stored_y
|
||||
F.add_overlay(I)
|
||||
if(L.liquidbelly_visuals && liquid_overlay && reagents.total_volume)
|
||||
if(show_liquids && L.liquidbelly_visuals && liquid_overlay && reagents.total_volume)
|
||||
if(digest_mode == DM_HOLD && item_digest_mode == IM_HOLD)
|
||||
I = image('modular_chomp/icons/mob/vore_fullscreens/bubbles.dmi', "calm")
|
||||
else
|
||||
|
||||
@@ -101,7 +101,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
|
||||
var/mob/living/silicon/robot/R = B.owner
|
||||
R.cell.charge += 25*damage_gain */
|
||||
if(offset && damage_gain > 0) // If any different than default weight, multiply the % of offset.
|
||||
if(B.reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && B.reagents.total_volume < B.reagents.maximum_volume) //digestion producing reagents
|
||||
if(B.show_liquids && B.reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && B.reagents.total_volume < B.reagents.maximum_volume) //digestion producing reagents
|
||||
B.owner_adjust_nutrition(offset * (3 * damage_gain / difference) * L.get_digestion_nutrition_modifier() * B.owner.get_digestion_efficiency_modifier()) //Uncertain if balanced fairly, can adjust by multiplier for the cost of reagent, dont go below 1 or else it will result in more nutrition than normal - Jack
|
||||
B.digest_nutri_gain += offset * (1.5 * damage_gain / difference) * L.get_digestion_nutrition_modifier() * B.owner.get_digestion_efficiency_modifier() //for transfering nutrition value over to GenerateBellyReagents_digesting()
|
||||
B.GenerateBellyReagents_digesting()
|
||||
@@ -124,7 +124,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
|
||||
B.steal_nutrition(L)
|
||||
if(L.nutrition < 100)
|
||||
B.absorb_living(L)
|
||||
if(B.reagent_mode_flags & DM_FLAG_REAGENTSABSORB && B.reagents.total_volume < B.reagents.maximum_volume) //CHOMPedit: absorption reagent production
|
||||
if(B.show_liquids && B.reagent_mode_flags & DM_FLAG_REAGENTSABSORB && B.reagents.total_volume < B.reagents.maximum_volume) //CHOMPedit: absorption reagent production
|
||||
B.GenerateBellyReagents_absorbed() //CHOMPedit end: A bonus for pred, I know for a fact prey is usually at zero nutrition when absorption finally happens
|
||||
consider_healthbar(L, old_nutrition, B.owner)
|
||||
return list("to_update" = TRUE)
|
||||
@@ -191,7 +191,7 @@ GLOBAL_LIST_INIT(digest_modes, list())
|
||||
|
||||
/datum/digest_mode/heal/process_mob(obj/belly/B, mob/living/L)
|
||||
var/oldstat = L.stat
|
||||
if(L.stat == DEAD)
|
||||
if(L.stat == DEAD || !L.permit_healbelly) //CHOMPEdit healpref check
|
||||
return null // Can't heal the dead with healbelly
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(B.owner.nutrition > 90 && H.isSynthetic())
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
touchable_atoms |= I
|
||||
|
||||
//Stripping flag
|
||||
if(mode_flags & DM_FLAG_STRIPPING)
|
||||
if((mode_flags & DM_FLAG_STRIPPING) && H.strip_pref) //CHOMPEdit Stripping pref check
|
||||
for(var/slot in slots)
|
||||
var/obj/item/I = H.get_equipped_item(slot = slot)
|
||||
if(I && H.unEquip(I, force = FALSE))
|
||||
@@ -373,7 +373,7 @@
|
||||
GenerateBellyReagents_digested()
|
||||
else
|
||||
R.cell.charge += (nutrition_percent / 100) * compensation * 25 * personal_nutrition_modifier*/
|
||||
if(reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && reagents.total_volume < reagents.maximum_volume) //CHOMP digestion producing reagents
|
||||
if(show_liquids && reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && reagents.total_volume < reagents.maximum_volume) //CHOMP digestion producing reagents
|
||||
owner_adjust_nutrition((nutrition_percent / 100) * compensation * 3 * personal_nutrition_modifier)
|
||||
GenerateBellyReagents_digested()
|
||||
else
|
||||
@@ -383,7 +383,7 @@
|
||||
if(L.nutrition >= 100)
|
||||
var/oldnutrition = (L.nutrition * 0.05)
|
||||
L.nutrition = (L.nutrition * 0.95)
|
||||
if(reagent_mode_flags & DM_FLAG_REAGENTSDRAIN && reagents.total_volume < reagents.maximum_volume) //CHOMPedit: draining reagent production //Added to this proc now since it's used for draining
|
||||
if(show_liquids && reagent_mode_flags & DM_FLAG_REAGENTSDRAIN && reagents.total_volume < reagents.maximum_volume) //CHOMPedit: draining reagent production //Added to this proc now since it's used for draining
|
||||
owner_adjust_nutrition(oldnutrition * 0.75) //keeping the price static, due to how much nutrition can flunctuate
|
||||
GenerateBellyReagents_absorbing() //Dont need unique proc so far
|
||||
else
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
var/total_volume = B.reagents.total_volume
|
||||
vore_organs_reagents += total_volume
|
||||
|
||||
if(B.vorefootsteps_sounds == TRUE && highest_vol < total_volume)
|
||||
if(B.show_liquids && B.vorefootsteps_sounds && highest_vol < total_volume)
|
||||
highest_vol = total_volume
|
||||
|
||||
if(highest_vol < 20) //For now the volume will be off if less than 20 units of reagent are in vorebellies
|
||||
@@ -234,7 +234,7 @@
|
||||
choices += rc
|
||||
var/obj/item/weapon/reagent_containers/T = input(user,"Choose what to transfer to","Select Target") as null|anything in choices
|
||||
if(!T)
|
||||
return FALSE
|
||||
return FALSE
|
||||
if(!Adjacent(T) || !Adjacent(TG))
|
||||
return //No long distance transfer
|
||||
|
||||
|
||||
@@ -244,14 +244,25 @@
|
||||
P.weight_message_visible = src.weight_message_visible
|
||||
P.weight_messages = src.weight_messages
|
||||
|
||||
//CHOMP stuff
|
||||
//CHOMP stuff Start
|
||||
P.phase_vore = src.phase_vore
|
||||
P.noisy_full = src.noisy_full
|
||||
P.latejoin_vore = src.latejoin_vore
|
||||
P.latejoin_prey = src.latejoin_prey
|
||||
P.receive_reagents = src.receive_reagents
|
||||
P.give_reagents = src.give_reagents
|
||||
P.apply_reagents = src.apply_reagents
|
||||
P.autotransferable = src.autotransferable
|
||||
P.strip_pref = src.strip_pref
|
||||
P.vore_sprite_color = src.vore_sprite_color
|
||||
P.vore_sprite_multiply = src.vore_sprite_multiply
|
||||
P.no_latejoin_vore_warning = src.no_latejoin_vore_warning
|
||||
P.no_latejoin_prey_warning = src.no_latejoin_prey_warning
|
||||
P.no_latejoin_vore_warning_time = src.no_latejoin_vore_warning_time
|
||||
P.no_latejoin_prey_warning_time = src.no_latejoin_prey_warning_time
|
||||
P.no_latejoin_vore_warning_persists = src.no_latejoin_vore_warning_persists
|
||||
P.no_latejoin_prey_warning_persists = src.no_latejoin_prey_warning_persists
|
||||
//CHOMP Stuff End
|
||||
|
||||
var/list/serialized = list()
|
||||
for(var/obj/belly/B as anything in src.vore_organs)
|
||||
@@ -303,13 +314,23 @@
|
||||
weight_messages = P.weight_messages
|
||||
|
||||
//CHOMP stuff
|
||||
phase_vore = P.phase_vore
|
||||
noisy_full = P.noisy_full
|
||||
latejoin_vore = P.latejoin_vore
|
||||
latejoin_prey = P.latejoin_prey
|
||||
receive_reagents = P.receive_reagents
|
||||
give_reagents = P.give_reagents
|
||||
apply_reagents = P.apply_reagents
|
||||
autotransferable = P.autotransferable
|
||||
strip_pref = P.strip_pref
|
||||
vore_sprite_color = P.vore_sprite_color
|
||||
vore_sprite_multiply = P.vore_sprite_multiply
|
||||
no_latejoin_vore_warning = P.no_latejoin_vore_warning
|
||||
no_latejoin_prey_warning = P.no_latejoin_prey_warning
|
||||
no_latejoin_vore_warning_time = P.no_latejoin_vore_warning_time
|
||||
no_latejoin_prey_warning_time = P.no_latejoin_prey_warning_time
|
||||
no_latejoin_vore_warning_persists = P.no_latejoin_vore_warning_persists
|
||||
no_latejoin_prey_warning_persists = P.no_latejoin_prey_warning_persists
|
||||
|
||||
if(bellies)
|
||||
if(isliving(src))
|
||||
@@ -1135,31 +1156,43 @@
|
||||
dispvoreprefs += "<font color='red'><b>OOC DISABLED</b></font><br>"
|
||||
if("CHAT_LOOC" in client.prefs.preferences_disabled)
|
||||
dispvoreprefs += "<font color='red'><b>LOOC DISABLED</b></font><br>"
|
||||
dispvoreprefs += "<b>Digestable:</b> [digestable ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Devourable:</b> [devourable ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Feedable:</b> [feeding ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Autotransferable:</b> [autotransferable ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
|
||||
dispvoreprefs += "<b>Absorption Permission:</b> [absorbable ? "Allowed" : "Disallowed"]<br>"
|
||||
dispvoreprefs += "<b>Leaves Remains:</b> [digest_leave_remains ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Mob Vore:</b> [allowmobvore ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Healbelly permission:</b> [permit_healbelly ? "Allowed" : "Disallowed"]<br>"
|
||||
dispvoreprefs += "<b>Selective Mode Pref:</b> [src.selective_preference]<br>"
|
||||
dispvoreprefs += "<b>Spontaneous vore prey:</b> [can_be_drop_prey ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Spontaneous vore pred:</b> [can_be_drop_pred ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Late join spawn point belly:</b> [latejoin_vore ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
|
||||
dispvoreprefs += "<b>Can be late join prey:</b> [latejoin_prey ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
|
||||
dispvoreprefs += "<b>Receiving liquids:</b> [receive_reagents ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
|
||||
dispvoreprefs += "<b>Giving liquids:</b> [give_reagents ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
|
||||
dispvoreprefs += "<b>Drop Vore:</b> [drop_vore ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Slip Vore:</b> [slip_vore ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Throw vore:</b> [throw_vore ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Stumble Vore:</b> [stumble_vore ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Food Vore:</b> [food_vore ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Spontaneous transformation:</b> [allow_spontaneous_tf ? "Enabled" : "Disabled"]<br>"
|
||||
dispvoreprefs += "<b>Can be stepped on/over:</b> [step_mechanics_pref ? "Allowed" : "Disallowed"]<br>"
|
||||
dispvoreprefs += "<b>Can be picked up:</b> [pickup_pref ? "Allowed" : "Disallowed"]<br>"
|
||||
dispvoreprefs += "<b>Global Vore Privacy is:</b> [eating_privacy_global ? "Subtle" : "Loud"]<br>"
|
||||
//CHOMPEdit Start
|
||||
dispvoreprefs += "<b>Devourable:</b> [devourable ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
if(devourable)
|
||||
dispvoreprefs += "<b>Healbelly permission:</b> [permit_healbelly ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Digestable:</b> [digestable ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Absorption Permission:</b> [absorbable ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Selective Mode Pref:</b> [src.selective_preference]<br>"
|
||||
dispvoreprefs += "<b>Mob Vore:</b> [allowmobvore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Autotransferable:</b> [autotransferable ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Can be stripped:</b> [strip_pref ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Applying reagents:</b> [apply_reagents ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Leaves Remains:</b> [digest_leave_remains ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Spontaneous vore prey:</b> [can_be_drop_prey ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Spontaneous vore pred:</b> [can_be_drop_pred ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
if(can_be_drop_prey || can_be_drop_pred)
|
||||
dispvoreprefs += "<b>Drop Vore:</b> [drop_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Slip Vore:</b> [slip_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Stumble Vore:</b> [stumble_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Throw vore:</b> [throw_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Food Vore:</b> [food_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Phase Vore:</b> [phase_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Can be stepped on/over:</b> [step_mechanics_pref ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Can be picked up:</b> [pickup_pref ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Can be resized:</b> [resizable ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
|
||||
dispvoreprefs += "<b>Spontaneous transformation:</b> [allow_spontaneous_tf ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Feedable:</b> [feeding ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Receiving liquids:</b> [receive_reagents ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Giving liquids:</b> [give_reagents ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Late join spawn point belly:</b> [latejoin_vore ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
if(latejoin_vore)
|
||||
dispvoreprefs += "<b>Late join spawn auto accept:</b> [no_latejoin_vore_warning ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Can be late join prey:</b> [latejoin_prey ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
if(latejoin_prey)
|
||||
dispvoreprefs += "<b>Late join prey auto accept:</b> [no_latejoin_prey_warning ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
|
||||
dispvoreprefs += "<b>Global Vore Privacy is:</b> [eating_privacy_global ? "<font color='green'>Subtle</font>" : "<font color='red'>Loud</font>"]<br>"
|
||||
dispvoreprefs += "<b>Current active belly:</b> [vore_selected ? vore_selected.name : "None"]<br>"
|
||||
//CHOMPEdit End
|
||||
user << browse("<html><head><title>Vore prefs: [src]</title></head><body><center>[dispvoreprefs]</center></body></html>", "window=[name]mvp;size=300x400;can_resize=1;can_minimize=0")
|
||||
onclose(user, "[name]")
|
||||
return
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
/mob
|
||||
var/receive_reagents = FALSE //Pref for people to avoid others transfering reagents into them.
|
||||
var/give_reagents = FALSE //Pref for people to avoid others taking reagents from them.
|
||||
var/apply_reagents = TRUE //Pref for people to avoid having stomach reagents applied to them
|
||||
var/latejoin_vore = FALSE //If enabled, latejoiners can spawn into this, assuming they have a client
|
||||
var/latejoin_prey = FALSE //If enabled, latejoiners can spawn ontop of and instantly eat the victim
|
||||
var/noisy_full = FALSE //Enables belching when a mob has overeaten
|
||||
var/phase_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/strip_pref = TRUE //Enables the ability for worn items to be stripped
|
||||
var/no_latejoin_vore_warning = FALSE //Auto accepts pred spwan notifications (roundbased / saveable)
|
||||
var/no_latejoin_prey_warning = FALSE //Auto accepts prey spawn notifications (roundbased / saveable)
|
||||
var/no_latejoin_vore_warning_time = 15 //Time until accepting prey
|
||||
var/no_latejoin_prey_warning_time = 15 //Time until accepting pred
|
||||
var/no_latejoin_vore_warning_persists = FALSE //Do we save it?
|
||||
var/no_latejoin_prey_warning_persists = FALSE //Do we save it?
|
||||
|
||||
// CHOMP vore icons refactor (Now on mob)
|
||||
var/vore_capacity = 0 // Maximum capacity, -1 for unlimited
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
var/can_be_drop_pred = FALSE
|
||||
var/allow_spontaneous_tf = FALSE // Obviously.
|
||||
var/show_vore_fx = TRUE // Show belly fullscreens
|
||||
var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client
|
||||
var/latejoin_prey = FALSE //CHOMPedit: If enabled, latejoiners can spawn ontop of and instantly eat the victim
|
||||
var/noisy_full = FALSE //CHOMPedit: Enables belching when a mob has overeaten
|
||||
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
|
||||
|
||||
@@ -69,14 +69,24 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
var/pickup_pref = TRUE
|
||||
|
||||
//CHOMP stuff
|
||||
var/phase_vore = TRUE
|
||||
var/noisy_full = FALSE
|
||||
var/receive_reagents = FALSE
|
||||
var/give_reagents = FALSE
|
||||
var/apply_reagents = TRUE
|
||||
var/latejoin_vore = FALSE
|
||||
var/latejoin_prey = FALSE
|
||||
var/autotransferable = TRUE
|
||||
var/strip_pref = FALSE
|
||||
var/vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE)
|
||||
var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000")
|
||||
//CHOMP stuff end
|
||||
var/no_latejoin_vore_warning = FALSE // Only load, when... no_latejoin_vore_warning_persists
|
||||
var/no_latejoin_prey_warning = FALSE // Only load, when... no_latejoin_vore_warning_persists
|
||||
var/no_latejoin_vore_warning_time = 15 // Only load, when... no_latejoin_vore_warning_persists
|
||||
var/no_latejoin_prey_warning_time = 15 // Only load, when... no_latejoin_vore_warning_persists
|
||||
var/no_latejoin_vore_warning_persists = FALSE
|
||||
var/no_latejoin_prey_warning_persists = FALSE
|
||||
//CHOMP stuff end
|
||||
|
||||
var/list/belly_prefs = list()
|
||||
var/vore_taste = "nothing in particular"
|
||||
@@ -207,14 +217,28 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
eating_privacy_global = json_from_file["eating_privacy_global"]
|
||||
|
||||
|
||||
//CHOMP stuff
|
||||
//CHOMP stuff Start
|
||||
phase_vore = json_from_file["phase_vore"]
|
||||
latejoin_vore = json_from_file["latejoin_vore"]
|
||||
latejoin_prey = json_from_file["latejoin_prey"]
|
||||
receive_reagents = json_from_file["receive_reagents"]
|
||||
noisy_full = json_from_file["noisy_full"]
|
||||
give_reagents = json_from_file["give_reagents"]
|
||||
apply_reagents = json_from_file["apply_reagents"]
|
||||
autotransferable = json_from_file["autotransferable"]
|
||||
vore_sprite_color = json_from_file["vore_sprite_color"]
|
||||
vore_sprite_multiply = json_from_file["vore_sprite_multiply"]
|
||||
strip_pref = json_from_file["strip_mechanics_pref"]
|
||||
|
||||
no_latejoin_vore_warning_persists = json_from_file["no_latejoin_vore_warning_persists"]
|
||||
if(no_latejoin_vore_warning_persists)
|
||||
no_latejoin_vore_warning = json_from_file["no_latejoin_vore_warning"]
|
||||
no_latejoin_vore_warning_time = json_from_file["no_latejoin_vore_warning_time"]
|
||||
no_latejoin_prey_warning_persists = json_from_file["no_latejoin_prey_warning_persists"]
|
||||
if(no_latejoin_prey_warning_persists)
|
||||
no_latejoin_prey_warning = json_from_file["no_latejoin_prey_warning"]
|
||||
no_latejoin_prey_warning_time = json_from_file["no_latejoin_prey_warning_time"]
|
||||
//CHOMP stuff End
|
||||
|
||||
|
||||
//Quick sanitize
|
||||
@@ -299,7 +323,9 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
while(weight_messages.len < 10)
|
||||
weight_messages.Add("")
|
||||
|
||||
//CHOMP stuff
|
||||
//CHOMP stuff Start
|
||||
if(isnull(phase_vore))
|
||||
phase_vore = TRUE
|
||||
if(isnull(latejoin_vore))
|
||||
latejoin_vore = FALSE
|
||||
if(isnull(latejoin_prey))
|
||||
@@ -308,12 +334,31 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
receive_reagents = FALSE
|
||||
if(isnull(give_reagents))
|
||||
give_reagents = FALSE
|
||||
if(isnull(apply_reagents))
|
||||
apply_reagents = TRUE
|
||||
if(isnull(noisy_full))
|
||||
noisy_full = FALSE
|
||||
if(isnull(autotransferable))
|
||||
autotransferable = TRUE
|
||||
if(isnull(vore_sprite_color))
|
||||
vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000")
|
||||
if(isnull(vore_sprite_multiply))
|
||||
vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE)
|
||||
if(isnull(strip_pref))
|
||||
strip_pref = TRUE
|
||||
if(isnull(no_latejoin_vore_warning))
|
||||
no_latejoin_vore_warning = FALSE
|
||||
if(isnull(no_latejoin_prey_warning))
|
||||
no_latejoin_prey_warning = FALSE
|
||||
if(isnull(no_latejoin_vore_warning_time))
|
||||
no_latejoin_vore_warning_time = 30
|
||||
if(isnull(no_latejoin_prey_warning_time))
|
||||
no_latejoin_prey_warning_time = 30
|
||||
if(isnull(no_latejoin_vore_warning_persists))
|
||||
no_latejoin_vore_warning_persists = FALSE
|
||||
if(isnull(no_latejoin_prey_warning_persists))
|
||||
no_latejoin_prey_warning_persists = FALSE
|
||||
//CHOMP stuff End
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -335,23 +380,26 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
"vore_smell" = vore_smell,
|
||||
"permit_healbelly" = permit_healbelly,
|
||||
"noisy" = noisy,
|
||||
"noisy_full" = noisy_full, //CHOMPedit
|
||||
"selective_preference" = selective_preference,
|
||||
"show_vore_fx" = show_vore_fx,
|
||||
"can_be_drop_prey" = can_be_drop_prey,
|
||||
"can_be_drop_pred" = can_be_drop_pred,
|
||||
"latejoin_vore" = latejoin_vore, //CHOMPedit
|
||||
"latejoin_prey" = latejoin_prey,
|
||||
"latejoin_prey" = latejoin_prey, //CHOMPedit
|
||||
"allow_spontaneous_tf" = allow_spontaneous_tf,
|
||||
"step_mechanics_pref" = step_mechanics_pref,
|
||||
"pickup_pref" = pickup_pref,
|
||||
"belly_prefs" = belly_prefs,
|
||||
"receive_reagents" = receive_reagents,
|
||||
"give_reagents" = give_reagents,
|
||||
"receive_reagents" = receive_reagents, //CHOMPedit
|
||||
"give_reagents" = give_reagents, //CHOMPedit
|
||||
"apply_reagents" = apply_reagents, //CHOMPedit
|
||||
"autotransferable" = autotransferable,
|
||||
"drop_vore" = drop_vore,
|
||||
"slip_vore" = slip_vore,
|
||||
"stumble_vore" = stumble_vore,
|
||||
"throw_vore" = throw_vore,
|
||||
"phase_vore" = phase_vore, //CHOMPedit
|
||||
"food_vore" = food_vore,
|
||||
"nutrition_message_visible" = nutrition_message_visible,
|
||||
"nutrition_messages" = nutrition_messages,
|
||||
@@ -360,6 +408,12 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
"eating_privacy_global" = eating_privacy_global,
|
||||
"vore_sprite_color" = vore_sprite_color, //CHOMPEdit
|
||||
"vore_sprite_multiply" = vore_sprite_multiply, //CHOMPEdit
|
||||
"no_latejoin_vore_warning" = no_latejoin_vore_warning, //CHOMPEdit
|
||||
"no_latejoin_prey_warning" = no_latejoin_prey_warning, //CHOMPEdit
|
||||
"no_latejoin_vore_warning_time" = no_latejoin_vore_warning_time, //CHOMPEdit
|
||||
"no_latejoin_prey_warning_time" = no_latejoin_prey_warning_time, //CHOMPEdit
|
||||
"no_latejoin_vore_warning_persists" = no_latejoin_vore_warning_persists, //CHOMPEdit
|
||||
"no_latejoin_prey_warning_persists" = no_latejoin_prey_warning_persists, //CHOMPEdit
|
||||
)
|
||||
|
||||
//List to JSON
|
||||
|
||||
@@ -56,6 +56,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
var/mob/host // Note, we do this in case we ever want to allow people to view others vore panels
|
||||
var/unsaved_changes = FALSE
|
||||
var/show_pictures = TRUE
|
||||
var/icon_overflow = FALSE
|
||||
var/max_icon_content = 21 //CHOMPedit: Contents above this disable icon mode. 21 for nice 3 rows to fill the default panel window.
|
||||
|
||||
/datum/vore_look/New(mob/new_host)
|
||||
@@ -118,6 +119,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
|
||||
data["unsaved_changes"] = unsaved_changes
|
||||
data["show_pictures"] = show_pictures
|
||||
data["overflow"] = icon_overflow
|
||||
|
||||
var/atom/hostloc = host.loc
|
||||
//CHOMPAdd Start - Allow VorePanel to show pred belly details even while indirectly inside
|
||||
@@ -152,6 +154,11 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
"desc" = inside_desc,
|
||||
"pred" = pred,
|
||||
"ref" = "\ref[inside_belly]",
|
||||
//CHOMPEdit Start
|
||||
"liq_lvl" = inside_belly.reagents.total_volume,
|
||||
"liq_reagent_type" = inside_belly.reagent_chosen,
|
||||
"liuq_name" = inside_belly.reagent_name,
|
||||
//CHOMPEdit End
|
||||
)
|
||||
|
||||
var/list/inside_contents = list()
|
||||
@@ -166,11 +173,13 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
"ref" = "\ref[O]",
|
||||
"outside" = FALSE,
|
||||
)
|
||||
if(show_pictures) //CHOMPedit: disables icon mode
|
||||
if(show_pictures) //CHOMPedit Start: disables icon mode
|
||||
if(inside_belly.contents.len <= max_icon_content)
|
||||
icon_overflow = FALSE
|
||||
info["icon"] = cached_nom_icon(O)
|
||||
else
|
||||
show_pictures = !show_pictures
|
||||
icon_overflow = TRUE
|
||||
//CHOMPEdit End
|
||||
if(isliving(O))
|
||||
var/mob/living/M = O
|
||||
info["stat"] = M.stat
|
||||
@@ -425,11 +434,13 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
"ref" = "\ref[O]",
|
||||
"outside" = TRUE,
|
||||
)
|
||||
if(show_pictures) //CHOMPedit: disables icon mode
|
||||
if(show_pictures) //CHOMPedit Start: disables icon mode
|
||||
if(selected.contents.len <= max_icon_content)
|
||||
icon_overflow = FALSE
|
||||
info["icon"] = cached_nom_icon(O)
|
||||
else
|
||||
show_pictures = !show_pictures
|
||||
icon_overflow = TRUE
|
||||
//CHOMPEdit End
|
||||
if(isliving(O))
|
||||
var/mob/living/M = O
|
||||
info["stat"] = M.stat
|
||||
@@ -499,22 +510,34 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
"show_vore_fx" = host.show_vore_fx,
|
||||
"can_be_drop_prey" = host.can_be_drop_prey,
|
||||
"can_be_drop_pred" = host.can_be_drop_pred,
|
||||
"latejoin_vore" = host.latejoin_vore, //CHOMPedit
|
||||
"latejoin_prey" = host.latejoin_prey, //CHOMPedit
|
||||
//CHOMPedit Start
|
||||
"latejoin_vore" = host.latejoin_vore,
|
||||
"latejoin_prey" = host.latejoin_prey,
|
||||
"no_spawnpred_warning" = host.no_latejoin_vore_warning,
|
||||
"no_spawnprey_warning" = host.no_latejoin_prey_warning,
|
||||
"no_spawnpred_warning_time" = host.no_latejoin_vore_warning_time,
|
||||
"no_spawnprey_warning_time" = host.no_latejoin_prey_warning_time,
|
||||
"no_spawnpred_warning_save" = host.no_latejoin_vore_warning_persists,
|
||||
"no_spawnprey_warning_save" = host.no_latejoin_prey_warning_persists,
|
||||
//CHOMPedit End
|
||||
"allow_spontaneous_tf" = host.allow_spontaneous_tf,
|
||||
"step_mechanics_active" = host.step_mechanics_pref,
|
||||
"pickup_mechanics_active" = host.pickup_pref,
|
||||
"strip_mechanics_active" = host.strip_pref, //CHOMPedit
|
||||
"noisy" = host.noisy,
|
||||
//CHOMPedit start, liquid belly prefs
|
||||
"liq_rec" = host.receive_reagents,
|
||||
"liq_giv" = host.give_reagents,
|
||||
"liq_apply" = host.apply_reagents,
|
||||
"autotransferable" = host.autotransferable,
|
||||
"noisy_full" = host.noisy_full, //Belching while full
|
||||
"selective_active" = host.selective_preference, //Reveal active selective mode in prefs
|
||||
//CHOMPedit end
|
||||
"drop_vore" = host.drop_vore,
|
||||
"slip_vore" = host.slip_vore,
|
||||
"stumble_vore" = host.stumble_vore,
|
||||
"throw_vore" = host.throw_vore,
|
||||
"phase_vore" = host.phase_vore, //CHOMPedit
|
||||
"food_vore" = host.food_vore,
|
||||
"nutrition_message_visible" = host.nutrition_message_visible,
|
||||
"nutrition_messages" = host.nutrition_messages,
|
||||
@@ -1763,6 +1786,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
host.client.prefs_vr.can_be_drop_prey = host.can_be_drop_prey
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit Start
|
||||
if("toggle_latejoin_vore")
|
||||
host.latejoin_vore = !host.latejoin_vore
|
||||
if(host.client.prefs_vr)
|
||||
@@ -1775,6 +1799,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
host.client.prefs_vr.latejoin_prey = host.latejoin_prey
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit End
|
||||
if("toggle_allow_spontaneous_tf")
|
||||
host.allow_spontaneous_tf = !host.allow_spontaneous_tf
|
||||
if(host.client.prefs_vr)
|
||||
@@ -1841,6 +1866,14 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
host.client.prefs_vr.pickup_pref = host.pickup_pref
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit Start
|
||||
if("toggle_strippref")
|
||||
host.strip_pref = !host.strip_pref
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.strip_pref = host.strip_pref
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit End
|
||||
if("toggle_healbelly")
|
||||
host.permit_healbelly = !host.permit_healbelly
|
||||
if(host.client.prefs_vr)
|
||||
@@ -1884,6 +1917,12 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
host.client.prefs_vr.give_reagents = host.give_reagents
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_liq_apply")
|
||||
host.apply_reagents = !host.apply_reagents
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.apply_reagents = host.apply_reagents
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_autotransferable")
|
||||
host.autotransferable = !host.autotransferable
|
||||
if(host.client.prefs_vr)
|
||||
@@ -1898,22 +1937,50 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
//CHOMPedit end
|
||||
if("toggle_drop_vore")
|
||||
host.drop_vore = !host.drop_vore
|
||||
//CHOMPEdit Start
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.drop_vore = host.drop_vore
|
||||
//CHOMPEdit End
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_slip_vore")
|
||||
host.slip_vore = !host.slip_vore
|
||||
//CHOMPEdit Start
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.slip_vore = host.slip_vore
|
||||
//CHOMPEdit End
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_stumble_vore")
|
||||
host.stumble_vore = !host.stumble_vore
|
||||
//CHOMPEdit Start
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.stumble_vore = host.stumble_vore
|
||||
//CHOMPEdit End
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_throw_vore")
|
||||
host.throw_vore = !host.throw_vore
|
||||
//CHOMPEdit Start
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.throw_vore = host.throw_vore
|
||||
//CHOMPEdit End
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit Start
|
||||
if("toggle_phase_vore")
|
||||
host.phase_vore = !host.phase_vore
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.phase_vore = host.phase_vore
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit End
|
||||
if("toggle_food_vore")
|
||||
host.food_vore = !host.food_vore
|
||||
//CHOMPEdit Start
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.food_vore = host.food_vore
|
||||
//CHOMPEdit End
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("switch_selective_mode_pref")
|
||||
@@ -1945,6 +2012,46 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
host.vore_sprite_multiply[belly_choice] = FALSE
|
||||
host.update_icons_body()
|
||||
return TRUE
|
||||
if("toggle_no_latejoin_vore_warning")
|
||||
host.no_latejoin_vore_warning = !host.no_latejoin_vore_warning
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.no_latejoin_vore_warning = host.no_latejoin_vore_warning
|
||||
if(host.no_latejoin_vore_warning_persists)
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_no_latejoin_prey_warning")
|
||||
host.no_latejoin_prey_warning = !host.no_latejoin_prey_warning
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.no_latejoin_prey_warning = host.no_latejoin_prey_warning
|
||||
if(host.no_latejoin_prey_warning_persists)
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("adjust_no_latejoin_vore_warning_time")
|
||||
host.no_latejoin_vore_warning_time = text2num(params["new_pred_time"])
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.no_latejoin_vore_warning_time = host.no_latejoin_vore_warning_time
|
||||
if(host.no_latejoin_vore_warning_persists)
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("adjust_no_latejoin_prey_warning_time")
|
||||
host.no_latejoin_prey_warning_time = text2num(params["new_prey_time"])
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.no_latejoin_prey_warning_time = host.no_latejoin_prey_warning_time
|
||||
if(host.no_latejoin_prey_warning_persists)
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_no_latejoin_vore_warning_persists")
|
||||
host.no_latejoin_vore_warning_persists = !host.no_latejoin_vore_warning_persists
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.no_latejoin_vore_warning_persists = host.no_latejoin_vore_warning_persists
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_no_latejoin_prey_warning_persists")
|
||||
host.no_latejoin_prey_warning_persists = !host.no_latejoin_prey_warning_persists
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.no_latejoin_prey_warning_persists = host.no_latejoin_prey_warning_persists
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
//CHOMPEdit end
|
||||
|
||||
/datum/vore_look/proc/pick_from_inside(mob/user, params)
|
||||
@@ -3699,6 +3806,8 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
else
|
||||
host.vore_selected.reagents.clear_reagents()
|
||||
. = TRUE
|
||||
if(.)
|
||||
unsaved_changes = TRUE
|
||||
|
||||
/datum/vore_look/proc/liq_set_msg(mob/user, params)
|
||||
if(!host.vore_selected)
|
||||
@@ -3770,4 +3879,6 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
if(new_message)
|
||||
host.vore_selected.set_reagent_messages(new_message,"full5")
|
||||
. = TRUE
|
||||
if(.)
|
||||
unsaved_changes = TRUE
|
||||
//CHOMPedit end
|
||||
|
||||
@@ -259,7 +259,6 @@
|
||||
new_mob.feeding = feeding
|
||||
new_mob.can_be_drop_prey = can_be_drop_prey
|
||||
new_mob.can_be_drop_pred = can_be_drop_pred
|
||||
new_mob.latejoin_vore = latejoin_vore
|
||||
new_mob.digest_leave_remains = digest_leave_remains
|
||||
new_mob.allowmobvore = allowmobvore
|
||||
new_mob.permit_healbelly = permit_healbelly
|
||||
@@ -283,6 +282,26 @@
|
||||
new_mob.eating_privacy_global = eating_privacy_global
|
||||
new_mob.text_warnings = text_warnings
|
||||
|
||||
//CHOMP stuff Start
|
||||
new_mob.phase_vore = phase_vore
|
||||
new_mob.latejoin_vore = latejoin_vore
|
||||
new_mob.latejoin_prey = latejoin_prey
|
||||
new_mob.receive_reagents = receive_reagents
|
||||
new_mob.give_reagents = give_reagents
|
||||
new_mob.apply_reagents = apply_reagents
|
||||
new_mob.autotransferable = autotransferable
|
||||
new_mob.strip_pref = strip_pref
|
||||
new_mob.vore_sprite_color = vore_sprite_color
|
||||
new_mob.vore_sprite_multiply = vore_sprite_multiply
|
||||
new_mob.noisy_full = noisy_full
|
||||
new_mob.no_latejoin_vore_warning = no_latejoin_vore_warning
|
||||
new_mob.no_latejoin_prey_warning = no_latejoin_prey_warning
|
||||
new_mob.no_latejoin_vore_warning_time = no_latejoin_vore_warning_time
|
||||
new_mob.no_latejoin_prey_warning_time = no_latejoin_prey_warning_time
|
||||
new_mob.no_latejoin_vore_warning_persists = no_latejoin_vore_warning_persists
|
||||
new_mob.no_latejoin_prey_warning_persists = no_latejoin_prey_warning_persists
|
||||
//CHOMP stuff End
|
||||
|
||||
/////SUBTYPES/////
|
||||
|
||||
/obj/item/weapon/gun/energy/mouseray/medical //This just changes people back, it can't TF people into anything without shenanigans
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
var/spitting = 0
|
||||
var/spit_projectile = null // what our spit projectile is. Can be anything
|
||||
|
||||
//no stripping of simplemobs
|
||||
strip_pref = FALSE
|
||||
|
||||
/mob/living/simple_mob/RangedAttack(var/atom/A)
|
||||
if(!isnull(spit_projectile) && spitting)
|
||||
Spit(A)
|
||||
|
||||
@@ -4,10 +4,12 @@ import { useBackend, useLocalState } from '../backend';
|
||||
import { Box, Button, Flex, Collapsible, Icon, LabeledList, NoticeBox, Section, Tabs, Divider, Stack } from '../components';
|
||||
import { Window } from '../layouts';
|
||||
import { classes } from 'common/react';
|
||||
import { NumberInput } from '../../tgui/components';
|
||||
|
||||
const stats = [null, 'average', 'bad'];
|
||||
|
||||
const digestModeToColor = {
|
||||
'Default': null,
|
||||
'Hold': null,
|
||||
'Digest': 'red',
|
||||
'Absorb': 'purple',
|
||||
@@ -21,6 +23,21 @@ const digestModeToColor = {
|
||||
'Encase In Egg': 'blue',
|
||||
};
|
||||
|
||||
const reagentToColor = {
|
||||
'Water': null,
|
||||
'Milk': null,
|
||||
'Cream': null,
|
||||
'Honey': 'teal',
|
||||
'Cherry Jelly': 'teal',
|
||||
'Digestive acid': 'red',
|
||||
'Diluted digestive acid': 'red',
|
||||
'Space cleaner': null,
|
||||
'Lube': null,
|
||||
'Biomass': 'teal',
|
||||
'Concentrated Radium': 'orange',
|
||||
'Tricordrazine': 'green',
|
||||
};
|
||||
|
||||
const digestModeToPreyMode = {
|
||||
'Hold': 'being held.',
|
||||
'Digest': 'being digested.',
|
||||
@@ -229,8 +246,18 @@ export const VorePanel = (props, context) => {
|
||||
const VoreInsidePanel = (props, context) => {
|
||||
const { act, data } = useBackend(context);
|
||||
|
||||
const { absorbed, belly_name, belly_mode, desc, pred, contents, ref } =
|
||||
data.inside;
|
||||
const {
|
||||
absorbed,
|
||||
belly_name,
|
||||
belly_mode,
|
||||
desc,
|
||||
pred,
|
||||
contents,
|
||||
ref,
|
||||
liq_lvl,
|
||||
liq_reagent_type,
|
||||
liuq_name,
|
||||
} = data.inside;
|
||||
|
||||
if (!belly_name) {
|
||||
return <Section title="Inside">You aren't inside anyone.</Section>;
|
||||
@@ -249,6 +276,20 @@ const VoreInsidePanel = (props, context) => {
|
||||
<Box color="red" inline>
|
||||
{belly_name}
|
||||
</Box>
|
||||
{liq_lvl > 0 ? (
|
||||
<>
|
||||
,
|
||||
<Box color="yellow" inline>
|
||||
bathing in a pool of
|
||||
</Box>
|
||||
|
||||
<Box color={reagentToColor[liq_reagent_type]} inline>
|
||||
{liuq_name}
|
||||
</Box>
|
||||
</>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
|
||||
<Box color="yellow" inline>
|
||||
and you are
|
||||
@@ -1142,8 +1183,9 @@ const VoreSelectedMobTypeBellyButtons = (props, context) => {
|
||||
return (
|
||||
<Section title={'Cyborg Controls'} width={'80%'}>
|
||||
<span style={{ color: 'red' }}>
|
||||
Your module does either not support vore sprites or you've selected
|
||||
a belly sprite other than the sleeper within the Visuals section.
|
||||
Your module does either not support vore sprites or you've
|
||||
selected a belly sprite other than the sleeper within the Visuals
|
||||
section.
|
||||
</span>
|
||||
</Section>
|
||||
);
|
||||
@@ -2087,6 +2129,7 @@ const VoreSelectedBellyLiquidOptions = (props, context) => {
|
||||
})
|
||||
}
|
||||
icon="pen"
|
||||
color={reagentToColor[liq_interacts.liq_reagent_type]}
|
||||
content={liq_interacts.liq_reagent_type}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
@@ -2476,37 +2519,47 @@ const VoreUserPreferences = (props, context) => {
|
||||
|
||||
const {
|
||||
digestable,
|
||||
devourable,
|
||||
resizable,
|
||||
feeding,
|
||||
absorbable,
|
||||
digest_leave_remains,
|
||||
devourable,
|
||||
allowmobvore,
|
||||
feeding,
|
||||
permit_healbelly,
|
||||
show_vore_fx,
|
||||
can_be_drop_prey,
|
||||
can_be_drop_pred,
|
||||
drop_vore,
|
||||
slip_vore,
|
||||
stumble_vore,
|
||||
throw_vore,
|
||||
phase_vore,
|
||||
food_vore,
|
||||
latejoin_vore,
|
||||
latejoin_prey,
|
||||
allow_spontaneous_tf,
|
||||
step_mechanics_active,
|
||||
pickup_mechanics_active,
|
||||
noisy,
|
||||
noisy_full,
|
||||
resizable,
|
||||
step_mechanics_active,
|
||||
show_vore_fx,
|
||||
digest_leave_remains,
|
||||
pickup_mechanics_active,
|
||||
allow_spontaneous_tf,
|
||||
eating_privacy_global,
|
||||
strip_mechanics_active,
|
||||
autotransferable,
|
||||
liq_rec,
|
||||
liq_giv,
|
||||
autotransferable,
|
||||
drop_vore,
|
||||
stumble_vore,
|
||||
slip_vore,
|
||||
throw_vore,
|
||||
food_vore,
|
||||
liq_apply,
|
||||
no_spawnpred_warning,
|
||||
no_spawnprey_warning,
|
||||
no_spawnpred_warning_time,
|
||||
no_spawnprey_warning_time,
|
||||
no_spawnpred_warning_save,
|
||||
no_spawnprey_warning_save,
|
||||
nutrition_message_visible,
|
||||
weight_message_visible,
|
||||
eating_privacy_global,
|
||||
selective_active,
|
||||
} = data.prefs;
|
||||
|
||||
const { show_pictures } = data;
|
||||
const { show_pictures, overflow } = data;
|
||||
|
||||
const [tabIndex, setTabIndex] = useLocalState(context, 'tabIndex', 0);
|
||||
|
||||
@@ -2540,6 +2593,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
devour: {
|
||||
action: 'toggle_devour',
|
||||
test: devourable,
|
||||
fluid: false,
|
||||
tooltip: {
|
||||
main: 'This button is to toggle your ability to be devoured by others.',
|
||||
enable: 'Click here to allow being devoured.',
|
||||
@@ -2580,9 +2634,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
action: 'toggle_healbelly',
|
||||
test: permit_healbelly,
|
||||
tooltip: {
|
||||
main:
|
||||
"This button is for those who don't like healbelly used on them as a mechanic." +
|
||||
' It does not affect anything, but is displayed under mechanical prefs for ease of quick checks.',
|
||||
main: "This button is for those who don't like healbelly used on them as a mechanic.",
|
||||
enable: 'Click here to allow being heal-bellied.',
|
||||
disable: 'Click here to prevent being heal-bellied.',
|
||||
},
|
||||
@@ -2594,6 +2646,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
dropnom_prey: {
|
||||
action: 'toggle_dropnom_prey',
|
||||
test: can_be_drop_prey,
|
||||
fluid: false,
|
||||
tooltip: {
|
||||
main:
|
||||
'This toggle is for spontaneous, environment related vore' +
|
||||
@@ -2609,6 +2662,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
dropnom_pred: {
|
||||
action: 'toggle_dropnom_pred',
|
||||
test: can_be_drop_pred,
|
||||
fluid: false,
|
||||
tooltip: {
|
||||
main:
|
||||
'This toggle is for spontaneous, environment related vore' +
|
||||
@@ -2681,6 +2735,21 @@ const VoreUserPreferences = (props, context) => {
|
||||
disabled: 'Throw Vore Disabled',
|
||||
},
|
||||
},
|
||||
toggle_phase_vore: {
|
||||
action: 'toggle_phase_vore',
|
||||
test: phase_vore,
|
||||
tooltip: {
|
||||
main:
|
||||
'Allows for phasing related spontaneous vore to occur. ' +
|
||||
' Note, you still need spontaneous vore pred and/or prey enabled.',
|
||||
enable: 'Click here to allow for phase vore.',
|
||||
disable: 'Click here to disable phase vore.',
|
||||
},
|
||||
content: {
|
||||
enabled: 'Phase Vore Enabled',
|
||||
disabled: 'Phase Vore Disabled',
|
||||
},
|
||||
},
|
||||
toggle_food_vore: {
|
||||
action: 'toggle_food_vore',
|
||||
test: food_vore,
|
||||
@@ -2699,6 +2768,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
spawnbelly: {
|
||||
action: 'toggle_latejoin_vore',
|
||||
test: latejoin_vore,
|
||||
fluid: false,
|
||||
tooltip: {
|
||||
main: 'Toggle late join vore spawnpoint.',
|
||||
enable: 'Click here to turn on vorish spawnpoint.',
|
||||
@@ -2712,6 +2782,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
spawnprey: {
|
||||
action: 'toggle_latejoin_prey',
|
||||
test: latejoin_prey,
|
||||
fluid: false,
|
||||
tooltip: {
|
||||
main: 'Toggle late join preds spawning on you.',
|
||||
enable: 'Click here to turn on preds spawning around you.',
|
||||
@@ -2870,6 +2941,23 @@ const VoreUserPreferences = (props, context) => {
|
||||
disabled: 'Examine Weight Messages Inactive',
|
||||
},
|
||||
},
|
||||
strippref: {
|
||||
action: 'toggle_strippref',
|
||||
test: strip_mechanics_active,
|
||||
tooltip: {
|
||||
main: '',
|
||||
enable:
|
||||
'Regardless of Predator Setting, you will not be stripped inside their bellies.' +
|
||||
' Click this to allow stripping.',
|
||||
disable:
|
||||
'Your Predator must have this setting enabled in their belly modes to allow stripping your gear,' +
|
||||
' if they do not, they will not strip your gear, even with this on. Click to disable stripping.',
|
||||
},
|
||||
content: {
|
||||
enabled: 'Allow Worn Item Stripping',
|
||||
disabled: 'Do Not Allow Worn Item Stripping',
|
||||
},
|
||||
},
|
||||
eating_privacy_global: {
|
||||
action: 'toggle_global_privacy',
|
||||
test: eating_privacy_global,
|
||||
@@ -2886,6 +2974,19 @@ const VoreUserPreferences = (props, context) => {
|
||||
disabled: 'Global Vore Privacy: Loud',
|
||||
},
|
||||
},
|
||||
autotransferable: {
|
||||
action: 'toggle_autotransferable',
|
||||
test: autotransferable,
|
||||
tooltip: {
|
||||
main: 'This button is for allowing or preventing belly auto-transfer mechanics from moving you.',
|
||||
enable: 'Click here to allow autotransfer.',
|
||||
disable: 'Click here to prevent autotransfer.',
|
||||
},
|
||||
content: {
|
||||
enabled: 'Auto-Transfer Allowed',
|
||||
disabled: 'Do Not Allow Auto-Transfer',
|
||||
},
|
||||
},
|
||||
liquid_receive: {
|
||||
action: 'toggle_liq_rec',
|
||||
test: liq_rec,
|
||||
@@ -2912,143 +3013,399 @@ const VoreUserPreferences = (props, context) => {
|
||||
disabled: 'Do Not Allow Taking Liquids',
|
||||
},
|
||||
},
|
||||
autotransferable: {
|
||||
action: 'toggle_autotransferable',
|
||||
test: autotransferable,
|
||||
liquid_apply: {
|
||||
action: 'toggle_liq_apply',
|
||||
test: liq_apply,
|
||||
tooltip: {
|
||||
main: 'This button is for allowing or preventing belly auto-transfer mechanics from moving you.',
|
||||
enable: 'Click here to allow autotransfer.',
|
||||
disable: 'Click here to prevent autotransfer.',
|
||||
main: 'This button is for allowing or preventing vorgans from applying liquids to you.',
|
||||
enable: 'Click here to allow the application of liquids.',
|
||||
disable: 'Click here to prevent the application of liquids.',
|
||||
},
|
||||
content: {
|
||||
enabled: 'Auto-Transfer Allowed',
|
||||
disabled: 'Do Not Allow Auto-Transfer',
|
||||
enabled: 'Applying Liquids Allowed',
|
||||
disabled: 'Do Not Allow Applying Liquids',
|
||||
},
|
||||
},
|
||||
no_spawnpred_warning: {
|
||||
action: 'toggle_no_latejoin_vore_warning',
|
||||
test: no_spawnpred_warning,
|
||||
tooltip: {
|
||||
main:
|
||||
'This button is to disable the vore spawnpoint confirmations ' +
|
||||
(no_spawnpred_warning_save
|
||||
? '(round persistent).'
|
||||
: '(no round persistence).'),
|
||||
enable:
|
||||
'Click here to auto accept spawnpoint confirmations after ' +
|
||||
String(no_spawnpred_warning_time) +
|
||||
' seconds.',
|
||||
disable:
|
||||
'Click here to no longer auto accept spawnpoint confirmations after ' +
|
||||
String(no_spawnpred_warning_time) +
|
||||
' seconds.',
|
||||
},
|
||||
back_color: {
|
||||
enabled: no_spawnpred_warning_save ? 'green' : '#8B8000',
|
||||
disabled: '',
|
||||
},
|
||||
content: {
|
||||
enabled: 'Vore Spawn Pred Auto Accept Enabled',
|
||||
disabled: 'Vore Spawn Pred Auto Accept Disabled',
|
||||
},
|
||||
},
|
||||
no_spawnprey_warning: {
|
||||
action: 'toggle_no_latejoin_prey_warning',
|
||||
test: no_spawnprey_warning,
|
||||
tooltip: {
|
||||
main:
|
||||
'This button is to disable the pred spawning on you confirmations ' +
|
||||
(no_spawnprey_warning_save
|
||||
? '(round persistent).'
|
||||
: '(no round persistence).'),
|
||||
enable:
|
||||
'Click here to auto accept pred spawn confirmations after ' +
|
||||
String(no_spawnprey_warning_time) +
|
||||
' seconds.',
|
||||
disable:
|
||||
'Click here to no longer auto accept pred spawn confirmations after ' +
|
||||
String(no_spawnprey_warning_time) +
|
||||
' seconds.',
|
||||
},
|
||||
back_color: {
|
||||
enabled: no_spawnprey_warning_save ? 'green' : '#8B8000',
|
||||
disabled: '',
|
||||
},
|
||||
content: {
|
||||
enabled: 'Vore Spawn Prey Auto Accept Enabled',
|
||||
disabled: 'Vore Spawn Prey Auto Accept Disabled',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<Section
|
||||
title="Mechanical Preferences"
|
||||
buttons={
|
||||
<Button
|
||||
icon="eye"
|
||||
selected={show_pictures}
|
||||
onClick={() => act('show_pictures')}>
|
||||
Contents Preference: {show_pictures ? 'Show Pictures' : 'Show List'}
|
||||
</Button>
|
||||
}>
|
||||
<Flex spacing={1} wrap="wrap" justify="center">
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.digestion} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.absorbable} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.devour} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.mobvore} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.feed} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.healbelly}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.dropnom_prey} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.dropnom_pred} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.toggle_drop_vore} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.toggle_slip_vore} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.toggle_stumble_vore} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.toggle_throw_vore} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.toggle_food_vore} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.spawnbelly} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.spawnprey} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.noisy} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.noisy_full} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.resize} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.steppref}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.vore_fx}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.remains}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.pickuppref}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.spontaneous_tf} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<Box nowrap>
|
||||
<Section
|
||||
title="Mechanical Preferences"
|
||||
buttons={
|
||||
<Button
|
||||
fluid
|
||||
content="Selective Mode Preference"
|
||||
onClick={() => act('switch_selective_mode_pref')}
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem spec={preferences.eating_privacy_global} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<VoreUserPreferenceItem spec={preferences.autotransferable} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.liquid_receive}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.liquid_give}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
</Flex>
|
||||
icon="eye"
|
||||
selected={show_pictures}
|
||||
tooltip={
|
||||
'Allows to toggle if belly contents are shown as icons or in list format. ' +
|
||||
(show_pictures
|
||||
? 'Contents shown as pictures.'
|
||||
: 'Contents shown as lists.') +
|
||||
(show_pictures && overflow
|
||||
? 'Temporarily disabled. Stomach contents above limits.'
|
||||
: '')
|
||||
}
|
||||
backgroundColor={show_pictures && overflow ? 'orange' : ''}
|
||||
onClick={() => act('show_pictures')}>
|
||||
Contents Preference: {show_pictures ? 'Show Pictures' : 'Show List'}
|
||||
</Button>
|
||||
}>
|
||||
<Flex spacing={1} wrap="wrap" justify="center">
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.steppref}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.pickuppref}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.resize}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.feed}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.liquid_receive}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.liquid_give}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.noisy}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.noisy_full}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.eating_privacy_global}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.vore_fx}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.spontaneous_tf}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
</Flex>
|
||||
</Section>
|
||||
<Section
|
||||
title="Devouring Preferences"
|
||||
buttons={
|
||||
<Box nowrap>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.devour}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Box>
|
||||
}>
|
||||
{devourable ? (
|
||||
<Flex spacing={1} wrap="wrap" justify="center">
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.healbelly}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.digestion}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.absorbable}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<Button
|
||||
fluid
|
||||
content={
|
||||
'Selective Mode Preference: ' + capitalize(selective_active)
|
||||
}
|
||||
backgroundColor={digestModeToColor[selective_active]}
|
||||
tooltip="Allows to set the personal belly mode preference for selective bellies."
|
||||
tooltipPosition="right"
|
||||
onClick={() => act('switch_selective_mode_pref')}
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.mobvore}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.autotransferable}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.strippref}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.liquid_apply}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.remains}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
</Flex>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</Section>
|
||||
<Section
|
||||
title="Spontaneous Preferences"
|
||||
buttons={
|
||||
<Box nowrap>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.dropnom_prey}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.dropnom_pred}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Box>
|
||||
}>
|
||||
{can_be_drop_prey || can_be_drop_pred ? (
|
||||
<Flex spacing={1} wrap="wrap" justify="center">
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.toggle_drop_vore}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.toggle_slip_vore}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.toggle_stumble_vore}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.toggle_throw_vore}
|
||||
tooltipPosition="right"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%" grow={1}>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.toggle_food_vore}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.toggle_phase_vore}
|
||||
tooltipPosition="left"
|
||||
/>
|
||||
</Flex.Item>
|
||||
</Flex>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</Section>
|
||||
<Section
|
||||
title="Spawn Preferences"
|
||||
buttons={
|
||||
<Box nowrap>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.spawnbelly}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.spawnprey}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Box>
|
||||
}>
|
||||
<Flex spacing={1} wrap="wrap" justify="center">
|
||||
{latejoin_vore ? (
|
||||
<>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.no_spawnpred_warning}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="12%">
|
||||
<NumberInput
|
||||
fluid
|
||||
value={no_spawnpred_warning_time}
|
||||
minValue={0}
|
||||
maxValue={30}
|
||||
unit="s"
|
||||
step={5}
|
||||
stepPixelSize={20}
|
||||
onChange={(e, value) =>
|
||||
act('adjust_no_latejoin_vore_warning_time', {
|
||||
new_pred_time: value,
|
||||
})
|
||||
}>
|
||||
T
|
||||
</NumberInput>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="5%">
|
||||
<Button
|
||||
fluid
|
||||
content={'P'}
|
||||
backgroundColor={no_spawnpred_warning_save ? 'green' : ''}
|
||||
tooltip="Toggles vore spawnpoint auto accept persistency."
|
||||
tooltipPosition="top"
|
||||
onClick={() =>
|
||||
act('toggle_no_latejoin_vore_warning_persists')
|
||||
}
|
||||
/>
|
||||
</Flex.Item>
|
||||
</>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
{latejoin_prey ? (
|
||||
<>
|
||||
<Flex.Item basis="33%">
|
||||
<VoreUserPreferenceItem
|
||||
spec={preferences.no_spawnprey_warning}
|
||||
tooltipPosition="top"
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="12%">
|
||||
<NumberInput
|
||||
fluid
|
||||
value={no_spawnprey_warning_time}
|
||||
minValue={0}
|
||||
maxValue={30}
|
||||
unit="s"
|
||||
step={5}
|
||||
stepPixelSize={20}
|
||||
onChange={(e, value) =>
|
||||
act('adjust_no_latejoin_prey_warning_time', {
|
||||
new_prey_time: value,
|
||||
})
|
||||
}>
|
||||
T
|
||||
</NumberInput>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="5%">
|
||||
<Button
|
||||
fluid
|
||||
content={'P'}
|
||||
backgroundColor={no_spawnprey_warning_save ? 'green' : ''}
|
||||
tooltip="Toggles preyspawn auto accept persistency."
|
||||
tooltipPosition="top"
|
||||
onClick={() =>
|
||||
act('toggle_no_latejoin_prey_warning_persists')
|
||||
}
|
||||
/>
|
||||
</Flex.Item>
|
||||
</>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</Flex>
|
||||
</Section>
|
||||
<Section title="Aesthetic Preferences">
|
||||
<Flex spacing={1} wrap="wrap" justify="center">
|
||||
<Flex.Item basis="50%" grow={1}>
|
||||
@@ -3105,7 +3462,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
<Divider />
|
||||
<Section>
|
||||
<Flex spacing={1}>
|
||||
<Flex.Item basis="49%">
|
||||
<Flex.Item basis="50%">
|
||||
<Button
|
||||
fluid
|
||||
content="Save Prefs"
|
||||
@@ -3113,7 +3470,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
onClick={() => act('saveprefs')}
|
||||
/>
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="49%" grow={1}>
|
||||
<Flex.Item basis="50%" grow={1}>
|
||||
<Button
|
||||
fluid
|
||||
content="Reload Prefs"
|
||||
@@ -3123,7 +3480,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
</Flex.Item>
|
||||
</Flex>
|
||||
</Section>
|
||||
</Section>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -3131,14 +3488,17 @@ const VoreUserPreferenceItem = (props, context) => {
|
||||
const { act } = useBackend(context);
|
||||
|
||||
const { spec, ...rest } = props;
|
||||
const { action, test, tooltip, content } = spec;
|
||||
const { action, test, tooltip, content, fluid = true, back_color } = spec;
|
||||
|
||||
return (
|
||||
<Button
|
||||
onClick={() => act(action)}
|
||||
icon={test ? 'toggle-on' : 'toggle-off'}
|
||||
selected={test}
|
||||
fluid
|
||||
fluid={fluid}
|
||||
backgroundColor={
|
||||
back_color ? (test ? back_color.enabled : back_color.disabled) : ''
|
||||
}
|
||||
tooltip={tooltip.main + ' ' + (test ? tooltip.disable : tooltip.enable)}
|
||||
content={test ? content.enabled : content.disabled}
|
||||
{...rest}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user