@bot-shiki/koishi-plugin-werewolf
Version:
Touhou werewolf game
31 lines (30 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _1 = require(".");
const utils_1 = require("../utils");
class RemiliaAction extends _1.ExpertAction {
identity = 'remilia';
async callback() {
const output = [(0, utils_1.t)('character.remilia.action')];
if (this.game.weather === 'baiu') {
output.push((0, utils_1.t)('character.remilia.action-baiu'));
}
await this.player.send(output.join(''));
const target = await this.character.select(c => ({
disabled: (c.isDead && this.game.weather !== 'baiu') || c.isKnown || c.isWellKnown,
labels: [
...c.isWellKnown ? [(0, utils_1.t)(`character.${c.identity}.name`)] : [],
...c.isWellKnown || c.isKnown ? [c.isNingen ? (0, utils_1.t)(`party.ningen`) : (0, utils_1.t)(`party.youkai`)] : [],
],
}), 60000, true);
if (!target)
return this.player.send((0, utils_1.t)('character.remilia.cancel'));
if (this.retsujitsu())
return this.player.send((0, utils_1.t)('weather.retsujitsu.hint'));
target.isKnown = true;
const party = target.party === 'neutral' ? 'neutral' : target.isNingen ? 'ningen' : 'youkai';
utils_1.logger.debug('remilia target: %s [%s]', target, party);
await this.player.send((0, utils_1.t)('character.remilia.success', [target.player.name, (0, utils_1.t)(`party.${party}`)]));
}
}
exports.default = RemiliaAction;