UNPKG

genshin-artifact-simulator

Version:
63 lines 3.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var lodash_1 = __importDefault(require("lodash")); var loadData_1 = require("./loadData"); var rng_1 = __importDefault(require("./rng")); var farmArtifacts = function (_a) { var _b = _a.set, set = _b === void 0 ? lodash_1.default.head(loadData_1.artifactSets) : _b; var dropsForSource = lodash_1.default.find(loadData_1.artifactDropsBySource, function (dropForSource) { return dropForSource.source === set.source; }); var drop = lodash_1.default.find(dropsForSource.drops, function (drop) { return drop.rarity === 5; }); var dropCountRng = (0, rng_1.default)("dropCount"); var dropNum = lodash_1.default.find(drop.dropCounts, function (dropCount) { return dropCountRng >= dropCount.rngMin && dropCountRng < dropCount.rngMax; }).num; return { artifacts: lodash_1.default.times(dropNum, function () { var possibleSets = set.source === "domain" ? set.domain.sets : loadData_1.bossArtifactSets; return generateArtifact({ set: possibleSets[Math.floor(lodash_1.default.size(possibleSets) * (0, rng_1.default)("set"))], }); }), resinCost: set.source === "domain" ? 20 : 40, }; }; var generateArtifact = function (_a) { var set = _a.set; var slotRng = (0, rng_1.default)("slot"); var statRng = (0, rng_1.default)("stat"); var substatCountRng = (0, rng_1.default)("substatCount"); var dropRatesForSlot = lodash_1.default.find(loadData_1.artifactDropRatesBySlot, function (dropRatesForSlot) { return slotRng >= dropRatesForSlot.rngMin && slotRng < dropRatesForSlot.rngMax; }); var dropRatesForStat = lodash_1.default.find(dropRatesForSlot.dropRatesByStat, function (dropRatesForStat) { return statRng >= dropRatesForStat.rngMin && statRng < dropRatesForStat.rngMax; }); var substatCount = lodash_1.default.find(loadData_1.artifactSubstatCounts, function (artifactSubstatCount) { return substatCountRng >= artifactSubstatCount.rngMin && substatCountRng < artifactSubstatCount.rngMax; }); var substats = lodash_1.default.times(substatCount.count, function () { return generateSubstat({ dropRatesBySubstat: dropRatesForStat.dropRatesBySubstat }); }); return { setKey: set.key, slotKey: dropRatesForSlot.slotKey, rarity: 5, mainStatKey: dropRatesForStat.statKey, substats: substats, }; }; var generateSubstat = function (_a) { var dropRatesBySubstat = _a.dropRatesBySubstat; var substatRng = (0, rng_1.default)("substat"); var statKey = lodash_1.default.find(dropRatesBySubstat, function (dropRatesForSubstat) { return substatRng >= dropRatesForSubstat.rngMin && substatRng < dropRatesForSubstat.rngMax; }).statKey; return { key: statKey }; }; exports.default = farmArtifacts; //# sourceMappingURL=farmArtifacts.js.map