Sweep cap (#54)
* Added initial implementation of Sweep groups * Added initial implementation of Sweep groups * Added initial implementation of Sweep groups * Added initial implementation of Sweep groups * fixed issues when testing * Intercept cap (#55) * First intial WIP for intercept units * First intial WIP for intercept units * major updates --------- Co-authored-by: ex61wi <tim.rorije@ing.com> Co-authored-by: dutchie032 <dutchie032> --------- Co-authored-by: ex61wi <tim.rorije@ing.com> Co-authored-by: dutchie032 <dutchie032>
This commit is contained in:
committed by
GitHub
co-authored by
ex61wi
dutchie032 <dutchie032>
parent
bdf7154333
commit
ef65f5a353
+8
-28
@@ -5,46 +5,26 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead</title>
|
||||
|
||||
<link rel="stylesheet" href="style/style.css">
|
||||
|
||||
<script src="js/site.js"></script>
|
||||
<script type="module" src="js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="header-box">
|
||||
<a class="logo" href="index.html">Spearhead</a>
|
||||
<div class="header-right">
|
||||
<nav>
|
||||
<a href="index.html">Home</a>
|
||||
<a href="pages/tutorials.html">Tutorials</a>
|
||||
<a href="pages/persistence.html">Persistence</a>
|
||||
<a href="pages/reference.html">Reference</a>
|
||||
<a href="pages/spearheadapi.html">API</a>
|
||||
</nav>
|
||||
<button id="theme-toggle" class="theme-toggle" title="Toggle light/dark theme">
|
||||
<svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"/>
|
||||
</svg>
|
||||
<svg id="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display: none;">
|
||||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19H12.998V22H10.998zM10.998 2H12.998V5H10.998zM1.998 11H4.998V13H1.998zM18.998 11H21.998V13H18.998z"/>
|
||||
<path transform="rotate(-45.017 5.986 18.01)" d="M4.986 17.01H6.986V19.01H4.986z"/>
|
||||
<path transform="rotate(-45.001 18.008 5.99)" d="M17.008 4.99H19.008V6.99H17.008z"/>
|
||||
<path transform="rotate(-134.983 5.988 5.99)" d="M4.988 4.99H6.988V6.99H4.988z"/>
|
||||
<path transform="rotate(134.999 18.008 18.01)" d="M17.008 17.01H19.008V19.01H17.008z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<app-header></app-header>
|
||||
</header>
|
||||
<main>
|
||||
<div class="reference-container">
|
||||
<div class="side-nav">
|
||||
<h4>Quick Links</h4>
|
||||
<ul>
|
||||
<li><a href="pages/tutorials.html" class="side-nav-h2">Tutorials</a></li>
|
||||
<li><a href="pages/persistence.html" class="side-nav-h2">Persistence</a></li>
|
||||
<li><a href="pages/reference.html" class="side-nav-h2">Reference</a></li>
|
||||
<li><a href="pages/spearheadapi.html" class="side-nav-h2">API</a></li>
|
||||
<li><a href="/pages/tutorials.html" class="side-nav-h2">Tutorials</a></li>
|
||||
<li><a href="/pages/persistence.html" class="side-nav-h2">Persistence</a></li>
|
||||
<li><a href="/pages/reference.html" class="side-nav-h2">Reference</a></li>
|
||||
<li><a href="/pages/spearheadapi.html" class="side-nav-h2">API</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<style>
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
</style>
|
||||
<!-- Removed inline script: sidenav highlight now handled by site.js -->
|
||||
@@ -4,69 +4,36 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead Persistence</title>
|
||||
<link rel="stylesheet" href="../style/style.css">
|
||||
<script src="../js/site.js"></script>
|
||||
<title>Spearhead Persistence</title> <!-- Google Fonts -->
|
||||
|
||||
<link rel="stylesheet" href="/style/style.css">
|
||||
<script src="/js/site.js"></script>
|
||||
<style>
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
</style>
|
||||
<script type="module" src="/js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="header-box">
|
||||
<a class="logo" href="../index.html">Spearhead</a>
|
||||
<div class="header-right">
|
||||
<nav>
|
||||
<a href="../index.html">Home</a>
|
||||
<a href="../pages/tutorials.html">Tutorials</a>
|
||||
<a href="../pages/persistence.html">Persistence</a>
|
||||
<a href="../pages/reference.html">Reference</a>
|
||||
<a href="../pages/spearheadapi.html">API</a>
|
||||
</nav>
|
||||
<button id="theme-toggle" class="theme-toggle" title="Toggle light/dark theme">
|
||||
<svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"/>
|
||||
</svg>
|
||||
<svg id="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display: none;">
|
||||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19H12.998V22H10.998zM10.998 2H12.998V5H10.998zM1.998 11H4.998V13H1.998zM18.998 11H21.998V13H18.998z"/>
|
||||
<path transform="rotate(-45.017 5.986 18.01)" d="M4.986 17.01H6.986V19.01H4.986z"/>
|
||||
<path transform="rotate(-45.001 18.008 5.99)" d="M17.008 4.99H19.008V6.99H17.008z"/>
|
||||
<path transform="rotate(-134.983 5.988 5.99)" d="M4.988 4.99H6.988V6.99H4.988z"/>
|
||||
<path transform="rotate(134.999 18.008 18.01)" d="M17.008 17.01H19.008V19.01H17.008z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<app-header></app-header>
|
||||
</header> <main>
|
||||
<div class="reference-container">
|
||||
<div class="side-nav">
|
||||
<h4 class="side-nav-title"></h4>
|
||||
<ul>
|
||||
<li><a href="#settings" class="side-nav-h2">Settings</a></li>
|
||||
<li><a href="#feedback" class="side-nav-h2">Feedback</a></li>
|
||||
<li><a href="#basic-behavior" class="side-nav-h2">Basic Behavior</a></li>
|
||||
<li><a href="#misc-units" class="side-nav-h2">Misc Units</a></li>
|
||||
<li><a href="#missions" class="side-nav-h2">Missions</a></li>
|
||||
<li><a href="#blue-sams" class="side-nav-h2">Blue SAMs</a></li>
|
||||
<li><a href="#airbases" class="side-nav-h2">Airbases</a></li>
|
||||
<li><a href="#warehouses" class="side-nav-h2">Warehouses</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Persistence</h1>
|
||||
|
||||
<p>
|
||||
Spearhead comes with a custom Persistence option. <br/>
|
||||
It will even save burned out vehicles to give players a consistent battlefield even after the restart. <br/>
|
||||
Spearhead comes with a custom Persistence option. <br />
|
||||
It will even save burned out vehicles to give players a consistent battlefield even after the
|
||||
restart. <br />
|
||||
</p>
|
||||
<p>
|
||||
Most is pretty straightforward, however, some zones are somewhat special. <br/>
|
||||
Most is pretty straightforward, however, some zones are somewhat special. <br />
|
||||
Underneath you'll see all special zones listed.
|
||||
</p>
|
||||
|
||||
@@ -77,9 +44,10 @@
|
||||
|
||||
<h2 id="feedback">Feedback</h2>
|
||||
<p>
|
||||
Since this feature is still very much in development, please let any issues be known as soon as possible and as concise as possible so a fix can be made quickly. <br/>
|
||||
Currently implemented is local file storage. <br/>
|
||||
If enough interest is expressed, cloud-based persistence would be possible. <br/>
|
||||
Since this feature is still very much in development, please let any issues be known as soon as
|
||||
possible and as concise as possible so a fix can be made quickly. <br />
|
||||
Currently implemented is local file storage. <br />
|
||||
If enough interest is expressed, cloud-based persistence would be possible. <br />
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@@ -102,40 +70,46 @@
|
||||
|
||||
<h2 id="basic-behavior">Basic Behavior</h2>
|
||||
<p>
|
||||
While playing the mission, Spearhead is keeping track of all units killed. <br/>
|
||||
These units are stored in memory internally and written to file. <br/>
|
||||
This happens every 2 minutes AND during the "onMissionStop" event to make sure the mission is as up-to-date as possible without having to call IO methods on each event.<br/>
|
||||
While playing the mission, Spearhead is keeping track of all units killed. <br />
|
||||
These units are stored in memory internally and written to file. <br />
|
||||
This happens every 2 minutes AND during the "onMissionStop" event to make sure the mission is as
|
||||
up-to-date as possible without having to call IO methods on each event.<br />
|
||||
</p>
|
||||
|
||||
<h2 id="misc-units">Misc Units</h2>
|
||||
<p>
|
||||
Miscellaneous units will follow basic behavior. <br/>
|
||||
These are units that are part of a stage but are not in a mission or airbase. <br/>
|
||||
These units will be replaced by a static "DEAD" unit after a mission restart at the location it was killed. <br/>
|
||||
Due to blue units spawning afterwards, it's generally best to not have these units move through or over areas where BLUESAMS and Airbase units will spawn after a stage completion.
|
||||
Miscellaneous units will follow basic behavior. <br />
|
||||
These are units that are part of a stage but are not in a mission or airbase. <br />
|
||||
These units will be replaced by a static "DEAD" unit after a mission restart at the location it was
|
||||
killed. <br />
|
||||
Due to blue units spawning afterwards, it's generally best to not have these units move through or
|
||||
over areas where BLUESAMS and Airbase units will spawn after a stage completion.
|
||||
</p>
|
||||
|
||||
<h2 id="missions">Missions</h2>
|
||||
<p>
|
||||
Missions follow the same logic as Misc Units. <br/>
|
||||
Missions follow the same logic as Misc Units. <br />
|
||||
</p>
|
||||
|
||||
<h2 id="blue-sams">Blue SAMs</h2>
|
||||
<p>
|
||||
For Blue SAMs, due to placements easily overlapping between red and blue units within a BLUESAM trigger zone, red units that overlap with blue units will be deleted. <br/>
|
||||
This will ensure that the blue units are placed as needed. <br/>
|
||||
For Blue SAMs, due to placements easily overlapping between red and blue units within a BLUESAM
|
||||
trigger zone, red units that overlap with blue units will be deleted. <br />
|
||||
This will ensure that the blue units are placed as needed. <br />
|
||||
</p>
|
||||
|
||||
<h2 id="airbases">Airbases</h2>
|
||||
<p>
|
||||
Airbase units will also be checked for overlap. As the blue units will be spawned after the RED unit. <br/>
|
||||
Units that were alive when the stage was completed will be removed. Units that died will have corpses spawned. <br/>
|
||||
Airbase units will also be checked for overlap. As the blue units will be spawned after the RED
|
||||
unit. <br />
|
||||
Units that were alive when the stage was completed will be removed. Units that died will have
|
||||
corpses spawned. <br />
|
||||
</p>
|
||||
|
||||
<h2 id="warehouses">Warehouses</h2>
|
||||
<p>
|
||||
Currently, warehouses are not implemented and therefore warehouses are not persisted. <br/>
|
||||
When supply missions and logistics get implemented, warehouses will be persisted as well. <br/>
|
||||
Currently, warehouses are not implemented and therefore warehouses are not persisted. <br />
|
||||
When supply missions and logistics get implemented, warehouses will be persisted as well. <br />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -146,4 +120,4 @@
|
||||
</body>
|
||||
|
||||
</html>
|
||||
```
|
||||
```
|
||||
@@ -4,7 +4,8 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead Reference</title>
|
||||
<title>Spearhead Reference</title> <!-- Google Fonts -->
|
||||
|
||||
<link rel="stylesheet" href="../style/style.css">
|
||||
<script src="../js/site.js"></script>
|
||||
<style>
|
||||
@@ -12,78 +13,17 @@
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
<script type="module" src="../js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="header-box">
|
||||
<a class="logo" href="../index.html">Spearhead</a>
|
||||
<div class="header-right">
|
||||
<nav>
|
||||
<a href="../index.html">Home</a>
|
||||
<a href="../pages/tutorials.html">Tutorials</a>
|
||||
<a href="../pages/persistence.html">Persistence</a>
|
||||
<a href="../pages/reference.html">Reference</a>
|
||||
<a href="../pages/spearheadapi.html">API</a>
|
||||
</nav>
|
||||
<button id="theme-toggle" class="theme-toggle" title="Toggle light/dark theme">
|
||||
<svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"/>
|
||||
</svg>
|
||||
<svg id="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display: none;">
|
||||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19H12.998V22H10.998zM10.998 2H12.998V5H10.998zM1.998 11H4.998V13H1.998zM18.998 11H21.998V13H18.998z"/>
|
||||
<path transform="rotate(-45.017 5.986 18.01)" d="M4.986 17.01H6.986V19.01H4.986z"/>
|
||||
<path transform="rotate(-45.001 18.008 5.99)" d="M17.008 4.99H19.008V6.99H17.008z"/>
|
||||
<path transform="rotate(-134.983 5.988 5.99)" d="M4.988 4.99H6.988V6.99H4.988z"/>
|
||||
<path transform="rotate(134.999 18.008 18.01)" d="M17.008 17.01H19.008V19.01H17.008z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<app-header></app-header>
|
||||
</header>
|
||||
<main>
|
||||
<div class="reference-container">
|
||||
<div class="side-nav">
|
||||
<h4 class="side-nav-title"></h4>
|
||||
<ul>
|
||||
<li><a href="#configuration" class="side-nav-h2">Configuration</a></li>
|
||||
<li><a href="#general-naming-conventions" class="side-nav-h2">Naming Conventions</a>
|
||||
<ul>
|
||||
<li><a href="#stage-zones" class="side-nav-h3">Stage Zones</a></li>
|
||||
<li><a href="#waiting-stages" class="side-nav-h3">Waiting Stages</a></li>
|
||||
<li><a href="#mission-zones" class="side-nav-h3">Mission Zones</a></li>
|
||||
<li><a href="#cap-routes" class="side-nav-h3">CAP Routes</a></li>
|
||||
<li><a href="#farp-zones" class="side-nav-h3">FARP Zones</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#mission-types" class="side-nav-h2">Mission Types</a>
|
||||
<ul>
|
||||
<li><a href="#sam" class="side-nav-h3">SAM</a></li>
|
||||
<li><a href="#dead" class="side-nav-h3">DEAD</a></li>
|
||||
<li><a href="#bai" class="side-nav-h3">BAI</a></li>
|
||||
<li><a href="#cas" class="side-nav-h3">BAI</a></li>
|
||||
<li><a href="#strike" class="side-nav-h3">STRIKE</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#mission-briefings" class="side-nav-h2">Mission Briefings</a>
|
||||
<ul>
|
||||
<li><a href="#special-fields" class="side-nav-h3">Special Fields</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#cap-configuration" class="side-nav-h2">CAP Configuration</a>
|
||||
<ul>
|
||||
<li><a href="#cap-group-naming" class="side-nav-h3">CAP Group Naming</a></li>
|
||||
<li><a href="#cap-group-config" class="side-nav-h3">CAP Group Config</a></li>
|
||||
<li><a href="#active-and-backup-cap" class="side-nav-h3">Active and Backup CAP</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#randomization" class="side-nav-h2">Randomization</a></li>
|
||||
<li><a href="#in-stage-dependencies" class="side-nav-h2">In stage dependencies</a></li>
|
||||
<li><a href="#buildable" class="side-nav-h2">Buildables</a></li>
|
||||
<li><a href="#runway-bombing" class="side-nav-h2">Runway Bombing</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Reference</h1>
|
||||
|
||||
@@ -5,46 +5,18 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead API</title>
|
||||
|
||||
<link rel="stylesheet" href="../style/style.css">
|
||||
<script src="../js/site.js"></script>
|
||||
<script src="../js/site.js"></script>
|
||||
<script type="module" src="../js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="header-box">
|
||||
<a class="logo" href="../index.html">Spearhead</a>
|
||||
<div class="header-right">
|
||||
<nav>
|
||||
<a href="../index.html">Home</a>
|
||||
<a href="../pages/tutorials.html">Tutorials</a>
|
||||
<a href="../pages/persistence.html">Persistence</a>
|
||||
<a href="../pages/reference.html">Reference</a>
|
||||
<a href="../pages/spearheadapi.html">API</a>
|
||||
</nav>
|
||||
<button id="theme-toggle" class="theme-toggle" title="Toggle light/dark theme">
|
||||
<svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"/>
|
||||
</svg>
|
||||
<svg id="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display: none;">
|
||||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19H12.998V22H10.998zM10.998 2H12.998V5H10.998zM1.998 11H4.998V13H1.998zM18.998 11H21.998V13H18.998z"/>
|
||||
<path transform="rotate(-45.017 5.986 18.01)" d="M4.986 17.01H6.986V19.01H4.986z"/>
|
||||
<path transform="rotate(-45.001 18.008 5.99)" d="M17.008 4.99H19.008V6.99H17.008z"/>
|
||||
<path transform="rotate(-134.983 5.988 5.99)" d="M4.988 4.99H6.988V6.99H4.988z"/>
|
||||
<path transform="rotate(134.999 18.008 18.01)" d="M17.008 17.01H19.008V19.01H17.008z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<app-header></app-header>
|
||||
</header> <main>
|
||||
<div class="reference-container">
|
||||
<div class="side-nav">
|
||||
<h4 class="side-nav-title"></h4>
|
||||
<ul>
|
||||
<li><a href="#introduction" class="side-nav-h2">Introduction</a></li>
|
||||
<li><a href="#stages" class="side-nav-h2">Stages</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Spearhead API</h1>
|
||||
|
||||
@@ -5,65 +5,24 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spearhead Tutorials</title>
|
||||
|
||||
<link rel="stylesheet" href="../style/style.css">
|
||||
<script src="../js/site.js"></script>
|
||||
<style>
|
||||
.side-nav a.active {
|
||||
font-weight: bold;
|
||||
color: #4fc3f7;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script type="module" src="../js/components.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="header-box">
|
||||
<a class="logo" href="../index.html">Spearhead</a>
|
||||
<div class="header-right">
|
||||
<nav>
|
||||
<a href="../index.html">Home</a>
|
||||
<a href="../pages/tutorials.html">Tutorials</a>
|
||||
<a href="../pages/persistence.html">Persistence</a>
|
||||
<a href="../pages/reference.html">Reference</a>
|
||||
<a href="../pages/spearheadapi.html">API</a>
|
||||
</nav>
|
||||
<button id="theme-toggle" class="theme-toggle" title="Toggle light/dark theme">
|
||||
<svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"/>
|
||||
</svg>
|
||||
<svg id="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display: none;">
|
||||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19H12.998V22H10.998zM10.998 2H12.998V5H10.998zM1.998 11H4.998V13H1.998zM18.998 11H21.998V13H18.998z"/>
|
||||
<path transform="rotate(-45.017 5.986 18.01)" d="M4.986 17.01H6.986V19.01H4.986z"/>
|
||||
<path transform="rotate(-45.001 18.008 5.99)" d="M17.008 4.99H19.008V6.99H17.008z"/>
|
||||
<path transform="rotate(-134.983 5.988 5.99)" d="M4.988 4.99H6.988V6.99H4.988z"/>
|
||||
<path transform="rotate(134.999 18.008 18.01)" d="M17.008 17.01H19.008V19.01H17.008z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<app-header></app-header>
|
||||
</header> <main>
|
||||
<div class="reference-container">
|
||||
<div class="side-nav">
|
||||
<h4 class="side-nav-title"></h4>
|
||||
<ul>
|
||||
<li><a href="#include-the-script" class="side-nav-h2">Include the Script</a></li>
|
||||
<li><a href="#stages" class="side-nav-h2">Stages</a></li>
|
||||
<li><a href="#setting-up-cap" class="side-nav-h2">Setting up CAP</a>
|
||||
<ul>
|
||||
<li><a href="#creating-cap-routes" class="side-nav-h3">Creating CAP Routes</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#setting-up-the-missions" class="side-nav-h2">Setting up Missions</a>
|
||||
<ul>
|
||||
<li><a href="#mission-1-dead" class="side-nav-h3">Mission: DEAD</a></li>
|
||||
<li><a href="#mission-2-strike" class="side-nav-h3">Mission: STRIKE</a></li>
|
||||
<li><a href="#mission-cas" class="side-nav-h3">Mission: CAS</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#mission-briefings" class="side-nav-h2">Mission Briefings</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<app-sidebar></app-sidebar>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<h1>Tutorials</h1>
|
||||
|
||||
+99
-37
@@ -1,16 +1,17 @@
|
||||
|
||||
:root {
|
||||
/* Dark Theme (Default) - Slightly lighter */
|
||||
--color-bg-primary: #0a0b10; /* Much darker primary background */
|
||||
--color-bg-secondary: #13141a; /* Darker secondary background */
|
||||
--color-bg-tertiary: #181a22; /* Darker tertiary */
|
||||
--color-bg-header: #090a0f; /* Darker header */
|
||||
--color-bg-primary: #1b1d27; /* Much darker primary background */
|
||||
--color-bg-secondary: #2d303f; /* Darker secondary background */
|
||||
--color-bg-tertiary: #2c3041; /* Darker tertiary */
|
||||
--color-bg-header: #10121b; /* Darker header */
|
||||
--color-bg-code: #10121a; /* Almost black code block background */
|
||||
--color-bg-note: rgba(30, 32, 40, 0.85); /* Slightly darker note background */
|
||||
--color-bg-hover: rgba(120, 140, 255, 0.12); /* More visible hover */
|
||||
--color-bg-inline-lua: #181a22; /* Match code block background */
|
||||
--color-bg-note-dark: rgba(40, 35, 30, 0.85); /* Slightly darker note box */
|
||||
|
||||
--color-text-primary: #f6f8fa; /* Brighter text */
|
||||
--color-text-primary: #a5a5a5; /* Brighter text */
|
||||
--color-text-secondary: #bfc8d8; /* Lighter secondary text */
|
||||
--color-text-accent: #7ecbff; /* Brighter accent */
|
||||
--color-text-light: #ffffff;
|
||||
@@ -32,10 +33,11 @@
|
||||
/* Shadow and transparency values - unchanged */
|
||||
--shadow-small: 0 2px 5px rgba(0, 0, 0, 0.3);
|
||||
--shadow-medium: 0 3px 8px rgba(0, 0, 0, 0.5);
|
||||
--shadow-large: 0 4px 12px rgba(0, 0, 0, 0.6);
|
||||
|
||||
/* Common opacity values */
|
||||
--opacity-sidenav: 0.85; /* Increased opacity for better contrast */
|
||||
--shadow-large: 0 4px 12px rgba(0, 0, 0, 0.6); /* Common opacity values */
|
||||
--opacity-sidenav: 0.85; /* Increased opacity for better contrast */ /* Font families with improved Inter setup */
|
||||
--font-family-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
--font-family-code: 'JetBrains Mono', 'Monaco', 'Cascadia Code', monospace;
|
||||
--font-family-heading: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
|
||||
/* Responsive margins - unchanged */
|
||||
--margin-left: 20%;
|
||||
@@ -58,17 +60,23 @@
|
||||
--color-bg-header-accent: #2a2620;
|
||||
--color-logo-gradient: linear-gradient(120deg, #5caaff, #a0e8ff, #ffffff);
|
||||
--color-nav-underline: #b0a890;
|
||||
--color-nav-underline-glow: rgba(176, 168, 144, 0.6);
|
||||
--color-nav-hover-bg: var(--color-bg-hover);
|
||||
--color-nav-underline-glow: rgba(176, 168, 144, 0.6); --color-nav-hover-bg: var(--color-bg-hover);
|
||||
--color-nav-hover-text: #ffffff;
|
||||
--color-nav-hover-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
||||
|
||||
/* Heading colors */
|
||||
--color-heading-h1: #8fc6ff;
|
||||
--color-heading-h2: #b3e0ff;
|
||||
--color-heading-h3: #c9e6ff;
|
||||
--color-heading-h1-border: #8fc6ff;
|
||||
--color-heading-h2-border: #b3e0ff;
|
||||
}
|
||||
|
||||
[data-theme="light"] {
|
||||
--color-bg-primary: #f5f7ff;
|
||||
--color-bg-secondary: #e8ecf7;
|
||||
--color-bg-tertiary: #dce2f0;
|
||||
--color-bg-header: #f0f2fa;
|
||||
--color-bg-primary: #e0e0e0;
|
||||
--color-bg-secondary: #b6b6b6;
|
||||
--color-bg-tertiary: #b6b6b6;
|
||||
--color-bg-header: #d3d3d3;
|
||||
--color-bg-code: #e3e6eb; /* Medium-light gray for code block background */
|
||||
--color-bg-note: rgba(215, 228, 245, 0.75);
|
||||
--color-bg-hover: rgba(100, 120, 200, 0.1);
|
||||
@@ -80,8 +88,8 @@
|
||||
--color-text-accent: #3050b0;
|
||||
--color-text-light: #2a2e40;
|
||||
|
||||
--color-border-primary: #a0a8b8;
|
||||
--color-border-accent: #5c75d9;
|
||||
--color-border-primary: #496cb3;
|
||||
--color-border-accent: #1d46ee;
|
||||
|
||||
--color-link: #3050b0;
|
||||
--color-link-hover: #4060c0;
|
||||
@@ -117,10 +125,16 @@
|
||||
--color-bg-header-accent: #f5e9d2;
|
||||
--color-logo-gradient: linear-gradient(120deg, #225a9e, #3578c7, #70aaff);
|
||||
--color-nav-underline: #e0cfa0;
|
||||
--color-nav-underline-glow: rgba(224, 207, 160, 0.4);
|
||||
--color-nav-hover-bg: var(--color-bg-hover);
|
||||
--color-nav-underline-glow: rgba(224, 207, 160, 0.4); --color-nav-hover-bg: var(--color-bg-hover);
|
||||
--color-nav-hover-text: var(--color-text-primary);
|
||||
--color-nav-hover-shadow: 0 4px 8px rgba(48, 80, 176, 0.15);
|
||||
|
||||
/* Heading colors for light theme */
|
||||
--color-heading-h1: #225a9e;
|
||||
--color-heading-h2: #3578c7;
|
||||
--color-heading-h3: #4a90e2;
|
||||
--color-heading-h1-border: #225a9e;
|
||||
--color-heading-h2-border: #3578c7;
|
||||
}
|
||||
|
||||
html {
|
||||
@@ -131,14 +145,17 @@ html {
|
||||
|
||||
body {
|
||||
color: var(--color-text-primary);
|
||||
font-family: Arial, sans-serif;
|
||||
font-family: var(--font-family-primary);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 16px;
|
||||
line-height: 1.6;
|
||||
line-height: 1.65; /* Increased for better Inter readability */
|
||||
font-weight: 500; /* Medium weight for substantial feel */
|
||||
letter-spacing: 0.015em; /* Slightly more spacing for better readability */
|
||||
font-feature-settings: "cv02", "cv03", "cv04", "cv11"; /* Better Inter alternates */
|
||||
transition: background-color 0.3s ease, color 0.3s ease;
|
||||
}
|
||||
|
||||
@@ -243,6 +260,35 @@ header nav a:hover::after {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.dropdown-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
top: 100%; /* Position below the dropdown */
|
||||
left: 0; /* Align left edge */
|
||||
min-width: 160px;
|
||||
|
||||
background-color: var(--color-bg-secondary);
|
||||
box-shadow: var(--shadow-medium);
|
||||
z-index: 1;
|
||||
border-radius: 8px;
|
||||
|
||||
max-height: 0px;
|
||||
transition: all 1.5s ease;
|
||||
}
|
||||
|
||||
.dropdown:hover .dropdown-content {
|
||||
max-height: 200px;
|
||||
}
|
||||
|
||||
header.collapsible {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
@@ -292,13 +338,13 @@ main {
|
||||
|
||||
/* Side navigation styles */
|
||||
.reference-container {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
display: block; /* Change from flex since sidebar is now fixed */
|
||||
margin-top: 2em;
|
||||
margin-left: var(--margin-left);
|
||||
flex-direction: row;
|
||||
gap: 2em;
|
||||
position: relative;
|
||||
/* Ensure the container doesn't interfere with sticky positioning */
|
||||
overflow: visible;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.side-nav {
|
||||
@@ -307,9 +353,14 @@ main {
|
||||
padding-left: 0;
|
||||
overflow-y: auto;
|
||||
border-right: none;
|
||||
position: sticky;
|
||||
top: 2em;
|
||||
align-self: flex-start;
|
||||
position: fixed;
|
||||
top: 7em; /* Account for header height (5em) + spacing (2em) */
|
||||
left: var(--margin-left);
|
||||
max-height: calc(100vh - 9em); /* Account for header + top spacing */
|
||||
z-index: 10;
|
||||
/* Ensure proper stacking context */
|
||||
transform: translateZ(0);
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.side-nav h4 {
|
||||
@@ -366,7 +417,7 @@ main {
|
||||
.content-wrapper {
|
||||
flex: 1;
|
||||
max-width: 70%;
|
||||
margin-left: 0;
|
||||
margin-left: 220px; /* Account for fixed sidebar width + gap */
|
||||
border-left: 2px solid var(--color-border-accent);
|
||||
padding-left: 1.5em;
|
||||
padding-bottom: 20vh; /* Allow last section to scroll to top */
|
||||
@@ -377,33 +428,34 @@ h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.8em;
|
||||
color: var(--color-text-secondary);
|
||||
font-family: var(--font-family-heading);
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.2em;
|
||||
color: #8fc6ff;
|
||||
color: var(--color-heading-h1);
|
||||
font-weight: 700;
|
||||
text-shadow: 0 1px 4px rgba(143,198,255,0.08);
|
||||
letter-spacing: 0.01em;
|
||||
border-bottom: 1.5px solid #8fc6ff;
|
||||
border-bottom: 1.5px solid var(--color-heading-h1-border);
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.8em;
|
||||
color: #b3e0ff;
|
||||
color: var(--color-heading-h2);
|
||||
font-weight: 600;
|
||||
text-shadow: 0 1px 2px rgba(179,224,255,0.07);
|
||||
letter-spacing: 0.005em;
|
||||
border-bottom: 1px solid #b3e0ff;
|
||||
border-bottom: 1px solid var(--color-heading-h2-border);
|
||||
padding-bottom: 0.2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.4em;
|
||||
color: #c9e6ff;
|
||||
color: var(--color-heading-h3);
|
||||
font-weight: 600;
|
||||
text-shadow: 0 1px 1px rgba(201,230,255,0.06);
|
||||
letter-spacing: 0.005em;
|
||||
@@ -455,7 +507,7 @@ th {
|
||||
.inline-lua {
|
||||
background-color: var(--color-bg-inline-lua);
|
||||
border-radius: 3px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-family: var(--font-family-code);
|
||||
white-space: nowrap;
|
||||
padding: 0.1em 0.3em;
|
||||
color: #23272e;
|
||||
@@ -469,7 +521,7 @@ pre {
|
||||
padding: 1.2em;
|
||||
margin: 1.5em 0;
|
||||
overflow-x: auto;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-family: var(--font-family-code);
|
||||
line-height: 1.4;
|
||||
box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.08);
|
||||
color: #23272e;
|
||||
@@ -590,6 +642,10 @@ img {
|
||||
}
|
||||
.content-wrapper {
|
||||
margin-left: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
.reference-container {
|
||||
margin-left: var(--margin-small);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -605,6 +661,12 @@ img {
|
||||
|
||||
.content-wrapper {
|
||||
width: 100%; /* Make content take full width */
|
||||
margin-left: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.reference-container {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
main {
|
||||
@@ -667,4 +729,4 @@ img {
|
||||
|
||||
.theme-toggle:hover svg {
|
||||
fill: var(--color-text-accent);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user