show missileToOwnshipLow on minimap

This commit is contained in:
polpol 2024-05-01 22:24:57 -07:00
parent 9100629df0
commit 071540eb5d
5 changed files with 63 additions and 25 deletions

View File

@ -115,6 +115,7 @@ const Prototype = () => {
return; */
// dispatch action to add new widget
console.log('Deploying widget:', widgetToDeploy);
dispatch(addWidget(widgetToDeploy));
dispatch(addWidgetToSection(sectionID));
}

View File

@ -1,6 +1,7 @@
import type { Widget as WidgetType } from 'src/types/widget';
import TinderWidget from './TinderWidget';
import VehicleWidget from './VehicleWidget';
import { TextElement } from 'src/types/element';
type WidgetProps = {
widget: WidgetType;
@ -13,6 +14,22 @@ const Widget = ({ widget }: WidgetProps) => {
return <VehicleWidget widget={widget} />;
case 'tinder':
return <TinderWidget widget={widget} />;
case 'highWarning':
return <div style={{
height: widget.h,
width: widget.w,
top: widget.y,
left: widget.x,
...widget.style,
}}>
<p style={{
height: widget.elements[0].h,
width: widget.elements[0].w,
top: widget.elements[0].yWidget,
left: widget.elements[0].xWidget,
...widget.elements[0].style,
}}>{'text' in widget.elements[0] && widget.elements[0].text}</p>
</div>;
default:
return <div>Unknown Widget</div>;
}

View File

@ -1,28 +1,23 @@
import { useEffect, useRef, useState } from 'react';
import type { Message } from 'src/types/schema-types';
type IncomingMessage = {
message: Message;
stressLevel: number;
};
import type { Message, SimToCmMessage, Range } from 'src/types/schema-types';
const useWorldSim = () => {
const [messages, setMessages] = useState<Message[]>([]);
const [stressLevel, setStressLevel] = useState<number>(0);
const [stressLevel, setStressLevel] = useState<Range<0,1>>(0);
const socket = useRef<WebSocket | null>();
useEffect(() => {
socket.current = new WebSocket('ws://localhost:6969');
socket.current.addEventListener('open', (event) => {
socket.current.addEventListener('open', (_event) => {
console.log('\x1b[32mconnection opened\x1b[0m');
});
socket.current.addEventListener('message', (event) => {
// console.log('\x1b[34mmessage received:\x1b[0m', event.data);
const { message, stressLevel }: IncomingMessage = JSON.parse(event.data);
setMessages((prevMessages) => [...prevMessages, message]);
setStressLevel(stressLevel);
const { message, stressLevel }: SimToCmMessage = JSON.parse(event.data);
setMessages((prevMessages) => [...prevMessages, message!]);
setStressLevel(stressLevel!);
});
socket.current.addEventListener('close', (event) => {

View File

@ -5,7 +5,7 @@ import lpdHelper from "src/utils/lpdHelper";
const requestApprovalToAttackMessageLow = () => {
return {
sections: [],
widgets: [lpdHelper.generateWidget(
possibleWidgets: [lpdHelper.generateWidget(
'request',
'request',
100,
@ -23,7 +23,7 @@ const requestApprovalToAttackMessageLow = () => {
const acaFuelLowMessageLow = () => {
return {
sections: [],
widgets: [lpdHelper.generateWidget(
possibleWidgets: [lpdHelper.generateWidget(
'message',
'message',
500,
@ -41,8 +41,8 @@ const acaFuelLowMessageLow = () => {
const missileToOwnshipDetectedMessageLow = () => {
return {
sections: [],
widgets: [lpdHelper.generateWidget(
'highWarning',
possibleWidgets: [lpdHelper.generateWidget(
'missileDetected',
'highWarning',
100,
100,
@ -51,7 +51,34 @@ const missileToOwnshipDetectedMessageLow = () => {
false,
true,
1,
[],
[
lpdHelper.generateTextElement(
lpdHelper.generateBaseElement(
'textElement',
'visual',
100,
100,
0,
0,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
{
fontSize: '20px',
fontWeight: 'bold',
color: 'black',
border: 'solid',
borderColor: 'black',
// borderColor: '#16fd22',
},
),
'Missile Detected!',
),
],
)],
};
}
@ -59,7 +86,7 @@ const missileToOwnshipDetectedMessageLow = () => {
const acaDefectMessageLow = () => {
return {
sections: [],
widgets: [lpdHelper.generateWidget(
possibleWidgets: [lpdHelper.generateWidget(
'highWarning',
'highWarning',
500,
@ -77,7 +104,7 @@ const acaDefectMessageLow = () => {
const acaHeadingToBaseMessageLow = () => {
return {
sections: [],
widgets: [lpdHelper.generateWidget(
possibleWidgets: [lpdHelper.generateWidget(
'message',
'message',
500,

View File

@ -14,11 +14,7 @@ import mediumLPD from "./lpd/stress/mediumLPD";
import highLPD from "./lpd/stress/highLPD";
import initialLPD from "./lpd/initialLPD";
const stressLevelLPDFunctions: any = {
"low": lowLPD,
"medium": mediumLPD,
"high": highLPD,
}
const stressLevelLPDFunctions = [lowLPD, mediumLPD, highLPD];
type SelectorProps = {
message?: Message;
@ -32,8 +28,10 @@ type SelectorProps = {
*/
const selector = ({ message, stressLevel }: SelectorProps = {}) => {
// Call the LPD function that corresponds to the stress level from the message
if (message && stressLevel) {
return stressLevelLPDFunctions[stressLevel](message);
if (message && stressLevel ) {
// Transform range of stress levels from 0-1 to 0-2 only returning integers
stressLevel = Math.floor(stressLevel * 3);
return stressLevelLPDFunctions[0](message);
} else {
// If no message is provided, return the initial LPD
return initialLPD;