More RIG Intros (#17601)

* Add Commonwealth loader

* Fix a runtime

* Protean loader
This commit is contained in:
ShadowLarkens
2025-04-26 19:30:42 +02:00
committed by GitHub
parent e67c770106
commit 6a854dea1a
12 changed files with 321 additions and 39 deletions
+2 -1
View File
@@ -33,6 +33,7 @@
var/interface_path = "RIGSuit"
var/ai_interface_path = "RIGSuit"
var/interface_title = "Hardsuit Controller"
var/interface_intro = "NT"
var/wearer_move_delay //Used for AI moving.
var/ai_controlled_move_delay = 10
@@ -803,7 +804,7 @@
/obj/item/rig/dropped(mob/user)
. = ..(user)
// So the next user will see the boot animation
tgui_shared_states.Cut()
tgui_shared_states?.Cut()
for(var/piece in list("helmet","gauntlets","chest","boots"))
toggle_piece(piece, user, ONLY_RETRACT)
if(wearer && wearer.wearing_rig == src)
@@ -1,5 +1,5 @@
// Just used to force the icon into the rsc, Byond.iconRefMap does the rest
GLOBAL_DATUM_INIT(rigsuit_ui_icon, /icon, 'icons/hud/rig_ui_slots.dmi')
GLOBAL_DATUM_INIT(rigsuit_ui_icon, /icon, 'icons/hud/rig/rig_ui_slots.dmi')
/*
* This defines the global UI for RIGSuits.
@@ -120,6 +120,26 @@ GLOBAL_DATUM_INIT(rigsuit_ui_icon, /icon, 'icons/hud/rig_ui_slots.dmi')
return data
/*
* Sends data once each time the UI is opened.
*/
/obj/item/rig/tgui_static_data(mob/user)
var/list/data = ..()
data["interface_intro"] = interface_intro
return data
/datum/asset/simple/rig
assets = list(
"tentacles.mp4" = 'icons/hud/rig/tentacles.mp4',
)
/obj/item/rig/ui_assets(mob/user)
. = ..()
. += get_asset_datum(/datum/asset/simple/rig)
/*
* tgui_act() is the TGUI equivelent of Topic(). It's responsible for all of the "actions" you can take in the UI.
*/
@@ -230,6 +230,7 @@
/obj/item/rig/baymed
name = "\improper Commonwealth medical hardsuit control module"
desc = "A lightweight first responder hardsuit from the Commonwealth. Not suitable for combat use, but advanced myomer fibers can push the user to incredible speeds."
interface_intro = "Commonwealth"
icon = 'icons/obj/rig_modules_vr.dmi' // the item
default_mob_icon = 'icons/mob/rig_back_vr.dmi' // the onmob
@@ -295,6 +296,7 @@
/obj/item/rig/bayeng
name = "\improper Commonwealth engineering hardsuit control module"
desc = "An advanced construction hardsuit from the Commonwealth. Built like a tank. Don't expect to be taking any tight corners while running."
interface_intro = "Commonwealth"
icon = 'icons/obj/rig_modules_vr.dmi' // the item
default_mob_icon = 'icons/mob/rig_back_vr.dmi' // the onmob
@@ -361,6 +363,7 @@
/obj/item/rig/pathfinder
name = "\improper Commonwealth pathfinder hardsuit control module"
desc = "A Commonwealth pathfinder hardsuit is hard to come by... how'd this end up on the frontier?"
interface_intro = "Commonwealth"
icon = 'icons/obj/rig_modules_vr.dmi' // the item
default_mob_icon = 'icons/mob/rig_back_vr.dmi' // the onmob
@@ -8,6 +8,7 @@
unremovable = TRUE //Can not be removed. At least, not initially.
default_mob_icon = null //Actually having a forced sprite for Proteans is ugly af. I'm not gonna make this a toggle
icon_state = "nanomachine_rig"
interface_intro = "Protean"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100)
siemens_coefficient= 1
slowdown = 0

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.
@@ -126,7 +126,7 @@ export const RIGSuitHardware = (props) => {
<DmIcon
height={6}
width={6}
icon="icons/hud/rig_ui_slots.dmi"
icon="icons/hud/rig/rig_ui_slots.dmi"
icon_state="base"
/>
<Box position="absolute" top={0.5} left={0.5}>
@@ -153,7 +153,7 @@ export const RIGSuitHardware = (props) => {
<DmIcon
height={6}
width={6}
icon="icons/hud/rig_ui_slots.dmi"
icon="icons/hud/rig/rig_ui_slots.dmi"
icon_state="base"
/>
<Box position="absolute" top={0.7} left={0.5}>
@@ -174,7 +174,7 @@ export const RIGSuitHardware = (props) => {
<DmIcon
height={6}
width={6}
icon="icons/hud/rig_ui_slots.dmi"
icon="icons/hud/rig/rig_ui_slots.dmi"
icon_state="base"
/>
<Box position="absolute" top={1} left={1}>
@@ -192,7 +192,7 @@ export const RIGSuitHardware = (props) => {
<DmIcon
height={6}
width={6}
icon="icons/hud/rig_ui_slots.dmi"
icon="icons/hud/rig/rig_ui_slots.dmi"
icon_state="base"
/>
<Box position="absolute" top={1} left={0.5}>
@@ -231,7 +231,7 @@ const HardwarePiece = (props: {
<DmIcon
height={6}
width={6}
icon="icons/hud/rig_ui_slots.dmi"
icon="icons/hud/rig/rig_ui_slots.dmi"
icon_state={props.icon}
style={{
cursor: 'pointer',
@@ -2,33 +2,11 @@ import { useEffect, useState } from 'react';
import { Window } from 'tgui/layouts';
import { Box, Stack } from 'tgui-core/components';
// This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
// http://creativecommons.org/licenses/by-sa/4.0/
const NTLogoReact = (props) => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.0"
viewBox="0 0 425 200"
fill="#00bbbb"
>
<path
className="RIGSuit__FadeIn"
d="m 178.00399,0.03869 -71.20393,0 a 6.7613422,6.0255495 0 0 0 -6.76134,6.02555 l 0,187.87147 a 6.7613422,6.0255495 0 0 0 6.76134,6.02554 l 53.1072,0 a 6.7613422,6.0255495 0 0 0 6.76135,-6.02554 l 0,-101.544018 72.21628,104.699398 a 6.7613422,6.0255495 0 0 0 5.76015,2.87016 l 73.55487,0 a 6.7613422,6.0255495 0 0 0 6.76135,-6.02554 l 0,-187.87147 a 6.7613422,6.0255495 0 0 0 -6.76135,-6.02555 l -54.71644,0 a 6.7613422,6.0255495 0 0 0 -6.76133,6.02555 l 0,102.61935 L 183.76413,2.90886 a 6.7613422,6.0255495 0 0 0 -5.76014,-2.87017 z"
/>
<path
className="RIGSuit__Animation__WipeLeft"
style={{ animationDelay: '1s' }}
d="M 4.8446333,22.10875 A 13.412039,12.501842 0 0 1 13.477588,0.03924 l 66.118315,0 a 5.3648158,5.000737 0 0 1 5.364823,5.00073 l 0,79.87931 z"
/>
<path
className="RIGSuit__Animation__WipeLeft"
style={{ animationDelay: '2s' }}
d="m 420.15535,177.89119 a 13.412038,12.501842 0 0 1 -8.63295,22.06951 l -66.11832,0 a 5.3648152,5.000737 0 0 1 -5.36482,-5.00074 l 0,-79.87931 z"
/>
</svg>
);
};
import { resolveAsset } from '../../assets';
import { useBackend } from '../../backend';
import { CommonwealthLogo } from './animated_logos/Commonwealth';
import { NTLogo } from './animated_logos/NT';
import { type Data } from './types';
const LoadingText = (props: { onFinish?: () => void }) => {
const onFinish = props.onFinish ? props.onFinish : () => {};
@@ -87,9 +65,9 @@ export const LoaderNT = (props: { onFinish?: () => void }) => {
if (showLogo) {
return (
<Stack vertical fill justify="center">
<Stack vertical fill justify="center" backgroundColor="black">
<Stack.Item>
<NTLogoReact />
<NTLogo />
</Stack.Item>
</Stack>
);
@@ -98,10 +76,76 @@ export const LoaderNT = (props: { onFinish?: () => void }) => {
return <LoadingText onFinish={props.onFinish} />;
};
export const LoaderCommonwealth = (props: { onFinish?: () => void }) => {
const [showLogo, setShowLogo] = useState(true);
useEffect(() => {
setTimeout(() => {
setShowLogo(false);
}, 3500);
}, []);
if (showLogo) {
return (
<Stack vertical fill justify="center" backgroundColor="#5f95e3">
<Stack.Item>
<CommonwealthLogo />
</Stack.Item>
</Stack>
);
}
return (
<Box backgroundColor="black" height="100%">
<LoadingText onFinish={props.onFinish} />
</Box>
);
};
export const LoaderProtean = (props: { onFinish?: () => void }) => {
const [showLogo, setShowLogo] = useState(true);
useEffect(() => {
setTimeout(() => {
setShowLogo(false);
}, 3500);
}, []);
if (showLogo) {
return (
<Stack vertical fill justify="center" backgroundColor="#0e0e0e">
<Stack.Item>
<video
autoPlay
src={resolveAsset('tentacles.mp4')}
height="100%"
width="100%"
/>
</Stack.Item>
</Stack>
);
}
return (
<Box backgroundColor="black" height="100%">
<LoadingText onFinish={props.onFinish} />
</Box>
);
};
export const RIGSuitLoader = (props: { onFinish?: () => void }) => {
const { data } = useBackend<Data>();
// You can skip to the end by clicking
const onFinish = props.onFinish ? props.onFinish : () => {};
let loader = <LoaderNT onFinish={props.onFinish} />;
if (data.interface_intro === 'Commonwealth') {
loader = <LoaderCommonwealth onFinish={props.onFinish} />;
} else if (data.interface_intro === 'Protean') {
loader = <LoaderProtean onFinish={props.onFinish} />;
}
return (
<Window height={400} width={600}>
<Window.Content
@@ -109,9 +153,7 @@ export const RIGSuitLoader = (props: { onFinish?: () => void }) => {
onClick={() => onFinish()}
style={{ cursor: 'pointer' }}
>
<Box backgroundColor="black" height="100%">
<LoaderNT onFinish={props.onFinish} />
</Box>
<Box height="100%">{loader}</Box>
</Window.Content>
</Window>
);
@@ -0,0 +1,174 @@
export const CommonwealthLogo = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1366 768">
{/* Circles */}
<g
style={{
display: 'inline',
}}
className="RIGSuit__FadeIn"
>
<ellipse
cx={682.341}
cy={697.338}
rx={30.614}
ry={31.214}
style={{
fill: '#fff',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
<circle
cx={576.684}
cy={445.254}
r={57.776}
style={{
fill: 'none',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
<circle
cx={742.189}
cy={341.856}
r={57.514}
style={{
fill: 'none',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
<circle
cx={795.459}
cy={159.128}
r={56.665}
style={{
fill: 'none',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
<ellipse
cx={682.517}
cy={303.166}
rx={277.409}
ry={276.134}
style={{
fill: 'none',
fillOpacity: 1,
stroke: '#fff',
strokeWidth: 16.0385,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
</g>
{/* Stars */}
<g
style={{
display: 'inline',
}}
className="RIGSuit__FadeIn"
>
<path
d="m590.04 476.093-22.06-23.636-23.786 6.228 21.31-19.584-4.277-29.263 22.435 24.011 23.86-5.628-20.559 23.186z"
style={{
fill: '#fff',
fillOpacity: 1,
stroke: 'none',
strokeWidth: 2.67308,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
<path
d="m810.702 191.864-22.06-23.635-23.786 6.227 21.31-19.583-4.277-29.264 22.435 24.011 23.86-5.627-20.559 23.185zM755.523 373.107l-22.06-23.636-23.786 6.228 21.31-19.584-4.277-29.263 22.435 24.01 23.86-5.627-20.559 23.186z"
style={{
display: 'inline',
fill: '#fff',
fillOpacity: 1,
stroke: 'none',
strokeWidth: 2.67308,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
</g>
{/* Lines */}
<g
style={{
display: 'inline',
}}
className="RIGSuit__FadeIn"
>
<path
d="m624.856 414.19 67.83-41.719M768.92 293.836l42.92-79.236"
style={{
fill: 'none',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
</g>
{/* Left Wreath */}
<g
style={{
display: 'inline',
fill: '#fcc326',
fillOpacity: 1,
animationDelay: '1s',
}}
className="RIGSuit__Animation__WipeUp"
>
<path
d="M615.33 685.432c-6.42 3.057-14.087-4.92-23.936-16.581-9.85-11.662-25.008-61.238-22.454-62.78 2.553-1.54 41.092 34.91 46.235 50.486 5.142 15.576 6.574 25.817.154 28.875zM630.36 713.901c1.92 6.847-7.246 13.043-20.415 20.762-13.168 7.72-64.602 14.214-65.686 11.435-1.084-2.778 41.398-34.547 57.622-36.962 16.225-2.415 26.56-2.082 28.48 4.765zM566.73 691.813c1.946 6.84-7.195 13.071-20.334 20.842-13.138 7.77-64.546 14.466-65.64 11.692-1.095-2.774 41.261-34.71 57.476-37.188 16.215-2.478 26.552-2.186 28.498 4.654zM515.697 669.467c.43 7.098-9.84 11.217-24.342 15.979-14.502 4.761-66.147.239-66.619-2.706-.472-2.945 47.764-25.018 64.132-23.95 16.368 1.07 26.4 3.58 26.829 10.677zM451.813 630.458c-1.069 7.03-11.972 8.905-27.15 10.522-15.18 1.616-64.729-13.63-64.573-16.609.156-2.978 51.946-14.452 67.727-9.976 15.78 4.476 25.064 9.032 23.995 16.063zM398.724 584.535c-3.625 6.118-14.437 3.77-29.115-.42-14.678-4.19-54.902-36.895-53.641-39.598 1.26-2.703 53.576 6.07 66.53 16.133 12.953 10.064 19.851 17.767 16.226 23.885zM350.57 519c-4.967 5.09-14.92.257-28.194-7.277-13.276-7.535-44.648-48.806-42.786-51.136 1.863-2.329 50.632 18.539 60.845 31.374 10.214 12.836 15.1 21.95 10.134 27.039zM325.396 448.78c-6.07 3.706-14.52-3.434-25.524-14.013-11.004-10.58-31.215-58.32-28.835-60.116 2.38-1.798 44.487 30.466 51.215 45.425 6.728 14.96 9.213 24.998 3.144 28.704zM303.337 357.115c-7.031 1.063-12.053-8.796-18.094-22.814s-6.16-65.86-3.27-66.593c2.891-.734 29.195 45.332 29.595 61.73.401 16.398-1.2 26.614-8.232 27.677zM309.992 257.668c-7.11.12-10.779-10.318-14.905-25.013-4.127-14.696 2.638-66.095 5.6-66.439 2.963-.344 22.917 48.807 21.138 65.113-1.78 16.306-4.723 26.22-11.834 26.34zM330.812 157.367c-6.752-2.231-6.774-13.295-5.824-28.53.95-15.234 24.282-61.529 27.192-60.876 2.91.652 5.544 53.633-1.512 68.44-7.057 14.808-13.104 23.197-19.856 20.966zM544.118 650.944c-6.937 1.562-12.65-7.913-19.675-21.465-7.025-13.551-10.842-65.253-8.01-66.19 2.83-.94 32.352 43.133 33.922 59.461 1.57 16.328.7 26.632-6.237 28.194zM479.053 617.207c-7.081.648-11.515-9.489-16.722-23.837-5.208-14.349-2.282-66.108.647-66.671 2.929-.563 26.481 46.968 25.918 63.362-.562 16.393-2.761 26.498-9.843 27.146zM418.654 569.007c-7.097-.434-9.943-11.125-12.913-26.098-2.971-14.972 7.771-65.689 10.752-65.801 2.98-.112 19.05 50.441 16.008 66.56-3.043 16.118-6.749 25.772-13.847 25.339zM372.071 508.556c-6.863-1.862-7.484-12.908-7.361-28.172.122-15.264 20.913-62.754 23.854-62.26 2.941.493 8.442 53.254 2.198 68.422-6.244 15.169-11.828 23.872-18.691 22.01zM350.218 413.186c-6.797-2.089-7.05-13.15-6.42-28.401.631-15.251 22.991-62.024 25.914-61.432 2.923.591 6.664 53.506-.08 68.458-6.746 14.952-12.617 23.465-19.414 21.375zM331.612 317.052c-6.03-3.77-3.425-14.523 1.114-29.097 4.538-14.574 38.191-54.008 40.863-52.684 2.672 1.325-7.343 53.417-17.712 66.127-10.37 12.71-18.235 19.423-24.265 15.653zM355.42 213.307c-5.672-4.289-2.125-14.769 3.686-28.883 5.812-14.115 42.826-50.412 45.37-48.856 2.545 1.556-12.046 52.556-23.5 64.297-11.455 11.741-19.885 17.731-25.556 13.442zM377.615 115.907c-5.247-4.799-.74-14.903 6.362-28.415 7.1-13.512 47.336-46.203 49.725-44.417 2.388 1.787-16.891 51.206-29.39 61.829-12.498 10.623-21.449 15.802-26.697 11.003z"
style={{
fill: '#fcc326',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
/>
</g>
{/* Right Wreath */}
<g
style={{
display: 'inline',
fill: '#fcc326',
fillOpacity: 1,
animationDelay: '1s',
}}
className="RIGSuit__Animation__WipeUp"
>
<path
d="M615.33 686.495c-6.42 3.057-14.087-4.92-23.936-16.582-9.85-11.661-25.008-61.238-22.454-62.779 2.553-1.541 41.092 34.91 46.235 50.486 5.142 15.576 6.574 25.817.154 28.875zM630.36 714.964c1.92 6.847-7.246 13.043-20.415 20.762-13.168 7.72-64.602 14.213-65.686 11.435-1.084-2.779 41.398-34.548 57.622-36.962 16.225-2.415 26.56-2.082 28.48 4.765zM566.73 692.875c1.946 6.84-7.195 13.072-20.334 20.842-13.138 7.771-64.546 14.467-65.64 11.693-1.095-2.774 41.261-34.71 57.476-37.188 16.215-2.479 26.552-2.186 28.498 4.653zM515.697 670.53c.43 7.098-9.84 11.217-24.342 15.978-14.502 4.762-66.147.24-66.619-2.705-.472-2.945 47.764-25.019 64.132-23.95 16.368 1.069 26.4 3.579 26.829 10.677zM451.813 631.52c-1.069 7.03-11.972 8.906-27.15 10.522-15.18 1.617-64.729-13.63-64.573-16.608.156-2.978 51.946-14.452 67.727-9.976 15.78 4.475 25.064 9.032 23.995 16.062zM398.724 585.598c-3.625 6.117-14.437 3.77-29.115-.42-14.678-4.19-54.902-36.895-53.641-39.598 1.26-2.703 53.576 6.07 66.53 16.133 12.953 10.064 19.851 17.767 16.226 23.885zM350.57 520.063c-4.967 5.09-14.92.257-28.194-7.278-13.276-7.534-44.648-48.806-42.786-51.135 1.863-2.33 50.632 18.538 60.845 31.374 10.214 12.835 15.1 21.949 10.134 27.039zM325.396 449.843c-6.07 3.706-14.52-3.434-25.524-14.013-11.004-10.58-31.215-58.32-28.835-60.117 2.38-1.797 44.487 30.466 51.215 45.426 6.728 14.96 9.213 24.998 3.144 28.704zM303.337 358.178c-7.031 1.063-12.053-8.796-18.094-22.814s-6.16-65.86-3.27-66.594c2.891-.734 29.195 45.332 29.595 61.73.401 16.399-1.2 26.615-8.232 27.678zM309.992 258.731c-7.11.12-10.779-10.318-14.905-25.014-4.127-14.696 2.638-66.095 5.6-66.438 2.963-.344 22.917 48.806 21.138 65.113-1.78 16.306-4.723 26.219-11.834 26.339zM330.812 158.43c-6.752-2.231-6.774-13.295-5.824-28.53.95-15.235 24.282-61.53 27.192-60.877 2.91.653 5.544 53.634-1.512 68.441-7.057 14.808-13.104 23.196-19.856 20.965zM544.118 652.007c-6.937 1.561-12.65-7.914-19.675-21.465-7.025-13.552-10.842-65.253-8.01-66.191 2.83-.938 32.352 43.134 33.922 59.462 1.57 16.328.7 26.632-6.237 28.194zM479.053 618.27c-7.081.648-11.515-9.489-16.722-23.837-5.208-14.35-2.282-66.108.647-66.671 2.929-.563 26.481 46.968 25.918 63.362-.562 16.393-2.761 26.497-9.843 27.145zM418.654 570.07c-7.097-.434-9.943-11.126-12.913-26.098-2.971-14.973 7.771-65.69 10.752-65.801 2.98-.112 19.05 50.44 16.008 66.56-3.043 16.118-6.749 25.772-13.847 25.338zM372.071 509.619c-6.863-1.862-7.484-12.908-7.361-28.172.122-15.264 20.913-62.754 23.854-62.26 2.941.493 8.442 53.253 2.198 68.422-6.244 15.168-11.828 23.872-18.691 22.01zM350.218 414.249c-6.797-2.09-7.05-13.15-6.42-28.401.631-15.252 22.991-62.024 25.914-61.432 2.923.591 6.664 53.505-.08 68.457-6.746 14.952-12.617 23.465-19.414 21.376zM331.612 318.114c-6.03-3.77-3.425-14.522 1.114-29.096 4.538-14.574 38.191-54.008 40.863-52.684 2.672 1.324-7.343 53.417-17.712 66.127-10.37 12.71-18.235 19.423-24.265 15.653zM355.42 214.37c-5.672-4.289-2.125-14.769 3.686-28.883 5.812-14.115 42.826-50.413 45.37-48.857 2.545 1.556-12.046 52.556-23.5 64.298-11.455 11.741-19.885 17.73-25.556 13.442zM377.615 116.97c-5.247-4.8-.74-14.903 6.362-28.415 7.1-13.512 47.336-46.203 49.725-44.417 2.388 1.786-16.891 51.205-29.39 61.828-12.498 10.624-21.449 15.802-26.697 11.003z"
style={{
fill: '#fcc326',
fillOpacity: 1,
stroke: '#fcc326',
strokeWidth: 10.6923,
strokeDasharray: 'none',
strokeOpacity: 1,
}}
transform="matrix(-1 0 0 1 1366.631 .635)"
/>
</g>
</svg>
);
@@ -0,0 +1,27 @@
// This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
// http://creativecommons.org/licenses/by-sa/4.0/
export const NTLogo = (props) => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.0"
viewBox="0 0 425 200"
fill="#00bbbb"
>
<path
className="RIGSuit__FadeIn"
d="m 178.00399,0.03869 -71.20393,0 a 6.7613422,6.0255495 0 0 0 -6.76134,6.02555 l 0,187.87147 a 6.7613422,6.0255495 0 0 0 6.76134,6.02554 l 53.1072,0 a 6.7613422,6.0255495 0 0 0 6.76135,-6.02554 l 0,-101.544018 72.21628,104.699398 a 6.7613422,6.0255495 0 0 0 5.76015,2.87016 l 73.55487,0 a 6.7613422,6.0255495 0 0 0 6.76135,-6.02554 l 0,-187.87147 a 6.7613422,6.0255495 0 0 0 -6.76135,-6.02555 l -54.71644,0 a 6.7613422,6.0255495 0 0 0 -6.76133,6.02555 l 0,102.61935 L 183.76413,2.90886 a 6.7613422,6.0255495 0 0 0 -5.76014,-2.87017 z"
/>
<path
className="RIGSuit__Animation__WipeLeft"
style={{ animationDelay: '1s' }}
d="M 4.8446333,22.10875 A 13.412039,12.501842 0 0 1 13.477588,0.03924 l 66.118315,0 a 5.3648158,5.000737 0 0 1 5.364823,5.00073 l 0,79.87931 z"
/>
<path
className="RIGSuit__Animation__WipeLeft"
style={{ animationDelay: '2s' }}
d="m 420.15535,177.89119 a 13.412038,12.501842 0 0 1 -8.63295,22.06951 l -66.11832,0 a 5.3648152,5.000737 0 0 1 -5.36482,-5.00074 l 0,-79.87931 z"
/>
</svg>
);
};
@@ -2,6 +2,7 @@ import type { BooleanLike } from 'tgui-core/react';
export type Data = {
primarysystem: string | null;
interface_intro: string;
ai: BooleanLike;
cooling: BooleanLike;
sealed: BooleanLike;
@@ -49,3 +49,16 @@
0.2s -webkit-filter linear;
-webkit-user-drag: none;
}
@keyframes wipe-in-up {
from {
clip-path: inset(100% 0 0 0);
}
to {
clip-path: inset(0 0 0 0);
}
}
.RIGSuit__Animation__WipeUp {
animation: 1s linear wipe-in-up both;
}