+
+ {appSubState === ImportExportSubstate.EXPORT ? "Export to file" : "Import from file"}
+
+
+
+ {appSubState === ImportExportSubstate.EXPORT ? <>Select what units you want to export to file using the toggles below> : <>>}
+
+
+
+
- {appSubState === ImportExportSubstate.EXPORT ? "Export to file" : "Import from file"}
-
+ Control mode
+
-
- {appSubState === ImportExportSubstate.EXPORT ? <>Select what units you want to export to file using the toggles below> : <>>}
-
+
- Check out our official video tutorial on how to get started with Olympus - so you can immediately start controlling the battlefield.
-
-
-
-
-
- Wiki Guide
-
-
-
- Find out more about Olympus through our online wiki guide.
-
-
-
+
+
+
+
+ )}
- DCS Olympus (the "MATERIAL" or "Software") is provided completely free to users subject to the terms of the CC BY-NC-SA 4.0 Licence except where such
- terms conflict with this disclaimer, in which case, the terms of this disclaimer shall prevail. Any party making use of the Software in any manner
- agrees to be bound by the terms set out in the disclaimer. THIS MATERIAL IS NOT MADE OR SUPPORTED BY EAGLE DYNAMICS SA.
+
+
+
+ YouTube Video Guide
+
+
+
+ Check out our official video tutorial on how to get started with Olympus - so you can immediately start controlling the battlefield.
+
+
+
+
+
+ Wiki Guide
+
+
+
+ Find out more about Olympus through our online wiki guide.
+
+
+
+ DCS Olympus (the "MATERIAL" or "Software") is provided completely free to users subject to the terms of the CC BY-NC-SA 4.0 Licence except where such
+ terms conflict with this disclaimer, in which case, the terms of this disclaimer shall prevail. Any party making use of the Software in any manner
+ agrees to be bound by the terms set out in the disclaimer. THIS MATERIAL IS NOT MADE OR SUPPORTED BY EAGLE DYNAMICS SA.
+
Pressing "Continue" will cause all DCS controlled units in the current selection to abort their mission and start following Olympus commands only.
@@ -38,7 +32,7 @@ export function ProtectionPromptModal(props: { open: boolean }) {
If you are trying to delete a human player unit, they will be killed and de-slotted. Be careful!
@@ -46,7 +40,7 @@ export function ProtectionPromptModal(props: { open: boolean }) {
To disable this warning, press on the{" "}
diff --git a/frontend/react/src/ui/modals/trainingmodal.tsx b/frontend/react/src/ui/modals/trainingmodal.tsx
new file mode 100644
index 00000000..ef55de5f
--- /dev/null
+++ b/frontend/react/src/ui/modals/trainingmodal.tsx
@@ -0,0 +1,526 @@
+import React, { useState } from "react";
+import { Modal } from "./components/modal";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faArrowLeft, faArrowRight } from "@fortawesome/free-solid-svg-icons";
+import { FaCaretRight, FaLink } from "react-icons/fa6";
+import { FaQuestionCircle } from "react-icons/fa";
+
+const MAX_STEPS = 10;
+
+export function TrainingModal(props: { open: boolean }) {
+ const [step, setStep] = useState(0);
+
+ return (
+
+
+
DCS Olympus guided tour
+
+
+
+ <>
+ {step === 0 && (
+
+
+
+
Home
+
+ Welcome to the Olympus quick start guide! This tour will guide you through the basics of DCS Olympus. You can navigate through the steps using
+ the "Next" and "Previous" buttons at the bottom of the screen, or select a topic from the list below.
+
+ Every panel has a dedicated integrated wiki. Click on the{" "}
+
+
+ {" "}
+ symbol to access it. Moreover, most clickable content has tooltips providing info about their function.
+
+
+
+
+ )}
+ >
+
+ <>
+ {step === 1 && (
+
+
+
+
Main navbar
+
+ The main functions of DCS Olympus are accessible from the main navbar. You can access the spawn tool, the unit selection and control tool, the
+ drawings tool, the audio/radio tool, and the game master options from here.
+
+
On the bottom left corner, you can find the DCS Olympus options tool.
+
+
+ )}
+ >
+
+ <>
+ {step === 2 && (
+
+
+
+
Spawning units (1 of 3)
+
+ To spawn a unit, click on the spawn tool icon on the main navbar. This will open the spawn tool. You can select the unit you want to spawn by
+ searching for it or by finding it in the list, which can be filtered by category.
+
+
After selecting the unit you can edit its properties, like spawn altitude and heading, loadout, livery, skill level, and so on.
+
+ Once you are happy with your setup, click on the map to spawn the unit. You can click multiple times to spawn more units. When you are done,
+ double click to exit the spawning mode.
+
+
+
+ )}
+ >
+
+ <>
+ {step === 3 && (
+
+
+
+
Spawning units (2 of 3)
+
+ You can also spawn units directly on the map by right clicking on it and selecting the unit you want to spawn. This will spawn the unit at the
+ clicked location.
+
+
You can edit the unit properties like in the previous method.
+
+
+ )}
+ >
+
+ <>
+ {step === 4 && (
+
+
+
+
Spawning units (3 of 3)
+
+ If you plan on spawning many similar units throughout the mission, you can "star" a unit. This will save the unit in the starred units list,
+ which can be accessed from the spawn tool. This way you can quickly spawn the same unit multiple times without having to search for it.
+
+
You can edit the unit properties like in the previous method.
+
+
+ )}
+ >
+
+ <>
+ {step === 5 && (
+
+
+
+
Controlling units (1 of 4)
+
+ {" "}
+ The most basic form of unit control is movement. A short right click on the map will add a destination point. If the ctrl key is held while
+ right clicking, the destination will be appended, creating a path.
+
+
+ Previously created destinations can be moved by dragging the marker on the map. If multiple units are selected when creating the path,
+ destinations will be shared between them.
+
+
+
+ )}
+ >
+
+ <>
+ {step === 6 && (
+
+
+
+
Controlling units (2 of 4)
+
+ To issue an instruction to a unit, long press the right mouse button on the map. This will allow you to select an action, depending on what you
+ clicked on.
+
+
+
+
+ )}
+ >
+
+ <>
+ {step === 7 && (
+
+
+
+
Controlling units (3 of 4)
+
+ The same instructions can be issued using the unit control toolbar. First select the tool, then left click on the map to issue the instruction.
+ The tool will be active until deselected, either by double clicking on the map, or by clicking on the tool button again.{" "}
+
+
+ Tools can be enabled using keyboard shortcuts. To learn what a tool does and what shortcut enables it, place your cursor over the corresponding
+ button.{" "}
+
+
+
+ )}
+ >
+
+ <>
+ {step === 8 && (
+
+
+
+
Controlling units (4 of 4)
+
+ {" "}
+ Unit properties are set using the unit control menu, which opens automatically when a unit is selected. Here, depending on the selected unit,
+ you can set altitude and speed, Rules Of Engagement, reaction to threat, as well as advanced settings like AWACS frequencies and so on.{" "}
+
+
+
+
+ )}
+ >
+
+ <>
+ {step === 9 && (
+
+
+
+
The unit marker (1 of 2)
+
+ The unit marker is a small icon that appears on the map. It shows the unit's type, coalition, and the name (for Mission Editor units and human
+ players only). It has the following parts:
+
+
+
+
+
+ 1
+
+
Unit short label or type symbol
+
+
+
+
+
+ 2
+
+
Flight level
+
+
+
+
+
+ 3
+
+
Ground speed (knots)
+
+
+
+
+
+ 4
+
+
Bullseye position
+
+
+
+
+
+ 5
+
+
Fuel state (% of internal)
+
+
+
+
+
+ 6
+
+
A/A weapons (Fox 1/2/3 & guns)
+
+
+
+
+
+ 7
+
+
Current state
+
+
+
+
+ Most of these information is only available for air units. Ground units will show the type symbol, the name, and the coalition, and the fuel
+ level is replace by the unit's health (%).
+
+
+
+ )}
+ >
+
+ <>
+ {step === 10 && (
+
+
+
The unit marker (2 of 2)
+
The unit marker has a symbol showing the unit state, i.e. what instruction it is performing. These are all the possible values:
Non-Google Chrome Browser Detected.
+ It appears you are using a browser other than Google Chrome.
- It appears you are using a browser other than Google Chrome.
+ If you encounter any problems, we strongly suggest you use a Chrome based browser. Many features, especially advanced ones such as audio playback
+ and capture, were developed specifically for Chrome based browsers.{" "}
- If you encounter any problems, we strongly suggest you use a Chrome based browser. Many features, especially advanced ones such as audio playback and capture, were developed specifically for Chrome based browsers.
Your connection to DCS Olympus is not secure.
+ To protect your personal data some advanced DCS Olympus features like the camera plugin or the audio backend have been disabled.
- To protect your personal data some advanced DCS Olympus features like the camera plugin or the audio backend
- have been disabled.
-
-
- To solve this issue, DCS Olympus should be served using the https protocol.
+ To solve this issue, DCS Olympus should be served using the{" "}
+
+ https
+ {" "}
+ protocol.
To do so, we suggest using a dedicated server and a reverse proxy with SSL enabled.