mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Added configurator GUI
This commit is contained in:
parent
806d0cc52f
commit
6aea839e04
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,8 +1,8 @@
|
||||
bin
|
||||
/scripts/old
|
||||
/scripts/python/dist
|
||||
/scripts/python/build
|
||||
/scripts/python/venv
|
||||
/scripts/python/configurator/dist
|
||||
/scripts/python/configurator/build
|
||||
/scripts/python/configurator/venv
|
||||
.vs
|
||||
x64
|
||||
core.user
|
||||
|
||||
@ -1,17 +1,28 @@
|
||||
cd src
|
||||
msbuild olympus.sln /t:Rebuild /p:Configuration=Release
|
||||
cd ..
|
||||
|
||||
cd scripts/python/configurator
|
||||
call build_configurator.bat
|
||||
cd ../../..
|
||||
|
||||
cd client
|
||||
call npm install
|
||||
rmdir /s /q "hgt"
|
||||
call npm install
|
||||
call npm run emit-declarations
|
||||
call npm run build
|
||||
call npm run build-release
|
||||
|
||||
cd "plugins\controltips"
|
||||
call npm run build
|
||||
call npm install
|
||||
call npm run build-release
|
||||
cd "..\.."
|
||||
|
||||
cd "plugins\databasemanager"
|
||||
call npm run build
|
||||
call npm install
|
||||
call npm run build-release
|
||||
cd "..\.."
|
||||
|
||||
call npm prune --production
|
||||
cd ..
|
||||
|
||||
call "C:\Program Files (x86)\Inno Setup 6\iscc.exe" "installer\olympus.iss"
|
||||
|
||||
487
client/@types/olympus/index.d.ts
vendored
487
client/@types/olympus/index.d.ts
vendored
@ -13,11 +13,11 @@ declare module "contextmenus/contextmenu" {
|
||||
constructor(ID: string);
|
||||
/** Show the contextmenu on top of the map, usually at the location where the user has clicked on it.
|
||||
*
|
||||
* @param x X screen coordinate of the top left corner of the context menu
|
||||
* @param y Y screen coordinate of the top left corner of the context menu
|
||||
* @param latlng Leaflet latlng object of the mouse click
|
||||
* @param x X screen coordinate of the top left corner of the context menu. If undefined, use the old value
|
||||
* @param y Y screen coordinate of the top left corner of the context menu. If undefined, use the old value
|
||||
* @param latlng Leaflet latlng object of the mouse click. If undefined, use the old value
|
||||
*/
|
||||
show(x: number, y: number, latlng: LatLng): void;
|
||||
show(x?: number | undefined, y?: number | undefined, latlng?: LatLng | undefined): void;
|
||||
/** Hide the contextmenu
|
||||
*
|
||||
*/
|
||||
@ -264,6 +264,7 @@ declare module "constants/constants" {
|
||||
export const MGRS_PRECISION_1M = 6;
|
||||
export const DELETE_CYCLE_TIME = 0.05;
|
||||
export const DELETE_SLOW_THRESHOLD = 50;
|
||||
export const GROUPING_ZOOM_TRANSITION = 13;
|
||||
}
|
||||
declare module "map/markers/custommarker" {
|
||||
import { Map, Marker } from "leaflet";
|
||||
@ -651,14 +652,14 @@ declare module "interfaces" {
|
||||
declare module "unit/databases/unitdatabase" {
|
||||
import { LatLng } from "leaflet";
|
||||
import { UnitBlueprint } from "interfaces";
|
||||
export class UnitDatabase {
|
||||
export abstract class UnitDatabase {
|
||||
#private;
|
||||
blueprints: {
|
||||
[key: string]: UnitBlueprint;
|
||||
};
|
||||
constructor(url?: string);
|
||||
load(callback: CallableFunction): void;
|
||||
getCategory(): string;
|
||||
abstract getCategory(): string;
|
||||
getByName(name: string): UnitBlueprint | null;
|
||||
getByLabel(label: string): UnitBlueprint | null;
|
||||
getBlueprints(includeDisabled?: boolean): {
|
||||
@ -679,6 +680,7 @@ declare module "unit/databases/unitdatabase" {
|
||||
generateTestGrid(initialPosition: LatLng): void;
|
||||
getSpawnPointsByLabel(label: string): number;
|
||||
getSpawnPointsByName(name: string): number;
|
||||
getUnkownUnit(name: string): UnitBlueprint;
|
||||
}
|
||||
}
|
||||
declare module "unit/databases/aircraftdatabase" {
|
||||
@ -774,7 +776,7 @@ declare module "other/utils" {
|
||||
ranges?: string[];
|
||||
eras?: string[];
|
||||
}): UnitBlueprint | null;
|
||||
export function getMarkerCategoryByName(name: string): "aircraft" | "helicopter" | "groundunit-other" | "navyunit" | "groundunit";
|
||||
export function getMarkerCategoryByName(name: string): "aircraft" | "helicopter" | "groundunit-sam" | "groundunit-other" | "navyunit";
|
||||
export function getUnitDatabaseByCategory(category: string): import("unit/databases/aircraftdatabase").AircraftDatabase | import("unit/databases/helicopterdatabase").HelicopterDatabase | import("unit/databases/groundunitdatabase").GroundUnitDatabase | import("unit/databases/navyunitdatabase").NavyUnitDatabase | null;
|
||||
export function base64ToBytes(base64: string): ArrayBufferLike;
|
||||
export function enumToState(state: number): string;
|
||||
@ -918,28 +920,6 @@ declare module "contextmenus/mapcontextmenu" {
|
||||
setCoalitionArea(coalitionArea: CoalitionArea): void;
|
||||
}
|
||||
}
|
||||
declare module "contextmenus/unitcontextmenu" {
|
||||
import { ContextMenu } from "contextmenus/contextmenu";
|
||||
/** The UnitContextMenu is shown when the user rightclicks on a unit. It dynamically presents the user with possible actions to perform on the unit. */
|
||||
export class UnitContextMenu extends ContextMenu {
|
||||
/**
|
||||
*
|
||||
* @param ID - the ID of the HTML element which will contain the context menu
|
||||
*/
|
||||
constructor(ID: string);
|
||||
/** Set the options that will be presented to the user in the contextmenu
|
||||
*
|
||||
* @param options Dictionary element containing the text and tooltip of the options shown in the menu
|
||||
* @param callback Callback that will be called when the user clicks on one of the options
|
||||
*/
|
||||
setOptions(options: {
|
||||
[key: string]: {
|
||||
text: string;
|
||||
tooltip: string;
|
||||
};
|
||||
}, callback: CallableFunction): void;
|
||||
}
|
||||
}
|
||||
declare module "map/markers/targetmarker" {
|
||||
import { LatLngExpression, MarkerOptions } from "leaflet";
|
||||
import { CustomMarker } from "map/markers/custommarker";
|
||||
@ -1069,18 +1049,30 @@ declare module "map/rangecircle" {
|
||||
_updatePath(): void;
|
||||
}
|
||||
}
|
||||
declare module "unit/group" {
|
||||
import { Unit } from "unit/unit";
|
||||
export class Group {
|
||||
#private;
|
||||
constructor(name: string);
|
||||
getName(): string;
|
||||
addMember(member: Unit): void;
|
||||
removeMember(member: Unit): void;
|
||||
getMembers(): Unit[];
|
||||
getLeader(): Unit | undefined;
|
||||
}
|
||||
}
|
||||
declare module "unit/unit" {
|
||||
import { LatLng, Map } from 'leaflet';
|
||||
import { CustomMarker } from "map/markers/custommarker";
|
||||
import { UnitDatabase } from "unit/databases/unitdatabase";
|
||||
import { DataExtractor } from "server/dataextractor";
|
||||
import { Ammo, Contact, GeneralSettings, ObjectIconOptions, Offset, Radio, TACAN, UnitData } from "interfaces";
|
||||
import { Group } from "unit/group";
|
||||
import { ContextActionSet } from "unit/contextactionset";
|
||||
/**
|
||||
* Unit class which controls unit behaviour
|
||||
*
|
||||
* Just about everything is a unit - even missiles!
|
||||
*/
|
||||
export class Unit extends CustomMarker {
|
||||
export abstract class Unit extends CustomMarker {
|
||||
#private;
|
||||
ID: number;
|
||||
getAlive(): boolean;
|
||||
@ -1126,33 +1118,50 @@ declare module "unit/unit" {
|
||||
getShotsScatter(): number;
|
||||
getShotsIntensity(): number;
|
||||
getHealth(): number;
|
||||
static getConstructor(type: string): typeof GroundUnit | undefined;
|
||||
static getConstructor(type: string): typeof Aircraft | undefined;
|
||||
constructor(ID: number);
|
||||
getCategory(): string;
|
||||
/********************** Unit data *************************/
|
||||
setData(dataExtractor: DataExtractor): void;
|
||||
drawLines(): void;
|
||||
/** Get unit data collated into an object
|
||||
/********************** Abstract methods *************************/
|
||||
/** Get the unit category string
|
||||
*
|
||||
* @returns object populated by unit information which can also be retrieved using getters
|
||||
* @returns string The unit category
|
||||
*/
|
||||
getData(): UnitData;
|
||||
/**
|
||||
*
|
||||
* @returns string containing the marker category
|
||||
*/
|
||||
getMarkerCategory(): string;
|
||||
/** Get a database of information also in this unit's category
|
||||
*
|
||||
* @returns UnitDatabase
|
||||
*/
|
||||
getDatabase(): UnitDatabase | null;
|
||||
abstract getCategory(): string;
|
||||
/** Get the icon options
|
||||
* Used to configure how the marker appears on the map
|
||||
*
|
||||
* @returns ObjectIconOptions
|
||||
*/
|
||||
getIconOptions(): ObjectIconOptions;
|
||||
abstract getIconOptions(): ObjectIconOptions;
|
||||
/** Get the actions that this unit can perform
|
||||
*
|
||||
*/
|
||||
abstract appendContextActions(contextActionSet: ContextActionSet, targetUnit: Unit | null, targetPosition: LatLng | null): void;
|
||||
/**
|
||||
*
|
||||
* @returns string containing the marker category
|
||||
*/
|
||||
abstract getMarkerCategory(): string;
|
||||
/**
|
||||
*
|
||||
* @returns string containing the default marker
|
||||
*/
|
||||
abstract getDefaultMarker(): string;
|
||||
/********************** Unit data *************************/
|
||||
/** This function is called by the units manager to update all the data coming from the backend. It reads the binary raw data using a DataExtractor
|
||||
*
|
||||
* @param dataExtractor The DataExtractor object pointing to the binary buffer which contains the raw data coming from the backend
|
||||
*/
|
||||
setData(dataExtractor: DataExtractor): void;
|
||||
/** Get unit data collated into an object
|
||||
*
|
||||
* @returns object populated by unit information which can also be retrieved using getters
|
||||
*/
|
||||
getData(): UnitData;
|
||||
/** Get a database of information also in this unit's category
|
||||
*
|
||||
* @returns UnitDatabase
|
||||
*/
|
||||
getDatabase(): UnitDatabase | null;
|
||||
/** Set the unit as alive or dead
|
||||
*
|
||||
* @param newAlive (boolean) true = alive, false = dead
|
||||
@ -1168,17 +1177,7 @@ declare module "unit/unit" {
|
||||
* @returns boolean
|
||||
*/
|
||||
getSelected(): boolean;
|
||||
/** Set whether this unit is selectable
|
||||
*
|
||||
* @param selectable (boolean)
|
||||
*/
|
||||
setSelectable(selectable: boolean): void;
|
||||
/** Get whether this unit is selectable
|
||||
*
|
||||
* @returns boolean
|
||||
*/
|
||||
getSelectable(): boolean;
|
||||
/** Set the number of the hotgroup to which the unit belongs
|
||||
/** Set the number of the hotgroup to which the unit belongss
|
||||
*
|
||||
* @param hotgroup (number)
|
||||
*/
|
||||
@ -1203,6 +1202,11 @@ declare module "unit/unit" {
|
||||
* @returns Unit[]
|
||||
*/
|
||||
getGroupMembers(): Unit[];
|
||||
/** Return the leader of the group
|
||||
*
|
||||
* @returns Unit The leader of the group
|
||||
*/
|
||||
getGroupLeader(): Unit | null | undefined;
|
||||
/** Returns whether the user is allowed to command this unit, based on coalition
|
||||
*
|
||||
* @returns boolean
|
||||
@ -1210,6 +1214,11 @@ declare module "unit/unit" {
|
||||
belongsToCommandedCoalition(): boolean;
|
||||
getType(): string;
|
||||
getSpawnPoints(): number | undefined;
|
||||
getDatabaseEntry(): import("interfaces").UnitBlueprint | undefined;
|
||||
getGroup(): Group | null;
|
||||
setGroup(group: Group | null): void;
|
||||
drawLines(): void;
|
||||
checkZoomRedraw(): boolean;
|
||||
/********************** Icon *************************/
|
||||
createIcon(): void;
|
||||
/********************** Visibility *************************/
|
||||
@ -1223,7 +1232,6 @@ declare module "unit/unit" {
|
||||
isInViewport(): boolean;
|
||||
canTargetPoint(): boolean;
|
||||
canRearm(): boolean;
|
||||
canLandAtPoint(): boolean;
|
||||
canAAA(): boolean;
|
||||
indirectFire(): boolean;
|
||||
isTanker(): boolean;
|
||||
@ -1264,19 +1272,12 @@ declare module "unit/unit" {
|
||||
setShotsScatter(shotsScatter: number): void;
|
||||
setShotsIntensity(shotsIntensity: number): void;
|
||||
/***********************************************/
|
||||
getActions(): {
|
||||
[key: string]: {
|
||||
text: string;
|
||||
tooltip: string;
|
||||
type: string;
|
||||
};
|
||||
};
|
||||
executeAction(e: any, action: string): void;
|
||||
/***********************************************/
|
||||
onAdd(map: Map): this;
|
||||
getActionOptions(): {};
|
||||
onGroupChanged(member: Unit): void;
|
||||
showFollowOptions(units: Unit[]): void;
|
||||
applyFollowOptions(formation: string, units: Unit[]): void;
|
||||
}
|
||||
export class AirUnit extends Unit {
|
||||
export abstract class AirUnit extends Unit {
|
||||
getIconOptions(): {
|
||||
showState: boolean;
|
||||
showVvi: boolean;
|
||||
@ -1290,21 +1291,21 @@ declare module "unit/unit" {
|
||||
showCallsign: boolean;
|
||||
rotateToHeading: boolean;
|
||||
};
|
||||
getActions(): {
|
||||
[key: string]: {
|
||||
text: string;
|
||||
tooltip: string;
|
||||
type: string;
|
||||
};
|
||||
};
|
||||
appendContextActions(contextActionSet: ContextActionSet, targetUnit: Unit | null, targetPosition: LatLng | null): void;
|
||||
}
|
||||
export class Aircraft extends AirUnit {
|
||||
constructor(ID: number);
|
||||
getCategory(): string;
|
||||
appendContextActions(contextActionSet: ContextActionSet, targetUnit: Unit | null, targetPosition: LatLng | null): void;
|
||||
getMarkerCategory(): string;
|
||||
getDefaultMarker(): string;
|
||||
}
|
||||
export class Helicopter extends AirUnit {
|
||||
constructor(ID: number);
|
||||
getCategory(): string;
|
||||
appendContextActions(contextActionSet: ContextActionSet, targetUnit: Unit | null, targetPosition: LatLng | null): void;
|
||||
getMarkerCategory(): string;
|
||||
getDefaultMarker(): string;
|
||||
}
|
||||
export class GroundUnit extends Unit {
|
||||
constructor(ID: number);
|
||||
@ -1321,15 +1322,13 @@ declare module "unit/unit" {
|
||||
showCallsign: boolean;
|
||||
rotateToHeading: boolean;
|
||||
};
|
||||
getActions(): {
|
||||
[key: string]: {
|
||||
text: string;
|
||||
tooltip: string;
|
||||
type: string;
|
||||
};
|
||||
};
|
||||
appendContextActions(contextActionSet: ContextActionSet, targetUnit: Unit | null, targetPosition: LatLng | null): void;
|
||||
getCategory(): string;
|
||||
getType(): string;
|
||||
getDatabaseEntry(): import("interfaces").UnitBlueprint | undefined;
|
||||
checkZoomRedraw(): boolean;
|
||||
getMarkerCategory(): "groundunit-sam" | "groundunit";
|
||||
getDefaultMarker(): string;
|
||||
}
|
||||
export class NavyUnit extends Unit {
|
||||
constructor(ID: number);
|
||||
@ -1346,16 +1345,59 @@ declare module "unit/unit" {
|
||||
showCallsign: boolean;
|
||||
rotateToHeading: boolean;
|
||||
};
|
||||
getActions(): {
|
||||
[key: string]: {
|
||||
text: string;
|
||||
tooltip: string;
|
||||
type: string;
|
||||
};
|
||||
};
|
||||
getMarkerCategory(): string;
|
||||
appendContextActions(contextActionSet: ContextActionSet, targetUnit: Unit | null, targetPosition: LatLng | null): void;
|
||||
getCategory(): string;
|
||||
getType(): string;
|
||||
getMarkerCategory(): string;
|
||||
getDefaultMarker(): string;
|
||||
}
|
||||
}
|
||||
declare module "unit/contextaction" {
|
||||
import { Unit } from "unit/unit";
|
||||
export interface ContextActionOptions {
|
||||
isScenic?: boolean;
|
||||
}
|
||||
export class ContextAction {
|
||||
#private;
|
||||
constructor(id: string, label: string, description: string, callback: CallableFunction, hideContextAfterExecution: boolean | undefined, options: ContextActionOptions);
|
||||
addUnit(unit: Unit): void;
|
||||
getId(): string;
|
||||
getLabel(): string;
|
||||
getOptions(): ContextActionOptions;
|
||||
getDescription(): string;
|
||||
getCallback(): CallableFunction | null;
|
||||
executeCallback(): void;
|
||||
getHideContextAfterExecution(): boolean;
|
||||
}
|
||||
}
|
||||
declare module "unit/contextactionset" {
|
||||
import { ContextAction, ContextActionOptions } from "unit/contextaction";
|
||||
import { Unit } from "unit/unit";
|
||||
export class ContextActionSet {
|
||||
#private;
|
||||
constructor();
|
||||
addContextAction(unit: Unit, id: string, label: string, description: string, callback: CallableFunction, hideContextAfterExecution?: boolean, options?: ContextActionOptions): void;
|
||||
getContextActions(): {
|
||||
[key: string]: ContextAction;
|
||||
};
|
||||
}
|
||||
}
|
||||
declare module "contextmenus/unitcontextmenu" {
|
||||
import { ContextActionSet } from "unit/contextactionset";
|
||||
import { ContextMenu } from "contextmenus/contextmenu";
|
||||
/** The UnitContextMenu is shown when the user rightclicks on a unit. It dynamically presents the user with possible actions to perform on the unit. */
|
||||
export class UnitContextMenu extends ContextMenu {
|
||||
/**
|
||||
*
|
||||
* @param ID - the ID of the HTML element which will contain the context menu
|
||||
*/
|
||||
constructor(ID: string);
|
||||
/** Set the options that will be presented to the user in the contextmenu
|
||||
*
|
||||
* @param options Dictionary element containing the text and tooltip of the options shown in the menu
|
||||
* @param callback Callback that will be called when the user clicks on one of the options
|
||||
*/
|
||||
setContextActions(contextActionSet: ContextActionSet): void;
|
||||
}
|
||||
}
|
||||
declare module "contextmenus/airbasecontextmenu" {
|
||||
@ -1457,7 +1499,7 @@ declare module "contextmenus/airbasespawnmenu" {
|
||||
* @param x X screen coordinate of the top left corner of the context menu
|
||||
* @param y Y screen coordinate of the top left corner of the context menu
|
||||
*/
|
||||
show(x: number, y: number): void;
|
||||
show(x: number | undefined, y: number | undefined): void;
|
||||
/** Sets the airbase at which the new unit will be spawned
|
||||
*
|
||||
* @param airbase The airbase at which the new unit will be spawned. Note: if the airbase has no suitable parking spots, the airplane may be spawned on the runway, or spawning may fail.
|
||||
@ -1465,6 +1507,97 @@ declare module "contextmenus/airbasespawnmenu" {
|
||||
setAirbase(airbase: Airbase): void;
|
||||
}
|
||||
}
|
||||
declare module "map/touchboxselect" {
|
||||
export var TouchBoxSelect: (new (...args: any[]) => any) & typeof import("leaflet").Class;
|
||||
}
|
||||
declare module "map/markers/destinationpreviewHandle" {
|
||||
import { LatLng } from "leaflet";
|
||||
import { CustomMarker } from "map/markers/custommarker";
|
||||
export class DestinationPreviewHandle extends CustomMarker {
|
||||
constructor(latlng: LatLng);
|
||||
createIcon(): void;
|
||||
}
|
||||
}
|
||||
declare module "map/map" {
|
||||
import * as L from "leaflet";
|
||||
import { MapContextMenu } from "contextmenus/mapcontextmenu";
|
||||
import { UnitContextMenu } from "contextmenus/unitcontextmenu";
|
||||
import { AirbaseContextMenu } from "contextmenus/airbasecontextmenu";
|
||||
import { Airbase } from "mission/airbase";
|
||||
import { Unit } from "unit/unit";
|
||||
import { TemporaryUnitMarker } from "map/markers/temporaryunitmarker";
|
||||
import { CoalitionArea } from "map/coalitionarea/coalitionarea";
|
||||
import { CoalitionAreaContextMenu } from "contextmenus/coalitionareacontextmenu";
|
||||
import { AirbaseSpawnContextMenu } from "contextmenus/airbasespawnmenu";
|
||||
export type MapMarkerControl = {
|
||||
"image": string;
|
||||
"isProtected"?: boolean;
|
||||
"name": string;
|
||||
"protectable"?: boolean;
|
||||
"toggles": string[];
|
||||
"tooltip": string;
|
||||
};
|
||||
export class Map extends L.Map {
|
||||
#private;
|
||||
/**
|
||||
*
|
||||
* @param ID - the ID of the HTML element which will contain the context menu
|
||||
*/
|
||||
constructor(ID: string);
|
||||
addVisibilityOption(option: string, defaultValue: boolean): void;
|
||||
setLayer(layerName: string): void;
|
||||
getLayers(): string[];
|
||||
setState(state: string): void;
|
||||
getState(): string;
|
||||
deselectAllCoalitionAreas(): void;
|
||||
deleteCoalitionArea(coalitionArea: CoalitionArea): void;
|
||||
setHiddenType(key: string, value: boolean): void;
|
||||
getHiddenTypes(): string[];
|
||||
hideAllContextMenus(): void;
|
||||
showMapContextMenu(x: number, y: number, latlng: L.LatLng): void;
|
||||
hideMapContextMenu(): void;
|
||||
getMapContextMenu(): MapContextMenu;
|
||||
showUnitContextMenu(x?: number | undefined, y?: number | undefined, latlng?: L.LatLng | undefined): void;
|
||||
getUnitContextMenu(): UnitContextMenu;
|
||||
hideUnitContextMenu(): void;
|
||||
showAirbaseContextMenu(airbase: Airbase, x?: number | undefined, y?: number | undefined, latlng?: L.LatLng | undefined): void;
|
||||
getAirbaseContextMenu(): AirbaseContextMenu;
|
||||
hideAirbaseContextMenu(): void;
|
||||
showAirbaseSpawnMenu(airbase: Airbase, x?: number | undefined, y?: number | undefined, latlng?: L.LatLng | undefined): void;
|
||||
getAirbaseSpawnMenu(): AirbaseSpawnContextMenu;
|
||||
hideAirbaseSpawnMenu(): void;
|
||||
showCoalitionAreaContextMenu(x: number, y: number, latlng: L.LatLng, coalitionArea: CoalitionArea): void;
|
||||
getCoalitionAreaContextMenu(): CoalitionAreaContextMenu;
|
||||
hideCoalitionAreaContextMenu(): void;
|
||||
isZooming(): boolean;
|
||||
getMousePosition(): L.Point;
|
||||
getMouseCoordinates(): L.LatLng;
|
||||
spawnFromAirbase(e: any): void;
|
||||
centerOnUnit(ID: number | null): void;
|
||||
getCenterUnit(): Unit | null;
|
||||
setTheatre(theatre: string): void;
|
||||
getMiniMapLayerGroup(): L.LayerGroup<any>;
|
||||
handleMapPanning(e: any): void;
|
||||
addTemporaryMarker(latlng: L.LatLng, name: string, coalition: string, commandHash?: string): TemporaryUnitMarker;
|
||||
getSelectedCoalitionArea(): CoalitionArea | undefined;
|
||||
bringCoalitionAreaToBack(coalitionArea: CoalitionArea): void;
|
||||
getVisibilityOptions(): {
|
||||
[key: string]: boolean;
|
||||
};
|
||||
getPreviousZoom(): number;
|
||||
unitIsProtected(unit: Unit): boolean;
|
||||
getMapMarkerControls(): MapMarkerControl[];
|
||||
}
|
||||
}
|
||||
declare module "mission/bullseye" {
|
||||
import { CustomMarker } from "map/markers/custommarker";
|
||||
export class Bullseye extends CustomMarker {
|
||||
#private;
|
||||
createIcon(): void;
|
||||
setCoalition(coalition: string): void;
|
||||
getCoalition(): string;
|
||||
}
|
||||
}
|
||||
declare module "context/context" {
|
||||
export interface ContextInterface {
|
||||
useSpawnMenu?: boolean;
|
||||
@ -1532,96 +1665,6 @@ declare module "popups/popup" {
|
||||
setText(text: string): void;
|
||||
}
|
||||
}
|
||||
declare module "map/touchboxselect" {
|
||||
export var TouchBoxSelect: (new (...args: any[]) => any) & typeof import("leaflet").Class;
|
||||
}
|
||||
declare module "map/markers/destinationpreviewHandle" {
|
||||
import { LatLng } from "leaflet";
|
||||
import { CustomMarker } from "map/markers/custommarker";
|
||||
export class DestinationPreviewHandle extends CustomMarker {
|
||||
constructor(latlng: LatLng);
|
||||
createIcon(): void;
|
||||
}
|
||||
}
|
||||
declare module "map/map" {
|
||||
import * as L from "leaflet";
|
||||
import { MapContextMenu } from "contextmenus/mapcontextmenu";
|
||||
import { UnitContextMenu } from "contextmenus/unitcontextmenu";
|
||||
import { AirbaseContextMenu } from "contextmenus/airbasecontextmenu";
|
||||
import { Airbase } from "mission/airbase";
|
||||
import { Unit } from "unit/unit";
|
||||
import { TemporaryUnitMarker } from "map/markers/temporaryunitmarker";
|
||||
import { CoalitionArea } from "map/coalitionarea/coalitionarea";
|
||||
import { CoalitionAreaContextMenu } from "contextmenus/coalitionareacontextmenu";
|
||||
import { AirbaseSpawnContextMenu } from "contextmenus/airbasespawnmenu";
|
||||
export type MapMarkerControl = {
|
||||
"image": string;
|
||||
"isProtected"?: boolean;
|
||||
"name": string;
|
||||
"protectable"?: boolean;
|
||||
"toggles": string[];
|
||||
"tooltip": string;
|
||||
};
|
||||
export class Map extends L.Map {
|
||||
#private;
|
||||
/**
|
||||
*
|
||||
* @param ID - the ID of the HTML element which will contain the context menu
|
||||
*/
|
||||
constructor(ID: string);
|
||||
addVisibilityOption(option: string, defaultValue: boolean): void;
|
||||
setLayer(layerName: string): void;
|
||||
getLayers(): string[];
|
||||
setState(state: string): void;
|
||||
getState(): string;
|
||||
deselectAllCoalitionAreas(): void;
|
||||
deleteCoalitionArea(coalitionArea: CoalitionArea): void;
|
||||
setHiddenType(key: string, value: boolean): void;
|
||||
getHiddenTypes(): string[];
|
||||
hideAllContextMenus(): void;
|
||||
showMapContextMenu(x: number, y: number, latlng: L.LatLng): void;
|
||||
hideMapContextMenu(): void;
|
||||
getMapContextMenu(): MapContextMenu;
|
||||
showUnitContextMenu(x: number, y: number, latlng: L.LatLng): void;
|
||||
getUnitContextMenu(): UnitContextMenu;
|
||||
hideUnitContextMenu(): void;
|
||||
showAirbaseContextMenu(x: number, y: number, latlng: L.LatLng, airbase: Airbase): void;
|
||||
getAirbaseContextMenu(): AirbaseContextMenu;
|
||||
hideAirbaseContextMenu(): void;
|
||||
showAirbaseSpawnMenu(x: number, y: number, latlng: L.LatLng, airbase: Airbase): void;
|
||||
getAirbaseSpawnMenu(): AirbaseSpawnContextMenu;
|
||||
hideAirbaseSpawnMenu(): void;
|
||||
showCoalitionAreaContextMenu(x: number, y: number, latlng: L.LatLng, coalitionArea: CoalitionArea): void;
|
||||
getCoalitionAreaContextMenu(): CoalitionAreaContextMenu;
|
||||
hideCoalitionAreaContextMenu(): void;
|
||||
isZooming(): boolean;
|
||||
getMousePosition(): L.Point;
|
||||
getMouseCoordinates(): L.LatLng;
|
||||
spawnFromAirbase(e: any): void;
|
||||
centerOnUnit(ID: number | null): void;
|
||||
getCenterUnit(): Unit | null;
|
||||
setTheatre(theatre: string): void;
|
||||
getMiniMapLayerGroup(): L.LayerGroup<any>;
|
||||
handleMapPanning(e: any): void;
|
||||
addTemporaryMarker(latlng: L.LatLng, name: string, coalition: string, commandHash?: string): TemporaryUnitMarker;
|
||||
getSelectedCoalitionArea(): CoalitionArea | undefined;
|
||||
bringCoalitionAreaToBack(coalitionArea: CoalitionArea): void;
|
||||
getVisibilityOptions(): {
|
||||
[key: string]: boolean;
|
||||
};
|
||||
unitIsProtected(unit: Unit): boolean;
|
||||
getMapMarkerControls(): MapMarkerControl[];
|
||||
}
|
||||
}
|
||||
declare module "mission/bullseye" {
|
||||
import { CustomMarker } from "map/markers/custommarker";
|
||||
export class Bullseye extends CustomMarker {
|
||||
#private;
|
||||
createIcon(): void;
|
||||
setCoalition(coalition: string): void;
|
||||
getCoalition(): string;
|
||||
}
|
||||
}
|
||||
declare module "mission/missionmanager" {
|
||||
import { Airbase } from "mission/airbase";
|
||||
import { Bullseye } from "mission/bullseye";
|
||||
@ -1922,139 +1965,139 @@ declare module "unit/unitsmanager" {
|
||||
* @param mantainRelativePosition If true, the selected units will mantain their relative positions when reaching the target. This is useful to maintain a formation for groun/navy units
|
||||
* @param rotation Rotation in radians by which the formation will be rigidly rotated. E.g. a ( V ) formation will look like this ( < ) if rotated pi/4 radians (90 degrees)
|
||||
*/
|
||||
selectedUnitsAddDestination(latlng: L.LatLng, mantainRelativePosition: boolean, rotation: number): void;
|
||||
addDestination(latlng: L.LatLng, mantainRelativePosition: boolean, rotation: number, units?: Unit[] | null): void;
|
||||
/** Clear the destinations of all the selected units
|
||||
*
|
||||
*/
|
||||
selectedUnitsClearDestinations(): void;
|
||||
clearDestinations(units?: Unit[] | null): void;
|
||||
/** Instruct all the selected units to land at a specific location
|
||||
*
|
||||
* @param latlng Location where to land at
|
||||
*/
|
||||
selectedUnitsLandAt(latlng: LatLng): void;
|
||||
landAt(latlng: LatLng, units?: Unit[] | null): void;
|
||||
/** Instruct all the selected units to change their speed
|
||||
*
|
||||
* @param speedChange Speed change, either "stop", "slow", or "fast". The specific value depends on the unit category
|
||||
*/
|
||||
selectedUnitsChangeSpeed(speedChange: string): void;
|
||||
changeSpeed(speedChange: string, units?: Unit[] | null): void;
|
||||
/** Instruct all the selected units to change their altitude
|
||||
*
|
||||
* @param altitudeChange Altitude change, either "climb" or "descend". The specific value depends on the unit category
|
||||
*/
|
||||
selectedUnitsChangeAltitude(altitudeChange: string): void;
|
||||
changeAltitude(altitudeChange: string, units?: Unit[] | null): void;
|
||||
/** Set a specific speed to all the selected units
|
||||
*
|
||||
* @param speed Value to set, in m/s
|
||||
*/
|
||||
selectedUnitsSetSpeed(speed: number): void;
|
||||
setSpeed(speed: number, units?: Unit[] | null): void;
|
||||
/** Set a specific speed type to all the selected units
|
||||
*
|
||||
* @param speedType Value to set, either "CAS" or "GS". If "CAS" is selected, the unit will try to maintain the selected Calibrated Air Speed, but DCS will still only maintain a Ground Speed value so errors may arise depending on wind.
|
||||
*/
|
||||
selectedUnitsSetSpeedType(speedType: string): void;
|
||||
setSpeedType(speedType: string, units?: Unit[] | null): void;
|
||||
/** Set a specific altitude to all the selected units
|
||||
*
|
||||
* @param altitude Value to set, in m
|
||||
*/
|
||||
selectedUnitsSetAltitude(altitude: number): void;
|
||||
setAltitude(altitude: number, units?: Unit[] | null): void;
|
||||
/** Set a specific altitude type to all the selected units
|
||||
*
|
||||
* @param altitudeType Value to set, either "ASL" or "AGL". If "AGL" is selected, the unit will try to maintain the selected Above Ground Level altitude. Due to a DCS bug, this will only be true at the final position.
|
||||
*/
|
||||
selectedUnitsSetAltitudeType(altitudeType: string): void;
|
||||
setAltitudeType(altitudeType: string, units?: Unit[] | null): void;
|
||||
/** Set a specific ROE to all the selected units
|
||||
*
|
||||
* @param ROE Value to set, see constants for acceptable values
|
||||
*/
|
||||
selectedUnitsSetROE(ROE: string): void;
|
||||
setROE(ROE: string, units?: Unit[] | null): void;
|
||||
/** Set a specific reaction to threat to all the selected units
|
||||
*
|
||||
* @param reactionToThreat Value to set, see constants for acceptable values
|
||||
*/
|
||||
selectedUnitsSetReactionToThreat(reactionToThreat: string): void;
|
||||
setReactionToThreat(reactionToThreat: string, units?: Unit[] | null): void;
|
||||
/** Set a specific emissions & countermeasures to all the selected units
|
||||
*
|
||||
* @param emissionCountermeasure Value to set, see constants for acceptable values
|
||||
*/
|
||||
selectedUnitsSetEmissionsCountermeasures(emissionCountermeasure: string): void;
|
||||
setEmissionsCountermeasures(emissionCountermeasure: string, units?: Unit[] | null): void;
|
||||
/** Turn selected units on or off, only works on ground and navy units
|
||||
*
|
||||
* @param onOff If true, the unit will be turned on
|
||||
*/
|
||||
selectedUnitsSetOnOff(onOff: boolean): void;
|
||||
setOnOff(onOff: boolean, units?: Unit[] | null): void;
|
||||
/** Instruct the selected units to follow roads, only works on ground units
|
||||
*
|
||||
* @param followRoads If true, units will follow roads
|
||||
*/
|
||||
selectedUnitsSetFollowRoads(followRoads: boolean): void;
|
||||
setFollowRoads(followRoads: boolean, units?: Unit[] | null): void;
|
||||
/** Instruct selected units to operate as a certain coalition
|
||||
*
|
||||
* @param operateAsBool If true, units will operate as blue
|
||||
*/
|
||||
selectedUnitsSetOperateAs(operateAsBool: boolean): void;
|
||||
setOperateAs(operateAsBool: boolean, units?: Unit[] | null): void;
|
||||
/** Instruct units to attack a specific unit
|
||||
*
|
||||
* @param ID ID of the unit to attack
|
||||
*/
|
||||
selectedUnitsAttackUnit(ID: number): void;
|
||||
attackUnit(ID: number, units?: Unit[] | null): void;
|
||||
/** Instruct units to refuel at the nearest tanker, if possible. Else units will RTB
|
||||
*
|
||||
*/
|
||||
selectedUnitsRefuel(): void;
|
||||
refuel(units?: Unit[] | null): void;
|
||||
/** Instruct the selected units to follow another unit in a formation. Only works for aircrafts and helicopters.
|
||||
*
|
||||
* @param ID ID of the unit to follow
|
||||
* @param offset Optional parameter, defines a static offset. X: front-rear, positive front, Y: top-bottom, positive top, Z: left-right, positive right
|
||||
* @param formation Optional parameter, defines a predefined formation type. Values are: "trail", "echelon-lh", "echelon-rh", "line-abreast-lh", "line-abreast-rh", "front", "diamond"
|
||||
*/
|
||||
selectedUnitsFollowUnit(ID: number, offset?: {
|
||||
followUnit(ID: number, offset?: {
|
||||
"x": number;
|
||||
"y": number;
|
||||
"z": number;
|
||||
}, formation?: string): void;
|
||||
}, formation?: string, units?: Unit[] | null): void;
|
||||
/** Instruct the selected units to perform precision bombing of specific coordinates
|
||||
*
|
||||
* @param latlng Location to bomb
|
||||
*/
|
||||
selectedUnitsBombPoint(latlng: LatLng): void;
|
||||
bombPoint(latlng: LatLng, units?: Unit[] | null): void;
|
||||
/** Instruct the selected units to perform carpet bombing of specific coordinates
|
||||
*
|
||||
* @param latlng Location to bomb
|
||||
*/
|
||||
selectedUnitsCarpetBomb(latlng: LatLng): void;
|
||||
carpetBomb(latlng: LatLng, units?: Unit[] | null): void;
|
||||
/** Instruct the selected units to fire at specific coordinates
|
||||
*
|
||||
* @param latlng Location to fire at
|
||||
*/
|
||||
selectedUnitsFireAtArea(latlng: LatLng): void;
|
||||
fireAtArea(latlng: LatLng, units?: Unit[] | null): void;
|
||||
/** Instruct the selected units to simulate a fire fight at specific coordinates
|
||||
*
|
||||
* @param latlng Location to fire at
|
||||
*/
|
||||
selectedUnitsSimulateFireFight(latlng: LatLng): void;
|
||||
simulateFireFight(latlng: LatLng, units?: Unit[] | null): void;
|
||||
/** Instruct units to enter into scenic AAA mode. Units will shoot in the air without aiming
|
||||
*
|
||||
*/
|
||||
selectedUnitsScenicAAA(): void;
|
||||
scenicAAA(units?: Unit[] | null): void;
|
||||
/** Instruct units to enter into miss on purpose mode. Units will aim to the nearest enemy unit but not precisely.
|
||||
*
|
||||
*/
|
||||
selectedUnitsMissOnPurpose(): void;
|
||||
missOnPurpose(units?: Unit[] | null): void;
|
||||
/** Instruct units to land at specific point
|
||||
*
|
||||
* @param latlng Point where to land
|
||||
*/
|
||||
selectedUnitsLandAtPoint(latlng: LatLng): void;
|
||||
landAtPoint(latlng: LatLng, units?: Unit[] | null): void;
|
||||
/** Set a specific shots scatter to all the selected units
|
||||
*
|
||||
* @param shotsScatter Value to set
|
||||
*/
|
||||
selectedUnitsSetShotsScatter(shotsScatter: number): void;
|
||||
setShotsScatter(shotsScatter: number, units?: Unit[] | null): void;
|
||||
/** Set a specific shots intensity to all the selected units
|
||||
*
|
||||
* @param shotsScatter Value to set
|
||||
*/
|
||||
selectedUnitsSetShotsIntensity(shotsIntensity: number): void;
|
||||
setShotsIntensity(shotsIntensity: number, units?: Unit[] | null): void;
|
||||
/*********************** Control operations on selected units ************************/
|
||||
/** See getUnitsCategories for more info
|
||||
*
|
||||
@ -2070,42 +2113,42 @@ declare module "unit/unitsmanager" {
|
||||
/** Groups the selected units in a single (DCS) group, if all the units have the same category
|
||||
*
|
||||
*/
|
||||
selectedUnitsCreateGroup(): void;
|
||||
createGroup(units?: Unit[] | null): void;
|
||||
/** Set the hotgroup for the selected units. It will be the only hotgroup of the unit
|
||||
*
|
||||
* @param hotgroup Hotgroup number
|
||||
*/
|
||||
selectedUnitsSetHotgroup(hotgroup: number): void;
|
||||
setHotgroup(hotgroup: number, units?: Unit[] | null): void;
|
||||
/** Add the selected units to a hotgroup. Units can be in multiple hotgroups at the same type
|
||||
*
|
||||
* @param hotgroup Hotgroup number
|
||||
*/
|
||||
selectedUnitsAddToHotgroup(hotgroup: number): void;
|
||||
addToHotgroup(hotgroup: number, units?: Unit[] | null): void;
|
||||
/** Delete the selected units
|
||||
*
|
||||
* @param explosion If true, the unit will be deleted using an explosion
|
||||
* @returns
|
||||
*/
|
||||
selectedUnitsDelete(explosion?: boolean, explosionType?: string): void;
|
||||
delete(explosion?: boolean, explosionType?: string, units?: Unit[] | null): void;
|
||||
/** Compute the destinations of every unit in the selected units. This function preserves the relative positions of the units, and rotates the whole formation by rotation.
|
||||
*
|
||||
* @param latlng Center of the group after the translation
|
||||
* @param rotation Rotation of the group, in radians
|
||||
* @returns Array of positions for each unit, in order
|
||||
*/
|
||||
selectedUnitsComputeGroupDestination(latlng: LatLng, rotation: number): {
|
||||
computeGroupDestination(latlng: LatLng, rotation: number, units?: Unit[] | null): {
|
||||
[key: number]: LatLng;
|
||||
};
|
||||
/** Copy the selected units and store their properties in memory
|
||||
*
|
||||
*/
|
||||
selectedUnitsCopy(): void;
|
||||
copy(units?: Unit[] | null): void;
|
||||
/*********************** Unit manipulation functions ************************/
|
||||
/** Paste the copied units
|
||||
*
|
||||
* @returns True if units were pasted successfully
|
||||
*/
|
||||
pasteUnits(): false | undefined;
|
||||
paste(): false | undefined;
|
||||
/** Automatically create an Integrated Air Defence System from a CoalitionArea object. The units will be mostly focused around big cities. The bigger the city, the larger the amount of units created next to it.
|
||||
* If the CoalitionArea does not contain any city, no units will be created
|
||||
*
|
||||
|
||||
@ -98,3 +98,5 @@ function onListening() {
|
||||
: 'port ' + addr.port;
|
||||
debug('Listening on ' + bind);
|
||||
}
|
||||
|
||||
console.log("DCS Olympus server v0.4.7 started correctly, happy flying!")
|
||||
|
||||
6301
client/package-lock.json
generated
6301
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,8 @@
|
||||
"version": "v0.4.7-alpha",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat",
|
||||
"build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat",
|
||||
"build-release": "browserify .\\src\\index.ts -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] -p [ tinyify ] && copy.bat",
|
||||
"emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts",
|
||||
"copy": "copy.bat",
|
||||
"start": "node ./bin/www",
|
||||
@ -48,6 +49,7 @@
|
||||
"nodemon": "^2.0.20",
|
||||
"requirejs": "^2.3.6",
|
||||
"sortablejs": "^1.15.0",
|
||||
"tinyify": "^4.0.0",
|
||||
"tsify": "^5.0.4",
|
||||
"tslib": "latest",
|
||||
"typedoc": "^0.24.8",
|
||||
|
||||
File diff suppressed because one or more lines are too long
4817
client/plugins/controltips/package-lock.json
generated
4817
client/plugins/controltips/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -3,8 +3,27 @@
|
||||
"version": "v0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat"
|
||||
"build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat",
|
||||
"build-release": "browserify ./src/index.ts -p [ tsify --noImplicitAny] -p [ tinyify ] > index.js && copy.bat"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {}
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"@types/node": "^18.16.1",
|
||||
"@types/sortablejs": "^1.15.0",
|
||||
"babelify": "^10.0.0",
|
||||
"browserify": "^17.0.0",
|
||||
"concurrently": "^7.6.0",
|
||||
"cp": "^0.2.0",
|
||||
"esmify": "^2.1.1",
|
||||
"nodemon": "^2.0.20",
|
||||
"requirejs": "^2.3.6",
|
||||
"sortablejs": "^1.15.0",
|
||||
"tinyify": "^4.0.0",
|
||||
"tsify": "^5.0.4",
|
||||
"tslib": "latest",
|
||||
"typescript": "^4.9.4",
|
||||
"usng.js": "^0.4.5",
|
||||
"watchify": "^4.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,10 +4,29 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat",
|
||||
"build-release": "browserify ./src/index.ts -p [ tsify --noImplicitAny] -p [ tinyify ] > index.js && copy.bat"
|
||||
"start": "npm run copy & concurrently --kill-others \"npm run watch\"",
|
||||
"copy": "copy.bat",
|
||||
"watch": "watchify ./src/index.ts --debug -o ../../public/plugins/databasemanager/index.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {}
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.21.4",
|
||||
"@types/node": "^18.16.1",
|
||||
"@types/sortablejs": "^1.15.0",
|
||||
"babelify": "^10.0.0",
|
||||
"browserify": "^17.0.0",
|
||||
"concurrently": "^7.6.0",
|
||||
"cp": "^0.2.0",
|
||||
"esmify": "^2.1.1",
|
||||
"nodemon": "^2.0.20",
|
||||
"requirejs": "^2.3.6",
|
||||
"sortablejs": "^1.15.0",
|
||||
"tinyify": "^4.0.0",
|
||||
"tsify": "^5.0.4",
|
||||
"tslib": "latest",
|
||||
"typescript": "^4.9.4",
|
||||
"usng.js": "^0.4.5",
|
||||
"watchify": "^4.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
BIN
img/configurator_logo.png
Normal file
BIN
img/configurator_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
img/olympus_configurator.ico
Normal file
BIN
img/olympus_configurator.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
img/olympus_server.ico
Normal file
BIN
img/olympus_server.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@ -1,4 +1,5 @@
|
||||
#define nwjsFolder "C:\Users\dpass\Documents\nwjs\"
|
||||
#define nodejsFolder "D:\Documents\node\"
|
||||
#define version "v0.4.7-alpha"
|
||||
|
||||
[Setup]
|
||||
@ -25,27 +26,44 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
|
||||
|
||||
[Files]
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
; Source: "..\scripts\OlympusHook.lua"; DestDir: "{app}\Scripts\Hooks"; Flags: ignoreversion
|
||||
Source: "..\scripts\OlympusHook.lua"; DestDir: "{app}\Scripts\Hooks"; Flags: ignoreversion
|
||||
Source: "..\olympus.json"; DestDir: "{app}\Mods\Services\Olympus"; Flags: onlyifdoesntexist
|
||||
; Source: "..\scripts\OlympusCommand.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
; Source: "..\scripts\unitPayloads.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
; Source: "..\scripts\templates.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
; Source: "..\scripts\mist.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
; Source: "..\mod\*"; DestDir: "{app}\Mods\Services\Olympus"; Flags: ignoreversion recursesubdirs;
|
||||
; Source: "..\bin\*.dll"; DestDir: "{app}\Mods\Services\Olympus\bin"; Flags: ignoreversion;
|
||||
; Source: "..\client\bin\*"; DestDir: "{app}\Mods\Services\Olympus\client\bin"; Flags: ignoreversion;
|
||||
; Source: "..\client\node_modules\*"; DestDir: "{app}\Mods\Services\Olympus\client\node_modules"; Flags: ignoreversion recursesubdirs;
|
||||
; Source: "..\client\public\*"; DestDir: "{app}\Mods\Services\Olympus\client\public"; Flags: ignoreversion recursesubdirs;
|
||||
; Source: "..\client\routes\*"; DestDir: "{app}\Mods\Services\Olympus\client\routes"; Flags: ignoreversion recursesubdirs;
|
||||
; Source: "..\client\views\*"; DestDir: "{app}\Mods\Services\Olympus\client\views"; Flags: ignoreversion recursesubdirs;
|
||||
; Source: "..\client\*.*"; DestDir: "{app}\Mods\Services\Olympus\client"; Flags: ignoreversion;
|
||||
; Source: "..\img\olympus.ico"; DestDir: "{app}\Mods\Services\Olympus\img"; Flags: ignoreversion;
|
||||
; Source: "{#nwjsFolder}\*.*"; DestDir: "{app}\Mods\Services\Olympus\client"; Flags: ignoreversion recursesubdirs;
|
||||
Source: "..\scripts\python\dist\configurator.exe"; DestDir: "{app}\Mods\Services\Olympus"; Flags: ignoreversion
|
||||
Source: "..\scripts\OlympusCommand.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
Source: "..\scripts\unitPayloads.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
Source: "..\scripts\templates.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
Source: "..\scripts\mist.lua"; DestDir: "{app}\Mods\Services\Olympus\Scripts"; Flags: ignoreversion
|
||||
Source: "..\mod\*"; DestDir: "{app}\Mods\Services\Olympus"; Flags: ignoreversion recursesubdirs;
|
||||
Source: "..\bin\*.dll"; DestDir: "{app}\Mods\Services\Olympus\bin"; Flags: ignoreversion;
|
||||
Source: "..\client\bin\*"; DestDir: "{app}\Mods\Services\Olympus\client\bin"; Flags: ignoreversion;
|
||||
Source: "..\client\node_modules\*"; DestDir: "{app}\Mods\Services\Olympus\client\node_modules"; Flags: ignoreversion recursesubdirs;
|
||||
Source: "..\client\public\*"; DestDir: "{app}\Mods\Services\Olympus\client\public"; Flags: ignoreversion recursesubdirs;
|
||||
Source: "..\client\routes\*"; DestDir: "{app}\Mods\Services\Olympus\client\routes"; Flags: ignoreversion recursesubdirs;
|
||||
Source: "..\client\views\*"; DestDir: "{app}\Mods\Services\Olympus\client\views"; Flags: ignoreversion recursesubdirs;
|
||||
Source: "..\client\*.*"; DestDir: "{app}\Mods\Services\Olympus\client"; Flags: ignoreversion;
|
||||
Source: "..\img\olympus.ico"; DestDir: "{app}\Mods\Services\Olympus\img"; Flags: ignoreversion;
|
||||
Source: "..\img\olympus_server.ico"; DestDir: "{app}\Mods\Services\Olympus\img"; Flags: ignoreversion;
|
||||
Source: "..\img\olympus_configurator.ico"; DestDir: "{app}\Mods\Services\Olympus\img"; Flags: ignoreversion;
|
||||
Source: "..\img\configurator_logo.png"; DestDir: "{app}\Mods\Services\Olympus\img"; Flags: ignoreversion;
|
||||
; Source: "{#nwjsFolder}\*.*"; DestDir: "{app}\Mods\Services\Olympus\client\bin\nw"; Flags: ignoreversion recursesubdirs; Check: CheckLocalInstall
|
||||
Source: "{#nodejsFolder}\*.*"; DestDir: "{app}\Mods\Services\Olympus\client\bin\node"; Flags: ignoreversion recursesubdirs; Check: CheckServerInstall
|
||||
Source: "..\scripts\python\configurator\dist\configurator.exe"; DestDir: "{app}\Mods\Services\Olympus"; Flags: ignoreversion; Check: CheckServerInstall
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\Mods\Services\Olympus\configurator.exe"; Parameters: -a {code:GetAddress} -c {code:GetClientPort} -b {code:GetBackendPort} -p {code:GetPassword} -bp {code:GetBluePassword} -rp {code:GetRedPassword}
|
||||
|
||||
[Registry]
|
||||
Root: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "DCSOLYMPUS_PATH"; ValueData: "{app}\Mods\Services\Olympus"; Flags: preservestringtype
|
||||
Root: HKCU; Subkey: "Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};%DCSOLYMPUS_PATH%\bin"; Check: NeedsAddPath('%DCSOLYMPUS_PATH%\bin');
|
||||
|
||||
[Setup]
|
||||
; Tell Windows Explorer to reload the environment
|
||||
ChangesEnvironment=yes
|
||||
|
||||
[Icons]
|
||||
Name: "{userdesktop}\DCS Olympus Client"; Filename: "{app}\Mods\Services\Olympus\client\bin\nw\nw.exe"; Tasks: desktopicon; IconFilename: "{app}\Mods\Services\Olympus\img\olympus.ico"; Check: CheckLocalInstall
|
||||
Name: "{userdesktop}\DCS Olympus Server"; Filename: "{app}\Mods\Services\Olympus\client\bin\node\node.exe"; Tasks: desktopicon; IconFilename: "{app}\Mods\Services\Olympus\img\olympus_server.ico"; WorkingDir: "{app}\Mods\Services\Olympus\client"; Parameters: ".\bin\www"; Check: CheckServerInstall
|
||||
Name: "{userdesktop}\DCS Olympus Configurator"; Filename: "{app}\Mods\Services\Olympus\configurator.exe"; Tasks: desktopicon; IconFilename: "{app}\Mods\Services\Olympus\img\olympus_configurator.ico"; Check: CheckServerInstall
|
||||
|
||||
[Code]
|
||||
function NeedsAddPath(Param: string): boolean;
|
||||
var
|
||||
@ -63,17 +81,6 @@ begin
|
||||
Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
|
||||
end;
|
||||
|
||||
[Registry]
|
||||
Root: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "DCSOLYMPUS_PATH"; ValueData: "{app}\Mods\Services\Olympus"; Flags: preservestringtype
|
||||
Root: HKCU; Subkey: "Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};%DCSOLYMPUS_PATH%\bin"; Check: NeedsAddPath('%DCSOLYMPUS_PATH%\bin');
|
||||
|
||||
[Setup]
|
||||
; Tell Windows Explorer to reload the environment
|
||||
ChangesEnvironment=yes
|
||||
|
||||
[Icons]
|
||||
Name: "{userdesktop}\DCS Olympus Client"; Filename: "{app}\Mods\Services\Olympus\client\nw.exe"; Tasks: desktopicon; IconFilename: "{app}\Mods\Services\Olympus\img\olympus.ico"
|
||||
|
||||
[Code]
|
||||
var
|
||||
lblLocalInstall: TLabel;
|
||||
@ -201,7 +208,7 @@ begin
|
||||
Width := ScaleX(340);
|
||||
Height := ScaleY(13);
|
||||
WordWrap := True;
|
||||
Caption := 'Select this to install DCS Olympus on a dedicated server. DCS Olympus will be reachable by external clients. NOTE: to enable external connections, port forwarding must be enabled. By default, ports 3000 and 30000 must be forwarded on TCP and UDP.';
|
||||
Caption := 'Select this to install DCS Olympus on a dedicated server. DCS Olympus will be reachable by external clients. NOTE: to enable external connections, TCP port forwarding must be enabled on the selected ports.';
|
||||
end;
|
||||
|
||||
{ txtServerInstall }
|
||||
@ -424,6 +431,26 @@ begin
|
||||
PasswordPage:= frmPassword_CreatePage(AddressPage);
|
||||
end;
|
||||
|
||||
function CheckLocalInstall(): boolean;
|
||||
begin
|
||||
if txtLocalInstall.Checked then begin
|
||||
Result := True
|
||||
end else
|
||||
begin
|
||||
Result := False
|
||||
end
|
||||
end;
|
||||
|
||||
function CheckServerInstall(): boolean;
|
||||
begin
|
||||
if txtLocalInstall.Checked then begin
|
||||
Result := False
|
||||
end else
|
||||
begin
|
||||
Result := True
|
||||
end
|
||||
end;
|
||||
|
||||
function GetAddress(Value: string): string;
|
||||
begin
|
||||
if txtLocalInstall.Checked then begin
|
||||
|
||||
36
olympus.json
36
olympus.json
@ -1,19 +1,19 @@
|
||||
{
|
||||
"server": {
|
||||
"address": "localhost",
|
||||
"port": 30000
|
||||
},
|
||||
"authentication": {
|
||||
"gameMasterPassword": "password",
|
||||
"blueCommanderPassword": "bluepassword",
|
||||
"redCommanderPassword": "redpassword"
|
||||
},
|
||||
"client": {
|
||||
"port": 3000,
|
||||
"elevationProvider": {
|
||||
"provider": "https://srtm.fasma.org/{lat}{lng}.SRTMGL3S.hgt.zip",
|
||||
"username": null,
|
||||
"password": null
|
||||
}
|
||||
}
|
||||
}
|
||||
"server": {
|
||||
"address": "localhost",
|
||||
"port": 3001
|
||||
},
|
||||
"authentication": {
|
||||
"gameMasterPassword": "4b8823ed9e5c2392ab4a791913bb8ce41956ea32e308b760eefb97536746dd33",
|
||||
"blueCommanderPassword": "b0ea4230c1558c5313165eda1bdb7fced008ca7f2ca6b823fb4d26292f309098",
|
||||
"redCommanderPassword": "b0ea4230c1558c5313165eda1bdb7fced008ca7f2ca6b823fb4d26292f309098"
|
||||
},
|
||||
"client": {
|
||||
"port": 3000,
|
||||
"elevationProvider": {
|
||||
"provider": "https://srtm.fasma.org/{lat}{lng}.SRTMGL3S.hgt.zip",
|
||||
"username": null,
|
||||
"password": null
|
||||
}
|
||||
}
|
||||
}
|
||||
3
scripts/python/.vscode/launch.json
vendored
3
scripts/python/.vscode/launch.json
vendored
@ -10,8 +10,7 @@
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal",
|
||||
"justMyCode": true,
|
||||
"args": ["groundunit"]
|
||||
"justMyCode": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
python -m venv venv
|
||||
call ./venv/Scripts/activate
|
||||
pip install pyinstaller
|
||||
python -m PyInstaller configurator.py --onefile
|
||||
@ -1,67 +0,0 @@
|
||||
import argparse, json
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
prog='DCS Olympus configurator',
|
||||
description='This software allows to edit the DCS Olympus configuration file',
|
||||
epilog='')
|
||||
|
||||
parser.add_argument('-a', '--address')
|
||||
parser.add_argument('-c', '--clientPort')
|
||||
parser.add_argument('-b', '--backendPort')
|
||||
parser.add_argument('-p', '--password')
|
||||
parser.add_argument('-bp', '--bluePassword')
|
||||
parser.add_argument('-rp', '--redPassword')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
with open("olympus.json", "r") as fp:
|
||||
config = json.load(fp)
|
||||
|
||||
if (args.address is not None):
|
||||
config["server"]["address"] = args.address
|
||||
print(f"Address set to {args.address}")
|
||||
else:
|
||||
print("No address provided, skipping...")
|
||||
|
||||
if args.backendPort is not None:
|
||||
if args.backendPort.isdecimal():
|
||||
config["server"]["port"] = int(args.backendPort)
|
||||
print(f"Backend port set to {args.backendPort}")
|
||||
else:
|
||||
print(f"Invalid backend port provided {args.backendPort}")
|
||||
else:
|
||||
print("No backend port provided, skipping...")
|
||||
|
||||
if (args.password is not None):
|
||||
config["authentication"]["gameMasterPassword"] = args.password
|
||||
print(f"Game Master password set to {args.password}")
|
||||
else:
|
||||
print("No Game Master password provided, skipping...")
|
||||
|
||||
if (args.bluePassword is not None):
|
||||
config["authentication"]["blueCommanderPassword"] = args.bluePassword
|
||||
print(f"Blue Commander password set to {args.bluePassword}")
|
||||
else:
|
||||
print("No Blue Commander password provided, skipping...")
|
||||
|
||||
if (args.redPassword is not None):
|
||||
config["authentication"]["redCommanderPassword"] = args.redPassword
|
||||
print(f"Red Commander password set to {args.redPassword}")
|
||||
else:
|
||||
print("No Red Commander password provided, skipping...")
|
||||
|
||||
if args.clientPort is not None:
|
||||
if args.clientPort.isdecimal():
|
||||
config["client"]["port"] = int(args.clientPort)
|
||||
print(f"Client port set to {args.clientPort}")
|
||||
else:
|
||||
print(f"Invalid client port provided {args.clientPort}")
|
||||
else:
|
||||
print("No client port provided, skipping...")
|
||||
|
||||
with open("olympus.json", "w") as fp:
|
||||
json.dump(config, fp, indent = 4)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
5
scripts/python/configurator/build_configurator.bat
Normal file
5
scripts/python/configurator/build_configurator.bat
Normal file
@ -0,0 +1,5 @@
|
||||
python -m venv venv
|
||||
call ./venv/Scripts/activate
|
||||
pip install pyinstaller
|
||||
pip install PySimpleGUI
|
||||
python -m PyInstaller configurator.py --onefile --noconsole
|
||||
136
scripts/python/configurator/configurator.py
Normal file
136
scripts/python/configurator/configurator.py
Normal file
@ -0,0 +1,136 @@
|
||||
import argparse, json
|
||||
import PySimpleGUI as sg
|
||||
import hashlib
|
||||
|
||||
# Apply the values to the olympus.json config file
|
||||
def apply_values(args):
|
||||
with open("olympus.json", "r") as fp:
|
||||
config = json.load(fp)
|
||||
|
||||
if args.address is not None and args.address != "":
|
||||
config["server"]["address"] = args.address
|
||||
print(f"Address set to {args.address}")
|
||||
else:
|
||||
print("No address provided, skipping...")
|
||||
|
||||
if args.backendPort is not None and args.backendPort != "":
|
||||
# The backend port must be a numerical value
|
||||
if args.backendPort.isdecimal():
|
||||
config["server"]["port"] = int(args.backendPort)
|
||||
print(f"Backend port set to {args.backendPort}")
|
||||
else:
|
||||
print(f"Invalid backend port provided: {args.backendPort}")
|
||||
else:
|
||||
print("No backend port provided, skipping...")
|
||||
|
||||
if args.clientPort is not None and args.clientPort != "":
|
||||
# The client port must be a numerical value
|
||||
if args.clientPort.isdecimal():
|
||||
config["client"]["port"] = int(args.clientPort)
|
||||
print(f"Client port set to {args.clientPort}")
|
||||
else:
|
||||
print(f"Invalid client port provided: {args.clientPort}")
|
||||
else:
|
||||
print("No client port provided, skipping...")
|
||||
|
||||
if args.password is not None and args.password != "":
|
||||
config["authentication"]["gameMasterPassword"] = hashlib.sha256(args.password.encode()).hexdigest()
|
||||
print(f"Game Master password set to {args.password}")
|
||||
else:
|
||||
print("No Game Master password provided, skipping...")
|
||||
|
||||
if args.bluePassword is not None and args.bluePassword != "":
|
||||
config["authentication"]["blueCommanderPassword"] = hashlib.sha256(args.redPassword.encode()).hexdigest()
|
||||
print(f"Blue Commander password set to {args.bluePassword}")
|
||||
else:
|
||||
print("No Blue Commander password provided, skipping...")
|
||||
|
||||
if args.redPassword is not None and args.redPassword != "":
|
||||
config["authentication"]["redCommanderPassword"] = hashlib.sha256(args.redPassword.encode()).hexdigest()
|
||||
print(f"Red Commander password set to {args.redPassword}")
|
||||
else:
|
||||
print("No Red Commander password provided, skipping...")
|
||||
|
||||
with open("olympus.json", "w") as fp:
|
||||
json.dump(config, fp, indent = 4)
|
||||
|
||||
def main():
|
||||
# Parse the input arguments
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="DCS Olympus configurator",
|
||||
description="This software allows to edit the DCS Olympus configuration file",
|
||||
epilog="")
|
||||
|
||||
parser.add_argument("-a", "--address")
|
||||
parser.add_argument("-c", "--clientPort")
|
||||
parser.add_argument("-b", "--backendPort")
|
||||
parser.add_argument("-p", "--password")
|
||||
parser.add_argument("-bp", "--bluePassword")
|
||||
parser.add_argument("-rp", "--redPassword")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# If no argument was provided, start the GUI
|
||||
if args.address is None and \
|
||||
args.backendPort is None and \
|
||||
args.clientPort is None and \
|
||||
args.password is None and \
|
||||
args.bluePassword is None and \
|
||||
args.redPassword is None:
|
||||
print(f"No arguments provided, starting in graphical mode")
|
||||
|
||||
with open("olympus.json", "r") as fp:
|
||||
config = json.load(fp)
|
||||
|
||||
old_values = {}
|
||||
window = sg.Window("DCS Olympus configurator",
|
||||
[[sg.T("DCS Olympus configurator", font=("Helvetica", 14, "bold")), sg.Push(), sg.Image(".\\img\\configurator_logo.png", size = (50, 50))],
|
||||
[sg.T("")],
|
||||
[sg.T("Address"), sg.Push(), sg.In(size=(30, 10), default_text=config["server"]["address"], key="address")],
|
||||
[sg.T("Backend port"), sg.Push(), sg.In(size=(30, 10), default_text=config["server"]["port"], key="backendPort", enable_events=True)],
|
||||
[sg.T("Webserver port"), sg.Push(), sg.In(size=(30, 10), default_text=config["client"]["port"], key="clientPort", enable_events=True)],
|
||||
[sg.T("Game Master password"), sg.Push(), sg.In(size=(30, 10), password_char="*", key="password")],
|
||||
[sg.T("Blue Commander password"), sg.Push(), sg.In(size=(30, 10), password_char="*", key="bluePassword")],
|
||||
[sg.T("Red Commander password"), sg.Push(), sg.In(size=(30, 10), password_char="*", key="redPassword")],
|
||||
[sg.T("Note: Empty fields will retain their original values")],
|
||||
[sg.T("")],
|
||||
[sg.B("Apply"), sg.B("Exit"), sg.T("Remember to restart DCS Server and any running mission", font=("Helvetica", 10, "bold"))]],
|
||||
icon = ".\\img\\olympus_configurator.ico")
|
||||
|
||||
while True:
|
||||
event, values = window.read()
|
||||
|
||||
# The backend and client ports must be numerical. Enforce it.
|
||||
if event == "backendPort":
|
||||
if values["backendPort"].isdecimal() or values["backendPort"] == "":
|
||||
old_values["backendPort"] = values["backendPort"]
|
||||
else:
|
||||
window["backendPort"].update(old_values["backendPort"] if "backendPort" in old_values else config["server"]["port"])
|
||||
|
||||
if event == "clientPort":
|
||||
if values["clientPort"].isdecimal() or values["clientPort"] == "":
|
||||
old_values["clientPort"] = values["clientPort"]
|
||||
else:
|
||||
window["clientPort"].update(old_values["clientPort"] if "clientPort" in old_values else config["client"]["port"])
|
||||
|
||||
# Update the config file
|
||||
if event == "Apply":
|
||||
args.address = values["address"]
|
||||
args.backendPort = values["backendPort"]
|
||||
args.clientPort = values["clientPort"]
|
||||
args.password = values["password"]
|
||||
args.bluePassword = values["bluePassword"]
|
||||
args.redPassword = values["redPassword"]
|
||||
apply_values(args)
|
||||
sg.Popup("DCS Olympus configuration updated")
|
||||
|
||||
if event == sg.WIN_CLOSED or event == "Exit":
|
||||
window.close()
|
||||
break
|
||||
|
||||
# If any argument was provided, run in headless mode
|
||||
else:
|
||||
apply_values(args)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@ -35,7 +35,7 @@ exe = EXE(
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=True,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
@ -1,424 +0,0 @@
|
||||
Name,Enabled,Database,Type,Label,Short label,Coalition,Era,Can target point,Can rearm,Acquisition range [m],Engagement range [m],Description,Abilities (comma separate values),Notes,ChatGPT description
|
||||
A-10C_2,yes,Aircraft,Aircraft,A-10C Warthog,10,blue,Late Cold War,yes,no,,,"2 jet engine, straight wing, 1 crew, attack aircraft. Warthog",Boom AAR,"Fox 2, gun, Dumb bombs, smart bombs, rockets, ATGMs, can AAR, subsonic,",
|
||||
A-20G,yes,Aircraft,Aircraft,A-20G Havoc,A20,blue,WW2,yes,no,,,"2 propeller, straight wing, 3 crew, medium attack bomber. Havoc",,"Dumb bomb, gun, subsonic,",
|
||||
A-50,yes,Aircraft,Aircraft,A-50 Mainstay,A50,red,Late Cold War,no,no,,,"4 jet engine, swept wing, 15 crew. NATO reporting name: Mainstay",Airbourne early warning,"Airbourne early warning, subsonic,",
|
||||
AJS37,yes,Aircraft,Aircraft,AJS37 Viggen,37,blue,Mid Cold War,yes,no,,,"Single jet engine, delta wing, 1 crew, attack aircraft. Viggen",,"Fox 2, dumb bombs, rockets and ATGMs, antiship, supersonic",
|
||||
An-26B,yes,Aircraft,Aircraft,An-26B Curl,26,red,Mid Cold War,no,no,,,"2 turboprop, straight wing, 5 crew, cargo and passenger aircraft. NATO reporting name: Curl",,"Subsonic,",
|
||||
An-30M,yes,Aircraft,Aircraft,An-30M Clank,30,red,Mid Cold War,no,no,,,"2 turboprop, straight wing, 7 crew, weather reseach aircraft. NATO reporting name: Clank",,"Subsonic,",
|
||||
AV8BNA,yes,Aircraft,Aircraft,AV8BNA Harrier,8,blue,Late Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew, all weather, VTOL attack aircraft. Harrier",Drogue AAR,"Fox 2 and gunpod, Dumb and smart bombs, ATGMs, SEAD, can AAR, transonic,",
|
||||
B-1B,yes,Aircraft,Aircraft,B-1B Lancer,1,blue,Late Cold War,yes,no,,,"4 jet engine, swing wing, 2 crew bomber. Lancer",,"dumb and smart bombs, supersonic,",
|
||||
B-52H,yes,Aircraft,Aircraft,B-52H Stratofortress,52,blue,Early Cold War,yes,no,,,"8 jet engine, swept wing, 6 crew bomber. Stratofortress",,"Dumb and smart bombs, subsonic,",
|
||||
Bf-109K-4,yes,Aircraft,Aircraft,Bf-109K-4 Fritz,109,red,WW2,yes,no,,,"Single propeller, straight wing, 1 crew. 109",,"Guns, Subsonic,",
|
||||
C-101CC,yes,Aircraft,Aircraft,C-101CC,101,blue,Late Cold War,yes,no,,,"Single jet engine, swept wing, 2 crew, light attack trainer. Aviojet",,"Fox 2, Dumb bombs, rockets, gunpod, subsonic,",
|
||||
C-130,yes,Aircraft,Aircraft,C-130 Hercules,130,blue,Early Cold War,no,no,,,"4 turboprop, stright wing, 3 crew. Hercules",,Subsonic,
|
||||
C-17A,yes,Aircraft,Aircraft,C-17A Globemaster,C17,blue,Modern,no,no,,,"4 jet engine, swept wing, 3 crew. Globemaster",,Subsonic,
|
||||
E-2C,yes,Aircraft,Aircraft,E-2C Hawkeye,2C,blue,Mid Cold War,no,no,,,"2 turboprop, straight wing, 5 crew. Hawkeye",Airbourne early warning,Subsonic,
|
||||
E-3A,yes,Aircraft,Aircraft,E-3A Sentry,E3,blue,Mid Cold War,no,no,,,"4 jet engine, swept wing, 17 crew. Sentry",Airbourne early warning,Subsonic,
|
||||
F-117A,yes,Aircraft,Aircraft,F-117A Nighthawk,117,blue,Late Cold War,yes,no,,,"2 jet engine, delta wing, 1 crew. Nighthawk",,"Smart bombs, Subsonic",
|
||||
F-14A-135-GR,yes,Aircraft,Aircraft,F-14A-135-GR Tomcat,14A,blue,Mid Cold War,yes,no,,,"2 Jet engine, swing wing, 2 crew. Tomcat",Drogue AAR,"Fox 1,2,3, Gun, Dumb bombs, laser bombs and rockets, Can AAR, supersonic",
|
||||
F-14B,yes,Aircraft,Aircraft,F-14B Tomcat,14B,blue,Late Cold War,yes,no,,,"2 Jet engine, swing wing, 2 crew. Tomcat",Drogue AAR,"Fox 1,2,3, Gun, Dumb bombs, laser bombs and rockets, Can AAR, supersonic",
|
||||
F-15C,yes,Aircraft,Aircraft,F-15C Eagle,15,blue,Late Cold War,yes,no,,,"2 Jet engine, swept wing, 2 crew, all weather fighter. Eagle.",Boom AAR,"Fox 1,2,3, Gun, Can AAR, supersonic",
|
||||
F-15E,yes,Aircraft,Aircraft,F-15E Strike Eagle,15,blue,Late Cold War,yes,no,,,"2 Jet engine, swept wing, 2 crew, all weather fighter and strike. Strike Eagle.",Boom AAR,"Fox 1,2,3, Gun, Dumb bombs, smart bombs, standoff, Can AAR, supersonic",
|
||||
F-16C_50,yes,Aircraft,Aircraft,F-16C Viper,16,blue,Late Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew, all weather fighter and strike. Viper.",Boom AAR,"Fox 2, 3 and gun, Dumb and smart bombs, rockets and ATGMs, standoff, Can AAR, supersonic,",
|
||||
F-4E,yes,Aircraft,Aircraft,F-4E Phantom II,4,blue,Mid Cold War,yes,no,,,"2 Jet engine, swept wing, 2 crew. Phantom",Drogue AAR,"Fox 1,2, and Gun, Dumb bombs, laser bombs and rockets, Can AAR, supersonic",
|
||||
F-5E-3,yes,Aircraft,Aircraft,F-5E Tiger,5,blue,Mid Cold War,yes,no,,,"2 Jet engine, swept wing, single crew. Tiger",,"Fox 1,2, and Gun, Dumb bombs, laser bombs and rockets, supersonic",
|
||||
F-86F Sabre,yes,Aircraft,Aircraft,F-86F Sabre,86,blue,Early Cold War,yes,no,,,"Single engine, swept wing, 1 crew. Sabre",,"Fox 2 and Gun, Dumb bombs and rockets, Transonic",
|
||||
FA-18C_hornet,yes,Aircraft,Aircraft,F/A-18C,18,blue,Late Cold War,yes,no,,,"2 Jet engine, swept wing, 1 crew, fighter and strike. Hornet",Drogue AAR,"Fox 1,2,3, Gun, Dumb bombs and smart bombs, rockets and ATGMs, antiship, SEAD, standoff, Can AAR, Supersonic",
|
||||
FW-190A8,yes,Aircraft,Aircraft,FW-190A8 Bosch,190A8,red,WW2,yes,no,,,"Single propellor, straight wing, 1 crew. Shrike",,"Guns, dumb bombs and rockets, Subsonic",
|
||||
FW-190D9,yes,Aircraft,Aircraft,FW-190D9 Jerry,190D9,red,WW2,yes,no,,,"Single propellor, straight wing, 1 crew. Shrike",,"Guns, dumb bombs and rockets, Subsonic",
|
||||
H-6J,yes,Aircraft,Aircraft,H-6J Badger,H6,red,Mid Cold War,yes,no,,,"2 jet engine, swept wing, 4 crew bomber. Badger",,"Dumb bombs, standoff, antiship, Subsonic",
|
||||
I-16,yes,Aircraft,Aircraft,I-16,I16,red,WW2,yes,no,,,"Single propellor, straight wing, 1 crew. Ishak",,"Guns, dumb bombs and rockets, Subsonic",
|
||||
IL-76MD,yes,Aircraft,Aircraft,IL-76MD Candid,76,red,Mid Cold War,no,no,,,"4 jet engine, swept wing, 5 crew. Cargo and passenger aircraft. NATO reporting name: Candid",,Subsonic,
|
||||
IL-78M,yes,Aircraft,Aircraft,IL-78M Midas,78,red,Late Cold War,no,no,,,"4 jet engine, swept wing, 6 crew. Tanker aircraft. NATO reporting name: Midas","Tanker, Drogue AAR","Droge tanker, Subsonic",
|
||||
J-11A,yes,Aircraft,Aircraft,J-11A Flaming Dragon,11,red,Modern,yes,no,,,"2 Jet engine, swept wing, 1 crew, fighter and strike. NATO reporting name: Flanker",,"Fox 1, 2, 3, and Gun, Dumb bombs and rockets, Supersonic",
|
||||
JF-17,yes,Aircraft,Aircraft,JF-17 Thunder,17,red,Modern,yes,no,,,"Single jet engine, swept wing, 1 crew, fighter and strike. Geoff",Drogue AAR,"Fox 1,2,3, Gun, Dumb bombs and smart bombs, rockets and ATGMs, antiship, SEAD, standoff, Can AAR, Supersonic",
|
||||
KC-135,yes,Aircraft,Aircraft,KC-135 Stratotanker,35,blue,Early Cold War,no,no,,,"4 jet engine, swept wing, 3 crew. Tanker aircraft. Stratotanker","Tanker, Boom AAR","Boom tanker, Subsonic",
|
||||
KC135MPRS,yes,Aircraft,Aircraft,KC-135 MPRS Stratotanker,35M,blue,Early Cold War,no,no,,,"4 jet engine, swept wing, 3 crew. Tanker aircraft. Stratotanker","Tanker, Drogue AAR","Droge tanker, Subsonic",
|
||||
L-39ZA,yes,Aircraft,Aircraft,L-39ZA,39,red,Mid Cold War,yes,no,,,"Single jet engine, swept wing, 2 crew, light attack trainer. Aviojet",,"Fox 2, Dumb bombs, rockets, gunpod, subsonic,",
|
||||
M-2000C,yes,Aircraft,Aircraft,M-2000C Mirage,M2,blue,Late Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew, fighter and strike.",Drogue AAR,"Fox 1, 2, gun, Dumb bombs and laser bombs, Can AAR Supersonic",
|
||||
MB-339A,yes,Aircraft,Aircraft,MB-339A,39,blue,Mid Cold War,yes,no,,,"Single jet engine, swept wing, 2 crew, light attack trainer. Aviojet",,"Fox 2, Dumb bombs, rockets, gunpod, subsonic,",
|
||||
MiG-15bis,yes,Aircraft,Aircraft,MiG-15 Fagot,M15,red,Early Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew. Fagot",,"Gun, Dumb bombs, Transonic",
|
||||
MiG-19P,yes,Aircraft,Aircraft,MiG-19 Farmer,19,red,Early Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew. Farmer",,"Fox 2, gun, Dumb bombs and rockets, Supersonic",
|
||||
MiG-21Bis,yes,Aircraft,Aircraft,MiG-21 Fishbed,21,red,Mid Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew. Fishbed",,"Fox 1, fox 2, gun, Dumb bombs, nukes, ATGMs, and rockets, Supersonic",
|
||||
MiG-23MLD,yes,Aircraft,Aircraft,MiG-23 Flogger,23,red,Mid Cold War,yes,no,,,"Single jet engine, swing wing, 1 crew. Flogger",,"Fox1, fox 2, gun, Dumb bombs and rockets, Supersonic",
|
||||
MiG-25PD,yes,Aircraft,Aircraft,MiG-25PD Foxbat,25,red,Mid Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Foxbat",,"Fox1, fox 2, Supersonic",
|
||||
MiG-25RBT,yes,Aircraft,Aircraft,MiG-25RBT Foxbat,25,red,Mid Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Foxbat",,"Fox 2, Dumb bombs, Supersonic",
|
||||
MiG-27K,yes,Aircraft,Aircraft,MiG-27K Flogger-D,27,red,Mid Cold War,yes,no,,,"Single jet engine, swing wing, 1 crew. Flogger",,"Fox 2 and gun, Dumb bombs and laser bombs, ATGMs, SEAD, Rockets, Supersonic",
|
||||
MiG-29A,yes,Aircraft,Aircraft,MiG-29A Fulcrum,29A,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Flanker",Drogue AAR,"Fox 1 and fox 2, Gun, Dumb bombs, Rockets, Can AAR, Supersonic",
|
||||
MiG-29S,yes,Aircraft,Aircraft,MiG-29S Fulcrum,29S,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Flanker",Drogue AAR,"Fox 1 and fox 2, Gun, Dumb bombs, Rockets, Can AAR, Supersonic",
|
||||
MiG-31,yes,Aircraft,Aircraft,MiG-31 Foxhound,31,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 2 crew. Foxhound",Drogue AAR,"Fox 1 and fox 2, Gun, Can AAR, Supersonic",
|
||||
Mirage-F1EE,yes,Aircraft,Aircraft,Mirage-F1EE,F1EE,blue,Mid Cold War,yes,no,,,"Single Jet engine, swept wing, 1 crew.",Drogue AAR,"Fox 1, fox 2, and gun, Dumb and laser bombs, and rockets, Can AAR, Supersonic",
|
||||
MosquitoFBMkVI,yes,Aircraft,Aircraft,Mosquito FB MkVI,Mo,blue,WW2,yes,no,,,"2 propeller, straight wing, 2 crew. Mosquito.",,"Gun, dumb bomb, and rockets, Subsonic",
|
||||
MQ-9 Reaper,yes,Aircraft,Aircraft,MQ-9 Reaper,9,blue,Modern,yes,no,,,"Single turboprop, straight wing, attack aircraft. Reaper",,"Laser bombs, smart bombs, ATGMs, subsonic",
|
||||
P-47D-40,yes,Aircraft,Aircraft,P-47D Thunderbolt,P47,blue,WW2,yes,no,,,"Single propellor, straight wing, 1 crew. Thunderbolt",,"Gun, dumb bomb, and rockets, Subsonic",
|
||||
P-51D-30-NA,yes,Aircraft,Aircraft,P-51D Mustang,P51,blue,WW2,yes,no,,,"Single propellor, straight wing, 1 crew. Mustang",,"Gun, dumb bomb, and rockets, Subsonic",
|
||||
S-3B Tanker,yes,Aircraft,Aircraft,S-3B Tanker,S3B,blue,Early Cold War,no,no,,,"2 jet engine, straight wing, 4 crew. Viking","Tanker, Drogue AAR",Subsonic,
|
||||
Su-17M4,yes,Aircraft,Aircraft,Su-17M4 Fitter,17M,red,Mid Cold War,yes,no,,,"Single jet engine, swept wing, 1 crew. Fitter",,"Fox 2 and gun, dumb bombs and rockets, Transonic",
|
||||
Su-24M,yes,Aircraft,Aircraft,Su-24M Fencer,24,red,Mid Cold War,yes,no,,,"2 jet engine, swing wing, 2 crew. Fencer",,"Fox 2 and gun, Dumb and laser bombs, and rockets, Supersonic",
|
||||
Su-25,yes,Aircraft,Aircraft,Su-25A Frogfoot,S25,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Frogfoot",,"Fox 2 and gun, Dumb bombs, rockets, and ATGMs, Subsonic",
|
||||
Su-25,yes,Aircraft,Aircraft,Su-25T Frogfoot,S25,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Frogfoot",,"Fox 2 and gun, Dumb bombs, rockets, SEAD and ATGMs, Subsonic",
|
||||
Su-27,yes,Aircraft,Aircraft,Su-27 Flanker,27,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Flanker",Drogue AAR,"Fox 1 and fox 2, Gun, Dumb bombs, Rockets, Can AAR, Supersonic",
|
||||
Su-30,yes,Aircraft,Aircraft,Su-30 Super Flanker,30,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Flanker",Drogue AAR,"Fox 1,2,3, Gun, Dumb bombs, smart bombs, ATGMS, anti-ship and SEAD, Can AAR, supersonic",
|
||||
Su-33,yes,Aircraft,Aircraft,Su-33 Navy Flanker,33,red,Late Cold War,yes,no,,,"2 jet engine, swept wing, 1 crew. Flanker",Drogue AAR,"Fox 1 and fox 2, Gun, Dumb bombs, Rockets, Can AAR, Supersonic",
|
||||
Su-34,yes,Aircraft,Aircraft,Su-34 Hellduck,34,red,Modern,yes,no,,,"2 Jet engine, swept wing, 2 crew, all weather fighter and strike. Fullback",Drogue AAR,"Fox 1,2,3, Gun, Dumb bombs, smart bombs, anti-ship, SEAD, Can AAR, supersonic",
|
||||
Tornado GR4,yes,Aircraft,Aircraft,Tornado GR4,GR4,blue,Late Cold War,yes,no,,,"2 jet engine, swing wing, 2 crew, all weather strike.",Drogue AAR,"Fox 2 and gun, Dumb and laser bombs, Anti-ship and SEAD, Can AAR",
|
||||
Tornado IDS,yes,Aircraft,Aircraft,Tornado IDS,IDS,blue,Late Cold War,yes,no,,,"2 jet engine, swing wing, 2 crew, all weather strike.",Drogue AAR,"Fox 2 and gun, Dumb and laser bombs, Anti-ship and SEAD, Can AAR",
|
||||
Tu-142,yes,Aircraft,Aircraft,Tu-142 Bear,142,red,Mid Cold War,yes,no,,,"4 turboprop, swept wing, 11 crew, bomber. Bear",,"Anti-ship missiles, Subsonic",
|
||||
Tu-160,yes,Aircraft,Aircraft,Tu-160 Blackjack,160,red,Late Cold War,yes,no,,,"4 jet engine, swing wing, 4 crew bomber. Blackjack",,"Anti-ship missiles, Supersonic",
|
||||
Tu-22M3,yes,Aircraft,Aircraft,Tu-22M3 Backfire,T22,red,Late Cold War,yes,no,,,"2 jet engine, swing wing, 4 crew bomber. Backfire",,"Dumb bombs and anti-ship missiles, Supersonic",
|
||||
Tu-95MS,yes,Aircraft,Aircraft,Tu-95MS Bear,95,red,Mid Cold War,yes,no,,,"4 turboprop, swept wing, 6 crew, bomber. Bear",,"Anti-ship missiles, Subsonic",
|
||||
1L13 EWR,yes,Ground Unit,EW Radar,Box Spring,1L13 EWR,red,Late Cold War,no,no,300000,0,EWR built on a truck trailer,,"500km range, 40km altitude",Box Spring: Mobile electronic warfare system designed to disrupt enemy communication and Radar systems.
|
||||
2B11 mortar,yes,Ground Unit,Artillery,2B11 mortar,2B11 mortar,red,Late Cold War,yes,no,0,7000,Man portable 120mm mortar,,"0,5km-7km 12-15 rpm","2B11 mortar: Soviet 120mm towed mortar, known for its portability and effective indirect fire support."
|
||||
2S6 Tunguska,yes,Ground Unit,AAA,SA-19 Tunguska,SA-19,red,Late Cold War,yes,no,18000,8000,2K22 Tunguska. Tracked self-propelled anti-aircraft 30mm guns and missiles,,"Can move, Radar gun, optical missiles, 5nm/12,000ft","SA-19 Tunguska: Russian self-propelled anti-aircraft weapon system, combining both guns and missiles for air defense."
|
||||
55G6 EWR,yes,Ground Unit,EW Radar,Tall Rack,55G6 EWR,red,Early Cold War,no,no,400000,0,EWR built on a truck trailer,,"500km range, 40km altitude",Tall Rack: Naval electronic warfare system designed for electronic countermeasures.
|
||||
5p73 s-125 ln,yes,Ground Unit,SAM Launcher,SA-3 Launcher,5p73 s-125 ln,red,Early Cold War,yes,no,0,18000,4 SA-3 missiles on a static emplacement. Requires grouping with SA-3 components,,10nm range,"SA-3 Launcher: Soviet surface-to-air missile launcher, part of the SA-3 Goa air defense system."
|
||||
AA8,yes,Ground Unit,Unarmed,Firefighter Vehicle AA-7.2/60,Firefighter Vehicle AA-7.2/60,,,no,no,0,0,,,,Firefighter Vehicle AA-7.2/60: Firefighting vehicle equipped with a 7.2m telescopic ladder.
|
||||
AAV7,yes,Ground Unit,Armoured Personnel Carrier,AAV7,AAV7,blue,Mid Cold War,yes,no,0,1200,Amphibious assault vehicle. Tracked,,"12,7mm machine gun, 64 km/h road, 13,5 km/h water",AAV7: Amphibious Assault Vehicle used by the United States Marine Corps for troop transport.
|
||||
Allies_Director,no,Ground Unit,Unarmed,Allies Rangefinder (DRT),Allies Rangefinder (DRT),,,no,no,30000,0,,,,Allies Rangefinder (DRT): Allied artillery rangefinder for accurate target distance measurement.
|
||||
ATMZ-5,yes,Ground Unit,Unarmed,ATMZ-5,ATMZ-5,red,Early Cold War,no,no,0,0,Refueler truck. Wheeled,,"unarmed, 75 km/h on road",ATMZ-5: Soviet pontoon bridge and ferry system used for river crossings.
|
||||
ATZ-10,yes,Ground Unit,Unarmed,ATZ-10,ATZ-10,red,Early Cold War,no,no,0,0,Refueler truck. Wheeled,,"unarmed, 75 km/h on road",ATZ-10: Soviet military refueling vehicle used to refuel tanks and other military vehicles.
|
||||
ATZ-5,yes,Ground Unit,Unarmed,Refueler ATZ-5,Refueler ATZ-5,,,no,no,0,0,,,,Refueler ATZ-5: Mobile refueling vehicle used for fueling military vehicles.
|
||||
ATZ-60_Maz,yes,Ground Unit,Unarmed,Refueler ATZ-60 Tractor (MAZ-7410),Refueler ATZ-60 Tractor (MAZ-7410),,,no,no,0,0,,,,Refueler ATZ-60 Tractor (MAZ-7410): Military refueling tractor used for ground vehicle refueling.
|
||||
Bedford_MWD,yes,Ground Unit,Unarmed,Truck Bedford,Truck Bedford,,,no,no,0,0,,,,Truck Bedford: British military truck used for various logistical purposes.
|
||||
Blitz_36-6700A,yes,Ground Unit,Unarmed,Truck Opel Blitz,Truck Opel Blitz,,,no,yes,0,0,,,,Truck Opel Blitz: German military truck used during World War II.
|
||||
BMD-1,yes,Ground Unit,Infantry Fighting Vehicle,BMD-1,BMD-1,red,Mid Cold War,yes,no,0,3000,Infantry fighting vehicle. Tracked. Amphibious,,"73mm gun, 7,62 gun, 70 km/h road, 10 km/h water",BMD-1: Airborne infantry fighting vehicle with amphibious capabilities used by the Soviet Union.
|
||||
BMP-1,yes,Ground Unit,Infantry Fighting Vehicle,BMP-1,BMP-1,red,Mid Cold War,yes,no,0,3000,Infantry fighting vehicle. Tracked. Amphibious,,"ATGM, 73mm gun, 7,62 gun, 65 km/h road, 7 km/h water","BMP-1: Soviet infantry fighting vehicle, a pioneer in combining heavy firepower with troop transport."
|
||||
BMP-2,yes,Ground Unit,Infantry Fighting Vehicle,BMP-2,BMP-2,red,Mid Cold War,yes,no,0,3000,Infantry fighting vehicle. Tracked. Amphibious,,"ATGM, 30mm gun, 7,62 gun, 65 km/h road, 7 km/h water","BMP-2: Upgraded version of the BMP-1, featuring enhanced weaponry and protection."
|
||||
BMP-3,yes,Ground Unit,Infantry Fighting Vehicle,BMP-3,BMP-3,red,Late Cold War,yes,no,0,4000,Infantry fighting vehicle. Tracked. Amphibious,,"ATGM, 100mm gun, 30mm gun, 7,62 gun, 65 km/h road, 7 km/h water",BMP-3: Modern Russian infantry fighting vehicle with significant improvements in firepower and mobility.
|
||||
bofors40,yes,Ground Unit,AAA,AAA Bofors 40mm,AAA Bofors 40mm,,,yes,no,0,4000,,,,AAA Bofors 40mm: Swedish-designed anti-aircraft gun with a 40mm caliber.
|
||||
Boxcartrinity,yes,Ground Unit,Carriage,Flatcar,Flatcar,,,no,no,0,0,,,,Flatcar: Railway wagon with a flat platform for transporting heavy equipment.
|
||||
BRDM-2,yes,Ground Unit,Armoured Car,BRDM-2,BRDM-2,red,Early Cold War,no,no,0,1600,Scout car. Wheeled. Amphibious,,"14,5mm gun, 7,62mm gun, 100 km/h road, 10 km/h water",BRDM-2: Amphibious armored reconnaissance vehicle used by various countries.
|
||||
BTR_D,yes,Ground Unit,Armoured Personnel Carrier,BTR_D,BTR_D,red,Mid Cold War,yes,no,0,3000,Armoured persononel carrier. Tracked.,,"ATGM, 7,62mm gun, 61 km/h road",BTR-D: Soviet airborne multi-purpose tracked vehicle designed for troop transport.
|
||||
BTR-80,yes,Ground Unit,Armoured Personnel Carrier,BTR-80,BTR-80,red,Late Cold War,yes,no,0,1600,Armoured persononel carrier. Wheeled. Amphibious,,"14,5mm gun, 7,62mm gun, 80 km/h road, 10 km/h water",BTR-80: 8x8 wheeled armored personnel carrier known for its versatility and mobility.
|
||||
BTR-82A,yes,Ground Unit,Infantry Fighting Vehicle,Infantry Fighting Vehicle BTR-82A,Infantry Fighting Vehicle BTR-82A,,,yes,no,0,2000,,,,Infantry Fighting Vehicle BTR-82A: Russian infantry fighting vehicle known for its versatility.
|
||||
Bunker,yes,Ground Unit,Structure,Bunker,Bunker,,,no,no,0,800,Concrete bunker. Structure. Fixed Position.,,"12,7 mm machine gun,",Bunker: Fortified military structure providing protection and strategic position.
|
||||
CCKW_353,no,Ground Unit,Unarmed,"Truck GMC ""Jimmy"" 6x6","Truck GMC ""Jimmy"" 6x6",,,no,no,0,0,,,,"Truck GMC ""Jimmy"" 6x6: American military truck used for various logistical purposes."
|
||||
Centaur_IV,no,Ground Unit,Tank,Tk Centaur IV CS,Tk Centaur IV CS,,,yes,no,0,6000,,,,Tk Centaur IV CS: British cruiser tank variant with close support modifications.
|
||||
Challenger2,yes,Ground Unit,Tank,Challenger2,Challenger2,blue,Modern,yes,no,0,3500,Main battle tank. Tracked. Modern and heavily armoured.,,"120mm gun, 7,62 mm gun x 2, 59 km/h road, 40 km/h off,",Challenger 2: British main battle tank known for its armor protection and firepower.
|
||||
Chieftain_mk3,yes,Ground Unit,Tank,Tank Chieftain Mk.3,Tank Chieftain Mk.3,,,yes,no,0,3500,,,,Tank Chieftain Mk.3: British main battle tank known for its heavy armor.
|
||||
Churchill_VII,no,Ground Unit,Tank,Tk Churchill VII,Tk Churchill VII,,,yes,no,0,3000,,,,Tk Churchill VII: British infantry tank known for its heavy armor.
|
||||
Coach a passenger,yes,Ground Unit,Carriage,Passenger Car,Passenger Car,,,no,no,0,0,,,,Passenger Car: Railway carriage for passenger transport.
|
||||
Coach a platform,yes,Ground Unit,Carriage,Coach Platform,Coach Platform,,,no,no,0,0,,,,Coach Platform: Railway wagon with a flat platform for transporting heavy equipment.
|
||||
Coach a tank blue,yes,Ground Unit,Carriage,Tank Car blue,Tank Car blue,,,no,no,0,0,,,,Tank Car blue: Railway tank car used for transporting liquids.
|
||||
Coach a tank yellow,yes,Ground Unit,Carriage,Tank Car yellow,Tank Car yellow,,,no,no,0,0,,,,Tank Car yellow: Railway tank car used for transporting liquids.
|
||||
Coach cargo,yes,Ground Unit,Carriage,Freight Van,Freight Van,,,no,no,0,0,,,,Freight Van: Railway wagon used for transporting goods.
|
||||
Coach cargo open,yes,Ground Unit,Carriage,Open Wagon,Open Wagon,,,no,no,0,0,,,,Open Wagon: Open railway wagon for bulk cargo.
|
||||
Cobra,yes,Ground Unit,Armoured Car,Otokar Cobra,Cobra,blue,Modern,yes,no,0,1200,"Armoured car, MRAP. Wheeled.",,"12,7 mm machine gun,","Otokar Cobra: Turkish armored vehicle used for reconnaissance, patrol, and security missions."
|
||||
Cromwell_IV,no,Ground Unit,Tank,Tk Cromwell IV,Tk Cromwell IV,,,yes,no,0,3000,,,,Tk Cromwell IV: British cruiser tank used during World War II.
|
||||
Daimler_AC,no,Ground Unit,Armoured Car,Car Daimler Armored,Car Daimler Armored,,,yes,no,0,2000,,,,Car Daimler Armored: British armored car used for reconnaissance.
|
||||
Dog Ear radar,yes,Ground Unit,SAM Track Radar,Dog Ear,Dog Ear Radar,red,Mid Cold War,no,no,35000,0,9S80-1 Sborka Mobile. Tracked fire control Radar that can integrate with missile and gun systems.,,"90 km detection range, 35 km tracking range,",Dog Ear: Mobile Radar system used for early warning and target acquisition.
|
||||
DR_50Ton_Flat_Wagon,no,Ground Unit,Carriage,DR 50-ton flat wagon,DR 50-ton flat wagon,,,no,no,0,0,,,,DR 50-ton flat wagon: Railway flat wagon with a capacity for heavy loads.
|
||||
DRG_Class_86,no,Ground Unit,Locomotive,Loco DRG Class 86,Loco DRG Class 86,,,no,no,0,0,,,,Loco DRG Class 86: German steam locomotive used for transportation.
|
||||
Electric locomotive,yes,Ground Unit,Locomotive,Loco VL80 Electric,Loco VL80 Electric,,,no,no,0,0,,,,Loco VL80 Electric: Electric locomotive used for transportation.
|
||||
Elefant_SdKfz_184,no,Ground Unit,Tank,Self Propelled Gun Elefant TD,Self Propelled Gun Elefant TD,,,yes,no,0,6000,,,,Self Propelled Gun Elefant TD: German tank destroyer with heavy armor.
|
||||
ES44AH,yes,Ground Unit,Locomotive,Loco ES44AH,Loco ES44AH,,,no,no,0,0,,,,Loco ES44AH: Diesel-electric locomotive used for freight transportation.
|
||||
fire_control,no,Ground Unit,Structure,Bunker with Fire Control Center,Bunker with Fire Control Center,,,no,no,0,1100,,,,Bunker with Fire Control Center: Fortified bunker with integrated fire control.
|
||||
flak18,yes,Ground Unit,AAA,"AAA 8,8cm Flak 18","AAA 8,8cm Flak 18",,,yes,no,0,5000,,,,"AAA 8,8cm Flak 18: German anti-aircraft gun with an 88mm caliber."
|
||||
Flakscheinwerfer_37,no,Ground Unit,AAA,SL Flakscheinwerfer 37,SL Flakscheinwerfer 37,,,yes,no,15000,15000,,,,SL Flakscheinwerfer 37: German searchlight used for anti-aircraft defense.
|
||||
FPS-117,yes,Ground Unit,EW Radar,EW Radar,EWR AN/FPS-117 Radar,,,no,no,463000,0,,,,EWR AN/FPS-117 Radar: Early warning Radar system used for surveillance.
|
||||
FPS-117 Dome,yes,Ground Unit,EW Radar,EWR AN/FPS-117 Radar (domed),EWR AN/FPS-117 Radar (domed),,,no,no,400000,0,,,,EWR AN/FPS-117 Radar (domed): Early warning Radar system with a domed radome.
|
||||
FPS-117 ECS,yes,Ground Unit,EW Radar,EWR AN/FPS-117 ECS,EWR AN/FPS-117 ECS,,,no,no,0,0,,,,EWR AN/FPS-117 ECS: Early warning Radar system with an environmental control system.
|
||||
FuMG-401,no,Ground Unit,EW Radar,EWR FuMG-401 Freya LZ,EWR FuMG-401 Freya LZ,,,no,no,160000,0,,,,EWR FuMG-401 Freya LZ: German early warning Radar system.
|
||||
FuSe-65,no,Ground Unit,EW Radar,EWR FuSe-65 Würzburg-Riese,EWR FuSe-65 Würzburg-Riese,,,no,no,60000,0,,,,EWR FuSe-65 Würzburg-Riese: German Radar system used for target acquisition.
|
||||
GAZ-3307,yes,Ground Unit,Unarmed,GAZ-3307,GAZ-3307,red,Early Cold War,no,no,0,0,"Civilian truck, single axle, wheeled",,56 mph,GAZ-3307: Soviet/Russian military truck used for various logistics purposes.
|
||||
GAZ-3308,yes,Ground Unit,Unarmed,GAZ-3308,GAZ-3308,red,Early Cold War,no,yes,0,0,"Military truck, single axle, canvas covered cargo bay. wheeled",,"Rearms ground units of same coaltion, 56 mph","GAZ-3308: Military version of the GAZ-3307, widely used for transportation."
|
||||
GAZ-66,yes,Ground Unit,Unarmed,GAZ-66,GAZ-66,red,Early Cold War,no,yes,0,0,"Military truck, single axle, open cargo bay. wheeled",,90 km/h,GAZ-66: Soviet/Russian military truck known for its off-road capabilities.
|
||||
generator_5i57,yes,Ground Unit,Unarmed,Diesel Power Station 5I57A,Diesel Power Station 5I57A,,,no,no,0,0,,,,Diesel Power Station 5I57A: Mobile diesel power station used for electricity generation.
|
||||
Gepard,yes,Ground Unit,AAA,Gepard,Gepard,blue,Late Cold War,yes,no,15000,4000,Tracked self-propelled anti-aircraft 35mm guns,,"65 km/h road, Range 3km",Gepard: German anti-aircraft tank designed to protect armored formations.
|
||||
German_covered_wagon_G10,no,Ground Unit,Carriage,Wagon G10 (Germany),Wagon G10 (Germany),,,no,no,0,0,,,,Wagon G10 (Germany): German railway wagon for transporting goods.
|
||||
German_tank_wagon,no,Ground Unit,Carriage,Tank Car (Germany),Tank Car (Germany),,,no,no,0,0,,,,Tank Car (Germany): German railway tank car for transporting liquids.
|
||||
Grad_FDDM,yes,Ground Unit,Artillery,Grad MRL FDDM (FC),Grad MRL FDDM (FC),,,yes,no,0,1000,,,,Grad MRL FDDM (FC): Multiple rocket launcher system with fire direction and control module.
|
||||
Grad-URAL,yes,Ground Unit,Unarmed,Grad,Grad,red,Mid Cold War,no,no,0,19000,"Military truck, single axle, open cargo bay. wheeled",,"80 km/h, Rearms ground units of same coaltion?",Grad: Multiple rocket launcher system capable of delivering devastating firepower.
|
||||
Hawk cwar,yes,Ground Unit,SAM Search Radar,Hawk Continous Wave Acquisition Radar,Hawk cwar,blue,Early Cold War,no,no,70000,0,Hawk site Aquisition Radar,,70km range,"Hawk Continuous Wave Acquisition Radar: Part of the Hawk air defense system, used for target acquisition."
|
||||
Hawk ln,yes,Ground Unit,SAM Launcher,Hawk Launcher,Hawk ln,blue,Late Cold War,no,no,0,45000,Hawk site missile laucher. 3 missiles. Needs rest of site to fuction,,,Hawk Launcher: Mobile launcher for the Hawk surface-to-air missile system.
|
||||
Hawk pcp,yes,Ground Unit,SAM Support vehicle,Hawk Platoon Command Post,Hawk pcp,blue,Late Cold War,no,no,0,0,Hawk site command post. Medium sized trailer.,,,Hawk Platoon Command Post: Command and control center for the Hawk air defense system.
|
||||
Hawk SAM Battery,yes,Ground Unit,SAM Site,Hawk SAM Battery,Hawk SAM Battery,blue,Early Cold War,no,no,90000,0,Multiple unit SAM site,,"25nm range, >50,000ft alititude",Hawk SAM Battery: Surface-to-air missile system providing air defense capabilities.
|
||||
Hawk sr,yes,Ground Unit,SAM Search Radar,Hawk Search Radar,Hawk sr,blue,Early Cold War,no,no,90000,0,Hawk site search Radar. Medium sized trailer,,,Hawk Search Radar: Radar system used in conjunction with the Hawk air defense system.
|
||||
Hawk tr,yes,Ground Unit,SAM Track Radar,Hawk Track Radar,Hawk tr,blue,Early Cold War,no,no,90000,0,Hawk site track Radar. Medium sized trailer,,,Hawk Track Radar: Radar system used for tracking targets in the Hawk air defense system.
|
||||
HEMTT TFFT,yes,Ground Unit,Unarmed,HEMTT TFFT,HEMTT TFFT,blue,Late Cold War,no,no,0,0,"Military truck, 2 axle, firefigther. wheeled",,40kn on road,HEMTT TFFT: Heavy Expanded Mobility Tactical Truck used for transport and logistics.
|
||||
HL_B8M1,yes,Ground Unit,Artillery,MLRS HL with B8M1 80mm,MLRS HL with B8M1 80mm,,,yes,no,5000,5000,,,,MLRS HL with B8M1 80mm: Self-propelled multiple rocket launcher system with 80mm rockets.
|
||||
HL_DSHK,yes,Ground Unit,Armoured Car,Scout HL with DSHK 12.7mm,Scout HL with DSHK 12.7mm,,,yes,no,5000,1200,,,,Scout HL with DSHK 12.7mm: Scout vehicle with a mounted DShK heavy machine gun.
|
||||
HL_KORD,yes,Ground Unit,Armoured Car,Scout HL with KORD 12.7mm,Scout HL with KORD 12.7mm,,,yes,no,5000,1200,,,,Scout HL with KORD 12.7mm: Scout vehicle with a mounted KORD heavy machine gun.
|
||||
HL_ZU-23,yes,Ground Unit,AAA,SPAAA HL with ZU-23,SPAAA HL with ZU-23,,,yes,no,5000,2500,,,,SPAAA HL with ZU-23: Self-propelled anti-aircraft artillery with dual ZU-23 autocannons.
|
||||
Horch_901_typ_40_kfz_21,yes,Ground Unit,Unarmed,LUV Horch 901 Staff Car,LUV Horch 901 Staff Car,,,no,no,0,0,,,,LUV Horch 901 Staff Car: German military staff car.
|
||||
house1arm,yes,Ground Unit,Structure,house1arm,house1arm,,,no,no,0,800,,,,house1arm: Fortified building with additional armor.
|
||||
house2arm,yes,Ground Unit,Structure,house2arm,house2arm,,,no,no,0,800,,,,house2arm: Fortified building with additional armor.
|
||||
houseA_arm,yes,Ground Unit,Structure,houseA_arm,houseA_arm,,,no,no,0,800,,,,houseA_arm: Fortified building with additional armor.
|
||||
HQ-7_LN_EO,yes,Ground Unit,SAM Track Radar,HQ-7 LN Electro-Optics,HQ-7 LN Electro-Optics,,,no,no,8000,12000,,,,HQ-7 LN Electro-Optics: Chinese air defense system with electro-optical tracking.
|
||||
HQ-7_LN_SP,yes,Ground Unit,SAM Launcher,HQ-7 Self-Propelled LN,HQ-7 Self-Propelled LN,,,no,no,15000,15000,,,,HQ-7 Self-Propelled LN: Chinese self-propelled air defense system.
|
||||
HQ-7_STR_SP,yes,Ground Unit,SAM Track Radar,HQ-7 Self-Propelled STR,HQ-7 Self-Propelled STR,,,no,no,30000,0,,,,HQ-7 Self-Propelled STR: Chinese air defense system with Radar tracking.
|
||||
Hummer,yes,Ground Unit,Armoured Car,Hummer,Hummer,blue,Mid Cold War,no,no,0,0,"Military car, single axle, wheeled",,113 km/h road,"Hummer: Versatile military vehicle used for various purposes, including transport and reconnaissance."
|
||||
hy_launcher,yes,Ground Unit,Missile system,AShM SS-N-2 Silkworm,AShM SS-N-2 Silkworm,,,yes,no,100000,100000,,,,AShM SS-N-2 Silkworm: Soviet anti-ship missile system.
|
||||
Igla manpad INS,yes,Ground Unit,MANPADS,SA-18 Igla manpad INS,Igla manpad INS,red,Late Cold War,no,no,5000,5200,9K38/SA-18 Man portable air defence. Heatseaker,,"5,2km range, 3,5km altitude","SA-18 Igla manpad INS: Portable, man-portable air defense system designed for infantry use."
|
||||
IKARUS Bus,yes,Ground Unit,Unarmed,IKARUS Bus,IKARUS Bus,red,Mid Cold War,no,no,0,0,Civilian Bus. Yellow. Bendy bus,,80km/h road,IKARUS Bus: Military transport bus used for troop movement.
|
||||
Infantry AK,yes,Ground Unit,Infantry,Infantry AK,Infantry AK,red,Mid Cold War,yes,no,0,500,Single infantry carrying AK-74,,8kn max speed,"Infantry AK: Standard issue assault rifle for infantry, known for its reliability and firepower."
|
||||
Infantry AK Ins,yes,Ground Unit,Infantry,Insurgent AK-74,Insurgent AK-74,,,yes,no,0,500,,,,Insurgent AK-74: Variant of the AK-74 rifle used by insurgent forces.
|
||||
Infantry AK ver2,yes,Ground Unit,Infantry,Infantry AK-74 Rus ver2,Infantry AK-74 Rus ver2,,,yes,no,0,500,,,,Infantry AK-74 Rus ver2: Variant of the AK-74 rifle used by Russian infantry.
|
||||
Infantry AK ver3,yes,Ground Unit,Infantry,Infantry AK-74 Rus ver3,Infantry AK-74 Rus ver3,,,yes,no,0,500,,,,Infantry AK-74 Rus ver3: Variant of the AK-74 rifle used by Russian infantry.
|
||||
Infantry Animated,yes,Ground Unit,Infantry,Infantry,Infantry,,,yes,no,0,500,,,,Infantry: Standard infantry equipped for ground combat.
|
||||
Jagdpanther_G1,no,Ground Unit,Tank,Self Propelled Gun Jagdpanther TD,Self Propelled Gun Jagdpanther TD,,,yes,no,0,5000,,,,Self Propelled Gun Jagdpanther TD: German tank destroyer based on the Panther chassis.
|
||||
JagdPz_IV,no,Ground Unit,Tank,Self Propelled Gun Jagdpanzer IV TD,Self Propelled Gun Jagdpanzer IV TD,,,yes,no,0,3000,,,,Self Propelled Gun Jagdpanzer IV TD: German tank destroyer based on the Panzer IV chassis.
|
||||
JTAC,yes,Ground Unit,Infantry,JTAC,JTAC,,,no,no,0,0,,,,JTAC: Joint Terminal Attack Controller responsible for coordinating air support.
|
||||
KAMAZ Truck,yes,Ground Unit,Unarmed,KAMAZ Truck,KAMAZ Truck,red,Mid Cold War,no,yes,0,0,"Military truck, 2 axle, wheeled",,"Rearms ground units of same coaltion, 85 km/h on road,",KAMAZ Truck: Russian military truck used for various logistical purposes.
|
||||
KDO_Mod40,no,Ground Unit,AAA,AAA Kdo.G.40,AAA Kdo.G.40,,,yes,no,30000,0,,,,AAA Kdo.G.40: German mobile anti-aircraft command vehicle.
|
||||
KrAZ6322,yes,Ground Unit,Unarmed,Truck KrAZ-6322 6x6,Truck KrAZ-6322 6x6,,,no,yes,0,0,,,,Truck KrAZ-6322 6x6: Ukrainian military truck used for various logistical purposes.
|
||||
KS-19,yes,Ground Unit,AAA,AAA KS-19 100mm,AAA KS-19 100mm,,,yes,no,0,20000,,,,AAA KS-19 100mm: Soviet towed anti-aircraft gun with a 100mm caliber.
|
||||
Kub 1S91 str,yes,Ground Unit,SAM Search/Track Radar,SA-6 Straight flush,Kub 1S91 str,red,Mid Cold War,no,no,70000,0,"SA-6/Kub search and track Radar, tracked.",,"75km detection, 28km tracking, 44 km/h on road",SA-6 Straight flush: Soviet mobile surface-to-air missile system with Radar guidance.
|
||||
Kub 2P25 ln,yes,Ground Unit,SAM Launcher,SA-6 Launcher,Kub 2P25 ln,red,Late Cold War,no,no,0,25000,SA-6/Kub launcher. 3 missiles. Tracked. Needs rest of site to function,,"24km range 14km altitude, 44 km/h on road",SA-6 Launcher: Mobile launcher for the SA-6 Straight flush surface-to-air missile system.
|
||||
Kubelwagen_82,yes,Ground Unit,Unarmed,LUV Kubelwagen Jeep,LUV Kubelwagen Jeep,,,no,no,0,0,,,,LUV Kubelwagen Jeep: German military vehicle used for reconnaissance.
|
||||
Land_Rover_101_FC,yes,Ground Unit,Unarmed,Truck Land Rover 101 FC,Truck Land Rover 101 FC,,,no,no,0,0,,,,Truck Land Rover 101 FC: Military truck based on the Land Rover platform.
|
||||
Land_Rover_109_S3,yes,Ground Unit,Unarmed,LUV Land Rover 109,LUV Land Rover 109,,,no,no,0,0,,,,LUV Land Rover 109: Light utility vehicle based on the Land Rover platform.
|
||||
LARC-V,yes,Ground Unit,Unarmed,LARC-V,LARC-V,,,no,no,500,0,,,,"LARC-V: Lighter Amphibious Resupply Cargo, amphibious cargo vehicle."
|
||||
LAV-25,yes,Ground Unit,Infantry Fighting Vehicle,LAV-25,LAV-25,blue,Late Cold War,yes,no,0,2500,Infantry fighter vehicle. Wheeled. Amphibious,,"25mm gun, 7,62 gun, 100 km/h road, 9,6 km/h water",LAV-25: Light armored vehicle used for reconnaissance and security missions.
|
||||
LAZ Bus,yes,Ground Unit,Unarmed,LAZ Bus,LAZ Bus,red,Early Cold War,no,no,0,0,Civilian bus. Single Axle. Wheeled,,80 km/h road,LAZ Bus: Military transport bus used for troop movement.
|
||||
Leclerc,yes,Ground Unit,Tank,Leclerc,Leclerc,blue,Modern,yes,no,0,3500,Main battle tank. Tracked. Modern and heavily armoured.,,"120mm gun, 12,7mm gun, 72 km/h road",Leclerc: French main battle tank known for its advanced features and firepower.
|
||||
LeFH_18-40-105,no,Ground Unit,Artillery,FH LeFH-18 105mm,FH LeFH-18 105mm,,,yes,no,0,10500,,,,FH LeFH-18 105mm: German towed field howitzer with a 105mm caliber.
|
||||
Leopard-2,yes,Ground Unit,Tank,Leopard-2,Leopard-2,blue,Late Cold War,yes,no,0,3500,Main battle tank. Tracked. Modern and heavily armoured.,,"120mm gun, 7,62 mm gun x 2, 72 km/h road",Leopard-2: German main battle tank recognized for its high level of protection and mobility.
|
||||
leopard-2A4,yes,Ground Unit,Tank,Tank Leopard-2A4,Tank Leopard-2A4,,,yes,no,0,3500,,,,Tank Leopard-2A4: Earlier version of the German Leopard 2 main battle tank.
|
||||
leopard-2A4_trs,yes,Ground Unit,Tank,Tank Leopard-2A4 Trs,Tank Leopard-2A4 Trs,,,yes,no,0,3500,,,,Tank Leopard-2A4 Trs: Leopard 2 main battle tank with additional armor.
|
||||
Leopard-2A5,yes,Ground Unit,Tank,Tank Leopard-2A5,Tank Leopard-2A5,,,yes,no,0,3500,,,,Tank Leopard-2A5: Upgraded version of the German Leopard 2 main battle tank.
|
||||
Leopard1A3,yes,Ground Unit,Tank,Leopard1A3,Leopard1A3,blue,Mid Cold War,yes,no,0,2500,Main battle tank. Tracked. Heavily armoured.,,"105mm gun, 7,62 mm gun x 2, 65 km/h road",Leopard1A3: Earlier version of the German Leopard main battle tank series.
|
||||
LiAZ Bus,yes,Ground Unit,Unarmed,Bus LiAZ-677,Bus LiAZ-677,,,no,no,0,0,,,,Bus LiAZ-677: Military transport bus used for troop movement.
|
||||
Locomotive,yes,Ground Unit,Locomotive,Loco CHME3T,Loco CHME3T,,,no,no,0,0,,,,Loco CHME3T: Diesel-electric shunting locomotive.
|
||||
M 818,yes,Ground Unit,Unarmed,M 818,M 818,blue,Early Cold War,no,yes,0,0,???,,,M 818: Military truck used for various logistical purposes.
|
||||
M-1 Abrams,yes,Ground Unit,Tank,M-1 Abrams,M-1 Abrams,blue,Late Cold War,yes,no,0,3500,Main battle tank. Tracked. Modern and heavily armoured.,,"120mm gun, 12,7mm gun, 7,62 mm gun x 2, 66,7 km/h road","M-1 Abrams: Iconic U.S. main battle tank, known for its firepower and armor."
|
||||
M-109,yes,Ground Unit,Artillery,M-109 Paladin,M-109,blue,Early Cold War,yes,no,0,22000,???,,,M-109 Paladin: Self-propelled howitzer used for artillery support.
|
||||
M-113,yes,Ground Unit,Armoured Personnel Carrier,M-113,M-113,blue,Early Cold War,yes,no,0,1200,Armoured personnel carrier. Tracked. Amphibious,,"12,7mm gun, 60,7 km/h road, 5,8 km/h water",M-113: Armored personnel carrier used by various armed forces.
|
||||
M-2 Bradley,yes,Ground Unit,Infantry Fighting Vehicle,M-2A2 Bradley,M-2 Bradley,blue,Late Cold War,yes,no,0,3800,Infantry fighting vehicle. Tracked.,,"ATGM, 100mm gun, 25mm gun, 7,62 gun, 66 km/h road",M-2A2 Bradley: Infantry fighting vehicle used by the U.S. Army.
|
||||
M-60,yes,Ground Unit,Tank,M-60,M-60,blue,Early Cold War,yes,no,0,8000,Main battle tank. Tracked. Heavily armoured.,,"105mm gun, 12,7mm gun, 7,62 mm gun, 48 km/h road, 19 km/h off,",M-60: Main battle tank used by the United States and other countries.
|
||||
M1_37mm,no,Ground Unit,AAA,AAA M1 37mm,AAA M1 37mm,,,yes,no,0,5700,,,,AAA M1 37mm: American towed anti-aircraft gun with a 37mm caliber.
|
||||
M10_GMC,no,Ground Unit,Tank,Self Propelled Gun M10 GMC TD,Self Propelled Gun M10 GMC TD,,,yes,no,0,6000,,,,Self Propelled Gun M10 GMC TD: American tank destroyer based on the M4 Sherman chassis.
|
||||
M1043 HMMWV Armament,yes,Ground Unit,Armoured Car,HMMWV M2 Browning,HMMWV M2,blue,Late Cold War,yes,no,0,1200,"Military car, single axle, wheeled",,"12,7mm gun, 113 km/h road",HMMWV M2 Browning: Humvee variant equipped with a heavy machine gun for firepower.
|
||||
M1045 HMMWV TOW,yes,Ground Unit,Armoured Car,HMMWV TOW,HMMWV TOW,red,Late Cold War,yes,no,0,3800,"Military car, single axle, wheeled",,"ATGM, 113 km/h road",HMMWV TOW: Humvee variant equipped with TOW anti-tank missiles.
|
||||
M1097 Avenger,yes,Ground Unit,SAM,M1097 Avenger,M1097 Avenger,blue,Modern,yes,no,5200,4500,"Military car, single axle, wheeled",,"Stinger SAM, 12,7mm gun, 113 km/h road",M1097 Avenger: Mobile air defense system based on the HMMWV platform.
|
||||
M1126 Stryker ICV,yes,Ground Unit,Armoured Personnel Carrier,Stryker MG,Stryker MG,blue,Modern,yes,no,0,1200,Armoured personnel carrier. Wheeled.,,"12,7mm gun, 96 km/h road",Stryker MG: Infantry carrier vehicle with a mounted machine gun for support.
|
||||
M1128 Stryker MGS,yes,Ground Unit,Self Propelled Gun,M1128 Stryker MGS,M1128 Stryker MGS,blue,Modern,yes,no,0,4000,Self propelled gun. Wheeled.,,"105mm gun, 7,62mm gun, 96 km/h road",M1128 Stryker MGS: Mobile gun system variant of the Stryker used for fire support.
|
||||
M1134 Stryker ATGM,yes,Ground Unit,Armoured Personnel Carrier,Stryker ATGM,Stryker ATGM,blue,Modern,yes,no,0,3800,Armoured personnel carrier. Wheeled.,,"ATGM, 12,7mm gun, 96 km/h road",Stryker ATGM: Stryker variant equipped with anti-tank guided missiles.
|
||||
M12_GMC,no,Ground Unit,Artillery,SPH M12 GMC 155mm,SPH M12 GMC 155mm,,,yes,no,0,18300,,,,SPH M12 GMC 155mm: American self-propelled howitzer with a 155mm gun.
|
||||
M2A1_halftrack,yes,Ground Unit,Armoured Personnel Carrier,Armoured Personnel Carrier M2A1 Halftrack,Armoured Personnel Carrier M2A1 Halftrack,,,yes,no,0,1200,,,,Armoured Personnel Carrier M2A1 Halftrack: Armored personnel carrier with both tracks and wheels.
|
||||
M2A1-105,no,Ground Unit,Artillery,FH M2A1 105mm,FH M2A1 105mm,,,yes,no,0,11500,,,,FH M2A1 105mm: American towed field howitzer with a 105mm caliber.
|
||||
M30_CC,no,Ground Unit,Unarmed,Ammo M30 Cargo Carrier,Ammo M30 Cargo Carrier,,,no,no,0,1200,,,,Ammo M30 Cargo Carrier: Ammunition carrier used for transporting artillery ammunition.
|
||||
M4_Sherman,yes,Ground Unit,Tank,Tk M4 Sherman,Tk M4 Sherman,,,yes,no,0,3000,,,,Tk M4 Sherman: American medium tank used during World War II.
|
||||
M4_Tractor,no,Ground Unit,Unarmed,Tractor M4 High Speed,Tractor M4 High Speed,,,no,no,0,1200,,,,Tractor M4 High Speed: American high-speed tractor used for towing artillery.
|
||||
M45_Quadmount,no,Ground Unit,AAA,AAA M45 Quadmount HB 12.7mm,AAA M45 Quadmount HB 12.7mm,,,yes,no,0,1500,,,,AAA M45 Quadmount HB 12.7mm: American anti-aircraft weapon with four 12.7mm machine guns.
|
||||
M48 Chaparral,yes,Ground Unit,SAM,M48 Chaparral,M48 Chaparral,blue,Late Cold War,no,no,10000,8500,,,,M48 Chaparral: Surface-to-air missile system mounted on a tracked vehicle.
|
||||
M4A4_Sherman_FF,no,Ground Unit,Tank,Tk M4A4 Sherman Firefly,Tk M4A4 Sherman Firefly,,,yes,no,0,3000,,,,Tk M4A4 Sherman Firefly: British modified version of the M4 Sherman tank with a 17-pounder gun.
|
||||
M6 Linebacker,yes,Ground Unit,SAM,M6 Linebacker,M6 Linebacker,blue,Late Cold War,no,no,8000,4500,,,,M6 Linebacker: Anti-aircraft variant of the M2 Bradley infantry fighting vehicle.
|
||||
M8_Greyhound,no,Ground Unit,Armoured Car,Scout M8 Greyhound AC,Scout M8 Greyhound AC,,,yes,no,0,2000,,,,Scout M8 Greyhound AC: American armored car used for reconnaissance.
|
||||
M978 HEMTT Tanker,yes,Ground Unit,Unarmed,M978 HEMTT Tanker,M978 HEMTT Tanker,blue,Mid Cold War,no,no,0,0,,,,M978 HEMTT Tanker: Heavy Expanded Mobility Tactical Truck used for fuel transportation.
|
||||
Marder,yes,Ground Unit,Infantry Fighting Vehicle,Marder,Marder,blue,Late Cold War,yes,no,0,1500,,,,Marder: German infantry fighting vehicle used by the German Army.
|
||||
Maschinensatz_33,no,Ground Unit,AAA,Maschinensatz 33 Gen,Maschinensatz 33 Gen,,,yes,no,0,0,,,,Maschinensatz 33 Gen: German power generator.
|
||||
MAZ-6303,yes,Ground Unit,Unarmed,MAZ-6303,MAZ-6303,red,Mid Cold War,no,no,0,0,,,,MAZ-6303: Soviet/Russian military truck used for various logistical purposes.
|
||||
MCV-80,yes,Ground Unit,Infantry Fighting Vehicle,Warrior Infantry Fighting Vehicle,Warrior,blue,Late Cold War,yes,no,0,2500,,,,Warrior Infantry Fighting Vehicle: British infantry fighting vehicle known for its versatility and protection.
|
||||
Merkava_Mk4,yes,Ground Unit,Tank,Tank Merkava IV,Tank Merkava IV,,,yes,no,0,3500,,,,Tank Merkava IV: Israeli main battle tank known for its advanced features and protection.
|
||||
MLRS,yes,Ground Unit,Rocket Artillery,M270,M270,blue,Late Cold War,yes,no,0,32000,,,,M270: Multiple rocket launcher system capable of launching various types of rockets.
|
||||
MLRS FDDM,yes,Ground Unit,Artillery,MRLS FDDM (FC),MRLS FDDM (FC),,,yes,no,0,1200,,,,MRLS FDDM (FC): Multiple rocket launcher system with fire direction and control module.
|
||||
MTLB,yes,Ground Unit,Armoured Personnel Carrier,MT-LB,MT-LB,red,Mid Cold War,yes,no,0,1000,,,,MT-LB: Soviet multi-purpose tracked vehicle used for troop transport and logistics.
|
||||
NASAMS_Command_Post,yes,Ground Unit,SAM Support vehicle,SAM NASAMS C2,SAM NASAMS C2,,,no,no,0,0,,,,SAM NASAMS C2: Command and control system for the NASAMS surface-to-air missile system.
|
||||
NASAMS_LN_B,yes,Ground Unit,SAM Launcher,SAM NASAMS LN AIM-120B,SAM NASAMS LN AIM-120B,,,no,no,0,15000,,,,SAM NASAMS LN AIM-120B: Launcher unit for the NASAMS surface-to-air missile system with AIM-120B missiles.
|
||||
NASAMS_LN_C,yes,Ground Unit,SAM Launcher,SAM NASAMS LN AIM-120C,SAM NASAMS LN AIM-120C,,,no,no,0,15000,,,,SAM NASAMS LN AIM-120C: Launcher unit for the NASAMS surface-to-air missile system with AIM-120C missiles.
|
||||
NASAMS_radar_MPQ64F1,yes,Ground Unit,SAM Search Radar,SAM NASAMS SR MPQ64F1,SAM NASAMS SR MPQ64F1,,,no,no,50000,0,,,,SAM NASAMS SR MPQ64F1: Surface-to-air missile system with Radar guidance.
|
||||
Osa 9A33 ln,yes,Ground Unit,SAM Launcher,SA-8 Launcher,Osa 9A33 ln,red,Mid Cold War,no,no,30000,10300,,,,SA-8 Launcher: Mobile launcher for the SA-8 Gecko surface-to-air missile system.
|
||||
outpost,yes,Ground Unit,Structure,outpost,outpost,,,no,no,0,800,,,,outpost: Military outpost for surveillance and control.
|
||||
outpost_road,yes,Ground Unit,Structure,outpost_road,outpost_road,,,no,no,0,800,,,,outpost_road: Military outpost with a roadblock.
|
||||
p-19 s-125 sr,yes,Ground Unit,SAM Search Radar,SA-3 Flat Face B,Flat Face B,red,Mid Cold War,no,no,160000,0,,,,SA-3 Flat Face B: Mobile Radar system used in conjunction with the SA-3 Goa air defense system.
|
||||
Pak40,no,Ground Unit,Artillery,FH Pak 40 75mm,FH Pak 40 75mm,,,yes,no,0,3000,,,,FH Pak 40 75mm: German towed anti-tank gun with a 75mm caliber.
|
||||
Paratrooper AKS-74,yes,Ground Unit,Infantry,Paratrooper AKS-74,Paratrooper AKS-74,red,Modern,yes,no,0,500,,,,Paratrooper AKS-74: Modified version of the AK-74 for use by airborne forces.
|
||||
Paratrooper RPG-16,yes,Ground Unit,Infantry,Paratrooper RPG-16,Paratrooper RPG-16,red,Modern,yes,no,0,500,,,,Paratrooper RPG-16: Anti-tank rocket launcher used by airborne forces.
|
||||
Patriot AMG,yes,Ground Unit,SAM Support vehicle,Patriot Antenna Mast Group,Patriot AMG,blue,Modern,no,no,0,0,,,,"Patriot Antenna Mast Group: Part of the Patriot missile system, used for communication."
|
||||
Patriot cp,yes,Ground Unit,SAM Support vehicle,Patriot Command Post,Patriot cp,blue,Late Cold War,no,no,0,0,,,,Patriot Command Post: Mobile command post for the Patriot missile system.
|
||||
Patriot ECS,yes,Ground Unit,SAM Support vehicle,Patriot Engagement Control Station,Patriot ECS,blue,Modern,no,no,0,0,,,,Patriot Engagement Control Station: Command and control center for the Patriot missile system.
|
||||
Patriot EPP,yes,Ground Unit,SAM Support vehicle,Patriot Electric Power Plant,Patriot EPP,blue,Late Cold War,no,no,0,0,,,,Patriot Electric Power Plant: Power generation unit for the Patriot missile system.
|
||||
Patriot ln,yes,Ground Unit,SAM Launcher,Patriot Launcher,Patriot ln,blue,Late Cold War,no,no,0,100000,,,,Patriot Launcher: Mobile launcher for the Patriot surface-to-air missile system.
|
||||
Patriot site,yes,Ground Unit,SAM Site,Patriot site,Patriot site,blue,Late Cold War,no,no,160000,0,,,,Patriot site: Operational site for the Patriot missile system.
|
||||
Patriot str,yes,Ground Unit,SAM Search/Track Radar,Patriot Search/Track Radar,Patriot str,blue,Late Cold War,no,no,160000,0,,,,Patriot Search/Track Radar: Radar system used for target tracking in the Patriot missile system.
|
||||
PLZ05,yes,Ground Unit,Artillery,PLZ-05,PLZ-05,,,yes,no,0,23500,,,,PLZ-05: Chinese self-propelled howitzer with a 155mm gun.
|
||||
Predator GCS,yes,Ground Unit,Unarmed,Predator GCS,Predator GCS,blue,Late Cold War,no,no,0,0,,,,Predator GCS: Ground Control Station for the MQ-1 Predator unmanned aerial vehicle.
|
||||
Predator TrojanSpirit,yes,Ground Unit,Unarmed,Predator TrojanSpirit,Predator TrojanSpirit,blue,Late Cold War,no,no,0,0,,,,Predator TrojanSpirit: Electronic warfare system used for intelligence and reconnaissance.
|
||||
PT_76,yes,Ground Unit,Tank,LT PT-76,LT PT-76,,,yes,no,0,2000,,,,LT PT-76: Soviet amphibious light tank used for reconnaissance.
|
||||
Pz_IV_H,yes,Ground Unit,Tank,Tk PzIV H,Tk PzIV H,,,yes,no,0,3000,,,,Tk PzIV H: German medium tank used during World War II.
|
||||
Pz_V_Panther_G,no,Ground Unit,Tank,Tk Panther G (Pz V),Tk Panther G (Pz V),,,yes,no,0,3000,,,,Tk Panther G (Pz V): German medium tank used during World War II.
|
||||
QF_37_AA,no,Ground Unit,AAA,"AAA QF 3.7""","AAA QF 3.7""",,,yes,no,0,9000,,,,"AAA QF 3.7"": British anti-aircraft gun with a 3.7-inch caliber."
|
||||
rapier_fsa_blindfire_radar,yes,Ground Unit,SAM Track Radar,SAM Rapier Blindfire TR,SAM Rapier Blindfire TR,,,no,no,30000,0,,,,SAM Rapier Blindfire TR: Vehicle used for target acquisition in the Rapier air defense system.
|
||||
rapier_fsa_launcher,yes,Ground Unit,SAM Launcher,SAM Rapier LN,SAM Rapier LN,,,no,no,30000,6800,,,,SAM Rapier LN: Self-propelled anti-aircraft missile system with Radar guidance.
|
||||
rapier_fsa_optical_tracker_unit,yes,Ground Unit,SAM Track Radar,SAM Rapier Tracker,SAM Rapier Tracker,,,no,no,20000,0,,,,SAM Rapier Tracker: Vehicle used for tracking targets in the Rapier air defense system.
|
||||
RD_75,yes,Ground Unit,EW Radar,SAM SA-2 S-75 RD-75 Amazonka RF,SAM SA-2 S-75 RD-75 Amazonka RF,,,no,no,100000,0,,,,SAM SA-2 S-75 RD-75 Amazonka RF: Soviet surface-to-air missile system with Amazonka RF Radar.
|
||||
RLS_19J6,yes,Ground Unit,SAM Search Radar,SA-5 Thin Shield,RLS 19J6,Red,Mid Cold War,no,no,150000,0,,,,SA-5 Thin Shield: Soviet long-range surface-to-air missile system.
|
||||
Roland ADS,yes,Ground Unit,SAM,Roland ADS,Roland ADS,blue,Late Cold War,no,no,12000,8000,,,,Roland ADS: Mobile short-range air defense system.
|
||||
Roland radar,yes,Ground Unit,SAM Search Radar,Roland Search Radar,Roland Radar,blue,Mid Cold War,no,no,35000,0,,,,Roland Search Radar: Radar system used in conjunction with the Roland air defense system.
|
||||
RPC_5N62V,yes,Ground Unit,SAM Track Radar,SA-5 Square Pair,RPC 5N62V,Red,Mid Cold War,no,no,400000,0,,,,SA-5 Square Pair: Mobile launcher for the SA-5 Thin Shield surface-to-air missile system.
|
||||
S_75_ZIL,yes,Ground Unit,Unarmed,S-75 Tractor (ZIL-131),S-75 Tractor (ZIL-131),,,no,no,0,0,,,,S-75 Tractor (ZIL-131): Tractor used for transporting components of the S-75 surface-to-air missile system.
|
||||
S_75M_Volhov,yes,Ground Unit,SAM Launcher,SA-2 Launcher,S75M Volhov,Red,Early Cold War,no,no,0,43000,,,,SA-2 Launcher: Mobile launcher for the SA-2 Guideline surface-to-air missile system.
|
||||
S-200_Launcher,yes,Ground Unit,SAM Launcher,SA-5 Launcher,S-200 Launcher,Red,Mid Cold War,no,no,0,255000,,,,SA-5 Launcher: Mobile launcher for the SA-5 Thin Shield surface-to-air missile system.
|
||||
S-300PS 40B6M tr,yes,Ground Unit,SAM Track Radar,SA-10 Tin Shield,S-300PS 40B6M tr,red,Late Cold War,no,no,160000,0,,,,SA-10 Tin Shield: Radar system used in conjunction with the SA-10 Grumble air defense system.
|
||||
S-300PS 40B6MD sr,yes,Ground Unit,SAM Search Radar,SA-10 Clam Shell,S-300PS 40B6MD sr,red,Late Cold War,no,no,60000,0,,,,SA-10 Clam Shell: Mobile launcher for the SA-10 Grumble surface-to-air missile system.
|
||||
S-300PS 54K6 cp,yes,Ground Unit,SAM Support vehicle,SA-10 Command Post,S-300PS 54K6 cp,red,Late Cold War,no,no,0,0,,,,SA-10 Command Post: Command and control center for the SA-10 Grumble air defense system.
|
||||
S-300PS 5P85C ln,yes,Ground Unit,SAM Launcher,SA-10 Launcher (5P85C),S-300PS 5P85C ln,red,Late Cold War,no,no,0,120000,,,,SA-10 Launcher (5P85C): Mobile launcher for the SA-10 Grumble surface-to-air missile system.
|
||||
S-300PS 5P85D ln,yes,Ground Unit,SAM Launcher,SA-10 Launcher (5P85D),S-300PS 5P85D ln,red,Late Cold War,no,no,0,120000,,,,SA-10 Launcher (5P85D): Mobile launcher for the SA-10 Grumble surface-to-air missile system.
|
||||
S-300PS 64H6E sr,yes,Ground Unit,SAM Search Radar,SA-10 Big Bird,S-300PS 64H6E sr,red,Late Cold War,no,no,160000,0,,,,SA-10 Big Bird: Early warning Radar system used in conjunction with the SA-10 Grumble system.
|
||||
S-60_Type59_Artillery,yes,Ground Unit,AAA,AAA S-60 57mm,AAA S-60 57mm,,,yes,no,5000,6000,,,,AAA S-60 57mm: Soviet towed anti-aircraft gun with a 57mm caliber.
|
||||
SA-10 SAM Battery,yes,Ground Unit,SAM Site,SA-10 SAM Battery,SA-10 SAM Battery,red,Late Cold War,no,no,,,,,,SA-10 SAM Battery: Operational site for the SA-10 Grumble air defense system.
|
||||
SA-11 Buk CC 9S470M1,yes,Ground Unit,SAM Support vehicle,SA-11 Command Post,SA-11 Buk CC 9S470M1,red,Late Cold War,no,no,0,0,,,,SA-11 Command Post: Command and control center for the SA-11 Gadfly air defense system.
|
||||
SA-11 Buk LN 9A310M1,yes,Ground Unit,SAM Launcher,SA-11 Launcher,SA-11 Buk LN 9A310M1,red,Late Cold War,no,no,50000,35000,,,,SA-11 Launcher: Mobile launcher for the SA-11 Gadfly surface-to-air missile system.
|
||||
SA-11 Buk SR 9S18M1,yes,Ground Unit,SAM Search Radar,SA-11 Snown Drift,SA-11 Buk SR 9S18M1,red,Mid Cold War,no,no,100000,0,,,,SA-11 Snown Drift: Early warning Radar system used in conjunction with the SA-11 Gadfly system.
|
||||
SA-11 SAM Battery,yes,Ground Unit,SAM Site,SA-11 SAM Battery,SA-11 SAM Battery,red,Late Cold War,no,no,,,,,,SA-11 SAM Battery: Operational site for the SA-11 Gadfly air defense system.
|
||||
SA-18 Igla comm,yes,Ground Unit,MANPADS,"MANPADS SA-18 Igla ""Grouse"" C2","MANPADS SA-18 Igla ""Grouse"" C2",,,no,no,5000,0,,,,"MANPADS SA-18 Igla ""Grouse"" C2: Portable, man-portable air defense system with command and control."
|
||||
SA-18 Igla manpad,yes,Ground Unit,MANPADS,SA-18 Igla manpad,SA-18 Igla manpad,red,Late Cold War,no,no,5000,5200,,,,"SA-18 Igla manpad: Portable, man-portable air defense system designed for infantry use."
|
||||
SA-18 Igla-S comm,yes,Ground Unit,MANPADS,"MANPADS SA-18 Igla-S ""Grouse"" C2","MANPADS SA-18 Igla-S ""Grouse"" C2",,,no,no,5000,0,,,,"MANPADS SA-18 Igla-S ""Grouse"" C2: Upgraded version of the SA-18 Igla manpad with command and control."
|
||||
SA-18 Igla-S manpad,yes,Ground Unit,MANPADS,SA-18 Igla-S manpad,SA-18 Igla-S manpad,red,Late Cold War,no,no,5000,5200,,,,SA-18 Igla-S manpad: Upgraded version of the SA-18 Igla manpad with improved capabilities.
|
||||
SA-2 SAM Battery,yes,Ground Unit,SAM Site,SA-2 SAM Battery,SA-2 SAM Battery,red,Early Cold War,no,no,,,,,,SA-2 SAM Battery: Operational site for the SA-2 Guideline surface-to-air missile system.
|
||||
SA-3 SAM Battery,yes,Ground Unit,SAM Site,SA-3 SAM Battery,SA-3 SAM Battery,red,Early Cold War,no,no,,,,,,SA-3 SAM Battery: Operational site for the SA-3 Goa surface-to-air missile system.
|
||||
SA-5 SAM Battery,yes,Ground Unit,SAM Site,SA-5 SAM Battery,SA-5 SAM Battery,Red,Mid Cold War,no,no,,,,,,SA-5 SAM Battery: Operational site for the SA-5 Gammon surface-to-air missile system.
|
||||
SA-6 SAM Battery,yes,Ground Unit,SAM Site,SA-6 SAM Battery,SA-6 SAM Battery,red,Mid Cold War,no,no,,,"2K12 Kub. Tracked self propelled straight fush Radars, and TELs. 3 missiles per TEL.",,"Can move, Semi Active Radar guided, 22nm/26,000ft",SA-6 SAM Battery: Operational site for the SA-6 Gainful surface-to-air missile system.
|
||||
Sandbox,yes,Ground Unit,Structure,Sandbox,Sandbox,,,no,no,0,800,,,,Sandbox: Mobile Radar system used for tracking and fire control.
|
||||
SAU 2-C9,yes,Ground Unit,Artillery,SAU Nona,SAU Nona,red,Mid Cold War,yes,no,0,7000,,,,SAU Nona: Self-propelled artillery system featuring a 120mm smoothbore mortar.
|
||||
SAU Akatsia,yes,Ground Unit,Artillery,SAU Akatsia,SAU Akatsia,red,Mid Cold War,yes,no,0,17000,,,,SAU Akatsia: Soviet self-propelled howitzer with a 152mm gun.
|
||||
SAU Gvozdika,yes,Ground Unit,Artillery,SAU Gvozdika,SAU Gvozdika,red,Mid Cold War,yes,no,0,15000,,,,SAU Gvozdika: Self-propelled artillery system with a 122mm gun.
|
||||
SAU Msta,yes,Ground Unit,Artillery,SAU Msta,SAU Msta,red,Late Cold War,yes,no,0,23500,,,,SAU Msta: Russian self-propelled howitzer featuring a 152mm gun.
|
||||
Scud_B,yes,Ground Unit,Missile system,SSM SS-1C Scud-B,SSM SS-1C Scud-B,,,yes,no,0,320000,,,,SSM SS-1C Scud-B: Tactical ballistic missile system used for ground attack.
|
||||
Sd_Kfz_2,yes,Ground Unit,Unarmed,LUV Kettenrad,LUV Kettenrad,,,no,no,0,0,,,,LUV Kettenrad: German tracked motorcycle used for reconnaissance.
|
||||
Sd_Kfz_234_2_Puma,no,Ground Unit,Armoured Car,Scout Puma AC,Scout Puma AC,,,yes,no,0,2000,,,,Scout Puma AC: German armored reconnaissance vehicle.
|
||||
Sd_Kfz_251,yes,Ground Unit,Armoured Personnel Carrier,Armoured Personnel Carrier Sd.Kfz.251 Halftrack,Armoured Personnel Carrier Sd.Kfz.251 Halftrack,,,yes,no,0,1100,,,,Armoured Personnel Carrier Sd.Kfz.251 Halftrack: German armored personnel carrier with tracks and wheels.
|
||||
Sd_Kfz_7,yes,Ground Unit,Unarmed,Tractor Sd.Kfz.7 Art'y Tractor,Tractor Sd.Kfz.7 Art'y Tractor,,,no,no,0,0,,,,Tractor Sd.Kfz.7 Art'y Tractor: German half-track used for towing artillery.
|
||||
Self Propelled GunH_Dana,yes,Ground Unit,Artillery,SPH Dana vz77 152mm,SPH Dana vz77 152mm,,,yes,no,0,18700,,,,SPH Dana vz77 152mm: Self-propelled howitzer with a 152mm gun used by the Czech military.
|
||||
Silkworm_SR,yes,Ground Unit,Missile system,AShM Silkworm SR,AShM Silkworm SR,,,yes,no,200000,0,,,,AShM Silkworm SR: Mobile launcher for the SS-N-2 Silkworm anti-ship missile.
|
||||
SK_C_28_naval_gun,no,Ground Unit,Artillery,Gun 15cm SK C/28 Naval in Bunker,Gun 15cm SK C/28 Naval in Bunker,,,no,no,0,20000,,,,Gun 15cm SK C/28 Naval in Bunker: Naval gun emplaced in a bunker for coastal defense.
|
||||
SKP-11,yes,Ground Unit,Unarmed,SKP-11,SKP-11,red,Early Cold War,no,no,0,0,,,,SKP-11: Mobile Radar system used for target acquisition and tracking.
|
||||
Smerch,yes,Ground Unit,Rocket Artillery,Smerch,Smerch,red,Late Cold War,yes,no,0,70000,,,,Smerch: Multiple rocket launcher system capable of launching large-caliber rockets.
|
||||
Smerch_HE,yes,Ground Unit,Artillery,MLRS 9A52 Smerch HE 300mm,MLRS 9A52 Smerch HE 300mm,,,yes,no,0,70000,,,,MLRS 9A52 Smerch HE 300mm: Heavy multiple rocket launcher system with a 300mm caliber.
|
||||
snr s-125 tr,yes,Ground Unit,SAM Track Radar,SA-3 Low Blow,snr s-125 tr,red,Early Cold War,no,no,100000,0,,,,SA-3 Low Blow: Mobile launcher for the SA-3 Goa surface-to-air missile system.
|
||||
SNR_75V,yes,Ground Unit,SAM Track Radar,SA-2 Fan Song,SNR 75V,Red,Early Cold War,no,no,100000,0,,,,SA-2 Fan Song: Radar system used in conjunction with the SA-2 Guideline surface-to-air missile system.
|
||||
Soldier AK,yes,Ground Unit,Infantry,Soldier AK,Soldier AK,red,Early Cold War,yes,no,0,500,,,,"Soldier AK: Standard issue assault rifle for infantry, known for its reliability and firepower."
|
||||
Soldier M249,yes,Ground Unit,Infantry,Soldier M249,Soldier M249,blue,Late Cold War,yes,no,0,700,,,,Soldier M249: Light machine gun used by infantry for sustained firepower.
|
||||
Soldier M4,yes,Ground Unit,Infantry,Soldier M4,Soldier M4,blue,Mid Cold War,yes,no,0,500,,,,Soldier M4: Standard issue carbine used by infantry.
|
||||
Soldier M4 GRG,yes,Ground Unit,Infantry,Soldier M4 GRG,Soldier M4 GRG,blue,Mid Cold War,yes,no,0,500,,,,"Soldier M4 GRG: Grenadier variant of the M4 carbine, equipped for grenade launching."
|
||||
Soldier RPG,yes,Ground Unit,Infantry,Soldier RPG,Soldier RPG,red,Mid Cold War,yes,no,0,500,,,,Soldier RPG: Portable rocket launcher used for anti-armor purposes.
|
||||
Soldier stinger,yes,Ground Unit,MANPADS,MANPADS Stinger,MANPADS Stinger,,,no,no,5000,4500,,,,"MANPADS Stinger: Portable, man-portable air defense system designed for infantry use."
|
||||
soldier_mauser98,no,Ground Unit,Infantry,Infantry Mauser 98,Infantry Mauser 98,,,yes,no,0,500,,,,Infantry Mauser 98: German bolt-action rifle used during World War II.
|
||||
soldier_wwii_br_01,no,Ground Unit,Infantry,Infantry SMLE No.4 Mk-1,Infantry SMLE No.4 Mk-1,,,yes,no,0,500,,,,Infantry SMLE No.4 Mk-1: British bolt-action rifle used during World War II.
|
||||
soldier_wwii_us,no,Ground Unit,Infantry,Infantry M1 Garand,Infantry M1 Garand,,,yes,no,0,500,,,,Infantry M1 Garand: Standard issue semi-automatic rifle used by the U.S. military.
|
||||
SON_9,yes,Ground Unit,AAA,AAA Fire Can SON-9,AAA Fire Can SON-9,,,yes,no,55000,0,,,,AAA Fire Can SON-9: Mobile anti-aircraft Radar system.
|
||||
Stinger comm,yes,Ground Unit,MANPADS,Stinger comm,Stinger comm,blue,Late Cold War,no,no,5000,0,,,,Stinger comm: Mobile communication system used in conjunction with Stinger air defense.
|
||||
Stinger comm dsr,yes,Ground Unit,MANPADS,Stinger comm dsr,Stinger comm dsr,red,Late Cold War,no,no,5000,0,,,,Stinger comm dsr: Ground-based air defense system with a MANPADS launcher.
|
||||
Strela-1 9P31,yes,Ground Unit,SAM,SA-9 Strela-1 9P31,Strela-1 9P31,red,Late Cold War,no,no,5000,4200,,,,SA-9 Strela-1 9P31: Mobile short-range air defense system with infrared homing missiles.
|
||||
Strela-10M3,yes,Ground Unit,SAM,SA-13 Strela-10M3,Strela-10M3,red,Late Cold War,no,no,8000,5000,,,,SA-13 Strela-10M3: Mobile short-range air defense system with infrared homing missiles.
|
||||
Stug_III,no,Ground Unit,Tank,Self Propelled Gun StuG III G AG,Self Propelled Gun StuG III G AG,,,yes,no,0,3000,,,,Self Propelled Gun StuG III G AG: German assault gun based on the Sturmgeschütz III chassis.
|
||||
Stug_IV,no,Ground Unit,Tank,Self Propelled Gun StuG IV AG,Self Propelled Gun StuG IV AG,,,yes,no,0,3000,,,,Self Propelled Gun StuG IV AG: German assault gun based on the Panzer IV chassis.
|
||||
SturmPzIV,no,Ground Unit,Tank,Self Propelled Gun Brummbaer AG,Self Propelled Gun Brummbaer AG,,,yes,no,0,4500,,,,Self Propelled Gun Brummbaer AG: German assault gun with a 150mm gun.
|
||||
Suidae,yes,Ground Unit,Unarmed,Suidae,Suidae,,Modern,no,no,0,0,,,,Suidae: Chinese 6x6 wheeled armored personnel carrier.
|
||||
T-55,yes,Ground Unit,Tank,T-55,T-55,red,Early Cold War,yes,no,0,2500,,,,"T-55: Soviet main battle tank with a 100mm gun, widely used during the Cold War."
|
||||
T-72B,yes,Ground Unit,Tank,T-72B,T-72B,red,Mid Cold War,yes,no,0,4000,,,,"T-72B: Soviet main battle tank with various upgrades, including composite armor."
|
||||
T-72B3,yes,Ground Unit,Tank,Tank T-72B3,Tank T-72B3,,,yes,no,0,4000,,,,Tank T-72B3: Modernized version of the Soviet T-72B main battle tank.
|
||||
T-80UD,yes,Ground Unit,Tank,T-80UD,T-80UD,red,Mid Cold War,yes,no,0,5000,,,,T-80UD: Ukrainian main battle tank known for its mobility and firepower.
|
||||
T-90,yes,Ground Unit,Tank,T-90,T-90,red,Late Cold War,yes,no,0,5000,,,,"T-90: Russian main battle tank, an upgraded version of the T-72 series."
|
||||
T155_Firtina,yes,Ground Unit,Artillery,SPH T155 Firtina 155mm,SPH T155 Firtina 155mm,,,yes,no,0,41000,,,,SPH T155 Firtina 155mm: Turkish self-propelled howitzer with a 155mm gun.
|
||||
TACAN_beacon,yes,Ground Unit,Structure,Beacon TACAN Portable TTS 3030,Beacon TACAN Portable TTS 3030,,,no,no,0,0,,,,Beacon TACAN Portable TTS 3030: Portable TACAN (Tactical Air Navigation) beacon for navigation.
|
||||
tacr2a,yes,Ground Unit,Unarmed,RAF Rescue,RAF Rescue,,,no,no,0,0,,,,RAF Rescue: Search and rescue helicopter used by the Royal Air Force.
|
||||
Tankcartrinity,yes,Ground Unit,Carriage,Tank Cartrinity,Tank Cartrinity,,,no,no,0,0,,,,Tank Cartrinity: Railway tank car used for transporting liquids.
|
||||
Tetrarch,no,Ground Unit,Armoured Car,Tk Tetrach,Tk Tetrach,,,yes,no,0,2000,,,,Tk Tetrach: British light tank used during World War II.
|
||||
Tiger_I,no,Ground Unit,Tank,Tk Tiger 1,Tk Tiger 1,,,yes,no,0,3000,,,,Tk Tiger 1: German heavy tank used during World War II.
|
||||
Tiger_II_H,no,Ground Unit,Tank,Tk Tiger II,Tk Tiger II,,,yes,no,0,6000,,,,"Tk Tiger II: German heavy tank, also known as King Tiger."
|
||||
Tigr_233036,yes,Ground Unit,Unarmed,Tigr_233036,Tigr_233036,red,Late Cold War,no,no,0,0,,,,Tigr_233036: Russian 4x4 wheeled armored vehicle used for various purposes.
|
||||
Tor 9A331,yes,Ground Unit,SAM,SA-15 Tor 9A331,Tor 9A331,red,Late Cold War,no,no,25000,12000,,,,SA-15 Tor 9A331: Russian short-range air defense system with Radar guidance.
|
||||
TPZ,yes,Ground Unit,Armoured Personnel Carrier,TPz Fuchs,TPz Fuchs,blue,Late Cold War,yes,no,0,1000,,,,TPz Fuchs: German 6x6 wheeled armored personnel carrier.
|
||||
Trolley bus,yes,Ground Unit,Unarmed,Trolley bus,Trolley bus,blue,Late Cold War,no,no,0,0,,,,"Trolley bus: Electric bus powered by overhead wires, used for public transport."
|
||||
tt_B8M1,yes,Ground Unit,Artillery,MLRS LC with B8M1 80mm,MLRS LC with B8M1 80mm,,,yes,no,5000,5000,,,,MLRS LC with B8M1 80mm: Light multiple rocket launcher system with 80mm rockets.
|
||||
tt_DSHK,yes,Ground Unit,Armoured Car,Scout LC with DSHK 12.7mm,Scout LC with DSHK 12.7mm,,,yes,no,5000,1200,,,,Scout LC with DSHK 12.7mm: Armored reconnaissance vehicle with a mounted DShK heavy machine gun.
|
||||
tt_KORD,yes,Ground Unit,Armoured Car,Scout LC with KORD 12.7mm,Scout LC with KORD 12.7mm,,,yes,no,5000,1200,,,,Scout LC with KORD 12.7mm: Armored reconnaissance vehicle with a mounted KORD heavy machine gun.
|
||||
tt_ZU-23,yes,Ground Unit,AAA,SPAAA LC with ZU-23,SPAAA LC with ZU-23,,,yes,no,0,2500,,,,SPAAA LC with ZU-23: Light armored anti-aircraft vehicle with dual ZU-23 autocannons.
|
||||
TYPE-59,yes,Ground Unit,Tank,MT Type 59,MT Type 59,,,yes,no,0,2500,,,,MT Type 59: Chinese medium tank based on the Soviet T-54.
|
||||
TZ-22_KrAZ,yes,Ground Unit,Unarmed,Refueler TZ-22 Tractor (KrAZ-258B1),Refueler TZ-22 Tractor (KrAZ-258B1),,,no,no,0,0,,,,Refueler TZ-22 Tractor (KrAZ-258B1): Military refueling tractor used for aircraft refueling.
|
||||
UAZ-469,yes,Ground Unit,Unarmed,UAZ-469,UAZ-469,red,Mid Cold War,no,no,0,0,,,,UAZ-469: Soviet/Russian light utility vehicle used for reconnaissance and transport.
|
||||
Uragan_BM-27,yes,Ground Unit,Rocket Artillery,Uragan,Uragan,red,Late Cold War,yes,no,0,35800,,,,Uragan: Soviet multiple rocket launcher system with a 220mm caliber.
|
||||
Ural ATsP-6,yes,Ground Unit,Unarmed,Ural ATsP-6,Ural ATsP-6,red,Mid Cold War,no,no,0,0,,,,Ural ATsP-6: Mobile command post based on the Ural truck platform.
|
||||
Ural-375,yes,Ground Unit,Unarmed,Ural-375,Ural-375,red,Mid Cold War,no,yes,0,0,,,,Ural-375: Soviet/Russian military truck used for various logistical purposes.
|
||||
Ural-375 PBU,yes,Ground Unit,Unarmed,Ural-375 PBU,Ural-375 PBU,red,Mid Cold War,no,no,0,0,,,,Ural-375 PBU: Mobile communication vehicle based on the Ural truck platform.
|
||||
Ural-375 ZU-23,yes,Ground Unit,AAA,Ural-375 ZU-23,Ural-375 ZU-23,red,Early Cold War,yes,no,5000,2500,,,,Ural-375 ZU-23: Anti-aircraft vehicle based on the Ural truck platform.
|
||||
Ural-375 ZU-23 Insurgent,yes,Ground Unit,AAA,Ural-375 ZU-23 Insurgent,Ural-375 ZU-23 Insurgent,red,Early Cold War,yes,no,5000,2500,,,,Ural-375 ZU-23 Insurgent: Improvised anti-aircraft vehicle based on the Ural truck platform.
|
||||
Ural-4320 APA-5D,yes,Ground Unit,Unarmed,Ural-4320 APA-5D,Ural-4320 APA-5D,red,Early Cold War,no,yes,0,0,Lightly armoured,,"Rearms ground units of same coaltion,",Ural-4320 APA-5D: Mobile power station based on the Ural truck platform.
|
||||
Ural-4320-31,yes,Ground Unit,Unarmed,Ural-4320-31,Ural-4320-31,red,Late Cold War,no,yes,0,0,,,"Rearms ground units of same coaltion,",Ural-4320-31: Military truck used for various logistical purposes.
|
||||
Ural-4320T,yes,Ground Unit,Unarmed,Ural-4320T,Ural-4320T,red,Late Cold War,no,yes,0,0,,,"Rearms ground units of same coaltion,",Ural-4320T: Military truck used for troop transport and logistics.
|
||||
v1_launcher,no,Ground Unit,Missile System,V-1 Launch Ramp,V-1 Launch Ramp,,,yes,no,0,0,,,,V-1 Launch Ramp: Launch ramp for the German V-1 flying bomb.
|
||||
VAB_Mephisto,yes,Ground Unit,Armoured Car,ATGM VAB Mephisto,ATGM VAB Mephisto,,,yes,no,0,3800,,,,ATGM VAB Mephisto: French armored vehicle equipped with anti-tank guided missiles.
|
||||
VAZ Car,yes,Ground Unit,Unarmed,VAZ Car,VAZ Car,red,Early Cold War,no,no,0,0,,,,VAZ Car: Russian military staff car based on the Lada Niva platform.
|
||||
Vulcan,yes,Ground Unit,AAA,Vulcan,Vulcan,blue,Late Cold War,yes,no,5000,2000,,,,Vulcan: Self-propelled anti-aircraft gun system featuring the M61 Vulcan cannon.
|
||||
Wellcarnsc,yes,Ground Unit,Carriage,Well Car,Well Car,,,no,no,0,0,,,,Well Car: Railway car designed to transport intermodal containers.
|
||||
Wespe124,no,Ground Unit,Artillery,SPH Sd.Kfz.124 Wespe 105mm,SPH Sd.Kfz.124 Wespe 105mm,,,yes,no,0,10500,,,,SPH Sd.Kfz.124 Wespe 105mm: German self-propelled howitzer used during World War II.
|
||||
Willys_MB,no,Ground Unit,Unarmed,Car Willys Jeep,Car Willys Jeep,,,no,no,0,0,,,,Car Willys Jeep: Iconic American military jeep used for reconnaissance and transport.
|
||||
ZBD04A,yes,Ground Unit,Infantry Fighting Vehicle,ZBD-04A,ZBD-04A,,,yes,no,0,4800,,,,ZBD-04A: Chinese amphibious infantry fighting vehicle.
|
||||
ZiL-131 APA-80,yes,Ground Unit,Unarmed,ZiL-131 APA-80,ZiL-131 APA-80,red,Early Cold War,no,no,0,0,,,,ZiL-131 APA-80: Mobile power station based on the ZiL-131 truck platform.
|
||||
ZIL-131 KUNG,yes,Ground Unit,Unarmed,ZIL-131 KUNG,ZIL-131 KUNG,red,Early Cold War,no,no,0,0,,,,ZIL-131 KUNG: Military truck with a covered cargo area based on the ZIL-131 platform.
|
||||
ZIL-135,yes,Ground Unit,Unarmed,Truck ZIL-135,Truck ZIL-135,,,no,no,0,0,,,,Truck ZIL-135: Soviet military truck used for various logistical purposes.
|
||||
ZIL-4331,yes,Ground Unit,Unarmed,ZIL-4331,ZIL-4331,red,Early Cold War,no,no,0,0,,,,ZIL-4331: Soviet/Russian military truck used for various logistical purposes.
|
||||
ZSU_57_2,yes,Ground Unit,AAA,SPAAA ZSU-57-2,SPAAA ZSU-57-2,,,yes,no,5000,7000,,,,SPAAA ZSU-57-2: Self-propelled anti-aircraft gun with dual 57mm autocannons.
|
||||
ZSU-23-4 Shilka,yes,Ground Unit,AAA,ZSU-23-4 Shilka,ZSU-23-4 Shilka,red,Late Cold War,yes,no,5000,2500,Ship,,"2nm 7,000ft range",ZSU-23-4 Shilka: Soviet self-propelled anti-aircraft gun system with four 23mm autocannons.
|
||||
ZTZ96B,yes,Ground Unit,Tank,ZTZ-96B,ZTZ-96B,,,yes,no,0,5000,,,,ZTZ-96B: Chinese main battle tank with a 125mm smoothbore gun.
|
||||
ZU-23 Closed Insurgent,yes,Ground Unit,AAA,ZU-23 Closed Insurgent,ZU-23 Closed Insurgent,red,Early Cold War,yes,no,5000,2500,,,,ZU-23 Closed Insurgent: Improvised anti-aircraft vehicle with ZU-23 autocannons.
|
||||
ZU-23 Emplacement,yes,Ground Unit,AAA,ZU-23 Emplacement,ZU-23 Emplacement,red,Early Cold War,yes,no,5000,2500,,,,ZU-23 Emplacement: Fixed emplacement with ZU-23 autocannons.
|
||||
ZU-23 Emplacement Closed,yes,Ground Unit,AAA,ZU-23 Emplacement Closed,ZU-23 Emplacement Closed,red,Early Cold War,yes,no,5000,2500,,,,ZU-23 Emplacement Closed: Fixed emplacement with ZU-23 autocannons.
|
||||
ZU-23 Insurgent,yes,Ground Unit,AAA,ZU-23 Insurgent,ZU-23 Insurgent,red,Early Cold War,yes,no,5000,2500,,,,ZU-23 Insurgent: Improvised anti-aircraft vehicle with ZU-23 autocannons.
|
||||
AH-1W,yes,Helicopter,Helicopter,AH-1W Cobra,AH1,blue,Mid Cold War,yes,no,,,"2 engine, 2 crew attack helicopter. Cobra",,"Gun, rockets and ATGMs",
|
||||
AH-64D_BLK_II,yes,Helicopter,Helicopter,AH-64D Apache,AH64,blue,Modern,yes,no,,,"2 engine, 2 crew attack helicopter. Apache",,"Gun, rockets and ATGMs",
|
||||
Ka-50_3,yes,Helicopter,Helicopter,Ka-50 Hokum A,K50,red,Late Cold War,yes,no,,,"2 engine, 1 crew attack helicopter. Blackshark",,"Fox 2 and gun, Rockets and ATGMs",
|
||||
Mi-24P,yes,Helicopter,Helicopter,Mi-24P Hind,Mi24,red,Mid Cold War,yes,no,,,"2 engine, 2 crew attack helicopter. Hind",,"Fox 2 and gun, Rockets and ATGMs",
|
||||
Mi-26,yes,Helicopter,Helicopter,Mi-26 Halo,M26,red,Late Cold War,no,no,,,"2 engine, 5 crew transport helicopter. Halo",,,
|
||||
Mi-28N,yes,Helicopter,Helicopter,Mi-28N Havoc,M28,red,Modern,yes,no,,,"2 engine, 2 crew attack helicopter. Havoc",,"Gun, Rockets and ATGMs",
|
||||
Mi-8MT,yes,Helicopter,Helicopter,Mi-8MT Hip,Mi8,red,Mid Cold War,no,no,,,"2 engine, 3 crew transport helicopter. Hip",,"Gun and rockets,",
|
||||
SA342L,yes,Helicopter,Helicopter,SA342L Gazelle,342,blue,Mid Cold War,no,no,,,"1 engine, 2 crew scout helicopter. Gazelle",,"Fox 2 and gun, Rockets and ATGMs",
|
||||
SA342M,yes,Helicopter,Helicopter,SA342M Gazelle,342,blue,Mid Cold War,no,no,,,"1 engine, 2 crew scout helicopter. Gazelle",,ATGMs,
|
||||
SA342Mistral,yes,Helicopter,Helicopter,SA342Mistral Gazelle,342,blue,Mid Cold War,no,no,,,"1 engine, 2 crew scout helicopter. Gazelle",,Fox 2,
|
||||
SH-60B,yes,Helicopter,Helicopter,SH-60B Seahawk,S60,blue,Mid Cold War,no,no,,,"2 engine, 3 crew transport helicopter. Seahawk",,,
|
||||
UH-1H,yes,Helicopter,Helicopter,UH-1H Huey,UH1,blue,Early Cold War,no,no,,,"2 engine, 2 crew transport helicopter. Huey",,"Gun and rockets,",
|
||||
UH-60A,yes,Helicopter,Helicopter,UH-60A Blackhawk,U60,blue,Mid Cold War,no,no,,,"2 engine, 3 crew transport helicopter. Blackhawk",,,
|
||||
albatros,yes,Navy Unit,Frigate,Albatros (Grisha-5),Albatros,red,Early Cold War,yes,no,30000,16000,,,,"Albatros (Grisha-5): Grisha-class corvette Albatros, designed for anti-submarine warfare and patrol duties."
|
||||
ara_vdm,yes,Navy Unit,Aircraft Carrier,ARA Vienticinco de Mayo,ARA Vienticinco de Mayo,,Mid Cold War,yes,no,18000,5000,ARA Vienticinco de Mayo. Conventional CATOBAR carrier,,"24kn, 9x40mm AA gun, 3nm range 9,000ft","ARA Vienticinco de Mayo: Aircraft carrier Vienticinco de Mayo, serving the Argentine Navy."
|
||||
BDK-775,yes,Navy Unit,Landing Ship,LS Ropucha,LS Ropucha,blue,Mid Cold War,yes,no,25000,6000,Landing ship Ropucha,,"2 57mm gun, rockets, Strela SAM, 8nm, 9,000ft range",LS Ropucha: Ropucha-class landing ship designed for transporting and landing amphibious forces.
|
||||
CastleClass_01,yes,Navy Unit,Patrol,HMS Leeds Castle (P-258),HMS Leeds Castle (P-258),blue,Mid Cold War,yes,no,25000,3000,HMS Leeds Castle. Smaller. Patrol craft,,"20mm gun, 12,7mm gun x 4, 3nm 4,000ft range",HMS Leeds Castle (P-258): Castle-class patrol vessel used for offshore patrol duties and maritime security.
|
||||
CV_1143_5,yes,Navy Unit,Aircraft Carrier,CV Admiral Kuznetsov(2017),Admiral Kuznetsov(2017),red,Modern,no,no,25000,12000,Admiral Kuznetsov. Conventional STOBAR carrier,,"12 granit anti ship missiles, kynshal & Kashtan SAM, 30mm gun x 6, 9nm 20,000ft range, 29kn","CV Admiral Kuznetsov(2017): Russian aircraft carrier Admiral Kuznetsov, serving as a mobile airbase for naval aviation."
|
||||
CVN_71,yes,Navy Unit,Super Aircraft Carrier,CVN-71 Theodore Roosevelt,CVN-71,blue,Late Cold War,no,no,50000,25000,Ship,,"6nm 16,000ft range",CVN-71 Theodore Roosevelt: Nimitz-class aircraft carrier serving as a flagship with a focus on power projection.
|
||||
CVN_72,yes,Navy Unit,Super Aircraft Carrier,CVN-72 Abraham Lincoln,CVN-72,blue,Late Cold War,no,no,50000,25000,Ship,,"6nm 16,000ft range","CVN-72 Abraham Lincoln: Nimitz-class aircraft carrier, a key component of naval force projection and air superiority."
|
||||
CVN_73,yes,Navy Unit,Super Aircraft Carrier,CVN-73 George Washington,CVN-73,blue,Late Cold War,no,no,50000,25000,Ship,,"6nm 16,000ft range",CVN-73 George Washington: Nimitz-class aircraft carrier providing strategic naval capabilities and air support.
|
||||
CVN_75,yes,Navy Unit,Aircraft Carrier,CVN-75 Harry S. Truman,CVN-75,blue,Late Cold War,no,no,50000,25000,Ship,,"6nm 16,000ft range",CVN-75 Harry S. Truman: Nimitz-class aircraft carrier playing a crucial role in power projection and global security.
|
||||
Dry-cargo ship-1,yes,Navy Unit,Cargoship,Bulker Yakushev,Bulker Yakushev,,,no,no,0,0,,,,"Bulker Yakushev: Bulk carrier ship Yakushev, specializing in the transport of dry bulk cargo."
|
||||
Dry-cargo ship-2,yes,Navy Unit,Cargoship,Cargo Ivanov,Cargo Ivanov,,,no,no,0,0,,,,Cargo Ivanov: Ivanov-class cargo ship designed for transporting goods and equipment.
|
||||
elnya,yes,Navy Unit,Tanker,Elnya tanker,Elnya tanker,red,Late Cold War,no,no,0,0,,,,"Elnya tanker: Elnya-class tanker, supporting naval operations by providing fuel replenishment."
|
||||
Forrestal,yes,Navy Unit,Aircraft Carrier,CV-59 Forrestal,CV-59 Forrestal,,,no,no,50000,25000,,,,"CV-59 Forrestal: Forrestal-class aircraft carrier, a historic vessel with a significant role in naval aviation."
|
||||
HandyWind,yes,Navy Unit,Cargoship,Bulker Handy Wind,Bulker Handy Wind,blue,Late Cold War,no,no,0,0,,,,"Bulker Handy Wind: Bulk carrier ship designed for transporting unpackaged cargo, such as grains or minerals."
|
||||
HarborTug,yes,Navy Unit,Tug,Harbor Tug,Harbor Tug,,Mid Cold War,no,no,0,0,,,,"Harbor Tug: Tugboat specialized in maneuvering ships in harbors, assisting in docking and undocking."
|
||||
Higgins_boat,yes,Navy Unit,Landing Ship,Boat LCVP Higgins,Boat LCVP Higgins,,,yes,no,3000,1000,,,,"Boat LCVP Higgins: Landing Craft, Vehicle, Personnel (LCVP) Higgins, designed for troop and vehicle transport."
|
||||
hms_invincible,yes,Navy Unit,Aircraft Carrier,HMS Invincible (R05),HMS Invincible,blue,Mid Cold War,yes,no,100000,74000,Ship,,"46nm >50,000ft range","HMS Invincible (R05): Invincible-class aircraft carrier, a key asset in the Royal Navy's fleet."
|
||||
IMPROVED_KILO,yes,Navy Unit,Submarine,SSK 636 Improved Kilo,SSK 636 Improved Kilo,,,no,no,0,0,,,,"SSK 636 Improved Kilo: Upgraded version of the Kilo-class submarine, known for its stealth capabilities."
|
||||
kilo,yes,Navy Unit,Submarine,Project 636 Varshavyanka Basic,Varshavyanka Basic,red,Late Cold War,no,no,0,0,,,,Project 636 Varshavyanka Basic: Improved Kilo-class submarine designed for stealth and anti-submarine warfare.
|
||||
kuznecow,yes,Navy Unit,Aircraft Carrier,Admiral Kuznetsov,Admiral Kuznetsov,red,Late Cold War,no,no,25000,12000,,,,"Admiral Kuznetsov: Russian aircraft carrier Admiral Kuznetsov, a key element of Russia's naval aviation."
|
||||
La_Combattante_II,yes,Navy Unit,Fast Attack Craft,FAC La Combattante lla,FAC La Combattante,blue,Mid Cold War,yes,no,19000,4000,,,,FAC La Combattante lla: Fast Attack Craft designed for high-speed naval operations and coastal defense.
|
||||
leander-gun-achilles,yes,Navy Unit,Frigate,HMS Achilles (F12),HMS Achilles,blue,Mid Cold War,yes,no,180000,8000,Ship,,"7nm 6,000ft range","HMS Achilles (F12): Leander-class frigate HMS Achilles, providing anti-submarine and anti-air capabilities."
|
||||
leander-gun-andromeda,yes,Navy Unit,Frigate,HMS Andromeda (F57),HMS Andromeda,blue,Mid Cold War,yes,no,180000,140000,Ship,,"7nm 6,000ft range","HMS Andromeda (F57): Leander-class frigate HMS Andromeda, serving in anti-submarine and anti-air roles."
|
||||
leander-gun-ariadne,yes,Navy Unit,Frigate,HMS Ariadne (F72),HMS Ariadne,blue,Mid Cold War,yes,no,150000,100000,Ship,,"7nm 6,000ft range","HMS Ariadne (F72): Leander-class frigate HMS Ariadne, contributing to the Royal Navy's anti-submarine capabilities."
|
||||
leander-gun-condell,yes,Navy Unit,Frigate,Almirante Condell PFG-06,Almirante Condell,,Mid Cold War,yes,no,150000,100000,Ship,,"7nm 6,000ft range","Almirante Condell PFG-06: Condell-class frigate, part of the Chilean Navy, with anti-submarine and anti-ship capabilities."
|
||||
leander-gun-lynch,yes,Navy Unit,Frigate,CNS Almirante Lynch (PFG-07),CNS Almirante Lynch,,Mid Cold War,yes,no,180000,140000,Ship,,"7nm 6,000ft range","CNS Almirante Lynch (PFG-07): Lynch-class frigate, enhancing the naval capabilities of the Chilean Navy."
|
||||
LHA_Tarawa,yes,Navy Unit,Aircraft Carrier,LHA-1 Tarawa,LHA-1 Tarawa,blue,Mid Cold War,yes,no,150000,20000,Ship,,"8nm 13,000ft range",LHA-1 Tarawa: Wasp-class amphibious assault ship capable of deploying Marines and their equipment.
|
||||
LST_Mk2,yes,Navy Unit,Landing Ship,LST Mk.II,LST Mk.II,,,yes,no,0,4000,,,,"LST Mk.II: Landing Ship, Tank (LST) Mk.II, designed for transporting tanks and vehicles for amphibious assaults."
|
||||
molniya,yes,Navy Unit,Corvette,Molniya (Tarantul-3),Molniya,,Late Cold War,yes,no,21000,2000,,,,"Molniya (Tarantul-3): Tarantul-class corvette Molniya, a fast attack craft specializing in anti-ship warfare."
|
||||
moscow,yes,Navy Unit,Cruiser,Moscow,Moscow,red,Late Cold War,yes,no,160000,75000,,,,"Moscow: Slava-class cruiser Moscow, serving as a guided missile cruiser with anti-ship and anti-air capabilities."
|
||||
neustrash,yes,Navy Unit,Frigate,Neustrashimy,Neustrashimy,red,Late Cold War,yes,no,27000,12000,,,,"Neustrashimy: Neustrashimy-class frigate, designed for anti-submarine warfare and escort missions."
|
||||
perry,yes,Navy Unit,Frigate,Oliver H. Perry,Oliver H. Perry,blue,Mid Cold War,yes,no,150000,100000,,,,"Oliver H. Perry: Oliver Hazard Perry-class frigate, providing anti-submarine and anti-air capabilities."
|
||||
PIOTR,yes,Navy Unit,Cruiser,Battlecruiser 1144.2 Pyotr Velikiy,Battlecruiser 1144.2 Pyotr Velikiy,,,yes,no,250000,190000,,,,"Battlecruiser 1144.2 Pyotr Velikiy: Kirov-class battlecruiser Pyotr Velikiy, a heavily armed surface warfare vessel."
|
||||
Rezky (Krivak-2),yes,Navy Unit,Frigate,Rezky (Krivak-2),Rezky,red,Early Cold War,yes,no,30000,16000,,,,"Rezky (Krivak-2): Krivak II-class frigate Rezky, providing anti-submarine and anti-surface capabilities."
|
||||
santafe,yes,Navy Unit,Submarine,ARA Santa Fe S-21,ARA Santa,,Early Cold War,no,no,0,0,,,,"ARA Santa Fe S-21: Santa Fe-class submarine, a conventional diesel-electric submarine in service with the Argentine Navy."
|
||||
Schnellboot_type_S130,yes,Navy Unit,Torpedo Boat,Boat Schnellboot type S130,Boat Schnellboot type S130,,,yes,no,10000,4000,,,,"Boat Schnellboot type S130: Schnellboot-type torpedo boat S130, a high-speed vessel used for fast attack and patrol."
|
||||
Seawise_Giant,yes,Navy Unit,Tanker,Tanker Seawise Giant,Seawise Giant,blue,Late Cold War,no,no,0,0,,,,"Tanker Seawise Giant: Supertanker Seawise Giant, one of the largest ships ever built, used for transporting crude oil."
|
||||
Ship_Tilde_Supply,yes,Navy Unit,Transport,Supply Ship MV Tilde,Supply Ship Tilde,blue,Late Cold War,no,no,0,0,,,,"Supply Ship MV Tilde: Supply ship MV Tilde designed to replenish naval vessels at sea with fuel, ammunition, and supplies."
|
||||
SOM,yes,Navy Unit,Submarine,SSK 641B Tango,SSK 641B Tango,,,no,no,0,0,,,,"SSK 641B Tango: Tango-class submarine, a diesel-electric attack submarine used for various roles."
|
||||
speedboat,yes,Navy Unit,Speedboat,Boat Armed Hi-speed,Boat Armed Hi-speed,,,yes,no,5000,1000,,,,Boat Armed Hi-speed: High-speed armed patrol boat designed for coastal defense and interception.
|
||||
Stennis,yes,Navy Unit,Aircraft Carrier,CVN-74 John C. Stennis,CVN-74,blue,Late Cold War,yes,no,50000,25000,,,,"CVN-74 John C. Stennis: Nimitz-class aircraft carrier, a vital element in power projection and global stability."
|
||||
TICONDEROG,yes,Navy Unit,Cruiser,Ticonderoga,Ticonderoga,blue,Late Cold War,yes,no,150000,100000,Ship,,"55nm >50,000ft range",Ticonderoga: Ticonderoga-class cruiser equipped with advanced Radar and missile systems for air defense.
|
||||
Type_052B,yes,Navy Unit,Destroyer,052B DDG-168 Guangzhou,Type 52B,red,Modern,yes,no,100000,30000,Ship,,"27nm 48,000ft range","052B DDG-168 Guangzhou: Luyang I-class destroyer Guangzhou, part of the People's Liberation Army Navy."
|
||||
Type_052C,yes,Navy Unit,Destroyer,052C DDG-171 Haikou,Type 52C,red,Modern,yes,no,260000,100000,Ship,,"64nm >50,000ft range","052C DDG-171 Haikou: Luyang II-class destroyer Haikou, featuring advanced air defense and anti-submarine capabilities."
|
||||
Type_071,yes,Navy Unit,Transport,Type 071,Type 071,red,Modern,yes,no,300000,150000,Ship,,"4nm 9,000ft range","Type 071: Amphibious transport dock ship designed for carrying troops, vehicles, and helicopters."
|
||||
Type_093,yes,Navy Unit,Submarine,Type 093,Type 093,red,Modern,yes,no,40000,40000,,,,Type 093: Chinese nuclear-powered attack submarine providing strategic underwater capabilities.
|
||||
Uboat_VIIC,yes,Navy Unit,Submarine,U-boat VIIC U-flak,U-boat VIIC U-flak,,,yes,no,20000,4000,,,,"U-boat VIIC U-flak: German U-boat Type VIIC, a World War II submarine designed for naval warfare."
|
||||
USS_Arleigh_Burke_IIa,yes,Navy Unit,Destroyer,DDG Arleigh Burke lla,DDG Arleigh Burke,blue,Late Cold War,yes,no,150000,100000,,,"57nm >50,000ft range",DDG Arleigh Burke lla: Arleigh Burke-class destroyer equipped with advanced anti-aircraft and anti-submarine systems.
|
||||
USS_Samuel_Chase,yes,Navy Unit,Landing SHip,LS Samuel Chase,LS Samuel Chase,,,yes,no,0,7000,,,,"LS Samuel Chase: Samuel Chase-class landing ship, a vessel used for amphibious warfare and logistics support."
|
||||
VINSON,yes,Navy Unit,Aircraft Carrier,CVN-70 Carl Vinson,CVN-70 Carl Vinson,,,no,no,30000,15000,,,,CVN-70 Carl Vinson: Nimitz-class aircraft carrier with a focus on power projection and naval air operations.
|
||||
zwezdny,yes,Navy Unit,Civilian Boat,Zwezdny,Zwezdny,,Modern,no,no,0,0,,,,"Zwezdny: Zwezdny-class transport ship, supporting naval operations with cargo and troop transport."
|
||||
,yes,Navy Unit,Frigate,054A FFG-538 Yantai,Type 54A,red,Modern,yes,no,160000,45000,Ship,,"35nm >50,000ft range","054A FFG-538 Yantai: Jiangkai I-class frigate Yantai, serving as a versatile and multi-role surface combatant."
|
||||
|
@ -1,86 +0,0 @@
|
||||
import math
|
||||
import urllib.request
|
||||
import os
|
||||
import multiprocessing
|
||||
|
||||
try:
|
||||
os.mkdir("hgt")
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
||||
def download_file(latlng):
|
||||
lat = latlng[0]
|
||||
lng = latlng[1]
|
||||
|
||||
if lat < 0:
|
||||
lat = f"S{abs(lat):02}"
|
||||
else:
|
||||
lat = f"N{lat:02}"
|
||||
|
||||
if lng < 0:
|
||||
lng = f"W{abs(lng):03}"
|
||||
else:
|
||||
lng = f"E{lng:03}"
|
||||
|
||||
url = f"https://srtm.fasma.org/{lat}{lng}.SRTMGL3S.hgt.zip"
|
||||
urllib.request.urlretrieve(url, f"hgt/{lat}{lng}.SRTMGL3S.hgt.zip")
|
||||
print(f"{url} downloaded")
|
||||
|
||||
boundaries = [
|
||||
[ # NTTR
|
||||
39.7982463, -119.985425,
|
||||
34.4037128, -119.7806729,
|
||||
34.3483316, -112.4529351,
|
||||
39.7372411, -112.1130805,
|
||||
39.7982463, -119.985425
|
||||
],
|
||||
[ # Syria
|
||||
37.3630556, 29.2686111,
|
||||
31.8472222, 29.8975,
|
||||
32.1358333, 42.1502778,
|
||||
37.7177778, 42.3716667,
|
||||
37.3630556, 29.2686111
|
||||
],
|
||||
[ # Caucasus
|
||||
39.6170191, 27.634935,
|
||||
38.8735863, 47.1423108,
|
||||
47.3907982, 49.3101946,
|
||||
48.3955879, 26.7753625,
|
||||
39.6170191, 27.634935
|
||||
],
|
||||
[ # Persian Gulf
|
||||
32.9355285, 46.5623682,
|
||||
21.729393, 47.572675,
|
||||
21.8501348, 63.9734737,
|
||||
33.131584, 64.7313594,
|
||||
32.9355285, 46.5623682
|
||||
],
|
||||
[ # Marianas
|
||||
22.09, 135.0572222,
|
||||
10.5777778, 135.7477778,
|
||||
10.7725, 149.3918333,
|
||||
22.5127778, 149.5427778,
|
||||
22.09, 135.0572222
|
||||
]
|
||||
]
|
||||
|
||||
latlngs = []
|
||||
if __name__ == '__main__':
|
||||
pool = multiprocessing.Pool(32)
|
||||
for boundary_set in boundaries:
|
||||
lats = [boundary_set[i] for i in range(0, len(boundary_set), 2)]
|
||||
lngs = [boundary_set[i] for i in range(1, len(boundary_set), 2)]
|
||||
minLat = math.floor(min(lats))
|
||||
minLng = math.floor(min(lngs))
|
||||
maxLat = math.ceil(max(lats))
|
||||
maxLng = math.ceil(max(lngs))
|
||||
|
||||
index = 1
|
||||
for lat in range(minLat, maxLat + 1):
|
||||
for lng in range(minLng, maxLng + 1):
|
||||
latlngs.append((lat, lng))
|
||||
|
||||
print(len(latlngs))
|
||||
#pool.map(download_file, latlngs)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user