UNPKG

md5-fight-plus

Version:

90 lines (89 loc) 3.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPlayerState = exports.getOpponent = exports.removeHookInRoundEnd = exports.releasePoison = exports.releaseFiring = exports.releaseFrostbite = exports.getRandomItem = exports.toUpperFirstCase = exports.checkPlayerDeath = exports.initFnToPlayers = exports.getPlayers = void 0; const playerDeath_1 = require("../events/playerDeath"); const lodash_1 = __importDefault(require("lodash")); const getPlayers = (battleField) => { return { player1: battleField.players.left, player2: battleField.players.right, }; }; exports.getPlayers = getPlayers; const initFnToPlayers = (battleField, fn) => { const { player1, player2 } = (0, exports.getPlayers)(battleField); fn(player1); fn(player2); }; exports.initFnToPlayers = initFnToPlayers; const checkPlayerDeath = (battleField) => { const player1 = battleField.players.left; const player2 = battleField.players.right; if (player1.runtimeProperty.hp <= 0) { return new playerDeath_1.PlayerDeathEvent(`玩家【${player1.name}阵亡,游戏结束】`); } if (player2.runtimeProperty.hp <= 0) { return new playerDeath_1.PlayerDeathEvent(`玩家【${player2.name}阵亡,游戏结束】`); } }; exports.checkPlayerDeath = checkPlayerDeath; const toUpperFirstCase = (name) => name.charAt(0).toUpperCase() + name.slice(1); exports.toUpperFirstCase = toUpperFirstCase; const getRandomItem = (item) => { const max = item.length - 1; const index = lodash_1.default.random(0, max); return item[index]; }; exports.getRandomItem = getRandomItem; const releaseFrostbite = (player, frostbite) => { const id = player.hooks.afterAttack.tap("release Frostbite", (props) => { const battleField = props.battleField; const { player2: defender } = (0, exports.getPlayers)(battleField); defender.hooks.onAdjustFrostbite.call(frostbite); (0, exports.removeHookInRoundEnd)(player, id, "afterAttack"); return props; }); }; exports.releaseFrostbite = releaseFrostbite; const releaseFiring = (player, firing) => { player.hooks.onAdjustFiring.call(firing); }; exports.releaseFiring = releaseFiring; const releasePoison = (player, poison) => { const id = player.hooks.afterAttack.tap("release Frostbite", (props) => { player.hooks.onAdjustPoison.call(poison); (0, exports.removeHookInRoundEnd)(player, id, "afterAttack"); return props; }); }; exports.releasePoison = releasePoison; const removeHookInRoundEnd = (player, id, inHooks) => { const battleField = player.battleField; battleField.roundHooks.roundEnd.tap("remove frostbiteAttack", (props) => { player.hooks[inHooks].removeTap(id); return props; }); }; exports.removeHookInRoundEnd = removeHookInRoundEnd; const getOpponent = (player) => { const battleField = player.battleField; if (battleField.players.left === player) return battleField.players.right; if (battleField.players.right === player) return battleField.players.left; return undefined; }; exports.getOpponent = getOpponent; const getPlayerState = (player) => { const runtimeProperty = player.runtimeProperty; let result = `${player.name}【状态记录】 `; for (const [key, value] of Object.entries(runtimeProperty)) { result += `${key}:${value} `; } return result; }; exports.getPlayerState = getPlayerState;