Merge pull request #16022 from VOREStation/master

6/2/24 - Map swap
This commit is contained in:
Casey
2024-06-02 16:45:40 -04:00
committed by GitHub
21 changed files with 737 additions and 465 deletions
+1 -1
View File
@@ -135,7 +135,7 @@
for(var/i in 1 to LAZYLEN(L))
real_new_time += text2num(L[i]) * (60 ** (LAZYLEN(L) - i))
else
real_new_time = text2num(new_time * 10)
real_new_time = text2num(new_time)
time = clamp(real_new_time, 0, 600)
return TRUE
if("range")
+1 -1
View File
@@ -94,6 +94,6 @@
for(var/i in 1 to LAZYLEN(L))
real_new_time += text2num(L[i]) * (60 ** (LAZYLEN(L) - i))
else
real_new_time = text2num(new_time * 10)
real_new_time = text2num(new_time)
time = clamp(real_new_time, 0, 600)
return TRUE
@@ -65,7 +65,7 @@
set_trait(TRAIT_MATURATION,7)
set_trait(TRAIT_PRODUCTION,5)
set_trait(TRAIT_YIELD,5)
set_trait(TRAIT_PRODUCT_ICON,"flower6")
set_trait(TRAIT_PRODUCT_ICON,"lavender")
set_trait(TRAIT_PRODUCT_COLOUR,"#B57EDC")
set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
set_trait(TRAIT_PLANT_ICON,"flower4")
@@ -105,4 +105,4 @@
..()
set_trait(TRAIT_IDEAL_LIGHT, 1)
set_trait(TRAIT_PLANT_COLOUR,"#5e0303")
set_trait(TRAIT_CARNIVOROUS,1)
set_trait(TRAIT_CARNIVOROUS,1)
-10
View File
@@ -393,16 +393,6 @@
return method ? ">250" : "extremely weak and fast, patient's artery feels like a thread"
// output for machines^ ^^^^^^^output for people^^^^^^^^^
/mob/living/carbon/verb/mob_sleep()
set name = "Sleep"
set category = "IC"
if(usr.sleeping)
to_chat(usr, span_red("You are already sleeping"))
return
if(tgui_alert(src,"You sure you want to sleep for a while?","Sleep",list("Yes","No")) == "Yes")
usr.AdjustSleeping(20)
/mob/living/carbon/Bump(atom/A)
if(now_pushing)
return
+1 -2
View File
@@ -1261,8 +1261,7 @@
if (mind)
//Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of stoxin or similar.
if(client || sleeping > 3)
AdjustSleeping(-1)
throw_alert("asleep", /obj/screen/alert/asleep)
handle_sleeping()
if( prob(2) && health && !hal_crit && client )
spawn(0)
emote("snore")
+10
View File
@@ -293,3 +293,13 @@
//to_world("[src] in B:[round(brightness,0.1)] C:[round(current,0.1)] A2:[round(adjust_to,0.1)] D:[round(distance,0.01)] T:[round(distance*10 SECONDS,0.1)]")
animate(dsoverlay, alpha = (adjust_to*255), time = (distance*10 SECONDS))
/mob/living/proc/handle_sleeping()
if(stat != DEAD && toggled_sleeping)
Sleeping(2)
if(sleeping)
AdjustSleeping(-1)
throw_alert("asleep", /obj/screen/alert/asleep)
else
clear_alert("asleep")
return sleeping
+13
View File
@@ -1327,3 +1327,16 @@
. = ..()
if(size_multiplier != 1 || icon_scale_x != DEFAULT_ICON_SCALE_X && center_offset > 0)
update_transform(TRUE)
/mob/living
var/toggled_sleeping = FALSE
/mob/living/verb/mob_sleep()
set name = "Sleep"
set category = "IC"
if(!toggled_sleeping && alert(src, "Are you sure you wish to go to sleep? You will snooze until you use the Sleep verb again.", "Sleepy Time", "No", "Yes") == "No")
return
toggled_sleeping = !toggled_sleeping
to_chat(src, SPAN_NOTICE("You are [toggled_sleeping ? "now sleeping. Use the Sleep verb again to wake up" : "no longer sleeping"]."))
if(toggled_sleeping)
Sleeping(1)
@@ -15,7 +15,7 @@
if(M.eye_blurry)
M.eye_blurry = max(M.eye_blurry - 25*removed, 0)
if(M.jitteriness)
M.make_jittery(max(M.jitteriness - 25*removed,0))
M.make_jittery(min(-25*removed,0))
/datum/reagent/numbing_enzyme
name = "Numbing Enzyme"
+3
View File
@@ -11,6 +11,7 @@
/obj/belly
name = "belly" // Name of this location
desc = "It's a belly! You're in it!" // Flavor text description of inside sight/sound/smells/feels.
var/message_mode = FALSE // If all options for messages are shown
var/vore_sound = "Gulp" // Sound when ingesting someone
var/vore_verb = "ingest" // Verb for eating with this in messages
var/release_verb = "expels" // Verb for releasing something from a stomach
@@ -252,6 +253,7 @@
"name",
"desc",
"absorbed_desc",
"message_mode",
"vore_sound",
"vore_verb",
"release_verb",
@@ -1702,6 +1704,7 @@
//// Non-object variables
dupe.name = name
dupe.desc = desc
dupe.message_mode = message_mode
dupe.absorbed_desc = absorbed_desc
dupe.vore_sound = vore_sound
dupe.vore_verb = vore_verb
@@ -51,6 +51,7 @@
addons.Add(flag_name)
belly_data["addons"] = addons
belly_data["item_mode"] = B.item_digest_mode
belly_data["message_mode"] = B.message_mode
// Messages
belly_data["struggle_messages_outside"] = list()
+4
View File
@@ -186,6 +186,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
var/obj/belly/selected = host.vore_selected
selected_list = list(
"belly_name" = selected.name,
"message_mode" = selected.message_mode,
"is_wet" = selected.is_wet,
"wet_loop" = selected.wet_loop,
"mode" = selected.digest_mode,
@@ -949,6 +950,9 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
host.vore_selected.name = new_name
. = TRUE
if("b_message_mode")
host.vore_selected.message_mode = !host.vore_selected.message_mode
. = TRUE
if("b_wetness")
host.vore_selected.is_wet = !host.vore_selected.is_wet
. = TRUE
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

+43 -23
View File
@@ -1310,11 +1310,14 @@
/turf/simulated/floor/tiled,
/area/medical/medbay)
"cP" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/item/stack/material/phoron,
/obj/structure/table/reinforced,
/turf/simulated/floor/tiled,
/area/medical/medbay)
/area/bridge)
"cQ" = (
/obj/machinery/alarm{
pixel_y = 22
@@ -1415,17 +1418,16 @@
/turf/simulated/floor/tiled,
/area/medical/medbay)
"df" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
/obj/machinery/light{
dir = 1
},
/obj/structure/table/reinforced,
/obj/item/weapon/reagent_containers/glass/beaker/large,
/obj/item/weapon/reagent_containers/glass/beaker/large,
/obj/item/weapon/reagent_containers/glass/beaker/large,
/obj/item/weapon/reagent_containers/dropper,
/turf/simulated/floor/tiled,
/area/medical/medbay)
/area/bridge)
"dg" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -2740,6 +2742,8 @@
layer = 3.3;
pixel_y = 32
},
/obj/machinery/chemical_dispenser/full,
/obj/structure/table/reinforced,
/turf/simulated/floor/tiled,
/area/bridge)
"gj" = (
@@ -2751,6 +2755,8 @@
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/table/reinforced,
/obj/machinery/reagentgrinder,
/turf/simulated/floor/tiled,
/area/bridge)
"gk" = (
@@ -3603,6 +3609,12 @@
},
/turf/simulated/floor/tiled/techmaint,
/area/engineering/engine_monitoring)
"ni" = (
/obj/structure/table/reinforced,
/obj/item/weapon/storage/box/syringes,
/obj/item/weapon/reagent_containers/dropper,
/turf/simulated/floor/tiled,
/area/bridge)
"nk" = (
/obj/structure/cable/cyan{
icon_state = "4-8"
@@ -5276,6 +5288,12 @@
},
/turf/simulated/floor/tiled/dark,
/area/engineering/engine_room)
"Fg" = (
/obj/structure/bed/chair/office/light{
dir = 1
},
/turf/simulated/floor/tiled,
/area/bridge)
"FA" = (
/obj/machinery/atmospherics/unary/heat_exchanger{
dir = 8
@@ -5367,6 +5385,8 @@
/area/space)
"GC" = (
/obj/machinery/camera/network/civilian,
/obj/machinery/chemical_dispenser/biochemistry/full,
/obj/structure/table/reinforced,
/turf/simulated/floor/tiled,
/area/bridge)
"GM" = (
@@ -8723,7 +8743,7 @@ gY
aa
aa
fY
gf
cP
gf
gf
gf
@@ -8825,7 +8845,7 @@ gY
aa
aa
fY
gh
df
gf
gq
gf
@@ -8928,7 +8948,7 @@ aa
aa
fY
gi
gf
Fg
gr
gf
gf
@@ -9132,7 +9152,7 @@ aa
aa
fY
gj
gf
ni
gr
gf
gf
@@ -10736,7 +10756,7 @@ cO
de
dr
dF
cP
et
eb
du
cM
@@ -10832,10 +10852,10 @@ cz
cA
cc
cH
cP
cP
cP
df
et
et
et
eA
ds
du
cM
@@ -11451,7 +11471,7 @@ dh
cM
dG
dF
cP
et
en
cM
cM
Submodule tgstation deleted from ccf136aa07
@@ -28,9 +28,9 @@ export const AssemblyProx = (props) => {
<NumberInput
animated
fluid
value={time / 10}
value={time}
minValue={0}
maxValue={60}
maxValue={600}
format={(val) => formatTime(round(val * 10))}
onDrag={(e, val) => act('set_time', { time: val })}
/>
@@ -28,9 +28,9 @@ export const AssemblyTimer = (props) => {
<NumberInput
animated
fluid
value={time / 10}
value={time}
minValue={0}
maxValue={60}
maxValue={600}
format={(val) => formatTime(round(val * 10))}
onDrag={(e, val) => act('set_time', { time: val })}
/>
+571 -341
View File
@@ -333,7 +333,16 @@ const VoreSelectedBellyDescriptions = (props) => {
const { act } = useBackend();
const { belly } = props;
const { verb, release_verb, desc, absorbed_desc } = belly;
const {
verb,
release_verb,
desc,
absorbed_desc,
mode,
message_mode,
escapable,
interacts,
} = belly;
return (
<LabeledList>
@@ -373,6 +382,19 @@ const VoreSelectedBellyDescriptions = (props) => {
{release_verb}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Show All Messages">
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_message_mode',
})
}
icon={message_mode ? 'toggle-on' : 'toggle-off'}
selected={message_mode}
>
{message_mode ? 'True' : 'False'}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Examine Messages">
<Button
onClick={() =>
@@ -389,346 +411,47 @@ const VoreSelectedBellyDescriptions = (props) => {
Examine Message (with absorbed victims)
</Button>
</LabeledList.Item>
<LabeledList.Item label="Struggle Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'smo' })
}
>
Struggle Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'smi' })
}
>
Struggle Message (inside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'asmo' })
}
>
Absorbed Struggle Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'asmi' })
}
>
Absorbed Struggle Message (inside)
</Button>
</LabeledList.Item>
<LabeledList.Item label="Escape Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escap' })
}
>
Escape Attempt Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escao' })
}
>
Escape Attempt Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escp' })
}
>
Escape Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'esco' })
}
>
Escape Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escout' })
}
>
Escape Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escip' })
}
>
Escape Item Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escio' })
}
>
Escape Item Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'esciout' })
}
>
Escape Item Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escfp' })
}
>
Escape Fail Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escfo' })
}
>
Escape Fail Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescap' })
}
>
Absorbed Escape Attempt Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescao' })
}
>
Absorbed Escape Attempt Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescp' })
}
>
Absorbed Escape Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aesco' })
}
>
Absorbed Escape Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescout' })
}
>
Absorbed Escape Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescfp' })
}
>
Absorbed Escape Fail Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescfo' })
}
>
Absorbed Escape Fail Message (to you)
</Button>
</LabeledList.Item>
<LabeledList.Item label="Transfer Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'trnspp' })
}
>
Primary Transfer Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'trnspo' })
}
>
Primary Transfer Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'trnssp' })
}
>
Secondary Transfer Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'trnsso' })
}
>
Secondary Transfer Message (to you)
</Button>
</LabeledList.Item>
<LabeledList.Item label="Interaction Chance Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'stmodp' })
}
>
Interaction Chance Digest Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'stmodo' })
}
>
Interaction Chance Digest Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'stmoap' })
}
>
Interaction Chance Absorb Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'stmoao' })
}
>
Interaction Chance Absorb Message (to you)
</Button>
</LabeledList.Item>
<LabeledList.Item label="Bellymode Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'dmp' })
}
>
Digest Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'dmo' })
}
>
Digest Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'amp' })
}
>
Absorb Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'amo' })
}
>
Absorb Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'uamp' })
}
>
Unabsorb Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'uamo' })
}
>
Unabsorb Message (to you)
</Button>
</LabeledList.Item>
<LabeledList.Item label="Idle Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_hold' })
}
>
Idle Messages (Hold)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_holdabsorbed',
})
}
>
Idle Messages (Hold Absorbed)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_digest' })
}
>
Idle Messages (Digest)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_absorb' })
}
>
Idle Messages (Absorb)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_unabsorb',
})
}
>
Idle Messages (Unabsorb)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_drain' })
}
>
Idle Messages (Drain)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_heal' })
}
>
Idle Messages (Heal)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_steal' })
}
>
Idle Messages (Size Steal)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_shrink' })
}
>
Idle Messages (Shrink)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_grow' })
}
>
Idle Messages (Grow)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_egg' })
}
>
Idle Messages (Encase In Egg)
</Button>
</LabeledList.Item>
{message_mode || escapable ? (
<>
<VoreSelectedBellyDescriptionsStruggle />
<VoreSelectedBellyDescriptionsEscape
message_mode={message_mode}
interacts={interacts}
/>
{(message_mode ||
!!interacts.transferlocation ||
!!interacts.transferlocation_secondary) && (
<VoreSelectedBellyDescriptionsTransfer
message_mode={message_mode}
interacts={interacts}
/>
)}
{(message_mode ||
interacts.digestchance > 0 ||
interacts.absorbchance > 0) && (
<VoreSelectedBellyDescriptionsInteractionChance
message_mode={message_mode}
interacts={interacts}
/>
)}
</>
) : (
''
)}
{(message_mode ||
mode === 'Digest' ||
mode === 'Selective' ||
mode === 'Absorb' ||
mode === 'Unabsorb') && (
<VoreSelectedBellyDescriptionsBellymode
message_mode={message_mode}
mode={mode}
/>
)}
<VoreSelectedBellyDescriptionsIdle
message_mode={message_mode}
mode={mode}
/>
<LabeledList.Item label="Reset Messages">
<Button
color="red"
@@ -743,6 +466,513 @@ const VoreSelectedBellyDescriptions = (props) => {
);
};
const VoreSelectedBellyDescriptionsStruggle = (props) => {
const { act } = useBackend();
return (
<LabeledList.Item label="Struggle Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'smo' })
}
>
Struggle Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'smi' })
}
>
Struggle Message (inside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'asmo' })
}
>
Absorbed Struggle Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'asmi' })
}
>
Absorbed Struggle Message (inside)
</Button>
</LabeledList.Item>
);
};
const VoreSelectedBellyDescriptionsEscape = (props) => {
const { act } = useBackend();
const { message_mode, interacts } = props;
return (
<LabeledList.Item label="Escape Messages">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escap' })
}
>
Escape Attempt Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escao' })
}
>
Escape Attempt Message (to you)
</Button>
{(message_mode || interacts.escapechance > 0) && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'escp',
})
}
>
Escape Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'esco',
})
}
>
Escape Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'escout',
})
}
>
Escape Message (outside)
</Button>
</>
)}
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escip' })
}
>
Escape Item Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escio' })
}
>
Escape Item Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'esciout',
})
}
>
Escape Item Message (outside)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escfp' })
}
>
Escape Fail Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'escfo' })
}
>
Escape Fail Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescap' })
}
>
Absorbed Escape Attempt Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescao' })
}
>
Absorbed Escape Attempt Message (to you)
</Button>
{(message_mode || interacts.escapechance_absorbed > 0) && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'aescp',
})
}
>
Absorbed Escape Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'aesco',
})
}
>
Absorbed Escape Message (to you)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'aescout',
})
}
>
Absorbed Escape Message (outside)
</Button>
</>
)}
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescfp' })
}
>
Absorbed Escape Fail Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'aescfo' })
}
>
Absorbed Escape Fail Message (to you)
</Button>
</LabeledList.Item>
);
};
const VoreSelectedBellyDescriptionsTransfer = (props) => {
const { act } = useBackend();
const { message_mode, interacts } = props;
return (
<LabeledList.Item label="Transfer Messages">
{(message_mode || !!interacts.transferlocation) && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'trnspp',
})
}
>
Primary Transfer Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'trnspo',
})
}
>
Primary Transfer Message (to you)
</Button>
</>
)}
{(message_mode || !!interacts.transferlocation_secondary) && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'trnssp',
})
}
>
Secondary Transfer Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'trnsso',
})
}
>
Secondary Transfer Message (to you)
</Button>
</>
)}
</LabeledList.Item>
);
};
const VoreSelectedBellyDescriptionsInteractionChance = (props) => {
const { act } = useBackend();
const { message_mode, interacts } = props;
return (
<LabeledList.Item label="Interaction Chance Messages">
{(message_mode || interacts.digestchance > 0) && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'stmodp',
})
}
>
Interaction Chance Digest Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'stmodo',
})
}
>
Interaction Chance Digest Message (to you)
</Button>
</>
)}
{(message_mode || interacts.absorbchance > 0) && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'stmoap',
})
}
>
Interaction Chance Absorb Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'stmoao',
})
}
>
Interaction Chance Absorb Message (to you)
</Button>
</>
)}
</LabeledList.Item>
);
};
const VoreSelectedBellyDescriptionsBellymode = (props) => {
const { act } = useBackend();
const { message_mode, mode } = props;
return (
<LabeledList.Item label="Bellymode Messages">
{(message_mode || mode === 'Digest' || mode === 'Selective') && (
<>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'dmp' })
}
>
Digest Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'dmo' })
}
>
Digest Message (to you)
</Button>
</>
)}
{(message_mode || mode === 'Absorb' || mode === 'Selective') && (
<>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'amp' })
}
>
Absorb Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'amo' })
}
>
Absorb Message (to you)
</Button>
</>
)}
{(message_mode || mode === 'Unabsorb') && (
<>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'uamp' })
}
>
Unabsorb Message (to prey)
</Button>
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'uamo' })
}
>
Unabsorb Message (to you)
</Button>
</>
)}
</LabeledList.Item>
);
};
const VoreSelectedBellyDescriptionsIdle = (props) => {
const { act } = useBackend();
const { message_mode, mode } = props;
return (
<LabeledList.Item label="Idle Messages">
{(message_mode || mode === 'Hold' || mode === 'Selective') && (
<>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_hold',
})
}
>
Idle Messages (Hold)
</Button>
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_holdabsorbed',
})
}
>
Idle Messages (Hold Absorbed)
</Button>
</>
)}
{(message_mode || mode === 'Digest' || mode === 'Selective') && (
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_digest',
})
}
>
Idle Messages (Digest)
</Button>
)}
{(message_mode || mode === 'Absorb' || mode === 'Selective') && (
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_absorb',
})
}
>
Idle Messages (Absorb)
</Button>
)}
{(message_mode || mode === 'Unabsorb') && (
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_unabsorb',
})
}
>
Idle Messages (Unabsorb)
</Button>
)}
{(message_mode || mode === 'Drain' || mode === 'Selective') && (
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_drain' })
}
>
Idle Messages (Drain)
</Button>
)}
{(message_mode || mode === 'Heal') && (
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_heal' })
}
>
Idle Messages (Heal)
</Button>
)}
{(message_mode || mode === 'Size Steal') && (
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_steal' })
}
>
Idle Messages (Size Steal)
</Button>
)}
{(message_mode || mode === 'Shrink') && (
<Button
onClick={() =>
act('set_attribute', {
attribute: 'b_msgs',
msgtype: 'im_shrink',
})
}
>
Idle Messages (Shrink)
</Button>
)}
{(message_mode || mode === 'Grow') && (
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_grow' })
}
>
Idle Messages (Grow)
</Button>
)}
{(message_mode || mode === 'Encase In Egg') && (
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_msgs', msgtype: 'im_egg' })
}
>
Idle Messages (Encase In Egg)
</Button>
)}
</LabeledList.Item>
);
};
const VoreSelectedBellyOptions = (props) => {
const { act, data } = useBackend();
@@ -66,6 +66,7 @@ type Belly = {
// General Information
name: string;
desc: string;
message_mode: BooleanLike;
absorbed_desc: string;
vore_verb: string;
release_verb: string;
@@ -181,6 +182,7 @@ const generateBellyString = (belly: Belly, index: number) => {
// General Information
name,
desc,
message_mode,
absorbed_desc,
vore_verb,
release_verb,
@@ -324,6 +326,7 @@ const generateBellyString = (belly: Belly, index: number) => {
result += '<hr>';
result += '<b>== Messages ==</b><br>';
result +='Show All Interactive Messages: ' + (message_mode ? '<span style="color: green;">Yes' : '<span style="color: red;">No') + '</span><br>';
result += '<div role="messagesTabpanel">'; // Start Div messagesTabpanel
result += '<div class="row"><div class="col-4">';
result += '<div class="list-group" id="messagesList" role="messagesTablist">';
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -4298,7 +4298,7 @@
#include "maps\southern_cross\loadout\loadout_suit.dm"
#include "maps\southern_cross\loadout\loadout_uniform.dm"
#include "maps\southern_cross\loadout\loadout_vr.dm"
#include "maps\tether\tether.dm"
#include "maps\stellar_delight\stellar_delight.dm"
#include "maps\submaps\_helpers.dm"
#include "maps\submaps\_readme.dm"
#include "maps\submaps\admin_use_vr\event_autonomous_drone.dm"