md5-fight-plus
Version:
40 lines (37 loc) • 1.29 kB
text/typescript
import { Skill } from "@/types/skill";
import { PlayerInstanceProperty } from "@/types/player";
import {
getOpponent,
getRandomItem,
releaseFrostbite,
removeHookInRoundEnd,
} from "@/utils";
import { FIRE_TYPE } from "../firing";
const getInfo = (player: PlayerInstanceProperty) => {
const info = [`${player.name}释放【寒冰护甲】,获得10点护甲值`];
return getRandomItem(info);
};
export function _iceArmor(player: PlayerInstanceProperty) {
const defender = getOpponent(player);
const id = player.hooks.onAttack.tap("iceArmor", (props) => {
player.hooks.onAdjustArmor.call(10);
player.battleField.logger.addInfo(getInfo(player), player.hooks.onAttack);
return props;
});
const id2 = player.hooks.onUnderAttack.tap("Ice Armor Frostbite", (props) => {
defender.hooks.onAdjustFrostbite.call(5);
player.battleField.logger.addInfo(
`因冰寒护甲,${defender.name}获得【霜蚀】5`
);
removeHookInRoundEnd(player, id2, "onUnderAttack");
return props;
});
removeHookInRoundEnd(player, id, "onAttack");
}
export const iceArmor: Skill = {
name: "寒冰护甲",
description: "获得10点护甲,下一回合中每当受到一次攻击,【霜蚀】5",
mana: 3,
run: _iceArmor,
type: [FIRE_TYPE],
};