UNPKG

md5-fight-plus

Version:

47 lines (44 loc) 1.51 kB
import { Skill } from "@/types/skill"; import { PlayerInstanceProperty } from "@/types/player"; import { getOpponent, getRandomItem, releaseFrostbite, removeHookInRoundEnd, } from "@/utils"; import { FIRE_TYPE } from "../firing"; const info = (player: PlayerInstanceProperty, spd: number) => { const defender = getOpponent(player); const info = [ `${player.name}释放冰结术,${defender.name}感觉自己从皮肤一层层到心脏....都无法动弹了,${defender.name}速度减少${spd}点!`, ]; return getRandomItem(info); }; export function _freeze(player: PlayerInstanceProperty) { const id = player.hooks.onAttack.tap("freeze", (props) => { const defender = getOpponent(player); const defenderFrostbite = defender.runtimeProperty.frostbite; const defenderSpeed = defender.runtimeProperty.speed; const transformTimes = Math.min( Math.floor(defenderFrostbite / 3), defenderSpeed - 1, 3 ); defender.hooks.onAdjustFrostbite.call(-transformTimes * 3); defender.hooks.onAdjustSpeed.call(-transformTimes); player.battleField.logger.addInfo( info(player, transformTimes), player.hooks.onAttack ); return props; }); removeHookInRoundEnd(player, id, "onAttack"); } export const freeze: Skill = { name: "冰结术", description: "转化目标身上的至多9层霜蚀,每转化3层则使敌方SPD-1,若敌方SPD<=1,则改为释放【丢雪球】", mana: 2, run: _freeze, type: [FIRE_TYPE], };