mirror of
https://github.com/iTracerFacer/DCS_MissionDev.git
synced 2025-12-03 04:14:46 +00:00
Created docs for Dynamic Ground Battle
This commit is contained in:
parent
89acc135fe
commit
8d1f1e948e
656
Moose_DynamicGroundBattle/README.html
Normal file
656
Moose_DynamicGroundBattle/README.html
Normal file
@ -0,0 +1,656 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Moose Dynamic Ground Battle - Documentation</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
background-color: #f5f5f5;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
background-color: white;
|
||||
padding: 40px;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
header {
|
||||
border-bottom: 3px solid #2c5282;
|
||||
padding-bottom: 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #2c5282;
|
||||
font-size: 2.5em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.version-info {
|
||||
color: #666;
|
||||
font-size: 0.9em;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #2c5282;
|
||||
font-size: 1.8em;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 15px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 2px solid #e2e8f0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: #3182ce;
|
||||
font-size: 1.3em;
|
||||
margin-top: 25px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
color: #4299e1;
|
||||
font-size: 1.1em;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 15px;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin-left: 30px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #f7fafc;
|
||||
padding: 2px 6px;
|
||||
border-radius: 3px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.9em;
|
||||
color: #d73a49;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #1e1e1e;
|
||||
color: #d4d4d4;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
overflow-x: auto;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #2c5282;
|
||||
}
|
||||
|
||||
pre code {
|
||||
background-color: transparent;
|
||||
color: #d4d4d4;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.feature-box {
|
||||
background-color: #edf2f7;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 20px;
|
||||
border-left: 4px solid #3182ce;
|
||||
}
|
||||
|
||||
.warning {
|
||||
background-color: #fff5f5;
|
||||
border-left: 4px solid #fc8181;
|
||||
padding: 15px;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.warning::before {
|
||||
content: "⚠️ ";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.info {
|
||||
background-color: #ebf8ff;
|
||||
border-left: 4px solid #4299e1;
|
||||
padding: 15px;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 12px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #e2e8f0;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #2c5282;
|
||||
color: white;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
tr:hover {
|
||||
background-color: #f7fafc;
|
||||
}
|
||||
|
||||
.toc {
|
||||
background-color: #f7fafc;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.toc h3 {
|
||||
margin-top: 0;
|
||||
color: #2c5282;
|
||||
}
|
||||
|
||||
.toc ul {
|
||||
list-style-type: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.toc li {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.toc a {
|
||||
color: #3182ce;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.toc a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.badge {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
border-radius: 12px;
|
||||
font-size: 0.85em;
|
||||
font-weight: 600;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.badge-red {
|
||||
background-color: #feb2b2;
|
||||
color: #742a2a;
|
||||
}
|
||||
|
||||
.badge-blue {
|
||||
background-color: #bee3f8;
|
||||
color: #2c5282;
|
||||
}
|
||||
|
||||
.badge-orange {
|
||||
background-color: #fbd38d;
|
||||
color: #7c2d12;
|
||||
}
|
||||
|
||||
.badge-green {
|
||||
background-color: #c6f6d5;
|
||||
color: #22543d;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 50px;
|
||||
padding-top: 20px;
|
||||
border-top: 2px solid #e2e8f0;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.container {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 15px;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<header>
|
||||
<h1>🎮 Moose Dynamic Ground Battle</h1>
|
||||
<div class="version-info">
|
||||
<strong>Version:</strong> 1.0.3 |
|
||||
<strong>Author:</strong> F99th-TracerFacer |
|
||||
<strong>Date:</strong> November 12, 2024
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="toc">
|
||||
<h3>📋 Table of Contents</h3>
|
||||
<ul>
|
||||
<li><a href="#overview">Overview</a></li>
|
||||
<li><a href="#features">Features</a></li>
|
||||
<li><a href="#installation">Installation Requirements</a></li>
|
||||
<li><a href="#configuration">Configuration</a></li>
|
||||
<li><a href="#gameplay">Gameplay Mechanics</a></li>
|
||||
<li><a href="#menu">In-Game Menu</a></li>
|
||||
<li><a href="#customization">Customization Tips</a></li>
|
||||
<li><a href="#troubleshooting">Troubleshooting</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<section id="overview">
|
||||
<h2>Overview</h2>
|
||||
<p>
|
||||
Moose Dynamic Ground Battle is a sophisticated DCS World mission script that creates an engaging,
|
||||
dynamic ground warfare system between Red and Blue coalitions. The script uses the MOOSE framework
|
||||
to simulate realistic battlefield conditions with zone capture mechanics, intelligent AI movement,
|
||||
and warehouse-based reinforcement systems.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section id="features">
|
||||
<h2>Features</h2>
|
||||
|
||||
<div class="feature-box">
|
||||
<h3>🎯 Zone Capture System</h3>
|
||||
<ul>
|
||||
<li><strong>Multiple Zone States:</strong> Captured, Guarded, Empty, Attacked, and Neutral</li>
|
||||
<li><strong>Visual Indicators:</strong>
|
||||
<ul>
|
||||
<li><span class="badge badge-red">Red</span> Captured by Red forces</li>
|
||||
<li><span class="badge badge-blue">Blue</span> Captured by Blue forces</li>
|
||||
<li><span class="badge badge-orange">Orange</span> Contested zone</li>
|
||||
<li><span class="badge badge-green">Green</span> Empty/Neutral zone</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>Real-time Updates:</strong> Zone status changes trigger messages and visual updates</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feature-box">
|
||||
<h3>🚁 Intelligent AI Behavior</h3>
|
||||
<ul>
|
||||
<li><strong>Automated Spawning:</strong> Infantry and armor groups spawn at random locations within friendly zones</li>
|
||||
<li><strong>Smart Pathfinding:</strong> Units automatically calculate and move to the nearest enemy zone</li>
|
||||
<li><strong>Periodic Task Assignment:</strong> Every configurable interval, units receive new orders based on zone states</li>
|
||||
<li><strong>CTLD Integration:</strong> Troops dropped via CTLD will automatically join the battle</li>
|
||||
<li><strong>Stuck Unit Recovery:</strong> Units that become stuck can be reset to receive new patrol orders</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feature-box">
|
||||
<h3>🏭 Warehouse System</h3>
|
||||
<ul>
|
||||
<li><strong>Dynamic Reinforcement Rate:</strong> Spawn frequency adjusts based on warehouse survival</li>
|
||||
<li><strong>Proportional Impact:</strong> 100% warehouses = 100% reinforcement rate, 50% warehouses = 50% rate</li>
|
||||
<li><strong>Intelligence Markers:</strong> Automatic map markers showing warehouse locations and nearby units</li>
|
||||
<li><strong>Strategic Importance:</strong> Warehouses become critical targets affecting enemy reinforcement capability</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feature-box">
|
||||
<h3>📊 Spawn Management</h3>
|
||||
<ul>
|
||||
<li><strong>Configurable Limits:</strong> Set initial spawn counts and maximum unit limits</li>
|
||||
<li><strong>Template Randomization:</strong> Multiple unit templates for variety</li>
|
||||
<li><strong>Frequency Control:</strong> Adjustable spawn intervals for infantry and armor</li>
|
||||
<li><strong>Coalition Balance:</strong> Independent settings for Red and Blue forces</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="installation">
|
||||
<h2>Installation Requirements</h2>
|
||||
|
||||
<h3>Prerequisites</h3>
|
||||
<ol>
|
||||
<li><strong>MOOSE Framework:</strong> This script requires the MOOSE framework for DCS World
|
||||
<ul>
|
||||
<li>Download from <a href="https://github.com/FlightControl-Master/MOOSE" target="_blank">MOOSE GitHub</a></li>
|
||||
<li>Load MOOSE in your mission before this script</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>DCS World:</strong> Compatible with current DCS World versions</li>
|
||||
<li><strong>Mission Editor:</strong> All groups, zones, and warehouses must be pre-configured</li>
|
||||
</ol>
|
||||
|
||||
<h3>Mission Editor Setup</h3>
|
||||
|
||||
<h4>Required Groups (All LATE ACTIVATE)</h4>
|
||||
|
||||
<p><strong>Red Forces:</strong></p>
|
||||
<pre><code>Infantry: RedInfantry1, RedInfantry2, RedInfantry3, RedInfantry4, RedInfantry5, RedInfantry6
|
||||
Armor: RedArmor1, RedArmor2, RedArmor3, RedArmor4, RedArmor5, RedArmor6</code></pre>
|
||||
|
||||
<p><strong>Blue Forces:</strong></p>
|
||||
<pre><code>Infantry: BlueInfantry1, BlueInfantry2, BlueInfantry3, BlueInfantry4, BlueInfantry5, BlueInfantry6
|
||||
Armor: BlueArmor1, BlueArmor2, BlueArmor3, BlueArmor4, BlueArmor5</code></pre>
|
||||
|
||||
<h4>Required Zones</h4>
|
||||
|
||||
<p><strong>Red Zones:</strong></p>
|
||||
<pre><code>FrontLine1, FrontLine2, FrontLine3, FrontLine4, FrontLine5, FrontLine6</code></pre>
|
||||
|
||||
<p><strong>Blue Zones:</strong></p>
|
||||
<pre><code>FrontLine7, FrontLine8, FrontLine9, FrontLine10, FrontLine11, FrontLine12</code></pre>
|
||||
|
||||
<h4>Required Warehouses (Static Objects)</h4>
|
||||
|
||||
<div class="warning">
|
||||
<strong>Important:</strong> Warehouse names are based on the static <strong>unit name</strong> in the mission editor, not the display name.
|
||||
</div>
|
||||
|
||||
<p><strong>Red Warehouses:</strong></p>
|
||||
<pre><code>RedWarehouse1-1, RedWarehouse2-1, RedWarehouse3-1,
|
||||
RedWarehouse4-1, RedWarehouse5-1, RedWarehouse6-1</code></pre>
|
||||
|
||||
<p><strong>Blue Warehouses:</strong></p>
|
||||
<pre><code>BlueWarehouse1-1, BlueWarehouse2-1, BlueWarehouse3-1,
|
||||
BlueWarehouse4-1, BlueWarehouse5-1, BlueWarehouse6-1</code></pre>
|
||||
|
||||
<h4>Optional: Command Centers</h4>
|
||||
<p>If not using another script for command centers, create these units:</p>
|
||||
<ul>
|
||||
<li><code>BLUEHQ</code> - Blue coalition HQ unit</li>
|
||||
<li><code>REDHQ</code> - Red coalition HQ unit</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="configuration">
|
||||
<h2>Configuration</h2>
|
||||
|
||||
<h3>Basic Settings</h3>
|
||||
<pre><code>-- Infantry Movement
|
||||
MOVING_INFANTRY_PATROLS = false -- Set true to enable infantry movement
|
||||
|
||||
-- Warehouse Markers
|
||||
ENABLE_WAREHOUSE_MARKERS = true
|
||||
UPDATE_MARK_POINTS_SCHED = 60 -- Update interval in seconds
|
||||
MAX_WAREHOUSE_UNIT_LIST_DISTANCE = 5000 -- Search radius in meters
|
||||
|
||||
-- Task Assignment
|
||||
ASSIGN_TASKS_SCHED = 600 -- Reassign tasks every 600 seconds</code></pre>
|
||||
|
||||
<h3>Spawn Configuration</h3>
|
||||
|
||||
<p><strong>Red Forces:</strong></p>
|
||||
<pre><code>INIT_RED_INFANTRY = 5 -- Initial infantry groups
|
||||
MAX_RED_INFANTRY = 100 -- Maximum infantry groups
|
||||
SPAWN_SCHED_RED_INFANTRY = 1800 -- Spawn interval (seconds)
|
||||
|
||||
INIT_RED_ARMOR = 25 -- Initial armor groups
|
||||
MAX_RED_ARMOR = 200 -- Maximum armor groups
|
||||
SPAWN_SCHED_RED_ARMOR = 300 -- Spawn interval (seconds)</code></pre>
|
||||
|
||||
<p><strong>Blue Forces:</strong></p>
|
||||
<pre><code>INIT_BLUE_INFANTRY = 5 -- Initial infantry groups
|
||||
MAX_BLUE_INFANTRY = 100 -- Maximum infantry groups
|
||||
SPAWN_SCHED_BLUE_INFANTRY = 1800 -- Spawn interval (seconds)
|
||||
|
||||
INIT_BLUE_ARMOR = 25 -- Initial armor groups
|
||||
MAX_BLUE_ARMOR = 200 -- Maximum armor groups
|
||||
SPAWN_SCHED_BLUE_ARMOR = 300 -- Spawn interval (seconds)</code></pre>
|
||||
|
||||
<h3>Zone Configuration</h3>
|
||||
<p>Zones can be arranged in any configuration - along a front line, following roads, or scattered across the map:</p>
|
||||
<pre><code>local redZones = {
|
||||
ZONE:New("FrontLine1"),
|
||||
ZONE:New("FrontLine2"),
|
||||
-- Add more zones as needed
|
||||
}
|
||||
|
||||
local blueZones = {
|
||||
ZONE:New("FrontLine7"),
|
||||
ZONE:New("FrontLine8"),
|
||||
-- Add more zones as needed
|
||||
}</code></pre>
|
||||
|
||||
<h3>Template Customization</h3>
|
||||
<p>Add variety by creating multiple unit templates:</p>
|
||||
<pre><code>local redInfantryTemplates = {
|
||||
"RedInfantry1",
|
||||
"RedInfantry2",
|
||||
-- Add more templates for variety
|
||||
}
|
||||
|
||||
local redArmorTemplates = {
|
||||
"RedArmor1",
|
||||
"RedArmor2",
|
||||
-- Add more templates for variety
|
||||
}</code></pre>
|
||||
</section>
|
||||
|
||||
<section id="gameplay">
|
||||
<h2>Gameplay Mechanics</h2>
|
||||
|
||||
<h3>Zone Capture</h3>
|
||||
<ul>
|
||||
<li>Zones change ownership based on unit presence</li>
|
||||
<li>Zones transition through states: Empty → Attacked → Captured → Guarded</li>
|
||||
<li>Players receive notifications when zones change status</li>
|
||||
<li>Visual indicators (smoke and map colors) show current ownership</li>
|
||||
</ul>
|
||||
|
||||
<h3>Unit Behavior</h3>
|
||||
<ol>
|
||||
<li><strong>Spawn:</strong> Units spawn at random locations in friendly zones</li>
|
||||
<li><strong>Task Assignment:</strong> Units calculate the nearest enemy zone</li>
|
||||
<li><strong>Movement:</strong> Units patrol to and around enemy zones</li>
|
||||
<li><strong>Reassignment:</strong> Stationary units receive new orders periodically</li>
|
||||
<li><strong>Combat:</strong> Units engage enemies encountered during patrols</li>
|
||||
</ol>
|
||||
|
||||
<h3>Warehouse Impact</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Warehouse Status</th>
|
||||
<th>Spawn Rate Impact</th>
|
||||
<th>Example</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>100% Alive</td>
|
||||
<td>Normal spawn rate</td>
|
||||
<td>300 seconds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>50% Alive</td>
|
||||
<td>2x spawn delay</td>
|
||||
<td>600 seconds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0% Alive</td>
|
||||
<td>No more spawns</td>
|
||||
<td>∞ (infinite)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Win Conditions</h3>
|
||||
<ul>
|
||||
<li>Mission ends when one coalition captures all zones</li>
|
||||
<li>Periodic checks every 60 seconds</li>
|
||||
<li>Victory message and sound plays for winning side</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="menu">
|
||||
<h2>In-Game Menu</h2>
|
||||
<p>Access warehouse status via the F10 menu:</p>
|
||||
<pre><code>F10 → Warehouse Monitoring → Check Warehouse Status</code></pre>
|
||||
<p>This displays:</p>
|
||||
<ul>
|
||||
<li>Number of warehouses alive per side</li>
|
||||
<li>Current reinforcement capacity percentage</li>
|
||||
<li>Real-time battlefield intelligence</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="customization">
|
||||
<h2>Customization Tips</h2>
|
||||
|
||||
<h3>Adjusting Difficulty</h3>
|
||||
<ul>
|
||||
<li><strong>Increase Challenge:</strong> Reduce friendly spawn rates, increase enemy spawn rates</li>
|
||||
<li><strong>Balance Forces:</strong> Adjust MAX values to limit unit counts</li>
|
||||
<li><strong>Strategic Depth:</strong> Add more zones and warehouses</li>
|
||||
<li><strong>Terrain Adaptation:</strong> Disable infantry movement for mountainous terrain</li>
|
||||
</ul>
|
||||
|
||||
<h3>Adding More Units</h3>
|
||||
<ol>
|
||||
<li>Create new templates in mission editor</li>
|
||||
<li>Add template names to the appropriate arrays</li>
|
||||
<li>Ensure templates are set to LATE ACTIVATE</li>
|
||||
<li>Test spawn behavior and patrol patterns</li>
|
||||
</ol>
|
||||
|
||||
<h3>Zone Layouts</h3>
|
||||
<ul>
|
||||
<li><strong>Linear Front:</strong> Place zones in a line for traditional front-line combat</li>
|
||||
<li><strong>Scattered:</strong> Distribute zones for multi-front warfare</li>
|
||||
<li><strong>Road Network:</strong> Follow roads for realistic vehicle movement</li>
|
||||
<li><strong>Strategic Points:</strong> Place zones at key terrain features</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="troubleshooting">
|
||||
<h2>Troubleshooting</h2>
|
||||
|
||||
<h3>Common Issues</h3>
|
||||
|
||||
<div class="info">
|
||||
<h4>Units Not Spawning:</h4>
|
||||
<ul>
|
||||
<li>Verify all template groups exist in mission editor</li>
|
||||
<li>Check that groups are set to LATE ACTIVATE</li>
|
||||
<li>Review DCS.log for error messages</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<h4>Units Not Moving:</h4>
|
||||
<ul>
|
||||
<li>Check <code>MOVING_INFANTRY_PATROLS</code> setting for infantry</li>
|
||||
<li>Verify zones are properly named and created</li>
|
||||
<li>Check that units aren't already moving when tasks are assigned</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<h4>Warehouse Markers Not Showing:</h4>
|
||||
<ul>
|
||||
<li>Ensure <code>ENABLE_WAREHOUSE_MARKERS = true</code></li>
|
||||
<li>Verify warehouse static objects exist</li>
|
||||
<li>Check that warehouse names match unit names (not display names)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<h4>Zones Not Capturing:</h4>
|
||||
<ul>
|
||||
<li>Verify MOOSE framework is loaded</li>
|
||||
<li>Check zone names match exactly</li>
|
||||
<li>Ensure units are fully inside zones</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="structure">
|
||||
<h2>Script Structure</h2>
|
||||
<pre><code>├── Configuration Section (User Editable)
|
||||
│ ├── Spawn Settings
|
||||
│ ├── Zone Definitions
|
||||
│ ├── Warehouse Definitions
|
||||
│ └── Template Definitions
|
||||
│
|
||||
├── Core Functions (Do Not Edit)
|
||||
│ ├── Zone Capture System
|
||||
│ ├── Task Assignment Logic
|
||||
│ ├── Warehouse Monitoring
|
||||
│ ├── Spawn Frequency Calculator
|
||||
│ └── Win Condition Checker
|
||||
│
|
||||
└── Initialization
|
||||
├── Spawn Schedulers
|
||||
├── Event Handlers
|
||||
└── Menu Creation</code></pre>
|
||||
</section>
|
||||
|
||||
<section id="performance">
|
||||
<h2>Performance Considerations</h2>
|
||||
<ul>
|
||||
<li><strong>Unit Limits:</strong> Higher MAX values increase computational load</li>
|
||||
<li><strong>Update Frequency:</strong> Longer intervals reduce CPU usage but decrease responsiveness</li>
|
||||
<li><strong>Zone Count:</strong> More zones = more calculations per update</li>
|
||||
<li><strong>Template Variety:</strong> More templates add minimal overhead</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="credits">
|
||||
<h2>Credits</h2>
|
||||
<ul>
|
||||
<li><strong>Script Author:</strong> F99th-TracerFacer</li>
|
||||
<li><strong>Framework:</strong> MOOSE Framework by FlightControl</li>
|
||||
<li><strong>Community:</strong> DCS World Mission Editing Community</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="version-history">
|
||||
<h2>Version History</h2>
|
||||
<ul>
|
||||
<li><strong>1.0.3</strong> (November 12, 2024) - Current release</li>
|
||||
<li><strong>1.0.0</strong> (November 11, 2024) - Initial release</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="license">
|
||||
<h2>License</h2>
|
||||
<p>
|
||||
This script is provided as-is for the DCS World community. Feel free to modify and
|
||||
distribute with credit to the original author.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p><strong>Happy Mission Building! 🚁</strong></p>
|
||||
<p>For issues, suggestions, or improvements, please contact the author or submit issues through your community channels.</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
308
Moose_DynamicGroundBattle/README.md
Normal file
308
Moose_DynamicGroundBattle/README.md
Normal file
@ -0,0 +1,308 @@
|
||||
# Moose Dynamic Ground Battle
|
||||
|
||||
**Version:** 1.0.3
|
||||
**Author:** F99th-TracerFacer
|
||||
**Date:** November 12, 2024
|
||||
|
||||
## Overview
|
||||
|
||||
Moose Dynamic Ground Battle is a sophisticated DCS World mission script that creates an engaging, dynamic ground warfare system between Red and Blue coalitions. The script uses the MOOSE framework to simulate realistic battlefield conditions with zone capture mechanics, intelligent AI movement, and warehouse-based reinforcement systems.
|
||||
|
||||
## Features
|
||||
|
||||
### 🎯 Zone Capture System
|
||||
- **Multiple Zone States:** Captured, Guarded, Empty, Attacked, and Neutral
|
||||
- **Visual Indicators:**
|
||||
- 🔴 Red: Captured by Red forces
|
||||
- 🔵 Blue: Captured by Blue forces
|
||||
- 🟠 Orange: Contested zone
|
||||
- 🟢 Green: Empty/Neutral zone
|
||||
- **Real-time Updates:** Zone status changes trigger messages and visual updates
|
||||
|
||||
### 🚁 Intelligent AI Behavior
|
||||
- **Automated Spawning:** Infantry and armor groups spawn at random locations within friendly zones
|
||||
- **Smart Pathfinding:** Units automatically calculate and move to the nearest enemy zone
|
||||
- **Periodic Task Assignment:** Every configurable interval, units receive new orders based on zone states
|
||||
- **CTLD Integration:** Troops dropped via CTLD will automatically join the battle
|
||||
- **Stuck Unit Recovery:** Units that become stuck can be reset to receive new patrol orders
|
||||
|
||||
### 🏭 Warehouse System
|
||||
- **Dynamic Reinforcement Rate:** Spawn frequency adjusts based on warehouse survival
|
||||
- **Proportional Impact:** 100% warehouses = 100% reinforcement rate, 50% warehouses = 50% rate
|
||||
- **Intelligence Markers:** Automatic map markers showing warehouse locations and nearby units
|
||||
- **Strategic Importance:** Warehouses become critical targets affecting enemy reinforcement capability
|
||||
|
||||
### 📊 Spawn Management
|
||||
- **Configurable Limits:** Set initial spawn counts and maximum unit limits
|
||||
- **Template Randomization:** Multiple unit templates for variety
|
||||
- **Frequency Control:** Adjustable spawn intervals for infantry and armor
|
||||
- **Coalition Balance:** Independent settings for Red and Blue forces
|
||||
|
||||
## Installation Requirements
|
||||
|
||||
### Prerequisites
|
||||
1. **MOOSE Framework:** This script requires the MOOSE framework for DCS World
|
||||
- Download from [MOOSE GitHub](https://github.com/FlightControl-Master/MOOSE)
|
||||
- Load MOOSE in your mission before this script
|
||||
2. **DCS World:** Compatible with current DCS World versions
|
||||
3. **Mission Editor:** All groups, zones, and warehouses must be pre-configured
|
||||
|
||||
### Mission Editor Setup
|
||||
|
||||
#### Required Groups (All LATE ACTIVATE)
|
||||
|
||||
**Red Forces:**
|
||||
```
|
||||
Infantry: RedInfantry1, RedInfantry2, RedInfantry3, RedInfantry4, RedInfantry5, RedInfantry6
|
||||
Armor: RedArmor1, RedArmor2, RedArmor3, RedArmor4, RedArmor5, RedArmor6
|
||||
```
|
||||
|
||||
**Blue Forces:**
|
||||
```
|
||||
Infantry: BlueInfantry1, BlueInfantry2, BlueInfantry3, BlueInfantry4, BlueInfantry5, BlueInfantry6
|
||||
Armor: BlueArmor1, BlueArmor2, BlueArmor3, BlueArmor4, BlueArmor5
|
||||
```
|
||||
|
||||
#### Required Zones
|
||||
|
||||
**Red Zones:**
|
||||
```
|
||||
FrontLine1, FrontLine2, FrontLine3, FrontLine4, FrontLine5, FrontLine6
|
||||
```
|
||||
|
||||
**Blue Zones:**
|
||||
```
|
||||
FrontLine7, FrontLine8, FrontLine9, FrontLine10, FrontLine11, FrontLine12
|
||||
```
|
||||
|
||||
#### Required Warehouses (Static Objects)
|
||||
|
||||
**Red Warehouses:**
|
||||
```
|
||||
RedWarehouse1-1, RedWarehouse2-1, RedWarehouse3-1,
|
||||
RedWarehouse4-1, RedWarehouse5-1, RedWarehouse6-1
|
||||
```
|
||||
|
||||
**Blue Warehouses:**
|
||||
```
|
||||
BlueWarehouse1-1, BlueWarehouse2-1, BlueWarehouse3-1,
|
||||
BlueWarehouse4-1, BlueWarehouse5-1, BlueWarehouse6-1
|
||||
```
|
||||
|
||||
⚠️ **Important:** Warehouse names are based on the static **unit name** in the mission editor, not the display name.
|
||||
|
||||
#### Optional: Command Centers
|
||||
If not using another script for command centers, create these units:
|
||||
- `BLUEHQ` - Blue coalition HQ unit
|
||||
- `REDHQ` - Red coalition HQ unit
|
||||
|
||||
## Configuration
|
||||
|
||||
### Basic Settings
|
||||
|
||||
```lua
|
||||
-- Infantry Movement
|
||||
MOVING_INFANTRY_PATROLS = false -- Set true to enable infantry movement
|
||||
|
||||
-- Warehouse Markers
|
||||
ENABLE_WAREHOUSE_MARKERS = true
|
||||
UPDATE_MARK_POINTS_SCHED = 60 -- Update interval in seconds
|
||||
MAX_WAREHOUSE_UNIT_LIST_DISTANCE = 5000 -- Search radius in meters
|
||||
|
||||
-- Task Assignment
|
||||
ASSIGN_TASKS_SCHED = 600 -- Reassign tasks every 600 seconds
|
||||
```
|
||||
|
||||
### Spawn Configuration
|
||||
|
||||
**Red Forces:**
|
||||
```lua
|
||||
INIT_RED_INFANTRY = 5 -- Initial infantry groups
|
||||
MAX_RED_INFANTRY = 100 -- Maximum infantry groups
|
||||
SPAWN_SCHED_RED_INFANTRY = 1800 -- Spawn interval (seconds)
|
||||
|
||||
INIT_RED_ARMOR = 25 -- Initial armor groups
|
||||
MAX_RED_ARMOR = 200 -- Maximum armor groups
|
||||
SPAWN_SCHED_RED_ARMOR = 300 -- Spawn interval (seconds)
|
||||
```
|
||||
|
||||
**Blue Forces:**
|
||||
```lua
|
||||
INIT_BLUE_INFANTRY = 5 -- Initial infantry groups
|
||||
MAX_BLUE_INFANTRY = 100 -- Maximum infantry groups
|
||||
SPAWN_SCHED_BLUE_INFANTRY = 1800 -- Spawn interval (seconds)
|
||||
|
||||
INIT_BLUE_ARMOR = 25 -- Initial armor groups
|
||||
MAX_BLUE_ARMOR = 200 -- Maximum armor groups
|
||||
SPAWN_SCHED_BLUE_ARMOR = 300 -- Spawn interval (seconds)
|
||||
```
|
||||
|
||||
### Zone Configuration
|
||||
|
||||
Zones can be arranged in any configuration - along a front line, following roads, or scattered across the map:
|
||||
|
||||
```lua
|
||||
local redZones = {
|
||||
ZONE:New("FrontLine1"),
|
||||
ZONE:New("FrontLine2"),
|
||||
-- Add more zones as needed
|
||||
}
|
||||
|
||||
local blueZones = {
|
||||
ZONE:New("FrontLine7"),
|
||||
ZONE:New("FrontLine8"),
|
||||
-- Add more zones as needed
|
||||
}
|
||||
```
|
||||
|
||||
### Template Customization
|
||||
|
||||
Add variety by creating multiple unit templates:
|
||||
|
||||
```lua
|
||||
local redInfantryTemplates = {
|
||||
"RedInfantry1",
|
||||
"RedInfantry2",
|
||||
-- Add more templates for variety
|
||||
}
|
||||
|
||||
local redArmorTemplates = {
|
||||
"RedArmor1",
|
||||
"RedArmor2",
|
||||
-- Add more templates for variety
|
||||
}
|
||||
```
|
||||
|
||||
## Gameplay Mechanics
|
||||
|
||||
### Zone Capture
|
||||
- Zones change ownership based on unit presence
|
||||
- Zones transition through states: Empty → Attacked → Captured → Guarded
|
||||
- Players receive notifications when zones change status
|
||||
- Visual indicators (smoke and map colors) show current ownership
|
||||
|
||||
### Unit Behavior
|
||||
1. **Spawn:** Units spawn at random locations in friendly zones
|
||||
2. **Task Assignment:** Units calculate the nearest enemy zone
|
||||
3. **Movement:** Units patrol to and around enemy zones
|
||||
4. **Reassignment:** Stationary units receive new orders periodically
|
||||
5. **Combat:** Units engage enemies encountered during patrols
|
||||
|
||||
### Warehouse Impact
|
||||
- **Full Capacity:** All warehouses alive = normal spawn rate
|
||||
- **Reduced Capacity:** 50% warehouses alive = 2x spawn delay
|
||||
- **No Capacity:** 0% warehouses alive = no more spawns
|
||||
- **Strategic Target:** Destroying enemy warehouses significantly impacts their reinforcement rate
|
||||
|
||||
### Win Conditions
|
||||
- Mission ends when one coalition captures all zones
|
||||
- Periodic checks every 60 seconds
|
||||
- Victory message and sound plays for winning side
|
||||
|
||||
## In-Game Menu
|
||||
|
||||
Access warehouse status via the F10 menu:
|
||||
```
|
||||
F10 → Warehouse Monitoring → Check Warehouse Status
|
||||
```
|
||||
|
||||
This displays:
|
||||
- Number of warehouses alive per side
|
||||
- Current reinforcement capacity percentage
|
||||
- Real-time battlefield intelligence
|
||||
|
||||
## Customization Tips
|
||||
|
||||
### Adjusting Difficulty
|
||||
- **Increase Challenge:** Reduce friendly spawn rates, increase enemy spawn rates
|
||||
- **Balance Forces:** Adjust MAX values to limit unit counts
|
||||
- **Strategic Depth:** Add more zones and warehouses
|
||||
- **Terrain Adaptation:** Disable infantry movement for mountainous terrain
|
||||
|
||||
### Adding More Units
|
||||
1. Create new templates in mission editor
|
||||
2. Add template names to the appropriate arrays
|
||||
3. Ensure templates are set to LATE ACTIVATE
|
||||
4. Test spawn behavior and patrol patterns
|
||||
|
||||
### Zone Layouts
|
||||
- **Linear Front:** Place zones in a line for traditional front-line combat
|
||||
- **Scattered:** Distribute zones for multi-front warfare
|
||||
- **Road Network:** Follow roads for realistic vehicle movement
|
||||
- **Strategic Points:** Place zones at key terrain features
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Units Not Spawning:**
|
||||
- Verify all template groups exist in mission editor
|
||||
- Check that groups are set to LATE ACTIVATE
|
||||
- Review DCS.log for error messages
|
||||
|
||||
**Units Not Moving:**
|
||||
- Check `MOVING_INFANTRY_PATROLS` setting for infantry
|
||||
- Verify zones are properly named and created
|
||||
- Check that units aren't already moving when tasks are assigned
|
||||
|
||||
**Warehouse Markers Not Showing:**
|
||||
- Ensure `ENABLE_WAREHOUSE_MARKERS = true`
|
||||
- Verify warehouse static objects exist
|
||||
- Check that warehouse names match unit names (not display names)
|
||||
|
||||
**Zones Not Capturing:**
|
||||
- Verify MOOSE framework is loaded
|
||||
- Check zone names match exactly
|
||||
- Ensure units are fully inside zones
|
||||
|
||||
## Script Structure
|
||||
|
||||
```
|
||||
├── Configuration Section (User Editable)
|
||||
│ ├── Spawn Settings
|
||||
│ ├── Zone Definitions
|
||||
│ ├── Warehouse Definitions
|
||||
│ └── Template Definitions
|
||||
│
|
||||
├── Core Functions (Do Not Edit)
|
||||
│ ├── Zone Capture System
|
||||
│ ├── Task Assignment Logic
|
||||
│ ├── Warehouse Monitoring
|
||||
│ ├── Spawn Frequency Calculator
|
||||
│ └── Win Condition Checker
|
||||
│
|
||||
└── Initialization
|
||||
├── Spawn Schedulers
|
||||
├── Event Handlers
|
||||
└── Menu Creation
|
||||
```
|
||||
|
||||
## Performance Considerations
|
||||
|
||||
- **Unit Limits:** Higher MAX values increase computational load
|
||||
- **Update Frequency:** Longer intervals reduce CPU usage but decrease responsiveness
|
||||
- **Zone Count:** More zones = more calculations per update
|
||||
- **Template Variety:** More templates add minimal overhead
|
||||
|
||||
## Credits
|
||||
|
||||
- **Script Author:** F99th-TracerFacer
|
||||
- **Framework:** MOOSE Framework by FlightControl
|
||||
- **Community:** DCS World Mission Editing Community
|
||||
|
||||
## Version History
|
||||
|
||||
- **1.0.3** (November 12, 2024) - Current release
|
||||
- **1.0.0** (November 11, 2024) - Initial release
|
||||
|
||||
## License
|
||||
|
||||
This script is provided as-is for the DCS World community. Feel free to modify and distribute with credit to the original author.
|
||||
|
||||
## Support
|
||||
|
||||
For issues, suggestions, or improvements, please contact the author or submit issues through your community channels.
|
||||
|
||||
---
|
||||
|
||||
**Happy Mission Building! 🚁**
|
||||
Loading…
x
Reference in New Issue
Block a user