homm3-parsers
Version:
Collection of binary parsers able to parse various file formats related to Heroes of Might and Magic III
33 lines • 2.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const binary_markup_1 = require("binary-markup");
const common_bml_1 = require("../common.bml");
const constants_1 = require("../constants");
const WinCondition_1 = require("../contracts/enums/WinCondition");
const aquireArtifact = binary_markup_1.struct(
//
binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`, common_bml_1.artifact `type`);
const accumulateCreatures = binary_markup_1.struct(binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`, common_bml_1.creature `type`, binary_markup_1.uint32 `amount`);
const accumulateResources = binary_markup_1.struct(binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`, common_bml_1.resource `resource`, binary_markup_1.uint32 `amount`);
const upgradeTown = binary_markup_1.struct(binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`, binary_markup_1.uint8 `x`, binary_markup_1.uint8 `y`, binary_markup_1.uint8 `z`, binary_markup_1.enums(binary_markup_1.uint8, constants_1.hallLevelEnum) `hallLevel`, binary_markup_1.enums(binary_markup_1.uint8, constants_1.castleLevelEnum) `castleLevel`);
const position = binary_markup_1.struct(
//
binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`, binary_markup_1.uint8 `x`, binary_markup_1.uint8 `y`, binary_markup_1.uint8 `z`);
const flagWin = binary_markup_1.struct(
//
binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`);
const transportArtifact = binary_markup_1.struct(binary_markup_1.flag `allowNormalWin`, binary_markup_1.flag `appliesToComputer`, binary_markup_1.uint8 `type`, binary_markup_1.uint8 `x`, binary_markup_1.uint8 `y`, binary_markup_1.uint8 `z`);
exports.winConditionsBranches = {
[WinCondition_1.WinCondition.AcquireArtifact]: aquireArtifact,
[WinCondition_1.WinCondition.AccumulateCreatures]: accumulateCreatures,
[WinCondition_1.WinCondition.AccumulateResources]: accumulateResources,
[WinCondition_1.WinCondition.UpgradeTown]: upgradeTown,
[WinCondition_1.WinCondition.BuildGrail]: position,
[WinCondition_1.WinCondition.DefeatHero]: position,
[WinCondition_1.WinCondition.CaptureTown]: position,
[WinCondition_1.WinCondition.DefeatHero]: position,
[WinCondition_1.WinCondition.FlagDwellings]: flagWin,
[WinCondition_1.WinCondition.FlagMines]: flagWin,
[WinCondition_1.WinCondition.TransportArtifact]: transportArtifact,
};
//# sourceMappingURL=winConditions.bml.js.map