mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-24 05:28:16 +01:00
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 |
@@ -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
|
||||
|
||||
-1
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 })}
|
||||
/>
|
||||
|
||||
@@ -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">';
|
||||
|
||||
+78
-78
File diff suppressed because one or more lines are too long
+1
-1
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user