Skip to content

Commit

Permalink
Vent shake, explicit panels
Browse files Browse the repository at this point in the history
  • Loading branch information
morrowwolf committed Nov 5, 2023
1 parent 38bd237 commit e2f1b40
Show file tree
Hide file tree
Showing 2 changed files with 120 additions and 61 deletions.
26 changes: 19 additions & 7 deletions code/modules/admin/game_master/game_master_submenu/vents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,28 +72,40 @@
if("set_xeno_spawns")
var/new_number = text2num(params["value"])
if(!new_number)
return
return TRUE

xeno_spawn_count = clamp(new_number, 1, 10)
return
return TRUE

if("set_selected_xeno")
selected_xeno = params["new_xeno"]
xeno_spawn_count = DEFAULT_XENO_AMOUNT_TO_SPAWN
return
return TRUE

if("ambush")
setup_ambush()
return
return TRUE

if("spawn")
handle_vent_spawn()
return
return TRUE

if("clear_ambush")
current_ambush = list()
ambush_info = initial(ambush_info)
return
return TRUE

if("shake_vent")
var/obj/structure/pipes/vents/referenced_vent = referenced_atom

if(!referenced_vent)
log_debug("A submenu for [referenced_atom] was not a /obj/structure/pipes/vents. Returning.")
return TRUE

referenced_vent.animate_ventcrawl()
playsound(referenced_vent, pick('sound/effects/alien_ventcrawl1.ogg', 'sound/effects/alien_ventcrawl2.ogg'), 40, 1)
addtimer(CALLBACK(referenced_vent, TYPE_PROC_REF(/obj/structure/pipes/vents, animate_ventcrawl_reset)), (0.5 SECONDS))
return TRUE

/// Callback for when one of our registered turfs has something move across it, tells the ambush to start if set up
/datum/game_master_submenu/vents/proc/ambush_turf_movement(turf/crossed_turf, atom/movable/entering_movable)
Expand Down Expand Up @@ -137,7 +149,7 @@
return

referenced_vent.animate_ventcrawl()
playsound(referenced_vent, pick('sound/effects/alien_ventcrawl1.ogg', 'sound/effects/alien_ventcrawl2.ogg'), 25, 1)
playsound(referenced_vent, pick('sound/effects/alien_ventcrawl1.ogg', 'sound/effects/alien_ventcrawl2.ogg'), 40, 1)
var/timer_increment = VENT_ESCAPE_INCREMENT_TIME
referenced_vent.visible_message(SPAN_NOTICE("Something begins climbing out of [referenced_vent]!"))

Expand Down
155 changes: 101 additions & 54 deletions tgui/packages/tgui/interfaces/GameMasterSubmenuVents.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
import { Stack, Dropdown, Button } from '../components';
import { Stack, Dropdown, Button, Section } from '../components';
import { Window } from '../layouts';

export const GameMasterSubmenuVents = (props, context) => {
Expand All @@ -8,61 +8,108 @@ export const GameMasterSubmenuVents = (props, context) => {
return (
<Window width={400} height={400}>
<Window.Content scrollable>
<Stack grow direction="column" vertical>
<Stack.Item>
<Stack grow>
<Stack.Item>
<Button.Input
minWidth={4}
minHeight={2}
content={data.xeno_spawn_count}
currentValue={data.xeno_spawn_count}
onCommit={(e, value) => {
act('set_xeno_spawns', { value });
}}
/>
</Stack.Item>
<Stack.Item grow>
<Dropdown
options={data.spawnable_xenos}
selected={data.selected_xeno}
onSelected={(new_xeno) => {
act('set_selected_xeno', { new_xeno });
}}
/>
</Stack.Item>
</Stack>
</Stack.Item>
<Stack.Item>
<Button
middle
content="Spawn Now"
onClick={() => {
act('spawn');
}}
/>
</Stack.Item>
<Stack.Item>
<Button
middle
content="Set Ambush"
onClick={() => {
act('ambush');
}}
/>
</Stack.Item>
<Stack.Item>
<Button
middle
content="Clear Ambush"
onClick={() => {
act('clear_ambush');
}}
/>
</Stack.Item>
<Stack.Item>{data.ambush_info}</Stack.Item>
<Stack direction="column" vertical>
<GameMasterSubmenuVentsSpawningPanel />

<GameMasterSubmenuVentsAmbushPanel />

<GameMasterSubmenuVentsMiscPanel />
</Stack>
</Window.Content>
</Window>
);
};

export const GameMasterSubmenuVentsSpawningPanel = (props, context) => {
const { data, act } = useBackend(context);

return (
<Section title="Spawning">
<Stack direction="column" vertical>
<Stack.Item>
<Stack>
<Stack.Item>
<Button.Input
minWidth={2}
minHeight={1.75}
content={data.xeno_spawn_count}
currentValue={data.xeno_spawn_count}
onCommit={(e, value) => {
act('set_xeno_spawns', { value });
}}
/>
</Stack.Item>
<Stack.Item>
<Dropdown
options={data.spawnable_xenos}
selected={data.selected_xeno}
onSelected={(new_xeno) => {
act('set_selected_xeno', { new_xeno });
}}
/>
</Stack.Item>
</Stack>
</Stack.Item>
<Stack.Item>
<Button
middle
content="Spawn Now"
onClick={() => {
act('spawn');
}}
/>
</Stack.Item>
</Stack>
</Section>
);
};

export const GameMasterSubmenuVentsAmbushPanel = (props, context) => {
const { data, act } = useBackend(context);

return (
<Section title="Ambush">
<Stack direction="column" vertical>
<Stack.Item>
<Button
middle
content="Set Ambush"
onClick={() => {
act('ambush');
}}
/>
</Stack.Item>
<Stack.Item>
<Button
middle
content="Clear Ambush"
onClick={() => {
act('clear_ambush');
}}
/>
</Stack.Item>
<Stack.Item>{data.ambush_info}</Stack.Item>
</Stack>
</Section>
);
};

export const GameMasterSubmenuVentsMiscPanel = (props, context) => {
const { data, act } = useBackend(context);

return (
<Section title="Misc">
<Stack direction="column" vertical>
<Stack.Item>
<Button
middle
content="Shake Vent"
onClick={() => {
act('shake_vent');
}}
/>
</Stack.Item>
</Stack>
</Section>
);
};

0 comments on commit e2f1b40

Please sign in to comment.