patchwork-mapconverter
Version:
Executable wrapper for https://github.com/ChiefOfGxBxL/WC3MapTranslator
176 lines (175 loc) • 4.16 kB
TypeScript
interface Map {
name: string;
author: string;
description: string;
recommendedPlayers: string;
playableArea: PlayableMapArea;
flags: MapFlags;
mainTileType: string;
}
interface GameVersion {
major: number;
minor: number;
patch: number;
build: number;
}
interface PlayableCamera {
bounds: number[];
complements: number[];
}
interface MapFlags {
hideMinimapInPreview: boolean;
modifyAllyPriorities: boolean;
isMeleeMap: boolean;
nonDefaultTilesetMapSizeLargeNeverBeenReducedToMedium: boolean;
maskedPartiallyVisible: boolean;
fixedPlayerSetting: boolean;
useCustomForces: boolean;
useCustomTechtree: boolean;
useCustomAbilities: boolean;
useCustomUpgrades: boolean;
mapPropertiesMenuOpenedAtLeastOnce: boolean;
waterWavesOnCliffShores: boolean;
waterWavesOnRollingShores: boolean;
useTerrainFog: boolean;
tftRequired: boolean;
useItemClassificationSystem: boolean;
enableWaterTinting: boolean;
useAccurateProbabilityForCalculations: boolean;
useCustomAbilitySkins: boolean;
disableDenyIcon: boolean;
forceDefaultCameraZoom: boolean;
forceMaxCameraZoom: boolean;
forceMinCameraZoom: boolean;
}
interface LoadingScreen {
background: number;
path: string;
text: string;
title: string;
subtitle: string;
}
declare enum FogType {
Linear = 0,
Exponential1 = 1,
Exponential2 = 2
}
interface Fog {
type: FogType;
startHeight: number;
endHeight: number;
density: number;
color: number[];
}
interface PlayableMapArea {
width: number;
height: number;
}
interface Prologue {
path: string;
text: string;
title: string;
subtitle: string;
}
interface Info {
saves: number;
gameVersion: GameVersion;
editorVersion: number;
scriptLanguage: ScriptLanguage;
supportedModes: SupportedModes;
gameDataVersion: number;
forcedDefaultCamDistance: number;
forcedMaxCamDistance: number;
forcedMinCamDistance: number;
map: Map;
camera: PlayableCamera;
gameDataSet: number;
prologue: Prologue;
loadingScreen: LoadingScreen;
fog: Fog;
globalWeather: number;
customSoundEnvironment: string;
customLightEnv: number;
water: number[];
players: Player[];
forces: Force[];
upgrades: UpgradeAvailable[];
techBlacklist: TechUnavailable[];
randomUnitTables: RandomUnitTable[];
randomItemTables: RandomTable[];
}
interface PlayerStartingPosition {
x: number;
y: number;
fixed: boolean;
}
interface Player {
playerNum: number;
type: number;
race: number;
name: string;
startingPos: PlayerStartingPosition;
allyLowPriorities: number;
allyHighPriorities: number;
enemyLowPriorities: number;
enermyHighPriorities: number;
}
interface ForceFlags {
allied: boolean;
alliedVictory: boolean;
shareVision: boolean;
shareUnitControl: boolean;
shareAdvUnitControl: boolean;
}
interface Force {
flags: ForceFlags;
players: number;
name: string;
}
interface UpgradeAvailable {
playerFlags: number;
upgradeId: string;
level: number;
availability: Availability;
}
interface TechUnavailable {
playerFlags: number;
techId: string;
}
interface RandomTable {
id: number;
name: string;
rows: ObjectPool[];
}
interface ObjectPool {
type: number;
objects: RandomObject[];
}
interface RandomObject {
objectId: string;
chance: number;
}
interface RandomUnitTable {
id: number;
name: string;
positions: number[];
chances: Array<{
chance: number;
unitIds: string[];
}>;
}
declare enum ScriptLanguage {
JASS = 0,
Lua = 1
}
declare enum SupportedModes {
SD = 1,
HD = 2,
Both = 3
}
declare enum Availability {
UNAVAILABLE = 0,
AVAILABLE = 1,
RESEARCHED = 2
}
export { type Map, type GameVersion, type PlayableCamera, type MapFlags, type LoadingScreen, FogType, type PlayableMapArea, type Prologue, type Info, type PlayerStartingPosition, type Player, type ForceFlags, type Force, ScriptLanguage, SupportedModes };