werewolf-core
Version:
Are you a WEREWOLF?
73 lines (72 loc) • 2.92 kB
JavaScript
"use strict";
var package_1 = require('../package');
var effect = require('../effect');
var events = require('../event');
var priority = require('../priority');
var choice_1 = require('../lib/choice');
var seerevent = require('./seer.event');
var ROLE_SEER = 'core.seer';
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = package_1.initPackage({
role: ROLE_SEER,
roleInit: function (pl) {
pl.results = [];
pl.shown = -1;
return pl;
},
playerProducers: (_a = {},
_a[ROLE_SEER] = (_b = {},
_b[events.EVENT_PHASE_NIGHT] = [{
priority: priority.MIDNIGHT_STANDARD,
handler: function (_a) {
var event = _a.event, player = _a.player, players = _a.players, runner = _a.runner;
runner.addEvent(events.initOpenChoiceEvent({
on: player.id,
kind: seerevent.CHOICE_SEER,
options: choice_1.alivePlayerOptions(players),
}));
},
}],
_b[events.EVENT_MIDNIGHT] = [{
priority: priority.MIDNIGHT_STANDARD,
handler: function (_a) {
var runner = _a.runner, player = _a.player, players = _a.players, effects = _a.effects, event = _a.event;
var cs = effects.ofType(effect.EFFECT_CHOICE);
for (var _i = 0, cs_1 = cs; _i < cs_1.length; _i++) {
var _b = cs_1[_i], choice_kind = _b.choice_kind, on = _b.on, value = _b.value;
if (choice_kind === seerevent.CHOICE_SEER && on === player.id && value != null) {
var target = players.get(value);
if (target != null) {
runner.addEvent(seerevent.initGetfortuneEvent({
from: player.id,
to: value,
}));
}
}
}
},
}],
_b
),
_a
),
actions: (_c = {},
_c[seerevent.EVENT_GETFORTUNE] = function (_a) {
var runner = _a.runner, players = _a.players, event = _a.event;
var event2 = event;
var seer = players.get(event2.from);
if (seer) {
var e = runner.runEvent(seerevent.initQuerySeerEvent({
from: event2.from,
to: event2.to,
}));
seer.results.push({
to: e.to,
result: e.result,
});
}
},
_c
),
});
var _a, _b, _c;