UNPKG

fortel-ziweidoushu

Version:
757 lines 37.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MiniStar = void 0; const utils_1 = require("./../utils"); const ground_1 = require("./ground"); const miscEnums_1 = require("./miscEnums"); const minorStar_1 = require("./minorStar"); const temple_1 = require("./temple"); const util_1 = __importDefault(require("util")); class MiniStar { key; displayName; luck; constructor(key, displayName, luck) { this.key = key; this.displayName = displayName; this.luck = luck; } toJSON() { return this.displayName; } toString() { return this.displayName; } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars [util_1.default.inspect.custom](depth, opts) { return this.toString(); } static MINI_STAR_SKY_NOBLE = Object.freeze(new MiniStar('MINI_STAR_SKY_NOBLE', '天官', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_SKY_HAPPINESS = Object.freeze(new MiniStar('MINI_STAR_SKY_HAPPINESS', '天福', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_COOK = Object.freeze(new MiniStar('MINI_STAR_COOK', '天廚', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_CRY = Object.freeze(new MiniStar('MINI_STAR_CRY', '天哭', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LOST = Object.freeze(new MiniStar('MINI_STAR_LOST', '天虛', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SKILL = Object.freeze(new MiniStar('MINI_STAR_SKILL', '龍池', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_ART = Object.freeze(new MiniStar('MINI_STAR_ART', '鳳閣', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_FESTIVE = Object.freeze(new MiniStar('MINI_STAR_FESTIVE', '紅鸞', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_HAPPINESS = Object.freeze(new MiniStar('MINI_STAR_HAPPINESS', '天喜', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_LONELY = Object.freeze(new MiniStar('MINI_STAR_LONELY', '孤辰', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SINGLE = Object.freeze(new MiniStar('MINI_STAR_SINGLE', '寡宿', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_DISSOLVE = Object.freeze(new MiniStar('MINI_STAR_DISSOLVE', '解神', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_BROKEN = Object.freeze(new MiniStar('MINI_STAR_BROKEN', '破碎', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_BIG_LOST = Object.freeze(new MiniStar('MINI_STAR_BIG_LOST', '大耗', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LITTLE_DISASTER = Object.freeze(new MiniStar('MINI_STAR_LITTLE_DISASTER', '劫煞', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LUST = Object.freeze(new MiniStar('MINI_STAR_LUST', '咸池', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_MOON_BENEFACTOR = Object.freeze(new MiniStar('MINI_STAR_MOON_BENEFACTOR', '月德', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_GENIUS = Object.freeze(new MiniStar('MINI_STAR_GENIUS', '天才', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_LONGEVITY = Object.freeze(new MiniStar('MINI_STAR_LONGEVITY', '天壽', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_VOID_SKY = Object.freeze(new MiniStar('MINI_STAR_VOID_SKY', '天空', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_EMPTY = Object.freeze(new MiniStar('MINI_STAR_EMPTY', '旬空', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_EMPTY2 = Object.freeze(new MiniStar('MINI_STAR_EMPTY2', '旬空', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_INTERUPTION = Object.freeze(new MiniStar('MINI_STAR_INTERUPTION', '截空', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_INTERUPTION2 = Object.freeze(new MiniStar('MINI_STAR_INTERUPTION2', '截空', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_PLATFORM = Object.freeze(new MiniStar('MINI_STAR_PLATFORM', '台輔', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_FAME = Object.freeze(new MiniStar('MINI_STAR_FAME', '封誥', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_PUNISHMENT = Object.freeze(new MiniStar('MINI_STAR_PUNISHMENT', '天刑', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SEX = Object.freeze(new MiniStar('MINI_STAR_SEX', '天姚', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_WITCH = Object.freeze(new MiniStar('MINI_STAR_WITCH', '天巫', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_ILLNESS = Object.freeze(new MiniStar('MINI_STAR_ILLNESS', '天月', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_GHOST = Object.freeze(new MiniStar('MINI_STAR_GHOST', '陰煞', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_DISSOLVE2 = Object.freeze(new MiniStar('MINI_STAR_DISSOLVE2', '解神', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_BACKBITING = Object.freeze(new MiniStar('MINI_STAR_BACKBITING', '蜚廉', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SCHOLAR = Object.freeze(new MiniStar('MINI_STAR_SCHOLAR', '博士', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_STRENGTH = Object.freeze(new MiniStar('MINI_STAR_STRENGTH', '力士', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_GREEN_DRAGON = Object.freeze(new MiniStar('MINI_STAR_GREEN_DRAGON', '青龍', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_SMALL_LOST = Object.freeze(new MiniStar('MINI_STAR_SMALL_LOST', '小耗', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_GENERAL = Object.freeze(new MiniStar('MINI_STAR_GENERAL', '將軍', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_LETTER = Object.freeze(new MiniStar('MINI_STAR_LETTER', '奏書', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_BACKBITING2 = Object.freeze(new MiniStar('MINI_STAR_BACKBITING2', '蜚廉', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_JOY = Object.freeze(new MiniStar('MINI_STAR_JOY', '喜神', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_SICK = Object.freeze(new MiniStar('MINI_STAR_SICK', '病符', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_BIG_LOST2 = Object.freeze(new MiniStar('MINI_STAR_BIG_LOST2', '大耗', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_AMBUSH = Object.freeze(new MiniStar('MINI_STAR_AMBUSH', '伏兵', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LITIGATION = Object.freeze(new MiniStar('MINI_STAR_LITIGATION', '官府', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_THREE_PODIUM = Object.freeze(new MiniStar('MINI_STAR_THREE_PODIUM', '三台', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_EIGHT_SEAT = Object.freeze(new MiniStar('MINI_STAR_EIGHT_SEAT', '八座', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_HOLY_LIGHT = Object.freeze(new MiniStar('MINI_STAR_HOLY_LIGHT', '恩光', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_NOBLE = Object.freeze(new MiniStar('MINI_STAR_NOBLE', '天貴', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_YEAR_GOD = Object.freeze(new MiniStar('MINI_STAR_YEAR_GOD', '太歲', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_PESSIMISTIC = Object.freeze(new MiniStar('MINI_STAR_PESSIMISTIC', '晦氣', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_BEREAVEMENT = Object.freeze(new MiniStar('MINI_STAR_BEREAVEMENT', '喪門', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_TRAP = Object.freeze(new MiniStar('MINI_STAR_TRAP', '貫索', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LAWSUIT = Object.freeze(new MiniStar('MINI_STAR_LAWSUIT', '官符', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SMALL_LOST2 = Object.freeze(new MiniStar('MINI_STAR_SMALL_LOST2', '小耗', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_BROKEN_YEAR = Object.freeze(new MiniStar('MINI_STAR_BROKEN_YEAR', '歲破', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_DRAGON_LUCK = Object.freeze(new MiniStar('MINI_STAR_DRAGON_LUCK', '龍德', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_WHITE_TIGER = Object.freeze(new MiniStar('MINI_STAR_WHITE_TIGER', '白虎', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_GOD_LUCK = Object.freeze(new MiniStar('MINI_STAR_GOD_LUCK', '天德', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_FUNERAL = Object.freeze(new MiniStar('MINI_STAR_FUNERAL', '弔客', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SICK2 = Object.freeze(new MiniStar('MINI_STAR_SICK2', '病符', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_ANGEL = Object.freeze(new MiniStar('MINI_STAR_ANGEL', '天使', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_INJURY = Object.freeze(new MiniStar('MINI_STAR_INJURY', '天傷', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LEADER = Object.freeze(new MiniStar('MINI_STAR_LEADER', '將星', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_MOUNT = Object.freeze(new MiniStar('MINI_STAR_MOUNT', '攀鞍', miscEnums_1.Luckiness.LUCK)); static MINI_STAR_TRANSITION = Object.freeze(new MiniStar('MINI_STAR_TRANSITION', '歲驛', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_IDLE = Object.freeze(new MiniStar('MINI_STAR_IDLE', '息神', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_MYSTIC = Object.freeze(new MiniStar('MINI_STAR_MYSTIC', '華蓋', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_LITTLE_DISASTER2 = Object.freeze(new MiniStar('MINI_STAR_LITTLE_DISASTER2', '劫煞', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_DISASTER = Object.freeze(new MiniStar('MINI_STAR_DISASTER', '災煞', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_SKY_DISASTER = Object.freeze(new MiniStar('MINI_STAR_SKY_DISASTER', '天煞', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_BETRAY = Object.freeze(new MiniStar('MINI_STAR_BETRAY', '指背', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_LUST2 = Object.freeze(new MiniStar('MINI_STAR_LUST2', '咸池', miscEnums_1.Luckiness.NEUTRAL)); static MINI_STAR_MOON_MONSTER = Object.freeze(new MiniStar('MINI_STAR_MOON_MONSTER', '月煞', miscEnums_1.Luckiness.BAD_LUCK)); static MINI_STAR_DEAD = Object.freeze(new MiniStar('MINI_STAR_DEAD', '亡神', miscEnums_1.Luckiness.BAD_LUCK)); static doubleStars = Object.freeze([ MiniStar.MINI_STAR_EMPTY, MiniStar.MINI_STAR_INTERUPTION, MiniStar.MINI_STAR_DISSOLVE, MiniStar.MINI_STAR_BACKBITING, MiniStar.MINI_STAR_BIG_LOST, MiniStar.MINI_STAR_SMALL_LOST, MiniStar.MINI_STAR_SICK, MiniStar.MINI_STAR_LITTLE_DISASTER, MiniStar.MINI_STAR_LUST, ]); static stars = Object.freeze([ MiniStar.MINI_STAR_SKY_NOBLE, MiniStar.MINI_STAR_SKY_HAPPINESS, MiniStar.MINI_STAR_COOK, MiniStar.MINI_STAR_CRY, MiniStar.MINI_STAR_LOST, MiniStar.MINI_STAR_SKILL, MiniStar.MINI_STAR_ART, MiniStar.MINI_STAR_FESTIVE, MiniStar.MINI_STAR_HAPPINESS, MiniStar.MINI_STAR_LONELY, MiniStar.MINI_STAR_SINGLE, MiniStar.MINI_STAR_DISSOLVE, MiniStar.MINI_STAR_BROKEN, MiniStar.MINI_STAR_BIG_LOST, MiniStar.MINI_STAR_LITTLE_DISASTER, MiniStar.MINI_STAR_LUST, MiniStar.MINI_STAR_MOON_BENEFACTOR, MiniStar.MINI_STAR_GENIUS, MiniStar.MINI_STAR_LONGEVITY, MiniStar.MINI_STAR_VOID_SKY, MiniStar.MINI_STAR_EMPTY, MiniStar.MINI_STAR_EMPTY2, MiniStar.MINI_STAR_INTERUPTION, MiniStar.MINI_STAR_INTERUPTION2, MiniStar.MINI_STAR_PLATFORM, MiniStar.MINI_STAR_FAME, MiniStar.MINI_STAR_PUNISHMENT, MiniStar.MINI_STAR_SEX, MiniStar.MINI_STAR_WITCH, MiniStar.MINI_STAR_ILLNESS, MiniStar.MINI_STAR_GHOST, MiniStar.MINI_STAR_DISSOLVE2, MiniStar.MINI_STAR_BACKBITING, MiniStar.MINI_STAR_THREE_PODIUM, MiniStar.MINI_STAR_EIGHT_SEAT, MiniStar.MINI_STAR_HOLY_LIGHT, MiniStar.MINI_STAR_NOBLE, MiniStar.MINI_STAR_ANGEL, MiniStar.MINI_STAR_INJURY, ]); static twelveScholarStars = Object.freeze([ MiniStar.MINI_STAR_SCHOLAR, MiniStar.MINI_STAR_STRENGTH, MiniStar.MINI_STAR_GREEN_DRAGON, MiniStar.MINI_STAR_SMALL_LOST, MiniStar.MINI_STAR_GENERAL, MiniStar.MINI_STAR_LETTER, MiniStar.MINI_STAR_BACKBITING2, MiniStar.MINI_STAR_JOY, MiniStar.MINI_STAR_SICK, MiniStar.MINI_STAR_BIG_LOST2, MiniStar.MINI_STAR_AMBUSH, MiniStar.MINI_STAR_LITIGATION, ]); static twelveYearGodStars = Object.freeze([ MiniStar.MINI_STAR_YEAR_GOD, MiniStar.MINI_STAR_PESSIMISTIC, MiniStar.MINI_STAR_BEREAVEMENT, MiniStar.MINI_STAR_TRAP, MiniStar.MINI_STAR_LAWSUIT, MiniStar.MINI_STAR_SMALL_LOST2, MiniStar.MINI_STAR_BROKEN_YEAR, MiniStar.MINI_STAR_DRAGON_LUCK, MiniStar.MINI_STAR_WHITE_TIGER, MiniStar.MINI_STAR_GOD_LUCK, MiniStar.MINI_STAR_FUNERAL, MiniStar.MINI_STAR_SICK2, ]); static twelveLeaderStars = Object.freeze([ MiniStar.MINI_STAR_LEADER, MiniStar.MINI_STAR_MOUNT, MiniStar.MINI_STAR_TRANSITION, MiniStar.MINI_STAR_IDLE, MiniStar.MINI_STAR_MYSTIC, MiniStar.MINI_STAR_LITTLE_DISASTER2, MiniStar.MINI_STAR_DISASTER, MiniStar.MINI_STAR_SKY_DISASTER, MiniStar.MINI_STAR_BETRAY, MiniStar.MINI_STAR_LUST2, MiniStar.MINI_STAR_MOON_MONSTER, MiniStar.MINI_STAR_DEAD, ]); static allStars = Object.freeze([ ...MiniStar.stars, ...MiniStar.twelveScholarStars, ...MiniStar.twelveYearGodStars, ...MiniStar.twelveLeaderStars, ]); static miniStarPlacers; static { const miniStarPlacers = new Map(); // 天官 miniStarPlacers.set(MiniStar.MINI_STAR_SKY_NOBLE, { evalGround: (destinyBoard) => { return ground_1.Ground.get([7, 4, 5, 2, 3, 9, 11, 9, 10, 6][destinyBoard.config.yearSky.index]); }, }); // 天福 miniStarPlacers.set(MiniStar.MINI_STAR_SKY_HAPPINESS, { evalGround: (destinyBoard) => { return ground_1.Ground.get([9, 8, 0, 11, 3, 2, 6, 5, 6, 5][destinyBoard.config.yearSky.index]); }, }); // 天廚 miniStarPlacers.set(MiniStar.MINI_STAR_COOK, { evalGround: (destinyBoard) => { return ground_1.Ground.get([5, 6, 0, 5, 6, 8, 2, 6, 9, 11][destinyBoard.config.yearSky.index]); }, }); // 天哭 miniStarPlacers.set(MiniStar.MINI_STAR_CRY, { evalGround: (destinyBoard) => { return ground_1.Ground.get(6).shift(-destinyBoard.config.yearGround.index); }, }); // 天虛 miniStarPlacers.set(MiniStar.MINI_STAR_LOST, { evalGround: (destinyBoard) => { return ground_1.Ground.get(6).shift(destinyBoard.config.yearGround.index); }, }); // 龍池 miniStarPlacers.set(MiniStar.MINI_STAR_SKILL, { evalGround: (destinyBoard) => { return ground_1.Ground.get(4).shift(destinyBoard.config.yearGround.index); }, }); // 鳳閣 miniStarPlacers.set(MiniStar.MINI_STAR_ART, { evalGround: (destinyBoard) => { return ground_1.Ground.get(10).shift(-destinyBoard.config.yearGround.index); }, }); // 紅鸞 miniStarPlacers.set(MiniStar.MINI_STAR_FESTIVE, { evalGround: (destinyBoard) => { return ground_1.Ground.get(3).shift(-destinyBoard.config.yearGround.index); }, }); // 天喜 miniStarPlacers.set(MiniStar.MINI_STAR_HAPPINESS, { evalGround: (destinyBoard) => { return ground_1.Ground.get(9).shift(-destinyBoard.config.yearGround.index); }, }); // 孤辰 miniStarPlacers.set(MiniStar.MINI_STAR_LONELY, { evalGround: (destinyBoard) => { return ground_1.Ground.get([2, 2, 5, 5, 5, 8, 8, 8, 11, 11, 11, 2][destinyBoard.config.yearGround.index]); }, }); // 寡宿 miniStarPlacers.set(MiniStar.MINI_STAR_SINGLE, { evalGround: (destinyBoard) => { return ground_1.Ground.get([10, 10, 1, 1, 1, 4, 4, 4, 7, 7, 7, 10][destinyBoard.config.yearGround.index]); }, }); // 解神 miniStarPlacers.set(MiniStar.MINI_STAR_DISSOLVE, { evalGround: (destinyBoard) => { return ground_1.Ground.get(10).shift(-destinyBoard.config.yearGround.index); }, }); // 破碎 miniStarPlacers.set(MiniStar.MINI_STAR_BROKEN, { evalGround: (destinyBoard) => { return ground_1.Ground.get([5, 1, 9, 5, 1, 9, 5, 1, 9, 5, 1, 9][destinyBoard.config.yearGround.index]); }, }); // 大耗 miniStarPlacers.set(MiniStar.MINI_STAR_BIG_LOST, { evalGround: (destinyBoard) => { return ground_1.Ground.get([7, 6, 9, 8, 11, 10, 1, 0, 3, 2, 5, 4][destinyBoard.config.yearGround.index]); }, }); // 劫煞 miniStarPlacers.set(MiniStar.MINI_STAR_LITTLE_DISASTER, { evalGround: (destinyBoard) => { return ground_1.Ground.get([5, 2, 11, 8, 5, 2, 11, 8, 5, 2, 11, 8][destinyBoard.config.yearGround.index]); }, }); // 咸池 miniStarPlacers.set(MiniStar.MINI_STAR_LUST, { evalGround: (destinyBoard) => { return ground_1.Ground.get([9, 6, 3, 0, 9, 6, 3, 0, 9, 6, 3, 0][destinyBoard.config.yearGround.index]); }, }); // 月德 miniStarPlacers.set(MiniStar.MINI_STAR_MOON_BENEFACTOR, { evalGround: (destinyBoard) => { return ground_1.Ground.get(5).shift(destinyBoard.config.yearGround.index); }, }); // 天才 miniStarPlacers.set(MiniStar.MINI_STAR_GENIUS, { evalGround: (destinyBoard) => { return destinyBoard.getCellByTemple(temple_1.Temple.TEMPLE_DESTINY).getNextICell(destinyBoard.config.yearGround.index).ground; }, }); // 天壽 miniStarPlacers.set(MiniStar.MINI_STAR_LONGEVITY, { evalGround: (destinyBoard) => { return destinyBoard.getCellByTemple(temple_1.Temple.TEMPLE_BODY).getNextICell(destinyBoard.config.yearGround.index).ground; }, }); // 天空 miniStarPlacers.set(MiniStar.MINI_STAR_VOID_SKY, { evalGround: (destinyBoard) => { return ground_1.Ground.get([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0][destinyBoard.config.yearGround.index]); }, }); // 旬空 miniStarPlacers.set(MiniStar.MINI_STAR_EMPTY, { evalGround: (destinyBoard) => { const offset = (0, utils_1.mod)(destinyBoard.config.yearSky.index - destinyBoard.config.yearGround.index, 12) / 2; return ground_1.Ground.get(10 - 2 * offset); }, }); // 旬空2 miniStarPlacers.set(MiniStar.MINI_STAR_EMPTY2, { evalGround: (destinyBoard) => { const offset = (0, utils_1.mod)(destinyBoard.config.yearSky.index - destinyBoard.config.yearGround.index, 12) / 2; return ground_1.Ground.get(10 - 2 * offset + 1); }, }); // 截空 miniStarPlacers.set(MiniStar.MINI_STAR_INTERUPTION, { evalGround: (destinyBoard) => { return ground_1.Ground.get(8 - ((destinyBoard.config.yearSky.index * 2) % 10)); }, }); // 截空2 miniStarPlacers.set(MiniStar.MINI_STAR_INTERUPTION2, { evalGround: (destinyBoard) => { return ground_1.Ground.get(8 - ((destinyBoard.config.yearSky.index * 2) % 10) + 1); }, }); // 台輔 miniStarPlacers.set(MiniStar.MINI_STAR_PLATFORM, { evalGround: (destinyBoard) => { return ground_1.Ground.get(6).shift(destinyBoard.config.bornTimeGround.ground.index); }, }); // 封誥 miniStarPlacers.set(MiniStar.MINI_STAR_FAME, { evalGround: (destinyBoard) => { return ground_1.Ground.get(2).shift(destinyBoard.config.bornTimeGround.ground.index); }, }); // 天刑 miniStarPlacers.set(MiniStar.MINI_STAR_PUNISHMENT, { evalGround: (destinyBoard) => { return ground_1.Ground.get(9).shift(destinyBoard.config.getLogicalMonth() - 1); }, }); // 天姚 miniStarPlacers.set(MiniStar.MINI_STAR_SEX, { evalGround: (destinyBoard) => { return ground_1.Ground.get(1).shift(destinyBoard.config.getLogicalMonth() - 1); }, }); // 天巫 miniStarPlacers.set(MiniStar.MINI_STAR_WITCH, { evalGround: (destinyBoard) => { return ground_1.Ground.get([5, 8, 2, 11, 5, 8, 2, 11, 5, 8, 2, 11][destinyBoard.config.getLogicalMonth() - 1]); }, }); // 天月 miniStarPlacers.set(MiniStar.MINI_STAR_ILLNESS, { evalGround: (destinyBoard) => { return ground_1.Ground.get([10, 5, 4, 2, 7, 3, 11, 7, 2, 6, 10, 2][destinyBoard.config.getLogicalMonth() - 1]); }, }); // 陰煞 miniStarPlacers.set(MiniStar.MINI_STAR_GHOST, { evalGround: (destinyBoard) => { return ground_1.Ground.get([2, 0, 10, 8, 6, 4, 2, 0, 10, 8, 6, 4][destinyBoard.config.getLogicalMonth() - 1]); }, }); // 解神2 miniStarPlacers.set(MiniStar.MINI_STAR_DISSOLVE2, { evalGround: (destinyBoard) => { return ground_1.Ground.get([8, 8, 10, 10, 0, 0, 2, 2, 4, 4, 6, 6][destinyBoard.config.getLogicalMonth() - 1]); }, }); // 蜚廉 // 子丑寅年在申酉戍, 卯辰巳年在巳午未, 午未申年在寅卯辰, 酉戍亥年在亥子丑 miniStarPlacers.set(MiniStar.MINI_STAR_BACKBITING, { evalGround: (destinyBoard) => { const yearSkyGroundIndex = destinyBoard.config.yearGround.index; if ((0, utils_1.intDivide)(yearSkyGroundIndex, 3) === 0) { // 子丑寅 return ground_1.Ground.get(8 + (yearSkyGroundIndex % 3)); } else if ((0, utils_1.intDivide)(yearSkyGroundIndex, 3) === 1) { // 卯辰巳 return ground_1.Ground.get(5 + (yearSkyGroundIndex % 3)); } else if ((0, utils_1.intDivide)(yearSkyGroundIndex, 3) === 2) { // 午未申 return ground_1.Ground.get(2 + (yearSkyGroundIndex % 3)); } else if ((0, utils_1.intDivide)(yearSkyGroundIndex, 3) === 3) { // 酉戍亥 return ground_1.Ground.get(11 + (yearSkyGroundIndex % 3)); } throw new Error('Cannot eval'); }, }); // 博士 miniStarPlacers.set(MiniStar.MINI_STAR_SCHOLAR, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers.get(minorStar_1.MinorStar.MINOR_STAR_EARN).evalGround(destinyBoard); }, }); // 力士 miniStarPlacers.set(MiniStar.MINI_STAR_STRENGTH, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction); }, }); // 青龍 miniStarPlacers.set(MiniStar.MINI_STAR_GREEN_DRAGON, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 2); }, }); // 小耗 miniStarPlacers.set(MiniStar.MINI_STAR_SMALL_LOST, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 3); }, }); // 將軍 miniStarPlacers.set(MiniStar.MINI_STAR_GENERAL, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 4); }, }); // 奏書 miniStarPlacers.set(MiniStar.MINI_STAR_LETTER, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 5); }, }); // 蜚廉2 miniStarPlacers.set(MiniStar.MINI_STAR_BACKBITING2, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 6); }, }); // 喜神 miniStarPlacers.set(MiniStar.MINI_STAR_JOY, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 7); }, }); // 病符 miniStarPlacers.set(MiniStar.MINI_STAR_SICK, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 8); }, }); // 大耗2 miniStarPlacers.set(MiniStar.MINI_STAR_BIG_LOST2, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 9); }, }); // 伏兵 miniStarPlacers.set(MiniStar.MINI_STAR_AMBUSH, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 10); }, }); // 官府 miniStarPlacers.set(MiniStar.MINI_STAR_LITIGATION, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_EARN) .evalGround(destinyBoard) .shift(destinyBoard.configDirection.direction * 11); }, }); // 三台 miniStarPlacers.set(MiniStar.MINI_STAR_THREE_PODIUM, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_SUPPORT_LEFT) .evalGround(destinyBoard) .shift(destinyBoard.config.day - 1); }, }); // 八座 miniStarPlacers.set(MiniStar.MINI_STAR_EIGHT_SEAT, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_SUPPORT_RIGHT) .evalGround(destinyBoard) .shift(-(destinyBoard.config.day - 1)); }, }); // 恩光 miniStarPlacers.set(MiniStar.MINI_STAR_HOLY_LIGHT, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_CLEVER) .evalGround(destinyBoard) .shift(destinyBoard.config.day - 2); }, }); // 天貴 miniStarPlacers.set(MiniStar.MINI_STAR_NOBLE, { evalGround: (destinyBoard) => { return minorStar_1.MinorStar.minorStarPlacers .get(minorStar_1.MinorStar.MINOR_STAR_SKILL) .evalGround(destinyBoard) .shift(destinyBoard.config.day - 2); }, }); // 太歲 miniStarPlacers.set(MiniStar.MINI_STAR_YEAR_GOD, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround; }, }); // 晦氣 miniStarPlacers.set(MiniStar.MINI_STAR_PESSIMISTIC, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(1); }, }); // 喪門 miniStarPlacers.set(MiniStar.MINI_STAR_BEREAVEMENT, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(2); }, }); // 貫索 miniStarPlacers.set(MiniStar.MINI_STAR_TRAP, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(3); }, }); // 官符 miniStarPlacers.set(MiniStar.MINI_STAR_LAWSUIT, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(4); }, }); // 小耗 miniStarPlacers.set(MiniStar.MINI_STAR_SMALL_LOST2, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(5); }, }); // 歲破 miniStarPlacers.set(MiniStar.MINI_STAR_BROKEN_YEAR, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(6); }, }); // 龍德 miniStarPlacers.set(MiniStar.MINI_STAR_DRAGON_LUCK, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(7); }, }); // 白虎 miniStarPlacers.set(MiniStar.MINI_STAR_WHITE_TIGER, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(8); }, }); // 天德 miniStarPlacers.set(MiniStar.MINI_STAR_GOD_LUCK, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(9); }, }); // 弔客 miniStarPlacers.set(MiniStar.MINI_STAR_FUNERAL, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(10); }, }); // 病符 miniStarPlacers.set(MiniStar.MINI_STAR_SICK2, { evalGround: (destinyBoard) => { return destinyBoard.config.yearGround.shift(11); }, }); // 天使 miniStarPlacers.set(MiniStar.MINI_STAR_ANGEL, { evalGround: (destinyBoard) => { if (destinyBoard.configDirection === miscEnums_1.Direction.CLOCKWISE) { return destinyBoard.getCellByTemple(temple_1.Temple.TEMPLE_ILLNESS).ground; } return destinyBoard.getCellByTemple(temple_1.Temple.TEMPLE_FRIEND).ground; }, }); // 天傷 miniStarPlacers.set(MiniStar.MINI_STAR_INJURY, { evalGround: (destinyBoard) => { if (destinyBoard.configDirection === miscEnums_1.Direction.CLOCKWISE) { return destinyBoard.getCellByTemple(temple_1.Temple.TEMPLE_FRIEND).ground; } return destinyBoard.getCellByTemple(temple_1.Temple.TEMPLE_ILLNESS).ground; }, }); // 將星 miniStarPlacers.set(MiniStar.MINI_STAR_LEADER, { evalGround: (destinyBoard) => { return ground_1.Ground.get([0, 9, 6, 3, 0, 9, 6, 3, 0, 9, 6, 3][destinyBoard.config.yearGround.index]); }, }); // 攀鞍 miniStarPlacers.set(MiniStar.MINI_STAR_MOUNT, { evalGround: (destinyBoard) => { return ground_1.Ground.get([1, 10, 7, 4, 1, 10, 7, 4, 1, 10, 7, 4][destinyBoard.config.yearGround.index]); }, }); // 歲驛 miniStarPlacers.set(MiniStar.MINI_STAR_TRANSITION, { evalGround: (destinyBoard) => { return ground_1.Ground.get([2, 11, 8, 5, 2, 11, 8, 5, 2, 11, 8, 5][destinyBoard.config.yearGround.index]); }, }); // 息神 miniStarPlacers.set(MiniStar.MINI_STAR_IDLE, { evalGround: (destinyBoard) => { return ground_1.Ground.get([3, 0, 9, 6, 3, 0, 9, 6, 3, 0, 9, 6][destinyBoard.config.yearGround.index]); }, }); // 華蓋 miniStarPlacers.set(MiniStar.MINI_STAR_MYSTIC, { evalGround: (destinyBoard) => { return ground_1.Ground.get([4, 1, 10, 7, 4, 1, 10, 7, 4, 1, 10, 7][destinyBoard.config.yearGround.index]); }, }); // 劫煞2 miniStarPlacers.set(MiniStar.MINI_STAR_LITTLE_DISASTER2, { evalGround: (destinyBoard) => { return ground_1.Ground.get([5, 2, 11, 8, 5, 2, 11, 8, 5, 2, 11, 8][destinyBoard.config.yearGround.index]); }, }); // 災煞 miniStarPlacers.set(MiniStar.MINI_STAR_DISASTER, { evalGround: (destinyBoard) => { return ground_1.Ground.get([6, 3, 0, 9, 6, 3, 0, 9, 6, 3, 0, 9][destinyBoard.config.yearGround.index]); }, }); // 天煞 miniStarPlacers.set(MiniStar.MINI_STAR_SKY_DISASTER, { evalGround: (destinyBoard) => { return ground_1.Ground.get([7, 4, 1, 10, 7, 4, 1, 10, 7, 4, 1, 10][destinyBoard.config.yearGround.index]); }, }); // 天煞 miniStarPlacers.set(MiniStar.MINI_STAR_BETRAY, { evalGround: (destinyBoard) => { return ground_1.Ground.get([8, 5, 2, 11, 8, 5, 2, 11, 8, 5, 2, 11][destinyBoard.config.yearGround.index]); }, }); // 咸池2 miniStarPlacers.set(MiniStar.MINI_STAR_LUST2, { evalGround: (destinyBoard) => { return ground_1.Ground.get([9, 6, 3, 0, 9, 6, 3, 0, 9, 6, 3, 0][destinyBoard.config.yearGround.index]); }, }); // 月煞 miniStarPlacers.set(MiniStar.MINI_STAR_MOON_MONSTER, { evalGround: (destinyBoard) => { return ground_1.Ground.get([10, 7, 4, 1, 10, 7, 4, 1, 10, 7, 4, 1][destinyBoard.config.yearGround.index]); }, }); // 亡神 miniStarPlacers.set(MiniStar.MINI_STAR_DEAD, { evalGround: (destinyBoard) => { return ground_1.Ground.get([11, 8, 5, 2, 11, 8, 5, 2, 11, 8, 5, 2][destinyBoard.config.yearGround.index]); }, }); MiniStar.miniStarPlacers = Object.freeze(miniStarPlacers); } getType() { return 'MiniStar'; } getKey() { return this.key; } getDisplayName() { return this.displayName; } static getByKey(key) { return MiniStar.allStars.find((star) => star.getKey() === key) ?? null; } static getByName(name) { const isSecond = name.endsWith('2'); if (isSecond) { name = name.replace('2', ''); } return MiniStar.allStars.find((star) => star.getDisplayName() === name && star.key.endsWith('2') === isSecond) ?? null; } equals(star) { return star === this || (star.getType() === this.getType() && star.getKey() === this.getKey()); } } exports.MiniStar = MiniStar; //# sourceMappingURL=miniStar.js.map