10569 lines
301 KiB
JavaScript
10569 lines
301 KiB
JavaScript
"use strict";
|
||
game.import("mode", function (lib, game, ui, get, ai, _status) {
|
||
return {
|
||
name: "boss",
|
||
start: function () {
|
||
"step 0";
|
||
var playback = localStorage.getItem(lib.configprefix + "playback");
|
||
if (playback) {
|
||
ui.create.me();
|
||
ui.arena.style.display = "none";
|
||
ui.system.style.display = "none";
|
||
_status.playback = playback;
|
||
localStorage.removeItem(lib.configprefix + "playback");
|
||
var store = lib.db.transaction(["video"], "readwrite").objectStore("video");
|
||
store.get(parseInt(playback)).onsuccess = function (e) {
|
||
if (e.target.result) {
|
||
game.playVideoContent(e.target.result.video);
|
||
} else {
|
||
alert("播放失败:找不到录像");
|
||
game.reload();
|
||
}
|
||
};
|
||
event.finish();
|
||
return;
|
||
}
|
||
for (var i in lib.characterPack.mode_boss) {
|
||
lib.character[i] = lib.characterPack.mode_boss[i];
|
||
}
|
||
for (var i in lib.skill) {
|
||
if (lib.skill[i].changeSeat) {
|
||
lib.skill[i] = {};
|
||
if (lib.translate[i + "_info"]) {
|
||
lib.translate[i + "_info"] = "此模式下不可用";
|
||
}
|
||
}
|
||
}
|
||
lib.translate.restart = "返回";
|
||
lib.init.css(lib.assetURL + "layout/mode", "boss");
|
||
game.delay(0.1);
|
||
"step 1";
|
||
var bosslist = ui.create.div("#bosslist.hidden");
|
||
event.bosslist = bosslist;
|
||
lib.setScroll(bosslist);
|
||
// bosslist.ontouchmove = ui.click.touchScroll;
|
||
// bosslist.style.WebkitOverflowScrolling='touch';
|
||
if (!lib.config.touchscreen && lib.config.mousewheel) {
|
||
bosslist._scrollspeed = 30;
|
||
bosslist._scrollnum = 10;
|
||
bosslist.onmousewheel = ui.click.mousewheel;
|
||
}
|
||
// var bosslistlinks={};
|
||
// var toggleBoss=function(bool){
|
||
// game.saveConfig(this._link.config._name,bool,true);
|
||
// var node=bosslistlinks[this._link.config._name];
|
||
// if(bool){
|
||
// node.style.display='';
|
||
// }
|
||
// else{
|
||
// node.style.display='none';
|
||
// }
|
||
// };
|
||
var onpause = function () {
|
||
ui.window.classList.add("bosspaused");
|
||
};
|
||
var onresume = function () {
|
||
ui.window.classList.remove("bosspaused");
|
||
};
|
||
game.onpause = onpause;
|
||
game.onpause2 = onpause;
|
||
game.onresume = onresume;
|
||
game.onresume2 = onresume;
|
||
ui.create.div(bosslist);
|
||
|
||
event.current = null;
|
||
var list = [];
|
||
if (lib.storage.current == undefined) lib.storage.current = "boss_hundun";
|
||
for (var i in lib.character) {
|
||
var info = lib.character[i];
|
||
if (info.isBoss) {
|
||
// var cfg=i+'_bossconfig';
|
||
// if(get.config(cfg)==undefined){
|
||
// game.saveConfig(cfg,true,true);
|
||
// }
|
||
// lib.translate[cfg+'_config']=lib.translate[i];
|
||
// lib.mode.boss.config[cfg]={
|
||
// name:get.translation(i),
|
||
// onclick:toggleBoss,
|
||
// init:true,
|
||
// }
|
||
var player = ui.create.player(bosslist).init(i);
|
||
if (lib.characterPack.mode_boss[i] && get.config(i + "_boss_config") == false) {
|
||
player.style.display = "none";
|
||
}
|
||
if (player.hp == 0) {
|
||
player.node.hp.style.display = "none";
|
||
}
|
||
list.push(player);
|
||
player.node.hp.classList.add("text");
|
||
player.node.hp.dataset.condition = "";
|
||
player.node.hp.innerHTML = info[2];
|
||
if (info[2] == Infinity) {
|
||
player.node.hp.innerHTML = "∞";
|
||
}
|
||
player.setIdentity(player.name);
|
||
player.node.identity.dataset.color = info[5];
|
||
// bosslistlinks[cfg]=player;
|
||
player.classList.add("bossplayer");
|
||
|
||
if (lib.storage.current == i) {
|
||
event.current = player;
|
||
player.classList.add("highlight");
|
||
if (!lib.config.continue_name_boss && lib.boss[i] && lib.boss[i].control) {
|
||
_status.bosschoice = lib.boss[i].control();
|
||
_status.bosschoice.name = i;
|
||
_status.bosschoice.link = lib.boss[i].controlid || i;
|
||
}
|
||
}
|
||
|
||
// if(!get.config(cfg)){
|
||
// player.style.display='none';
|
||
// }
|
||
}
|
||
}
|
||
if (!list.length) {
|
||
alert("没有可挑战的BOSS");
|
||
event.finish();
|
||
lib.init.onfree();
|
||
_status.over = true;
|
||
return;
|
||
}
|
||
if (!event.current) {
|
||
event.current = bosslist.childNodes[1];
|
||
event.current.classList.add("highlight");
|
||
}
|
||
ui.create.div(bosslist);
|
||
ui.create.cardsAsync();
|
||
game.finishCards();
|
||
game.addGlobalSkill("autoswap");
|
||
ui.arena.setNumber(8);
|
||
ui.control.style.transitionProperty = "opacity";
|
||
ui.control.classList.add("bosslist");
|
||
setTimeout(function () {
|
||
ui.control.style.transitionProperty = "";
|
||
}, 1000);
|
||
|
||
ui.window.appendChild(bosslist);
|
||
|
||
setTimeout(function () {
|
||
if (event.current) {
|
||
var left = event.current.offsetLeft - (ui.window.offsetWidth - 180) / 2;
|
||
if (bosslist.scrollLeft < left) {
|
||
bosslist.scrollLeft = left;
|
||
}
|
||
}
|
||
bosslist.show();
|
||
}, 200);
|
||
game.me = ui.create.player();
|
||
if (lib.config.continue_name_boss) {
|
||
event.noslide = true;
|
||
lib.init.onfree();
|
||
} else {
|
||
game.chooseCharacter(function (target) {
|
||
if (event.current) {
|
||
event.current.classList.remove("highlight");
|
||
}
|
||
event.current = target;
|
||
game.save("current", target.name);
|
||
target.classList.add("highlight");
|
||
if (_status.bosschoice) {
|
||
var name = target.name;
|
||
if (lib.boss[target.name] && lib.boss[target.name].controlid) {
|
||
name = lib.boss[target.name].controlid;
|
||
}
|
||
if (_status.bosschoice.link != name) {
|
||
lib.boss[_status.bosschoice.name].control("cancel", _status.bosschoice);
|
||
_status.bosschoice.classList.remove("disabled");
|
||
_status.bosschoice.close();
|
||
delete _status.bosschoice;
|
||
} else {
|
||
return;
|
||
}
|
||
}
|
||
if (lib.boss[target.name] && lib.boss[target.name].control) {
|
||
_status.createControl = ui.control.firstChild;
|
||
_status.bosschoice = lib.boss[target.name].control();
|
||
_status.bosschoice.name = target.name;
|
||
_status.bosschoice.link = lib.boss[target.name].controlid || target.name;
|
||
if (ui.cheat2 && ui.cheat2.dialog == _status.event.dialog) {
|
||
_status.bosschoice.classList.add("disabled");
|
||
}
|
||
delete _status.createControl;
|
||
}
|
||
});
|
||
}
|
||
if (lib.config.test_game) {
|
||
event.current.classList.remove("highlight");
|
||
if (event.current.nextSibling && event.current.nextSibling.classList.contains("player")) {
|
||
event.current = event.current.nextSibling;
|
||
} else {
|
||
event.current = event.current.parentNode.childNodes[1];
|
||
}
|
||
game.save("current", event.current.name);
|
||
}
|
||
"step 2";
|
||
game.bossinfo = lib.boss.global;
|
||
for (var i in lib.boss[event.current.name]) {
|
||
game.bossinfo[i] = lib.boss[event.current.name][i];
|
||
}
|
||
|
||
setTimeout(function () {
|
||
ui.control.classList.remove("bosslist");
|
||
}, 500);
|
||
var boss = ui.create.player();
|
||
boss.getId();
|
||
game.boss = boss;
|
||
boss.init(event.current.name);
|
||
boss.side = true;
|
||
if (!event.noslide) {
|
||
var rect = event.current.getBoundingClientRect();
|
||
boss.addTempClass("bossing");
|
||
boss.node.hp.addTempClass("start");
|
||
boss.bossinginfo = [rect.left + rect.width / 2, rect.top + rect.height / 2];
|
||
boss.style.transition = "all 0s";
|
||
boss.node.equips.style.opacity = "0";
|
||
} else {
|
||
boss.addTempClass("start");
|
||
}
|
||
boss.setIdentity("zhu");
|
||
boss.identity = "zhu";
|
||
if (lib.config.continue_name_boss) {
|
||
result = lib.config.continue_name_boss;
|
||
game.saveConfig("continue_name_boss");
|
||
}
|
||
for (var i = 0; i < result.links.length; i++) {
|
||
var player = ui.create.player();
|
||
player.getId();
|
||
player.init(result.links[i]).addTempClass("start");
|
||
player.setIdentity("cai");
|
||
player.identity = "cai";
|
||
player.side = false;
|
||
game.players.push(player);
|
||
if (result.boss) {
|
||
if (game.bossinfo.minion) {
|
||
player.dataset.position = i + 3;
|
||
} else {
|
||
player.dataset.position = (i + 1) * 2;
|
||
}
|
||
} else {
|
||
player.dataset.position = i + 1;
|
||
}
|
||
ui.arena.appendChild(player);
|
||
}
|
||
if (result.boss) {
|
||
game.players.unshift(boss);
|
||
boss.dataset.position = 0;
|
||
} else {
|
||
game.players.push(boss);
|
||
boss.dataset.position = 7;
|
||
}
|
||
if (game.bossinfo.minion) {
|
||
if (!result.boss) {
|
||
boss.dataset.position = 6;
|
||
}
|
||
for (var i in game.bossinfo.minion) {
|
||
var player = ui.create.player();
|
||
player.getId();
|
||
player.init(game.bossinfo.minion[i]);
|
||
if (boss.bossinginfo) {
|
||
player.addTempClass("bossing");
|
||
player.node.hp.addTempClass("start");
|
||
player.style.transition = "all 0s";
|
||
} else {
|
||
player.addTempClass("start");
|
||
}
|
||
player.setIdentity("zhong");
|
||
player.identity = "zhong";
|
||
player.side = true;
|
||
game.players.push(player);
|
||
var num = parseInt(i);
|
||
if (result.boss) {
|
||
player.dataset.position = num - 1;
|
||
} else {
|
||
if (num == 2) {
|
||
player.dataset.position = 7;
|
||
} else {
|
||
player.dataset.position = num - 3;
|
||
}
|
||
}
|
||
ui.arena.appendChild(player);
|
||
if (boss.bossinginfo) {
|
||
var rect = player.getBoundingClientRect();
|
||
player.style.transform =
|
||
"translate(" +
|
||
(boss.bossinginfo[0] - rect.left - rect.width / 2) +
|
||
"px," +
|
||
(boss.bossinginfo[1] - rect.top - rect.height / 2) +
|
||
"px) scale(1.1)";
|
||
ui.refresh(player);
|
||
player.style.transition = "";
|
||
player.style.transform = "";
|
||
}
|
||
}
|
||
}
|
||
ui.create.me();
|
||
ui.fakeme = ui.create.div(".fakeme.avatar", ui.me);
|
||
if (game.me !== boss) {
|
||
game.singleHandcard = true;
|
||
ui.arena.classList.add("single-handcard");
|
||
ui.window.classList.add("single-handcard");
|
||
game.onSwapControl();
|
||
|
||
if (lib.config.show_handcardbutton) {
|
||
lib.setPopped(
|
||
ui.create.system("手牌", null, true),
|
||
function () {
|
||
var uiintro = ui.create.dialog("hidden");
|
||
var players = game.players.concat(game.dead);
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i].side == game.me.side && players[i] != game.me) {
|
||
uiintro.add(get.translation(players[i]));
|
||
var cards = players[i].getCards("h");
|
||
if (cards.length) {
|
||
uiintro.addSmall(cards, true);
|
||
} else {
|
||
uiintro.add("(无)");
|
||
}
|
||
}
|
||
}
|
||
return uiintro;
|
||
},
|
||
220
|
||
);
|
||
}
|
||
} else {
|
||
ui.fakeme.style.display = "none";
|
||
}
|
||
if (game.bossinfo.chongzheng) {
|
||
lib.setPopped(
|
||
ui.create.system("重整", null, true),
|
||
function () {
|
||
var uiintro = ui.create.dialog("hidden");
|
||
|
||
uiintro.add("重整");
|
||
var table = ui.create.div(".bosschongzheng");
|
||
|
||
var tr,
|
||
td,
|
||
added = false;
|
||
for (var i = 0; i < game.dead.length; i++) {
|
||
if (typeof game.dead[i].storage.boss_chongzheng !== "number") continue;
|
||
added = true;
|
||
tr = ui.create.div(table);
|
||
td = ui.create.div(tr);
|
||
td.innerHTML = get.translation(game.dead[i]);
|
||
td = ui.create.div(tr);
|
||
if (game.dead[i].maxHp > 0) {
|
||
td.innerHTML =
|
||
"剩余" +
|
||
(game.bossinfo.chongzheng - game.dead[i].storage.boss_chongzheng) +
|
||
"回合";
|
||
} else {
|
||
td.innerHTML = "无法重整";
|
||
}
|
||
}
|
||
if (!added) {
|
||
uiintro.add('<div class="text center">(无重整角色)</div>');
|
||
uiintro.add(ui.create.div(".placeholder.slim"));
|
||
} else {
|
||
uiintro.add(table);
|
||
}
|
||
return uiintro;
|
||
},
|
||
180
|
||
);
|
||
}
|
||
ui.single_swap = ui.create.system(
|
||
"换人",
|
||
function () {
|
||
var players = get.players(game.me);
|
||
players.remove(game.boss);
|
||
if (players.length > 1) {
|
||
if (ui.auto.classList.contains("hidden")) {
|
||
game.me.popup("请稍后换人");
|
||
return;
|
||
}
|
||
if (_status.event.isMine()) {
|
||
ui.click.auto();
|
||
setTimeout(function () {
|
||
ui.click.auto();
|
||
}, 500);
|
||
}
|
||
game.modeSwapPlayer(players[1]);
|
||
}
|
||
},
|
||
true
|
||
);
|
||
if (get.config("single_control") || game.me == game.boss) {
|
||
ui.single_swap.style.display = "none";
|
||
}
|
||
|
||
ui.arena.appendChild(boss);
|
||
if (boss.bossinginfo) {
|
||
var rect = boss.getBoundingClientRect();
|
||
boss.style.transform =
|
||
"translate(" +
|
||
(boss.bossinginfo[0] - rect.left - rect.width / 2) +
|
||
"px," +
|
||
(boss.bossinginfo[1] - rect.top - rect.height / 2) +
|
||
"px) scale(1.1)";
|
||
ui.refresh(boss);
|
||
boss.style.transition = "";
|
||
boss.style.transform = "";
|
||
delete boss.bossinginfo;
|
||
setTimeout(function () {
|
||
boss.node.equips.style.opacity = "";
|
||
}, 500);
|
||
}
|
||
|
||
event.bosslist.delete();
|
||
|
||
game.arrangePlayers();
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
game.players[i].node.action.innerHTML = "行动";
|
||
}
|
||
|
||
var players = get.players(lib.sort.position);
|
||
var info = [];
|
||
for (var i = 0; i < players.length; i++) {
|
||
info.push({
|
||
name: players[i].name1,
|
||
identity: players[i].identity,
|
||
position: players[i].dataset.position,
|
||
});
|
||
}
|
||
(_status.videoInited = true), (info.boss = game.me == game.boss);
|
||
game.addVideo("init", null, info);
|
||
if (game.bossinfo.init) {
|
||
game.bossinfo.init();
|
||
}
|
||
delete lib.boss;
|
||
"step 3";
|
||
if (get.config("single_control")) {
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side == game.me.side) {
|
||
game.addRecentCharacter(game.players[i].name);
|
||
}
|
||
}
|
||
} else {
|
||
game.addRecentCharacter(game.me.name);
|
||
}
|
||
event.trigger("gameStart");
|
||
game.gameDraw(game.boss, game.bossinfo.gameDraw || 4);
|
||
game.bossPhaseLoop();
|
||
setTimeout(function () {
|
||
ui.updatehl();
|
||
}, 200);
|
||
},
|
||
element: {
|
||
player: {
|
||
dieAfter: function () {
|
||
if (this != game.boss) {
|
||
this.storage.boss_chongzheng = 0;
|
||
}
|
||
if (game.bossinfo.checkResult && game.bossinfo.checkResult(this) === false) {
|
||
return;
|
||
}
|
||
if (
|
||
this == game.boss ||
|
||
!game.hasPlayer(function (current) {
|
||
return !current.side;
|
||
}, true)
|
||
) {
|
||
game.checkResult();
|
||
}
|
||
},
|
||
},
|
||
},
|
||
card: {
|
||
niaobaidaowenha: {
|
||
type: "equip",
|
||
subtype: "equip5",
|
||
skills: ["niaobaidaowenha_skill"],
|
||
modeimage: "boss",
|
||
ai: {
|
||
basic: {
|
||
equipValue: 7.5,
|
||
},
|
||
},
|
||
fullskin: true,
|
||
},
|
||
goujiangdesidai: {
|
||
type: "equip",
|
||
subtype: "equip1",
|
||
distance: { attackFrom: -6 },
|
||
skills: ["goujiangdesidai_skill"],
|
||
modeimage: "boss",
|
||
ai: {
|
||
basic: {
|
||
equipValue: 7.5,
|
||
},
|
||
},
|
||
fullskin: true,
|
||
},
|
||
shenzhixiunvfu: {
|
||
type: "equip",
|
||
subtype: "equip2",
|
||
modeimage: "boss",
|
||
fullskin: true,
|
||
},
|
||
gubuzifeng: {
|
||
type: "trick",
|
||
fullskin: true,
|
||
modeimage: "boss",
|
||
enable: true,
|
||
filterTarget: function (card, player, target) {
|
||
return target != player;
|
||
},
|
||
content: function () {
|
||
target.addTempSkill("gubuzifeng_disable", { player: "phaseAfter" });
|
||
var skills = target.getSkills(null, false);
|
||
for (var i = 0; i < skills.length; i++) {
|
||
if (get.info(skills[i]).charlotte) skills.splice(i--, 1);
|
||
}
|
||
if (skills.length) {
|
||
target.storage.gubuzifeng_disable.push(skills.randomGet());
|
||
target.disableSkill("gubuzifeng_disable", target.storage.gubuzifeng_disable);
|
||
}
|
||
},
|
||
ai: {
|
||
order: 12,
|
||
result: {
|
||
target: function (player, target) {
|
||
return -2;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
lingsheji: {
|
||
type: "equip",
|
||
subtype: "equip5",
|
||
skills: ["lingsheji"],
|
||
modeimage: "boss",
|
||
ai: {
|
||
basic: {
|
||
equipValue: 7.5,
|
||
},
|
||
},
|
||
fullskin: true,
|
||
},
|
||
shanrangzhaoshu: {
|
||
type: "equip",
|
||
subtype: "equip5",
|
||
skills: ["shanrangzhaoshu"],
|
||
modeimage: "boss",
|
||
ai: {
|
||
basic: {
|
||
equipValue: 7.5,
|
||
},
|
||
},
|
||
fullskin: true,
|
||
},
|
||
xingtianpojunfu: {
|
||
type: "equip",
|
||
subtype: "equip1",
|
||
distance: { attackFrom: -3 },
|
||
skills: ["noda_axe"],
|
||
modeimage: "boss",
|
||
ai: {
|
||
basic: {
|
||
equipValue: 7.5,
|
||
},
|
||
},
|
||
fullskin: true,
|
||
},
|
||
jinwuluorigong: {
|
||
type: "equip",
|
||
subtype: "equip1",
|
||
skills: ["iwasawa_crowbow"],
|
||
modeimage: "boss",
|
||
distance: { attackFrom: -8 },
|
||
ai: {
|
||
basic: {
|
||
equipValue: 7.5,
|
||
},
|
||
},
|
||
fullskin: true,
|
||
},
|
||
boss_mengpohuihun: {
|
||
mode: ["boss"],
|
||
type: "trick",
|
||
modeimage: "boss",
|
||
fullskin: true,
|
||
selectTarget: -1,
|
||
enable: true,
|
||
toself: true,
|
||
multitarget: true,
|
||
global: ["boss_mengpohuihun1"],
|
||
modTarget: true,
|
||
filterTarget: function (card, player, target) {
|
||
return player == target;
|
||
},
|
||
content: function () {
|
||
game.countPlayer2(function (current) {
|
||
current.enableSkill("boss_wanghun");
|
||
});
|
||
},
|
||
ai: {
|
||
basic: {
|
||
order: function () {
|
||
return 11;
|
||
},
|
||
useful: [3, 1],
|
||
value: 10,
|
||
},
|
||
result: {
|
||
player: function (player, target) {
|
||
if (player == game.boss) {
|
||
return -2;
|
||
} else {
|
||
return 5;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
sadouchengbing: {
|
||
fullskin: true,
|
||
type: "trick",
|
||
enable: true,
|
||
selectTarget: -1,
|
||
cardcolor: "red",
|
||
toself: true,
|
||
modeimage: "boss",
|
||
filterTarget: function (card, player, target) {
|
||
return target == player;
|
||
},
|
||
modTarget: true,
|
||
content: function () {
|
||
var num = Math.min(5, target.maxHp);
|
||
if (target.group == "shen") {
|
||
target.draw(num);
|
||
} else {
|
||
var nh = target.countCards("h");
|
||
if (nh < num) {
|
||
target.draw(num - nh);
|
||
}
|
||
}
|
||
},
|
||
ai: {
|
||
basic: {
|
||
order: 7.2,
|
||
useful: 4.5,
|
||
value: 9.2,
|
||
},
|
||
result: {
|
||
target: function (player, target) {
|
||
var num = Math.min(5, target.maxHp);
|
||
if (target.group == "shen") {
|
||
return Math.sqrt(num);
|
||
} else {
|
||
var nh = target.countCards("h");
|
||
if (target == player && player.countCards("h", "sadouchengbing")) {
|
||
nh--;
|
||
}
|
||
if (nh < num) {
|
||
return Math.sqrt(num - nh);
|
||
}
|
||
}
|
||
return 0;
|
||
},
|
||
},
|
||
tag: {
|
||
draw: 2,
|
||
},
|
||
},
|
||
},
|
||
yihuajiemu: {
|
||
type: "trick",
|
||
fullskin: true,
|
||
modeimage: "boss",
|
||
enable: true,
|
||
filterTarget: function (card, player, target) {
|
||
return target != player && target.countCards("he");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
if (target.hasSha()) {
|
||
target.chooseToUse(function (card, player, event) {
|
||
return get.name(card) == "sha" && lib.filter.filterCard.apply(this, arguments);
|
||
}, "使用一张杀,或交给" + get.translation(player) + "两张牌");
|
||
} else {
|
||
event.directfalse = true;
|
||
}
|
||
"step 1";
|
||
var nh = target.countCards("he");
|
||
if ((event.directfalse || !result.bool) && nh) {
|
||
if (nh <= 2) {
|
||
event.directcards = true;
|
||
} else {
|
||
target.chooseCard("he", 2, true, "将两张牌交给" + get.translation(player));
|
||
}
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (event.directcards) {
|
||
target.give(target.getCards("he"), player);
|
||
} else if (result.bool && result.cards && result.cards.length) {
|
||
target.give(result.cards, player);
|
||
}
|
||
},
|
||
ai: {
|
||
order: 7,
|
||
result: {
|
||
target: function (player, target) {
|
||
if (target.hasSha() && _status.event.getRand() < 0.5) return 1;
|
||
return -2;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
chiyanzhenhunqin: {
|
||
type: "equip",
|
||
fullskin: true,
|
||
subtype: "equip1",
|
||
modeimage: "boss",
|
||
distance: { attackFrom: -3 },
|
||
skills: ["chiyanzhenhunqin"],
|
||
nomod: true,
|
||
nopower: true,
|
||
unique: true,
|
||
ai: {
|
||
equipValue: 5,
|
||
},
|
||
},
|
||
juechenjinge: {
|
||
type: "equip",
|
||
fullskin: true,
|
||
modeimage: "boss",
|
||
subtype: "equip3",
|
||
skills: ["juechenjinge"],
|
||
nomod: true,
|
||
nopower: true,
|
||
unique: true,
|
||
ai: {
|
||
equipValue: 9,
|
||
},
|
||
},
|
||
xiuluolianyuji: {
|
||
type: "equip",
|
||
fullskin: true,
|
||
subtype: "equip1",
|
||
modeimage: "boss",
|
||
distance: { attackFrom: -3 },
|
||
skills: ["xiuluolianyuji"],
|
||
nomod: true,
|
||
nopower: true,
|
||
unique: true,
|
||
ai: {
|
||
equipValue: 9,
|
||
},
|
||
},
|
||
longfenghemingjian: {
|
||
type: "equip",
|
||
fullskin: true,
|
||
modeimage: "boss",
|
||
subtype: "equip1",
|
||
distance: { attackFrom: -2 },
|
||
skills: ["longfenghemingjian"],
|
||
nomod: true,
|
||
nopower: true,
|
||
unique: true,
|
||
ai: {
|
||
equipValue: 9,
|
||
},
|
||
},
|
||
qicaishenlu: {
|
||
fullskin: true,
|
||
modeimage: "boss",
|
||
type: "equip",
|
||
subtype: "equip4",
|
||
distance: { globalFrom: -1 },
|
||
skills: ["qicaishenlu"],
|
||
nomod: true,
|
||
nopower: true,
|
||
unique: true,
|
||
ai: {
|
||
equipValue: 9,
|
||
},
|
||
},
|
||
honghuangzhili: {
|
||
type: "trick",
|
||
enable: true,
|
||
fullskin: true,
|
||
filterTarget: true,
|
||
modeimage: "boss",
|
||
content: function () {
|
||
if (target.group == "shen") {
|
||
target.addSkill("honghuangzhili");
|
||
if (target.countCards("he")) {
|
||
player.gainPlayerCard(target, "he", true);
|
||
}
|
||
} else {
|
||
target.turnOver();
|
||
}
|
||
},
|
||
ai: {
|
||
order: 4,
|
||
value: 10,
|
||
result: {
|
||
target: function (player, target) {
|
||
if (target.group == "shen") {
|
||
if (target.countCards("he")) return -2;
|
||
return 0;
|
||
} else {
|
||
if (target.isTurnedOver()) return 4;
|
||
return -3;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
},
|
||
characterPack: {
|
||
mode_boss: {
|
||
boss_hundun: [
|
||
"male",
|
||
"qun",
|
||
25,
|
||
["boss_xiongshou", "boss_wuzang", "boss_xiangde", "boss_yinzei", "boss_yinzei_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_qiongqi: [
|
||
"male",
|
||
"qun",
|
||
"20/25",
|
||
["boss_xiongshou", "boss_zhue", "boss_futai", "boss_yandu", "boss_yandu_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_taotie: [
|
||
"male",
|
||
"qun",
|
||
20,
|
||
["boss_xiongshou", "boss_tanyu", "boss_cangmu", "boss_jicai", "boss_jicai_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_taowu: [
|
||
"male",
|
||
"qun",
|
||
25,
|
||
[
|
||
"boss_xiongshou",
|
||
"boss_minwan",
|
||
"boss_nitai",
|
||
"boss_luanchang",
|
||
"boss_luanchang_switch",
|
||
],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_zhuyin: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_xiongshou"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
|
||
boss_xiangliu: [
|
||
"male",
|
||
"qun",
|
||
25,
|
||
["boss_yaoshou", "boss_duqu", "boss_jiushou", "boss_echou", "boss_echou_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_zhuyan: [
|
||
"male",
|
||
"qun",
|
||
"25/30",
|
||
["boss_yaoshou", "boss_bingxian", "boss_juyuan", "boss_xushi", "boss_xushi_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_bifang: [
|
||
"male",
|
||
"qun",
|
||
25,
|
||
["boss_yaoshou", "boss_zhaohuo", "boss_honglianx", "boss_yanyu", "boss_yanyu_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_yingzhao: [
|
||
"male",
|
||
"qun",
|
||
25,
|
||
["boss_yaoshou", "boss_fengdong", "boss_xunyou", "boss_sipu", "boss_sipu_switch"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
|
||
boss_qingmushilian: [
|
||
"male",
|
||
"",
|
||
0,
|
||
["boss_qingmu", "boss_qingmu_intro1", "boss_qingmu_intro2", "boss_qingmu_intro3"],
|
||
["boss"],
|
||
"wu",
|
||
],
|
||
boss_qinglong: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_shenyi", "releiji", "boss_qingmu2"],
|
||
["wu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_mushengoumang: [
|
||
"male",
|
||
"shen",
|
||
5,
|
||
["boss_shenyi", "boss_buchun", "boss_qingmu3"],
|
||
["wu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_shujing: ["female", "shen", 2, ["boss_cuidu"], ["wu", "hiddenboss", "bossallowed"]],
|
||
boss_taihao: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["boss_shenyi", "boss_shenen", "boss_qingyi"],
|
||
["wu", "hiddenboss", "bossallowed"],
|
||
],
|
||
|
||
boss_chiyanshilian: [
|
||
"male",
|
||
"",
|
||
0,
|
||
["boss_chiyan", "boss_chiyan_intro1", "boss_chiyan_intro2", "boss_chiyan_intro3"],
|
||
["boss"],
|
||
"zhu",
|
||
],
|
||
boss_zhuque: [
|
||
"female",
|
||
"shen",
|
||
4,
|
||
["boss_shenyi", "boss_fentian", "boss_chiyan2"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_huoshenzhurong: [
|
||
"male",
|
||
"shen",
|
||
5,
|
||
["boss_shenyi", "boss_xingxia", "boss_chiyan3"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_yanling: [
|
||
"male",
|
||
"shen",
|
||
4,
|
||
["boss_huihuo", "boss_furan"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_yandi: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["boss_shenyi", "boss_shenen", "boss_chiyi"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
|
||
boss_baimangshilian: [
|
||
"male",
|
||
"",
|
||
0,
|
||
["boss_baimang", "boss_baimang_intro1", "boss_baimang_intro2", "boss_baimang_intro3"],
|
||
["boss"],
|
||
"qun",
|
||
],
|
||
boss_baihu: [
|
||
"male",
|
||
"shen",
|
||
4,
|
||
["boss_shenyi", "boss_kuangxiao", "boss_baimang2"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_jinshenrushou: [
|
||
"male",
|
||
"shen",
|
||
5,
|
||
["boss_shenyi", "boss_xingqiu", "boss_baimang3"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_mingxingzhu: [
|
||
"female",
|
||
"shen",
|
||
3,
|
||
["boss_qingzhu", "boss_jiazu", "boss_jiding"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_shaohao: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["boss_shenyi", "boss_shenen", "boss_baiyi"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
],
|
||
|
||
boss_xuanlinshilian: [
|
||
"male",
|
||
"",
|
||
0,
|
||
["boss_xuanlin", "boss_xuanlin_intro1", "boss_xuanlin_intro2", "boss_xuanlin_intro3"],
|
||
["boss"],
|
||
"wei",
|
||
],
|
||
boss_xuanwu: [
|
||
"male",
|
||
"shen",
|
||
4,
|
||
["boss_shenyi", "boss_lingqu", "boss_xuanlin2"],
|
||
["wei", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_shuishengonggong: [
|
||
"male",
|
||
"shen",
|
||
5,
|
||
["boss_shenyi", "boss_juehong", "boss_xuanlin3"],
|
||
["wei", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_shuishenxuanming: [
|
||
"female",
|
||
"shen",
|
||
5,
|
||
["boss_shenyi", "boss_zirun", "boss_xuanlin3"],
|
||
["wei", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_zhuanxu: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["boss_shenyi", "boss_shenen", "boss_zaoyi"],
|
||
["wei", "hiddenboss", "bossallowed"],
|
||
],
|
||
|
||
boss_zhuoguiquxie: [
|
||
"male",
|
||
"",
|
||
0,
|
||
[
|
||
"boss_bianshen",
|
||
"boss_bianshen_intro1",
|
||
"boss_bianshen_intro2",
|
||
"boss_bianshen_intro3",
|
||
"boss_bianshen_intro4",
|
||
],
|
||
["boss"],
|
||
"shu",
|
||
],
|
||
boss_nianshou_heti: [
|
||
"male",
|
||
"shen",
|
||
12,
|
||
["boss_nianrui", "boss_mengtai", "boss_nbianshen", "boss_nbianshenx"],
|
||
["shu", "boss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
boss_nianshou_jingjue: [
|
||
"male",
|
||
"shen",
|
||
12,
|
||
["boss_nianrui", "boss_mengtai", "boss_jingjue", "boss_nbianshen"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
boss_nianshou_renxing: [
|
||
"male",
|
||
"shen",
|
||
12,
|
||
["boss_nianrui", "boss_mengtai", "boss_renxing", "boss_nbianshen"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
boss_nianshou_ruizhi: [
|
||
"male",
|
||
"shen",
|
||
12,
|
||
["boss_nianrui", "boss_mengtai", "boss_ruizhi", "boss_nbianshen"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
boss_nianshou_baonu: [
|
||
"male",
|
||
"shen",
|
||
12,
|
||
["boss_nianrui", "boss_mengtai", "boss_nbaonu", "boss_shouyi", "boss_nbianshen"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
|
||
boss_baiwuchang: [
|
||
"male",
|
||
"shen",
|
||
9,
|
||
["boss_baolian", "boss_qiangzheng", "boss_zuijiu", "juece", "boss_bianshen4"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_heiwuchang: [
|
||
"male",
|
||
"shen",
|
||
9,
|
||
["boss_guiji", "boss_taiping", "boss_suoming", "boss_xixing", "boss_bianshen4"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_luocha: [
|
||
"female",
|
||
"shen",
|
||
12,
|
||
["boss_modao", "boss_yushou", "yizhong", "boss_moyany"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_yecha: [
|
||
"male",
|
||
"shen",
|
||
11,
|
||
["boss_modao", "boss_mojian", "bazhen", "boss_danshu"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_niutou: [
|
||
"male",
|
||
"shen",
|
||
7,
|
||
["boss_baolian", "niepan", "boss_manjia", "boss_xiaoshou", "boss_bianshen3"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_mamian: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["boss_guiji", "fankui", "boss_lianyu", "juece", "boss_bianshen3"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_chi: [
|
||
"male",
|
||
"shen",
|
||
5,
|
||
["boss_guimei", "boss_didong", "boss_shanbeng", "boss_bianshen2"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_mo: [
|
||
"female",
|
||
"shen",
|
||
5,
|
||
["boss_guimei", "enyuan", "boss_beiming", "boss_bianshen2"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_wang: [
|
||
"male",
|
||
"shen",
|
||
5,
|
||
["boss_guimei", "boss_luolei", "huilei", "boss_bianshen2"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_liang: [
|
||
"female",
|
||
"shen",
|
||
5,
|
||
["boss_guimei", "boss_guihuo", "boss_minbao", "boss_bianshen2"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
|
||
boss_qinguangwang: [
|
||
"male",
|
||
"qun",
|
||
3,
|
||
["boss_panguan", "boss_juhun", "boss_wangxiang", "boss_newhuanren"],
|
||
["shu", "boss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
boss_chujiangwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["weimu", "refankui", "boss_bingfeng"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_songdiwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_heisheng", "boss_shengfu", "enyuan"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_wuguanwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_zhiwang", "boss_gongzheng", "boss_xuechi"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_yanluowang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_tiemian", "boss_zhadao", "boss_zhuxin"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_bianchengwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_leizhou", "boss_leifu", "boss_leizhu"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_taishanwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_fudu", "boss_kujiu", "boss_renao"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_dushiwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_remen", "boss_zhifen", "boss_huoxing"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_pingdengwang: [
|
||
"male",
|
||
"qun",
|
||
4,
|
||
["boss_suozu", "boss_abi", "boss_pingdeng"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_zhuanlunwang: [
|
||
"male",
|
||
"qun",
|
||
6,
|
||
["boss_modao", "boss_lunhui", "boss_wangsheng", "boss_zlfanshi"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_mengpo: [
|
||
"female",
|
||
"qun",
|
||
3,
|
||
["boss_shiyou", "boss_wanghun", "boss_wangshi"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
boss_dizangwang: [
|
||
"male",
|
||
"qun",
|
||
8,
|
||
["boss_bufo", "boss_wuliang", "boss_dayuan", "boss_diting"],
|
||
["shu", "hiddenboss", "bossallowed"],
|
||
],
|
||
//boss_shikieiki:['female','qun',8,['boss_yingzhong'],['qun','hiddenboss','bossallowed']],
|
||
|
||
boss_lvbu1: [
|
||
"male",
|
||
"shen",
|
||
8,
|
||
["mashu", "wushuang", "boss_baonu", "boss_jingjia", "boss_aozhan"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_lvbu2: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["mashu", "wushuang", "xiuluo", "shenwei", "shenji"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_lvbu3: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["wushuang", "shenqu", "jiwu"],
|
||
["qun", "hiddenboss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
|
||
boss_caocao: [
|
||
"male",
|
||
"shen",
|
||
12,
|
||
["boss_guixin", "xiongcai"],
|
||
["wei", "boss", "bossallowed"],
|
||
"wei",
|
||
],
|
||
boss_guojia: [
|
||
"male",
|
||
"shen",
|
||
4,
|
||
["tiandu", "boss_guimou", "boss_yuance", "boss_qizuo"],
|
||
["wei", "boss", "bossallowed"],
|
||
"zhu",
|
||
],
|
||
boss_zhangchunhua: [
|
||
"female",
|
||
"shen",
|
||
4,
|
||
["jueqing", "boss_wuxin", "shangshix"],
|
||
["wei", "boss", "bossallowed"],
|
||
"wei",
|
||
],
|
||
boss_zhenji: [
|
||
"female",
|
||
"shen",
|
||
4,
|
||
["tashui", "lingbo", "jiaoxia", "fanghua"],
|
||
["wei", "boss", "bossallowed"],
|
||
"wei",
|
||
],
|
||
|
||
boss_liubei: [
|
||
"male",
|
||
"shen",
|
||
8,
|
||
["xiaoxiong", "boss_zhangwu"],
|
||
["shu", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_zhugeliang: [
|
||
"male",
|
||
"shen",
|
||
Infinity,
|
||
["xiangxing", "yueyin", "fengqi", "gaiming"],
|
||
["shu", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_huangyueying: [
|
||
"female",
|
||
"shen",
|
||
4,
|
||
["boss_gongshen", "boss_jizhi", "qicai", "boss_guiyin"],
|
||
["shu", "boss", "bossallowed"],
|
||
"wei",
|
||
],
|
||
boss_pangtong: [
|
||
"male",
|
||
"shen",
|
||
4,
|
||
["boss_tianyu", "qiwu", "niepan", "boss_yuhuo"],
|
||
["shu", "boss", "bossallowed"],
|
||
"zhu",
|
||
],
|
||
|
||
boss_zhouyu: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["huoshen", "boss_honglian", "boss_xianyin"],
|
||
["wu", "boss", "bossallowed"],
|
||
"zhu",
|
||
],
|
||
|
||
boss_caiwenji: [
|
||
"female",
|
||
"shen",
|
||
4,
|
||
["beige", "boss_hujia", "boss_guihan"],
|
||
["qun", "boss", "bossallowed"],
|
||
"wei",
|
||
],
|
||
boss_zhangjiao: [
|
||
"male",
|
||
"shen",
|
||
8,
|
||
["boss_leiji", "tiandao", "jidian"],
|
||
["qun", "boss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
boss_zuoci: ["male", "shen", 0, ["huanhua"], ["qun", "boss", "bossallowed"], "shu"],
|
||
|
||
boss_diaochan: [
|
||
"female",
|
||
"shen",
|
||
4,
|
||
["fengwu", "yunshen", "lianji", "boss_wange", "yuehun"],
|
||
["qun", "boss", "bossallowed"],
|
||
"qun",
|
||
],
|
||
boss_huatuo: [
|
||
"male",
|
||
"shen",
|
||
6,
|
||
["chulao", "mazui", "boss_shengshou", "guizhen", "wuqin"],
|
||
["qun", "boss", "bossallowed"],
|
||
"wu",
|
||
],
|
||
boss_dongzhuo: [
|
||
"male",
|
||
"shen",
|
||
20,
|
||
["jiuchi", "boss_qiangzheng", "boss_baolin"],
|
||
["qun", "boss", "bossallowed"],
|
||
"shu",
|
||
],
|
||
|
||
boss_sunce: [
|
||
"male",
|
||
"shen",
|
||
"1/8",
|
||
["boss_jiang", "boss_hunzi", "boss_hunyou", "boss_taoni"],
|
||
["qun", "boss", "bossallowed", "InitFilter:noZhuHp:noZhuSkill"],
|
||
"wu",
|
||
],
|
||
|
||
// boss_nianshou:['male','shen',Infinity,['boss_nianrui','boss_qixiang','boss_damagecount'],['boss'],'shu'],
|
||
// boss_yuji:['male','qun',8,[],['boss','bossallowed'],'nei'],
|
||
// boss_shuijing:['male','qun',8,[],['boss','bossallowed'],'wei'],
|
||
// boss_sunshangxiang:['male','qun',8,[],['boss','bossallowed'],'wei'],
|
||
},
|
||
},
|
||
cardPack: {
|
||
mode_boss: [
|
||
"honghuangzhili",
|
||
"sadouchengbing",
|
||
"yihuajiemu",
|
||
"chiyanzhenhunqin",
|
||
"juechenjinge",
|
||
"xiuluolianyuji",
|
||
"longfenghemingjian",
|
||
"qicaishenlu",
|
||
"hongmianbaihuapao",
|
||
"boss_mengpohuihun",
|
||
"lingsheji",
|
||
"shanrangzhaoshu",
|
||
"jinwuluorigong",
|
||
"xingtianpojunfu",
|
||
"gubuzifeng",
|
||
],
|
||
},
|
||
init: function () {
|
||
for (var i in lib.characterPack.mode_boss) {
|
||
if (get.convertedCharacter(lib.characterPack.mode_boss[i]).isHiddenBoss) continue;
|
||
lib.mode.boss.config[i + "_boss_config"] = {
|
||
name: get.translation(i),
|
||
init: true,
|
||
unfrequent: true,
|
||
};
|
||
}
|
||
},
|
||
game: {
|
||
reserveDead: true,
|
||
addBossFellow: function (position, name) {
|
||
var fellow = game.addFellow(position, name, "zoominanim");
|
||
fellow.directgain(get.cards(4));
|
||
fellow.side = true;
|
||
fellow.identity = "zhong";
|
||
fellow.setIdentity("zhong");
|
||
game.addVideo("setIdentity", fellow, "zhong");
|
||
},
|
||
changeBoss: function (name, player) {
|
||
if (!player) {
|
||
if (game.additionaldead) {
|
||
game.additionaldead.push(game.boss);
|
||
} else {
|
||
game.additionaldead = [game.boss];
|
||
}
|
||
player = game.boss;
|
||
delete game.boss;
|
||
}
|
||
|
||
player.delete();
|
||
game.players.remove(player);
|
||
game.dead.remove(player);
|
||
var boss = ui.create.player();
|
||
boss.getId();
|
||
boss.init(name);
|
||
boss.side = true;
|
||
game.addVideo("bossSwap", player, (game.boss ? "_" : "") + boss.name);
|
||
boss.dataset.position = player.dataset.position;
|
||
if (game.me == player) {
|
||
game.swapControl(boss);
|
||
}
|
||
game.players.push(boss.addTempClass("zoominanim"));
|
||
game.arrangePlayers();
|
||
if (!game.boss) {
|
||
game.boss = boss;
|
||
boss.setIdentity("zhu");
|
||
boss.identity = "zhu";
|
||
} else {
|
||
boss.setIdentity("zhong");
|
||
boss.identity = "zhong";
|
||
}
|
||
ui.arena.appendChild(boss);
|
||
boss.directgain(get.cards(4));
|
||
},
|
||
checkResult: function () {
|
||
if (game.boss == game.me) {
|
||
game.over(game.boss.isAlive());
|
||
} else {
|
||
game.over(!game.boss.isAlive());
|
||
}
|
||
},
|
||
getVideoName: function () {
|
||
var str = get.translation(game.me.name);
|
||
if (game.me.name2) {
|
||
str += "/" + get.translation(game.me.name2);
|
||
}
|
||
var str2 = "挑战";
|
||
if (game.me != game.boss) {
|
||
str2 += " - " + get.translation(game.boss);
|
||
}
|
||
var name = [str, str2];
|
||
return name;
|
||
},
|
||
bossPhaseLoop: function () {
|
||
var next = game.createEvent("phaseLoop");
|
||
if (game.bossinfo.loopFirst) {
|
||
next.player = game.bossinfo.loopFirst();
|
||
} else {
|
||
next.player = game.boss;
|
||
}
|
||
_status.looped = true;
|
||
next.setContent(function () {
|
||
"step 0";
|
||
if (player.chongzheng) {
|
||
player.chongzheng = false;
|
||
} else if (player.isDead()) {
|
||
if (player.hp < 0) player.hp = 0;
|
||
player.storage.boss_chongzheng++;
|
||
if (player.maxHp > 0 && game.bossinfo.chongzheng) {
|
||
if (player.hp < player.maxHp) {
|
||
player.hp++;
|
||
} else if (player.countCards("h") < 4) {
|
||
var card = get.cards()[0];
|
||
var sort = lib.config.sort_card(card);
|
||
var position = sort > 0 ? player.node.handcards1 : player.node.handcards2;
|
||
card.fix();
|
||
card.addTempClass("start");
|
||
position.insertBefore(card, position.firstChild);
|
||
}
|
||
player.update();
|
||
if (player.storage.boss_chongzheng >= game.bossinfo.chongzheng) {
|
||
player.revive(player.hp);
|
||
}
|
||
}
|
||
if (game.bossinfo.loopType == 2) {
|
||
game.boss.chongzheng = true;
|
||
}
|
||
} else {
|
||
if (player.identity == "zhu" && game.boss != player) {
|
||
player = game.boss;
|
||
}
|
||
player.phase();
|
||
}
|
||
"step 1";
|
||
if (game.bossinfo.loopType == 2) {
|
||
_status.roundStart = true;
|
||
if (event.player == game.boss) {
|
||
if (!_status.last || _status.last.nextSeat == game.boss) {
|
||
event.player = game.boss.nextSeat;
|
||
} else {
|
||
event.player = _status.last.nextSeat;
|
||
}
|
||
} else {
|
||
_status.last = player;
|
||
event.player = game.boss;
|
||
if (player.nextSeat == game.boss) {
|
||
delete _status.roundStart;
|
||
}
|
||
}
|
||
} else {
|
||
event.player = event.player.nextSeat;
|
||
}
|
||
event.goto(0);
|
||
});
|
||
},
|
||
onSwapControl: function () {
|
||
if (game.me == game.boss) return;
|
||
game.addVideo("onSwapControl");
|
||
var name = game.me.name;
|
||
if (ui.fakeme && ui.fakeme.current != name) {
|
||
ui.fakeme.current = name;
|
||
if (ui.versushighlight && ui.versushighlight != game.me) {
|
||
ui.versushighlight.classList.remove("current_action");
|
||
}
|
||
ui.versushighlight = game.me;
|
||
game.me.classList.add("current_action");
|
||
// game.me.line(ui.fakeme,{opacity:0.5,dashed:true});
|
||
|
||
ui.fakeme.style.backgroundImage = game.me.node.avatar.style.backgroundImage;
|
||
// ui.fakeme.style.backgroundSize='cover';
|
||
}
|
||
ui.updatehl();
|
||
},
|
||
modeSwapPlayer: function (player) {
|
||
var bool = game.me == game.boss || player == game.boss;
|
||
game.swapControl(player);
|
||
game.onSwapControl();
|
||
if (!bool) return;
|
||
if (game.me == game.boss) {
|
||
game.singleHandcard = false;
|
||
ui.arena.classList.remove("single-handcard");
|
||
ui.window.classList.remove("single-handcard");
|
||
ui.fakeme.style.display = "none";
|
||
game.me.dataset.position = 0;
|
||
game.me.nextSeat.dataset.position = 2;
|
||
game.me.nextSeat.nextSeat.dataset.position = 4;
|
||
game.me.nextSeat.nextSeat.nextSeat.dataset.position = 6;
|
||
} else {
|
||
game.singleHandcard = true;
|
||
ui.arena.classList.add("single-handcard");
|
||
ui.window.classList.add("single-handcard");
|
||
ui.fakeme.style.display = "";
|
||
game.boss.dataset.position = 7;
|
||
game.boss.nextSeat.dataset.position = 1;
|
||
game.boss.nextSeat.nextSeat.dataset.position = 2;
|
||
game.boss.nextSeat.nextSeat.nextSeat.dataset.position = 3;
|
||
if (game.me && game.me.node.handcards2.childNodes.length) {
|
||
while (game.me.node.handcards2.childNodes.length) {
|
||
game.me.node.handcards1.appendChild(game.me.node.handcards2.firstChild);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
chooseCharacter: function (func) {
|
||
var next = game.createEvent("chooseCharacter");
|
||
next.showConfig = true;
|
||
next.customreplacetarget = func;
|
||
next.ai = function (player, list) {
|
||
if (get.config("double_character")) {
|
||
player.init(list[0], list[1]);
|
||
} else {
|
||
player.init(list[0]);
|
||
}
|
||
};
|
||
next.setContent(function () {
|
||
"step 0";
|
||
var i;
|
||
var list = [];
|
||
event.list = list;
|
||
for (i in lib.character) {
|
||
if (lib.character[i].isMinskin) continue;
|
||
if (lib.character[i].isBoss) continue;
|
||
if (lib.character[i].isHiddenBoss) continue;
|
||
if (lib.character[i].isAiForbidden) continue;
|
||
if (lib.config.forbidboss.includes(i)) continue;
|
||
if (lib.filter.characterDisabled(i)) continue;
|
||
list.push(i);
|
||
}
|
||
list.randomSort();
|
||
var dialog = ui.create.dialog("选择参战角色", "hidden");
|
||
dialog.classList.add("fixed");
|
||
ui.window.appendChild(dialog);
|
||
dialog.classList.add("bosscharacter");
|
||
dialog.classList.add("modeshortcutpause");
|
||
dialog.classList.add("withbg");
|
||
// dialog.add('0/3');
|
||
dialog.add([list.slice(0, 20), "character"]);
|
||
dialog.noopen = true;
|
||
var next = game.me.chooseButton(dialog, true).set("onfree", true);
|
||
next._triggered = null;
|
||
next.custom.replace.target = event.customreplacetarget;
|
||
next.selectButton = [3, 3];
|
||
// next.custom.add.button=function(){
|
||
// if(ui.cheat2&&ui.cheat2.backup) return;
|
||
// _status.event.dialog.content.childNodes[1].innerHTML=
|
||
// ui.selected.buttons.length+'/3';
|
||
// };
|
||
event.changeDialog = function () {
|
||
if (ui.cheat2 && ui.cheat2.dialog == _status.event.dialog) {
|
||
return;
|
||
}
|
||
if (game.changeCoin) {
|
||
game.changeCoin(-3);
|
||
}
|
||
list.randomSort();
|
||
|
||
var buttons = ui.create.div(".buttons");
|
||
var node = _status.event.dialog.buttons[0].parentNode;
|
||
_status.event.dialog.buttons = ui.create.buttons(
|
||
list.slice(0, 20),
|
||
"character",
|
||
buttons
|
||
);
|
||
_status.event.dialog.content.insertBefore(buttons, node);
|
||
buttons.addTempClass("start");
|
||
node.remove();
|
||
|
||
game.uncheck();
|
||
game.check();
|
||
};
|
||
ui.create.cheat = function () {
|
||
_status.createControl = ui.cheat2 || event.asboss;
|
||
ui.cheat = ui.create.control("更换", event.changeDialog);
|
||
delete _status.createControl;
|
||
};
|
||
var createCharacterDialog = function () {
|
||
event.dialogxx = ui.create.characterDialog();
|
||
event.dialogxx.classList.add("bosscharacter");
|
||
event.dialogxx.classList.add("withbg");
|
||
event.dialogxx.classList.add("fixed");
|
||
if (ui.cheat2) {
|
||
ui.cheat2.addTempClass("controlpressdownx", 500);
|
||
ui.cheat2.classList.remove("disabled");
|
||
}
|
||
};
|
||
if (lib.onfree) {
|
||
lib.onfree.push(createCharacterDialog);
|
||
} else {
|
||
createCharacterDialog();
|
||
}
|
||
ui.create.cheat2 = function () {
|
||
_status.createControl = event.asboss;
|
||
ui.cheat2 = ui.create.control("自由选将", function () {
|
||
if (this.dialog == _status.event.dialog) {
|
||
if (game.changeCoin) {
|
||
game.changeCoin(10);
|
||
}
|
||
this.dialog.close();
|
||
_status.event.dialog = this.backup;
|
||
ui.window.appendChild(this.backup);
|
||
delete this.backup;
|
||
game.uncheck();
|
||
game.check();
|
||
if (ui.cheat) {
|
||
ui.cheat.addTempClass("controlpressdownx", 500);
|
||
ui.cheat.classList.remove("disabled");
|
||
}
|
||
if (_status.bosschoice) {
|
||
_status.bosschoice.addTempClass("controlpressdownx", 500);
|
||
_status.bosschoice.classList.remove("disabled");
|
||
}
|
||
} else {
|
||
if (game.changeCoin) {
|
||
game.changeCoin(-10);
|
||
}
|
||
this.backup = _status.event.dialog;
|
||
_status.event.dialog.close();
|
||
_status.event.dialog = _status.event.parent.dialogxx;
|
||
this.dialog = _status.event.dialog;
|
||
ui.window.appendChild(this.dialog);
|
||
game.uncheck();
|
||
game.check();
|
||
if (ui.cheat) {
|
||
ui.cheat.classList.add("disabled");
|
||
}
|
||
if (_status.bosschoice) {
|
||
_status.bosschoice.classList.add("disabled");
|
||
}
|
||
}
|
||
});
|
||
if (lib.onfree) {
|
||
ui.cheat2.classList.add("disabled");
|
||
}
|
||
delete _status.createControl;
|
||
};
|
||
if (!ui.cheat && get.config("change_choice")) ui.create.cheat();
|
||
if (!ui.cheat2 && get.config("free_choose")) ui.create.cheat2();
|
||
|
||
event.asboss = ui.create.control("应战", function () {
|
||
event.boss = true;
|
||
event.enemy = [];
|
||
for (var i = 0; i < ui.selected.buttons.length; i++) {
|
||
event.enemy.push(ui.selected.buttons[i].link);
|
||
event.list.remove(ui.selected.buttons[i].link);
|
||
}
|
||
while (event.enemy.length < 3) {
|
||
var name = event.list.randomRemove();
|
||
if (lib.boss[lib.storage.current] && lib.boss[lib.storage.current].randchoice) {
|
||
name = lib.boss[lib.storage.current].randchoice(name, event.enemy);
|
||
}
|
||
event.enemy.push(name);
|
||
}
|
||
game.uncheck();
|
||
if (ui.confirm) {
|
||
ui.confirm.close();
|
||
}
|
||
game.resume();
|
||
});
|
||
"step 1";
|
||
if (ui.cheat) {
|
||
ui.cheat.close();
|
||
delete ui.cheat;
|
||
}
|
||
if (ui.cheat2) {
|
||
ui.cheat2.close();
|
||
delete ui.cheat2;
|
||
}
|
||
event.asboss.close();
|
||
if (_status.bosschoice) {
|
||
_status.bosschoice.close();
|
||
delete _status.bosschoice;
|
||
}
|
||
if (event.boss) {
|
||
event.result = {
|
||
boss: true,
|
||
links: event.enemy,
|
||
};
|
||
} else {
|
||
event.result = {
|
||
boss: false,
|
||
links: result.links,
|
||
};
|
||
_status.coinCoeff = get.coinCoeff(result.links);
|
||
}
|
||
});
|
||
return next;
|
||
},
|
||
},
|
||
boss: {
|
||
boss_qiongqi: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_xiangliu: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_zhuyan: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_bifang: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_yingzhao: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_hundun: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_taotie: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function () {
|
||
return lib.boss.boss_taowu.randchoice.apply(this, arguments);
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function () {
|
||
return lib.boss.boss_taowu.control.apply(this, arguments);
|
||
},
|
||
init: function () {
|
||
return lib.boss.boss_taowu.init.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_taowu: {
|
||
chongzheng: 0,
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat.nextSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
minion: {
|
||
2: "boss_zhuyin",
|
||
8: "boss_zhuyin",
|
||
},
|
||
randchoice: function (name, list) {
|
||
if (Math.random() > 1 / 3) {
|
||
return name;
|
||
} else {
|
||
var arr = [
|
||
"shen_caocao",
|
||
"shen_simayi",
|
||
"shen_guanyu",
|
||
"shen_zhugeliang",
|
||
"shen_zhaoyun",
|
||
"shen_zhouyu",
|
||
"shen_lvmeng",
|
||
"shen_lvbu",
|
||
"shen_liubei",
|
||
"shen_luxun",
|
||
"shen_ganning",
|
||
"ol_zhangliao",
|
||
"shen_zhenji",
|
||
"shen_caopi",
|
||
"key_kagari",
|
||
"key_shiki",
|
||
"db_key_hina",
|
||
];
|
||
arr.removeArray(list);
|
||
return arr.randomGet();
|
||
}
|
||
},
|
||
controlid: "shenwuzaishi",
|
||
control: function (type, control) {
|
||
if (type == "cancel") {
|
||
if (!control.classList.contains("glow")) return;
|
||
var dialog = control.dialog;
|
||
dialog.content.removeChild(control.backup1);
|
||
dialog.buttons.removeArray(control.backup2);
|
||
|
||
game.uncheck();
|
||
game.check();
|
||
} else {
|
||
var control = ui.create.control("神将", function () {
|
||
if (ui.cheat2 && ui.cheat2.dialog == _status.event.dialog) {
|
||
return;
|
||
}
|
||
var dialog = _status.event.dialog;
|
||
this.dialog = dialog;
|
||
if (this.classList.contains("glow")) {
|
||
this.backup1.remove();
|
||
dialog.buttons.removeArray(this.backup2);
|
||
} else {
|
||
var links = [];
|
||
for (var i = 0; i < dialog.buttons.length; i++) {
|
||
links.push(dialog.buttons[i].link);
|
||
}
|
||
for (var i = 0; i < this.backup2.length; i++) {
|
||
if (links.includes(this.backup2[i].link)) {
|
||
this.backup2[i].style.display = "none";
|
||
} else {
|
||
this.backup2[i].style.display = "";
|
||
}
|
||
}
|
||
dialog.content.insertBefore(this.backup1, dialog.buttons[0].parentNode);
|
||
dialog.buttons.addArray(this.backup2);
|
||
}
|
||
this.classList.toggle("glow");
|
||
|
||
game.uncheck();
|
||
game.check();
|
||
});
|
||
control.backup1 = ui.create.div(".buttons");
|
||
control.backup2 = ui.create.buttons(
|
||
[
|
||
"shen_caocao",
|
||
"shen_simayi",
|
||
"shen_guanyu",
|
||
"shen_zhugeliang",
|
||
"shen_zhaoyun",
|
||
"shen_zhouyu",
|
||
"shen_lvmeng",
|
||
"shen_lvbu",
|
||
"shen_liubei",
|
||
"shen_luxun",
|
||
"shen_ganning",
|
||
"ol_zhangliao",
|
||
"shen_zhenji",
|
||
"shen_caopi",
|
||
"key_kagari",
|
||
"key_shiki",
|
||
"db_key_hina",
|
||
],
|
||
"character",
|
||
control.backup1
|
||
);
|
||
return control;
|
||
}
|
||
},
|
||
init: function () {
|
||
game.addGlobalSkill("boss_shenwuzaishi");
|
||
game.addGlobalSkill("TheDayIBecomeAGod");
|
||
game.addGlobalSkill("thedayibecomeagod");
|
||
var list = ["lebu", "bingliang"];
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
switch (game.players[i].name1) {
|
||
case "shen_guanyu": {
|
||
game.players[i].equip(game.createCard2("guilongzhanyuedao", "spade", 5));
|
||
lib.inpile.add("guilongzhanyuedao");
|
||
list.push("qinglong");
|
||
break;
|
||
}
|
||
case "shen_zhugeliang": {
|
||
game.players[i].equip(game.createCard2("qimenbagua", "spade", 2));
|
||
list.push("bagua");
|
||
lib.inpile.add("qimenbagua");
|
||
break;
|
||
}
|
||
case "shen_zhouyu": {
|
||
game.players[i].equip(game.createCard2("chiyanzhenhunqin", "diamond", 1));
|
||
list.push("zhuque");
|
||
lib.inpile.add("chiyanzhenhunqin");
|
||
break;
|
||
}
|
||
case "shen_caocao": {
|
||
game.players[i].equip(game.createCard2("juechenjinge", "spade", 5));
|
||
list.push("jueying");
|
||
lib.inpile.add("juechenjinge");
|
||
break;
|
||
}
|
||
case "shen_zhaoyun": {
|
||
game.players[i].equip(game.createCard2("chixueqingfeng", "spade", 6));
|
||
list.push("qinggang");
|
||
lib.inpile.add("chixueqingfeng");
|
||
break;
|
||
}
|
||
case "shen_lvbu": {
|
||
game.players[i].equip(game.createCard2("xiuluolianyuji", "diamond", 12));
|
||
list.push("fangtian");
|
||
lib.inpile.add("xiuluolianyuji");
|
||
break;
|
||
}
|
||
case "shen_simayi": {
|
||
game.players[i].equip(game.createCard2("xuwangzhimian", "diamond", 4));
|
||
lib.inpile.add("xuwangzhimian");
|
||
break;
|
||
}
|
||
case "shen_liubei": {
|
||
game.players[i].equip(game.createCard2("longfenghemingjian", "spade", 2));
|
||
lib.inpile.add("longfenghemingjian");
|
||
list.push("cixiong");
|
||
break;
|
||
}
|
||
case "shen_lvmeng": {
|
||
game.players[i].equip(game.createCard2("guofengyupao", "diamond", 3));
|
||
lib.inpile.add("guofengyupao");
|
||
break;
|
||
}
|
||
case "shen_luxun": {
|
||
game.players[i].equip(game.createCard2("qicaishenlu", "diamond", 3));
|
||
lib.inpile.add("qicaishenlu");
|
||
break;
|
||
}
|
||
case "shen_ganning":
|
||
case "key_iwasawa": {
|
||
game.players[i].equip(game.createCard2("jinwuluorigong", "heart", 5));
|
||
lib.inpile.add("jinwuluorigong");
|
||
list.push("qilin");
|
||
break;
|
||
}
|
||
case "ol_zhangliao":
|
||
case "key_noda": {
|
||
game.players[i].equip(game.createCard2("xingtianpojunfu", "diamond", 5));
|
||
lib.inpile.add("xingtianpojunfu");
|
||
list.push("guanshi");
|
||
break;
|
||
}
|
||
case "shen_zhenji": {
|
||
game.players[i].equip(game.createCard2("lingsheji", "club", 12));
|
||
lib.inpile.add("lingsheji");
|
||
break;
|
||
}
|
||
case "shen_caopi": {
|
||
game.players[i].equip(game.createCard2("shanrangzhaoshu", "spade", 13));
|
||
lib.inpile.add("shanrangzhaoshu");
|
||
break;
|
||
}
|
||
case "key_kagari": {
|
||
game.players[i].equip(game.createCard2("goujiangdesidai", "heart", 1));
|
||
lib.inpile.add("goujiangdesidai");
|
||
break;
|
||
}
|
||
case "key_shiki": {
|
||
game.players[i].equip(game.createCard2("niaobaidaowenha", "diamond", 13));
|
||
lib.inpile.add("niaobaidaowenha");
|
||
break;
|
||
}
|
||
case "db_key_hina": {
|
||
game.players[i].equip(game.createCard2("shenzhixiunvfu", "spade", 13));
|
||
lib.inpile.add("shenzhixiunvfu");
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
lib.inpile.remove("wuzhong");
|
||
lib.inpile.remove("jiedao");
|
||
lib.inpile.add("sadouchengbing");
|
||
lib.inpile.add("yihuajiemu");
|
||
lib.inpile.add("gubuzifeng");
|
||
for (var i = 0; i < ui.cardPile.childElementCount; i++) {
|
||
var node = ui.cardPile.childNodes[i];
|
||
if (node.name == "wuzhong") {
|
||
node.init([node.suit, node.number, "sadouchengbing"]);
|
||
} else if (node.name == "jiedao") {
|
||
node.init([node.suit, node.number, "yihuajiemu"]);
|
||
} else if (list.includes(node.name)) {
|
||
lib.inpile.remove(node.name);
|
||
node.remove();
|
||
}
|
||
}
|
||
var cards = [
|
||
game.createCard2("gubuzifeng", "club", 5),
|
||
game.createCard2("gubuzifeng", "diamond", 7),
|
||
];
|
||
while (cards.length > 0) {
|
||
ui.cardPile.insertBefore(
|
||
cards.shift(),
|
||
ui.cardPile.childNodes[get.rand(0, ui.cardPile.childElementCount - 1)]
|
||
);
|
||
}
|
||
lib.inpile.sort(lib.sort.card);
|
||
},
|
||
},
|
||
boss_chiyanshilian: {
|
||
chongzheng: 0,
|
||
loopType: 2,
|
||
checkResult: function (player) {
|
||
if (player == game.boss && game.boss.name != "boss_yandi") {
|
||
return false;
|
||
}
|
||
},
|
||
init: function () {
|
||
_status.additionalReward = function () {
|
||
return 500;
|
||
};
|
||
lib.inpile.remove("shandian");
|
||
lib.inpile.remove("huoshan");
|
||
lib.inpile.remove("hongshui");
|
||
lib.inpile.remove("fulei");
|
||
lib.inpile.add("honghuangzhili");
|
||
lib.inpile.sort(lib.sort.card);
|
||
for (var i = 0; i < ui.cardPile.childElementCount; i++) {
|
||
var node = ui.cardPile.childNodes[i];
|
||
if (node.name == "shandian") {
|
||
node.classList.remove("fullskin");
|
||
node.classList.remove("thunder");
|
||
node.init([node.suit, node.number, "honghuangzhili"]);
|
||
} else if (["huoshan", "hongshui", "fulei"].includes(node.name)) {
|
||
node.remove();
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_qingmushilian: {
|
||
chongzheng: 0,
|
||
loopType: 2,
|
||
checkResult: function (player) {
|
||
if (player == game.boss && game.boss.name != "boss_taihao") {
|
||
return false;
|
||
}
|
||
},
|
||
init: function () {
|
||
lib.boss.boss_chiyanshilian.init();
|
||
},
|
||
},
|
||
boss_baimangshilian: {
|
||
chongzheng: 0,
|
||
loopType: 2,
|
||
checkResult: function (player) {
|
||
if (player == game.boss && game.boss.name != "boss_shaohao") {
|
||
return false;
|
||
}
|
||
},
|
||
init: function () {
|
||
lib.boss.boss_chiyanshilian.init();
|
||
},
|
||
},
|
||
boss_xuanlinshilian: {
|
||
chongzheng: 0,
|
||
loopType: 2,
|
||
checkResult: function (player) {
|
||
if (player == game.boss && game.boss.name != "boss_zhuanxu") {
|
||
return false;
|
||
}
|
||
},
|
||
init: function () {
|
||
lib.boss.boss_chiyanshilian.init();
|
||
},
|
||
},
|
||
boss_zhuoguiquxie: {
|
||
chongzheng: 0,
|
||
checkResult: function (player) {
|
||
if (
|
||
player == game.boss &&
|
||
game.boss.name != "boss_yecha" &&
|
||
game.boss.name != "boss_luocha"
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
init: function () {
|
||
_status.additionalReward = function () {
|
||
return 500;
|
||
};
|
||
},
|
||
},
|
||
boss_qinguangwang: {
|
||
chongzheng: 0,
|
||
checkResult: function (player) {
|
||
if (
|
||
player == game.boss &&
|
||
(!_status.shidianyanluo_level || _status.shidianyanluo_level < 3)
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
init: function () {
|
||
_status.shidianyanluo_level = 0;
|
||
lib.inpile.remove("muniu");
|
||
for (var i = 0; i < ui.cardPile.childElementCount; i++) {
|
||
if (ui.cardPile.childNodes[i].name == "muniu") {
|
||
ui.cardPile.childNodes[i].remove();
|
||
break;
|
||
}
|
||
}
|
||
_status.additionalReward = function () {
|
||
return 500;
|
||
};
|
||
},
|
||
},
|
||
boss_nianshou: {
|
||
chongzheng: 0,
|
||
init: function () {
|
||
game.boss.node.action.classList.add("freecolor");
|
||
game.boss.node.action.style.opacity = 1;
|
||
game.boss.node.action.style.letterSpacing = "4px";
|
||
game.boss.node.action.style.marginRight = 0;
|
||
game.boss.node.action.style.fontFamily = "huangcao";
|
||
game.boss.node.action.innerHTML = "";
|
||
_status.additionalReward = function () {
|
||
return Math.round(Math.pow(_status.damageCount, 2.4)) * 2;
|
||
};
|
||
var time = 360;
|
||
var interval = setInterval(function () {
|
||
if (_status.over) {
|
||
clearInterval(interval);
|
||
return;
|
||
}
|
||
var sec = time % 60;
|
||
if (sec < 10) {
|
||
sec = "0" + sec;
|
||
}
|
||
game.boss.node.action.innerHTML = Math.floor(time / 60) + ":" + sec;
|
||
if (time <= 0) {
|
||
delete _status.additionalReward;
|
||
if (typeof _status.coin == "number") {
|
||
if (game.me == game.boss) {
|
||
_status.coin += Math.round(Math.pow(_status.damageCount, 2.4));
|
||
} else {
|
||
_status.coin += Math.round(Math.pow(_status.damageCount, 1.8));
|
||
}
|
||
}
|
||
game.forceOver(true);
|
||
clearInterval(interval);
|
||
}
|
||
time--;
|
||
}, 1000);
|
||
_status.damageCount = 0;
|
||
ui.damageCount = ui.create.system("伤害: 0", null, true);
|
||
},
|
||
},
|
||
boss_nianshou_heti: {
|
||
chongzheng: 0,
|
||
},
|
||
boss_zhangjiao: {
|
||
// loopType:2,
|
||
},
|
||
boss_caiwenji: {
|
||
loopType: 2,
|
||
},
|
||
boss_pangtong: {
|
||
loopType: 2,
|
||
chongzheng: 12,
|
||
},
|
||
boss_zhenji: {
|
||
chongzheng: 4,
|
||
},
|
||
boss_lvbu1: {
|
||
loopType: 2,
|
||
gameDraw: function (player) {
|
||
if (player == game.boss) return 8;
|
||
if (player == game.boss.previous) return 5;
|
||
return 4;
|
||
},
|
||
loopFirst: function () {
|
||
return game.boss.nextSeat;
|
||
},
|
||
init: function () {
|
||
lib.inpile.remove("wugu");
|
||
lib.inpile.remove("taoyuan");
|
||
lib.inpile.remove("bagua");
|
||
lib.inpile.remove("tengjia");
|
||
lib.inpile.remove("fangtian");
|
||
lib.inpile.remove("muniu");
|
||
lib.inpile.addArray([
|
||
"wushuangfangtianji",
|
||
"shufazijinguan",
|
||
"hongmianbaihuapao",
|
||
"linglongshimandai",
|
||
"lianjunshengyan",
|
||
]);
|
||
lib.inpile.sort(lib.sort.card);
|
||
var equiplist = [];
|
||
for (var i = 0; i < ui.cardPile.childElementCount; i++) {
|
||
var node = ui.cardPile.childNodes[i];
|
||
if (node.name == "bagua") {
|
||
node.init([node.suit, node.number, "linglongshimandai"]);
|
||
equiplist.push(node);
|
||
} else if (node.name == "tengjia") {
|
||
node.init([node.suit, node.number, "hongmianbaihuapao"]);
|
||
equiplist.push(node);
|
||
} else if (node.name == "fangtian") {
|
||
node.init([node.suit, node.number, "wushuangfangtianji"]);
|
||
equiplist.push(node);
|
||
} else if (node.name == "muniu") {
|
||
node.init([node.suit, node.number, "shufazijinguan"]);
|
||
equiplist.push(node);
|
||
} else if (node.name == "wugu" || node.name == "taoyuan") {
|
||
node.init([node.suit, node.number, "lianjunshengyan"]);
|
||
}
|
||
}
|
||
equiplist.randomSort();
|
||
var next = game.createEvent("boss_jingjia");
|
||
next.player = game.boss;
|
||
next.cards = equiplist;
|
||
next.setContent(function () {
|
||
"step 0";
|
||
if (!cards.length) {
|
||
event.finish();
|
||
return;
|
||
}
|
||
player.logSkill("boss_jingjia");
|
||
event.num = 1.5;
|
||
"step 1";
|
||
var card = cards.shift();
|
||
if (player.canEquip(card) && Math.random() < event.num) {
|
||
player.equip(card);
|
||
event.num = 0.5;
|
||
}
|
||
if (cards.length) event.redo();
|
||
});
|
||
},
|
||
},
|
||
boss_zuoci: {
|
||
chongzheng: 4,
|
||
},
|
||
boss_diaochan: {
|
||
chongzheng: 4,
|
||
},
|
||
boss_huangyueying: {
|
||
chongzheng: 12,
|
||
},
|
||
boss_sunce: {
|
||
loopType: 2,
|
||
loopFirst: function () {
|
||
return game.boss.previousSeat;
|
||
},
|
||
gameDraw: function (player) {
|
||
return player == game.boss ? 8 : 4;
|
||
},
|
||
init: function () {
|
||
_status.taoni_over = get.copy(game.over);
|
||
},
|
||
},
|
||
global: {
|
||
loopType: 1,
|
||
chongzheng: 6,
|
||
},
|
||
},
|
||
skill: {
|
||
boss_yingzhong: {
|
||
//Unfinished
|
||
},
|
||
niaobaidaowenha_skill: {
|
||
trigger: { player: "loseMaxHpAfter" },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
event.count = trigger.num;
|
||
"step 1";
|
||
event.count--;
|
||
player
|
||
.chooseTarget(get.prompt2("niaobaidaowenha_skill"), lib.filter.notMe)
|
||
.set("ai", function (target) {
|
||
return get.attitude(_status.event.player, target) / (target.maxHp || 1);
|
||
});
|
||
"step 2";
|
||
if (result.bool) {
|
||
var target = result.targets[0];
|
||
player.logSkill("niaobaidaowenha_skill", target);
|
||
target.gainMaxHp();
|
||
target.recover();
|
||
if (event.count) event.goto(1);
|
||
}
|
||
},
|
||
},
|
||
goujiangdesidai_skill: {
|
||
inherit: "kagari_zongsi",
|
||
filter: function (event, player) {
|
||
return !player.hasSkill("kagari_zongsi") || player.getStat("skill").kagari_zongsi;
|
||
},
|
||
},
|
||
gubuzifeng_disable: {
|
||
init: function (player, skill) {
|
||
if (!player.storage[skill]) player.storage[skill] = [];
|
||
},
|
||
onremove: function (player, skill) {
|
||
player.enableSkill(skill);
|
||
delete player.storage[skill];
|
||
},
|
||
charlotte: true,
|
||
locked: true,
|
||
mark: true,
|
||
intro: {
|
||
content: function (storage, player, skill) {
|
||
var list = [];
|
||
for (var i in player.disabledSkills) {
|
||
if (player.disabledSkills[i].includes(skill)) {
|
||
list.push(i);
|
||
}
|
||
}
|
||
if (list.length) {
|
||
var str = "失效技能:";
|
||
for (var i = 0; i < list.length; i++) {
|
||
if (lib.translate[list[i] + "_info"]) {
|
||
str += get.translation(list[i]) + "、";
|
||
}
|
||
}
|
||
return str.slice(0, str.length - 1);
|
||
}
|
||
},
|
||
},
|
||
},
|
||
thedayibecomeagod: {
|
||
trigger: { player: "die" },
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return player.group == "shen";
|
||
},
|
||
forceDie: true,
|
||
skillAnimation: true,
|
||
animationColor: "kami",
|
||
content: function () {
|
||
"step 0";
|
||
player
|
||
.chooseTarget(get.prompt2("thedayibecomeagod"), function (card, player, target) {
|
||
return target.isFriendOf(player);
|
||
})
|
||
.set("forceDie", true).ai = function (target) {
|
||
return get.attitude(_status.event.player, target);
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
var target = result.targets[0];
|
||
event.target = target;
|
||
player.logSkill("thedayibecomeagod", target);
|
||
if (target.group != "shen") {
|
||
target.changeGroup("shen");
|
||
game.log("此刻,便是", target, "成为神明之日!");
|
||
event.finish();
|
||
} else target.turnOver(false);
|
||
} else event.finish();
|
||
"step 2";
|
||
if (target.isDamaged()) target.recover(target.maxHp - target.hp);
|
||
"step 3";
|
||
target.drawTo(5);
|
||
},
|
||
},
|
||
TheDayIBecomeAGod: {
|
||
trigger: { player: "useCard1" },
|
||
ruleSkill: true,
|
||
popup: false,
|
||
forced: true,
|
||
prompt: "是否将此【杀】改为神属性?",
|
||
filter: function (event, player) {
|
||
return player.group == "shen" && event.card.name == "sha";
|
||
},
|
||
content: function () {
|
||
game.log(trigger.card, "被改为神属性");
|
||
game.setNature(trigger.card, "kami");
|
||
},
|
||
},
|
||
shanrangzhaoshu: {
|
||
trigger: {
|
||
global: ["gainEnd", "loseAsyncAfter"],
|
||
},
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
let min = 0;
|
||
if (!player.hasSkill("shanrangzhaoshu", null, false))
|
||
min += get.sgn(player.getEquips("shanrangzhaoshu").length);
|
||
const bool = player.countCards("he") > min;
|
||
return game.hasPlayer((current) => {
|
||
if (current == player || current == _status.currentPhase) return false;
|
||
if (!bool && current.countCards("h") == 0) return false;
|
||
const history = current.getHistory("gain")[0];
|
||
if (!history) return false;
|
||
if (event.name == "gain") {
|
||
return history == event && event.getlx !== false;
|
||
}
|
||
return history.getParent() == event;
|
||
});
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.targets = game
|
||
.filterPlayer(function (current) {
|
||
if (current == player || current == _status.currentPhase) return false;
|
||
const history = current.getHistory("gain")[0];
|
||
if (!history) return false;
|
||
if (trigger.name == "gain") {
|
||
return history == trigger && trigger.getlx !== false;
|
||
}
|
||
return history.getParent() == trigger;
|
||
})
|
||
.sortBySeat(_status.currentPhase);
|
||
"step 1";
|
||
var target = event.targets.shift();
|
||
event.target = target;
|
||
if (target.isIn()) {
|
||
var list = [];
|
||
var min = 0;
|
||
if (!player.hasSkill("shanrangzhaoshu", null, false))
|
||
min += get.sgn(player.getEquips("shanrangzhaoshu").length);
|
||
if (player.countCards("he") > min) list.push(`交给${get.translation(target)}一张牌`);
|
||
if (target.countCards("he") > 0)
|
||
list.push(`令${get.translation(target)}交给你一张牌`);
|
||
event.list = list;
|
||
if (list.length == 0) event.goto(4);
|
||
else if (list.length == 1) event._result = { index: 0 };
|
||
else
|
||
player
|
||
.chooseControl("cancel2")
|
||
.set("choiceList", list)
|
||
.set("prompt", get.prompt("shanrangzhaoshu", target))
|
||
.set("ai", function () {
|
||
if (
|
||
get.attitude(_status.event.player, _status.event.getParent().target) <
|
||
0
|
||
)
|
||
return 1;
|
||
return "cancel2";
|
||
});
|
||
} else event.goto(4);
|
||
"step 2";
|
||
if (result.control == "cancel2") {
|
||
event.goto(4);
|
||
return;
|
||
}
|
||
player.logSkill("shanrangzhaoshu", target);
|
||
if (event.list[result.index][0] == "令") {
|
||
event.gainner = player;
|
||
event.giver = target;
|
||
target.chooseCard("he", true, `交给${get.translation(player)}一张牌`);
|
||
} else {
|
||
event.giver = player;
|
||
event.gainner = target;
|
||
player
|
||
.chooseCard("he", true, `交给${get.translation(target)}一张牌`)
|
||
.set("filterCard", function (card, player) {
|
||
if (_status.event.ignoreCard) return true;
|
||
var cards = player.getEquips("shanrangzhaoshu");
|
||
if (!cards.includes(card)) return true;
|
||
return cards.some(
|
||
(cardx) => cardx != card && !ui.selected.cards.includes(cardx)
|
||
);
|
||
})
|
||
.set("ignoreCard", player.hasSkill("shanrangzhaoshu", null, false));
|
||
}
|
||
"step 3";
|
||
if (result.cards && result.cards.length) event.giver.give(result.cards, event.gainner);
|
||
"step 4";
|
||
if (targets.length > 0) event.goto(1);
|
||
},
|
||
},
|
||
lingsheji: {
|
||
trigger: { player: "phaseUseEnd" },
|
||
equipSkill: true,
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
var list = ["摸一张牌"];
|
||
if (player.countCards("he") > 1) list.push("将一张牌置于武将牌上,于回合结束后获得之");
|
||
player
|
||
.chooseControl("cancel2")
|
||
.set("prompt", get.prompt("lingsheji"))
|
||
.set("choiceList", list)
|
||
.set("ai", function () {
|
||
var player = _status.event.player;
|
||
if (
|
||
player.countCards("e", function (card) {
|
||
return card.name != "tengjia" && get.value(card) <= 0;
|
||
})
|
||
)
|
||
return 1;
|
||
if (!player.needsToDiscard()) return 0;
|
||
return 1;
|
||
});
|
||
"step 1";
|
||
if (result.control == "cancel2") {
|
||
event.finish();
|
||
return;
|
||
}
|
||
player.logSkill("lingsheji");
|
||
if (result.index == 0) {
|
||
player.draw();
|
||
event.finish();
|
||
} else {
|
||
player
|
||
.chooseCard("he", true, function (card, player) {
|
||
return card != player.getEquip(5);
|
||
})
|
||
.set("ai", function (card) {
|
||
if (get.position(card) == "e" && get.value(card) <= 0) return 10;
|
||
return (get.position(card) == "h" ? 2 : 1) * -get.value(card);
|
||
});
|
||
}
|
||
"step 2";
|
||
player.addSkill("lingsheji2");
|
||
player.lose(result.cards, ui.special, "toStorage");
|
||
player.markAuto("lingsheji2", result.cards);
|
||
},
|
||
},
|
||
lingsheji2: {
|
||
trigger: { player: "phaseEnd" },
|
||
equipSkill: true,
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.gain(player.getStorage("lingsheji2"), "gain2", "log");
|
||
player.storage.lingsheji2.length = 0;
|
||
player.removeSkill("lingsheji2");
|
||
},
|
||
intro: { content: "cards" },
|
||
},
|
||
noda_axe: {
|
||
trigger: { player: "useCardToPlayered" },
|
||
equipSkill: true,
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
player.isPhaseUsing() &&
|
||
player != event.target &&
|
||
event.targets.length == 1 &&
|
||
player.countCards("he") > 2
|
||
);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player
|
||
.chooseToDiscard(
|
||
"he",
|
||
get.prompt("noda_axe", trigger.target),
|
||
2,
|
||
"弃置两张牌,令" +
|
||
get.translation(trigger.target) +
|
||
"本回合内不能使用或打出牌且防具技能无效。",
|
||
function (card, player) {
|
||
return card != player.getEquip(1);
|
||
}
|
||
)
|
||
.set("logSkill", ["noda_axe", trigger.target])
|
||
.set(
|
||
"goon",
|
||
(function (event, player) {
|
||
if (player.hasSkill("noda_axe2")) return false;
|
||
if (event.getParent().excluded.includes(player)) return false;
|
||
if (get.attitude(event.player, player) > 0) {
|
||
return false;
|
||
}
|
||
if (get.type(event.card) == "trick" && event.player.hasWuxie()) return true;
|
||
if (get.tag(event.card, "respondSha")) {
|
||
if (!player.hasSha()) return false;
|
||
return true;
|
||
} else if (get.tag(event.card, "respondShan")) {
|
||
if (!player.hasShan()) return false;
|
||
return true;
|
||
}
|
||
return false;
|
||
})(trigger, trigger.target)
|
||
)
|
||
.set("ai", function (card) {
|
||
if (_status.event.goon) return 7.5 - get.value(card);
|
||
return 0;
|
||
});
|
||
"step 1";
|
||
if (result.bool) trigger.target.addTempSkill("noda_axe2");
|
||
},
|
||
},
|
||
noda_axe2: {
|
||
equipSkill: true,
|
||
mod: {
|
||
cardEnabled: function () {
|
||
return false;
|
||
},
|
||
cardSavable: function () {
|
||
return false;
|
||
},
|
||
cardRespondable: function () {
|
||
return false;
|
||
},
|
||
},
|
||
mark: true,
|
||
intro: {
|
||
content: "不能使用或打出牌且防具技能无效直到回合结束",
|
||
},
|
||
ai: { unequip2: true },
|
||
},
|
||
iwasawa_crowbow: {
|
||
equipSkill: true,
|
||
trigger: {
|
||
player: "loseAfter",
|
||
global: [
|
||
"equipAfter",
|
||
"addJudgeAfter",
|
||
"gainAfter",
|
||
"loseAsyncAfter",
|
||
"addToExpansionAfter",
|
||
],
|
||
},
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
var evt = event.getl(player);
|
||
return evt && evt.hs && evt.hs.length > 1 && player.isPhaseUsing();
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var evt = trigger.getl(player);
|
||
event.num = evt.hs.length;
|
||
player
|
||
.chooseTarget(
|
||
get.prompt("iwasawa_crowbow"),
|
||
"弃置一名其他角色的" + get.cnNumber(event.num) + "张牌",
|
||
function (card, player, target) {
|
||
return player != target && target.countDiscardableCards(player, "he") > 0;
|
||
}
|
||
)
|
||
.set("ai", function (target) {
|
||
var att = get.attitude(_status.event.player, target);
|
||
if (
|
||
target.countDiscardableCards(_status.event.player, "he") >=
|
||
_status.event.getParent().num
|
||
)
|
||
att = att * 2;
|
||
return -att;
|
||
});
|
||
"step 1";
|
||
if (result.bool) {
|
||
var target = result.targets[0];
|
||
player.logSkill("iwasawa_crowbow", target);
|
||
player.discardPlayerCard(target, "he", true, num);
|
||
}
|
||
},
|
||
},
|
||
boss_panguan: {
|
||
mod: {
|
||
targetEnabled: function (card) {
|
||
if (get.type(card) == "delay") return false;
|
||
},
|
||
},
|
||
},
|
||
boss_juhun: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.filterPlayer(function (current) {
|
||
return current != player;
|
||
});
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target[["turnOver", "link"].randomGet()]();
|
||
}
|
||
},
|
||
},
|
||
boss_wangxiang: {
|
||
trigger: { player: "die" },
|
||
forced: true,
|
||
forceDie: true,
|
||
content: function () {
|
||
game.countPlayer(function (current) {
|
||
if (current != player && current.countCards("e")) {
|
||
player.line(current);
|
||
current.discard(current.getCards("e"));
|
||
}
|
||
});
|
||
},
|
||
},
|
||
boss_xhuanren: {
|
||
nobracket: true,
|
||
global: "boss_xhuanren2",
|
||
},
|
||
boss_xhuanren2: {
|
||
trigger: { player: "dieBegin" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
charlotte: true,
|
||
silent: true,
|
||
popup: false,
|
||
filter: function (event, player) {
|
||
if (lib.config.mode != "boss") return false;
|
||
if (_status.shidianyanluo_level == undefined) return false;
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
var next = game.createEvent("shidianyanluo_huanren", false, trigger.getParent());
|
||
next.player = player;
|
||
next.forceDie = true;
|
||
next.setContent(lib.skill.boss_xhuanren2.contentx);
|
||
},
|
||
contentx: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
var list = [
|
||
["boss_chujiangwang", "boss_songdiwang", "boss_wuguanwang", "boss_yanluowang"],
|
||
["boss_bianchengwang", "boss_taishanwang", "boss_dushiwang", "boss_pingdengwang"],
|
||
["boss_zhuanlunwang"],
|
||
][_status.shidianyanluo_level];
|
||
if (list.length == 1) event._result = { control: list[0] };
|
||
else
|
||
player
|
||
.chooseControl(list)
|
||
.set("prompt", "请选择下一个出战的角色")
|
||
.set("forceDie", true).ai = function () {
|
||
return list.randomGet();
|
||
};
|
||
"step 2";
|
||
_status.shidianyanluo_level++;
|
||
game.changeBoss(result.control);
|
||
},
|
||
},
|
||
boss_newhuanren: {
|
||
nobracket: true,
|
||
global: "boss_newhuanren2",
|
||
trigger: { global: "gameStart" },
|
||
popup: false,
|
||
forced: true,
|
||
superCharlotte: true,
|
||
charlotte: true,
|
||
fixed: true,
|
||
content: function () {
|
||
if (get.mode() != "boss") return;
|
||
//孟婆
|
||
if (!_status.shidianyanluo_mengpo && Math.random() <= 0.4) {
|
||
if (game.me != game.boss) {
|
||
game.boss.changeSeat(6);
|
||
} else {
|
||
game.boss.nextSeat.changeSeat(3);
|
||
game.boss.previousSeat.changeSeat(5);
|
||
}
|
||
// game.addBossFellow(game.me==game.boss?1:7,'boss_mengpo');
|
||
var fellow = game.addFellow(
|
||
game.me == game.boss ? 1 : 7,
|
||
"boss_mengpo",
|
||
"zoominanim"
|
||
);
|
||
if (_status.shidianyanluo_level != 0) {
|
||
fellow.directgain(get.cards(4));
|
||
}
|
||
fellow.side = true;
|
||
fellow.identity = "zhong";
|
||
fellow.setIdentity("zhong");
|
||
game.addVideo("setIdentity", fellow, "zhong");
|
||
_status.shidianyanluo_mengpo = true;
|
||
}
|
||
var list = [
|
||
"luxun",
|
||
"re_luxun",
|
||
"zhangchunhua",
|
||
"zuoci",
|
||
"re_zuoci",
|
||
"re_yuji",
|
||
"xin_yuji",
|
||
"jiangfei",
|
||
"kongrong",
|
||
]; //禁将
|
||
game.countPlayer(function (current) {
|
||
if (current != game.boss) {
|
||
for (var i = 0; i < list.length; i++) {
|
||
if (current.name == list[i] || current.name2 == list[i]) {
|
||
current.init(["sunce", "re_sunce", "shen_sunce", "sb_sunce"].randomGet());
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
},
|
||
boss_newhuanren2: {
|
||
trigger: { global: ["die"] },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
charlotte: true,
|
||
silent: true,
|
||
popup: false,
|
||
forceDie: true,
|
||
filter: function (event, player) {
|
||
if (lib.config.mode != "boss") return false;
|
||
if (_status.shidianyanluo_level == undefined) return false;
|
||
return player == game.boss && event.player == player;
|
||
},
|
||
content: function () {
|
||
var next = game.createEvent("shidianyanluo_huanren", false, trigger.getParent());
|
||
next.player = player;
|
||
next.forceDie = true;
|
||
next.setContent(lib.skill.boss_newhuanren2.contentx);
|
||
},
|
||
contentx: function () {
|
||
"step 0";
|
||
game.delay();
|
||
var list = game.filterPlayer();
|
||
for (var x = 0; x < list.length; x++) {
|
||
list[x].removeSkill("diaohulishan");
|
||
list[x].removeSkill("guogong2");
|
||
}
|
||
var list = game.boss.getEnemies();
|
||
for (var x = 0; x < list.length; x++) {
|
||
list[x].removeSkill("boss_wangshi2");
|
||
}
|
||
"step 1";
|
||
var list = [
|
||
["boss_chujiangwang", "boss_songdiwang", "boss_wuguanwang", "boss_yanluowang"],
|
||
["boss_bianchengwang", "boss_taishanwang", "boss_dushiwang", "boss_pingdengwang"],
|
||
["boss_zhuanlunwang"],
|
||
][_status.shidianyanluo_level];
|
||
//如果mengpo死亡且50回合内通过第三关,list[2]变成地藏王
|
||
if (
|
||
game.phaseNumber <= 50 &&
|
||
_status.shidianyanluo_level == 2 &&
|
||
_status.shidianyanluo_mengpodie == true
|
||
) {
|
||
list = ["boss_dizangwang"];
|
||
}
|
||
if (list.length == 1) event._result = { control: list[0] };
|
||
else {
|
||
player
|
||
.chooseControl(list)
|
||
.set("forceDie", true)
|
||
.set("choice", list.randomGet())
|
||
.set("ai", function () {
|
||
return _status.event.choice;
|
||
}).prompt = "选择下一个登场的武将";
|
||
}
|
||
"step 2";
|
||
_status.shidianyanluo_level++;
|
||
game.changeBoss(result.control);
|
||
//地藏王登场摸3
|
||
if (result.control == "boss_dizangwang") {
|
||
game.boss.draw(3);
|
||
}
|
||
//计回合数
|
||
var level = _status.shidianyanluo_level;
|
||
//孟婆
|
||
if (!_status.shidianyanluo_mengpo) {
|
||
if (Math.random() <= 0.5 || level == 2) {
|
||
if (game.me != game.boss) {
|
||
game.boss.changeSeat(6);
|
||
} else {
|
||
game.boss.nextSeat.changeSeat(3);
|
||
game.boss.previousSeat.changeSeat(5);
|
||
}
|
||
//game.addBossFellow();
|
||
var fellow = game.addFellow(
|
||
game.me == game.boss ? 1 : 7,
|
||
"boss_mengpo",
|
||
"zoominanim"
|
||
);
|
||
if (_status.shidianyanluo_level != 0) {
|
||
fellow.directgain(get.cards(4));
|
||
}
|
||
fellow.side = true;
|
||
fellow.identity = "zhong";
|
||
fellow.setIdentity("zhong");
|
||
game.addVideo("setIdentity", fellow, "zhong");
|
||
_status.shidianyanluo_mengpo = true;
|
||
}
|
||
} else {
|
||
//移除孟婆
|
||
game.countPlayer2(function (current) {
|
||
if (current.name == "boss_mengpo") {
|
||
current.removed = true;
|
||
current.classList.add("dead");
|
||
current.remove();
|
||
game.players.remove(current);
|
||
}
|
||
});
|
||
}
|
||
//然后是boss进行回合
|
||
game.phaseLoop(game.boss);
|
||
},
|
||
},
|
||
boss_bingfeng: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
filter: function (event) {
|
||
return event.source && !event.source.isTurnedOver();
|
||
},
|
||
logTarget: "source",
|
||
content: function () {
|
||
trigger.source.turnOver();
|
||
},
|
||
},
|
||
boss_heisheng: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
content: function () {
|
||
player.line(game.players.slice(0));
|
||
game.countPlayer(function (current) {
|
||
if (current != player) current.link();
|
||
});
|
||
},
|
||
},
|
||
boss_shengfu: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
var list = [];
|
||
game.countPlayer(function (current) {
|
||
if (current == player) return;
|
||
var es = current.getCards("e", { subtype: ["equip3", "equip4", "equip6"] });
|
||
if (es.length) list.push([current, es]);
|
||
});
|
||
if (list.length) {
|
||
player.logSkill("boss_heisheng");
|
||
var current = list.randomGet();
|
||
player.line(current[0]);
|
||
current[0].discard(current[1].randomGet());
|
||
}
|
||
},
|
||
},
|
||
boss_zhiwang: {
|
||
derivation: "boss_zhiwang_planetarian",
|
||
trigger: { global: "gainEnd" },
|
||
filter: function (event, player) {
|
||
return (
|
||
event.player != player &&
|
||
!(event.getParent().name == "draw" && event.getParent(2).name == "phaseDraw") &&
|
||
event.player.countCards("h")
|
||
);
|
||
},
|
||
forced: true,
|
||
logTarget: "player",
|
||
content: function () {
|
||
var evt = trigger.getParent("boss_zhiwang");
|
||
if (evt && evt.name == "boss_zhiwang") {
|
||
trigger.player.uninit();
|
||
trigger.player.init("sunce");
|
||
}
|
||
var hs = trigger.player.getCards("h");
|
||
if (hs.length) {
|
||
trigger.player.discard(hs.randomGet());
|
||
}
|
||
},
|
||
subSkill: { planetarian: {} },
|
||
},
|
||
boss_gongzheng: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.countCards("j") > 0;
|
||
},
|
||
content: function () {
|
||
player.discard(player.getCards("j").randomGet());
|
||
},
|
||
},
|
||
boss_xuechi: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.loseHp(2);
|
||
},
|
||
},
|
||
boss_tiemian: {
|
||
inherit: "renwang_skill",
|
||
priority: -0.3,
|
||
equipSkill: false,
|
||
filter: function (event, player) {
|
||
if (!player.hasEmptySlot(2)) return false;
|
||
return lib.skill.renwang_skill.filter.apply(this, arguments);
|
||
},
|
||
},
|
||
boss_zhadao: {
|
||
inherit: "qinggang_skill",
|
||
equipSkill: false,
|
||
},
|
||
boss_zhuxin: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
content: function () {
|
||
"step 0";
|
||
player
|
||
.chooseTarget(
|
||
"【诛心】:请选择一名角色,令其受到2点伤害。",
|
||
function (card, player, target) {
|
||
return (
|
||
target != player &&
|
||
!game.hasPlayer(function (current) {
|
||
return (
|
||
current != player && current != target && current.hp < target.hp
|
||
);
|
||
})
|
||
);
|
||
}
|
||
)
|
||
.set("forceDie", true).ai = function (target) {
|
||
return -get.attitude(_status.event.player, target);
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
var target = result.targets[0];
|
||
player.line(target);
|
||
target.damage(2);
|
||
}
|
||
},
|
||
},
|
||
boss_leizhou: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.damage("thunder");
|
||
}
|
||
},
|
||
},
|
||
boss_leifu: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.link();
|
||
}
|
||
},
|
||
},
|
||
boss_leizhu: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
list.sort(lib.sort.seat);
|
||
player.line(list);
|
||
for (var i = 0; i < list.length; i++) {
|
||
list[i].damage("thunder");
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_fudu: {
|
||
trigger: { global: "useCard" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return event.card.name == "tao" && event.player != player && game.players.length > 2;
|
||
},
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
list.remove(trigger.player);
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.loseHp();
|
||
},
|
||
},
|
||
boss_kujiu: {
|
||
trigger: { global: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return event.player != player;
|
||
},
|
||
logTarget: "player",
|
||
content: function () {
|
||
"step 0";
|
||
trigger.player.loseHp();
|
||
"step 1";
|
||
trigger.player.useCard({ name: "jiu" }, trigger.player);
|
||
},
|
||
},
|
||
boss_renao: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.damage(3, "fire");
|
||
}
|
||
},
|
||
},
|
||
boss_remen: {
|
||
equipSkill: true,
|
||
trigger: { target: ["useCardToBefore"] },
|
||
forced: true,
|
||
priority: 6,
|
||
audio: true,
|
||
filter: function (event, player) {
|
||
if (!player.hasEmptySlot("equip2")) return false;
|
||
if (event.card.name == "nanman") return true;
|
||
if (event.card.name == "wanjian") return true;
|
||
return event.card.name == "sha" && !game.hasNature(event.card);
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (!target.hasEmptySlot("equip2")) return;
|
||
if (card.name == "nanman" || card.name == "wanjian") return "zerotarget";
|
||
if (card.name == "sha") {
|
||
var equip1 = player.getEquip(1);
|
||
if (equip1 && equip1.name == "zhuque") return 1.9;
|
||
if (!game.hasNature(card)) return "zerotarget";
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_zhifen: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
"step 0";
|
||
var list = game.filterPlayer();
|
||
list.remove(player);
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
event.target = target;
|
||
if (target.countGainableCards(player, "h")) player.gainPlayerCard(target, "h", true);
|
||
} else event.finish();
|
||
"step 1";
|
||
target.damage("fire");
|
||
},
|
||
},
|
||
|
||
boss_huoxing: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
list.sort(lib.sort.seat);
|
||
player.line(list);
|
||
for (var i = 0; i < list.length; i++) {
|
||
list[i].damage("fire");
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_suozu: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
list.sort(lib.sort.seat);
|
||
player.line(list);
|
||
for (var i = 0; i < list.length; i++) {
|
||
list[i].link();
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_abi: {
|
||
trigger: { player: "damageEnd" },
|
||
forced: true,
|
||
filter: function (event) {
|
||
return event.source != undefined;
|
||
},
|
||
logTarget: "source",
|
||
content: function () {
|
||
trigger.source.damage().nature = ["fire", "thunder"].randomGet();
|
||
},
|
||
},
|
||
boss_pingdeng: {
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
forced: true,
|
||
content: function () {
|
||
"step 0";
|
||
var list = game.filterPlayer(function (current) {
|
||
return (
|
||
current != player &&
|
||
!game.hasPlayer(function (current2) {
|
||
return current2.hp > current.hp;
|
||
})
|
||
);
|
||
});
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.damage(2).nature = lib.linked.randomGet();
|
||
} else event.finish();
|
||
"step 1";
|
||
var list = game.filterPlayer(function (current) {
|
||
return (
|
||
current != player &&
|
||
!game.hasPlayer(function (current2) {
|
||
return current2.hp > current.hp;
|
||
})
|
||
);
|
||
});
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.damage().nature = lib.linked.randomGet();
|
||
}
|
||
},
|
||
},
|
||
boss_lunhui: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
player.hp <= 2 &&
|
||
game.hasPlayer(function (current) {
|
||
return current != player && current.hp > 2;
|
||
})
|
||
);
|
||
},
|
||
content: function () {
|
||
var list = game.filterPlayer(function (current) {
|
||
return current != player && current.hp > 2;
|
||
});
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
var hp1 = player.hp;
|
||
var hp2 = target.hp;
|
||
player.hp = Math.min(player.maxHp, hp2);
|
||
target.hp = Math.min(target.maxHp, hp1);
|
||
player.update();
|
||
target.update();
|
||
game.log(player, "和", target, "交换了体力值");
|
||
}
|
||
},
|
||
},
|
||
boss_wangsheng: {
|
||
trigger: { player: "phaseUseBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var name = ["nanman", "wanjian"].randomGet();
|
||
player.useCard(
|
||
{ name: name },
|
||
game.filterPlayer(function (current) {
|
||
return player.canUse({ name: name }, current);
|
||
}),
|
||
"noai"
|
||
);
|
||
},
|
||
},
|
||
boss_zlfanshi: {
|
||
trigger: { player: "damageEnd" },
|
||
forced: true,
|
||
content: function () {
|
||
if (player.hasSkill("boss_zlfanshi_terra")) {
|
||
var list = game.players.slice(0);
|
||
list.remove(player);
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target);
|
||
target.damage();
|
||
}
|
||
} else player.addTempSkill("boss_zlfanshi_terra");
|
||
},
|
||
},
|
||
boss_zlfanshi_terra: { charlotte: true },
|
||
//孟婆:
|
||
boss_shiyou: {
|
||
audio: true,
|
||
trigger: { global: "loseAfter" },
|
||
filter: function (event, player) {
|
||
var evt = event.getParent(3);
|
||
return (
|
||
event.type == "discard" &&
|
||
evt.name == "phaseDiscard" &&
|
||
evt.player == event.player &&
|
||
evt.player != player &&
|
||
event.cards2 &&
|
||
event.cards2.filterInD("d").length > 0
|
||
);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.cards = trigger.cards2.filterInD("d");
|
||
"step 1";
|
||
var next = player
|
||
.chooseCardButton(get.prompt("boss_shiyou"), event.cards, [1, event.cards.length])
|
||
.set("ai", function (button) {
|
||
return get.value(button.link, player);
|
||
})
|
||
.set("filterButton", function (button) {
|
||
for (var i = 0; i < ui.selected.buttons.length; i++) {
|
||
if (get.suit(ui.selected.buttons[i].link) == get.suit(button.link))
|
||
return false;
|
||
}
|
||
return true;
|
||
});
|
||
"step 2";
|
||
if (result.bool) {
|
||
player.gain(result.links, "gain2", "log");
|
||
}
|
||
},
|
||
},
|
||
boss_wangshi: {
|
||
trigger: { global: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
audio: true,
|
||
filter: function (event, player) {
|
||
if (player.getEnemies().includes(event.player)) {
|
||
return true;
|
||
}
|
||
return false;
|
||
},
|
||
logTarget: "player",
|
||
content: function () {
|
||
var list = ["basic", "trick", "equip"].randomGet();
|
||
trigger.player.addTempSkill("boss_wangshi2");
|
||
trigger.player.storage.boss_wangshi2 = [list];
|
||
game.log(trigger.player, "本回合不能使用或打出", list, "牌");
|
||
trigger.player.markSkill("boss_wangshi2");
|
||
},
|
||
},
|
||
boss_wangshi2: {
|
||
unique: true,
|
||
charlotte: true,
|
||
intro: {
|
||
content: function (storage) {
|
||
return "不能使用或打出" + get.translation(storage) + "牌";
|
||
},
|
||
},
|
||
init: function (player, skill) {
|
||
if (!player.storage[skill]) player.storage[skill] = [];
|
||
},
|
||
//mark:true,
|
||
onremove: true,
|
||
mod: {
|
||
cardEnabled2: function (card, player) {
|
||
if (player.storage.boss_wangshi2.includes(get.type(card, "trick"))) return false;
|
||
},
|
||
},
|
||
},
|
||
boss_mengpohuihun1: {
|
||
mode: ["boss"],
|
||
trigger: {
|
||
player: "loseEnd",
|
||
global: "cardsDiscardEnd",
|
||
},
|
||
filter: function (event, player) {
|
||
for (var i = 0; i < event.cards.length; i++) {
|
||
if (
|
||
event.cards[i].name == "boss_mengpohuihun" &&
|
||
get.position(event.cards[i], true) == "d"
|
||
) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
var cards = [];
|
||
for (var i = 0; i < trigger.cards.length; i++) {
|
||
if (
|
||
trigger.cards[i].name == "boss_mengpohuihun" &&
|
||
get.position(trigger.cards[i]) == "d"
|
||
) {
|
||
cards.push(trigger.cards[i]);
|
||
}
|
||
}
|
||
if (cards.length) {
|
||
game.cardsGotoSpecial(cards);
|
||
game.log(cards, "已被移出游戏");
|
||
player.popup("回魂");
|
||
}
|
||
},
|
||
},
|
||
boss_wanghun: {
|
||
audio: true,
|
||
forced: true,
|
||
trigger: { player: "die" },
|
||
forceDie: true,
|
||
content: function () {
|
||
_status.shidianyanluo_mengpodie = true;
|
||
var list = player.getEnemies();
|
||
if (list.length > 0) {
|
||
for (var x = 0; x < list.length; x++) {
|
||
list[x].removeSkill("boss_wangshi2");
|
||
}
|
||
var ran1 = list.randomGet(); //第一个角色
|
||
list.remove(ran1); //移除
|
||
var skills1 = ran1.getSkills(true, false);
|
||
if (skills1.length) {
|
||
for (var i = 0; i < skills1.length; i++) {
|
||
//排除技能,然后随机失去一个可以失去的技能
|
||
if (
|
||
get.skills[i] ||
|
||
lib.skill[skills1[i]].charlotte ||
|
||
!lib.translate[skills1[i] + "_info"] ||
|
||
lib.skill[skills1[i]].zhuSkill == true
|
||
) {
|
||
skills1.splice(i--, 1);
|
||
}
|
||
}
|
||
if (skills1.length > 0) {
|
||
skills1 = skills1.randomGet();
|
||
ran1.disableSkill("boss_wanghun", skills1);
|
||
game.log(ran1, "失去了", skills1);
|
||
} else {
|
||
game.log(ran1, "没有技能可失去");
|
||
}
|
||
}
|
||
if (list.length > 0) {
|
||
var ran2 = list.randomGet(); //第二个角色
|
||
list.remove(ran2); //移除
|
||
var skills2 = ran2.getSkills(true, false);
|
||
if (skills2.length) {
|
||
for (var i = 0; i < skills2.length; i++) {
|
||
//排除技能,然后随机失去一个可以失去的技能
|
||
if (
|
||
get.skills[i] ||
|
||
lib.skill[skills2[i]].charlotte ||
|
||
!lib.translate[skills2[i] + "_info"] ||
|
||
lib.skill[skills2[i]].zhuSkill == true
|
||
) {
|
||
skills2.splice(i--, 1);
|
||
}
|
||
}
|
||
if (skills2.length > 0) {
|
||
skills2 = skills2.randomGet();
|
||
ran2.disableSkill("boss_wanghun", skills2);
|
||
game.log(ran2, "失去了", skills2);
|
||
} else {
|
||
game.log(ran2, "没有技能可失去");
|
||
}
|
||
}
|
||
}
|
||
//添加两张回魂
|
||
if (get.mode() == "boss") {
|
||
var card1 = game.createCard("boss_mengpohuihun", "heart", 3, null);
|
||
var card2 = game.createCard("boss_mengpohuihun", "club", 4, null);
|
||
var a = [];
|
||
if (ui.cardPile.childElementCount < 3) {
|
||
game.boss.getCards(4);
|
||
}
|
||
for (var i = 0; i < ui.cardPile.childElementCount; i++) {
|
||
a.push(i);
|
||
}
|
||
ui.cardPile.insertBefore(card1, ui.cardPile.childNodes[a.randomGet()]);
|
||
a.push(a.length);
|
||
ui.cardPile.insertBefore(card2, ui.cardPile.childNodes[a.randomGet()]);
|
||
game.log("牌堆中添加了", card1, card2);
|
||
game.updateRoundNumber();
|
||
}
|
||
}
|
||
},
|
||
},
|
||
//地藏王:
|
||
boss_bufo: {
|
||
audio: true,
|
||
forced: true,
|
||
trigger: {
|
||
player: ["damageBegin4", "phaseZhunbeiBegin"],
|
||
},
|
||
filter: function (event, player, name) {
|
||
if (name == "damageBegin4") {
|
||
return event.num && event.num > 1;
|
||
}
|
||
return game.hasPlayer(function (target) {
|
||
return player != target && get.distance(player, target) <= 1;
|
||
});
|
||
},
|
||
content: function () {
|
||
var name = event.triggername;
|
||
if (name == "damageBegin4") {
|
||
trigger.num--;
|
||
} else {
|
||
game.countPlayer(function (target) {
|
||
if (player != target && get.distance(player, target) <= 1) {
|
||
target.damage(1, player, "fire");
|
||
}
|
||
});
|
||
}
|
||
},
|
||
},
|
||
boss_wuliang: {
|
||
forced: true,
|
||
audio: true,
|
||
trigger: {
|
||
global: "gameDrawAfter",
|
||
player: ["phaseZhunbeiBegin", "phaseJieshuBegin", "enterGame"],
|
||
},
|
||
filter: function (event, player, name) {
|
||
if (name == "gameDrawAfter" || name == "enterGame") {
|
||
return true;
|
||
} else if (name == "phaseZhunbeiBegin") {
|
||
return player.hp < 3;
|
||
}
|
||
return true;
|
||
},
|
||
content: function () {
|
||
var name = event.triggername;
|
||
if (name == "phaseZhunbeiBegin") {
|
||
player.recover(3 - player.hp);
|
||
} else {
|
||
player.draw(name == "gameDrawAfter" || name == "enterGame" ? 3 : 2);
|
||
}
|
||
},
|
||
},
|
||
boss_dayuan: {
|
||
trigger: {
|
||
global: "judge",
|
||
},
|
||
audio: true,
|
||
direct: true,
|
||
lastDo: true,
|
||
content: function () {
|
||
"step 0";
|
||
var card = trigger.player.judging[0];
|
||
var judge0 = trigger.judge(card);
|
||
var judge1 = 0;
|
||
var choice = "cancel2";
|
||
event.suitchoice = "cancel2";
|
||
var attitude = get.attitude(player, trigger.player);
|
||
var list = [];
|
||
event.suitx = ["heart", "diamond", "club", "spade"];
|
||
for (var x = 0; x < 4; x++) {
|
||
for (var i = 1; i < 14; i++) {
|
||
list.add(i);
|
||
var judge2 =
|
||
(trigger.judge({
|
||
name: get.name(card),
|
||
suit: event.suitx[x],
|
||
number: i,
|
||
nature: get.nature(card),
|
||
}) -
|
||
judge0) *
|
||
attitude;
|
||
if (judge2 > judge1) {
|
||
choice = i;
|
||
event.suitchoice = event.suitx[x];
|
||
judge1 = judge2;
|
||
}
|
||
}
|
||
}
|
||
list.push("cancel2");
|
||
event.suitx.push("cancel2");
|
||
player
|
||
.chooseControl(list)
|
||
.set("ai", function () {
|
||
return _status.event.choice;
|
||
})
|
||
.set("choice", choice).prompt = get.prompt2(event.name);
|
||
"step 1";
|
||
if (result.control != "cancel2") {
|
||
if (!event.logged) {
|
||
event.logged = true;
|
||
player.logSkill(event.name, trigger.player);
|
||
}
|
||
game.log(trigger.player, "判定结果点数为", "#g" + result.control);
|
||
player.popup(result.control, "fire");
|
||
if (!trigger.fixedResult) trigger.fixedResult = {};
|
||
trigger.fixedResult.number = result.control;
|
||
}
|
||
player
|
||
.chooseControl(event.suitx)
|
||
.set("ai", function () {
|
||
return _status.event.choice;
|
||
})
|
||
.set("choice", event.suitchoice).prompt = get.prompt2(event.name);
|
||
"step 2";
|
||
if (result.control != "cancel2") {
|
||
if (!event.logged) {
|
||
event.logged = true;
|
||
player.logSkill(event.name, trigger.player);
|
||
}
|
||
game.log(trigger.player, "判定结果花色为", "#g" + result.control);
|
||
player.popup(result.control, "fire");
|
||
if (!trigger.fixedResult) trigger.fixedResult = {};
|
||
trigger.fixedResult.suit = result.control;
|
||
if (result.control == "club" || result.control == "spade") {
|
||
trigger.fixedResult.color = "black";
|
||
} else if (result.control == "heart" || result.control == "diamond") {
|
||
trigger.fixedResult.color = "red";
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_diting: {
|
||
audio: true,
|
||
mod: {
|
||
globalFrom: function (from, to, distance) {
|
||
return distance - 1;
|
||
},
|
||
globalTo: function (from, to, distance) {
|
||
return distance + 1;
|
||
},
|
||
},
|
||
enable: "phaseUse",
|
||
position: "h",
|
||
filter: function (event, player) {
|
||
return player.countCards("he", { subtype: ["equip3", "equip4", "equip6"] }) > 0;
|
||
},
|
||
filterCard: function (card) {
|
||
return (
|
||
get.subtype(card) == "equip3" ||
|
||
get.subtype(card) == "equip4" ||
|
||
get.subtype(card) == "equip6"
|
||
);
|
||
},
|
||
check: function (card) {
|
||
if (_status.event.player.isDisabled(get.subtype(card))) return 5;
|
||
return 3 - get.value(card);
|
||
},
|
||
content: function () {
|
||
player.draw();
|
||
},
|
||
discard: false,
|
||
visible: true,
|
||
loseTo: "discardPile",
|
||
prompt: "将一张坐骑牌置入弃牌堆并摸一张牌",
|
||
delay: 0.5,
|
||
prepare: function (cards, player) {
|
||
player.$throw(cards, 1000);
|
||
game.log(player, "将", cards, "置入了弃牌堆");
|
||
},
|
||
ai: {
|
||
order: 10,
|
||
result: {
|
||
player: 1,
|
||
},
|
||
},
|
||
group: "boss_diting_init",
|
||
subSkill: {
|
||
init: {
|
||
trigger: {
|
||
global: "gameStart",
|
||
player: "enterGame",
|
||
},
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.hasEnabledSlot(3) || player.hasEnabledSlot(4);
|
||
},
|
||
content: function () {
|
||
var disables = [];
|
||
for (var i = 3; i <= 4; i++) {
|
||
for (var j = 0; j < player.countEnabledSlot(i); j++) {
|
||
disables.push(i);
|
||
}
|
||
}
|
||
if (disables.length > 0) player.disableEquip(disables);
|
||
},
|
||
},
|
||
},
|
||
},
|
||
/*
|
||
"boss_sdyl_level":{
|
||
trigger:{global:'gameStart'},
|
||
forced:true,
|
||
superCharlotte:true,
|
||
charlotte:true,
|
||
fixed:true,
|
||
content:function(){},
|
||
contentplayer:function(player){
|
||
var list=[1,2,3,4,5];
|
||
var list2=["boss_sdyl_playerlevel1","boss_sdyl_playerlevel2","boss_sdyl_playerlevel3","boss_sdyl_playerlevel4","boss_sdyl_playerlevel5"];
|
||
player.removeAdditionalSkill('boss_sdyl_level');
|
||
var num=list.randomGet();
|
||
player.storage.boss_sdyl_level=num;
|
||
var list3=list2.concat();
|
||
list3.length=num;
|
||
player.addAdditionalSkill('boss_sdyl_level',list3);
|
||
game.log(player,'的等阶为',num);
|
||
if(num>1){
|
||
var a=function(card){
|
||
return get.type(card)=='equip';
|
||
};
|
||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||
if(a(ui.cardPile.childNodes[i])){
|
||
player.chooseUseTarget(ui.cardPile.childNodes[i],'noanimate','nopopup',true);
|
||
ui.cardPile.removeChild(ui.cardPile.childNodes[i]);
|
||
player.update();
|
||
game.delay(2);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
contentboss:function(boss){
|
||
var list=[1,2,3,4,5];
|
||
var list2=["boss_sdyl_bosslevel1","boss_sdyl_bosslevel2","boss_sdyl_bosslevel3","boss_sdyl_bosslevel4","boss_sdyl_bosslevel5"];
|
||
boss.removeAdditionalSkill('boss_sdyl_level');
|
||
var num=list.randomGet();
|
||
boss.storage.boss_sdyl_level=num;
|
||
var list3=list2.concat();
|
||
list3.length=num;
|
||
boss.addAdditionalSkill('boss_sdyl_level',list3);
|
||
game.log(boss,'的等阶为',num);
|
||
if(num>1){
|
||
var a=function(card){
|
||
return get.type(card)=='equip';
|
||
};
|
||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||
if(a(ui.cardPile.childNodes[i])){
|
||
boss.chooseUseTarget(ui.cardPile.childNodes[i],'noanimate','nopopup',true);
|
||
ui.cardPile.removeChild(ui.cardPile.childNodes[i]);
|
||
boss.update();
|
||
game.delay(2);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
},
|
||
"boss_sdyl_playerlevel1":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
},
|
||
"boss_sdyl_playerlevel3":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
init:function(player){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
},
|
||
mod:{
|
||
cardUsable:function (card,player,num){
|
||
if(card.name=='sha') return num+=1;
|
||
},
|
||
},
|
||
},
|
||
"boss_sdyl_playerlevel2":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
},
|
||
"boss_sdyl_playerlevel4":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
trigger:{player:'phaseDrawBegin2'},
|
||
forced:true,
|
||
filter:function (event,player){
|
||
return !event.numFixed;
|
||
},
|
||
content:function(){
|
||
trigger.num++;
|
||
},
|
||
},
|
||
"boss_sdyl_playerlevel5":{
|
||
init:function(player){
|
||
player.storage.boss_sdyl_playerlevel5=false;
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
},
|
||
audio:'niepan',
|
||
unique:true,
|
||
enable:'chooseToUse',
|
||
mark:true,
|
||
skillAnimation:true,
|
||
animationStr:'重生',
|
||
limited:true,
|
||
animationColor:'orange',
|
||
filter:function(event,player){
|
||
if(player.storage.boss_sdyl_playerlevel5) return false;
|
||
if(event.type=='dying'){
|
||
if(player!=event.dying) return false;
|
||
return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
player.awakenSkill('boss_sdyl_playerlevel5');
|
||
player.storage.boss_sdyl_playerlevel5=true;
|
||
player.discard(player.getCards('j'));
|
||
'step 1'
|
||
player.link(false);
|
||
'step 2'
|
||
player.turnOver(false);
|
||
'step 3'
|
||
player.drawTo(Math.min(5,player.maxHp));
|
||
'step 4'
|
||
player.recover(player.maxHp-player.hp);
|
||
},
|
||
ai:{
|
||
order:1,
|
||
skillTagFilter:function(player){
|
||
if(player.storage.boss_sdyl_playerlevel5) return false;
|
||
if(player.hp>0) return false;
|
||
},
|
||
save:true,
|
||
result:{
|
||
player:function(player){
|
||
if(player.hp<=0) return 10;
|
||
if(player.hp<=2&&player.countCards('he')<=1) return 10;
|
||
return 0;
|
||
}
|
||
},
|
||
threaten:function(player,target){
|
||
if(!target.storage.boss_sdyl_playerlevel5) return 0.6;
|
||
}
|
||
},
|
||
intro:{
|
||
content:'limited'
|
||
}
|
||
},
|
||
"boss_sdyl_bosslevel1":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
},
|
||
"boss_sdyl_bosslevel3":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
init:function(player){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
},
|
||
trigger:{player:'phaseZhunbeiBegin'},
|
||
forced:true,
|
||
content:function(){
|
||
var card=get.cardPile('sha');
|
||
if(card){
|
||
player.gain(card);
|
||
}
|
||
},
|
||
mod:{
|
||
cardUsable:function (card,player,num){
|
||
if(card.name=='sha') return num+=1;
|
||
},
|
||
},
|
||
},
|
||
"boss_sdyl_bosslevel2":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
},
|
||
"boss_sdyl_bosslevel4":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
trigger:{player:'phaseDrawBegin2'},
|
||
forced:true,
|
||
filter:function (event,player){
|
||
return !event.numFixed;
|
||
},
|
||
content:function(){
|
||
trigger.num++;
|
||
},
|
||
mod:{
|
||
maxHandcard:function (player,num){
|
||
return num+=1;
|
||
},
|
||
},
|
||
},
|
||
"boss_sdyl_bosslevel5":{
|
||
fixed:true,
|
||
globalFixed:true,
|
||
charlotte:true,
|
||
silent:true,
|
||
popup:false,
|
||
forced:true,
|
||
init:function(player){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
if(_status.shidianyanluo_level&&_status.shidianyanluo_level>0){
|
||
var players=game.filterPlayer(function(current){return current!=player;});
|
||
player.useCard({name:'nanman'},false,players);
|
||
}
|
||
},
|
||
trigger:{
|
||
source:"damageBegin4",
|
||
player:"useCardAfter",
|
||
global:'gameDrawAfter',
|
||
},
|
||
filter:function (event,player,name){
|
||
if(name=='gameDrawAfter'){
|
||
if(!_status.shidianyanluo_level||_status.shidianyanluo_level==0){
|
||
var players=game.filterPlayer(function(current){return current!=player;});
|
||
player.useCard({name:'nanman'},false,players);
|
||
}
|
||
return false;
|
||
}
|
||
if(player.storage.boss_sdyl_bosslevel5) return false;
|
||
if(name=='damageBegin4'){
|
||
if(!event.card||event.card.name!='nanman') return false;
|
||
return true;
|
||
}else if(name=='useCardAfter'){
|
||
if(!event.card||event.card.name!='nanman') return false;
|
||
player.storage.boss_sdyl_bosslevel5=true;
|
||
return false;
|
||
}
|
||
},
|
||
content:function (){
|
||
trigger.num++;
|
||
},
|
||
},
|
||
*/
|
||
boss_jingjia: {},
|
||
boss_aozhan: {
|
||
forced: true,
|
||
locked: true,
|
||
charlotte: true,
|
||
group: ["boss_aozhan_wuqi", "boss_aozhan_fangju", "boss_aozhan_zuoji", "boss_aozhan_baowu"],
|
||
subSkill: {
|
||
wuqi: {
|
||
mod: {
|
||
cardUsable: function (card, player, num) {
|
||
if (player.getEquip(1) && card.name == "sha") return num + 1;
|
||
},
|
||
},
|
||
sub: true,
|
||
},
|
||
fangju: {
|
||
trigger: {
|
||
player: "damageBegin4",
|
||
},
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.getEquip(2) && event.num > 1;
|
||
},
|
||
content: function () {
|
||
trigger.num = 1;
|
||
},
|
||
sub: true,
|
||
},
|
||
zuoji: {
|
||
trigger: {
|
||
player: "phaseDrawBegin",
|
||
},
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.getEquip(3) || player.getEquip(4);
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
sub: true,
|
||
},
|
||
baowu: {
|
||
trigger: {
|
||
player: "phaseJudgeBefore",
|
||
},
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.getEquip(5);
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
game.log(player, "跳过了判定阶段");
|
||
},
|
||
sub: true,
|
||
},
|
||
},
|
||
},
|
||
|
||
boss_yaoshou: {
|
||
mod: {
|
||
globalFrom: function (from, to, distance) {
|
||
return distance - 2;
|
||
},
|
||
},
|
||
},
|
||
boss_duqu: {
|
||
trigger: { player: "damageEnd" },
|
||
filter: function (event, player) {
|
||
return event.source && !event.source.hasSkill("boss_duqu");
|
||
},
|
||
content: function () {
|
||
var target = trigger.source;
|
||
if (!target.storage.boss_shedu) target.storage.boss_shedu = 0;
|
||
target.storage.boss_shedu++;
|
||
target.markSkill("boss_shedu");
|
||
},
|
||
forced: true,
|
||
global: "boss_shedu",
|
||
mod: {
|
||
cardname: function (card, player) {
|
||
if (card.name == "tao") return "sha";
|
||
},
|
||
},
|
||
},
|
||
boss_shedu: {
|
||
trigger: { player: "phaseBegin" },
|
||
mark: true,
|
||
intro: { content: "mark" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.storage.boss_shedu && player.storage.boss_shedu > 0;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var num = player.storage.boss_shedu;
|
||
event.num = num;
|
||
var chs = get.cnNumber(num);
|
||
player.chooseToDiscard("he", num, "弃置" + chs + "张牌,或失去" + chs + "点体力").ai =
|
||
function (card) {
|
||
return 12 - get.value(card);
|
||
};
|
||
"step 1";
|
||
if (!result.bool) player.loseHp(num);
|
||
player.storage.boss_shedu--;
|
||
if (num > 1) player.markSkill("boss_shedu");
|
||
else player.unmarkSkill("boss_shedu");
|
||
},
|
||
},
|
||
boss_jiushou: {
|
||
mod: {
|
||
maxHandcard: function (player, num) {
|
||
return num - player.hp + 9;
|
||
},
|
||
},
|
||
trigger: { player: ["phaseUseBegin", "phaseJieshuBegin", "phaseDrawBegin"] },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return event.name == "phaseDraw" || player.countCards("h") < 9;
|
||
},
|
||
content: function () {
|
||
if (trigger.name == "phaseDraw") trigger.cancel();
|
||
else player.draw(9 - player.countCards("h"));
|
||
},
|
||
},
|
||
boss_echou_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_echou_switch_on", "boss_echou_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_echou_awake", "boss_echou");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_echou_awake");
|
||
player.removeSkill("boss_echou_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_echou: {
|
||
trigger: { global: "useCard" },
|
||
filter: function (event, player) {
|
||
return !event.player.hasSkill("boss_duqu") && ["tao", "jiu"].includes(event.card.name);
|
||
},
|
||
content: function () {
|
||
var target = trigger.player;
|
||
player.line(target);
|
||
if (!target.storage.boss_shedu) target.storage.boss_shedu = 0;
|
||
target.storage.boss_shedu++;
|
||
target.markSkill("boss_shedu");
|
||
},
|
||
},
|
||
boss_bingxian: {
|
||
trigger: { global: "phaseJieshuBegin" },
|
||
filter: function (event, player) {
|
||
return event.player != player && event.player.countUsed("sha", true) == 0;
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
player.useCard({ name: "sha" }, trigger.player);
|
||
},
|
||
},
|
||
boss_juyuan: {
|
||
init: function (player, skill) {
|
||
player.storage[skill] = 0;
|
||
},
|
||
trigger: { player: "phaseAfter" },
|
||
forced: true,
|
||
silent: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.storage.boss_juyuan = player.hp;
|
||
},
|
||
mod: {
|
||
selectTarget: function (card, player, range) {
|
||
if (card.name != "sha") return;
|
||
if (range[1] == -1) return;
|
||
if (player.hp >= player.storage.boss_juyuan) return;
|
||
range[1] += 2;
|
||
},
|
||
},
|
||
},
|
||
boss_xushi_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_xushi_switch_on", "boss_xushi_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_xushi_awake", "boss_xushi");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_xushi_awake");
|
||
player.removeSkill("boss_xushi_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_xushi: {
|
||
trigger: { player: ["phaseUseEnd", "turnOverEnd"] },
|
||
filter: function (event, player) {
|
||
return event.name == "phaseUse" || !player.isTurnedOver();
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
"step 0";
|
||
if (trigger.name == "phaseUse") {
|
||
player.turnOver();
|
||
event.finish();
|
||
} else {
|
||
event.list = game.filterPlayer(function (current) {
|
||
return current != player;
|
||
});
|
||
event.list.sort(lib.sort.seat);
|
||
player.line(event.list, "green");
|
||
}
|
||
"step 1";
|
||
var target = event.list.shift();
|
||
target.damage([1, 2].randomGet());
|
||
if (event.list.length) event.redo();
|
||
},
|
||
},
|
||
boss_zhaohuo: {
|
||
trigger: {
|
||
player: "damageBegin4",
|
||
source: "damageBegin1",
|
||
},
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (player == event.player) return event.hasNature("fire") || player == event.source;
|
||
return true;
|
||
},
|
||
content: function () {
|
||
if (player == trigger.player) trigger.cancel();
|
||
else game.setNature(trigger, "fire");
|
||
},
|
||
ai: {
|
||
unequip: true,
|
||
skillTagFilter: function (player) {
|
||
if (player != _status.currentPhase) return false;
|
||
},
|
||
},
|
||
},
|
||
boss_honglianx: {
|
||
mod: {
|
||
ignoredHandcard: function (card, player) {
|
||
if (get.color(card) == "red") {
|
||
return true;
|
||
}
|
||
},
|
||
cardDiscardable: function (card, player, name) {
|
||
if (name == "phaseDiscard" && get.color(card) == "red") return false;
|
||
},
|
||
},
|
||
forced: true,
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
content: function () {
|
||
"step 0";
|
||
event.num1 = 3;
|
||
event.num2 = [0, 1, 2, 3].randomGet();
|
||
event.togain = [];
|
||
while (event.togain.length < event.num2) {
|
||
var card = get.cardPile(function (card) {
|
||
return !event.togain.includes(card) && get.color(card) == "red";
|
||
});
|
||
if (card) event.togain.push(card);
|
||
else break;
|
||
}
|
||
event.num1 -= event.togain.length;
|
||
if (event.togain.length) player.gain(event.togain, "draw");
|
||
if (event.num1 == 0) event.finish();
|
||
else {
|
||
event.list = game
|
||
.filterPlayer(function (current) {
|
||
return current != player;
|
||
})
|
||
.randomGets(event.num1)
|
||
.sortBySeat();
|
||
player.line(event.list, "fire");
|
||
}
|
||
"step 1";
|
||
var target = event.list.shift();
|
||
target.damage("fire");
|
||
if (event.list.length) event.redo();
|
||
},
|
||
},
|
||
boss_yanyu_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_yanyu_switch_on", "boss_yanyu_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_yanyu_awake", "boss_yanyu");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_yanyu_awake");
|
||
player.removeSkill("boss_yanyu_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_yanyu: {
|
||
forced: true,
|
||
trigger: { global: "phaseBegin" },
|
||
filter: function (event, player) {
|
||
return player != event.player;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.count = 3;
|
||
player.line(trigger.player, "fire");
|
||
"step 1";
|
||
event.count--;
|
||
trigger.player.judge(function (card) {
|
||
if (get.color(card) == "red") return -5;
|
||
return 5;
|
||
});
|
||
"step 2";
|
||
if (!result.bool) {
|
||
trigger.player.damage("fire");
|
||
if (event.count) event.goto(1);
|
||
}
|
||
},
|
||
},
|
||
boss_fengdong: {
|
||
trigger: { player: "phaseBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
game.countPlayer(function (current) {
|
||
if (current != player) current.addTempSkill("fengyin");
|
||
});
|
||
},
|
||
},
|
||
boss_xunyou: {
|
||
trigger: { global: "phaseBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player != event.player;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var list = game.filterPlayer(function (current) {
|
||
return current != player && current.countCards("hej");
|
||
});
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target, "green");
|
||
var card = target.getCards("hej").randomGet();
|
||
event.card = card;
|
||
player.gain(card, target);
|
||
target.$giveAuto(card, player);
|
||
} else event.finish();
|
||
"step 1";
|
||
if (player.getCards("h").includes(card) && get.type(card) == "equip")
|
||
player.chooseUseTarget(card, true, "nopopup", "noanimate");
|
||
},
|
||
},
|
||
boss_sipu_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_sipu_switch_on", "boss_sipu_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_sipu_awake", "boss_sipu");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_sipu_awake");
|
||
player.removeSkill("boss_sipu_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_sipu: {
|
||
global: "boss_sipu2",
|
||
},
|
||
boss_sipu2: {
|
||
mod: {
|
||
cardEnabled: function (card, player) {
|
||
var sc = _status.currentPhase;
|
||
if (
|
||
sc &&
|
||
sc != player &&
|
||
sc.isPhaseUsing() &&
|
||
sc.hasSkill("boss_sipu") &&
|
||
!sc.hasSkill("boss_sipu_switch") &&
|
||
sc.countUsed() < 3
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
cardUsable: function (card, player) {
|
||
var sc = _status.currentPhase;
|
||
if (
|
||
sc &&
|
||
sc != player &&
|
||
sc.isPhaseUsing() &&
|
||
sc.hasSkill("boss_sipu") &&
|
||
!sc.hasSkill("boss_sipu_switch") &&
|
||
sc.countUsed() < 3
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
cardRespondable: function (card, player) {
|
||
var sc = _status.currentPhase;
|
||
if (
|
||
sc &&
|
||
sc != player &&
|
||
sc.isPhaseUsing() &&
|
||
sc.hasSkill("boss_sipu") &&
|
||
!sc.hasSkill("boss_sipu_switch") &&
|
||
sc.countUsed() < 3
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
cardSavable: function (card, player) {
|
||
var sc = _status.currentPhase;
|
||
if (
|
||
sc &&
|
||
sc != player &&
|
||
sc.isPhaseUsing() &&
|
||
sc.hasSkill("boss_sipu") &&
|
||
!sc.hasSkill("boss_sipu_switch") &&
|
||
sc.countUsed() < 3
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
/*----分界线----*/
|
||
boss_zirun: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
logTarget: function () {
|
||
return game.filterPlayer();
|
||
},
|
||
content: function () {
|
||
var list = game.filterPlayer().sortBySeat();
|
||
game.asyncDraw(list, function (current) {
|
||
if (current.countCards("e")) return 2;
|
||
return 1;
|
||
});
|
||
},
|
||
},
|
||
boss_juehong: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
logTarget: function (event, player) {
|
||
return player.getEnemies();
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.list = player.getEnemies().sortBySeat();
|
||
"step 1";
|
||
if (event.list.length) {
|
||
var target = event.list.shift();
|
||
if (target.countCards("he")) {
|
||
var es = target.getCards("e");
|
||
if (es.length) {
|
||
target.discard(es);
|
||
} else {
|
||
player.discardPlayerCard(target, "h", true);
|
||
}
|
||
}
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_zaoyi: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (lib.config.mode != "boss") return false;
|
||
var list = ["boss_shuishenxuanming", "boss_shuishengonggong"];
|
||
if (list.includes(event.player.name)) {
|
||
return !game.hasPlayer(function (current) {
|
||
return list.includes(current.name);
|
||
});
|
||
}
|
||
return false;
|
||
},
|
||
content: function () {
|
||
player.draw(4);
|
||
player.addSkill("boss_zaoyi_hp");
|
||
},
|
||
subSkill: {
|
||
hp: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
mark: true,
|
||
intro: {
|
||
content: "每个回合开始时使体力值最少的敌方角色失去所有体力",
|
||
},
|
||
content: function () {
|
||
var list = player.getEnemies();
|
||
var min = list[0].hp;
|
||
for (var i = 0; i < list.length; i++) {
|
||
if (list[i].hp < min) {
|
||
min = list[i].hp;
|
||
}
|
||
}
|
||
for (var i = 0; i < list.length; i++) {
|
||
if (list[i].hp > min) {
|
||
list.splice(i--, 1);
|
||
}
|
||
}
|
||
player.line(list, "green");
|
||
list.sortBySeat();
|
||
for (var i = 0; i < list.length; i++) {
|
||
list[i].loseHp(min);
|
||
}
|
||
},
|
||
},
|
||
},
|
||
mod: {
|
||
targetEnabled: function (card, player, target, now) {
|
||
if (target.isEnemyOf(player)) {
|
||
var type = get.type(card, "trick");
|
||
if (type == "trick") {
|
||
if (
|
||
game.hasPlayer(function (current) {
|
||
return current.name == "boss_shuishenxuanming";
|
||
})
|
||
) {
|
||
return false;
|
||
}
|
||
}
|
||
if (type == "basic") {
|
||
if (
|
||
game.hasPlayer(function (current) {
|
||
return current.name == "boss_shuishengonggong";
|
||
})
|
||
) {
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
},
|
||
},
|
||
boss_lingqu: {
|
||
init: function (player) {
|
||
player.storage.boss_lingqu = 0;
|
||
},
|
||
trigger: { player: "damageEnd" },
|
||
forced: true,
|
||
content: function () {
|
||
player.draw();
|
||
player.storage.boss_lingqu++;
|
||
player.markSkill("boss_lingqu");
|
||
},
|
||
intro: {
|
||
content: "手牌上限+#",
|
||
},
|
||
mod: {
|
||
maxHandcard: function (player, num) {
|
||
return num + player.storage.boss_lingqu;
|
||
},
|
||
},
|
||
group: "boss_lingqu_cancel",
|
||
subSkill: {
|
||
cancel: {
|
||
trigger: { player: "damageBegin4" },
|
||
priority: -11,
|
||
forced: true,
|
||
filter: function (event) {
|
||
return event.num > 1;
|
||
},
|
||
content: function () {
|
||
trigger.num = 0;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_baiyi: {
|
||
group: ["boss_baiyi_draw", "boss_baiyi_thunder", "boss_baiyi_discard"],
|
||
subSkill: {
|
||
discard: {
|
||
trigger: { global: "roundStart" },
|
||
forced: true,
|
||
filter: function () {
|
||
return game.roundNumber == 5;
|
||
},
|
||
logTarget: function (event, player) {
|
||
return player.getEnemies();
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.list = player.getEnemies();
|
||
"step 1";
|
||
if (event.list.length) {
|
||
event.list.shift().chooseToDiscard("he", true, 2);
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
draw: {
|
||
trigger: { global: "phaseDrawBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return game.roundNumber < 3 && event.player.isEnemyOf(player);
|
||
},
|
||
content: function () {
|
||
trigger.num--;
|
||
},
|
||
},
|
||
thunder: {
|
||
trigger: { player: "damageBegin4" },
|
||
filter: function (event) {
|
||
return event.hasNature("thunder") && game.roundNumber < 7;
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
ai: {
|
||
nothunder: true,
|
||
skillTagFilter: function () {
|
||
return game.roundNumber < 7;
|
||
},
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (get.tag(card, "thunderDamage") && game.roundNumber < 7) return 0;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_qingzhu: {
|
||
trigger: { player: "phaseDiscardBefore" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
mod: {
|
||
cardEnabled: function (card, player) {
|
||
if (
|
||
card.name == "sha" &&
|
||
_status.currentPhase == player &&
|
||
_status.event.getParent("phaseUse") &&
|
||
!player.hasSkill("boss_jiding")
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
boss_jiazu: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
getTargets: function (player) {
|
||
var targets = [];
|
||
targets.add(player.getNext());
|
||
targets.add(player.getPrevious());
|
||
var enemies = player.getEnemies();
|
||
for (var i = 0; i < targets.length; i++) {
|
||
if (
|
||
!enemies.includes(targets[i]) ||
|
||
(!targets[i].getEquip(3) && !targets[i].getEquip(4))
|
||
) {
|
||
targets.splice(i--, 1);
|
||
}
|
||
}
|
||
return targets;
|
||
},
|
||
filter: function (event, player) {
|
||
return lib.skill.boss_jiazu.getTargets(player).length > 0;
|
||
},
|
||
logTarget: function (event, player) {
|
||
return lib.skill.boss_jiazu.getTargets(player);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.list = lib.skill.boss_jiazu.getTargets(player).sortBySeat();
|
||
"step 1";
|
||
if (event.list.length) {
|
||
var target = event.list.shift();
|
||
var cards = target.getCards("e", function (card) {
|
||
var subtype = get.subtype(card);
|
||
return subtype == "equip3" || subtype == "equip4";
|
||
});
|
||
if (cards.length) {
|
||
target.discard(cards);
|
||
}
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_jiding: {
|
||
trigger: { global: "damageEnd" },
|
||
forced: true,
|
||
mark: true,
|
||
intro: {
|
||
content: "info",
|
||
},
|
||
filter: function (event, player) {
|
||
return (
|
||
event.player != player &&
|
||
event.player.isFriendOf(player) &&
|
||
event.source &&
|
||
event.source.isIn() &&
|
||
event.source.isEnemyOf(player)
|
||
);
|
||
},
|
||
logTarget: "source",
|
||
content: function () {
|
||
"step 0";
|
||
player.useCard({ name: "sha", nature: "thunder" }, trigger.source);
|
||
"step 1";
|
||
player.removeSkill("boss_jiding");
|
||
},
|
||
group: "boss_jiding_recover",
|
||
subSkill: {
|
||
recover: {
|
||
trigger: { source: "damageEnd" },
|
||
silent: true,
|
||
filter: function (event, player) {
|
||
return event.getParent(3).name == "boss_jiding";
|
||
},
|
||
content: function () {
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].name == "boss_jinshenrushou") {
|
||
game.players[i].recover();
|
||
player.line(game.players[i], "green");
|
||
}
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_xingqiu: {
|
||
init: function (player) {
|
||
player.storage.boss_xingqiu = false;
|
||
},
|
||
trigger: { player: "phaseDrawBegin" },
|
||
direct: true,
|
||
locked: true,
|
||
content: function () {
|
||
"step 0";
|
||
if (player.storage.boss_xingqiu) {
|
||
player.logSkill("boss_xingqiu");
|
||
event.list = player.getEnemies().sortBySeat();
|
||
} else {
|
||
event.finish();
|
||
}
|
||
player.storage.boss_xingqiu = !player.storage.boss_xingqiu;
|
||
"step 1";
|
||
if (event.list.length) {
|
||
var target = event.list.shift();
|
||
if (!target.isLinked()) {
|
||
target.link();
|
||
player.line(target, "green");
|
||
}
|
||
event.redo();
|
||
}
|
||
"step 2";
|
||
game.delay();
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].name == "boss_mingxingzhu") {
|
||
game.players[i].addSkill("boss_jiding");
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_kuangxiao: {
|
||
mod: {
|
||
targetInRange: function (card, player, target) {
|
||
return true;
|
||
},
|
||
selectTarget: function (card, player, range) {
|
||
if (card.name == "sha") {
|
||
range[1] = -1;
|
||
range[0] = -1;
|
||
}
|
||
},
|
||
playerEnabled: function (card, player, target) {
|
||
if (card.name == "sha" && target.isFriendOf(player)) {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
boss_yinzei_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_yinzei_switch_on", "boss_yinzei_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_yinzei_awake", "boss_yinzei");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_yinzei_awake");
|
||
player.removeSkill("boss_yinzei_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_jicai_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_jicai_switch_on", "boss_jicai_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_jicai_awake", "boss_jicai");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_jicai_awake");
|
||
player.removeSkill("boss_jicai_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_luanchang_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_luanchang_switch_on", "boss_luanchang_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_luanchang_awake", "boss_luanchang");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_luanchang_awake");
|
||
player.removeSkill("boss_luanchang_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_yandu_switch: {
|
||
unique: true,
|
||
charlotte: true,
|
||
group: ["boss_yandu_switch_on", "boss_yandu_switch_off"],
|
||
subSkill: {
|
||
off: {
|
||
trigger: { global: "gameStart" },
|
||
content: function () {
|
||
player.disableSkill("boss_yandu_awake", "boss_yandu");
|
||
},
|
||
silent: true,
|
||
},
|
||
on: {
|
||
trigger: { player: "changeHp" },
|
||
filter: function (event, player) {
|
||
return player.hp <= player.maxHp / 2;
|
||
},
|
||
forced: true,
|
||
skillAnimation: true,
|
||
animationColor: "thunder",
|
||
content: function () {
|
||
player.enableSkill("boss_yandu_awake");
|
||
player.removeSkill("boss_yandu_switch");
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_shenwuzaishi: {
|
||
trigger: { global: "dieAfter" },
|
||
silent: true,
|
||
filter: function (event, player) {
|
||
return player.side != game.boss.side;
|
||
},
|
||
content: function () {
|
||
if (player == trigger.source && trigger.player.name == "boss_zhuyin") {
|
||
player.draw(3);
|
||
player.recover();
|
||
} else if (trigger.player.side == player.side) {
|
||
player.draw(player.group == "shen" ? 3 : 1);
|
||
player.recover();
|
||
}
|
||
},
|
||
},
|
||
boss_wuzang: {
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num += Math.max(5, Math.floor(player.hp / 2)) - 2;
|
||
},
|
||
mod: {
|
||
maxHandcard: function (player, num) {
|
||
return num - player.hp;
|
||
},
|
||
},
|
||
},
|
||
boss_xiangde: {
|
||
trigger: { player: "damageBegin3" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
event.source &&
|
||
event.source.isIn() &&
|
||
event.source != player &&
|
||
event.source.getEquip(1)
|
||
);
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
boss_yinzei: {
|
||
trigger: { player: "damageEnd" },
|
||
forced: true,
|
||
logTarget: "source",
|
||
filter: function (event, player) {
|
||
return (
|
||
event.source &&
|
||
event.source.isIn() &&
|
||
event.source != player &&
|
||
event.source.countCards("he") &&
|
||
!player.countCards("h")
|
||
);
|
||
},
|
||
content: function () {
|
||
trigger.source.randomDiscard();
|
||
},
|
||
},
|
||
boss_zhue: {
|
||
trigger: { global: "damageEnd" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return event.source && event.source.isIn() && event.source != player;
|
||
},
|
||
logTarget: "source",
|
||
content: function () {
|
||
game.asyncDraw([player, trigger.source]);
|
||
},
|
||
},
|
||
boss_yandu: {
|
||
trigger: { global: "phaseJieshuBegin" },
|
||
filter: function (event, player) {
|
||
return (
|
||
event.player != player &&
|
||
!event.player.getStat("damage") &&
|
||
event.player.countCards("he")
|
||
);
|
||
},
|
||
logTarget: "player",
|
||
forced: true,
|
||
content: function () {
|
||
player.gainPlayerCard(trigger.player, true);
|
||
},
|
||
},
|
||
boss_futai: {
|
||
global: "boss_futai2",
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
logTarget: function (event, player) {
|
||
return game.filterPlayer(function (current) {
|
||
return current.isDamaged();
|
||
});
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
"step 0";
|
||
var list = game
|
||
.filterPlayer(function (current) {
|
||
return current.isDamaged();
|
||
})
|
||
.sortBySeat();
|
||
event.list = list;
|
||
"step 1";
|
||
if (event.list.length) {
|
||
event.list.shift().recover();
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_futai2: {
|
||
mod: {
|
||
cardSavable: function (card, player) {
|
||
if (
|
||
card.name == "tao" &&
|
||
!_status.event.skill &&
|
||
game.hasPlayer(function (current) {
|
||
return (
|
||
current != player &&
|
||
current.hasSkill("boss_futai") &&
|
||
_status.currentPhase != current
|
||
);
|
||
})
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
cardEnabled: function (card, player) {
|
||
if (
|
||
card.name == "tao" &&
|
||
!_status.event.skill &&
|
||
game.hasPlayer(function (current) {
|
||
return (
|
||
current != player &&
|
||
current.hasSkill("boss_futai") &&
|
||
_status.currentPhase != current
|
||
);
|
||
})
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
boss_luanchang: {
|
||
group: ["boss_luanchang_begin", "boss_luanchang_end"],
|
||
subSkill: {
|
||
begin: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game
|
||
.filterPlayer(function (current) {
|
||
return player.canUse("nanman", current);
|
||
})
|
||
.sortBySeat();
|
||
if (list.length) {
|
||
player.useCard({ name: "nanman" }, list);
|
||
}
|
||
},
|
||
},
|
||
end: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
var list = game
|
||
.filterPlayer(function (current) {
|
||
return player.canUse("wanjian", current);
|
||
})
|
||
.sortBySeat();
|
||
if (list.length) {
|
||
player.useCard({ name: "wanjian" }, list);
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_nitai: {
|
||
group: ["boss_nitai_in", "boss_nitai_out"],
|
||
subSkill: {
|
||
in: {
|
||
trigger: { player: "damageBegin4" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase == player;
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
},
|
||
out: {
|
||
trigger: { player: "damageBegin1" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase != player && event.hasNature("fire");
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_minwan: {
|
||
group: ["boss_minwan_clear", "boss_minwan_draw", "boss_minwan_add"],
|
||
subSkill: {
|
||
clear: {
|
||
trigger: { player: "phaseAfter" },
|
||
silent: true,
|
||
content: function () {
|
||
delete player.storage.boss_minwan;
|
||
},
|
||
},
|
||
draw: {
|
||
trigger: { player: "useCard" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
_status.currentPhase == player && Array.isArray(player.storage.boss_minwan)
|
||
);
|
||
},
|
||
content: function () {
|
||
player.draw();
|
||
},
|
||
},
|
||
add: {
|
||
trigger: { source: "damageAfter" },
|
||
filter: function (event, player) {
|
||
return _status.currentPhase == player;
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
if (!player.storage.boss_minwan) {
|
||
player.storage.boss_minwan = [player];
|
||
}
|
||
player.storage.boss_minwan.add(trigger.player);
|
||
},
|
||
},
|
||
},
|
||
mod: {
|
||
playerEnabled: function (card, player, target) {
|
||
if (
|
||
_status.currentPhase == player &&
|
||
Array.isArray(player.storage.boss_minwan) &&
|
||
!player.storage.boss_minwan.includes(target)
|
||
) {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
boss_tanyu: {
|
||
trigger: { player: "phaseDiscardBefore" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
group: "boss_tanyu_hp",
|
||
subSkill: {
|
||
hp: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
filter: function (event, player) {
|
||
return player.isMaxHandcard();
|
||
},
|
||
content: function () {
|
||
player.loseHp();
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_cangmu: {
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num += game.countPlayer() - 2;
|
||
},
|
||
},
|
||
boss_jicai: {
|
||
trigger: { global: "recoverAfter" },
|
||
forced: true,
|
||
logTarget: "player",
|
||
content: function () {
|
||
if (trigger.player == player) {
|
||
player.draw(2);
|
||
} else {
|
||
game.asyncDraw([player, trigger.player]);
|
||
}
|
||
},
|
||
},
|
||
boss_xiongshou: {
|
||
group: ["boss_xiongshou_turn", "boss_xiongshou_damage"],
|
||
subSkill: {
|
||
damage: {
|
||
trigger: { source: "damageBegin1" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
event.notLink() &&
|
||
event.card &&
|
||
event.card.name == "sha" &&
|
||
event.player.hp < player.hp
|
||
);
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
turn: {
|
||
trigger: { player: "turnOverBefore" },
|
||
priority: 20,
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return !player.isTurnedOver();
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
game.log(player, "取消了翻面");
|
||
},
|
||
},
|
||
},
|
||
mod: {
|
||
globalFrom: function (from, to, distance) {
|
||
return distance - 1;
|
||
},
|
||
},
|
||
ai: {
|
||
noturn: true,
|
||
},
|
||
},
|
||
xiuluolianyuji2: {
|
||
equipSkill: true,
|
||
vanish: true,
|
||
trigger: { player: "damageEnd" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
if (trigger.xiuluolianyuji) player.recover();
|
||
player.removeSkill("xiuluolianyuji2");
|
||
},
|
||
},
|
||
xiuluolianyuji: {
|
||
mod: {
|
||
selectTarget: function (card, player, range) {
|
||
if (card.name != "sha") return;
|
||
if (range[1] == -1) return;
|
||
range[1] = Infinity;
|
||
},
|
||
},
|
||
trigger: { source: "damageBegin1" },
|
||
forced: true,
|
||
filter: function (event) {
|
||
return event.card && event.card.name == "sha";
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
trigger.xiuluolianyuji = true;
|
||
trigger.player.addSkill("xiuluolianyuji2");
|
||
},
|
||
},
|
||
juechenjinge: {
|
||
equipSkill: true,
|
||
global: "juechenjinge2",
|
||
},
|
||
juechenjinge2: {
|
||
equipSkill: true,
|
||
mod: {
|
||
globalTo: function (from, to, distance) {
|
||
return (
|
||
distance +
|
||
game.countPlayer(function (current) {
|
||
if (current == to) return;
|
||
if (current.side != to.side) return;
|
||
if (current.hasSkill("juechenjinge")) return 1;
|
||
})
|
||
);
|
||
},
|
||
},
|
||
},
|
||
chiyanzhenhunqin: {
|
||
equipSkill: true,
|
||
trigger: { source: "damageBegin1" },
|
||
forced: true,
|
||
content: function () {
|
||
game.setNature(trigger, "fire");
|
||
},
|
||
},
|
||
longfenghemingjian: {
|
||
equipSkill: true,
|
||
inherit: "cixiong_skill",
|
||
filter: function (event, player) {
|
||
return game.hasNature(event.card, "linked");
|
||
},
|
||
},
|
||
qicaishenlu: {
|
||
trigger: { source: "damageBegin1" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return game.hasNature(event.card, "linked");
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
boss_chiyan: {
|
||
trigger: { global: "gameStart" },
|
||
forced: true,
|
||
popup: false,
|
||
unique: true,
|
||
fixed: true,
|
||
content: function () {
|
||
player.smoothAvatar();
|
||
player.init("boss_zhuque");
|
||
_status.noswap = true;
|
||
game.addVideo("reinit2", player, player.name);
|
||
},
|
||
},
|
||
boss_chiyan2: {
|
||
mode: ["boss"],
|
||
global: "boss_chiyan2x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_chiyan2x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_chiyan2");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
if (game.me != game.boss) {
|
||
game.boss.changeSeat(6);
|
||
} else {
|
||
game.boss.nextSeat.changeSeat(3);
|
||
game.boss.previousSeat.changeSeat(5);
|
||
}
|
||
game.changeBoss("boss_huoshenzhurong");
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].update();
|
||
}
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.addBossFellow(game.me == game.boss ? 1 : 5, "boss_yanling");
|
||
game.addBossFellow(7, "boss_yanling");
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
}
|
||
},
|
||
},
|
||
boss_chiyan3: {
|
||
mode: ["boss"],
|
||
global: "boss_chiyan3x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
fixed: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
player.nextSeat.hide();
|
||
player.previousSeat.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
game.addVideo("hidePlayer", player.nextSeat);
|
||
game.addVideo("hidePlayer", player.previousSeat);
|
||
},
|
||
},
|
||
boss_chiyan3x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
globalFixed: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_chiyan3");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss("boss_yandi");
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.changeBoss("boss_huoshenzhurong", game.boss.previousSeat);
|
||
game.changeBoss("boss_yanling", game.boss.nextSeat);
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
},
|
||
},
|
||
boss_qingmu: {
|
||
trigger: { global: "gameStart" },
|
||
forced: true,
|
||
popup: false,
|
||
fixed: true,
|
||
unique: true,
|
||
content: function () {
|
||
player.smoothAvatar();
|
||
player.init("boss_qinglong");
|
||
_status.noswap = true;
|
||
game.addVideo("reinit2", player, player.name);
|
||
},
|
||
},
|
||
boss_qingmu2: {
|
||
mode: ["boss"],
|
||
global: "boss_qingmu2x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_qingmu2x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
globalFixed: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_qingmu2");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
if (game.me != game.boss) {
|
||
game.boss.changeSeat(6);
|
||
} else {
|
||
game.boss.nextSeat.changeSeat(3);
|
||
game.boss.previousSeat.changeSeat(5);
|
||
}
|
||
game.changeBoss("boss_mushengoumang");
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].update();
|
||
}
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.addBossFellow(game.me == game.boss ? 1 : 5, "boss_shujing");
|
||
game.addBossFellow(7, "boss_shujing");
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
}
|
||
},
|
||
},
|
||
boss_qingmu3: {
|
||
mode: ["boss"],
|
||
global: "boss_qingmu3x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
fixed: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
player.nextSeat.hide();
|
||
player.previousSeat.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
game.addVideo("hidePlayer", player.nextSeat);
|
||
game.addVideo("hidePlayer", player.previousSeat);
|
||
},
|
||
},
|
||
boss_qingmu3x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_qingmu3");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss("boss_taihao");
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.changeBoss("boss_mushengoumang", game.boss.previousSeat);
|
||
game.changeBoss("boss_shujing", game.boss.nextSeat);
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
},
|
||
},
|
||
boss_xuanlin: {
|
||
trigger: { global: "gameStart" },
|
||
forced: true,
|
||
popup: false,
|
||
fixed: true,
|
||
unique: true,
|
||
content: function () {
|
||
player.smoothAvatar();
|
||
player.init("boss_xuanwu");
|
||
_status.noswap = true;
|
||
game.addVideo("reinit2", player, player.name);
|
||
},
|
||
},
|
||
boss_xuanlin2: {
|
||
mode: ["boss"],
|
||
global: "boss_xuanlin2x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_xuanlin2x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
globalFixed: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_xuanlin2");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
if (game.me != game.boss) {
|
||
game.boss.changeSeat(6);
|
||
} else {
|
||
game.boss.nextSeat.changeSeat(3);
|
||
game.boss.previousSeat.changeSeat(5);
|
||
}
|
||
game.changeBoss("boss_shuishengonggong");
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].update();
|
||
}
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.addBossFellow(game.me == game.boss ? 1 : 7, "boss_shuishenxuanming");
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
}
|
||
},
|
||
},
|
||
boss_xuanlin3: {
|
||
mode: ["boss"],
|
||
global: "boss_xuanlin3x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
fixed: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
if (game.boss && game.boss.name == "boss_zhuanxu") return false;
|
||
return true;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
if (player.nextSeat.side == player.side) {
|
||
player.nextSeat.hide();
|
||
game.addVideo("hidePlayer", player.nextSeat);
|
||
}
|
||
if (player.previousSeat.side == player.side) {
|
||
player.previousSeat.hide();
|
||
player.previousSeat.node.handcards1.hide();
|
||
player.previousSeat.node.handcards2.hide();
|
||
game.addVideo("hidePlayer", player.previousSeat);
|
||
game.addVideo("deleteHandcards", player.previousSeat);
|
||
}
|
||
},
|
||
},
|
||
boss_xuanlin3x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
if (game.boss && game.boss.name == "boss_zhuanxu") return false;
|
||
return event.player.hasSkill("boss_xuanlin3");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss("boss_zhuanxu");
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.addBossFellow(game.me == game.boss ? 7 : 5, "boss_shuishengonggong");
|
||
game.changeBoss("boss_shuishenxuanming", game.boss.nextSeat);
|
||
game.boss.previousSeat.maxHp--;
|
||
game.boss.previousSeat.update();
|
||
game.boss.nextSeat.maxHp--;
|
||
game.boss.nextSeat.update();
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
},
|
||
},
|
||
boss_baimang: {
|
||
trigger: { global: "gameStart" },
|
||
forced: true,
|
||
popup: false,
|
||
fixed: true,
|
||
unique: true,
|
||
content: function () {
|
||
player.smoothAvatar();
|
||
player.init("boss_baihu");
|
||
_status.noswap = true;
|
||
game.addVideo("reinit2", player, player.name);
|
||
},
|
||
},
|
||
boss_baimang2: {
|
||
mode: ["boss"],
|
||
global: "boss_baimang2x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_baimang2x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
globalFixed: true,
|
||
unique: true,
|
||
fixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_baimang2");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
if (game.me != game.boss) {
|
||
game.boss.changeSeat(6);
|
||
} else {
|
||
game.boss.nextSeat.changeSeat(3);
|
||
game.boss.previousSeat.changeSeat(5);
|
||
}
|
||
game.changeBoss("boss_jinshenrushou");
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].update();
|
||
}
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.addBossFellow(game.me == game.boss ? 1 : 5, "boss_mingxingzhu");
|
||
game.addBossFellow(7, "boss_mingxingzhu");
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
}
|
||
},
|
||
},
|
||
boss_baimang3: {
|
||
mode: ["boss"],
|
||
global: "boss_baimang3x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
fixed: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return player == game.boss;
|
||
},
|
||
content: function () {
|
||
player.hide();
|
||
player.nextSeat.hide();
|
||
player.previousSeat.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
game.addVideo("hidePlayer", player.nextSeat);
|
||
game.addVideo("hidePlayer", player.previousSeat);
|
||
},
|
||
},
|
||
boss_baimang3x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_baimang3");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss("boss_shaohao");
|
||
game.delay(0.5);
|
||
"step 2";
|
||
game.changeBoss("boss_jinshenrushou", game.boss.previousSeat);
|
||
game.changeBoss("boss_mingxingzhu", game.boss.nextSeat);
|
||
game.boss.previousSeat.maxHp--;
|
||
game.boss.previousSeat.update();
|
||
if (game.me != game.boss) {
|
||
game.addBossFellow(4, "boss_mingxingzhu");
|
||
} else {
|
||
// ui.arena.dataset.number='7';
|
||
// game.addVideo('arenaNumber',null,7);
|
||
// game.boss.previousSeat.changeSeat(6);
|
||
// game.boss.nextSeat.nextSeat.changeSeat(2);
|
||
// game.boss.nextSeat.nextSeat.nextSeat.changeSeat(3);
|
||
// game.boss.nextSeat.nextSeat.nextSeat.nextSeat.changeSeat(4);
|
||
game.addBossFellow(6, "boss_mingxingzhu");
|
||
}
|
||
"step 3";
|
||
var dnum = 0;
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (!dead[i].side && dead[i].maxHp > 0 && dead[i].parentNode == player.parentNode) {
|
||
dead[i].revive(dead[i].maxHp);
|
||
dnum++;
|
||
}
|
||
}
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].side) continue;
|
||
game.players[i].removeEquipTrigger();
|
||
var hej = game.players[i].getCards("hej");
|
||
for (var j = 0; j < hej.length; j++) {
|
||
hej[j].discard(false);
|
||
}
|
||
game.players[i].hp = game.players[i].maxHp;
|
||
game.players[i].hujia = 0;
|
||
game.players[i].classList.remove("turnedover");
|
||
game.players[i].removeLink();
|
||
game.players[i].directgain(get.cards(4 - dnum));
|
||
}
|
||
"step 4";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = game.boss;
|
||
_status.event.step = 0;
|
||
_status.roundStart = game.boss;
|
||
game.phaseNumber = 0;
|
||
game.roundNumber = 0;
|
||
},
|
||
},
|
||
boss_shenyi: {
|
||
unique: true,
|
||
mod: {
|
||
judge: function (player, result) {
|
||
if (_status.event.type == "phase") {
|
||
if (result.bool == false) {
|
||
result.bool = null;
|
||
} else {
|
||
result.bool = false;
|
||
}
|
||
}
|
||
},
|
||
},
|
||
trigger: { player: "turnOverBefore" },
|
||
priority: 20,
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return !player.isTurnedOver();
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
game.log(player, "取消了翻面");
|
||
},
|
||
ai: {
|
||
noturn: true,
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (get.type(card) == "delay") return 0.5;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
honghuangzhili: {
|
||
init: function (player) {
|
||
player.disableSkill("honghuangzhili", "boss_shenyi");
|
||
},
|
||
mark: true,
|
||
nopop: true,
|
||
intro: {
|
||
content: "【神裔】无效直到下家的回合开始",
|
||
},
|
||
marktext: "荒",
|
||
onremove: function (player) {
|
||
player.enableSkill("honghuangzhili", "boss_shenyi");
|
||
},
|
||
trigger: { global: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
filter: function (event, player) {
|
||
return event.player == player.next;
|
||
},
|
||
content: function () {
|
||
player.removeSkill("honghuangzhili");
|
||
},
|
||
},
|
||
boss_shenen: {
|
||
mode: ["boss"],
|
||
unique: true,
|
||
global: "boss_shenen2",
|
||
},
|
||
boss_shenen2: {
|
||
mod: {
|
||
targetInRange: function (card, player) {
|
||
if (player.side) return true;
|
||
},
|
||
maxHandcard: function (player, num) {
|
||
if (!player.side) return num + 1;
|
||
},
|
||
},
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return !player.side;
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
boss_fentian: {
|
||
trigger: { source: "damageBegin1" },
|
||
forced: true,
|
||
filter: function (event) {
|
||
return !event.hasNature("fire");
|
||
},
|
||
content: function () {
|
||
trigger.hasNature("fire");
|
||
},
|
||
mod: {
|
||
cardUsable: function (card) {
|
||
if (get.color(card) == "red") return Infinity;
|
||
},
|
||
targetInRange: function (card) {
|
||
if (get.color(card) == "red") return true;
|
||
},
|
||
wuxieRespondable: function (card, player, target) {
|
||
if (get.color(card) == "red" && player != target) return false;
|
||
},
|
||
},
|
||
group: "boss_fentian2",
|
||
},
|
||
boss_fentian2: {
|
||
trigger: { player: "useCard" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return get.color(event.card) == "red";
|
||
},
|
||
content: function () {
|
||
trigger.directHit.addArray(game.players);
|
||
trigger.directHit.remove(player);
|
||
},
|
||
},
|
||
boss_xingxia: {
|
||
enable: "phaseUse",
|
||
mode: ["boss"],
|
||
filter: function (event, player) {
|
||
if (
|
||
!game.hasPlayer(function (current) {
|
||
return current.name == "boss_yanling";
|
||
})
|
||
) {
|
||
return false;
|
||
}
|
||
return (
|
||
!player.storage.boss_xingxia || game.roundNumber - player.storage.boss_xingxia >= 2
|
||
);
|
||
},
|
||
unique: true,
|
||
filterTarget: function (card, player, target) {
|
||
return target.name == "boss_yanling";
|
||
},
|
||
selectTarget: -1,
|
||
line: "fire",
|
||
content: function () {
|
||
target.damage(2, "fire");
|
||
},
|
||
contentAfter: function () {
|
||
"step 0";
|
||
player.storage.boss_xingxia = game.roundNumber;
|
||
player.chooseTarget(function (card, player, target) {
|
||
return target.side != player.side;
|
||
}).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "fire");
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
event.target = result.targets[0];
|
||
player.line(event.target, "fire");
|
||
event.target.chooseToDiscard(
|
||
"he",
|
||
{ color: "red" },
|
||
"弃置一张红色牌或受到1点火焰伤害"
|
||
).ai = function (card) {
|
||
var player = _status.event.player;
|
||
var source = _status.event.parent.player;
|
||
if (get.damageEffect(player, source, player, "fire") >= 0) return 0;
|
||
return 8 - get.value(card);
|
||
};
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (!result.bool) {
|
||
event.target.damage("fire");
|
||
}
|
||
},
|
||
ai: {
|
||
order: 6,
|
||
result: {
|
||
target: function (player, target) {
|
||
if (
|
||
target.isLinked() &&
|
||
player.isLinked() &&
|
||
get.damageEffect(player, player, player, "fire") < 0
|
||
)
|
||
return -1;
|
||
return 1;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_huihuo: {
|
||
global: "boss_huihuo2",
|
||
unique: true,
|
||
mod: {
|
||
cardUsable: function (card, player, num) {
|
||
if (card.name == "sha") return num + 1;
|
||
},
|
||
},
|
||
ai: {
|
||
revertsave: true,
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (!game.boss) return;
|
||
if (card.name == "tiesuo") {
|
||
if (_status.event.player == game.boss) return "zeroplayertarget";
|
||
return 0.5;
|
||
}
|
||
if (get.tag(card, "damage") || get.tag(card, "recover")) {
|
||
if (
|
||
game.boss.isLinked() &&
|
||
get.damageEffect(game.boss, player, game.boss, "fire") < 0
|
||
) {
|
||
if (
|
||
game.hasPlayer(function (current) {
|
||
return current.isEnemyOf(game.boss) && current.isLinked();
|
||
})
|
||
) {
|
||
return;
|
||
}
|
||
if (get.tag(card, "natureDamage") && target.isLinked()) {
|
||
return;
|
||
}
|
||
}
|
||
if (target.isDying()) {
|
||
if (player.isEnemyOf(target) && player.hp >= -1) return [0, 0, 0, 1];
|
||
return "zeroplayertarget";
|
||
}
|
||
return -0.5;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_huihuo2: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
globalFixed: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
event.player.hasSkill("boss_huihuo") &&
|
||
event.player.isDead() &&
|
||
player.isEnemyOf(event.player)
|
||
);
|
||
},
|
||
content: function () {
|
||
trigger.player.line(player, "fire");
|
||
player.damage("nosource", "fire", 3).animate = false;
|
||
player.$damage(trigger.player);
|
||
player.$damagepop(-3, "fire");
|
||
if (lib.config.animation && !lib.config.low_performance) {
|
||
player.$fire();
|
||
}
|
||
if (!event.parent.parent.boss_huihuo_logv) {
|
||
event.parent.parent.boss_huihuo_logv = true;
|
||
game.logv(trigger.player, "boss_huihuo", game.filterPlayer(), event.parent.parent);
|
||
}
|
||
},
|
||
},
|
||
boss_furan: {
|
||
unique: true,
|
||
global: "boss_furan2",
|
||
},
|
||
boss_furan2: {
|
||
enable: "chooseToUse",
|
||
filter: function (event, player) {
|
||
return (
|
||
event.type == "dying" &&
|
||
event.dying.hasSkill("boss_furan") &&
|
||
player.isEnemyOf(event.dying)
|
||
);
|
||
},
|
||
filterCard: function (card) {
|
||
return get.color(card) == "red";
|
||
},
|
||
position: "he",
|
||
viewAs: { name: "tao" },
|
||
prompt: "将一张红色牌当桃使用",
|
||
check: function (card) {
|
||
return 8 - get.value(card);
|
||
},
|
||
ai: {
|
||
order: 5,
|
||
skillTagFilter: function (player) {
|
||
var event = _status.event;
|
||
if (
|
||
event.dying &&
|
||
event.dying.hasSkill("boss_furan") &&
|
||
player.isEnemyOf(event.dying)
|
||
) {
|
||
return (
|
||
player.countCards("he", { color: "red" }) > 0 &&
|
||
_status.currentPhase != player
|
||
);
|
||
} else {
|
||
return false;
|
||
}
|
||
},
|
||
save: true,
|
||
},
|
||
},
|
||
boss_chiyi: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return [3, 5, 7].includes(game.roundNumber);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
if (game.roundNumber == 3) {
|
||
var enemies = game.filterPlayer(function (current) {
|
||
return current.isEnemyOf(player);
|
||
});
|
||
player.line(enemies, "green");
|
||
for (var i = 0; i < enemies.length; i++) {
|
||
enemies[i].addSkill("boss_chiyi2");
|
||
}
|
||
event.finish();
|
||
} else if (game.roundNumber == 5) {
|
||
event.targets = game.filterPlayer().sortBySeat();
|
||
event.num = 1;
|
||
} else {
|
||
event.targets = game
|
||
.filterPlayer(function (current) {
|
||
return current.name == "boss_yanling";
|
||
})
|
||
.sortBySeat();
|
||
event.num = 5;
|
||
}
|
||
"step 1";
|
||
if (event.targets.length) {
|
||
var target = event.targets.shift();
|
||
player.line(target, "fire");
|
||
target.damage(event.num, "fire");
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_chiyi2: {
|
||
mark: true,
|
||
marktext: "赤",
|
||
intro: {
|
||
content: "受到的伤害+1",
|
||
},
|
||
trigger: { player: "damageBegin3" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
boss_buchun: {
|
||
mode: ["boss"],
|
||
unique: true,
|
||
group: ["boss_buchun_recover", "boss_buchun_revive"],
|
||
subSkill: {
|
||
revive: {
|
||
enable: "phaseUse",
|
||
filter: function (event, player) {
|
||
if (
|
||
!player.storage.boss_buchun ||
|
||
game.roundNumber - player.storage.boss_buchun >= 2
|
||
) {
|
||
for (var i = 0; i < game.dead.length; i++) {
|
||
if (
|
||
game.dead[i].parentNode == player.parentNode &&
|
||
game.dead[i].name == "boss_shujing"
|
||
) {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.loseHp();
|
||
player.storage.boss_buchun = game.roundNumber;
|
||
"step 1";
|
||
event.targets = [];
|
||
var dead = game.dead.slice(0);
|
||
for (var i = 0; i < dead.length; i++) {
|
||
if (
|
||
dead[i].parentNode == player.parentNode &&
|
||
dead[i].name == "boss_shujing"
|
||
) {
|
||
event.targets.push(dead[i]);
|
||
}
|
||
}
|
||
if (event.targets[0] == player.previousSeat) {
|
||
event.targets.push(event.targets.shift());
|
||
}
|
||
"step 2";
|
||
if (event.targets.length) {
|
||
var target = event.targets.shift();
|
||
player.line(target, "green");
|
||
target.revive(1);
|
||
target.draw(2, false);
|
||
target.$draw(2);
|
||
event.redo();
|
||
}
|
||
"step 3";
|
||
game.delay();
|
||
},
|
||
ai: {
|
||
order: 6,
|
||
result: {
|
||
player: function (player, target) {
|
||
if (player.hp <= 1) return 0;
|
||
if (
|
||
player.hp <= 3 &&
|
||
game.hasPlayer(function (current) {
|
||
return current.name == "boss_shujing" && current.hp == 1;
|
||
})
|
||
) {
|
||
if (_status.event.getRand() < 0.4) {
|
||
return 0;
|
||
}
|
||
}
|
||
if (player.hp >= 3) return 1;
|
||
if (player.hp >= 2 && player != game.boss) return 1;
|
||
if (
|
||
game.hasPlayer(function (current) {
|
||
return current.name == "boss_shujing";
|
||
})
|
||
) {
|
||
return 0;
|
||
}
|
||
return 1;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
recover: {
|
||
enable: "phaseUse",
|
||
filter: function (event, player) {
|
||
if (
|
||
!player.storage.boss_buchun ||
|
||
game.roundNumber - player.storage.boss_buchun >= 2
|
||
) {
|
||
for (var i = 0; i < game.dead.length; i++) {
|
||
if (
|
||
game.dead[i].parentNode == player.parentNode &&
|
||
game.dead[i].name == "boss_shujing"
|
||
) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
return false;
|
||
},
|
||
prompt: "令一名己方角色回复2点体力",
|
||
filterTarget: function (card, player, target) {
|
||
return target.isFriendOf(player) && target.isDamaged();
|
||
},
|
||
content: function () {
|
||
target.recover(2);
|
||
player.storage.boss_buchun = game.roundNumber;
|
||
},
|
||
ai: {
|
||
order: 6,
|
||
result: {
|
||
target: function (player, target) {
|
||
var num = 1;
|
||
if (target.maxHp - target.hp >= 2) {
|
||
num = 1.5;
|
||
}
|
||
return 1.5 * get.recoverEffect(target, player, target);
|
||
},
|
||
},
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_cuidu: {
|
||
trigger: { source: "damageEnd" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
if (event._notrigger.includes(event.player)) return false;
|
||
return (
|
||
event.player.isIn() &&
|
||
event.player.isEnemyOf(player) &&
|
||
!event.player.hasSkill("boss_zhongdu")
|
||
);
|
||
},
|
||
logTarget: "player",
|
||
content: function () {
|
||
trigger.player.addSkill("boss_zhongdu");
|
||
var boss = game.findPlayer(function (current) {
|
||
return current.name == "boss_mushengoumang";
|
||
});
|
||
if (boss) {
|
||
boss.draw();
|
||
}
|
||
},
|
||
},
|
||
boss_zhongdu: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
mark: true,
|
||
nopop: true,
|
||
temp: true,
|
||
intro: {
|
||
content:
|
||
"锁定技,回合开始时,你进行判定,若结果不为红桃,你受到1点无来源的伤害,若结果不为黑桃,你失去此技能",
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.judge(function (card) {
|
||
var suit = get.suit(card);
|
||
if (suit == "spade") return -1;
|
||
if (suit == "heart") return 1;
|
||
return 0;
|
||
});
|
||
"step 1";
|
||
if (result.suit != "heart") {
|
||
player.damage("nosource");
|
||
}
|
||
if (result.suit != "spade") {
|
||
player.removeSkill("boss_zhongdu");
|
||
}
|
||
},
|
||
},
|
||
boss_qingyi: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return [3, 5, 7].includes(game.roundNumber);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
if (game.roundNumber == 7) {
|
||
var goumang, shujing;
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i].name == "boss_mushengoumang") {
|
||
goumang = game.players[i];
|
||
}
|
||
if (game.players[i].name == "boss_shujing") {
|
||
shujing = game.players[i];
|
||
}
|
||
}
|
||
if (!goumang || !shujing) {
|
||
for (var i = 0; i < game.dead.length; i++) {
|
||
if (game.dead[i].parentNode != player.parentNode) continue;
|
||
if (game.dead[i].name == "boss_mushengoumang") {
|
||
goumang = game.dead[i];
|
||
}
|
||
if (game.dead[i].name == "boss_shujing") {
|
||
shujing = game.dead[i];
|
||
}
|
||
}
|
||
}
|
||
event.targets = [];
|
||
if (goumang) {
|
||
event.targets.push(goumang);
|
||
}
|
||
if (shujing) {
|
||
event.targets.push(shujing);
|
||
}
|
||
event.command = "revive";
|
||
} else if (game.roundNumber == 5) {
|
||
event.targets = game
|
||
.filterPlayer(function (current) {
|
||
return current.isEnemyOf(player);
|
||
})
|
||
.sortBySeat();
|
||
event.command = "loseHp";
|
||
} else {
|
||
event.targets = game
|
||
.filterPlayer(function (current) {
|
||
return current.isFriendOf(player);
|
||
})
|
||
.sortBySeat();
|
||
event.command = "recover";
|
||
}
|
||
"step 1";
|
||
if (event.targets.length) {
|
||
var target = event.targets.shift();
|
||
player.line(target, "green");
|
||
if (event.command == "revive") {
|
||
player.line(target, "green");
|
||
if (target.isDead()) {
|
||
target.maxHp++;
|
||
target.revive(3);
|
||
} else {
|
||
target.gainMaxHp();
|
||
target.recover(3);
|
||
}
|
||
target.draw(3, false);
|
||
target.$draw(3);
|
||
event.delay = true;
|
||
} else {
|
||
target[event.command]();
|
||
}
|
||
event.redo();
|
||
}
|
||
"step 2";
|
||
if (event.delay) {
|
||
game.delay();
|
||
}
|
||
},
|
||
},
|
||
boss_qizuo: {
|
||
trigger: { player: "useCardAfter" },
|
||
filter: function (event, player) {
|
||
if (event.parent.name == "boss_qizuo") return false;
|
||
if (!event.targets || !event.card) return false;
|
||
if (event.card && event.card.name == "wuxie") return false;
|
||
var type = get.type(event.card);
|
||
if (type != "trick") return false;
|
||
var card = game.createCard(
|
||
event.card.name,
|
||
event.card.suit,
|
||
event.card.number,
|
||
event.card.nature
|
||
);
|
||
var targets = event._targets || event.targets;
|
||
for (var i = 0; i < targets.length; i++) {
|
||
if (!targets[i].isIn()) return false;
|
||
if (!player.canUse({ name: event.card.name }, targets[i], false, false)) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
},
|
||
check: function (event, player) {
|
||
if (event.card.name == "tiesuo") return false;
|
||
return true;
|
||
},
|
||
content: function () {
|
||
var card = game.createCard(
|
||
trigger.card.name,
|
||
trigger.card.suit,
|
||
trigger.card.number,
|
||
trigger.card.nature
|
||
);
|
||
player.useCard(card, (trigger._targets || trigger.targets).slice(0));
|
||
},
|
||
ai: {
|
||
threaten: 1.3,
|
||
},
|
||
},
|
||
boss_guimou: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
frequent: true,
|
||
content: function () {
|
||
var list = game.filterPlayer(function (target) {
|
||
return target != player && !target.isMad();
|
||
});
|
||
if (list.length) {
|
||
var target = list.randomGet();
|
||
player.line(target, "green");
|
||
target.goMad({ player: "phaseAfter" });
|
||
}
|
||
},
|
||
},
|
||
boss_yuance: {
|
||
trigger: { global: "damageEnd" },
|
||
filter: function (event) {
|
||
return (
|
||
event.source &&
|
||
event.source != event.player &&
|
||
event.source.isAlive() &&
|
||
event.player.isAlive()
|
||
);
|
||
},
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
var att1 = get.attitude(player, trigger.player);
|
||
var att2 = get.attitude(player, trigger.source);
|
||
var targets = player.getEnemies();
|
||
var stop = false;
|
||
for (var i = 0; i < targets.length; i++) {
|
||
var skills = targets[i].getSkills();
|
||
for (var j = 0; j < skills.length; j++) {
|
||
if (get.tag(skills[j], "rejudge", targets[i])) {
|
||
stop = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
var rand = Math.random() < 0.5 ? "选项一" : "选项二";
|
||
var sourcename = get.translation(trigger.source);
|
||
var playername = get.translation(trigger.player);
|
||
player
|
||
.chooseControl("选项一", "选项二", "cancel2", function () {
|
||
if (att1 == 0 && att2 == 0) return rand;
|
||
if (att1 * att2 >= 0) {
|
||
if (att1 + att2 > 0) {
|
||
return "选项二";
|
||
} else {
|
||
return "选项一";
|
||
}
|
||
} else {
|
||
if (trigger.player.isHealthy() && trigger.source.isHealthy()) return rand;
|
||
if (trigger.player.isHealthy()) {
|
||
if (att1 < 0) return "选项二";
|
||
if (att1 > 0 && !stop) return "选项一";
|
||
}
|
||
if (trigger.source.isHealthy()) {
|
||
if (att2 < 0) return "选项二";
|
||
if (att2 > 0 && !stop) return "选项一";
|
||
}
|
||
if (stop) return "cancel2";
|
||
return rand;
|
||
}
|
||
})
|
||
.set("prompt", get.prompt("boss_yuance"))
|
||
.set("choiceList", [
|
||
"若判定结果为黑色," +
|
||
playername +
|
||
"失去1点体力,否则" +
|
||
sourcename +
|
||
"失去1点体力",
|
||
"若判定结果为红色," +
|
||
playername +
|
||
"回复1点体力,否则" +
|
||
sourcename +
|
||
"回复1点体力",
|
||
]);
|
||
"step 1";
|
||
var att1 = get.attitude(player, trigger.player);
|
||
var att2 = get.attitude(player, trigger.source);
|
||
if (result.control == "选项一") {
|
||
event.type = 1;
|
||
player.judge(function (card) {
|
||
if (get.color(card) == "black") {
|
||
if (att1 > 0) return -1;
|
||
if (att1 < 0) return 1;
|
||
} else {
|
||
if (att2 > 0) return -1;
|
||
if (att2 < 0) return 1;
|
||
}
|
||
return 0;
|
||
});
|
||
} else if (result.control == "选项二") {
|
||
event.type = 2;
|
||
player.judge(function (card) {
|
||
if (get.color(card) == "red") {
|
||
if (trigger.player.isDamaged()) {
|
||
if (att1 > 0) return 1;
|
||
if (att1 < 0) return -1;
|
||
}
|
||
} else {
|
||
if (trigger.source.isDamaged()) {
|
||
if (att2 > 0) return 1;
|
||
if (att2 < 0) return -1;
|
||
}
|
||
}
|
||
return 0;
|
||
});
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (event.type == 1) {
|
||
if (result.color == "black") {
|
||
trigger.player.loseHp();
|
||
} else {
|
||
trigger.source.loseHp();
|
||
}
|
||
} else {
|
||
if (result.color == "red") {
|
||
trigger.player.recover();
|
||
} else {
|
||
trigger.source.recover();
|
||
}
|
||
}
|
||
},
|
||
},
|
||
boss_guixin: {
|
||
trigger: { global: "drawAfter" },
|
||
forced: true,
|
||
logTarget: "player",
|
||
filter: function (event, player) {
|
||
return event.result && event.result.length >= 2 && event.player != player;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
trigger.player.chooseCard(
|
||
function (card) {
|
||
return trigger.result.includes(card);
|
||
},
|
||
"归心:交给" + get.translation(player) + "一张牌",
|
||
true
|
||
);
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.gain(result.cards, trigger.player);
|
||
trigger.player.$give(1, player);
|
||
}
|
||
},
|
||
},
|
||
xiongcai: {
|
||
unique: true,
|
||
trigger: { player: "phaseAfter" },
|
||
direct: true,
|
||
init: function (player) {
|
||
player.storage.xiongcai = [];
|
||
// player.storage.xiongcai2=0;
|
||
},
|
||
intro: {
|
||
content: "characters",
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
// if(player.storage.xiongcai2<1){
|
||
// player.storage.xiongcai2++;
|
||
// event.finish();
|
||
// }
|
||
// else{
|
||
// player.storage.xiongcai2=0;
|
||
// }
|
||
"step 1";
|
||
player.logSkill("xiongcai");
|
||
var list = [];
|
||
var list2 = [];
|
||
var players = game.players.concat(game.dead);
|
||
for (var i = 0; i < players.length; i++) {
|
||
list2.add(players[i].name);
|
||
list2.add(players[i].name1);
|
||
list2.add(players[i].name2);
|
||
}
|
||
for (var i in lib.character) {
|
||
if (lib.character[i][1] != "wei") continue;
|
||
if (lib.character[i].isBoss) continue;
|
||
if (lib.character[i].isMinskin) continue;
|
||
if (player.storage.xiongcai.includes(i)) continue;
|
||
if (list2.includes(i)) continue;
|
||
list.push(i);
|
||
}
|
||
var name = list.randomGet();
|
||
player.storage.xiongcai.push(name);
|
||
player.markSkill("xiongcai");
|
||
var skills = lib.character[name][3];
|
||
for (var i = 0; i < skills.length; i++) {
|
||
player.addSkill(skills[i]);
|
||
}
|
||
event.dialog = ui.create.dialog(
|
||
'<div class="text center">' + get.translation(player) + "发动了【雄才】",
|
||
[[name], "character"]
|
||
);
|
||
game.delay(2);
|
||
"step 2";
|
||
event.dialog.close();
|
||
},
|
||
},
|
||
xiaoxiong: {
|
||
trigger: { global: "useCardAfter" },
|
||
forced: true,
|
||
unique: true,
|
||
forceunique: true,
|
||
filter: function (event, player) {
|
||
var type = get.type(event.card, "trick");
|
||
return event.player != player && (type == "basic" || type == "trick");
|
||
},
|
||
content: function () {
|
||
player.gain(game.createCard(trigger.card), "gain2");
|
||
},
|
||
group: "xiaoxiong_damage",
|
||
subSkill: {
|
||
damage: {
|
||
trigger: { global: "phaseJieshuBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return event.player != player && event.player.countUsed() == 0;
|
||
},
|
||
logTarget: "player",
|
||
content: function () {
|
||
trigger.player.damage();
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_zhangwu: {
|
||
global: "boss_zhangwu_ai",
|
||
trigger: { player: "damageEnd" },
|
||
check: function (event, player) {
|
||
return (
|
||
event.source &&
|
||
event.source.isIn() &&
|
||
get.damageEffect(event.source, player, player) > 0
|
||
);
|
||
},
|
||
filter: function (event) {
|
||
return event.source && event.source.isAlive();
|
||
},
|
||
direct: true,
|
||
logTarget: "source",
|
||
content: function () {
|
||
"step 0";
|
||
player
|
||
.chooseToDiscard(get.prompt("boss_zhangwu", trigger.source), "he", [1, Infinity])
|
||
.set("ai", function (card) {
|
||
if (get.attitude(player, target) < 0) return 8 - get.value(card);
|
||
return 0;
|
||
})
|
||
.set("logSkill", ["boss_zhangwu", trigger.source]);
|
||
"step 1";
|
||
if (result.bool) {
|
||
var num = result.cards.length;
|
||
var cnum = get.cnNumber(num);
|
||
event.num = num;
|
||
trigger.source
|
||
.chooseToDiscard(
|
||
"he",
|
||
"章武:弃置" + cnum + "张牌,或取消并受到" + cnum + "点伤害",
|
||
num
|
||
)
|
||
.set("ai", function (card) {
|
||
if (!trigger.source.hasSkillTag("nodamage")) return 10 - get.value(card);
|
||
return 0;
|
||
});
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (!result.bool) {
|
||
trigger.source.damage(event.num);
|
||
}
|
||
},
|
||
ai: {
|
||
maixie: true,
|
||
maixie_hp: true,
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (
|
||
get.tag(card, "damage") &&
|
||
get.attitude(target, player) < 0 &&
|
||
player.countCards("he") < target.countCards("he")
|
||
) {
|
||
return [0, 2];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_zhangwu_ai: {
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (get.tag(card, "recover") && card.name != "recover") {
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (
|
||
game.players[i].hasSkill("xiaoxiong") &&
|
||
get.attitude(target, game.players[i]) < 0
|
||
) {
|
||
return "zeroplayertarget";
|
||
}
|
||
}
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
yueyin: {
|
||
unique: true,
|
||
mark: true,
|
||
intro: {
|
||
content: function (storage, player) {
|
||
var str = "扣减" + (7 - player.storage.xiangxing_count) + "点体力后失去下一枚星;";
|
||
str +=
|
||
"防上禳星伤害条件:" +
|
||
lib.translate["xiangxing" + player.storage.xiangxing + "_info"];
|
||
return str;
|
||
},
|
||
markcount: function (storage, player) {
|
||
return Math.max(0, 7 - player.storage.xiangxing_count);
|
||
},
|
||
},
|
||
skipDamage: {
|
||
x7: function (player) {
|
||
return player.countCards("h") == 0;
|
||
},
|
||
x6: function (player, event) {
|
||
return event.hasNature("fire");
|
||
},
|
||
x5: function (player, event) {
|
||
return event.hasNature("thunder");
|
||
},
|
||
x4: function (player, event) {
|
||
return event.name == "loseHp";
|
||
},
|
||
x3: function (player, event) {
|
||
return game.hasPlayer(function (current) {
|
||
return current != player && current.countCards("e") >= 4;
|
||
});
|
||
},
|
||
x2: function (player) {
|
||
return player.countCards("j") >= 2;
|
||
},
|
||
x1: function () {
|
||
return game.players.length == 2;
|
||
},
|
||
},
|
||
},
|
||
xiangxing: {
|
||
unique: true,
|
||
init: function (player) {
|
||
player.storage.xiangxing = 7;
|
||
player.storage.xiangxing_count = 0;
|
||
player.addSkill("xiangxing7");
|
||
},
|
||
mark: true,
|
||
intro: {
|
||
content: "当前有#枚星",
|
||
},
|
||
trigger: { player: ["damageEnd", "loseHpEnd"] },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
"step 0";
|
||
var num = trigger.num;
|
||
if (num) {
|
||
player.storage.xiangxing_count += num;
|
||
}
|
||
if (player.storage.xiangxing_count >= 7) {
|
||
if (
|
||
player.hasSkill("yueyin") &&
|
||
lib.skill.yueyin.skipDamage["x" + player.storage.xiangxing](player, trigger)
|
||
) {
|
||
event.goto(3);
|
||
}
|
||
player.removeSkill("xiangxing" + player.storage.xiangxing);
|
||
player.storage.xiangxing--;
|
||
player.storage.xiangxing_count = 0;
|
||
player.updateMarks();
|
||
if (player.storage.xiangxing) {
|
||
player.addSkill("xiangxing" + player.storage.xiangxing);
|
||
} else {
|
||
player.awakenSkill("xiangxing");
|
||
}
|
||
player.popup("xiangxing");
|
||
game.log(player, "失去了一枚星");
|
||
} else {
|
||
player.updateMarks();
|
||
event.finish();
|
||
}
|
||
"step 1";
|
||
var list = game.filterPlayer();
|
||
list.remove(player);
|
||
list.sort(lib.sort.seat);
|
||
var list2 = [];
|
||
for (var i = 0; i < list.length; i++) {
|
||
list2.push(0);
|
||
}
|
||
for (var i = 0; i < 7; i++) {
|
||
list2[Math.floor(Math.random() * list2.length)]++;
|
||
}
|
||
event.list = list;
|
||
event.list2 = list2;
|
||
"step 2";
|
||
if (event.list.length) {
|
||
var target = event.list.shift();
|
||
target.damage(event.list2.shift(), "thunder");
|
||
player.line(target, "thunder");
|
||
event.redo();
|
||
}
|
||
"step 3";
|
||
if (player.storage.xiangxing == 0) {
|
||
player.maxHp = 3;
|
||
player.update();
|
||
}
|
||
},
|
||
},
|
||
fengqi: {
|
||
trigger: { player: ["phaseZhunbeiBegin", "phaseJieshuBegin"] },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
var list = { basic: [], equip: [], trick: [], delay: [] };
|
||
for (var i = 0; i < lib.inpile.length; i++) {
|
||
var name = lib.inpile[i];
|
||
var info = lib.card[name];
|
||
if (info.autoViewAs || name == "yuansuhuimie") continue;
|
||
if (lib.filter.cardEnabled({ name: name }, player)) {
|
||
if (!list[info.type]) {
|
||
list[info.type] = [];
|
||
}
|
||
list[info.type].push([get.translation(lib.card[name].type), "", name]);
|
||
}
|
||
}
|
||
list.trick.sort(lib.sort.name);
|
||
var dialog = ui.create.dialog("风起", [list.trick, "vcard"]);
|
||
// for(var i in list){
|
||
// dialog.addText(get.translation(i)+'牌');
|
||
// dialog.add([list[i],'vcard']);
|
||
// }
|
||
var rand1 = Math.random() < 1 / 3;
|
||
var rand2 = Math.random() < 0.5;
|
||
var rand3 = Math.random() < 1 / 3;
|
||
var rand4 = Math.random() < 1 / 3;
|
||
player.chooseButton(dialog).ai = function (button) {
|
||
var name = button.link[2];
|
||
if (player.hp <= 1) {
|
||
switch (name) {
|
||
case "zhiliaobo":
|
||
return 1;
|
||
case "dunpaigedang":
|
||
return 0.8;
|
||
case "nanman":
|
||
return 0.5;
|
||
default:
|
||
return 0;
|
||
}
|
||
}
|
||
if (rand4 && player.countCards("h") <= 1) {
|
||
switch (name) {
|
||
case "zengbin":
|
||
return 1;
|
||
case "wuzhong":
|
||
return 0.8;
|
||
default:
|
||
return 0;
|
||
}
|
||
}
|
||
if (player.hasSkill("qinglonglingzhu")) {
|
||
if (rand2) return name == "chiyuxi" ? 0.8 : 0;
|
||
return name == "jingleishan" ? 0.8 : 0;
|
||
}
|
||
if (rand2) return name == "wanjian" ? 0.8 : 0;
|
||
return name == "nanman" ? 0.8 : 0;
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.chooseUseTarget(result.links[0][2], true, false);
|
||
}
|
||
},
|
||
ai: {
|
||
threaten: 1.5,
|
||
},
|
||
},
|
||
fengqi2: {
|
||
mod: {
|
||
wuxieRespondable: function () {
|
||
return false;
|
||
},
|
||
},
|
||
},
|
||
gaiming: {
|
||
trigger: { player: "judgeBefore" },
|
||
direct: true,
|
||
priority: 1,
|
||
unique: true,
|
||
content: function () {
|
||
"step 0";
|
||
event.cards = get.cards(7);
|
||
player.chooseCardButton(
|
||
true,
|
||
event.cards,
|
||
"改命:选择一张牌作为你的" + trigger.judgestr + "判定结果"
|
||
).ai = function (button) {
|
||
if (get.attitude(player, trigger.player) > 0) {
|
||
return 1 + trigger.judge(button.link);
|
||
}
|
||
if (get.attitude(player, trigger.player) < 0) {
|
||
return 1 - trigger.judge(button.link);
|
||
}
|
||
return 0;
|
||
};
|
||
"step 1";
|
||
if (!result.bool) {
|
||
event.finish();
|
||
return;
|
||
}
|
||
player.logSkill("gaiming", trigger.player);
|
||
var card = result.links[0];
|
||
event.cards.remove(card);
|
||
var judgestr = get.translation(trigger.player) + "的" + trigger.judgestr + "判定";
|
||
event.videoId = lib.status.videoId++;
|
||
event.dialog = ui.create.dialog(judgestr);
|
||
event.dialog.classList.add("center");
|
||
event.dialog.videoId = event.videoId;
|
||
|
||
game.addVideo("judge1", player, [get.cardInfo(card), judgestr, event.videoId]);
|
||
for (var i = 0; i < event.cards.length; i++) event.cards[i].discard();
|
||
// var node=card.copy('thrown','center',ui.arena).addTempClass('start');
|
||
var node;
|
||
if (game.chess) {
|
||
node = card.copy("thrown", "center", ui.arena).addTempClass("start");
|
||
} else {
|
||
node = player.$throwordered(card.copy(), true);
|
||
}
|
||
node.classList.add("thrownhighlight");
|
||
ui.arena.classList.add("thrownhighlight");
|
||
if (card) {
|
||
trigger.cancel();
|
||
trigger.result = {
|
||
card: card,
|
||
judge: trigger.judge(card),
|
||
node: node,
|
||
number: get.number(card),
|
||
suit: get.suit(card),
|
||
color: get.color(card),
|
||
};
|
||
if (trigger.result.judge > 0) {
|
||
trigger.result.bool = true;
|
||
trigger.player.popup("改命成功");
|
||
}
|
||
if (trigger.result.judge < 0) {
|
||
trigger.result.bool = false;
|
||
trigger.player.popup("改命失败");
|
||
}
|
||
game.log(trigger.player, "的判定结果为", card);
|
||
trigger.direct = true;
|
||
trigger.position.appendChild(card);
|
||
game.delay(2);
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
ui.arena.classList.remove("thrownhighlight");
|
||
event.dialog.close();
|
||
game.addVideo("judge2", null, event.videoId);
|
||
ui.clear();
|
||
var card = trigger.result.card;
|
||
trigger.position.appendChild(card);
|
||
trigger.result.node.delete();
|
||
game.delay();
|
||
},
|
||
},
|
||
tiandao: {
|
||
audio: true,
|
||
trigger: { global: "judge" },
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return player.countCards("he") > 0;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseCard(
|
||
get.translation(trigger.player) +
|
||
"的" +
|
||
(trigger.judgestr || "") +
|
||
"判定为" +
|
||
get.translation(trigger.player.judging[0]) +
|
||
"," +
|
||
get.prompt("tiandao"),
|
||
"he"
|
||
).ai = function (card) {
|
||
var trigger = _status.event.parent._trigger;
|
||
var player = _status.event.player;
|
||
var result = trigger.judge(card) - trigger.judge(trigger.player.judging[0]);
|
||
var attitude = get.attitude(player, trigger.player);
|
||
if (attitude == 0 || result == 0) return 0;
|
||
if (attitude > 0) {
|
||
return result;
|
||
} else {
|
||
return -result;
|
||
}
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.respond(result.cards, "highlight");
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (result.bool) {
|
||
player.logSkill("tiandao");
|
||
player.$gain2(trigger.player.judging[0]);
|
||
player.gain(trigger.player.judging[0]);
|
||
trigger.player.judging[0] = result.cards[0];
|
||
trigger.position.appendChild(result.cards[0]);
|
||
game.log(trigger.player, "的判定牌改为", result.cards[0]);
|
||
}
|
||
"step 3";
|
||
game.delay(2);
|
||
},
|
||
ai: {
|
||
tag: {
|
||
rejudge: 1,
|
||
},
|
||
threaten: 1.5,
|
||
},
|
||
},
|
||
lianji: {
|
||
audio: true,
|
||
enable: "phaseUse",
|
||
usable: 1,
|
||
filterTarget: function (card, player, target) {
|
||
if (player == target) return false;
|
||
return target.countCards("h") > 0;
|
||
},
|
||
selectTarget: 2,
|
||
multitarget: true,
|
||
multiline: true,
|
||
filter: function (event, player) {
|
||
return player.countCards("h") > 0;
|
||
},
|
||
prepare: "throw",
|
||
discard: false,
|
||
filterCard: true,
|
||
check: function (card) {
|
||
return 6 - get.value(card);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
if (targets[0].countCards("h") && targets[1].countCards("h")) {
|
||
targets[0].chooseToCompare(targets[1]);
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 1";
|
||
if (result.bool) {
|
||
targets[0].gain(cards);
|
||
targets[0].$gain2(cards);
|
||
targets[1].damage(targets[0]);
|
||
} else {
|
||
targets[1].gain(cards);
|
||
targets[1].$gain2(cards);
|
||
targets[0].damage(targets[1]);
|
||
}
|
||
},
|
||
ai: {
|
||
expose: 0.3,
|
||
threaten: 2,
|
||
order: 9,
|
||
result: {
|
||
target: -1,
|
||
},
|
||
},
|
||
},
|
||
mazui: {
|
||
audio: true,
|
||
enable: "phaseUse",
|
||
usable: 1,
|
||
filterCard: { color: "black" },
|
||
filterTarget: function (card, player, target) {
|
||
return !target.hasSkill("mazui2");
|
||
},
|
||
check: function (card) {
|
||
return 6 - get.value(card);
|
||
},
|
||
discard: false,
|
||
prepare: "give",
|
||
content: function () {
|
||
target.storage.mazui2 = cards[0];
|
||
target.addSkill("mazui2");
|
||
game.addVideo("storage", target, ["mazui2", get.cardInfo(target.storage.mazui2), "card"]);
|
||
},
|
||
ai: {
|
||
expose: 0.2,
|
||
result: {
|
||
target: function (player, target) {
|
||
return -target.hp;
|
||
},
|
||
},
|
||
order: 4,
|
||
threaten: 1.2,
|
||
},
|
||
},
|
||
mazui2: {
|
||
trigger: { source: "damageBegin1" },
|
||
forced: true,
|
||
mark: "card",
|
||
filter: function (event) {
|
||
return event.num > 0;
|
||
},
|
||
content: function () {
|
||
trigger.num--;
|
||
player.addSkill("mazui3");
|
||
player.removeSkill("mazui2");
|
||
},
|
||
intro: {
|
||
content: "card",
|
||
},
|
||
},
|
||
mazui3: {
|
||
trigger: { source: ["damageEnd", "damageZero"] },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.gain(player.storage.mazui2, "gain2");
|
||
game.log(player, "获得了", player.storage.mazui2);
|
||
player.removeSkill("mazui3");
|
||
delete player.storage.mazui2;
|
||
},
|
||
},
|
||
yunshen: {
|
||
trigger: { player: ["respond", "useCard"] },
|
||
filter: function (event, player) {
|
||
return event.card.name == "shan";
|
||
},
|
||
frequent: true,
|
||
init: function (player) {
|
||
player.storage.yunshen = 0;
|
||
},
|
||
content: function () {
|
||
player.storage.yunshen++;
|
||
player.markSkill("yunshen");
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (get.tag(card, "respondShan")) {
|
||
var shans = target.countCards("h", "shan");
|
||
var hs = target.countCards("h");
|
||
if (shans > 1) return [1, 1];
|
||
if (shans && hs > 2) return [1, 1];
|
||
if (shans) return [1, 0.5];
|
||
if (hs > 2) return [1, 0.3];
|
||
if (hs > 1) return [1, 0.2];
|
||
return [1.2, 0];
|
||
}
|
||
},
|
||
},
|
||
threaten: 0.8,
|
||
},
|
||
intro: {
|
||
content: "mark",
|
||
},
|
||
group: "yunshen2",
|
||
},
|
||
yunshen2: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return player.storage.yunshen > 0;
|
||
},
|
||
content: function () {
|
||
player.draw(player.storage.yunshen);
|
||
player.storage.yunshen = 0;
|
||
player.unmarkSkill("yunshen");
|
||
},
|
||
mod: {
|
||
globalTo: function (from, to, distance) {
|
||
if (typeof to.storage.yunshen == "number") return distance + to.storage.yunshen;
|
||
},
|
||
},
|
||
},
|
||
lingbo: {
|
||
audio: 2,
|
||
trigger: { player: ["respond", "useCard"] },
|
||
filter: function (event, player) {
|
||
return event.card.name == "shan";
|
||
},
|
||
frequent: true,
|
||
content: function () {
|
||
player.draw(2);
|
||
},
|
||
ai: {
|
||
mingzhi: false,
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (get.tag(card, "respondShan")) {
|
||
var shans = target.countCards("h", "shan");
|
||
var hs = target.countCards("h");
|
||
if (shans > 1) return [0, 1];
|
||
if (shans && hs > 2) return [0, 1];
|
||
if (shans) return [0, 0];
|
||
if (hs > 2) return [0, 0];
|
||
if (hs > 1) return [1, 0.5];
|
||
return [1.5, 0];
|
||
}
|
||
},
|
||
},
|
||
threaten: 0.8,
|
||
},
|
||
},
|
||
jiaoxia: {
|
||
audio: 2,
|
||
trigger: { target: "useCardToTargeted" },
|
||
filter: function (event, player) {
|
||
return event.card && get.color(event.card) == "red";
|
||
},
|
||
frequent: true,
|
||
content: function () {
|
||
player.draw();
|
||
},
|
||
ai: {
|
||
effect: function (card, player, target) {
|
||
if (get.color(card) == "red") return [1, 1];
|
||
},
|
||
},
|
||
},
|
||
boss_nbianshenx: {},
|
||
boss_jingjue: {
|
||
inherit: "boss_danshu",
|
||
},
|
||
boss_renxing: {
|
||
trigger: { global: ["damageEnd", "recoverEnd"] },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase != player;
|
||
},
|
||
content: function () {
|
||
player.draw();
|
||
},
|
||
},
|
||
boss_ruizhi: {
|
||
trigger: { global: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
event.player != player &&
|
||
(event.player.countCards("h") > 1 || event.player.countCards("e") > 1)
|
||
);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.line(trigger.player, "green");
|
||
var next = trigger.player.chooseCard(
|
||
true,
|
||
"选择保留一张手牌和一张装备区内的牌,然后弃置其它牌",
|
||
"he",
|
||
function (card) {
|
||
switch (get.position(card)) {
|
||
case "h": {
|
||
if (ui.selected.cards.length) {
|
||
return get.position(ui.selected.cards[0]) == "e";
|
||
} else {
|
||
return trigger.player.countCards("h") > 1;
|
||
}
|
||
}
|
||
case "e": {
|
||
if (ui.selected.cards.length) {
|
||
return get.position(ui.selected.cards[0]) == "h";
|
||
} else {
|
||
return trigger.player.countCards("e") > 1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
);
|
||
var num = 0;
|
||
if (trigger.player.countCards("h") > 1) {
|
||
num++;
|
||
}
|
||
if (trigger.player.countCards("e") > 1) {
|
||
num++;
|
||
}
|
||
next.selectCard = [num, num];
|
||
next.ai = function (card) {
|
||
return get.value(card);
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
var he = [];
|
||
var hs = trigger.player.getCards("h");
|
||
var es = trigger.player.getCards("e");
|
||
if (hs.length > 1) {
|
||
he = he.concat(hs);
|
||
}
|
||
if (es.length > 1) {
|
||
he = he.concat(es);
|
||
}
|
||
for (var i = 0; i < result.cards.length; i++) {
|
||
he.remove(result.cards[i]);
|
||
}
|
||
trigger.player.discard(he);
|
||
}
|
||
},
|
||
},
|
||
boss_nbaonu: {
|
||
group: ["boss_nbaonu_sha"],
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
priority: -1,
|
||
content: function () {
|
||
if (player.hp > 4) {
|
||
trigger.num = 4 + Math.floor(Math.random() * (player.hp - 3));
|
||
} else {
|
||
trigger.num = 4;
|
||
}
|
||
},
|
||
subSkill: {
|
||
sha: {
|
||
mod: {
|
||
cardUsable: function (card, player, num) {
|
||
if (card.name == "sha" && player.hp < 5) return Infinity;
|
||
},
|
||
},
|
||
trigger: { source: "damageBegin1" },
|
||
filter: function (event, player) {
|
||
return event.card && event.card.name == "sha" && event.notLink() && player.hp < 5;
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_shouyi: {
|
||
mod: {
|
||
targetInRange: function () {
|
||
return true;
|
||
},
|
||
},
|
||
},
|
||
boss_mengtai: {
|
||
group: [
|
||
"boss_mengtai_begin",
|
||
"boss_mengtai_draw",
|
||
"boss_mengtai_use",
|
||
"boss_mengtai_discard",
|
||
"boss_mengtai_end",
|
||
],
|
||
subSkill: {
|
||
begin: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.storage.boss_mengtai_draw = true;
|
||
player.storage.boss_mengtai_use = true;
|
||
},
|
||
},
|
||
draw: {
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.storage.boss_mengtai_draw = false;
|
||
},
|
||
},
|
||
use: {
|
||
trigger: { player: "phaseUseBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.storage.boss_mengtai_use = false;
|
||
},
|
||
},
|
||
discard: {
|
||
trigger: { player: "phaseDiscardBefore" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (player.storage.boss_mengtai_use) return true;
|
||
return false;
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
},
|
||
end: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (player.storage.boss_mengtai_draw) return true;
|
||
return false;
|
||
},
|
||
content: function () {
|
||
player.draw(3);
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_nbianshen: {
|
||
trigger: { player: "phaseBefore" },
|
||
forced: true,
|
||
popup: false,
|
||
priority: 25,
|
||
fixed: true,
|
||
filter: function (event, player) {
|
||
if (player.name == "boss_nianshou_heti" || player.storage.boss_nbianshen) return true;
|
||
return false;
|
||
},
|
||
content: function () {
|
||
if (player.storage.boss_nbianshen) {
|
||
var hp = player.hp,
|
||
maxHp = player.maxHp,
|
||
hujia = player.hujia;
|
||
player.init("boss_nianshou_" + player.storage.boss_nbianshen_next);
|
||
player.storage.boss_nbianshen.remove(player.storage.boss_nbianshen_next);
|
||
if (!player.storage.boss_nbianshen.length) {
|
||
player.storage.boss_nbianshen = ["jingjue", "renxing", "ruizhi", "baonu"];
|
||
}
|
||
player.storage.boss_nbianshen_next = player.storage.boss_nbianshen.randomGet(
|
||
player.storage.boss_nbianshen_next
|
||
);
|
||
player.hp = hp;
|
||
player.maxHp = maxHp;
|
||
player.hujia = hujia;
|
||
player.update();
|
||
} else {
|
||
player.storage.boss_nbianshen = ["jingjue", "renxing", "ruizhi", "baonu"];
|
||
player.storage.boss_nbianshen_next = player.storage.boss_nbianshen.randomGet();
|
||
player.markSkill("boss_nbianshen");
|
||
}
|
||
},
|
||
intro: {
|
||
content: function (storage, player) {
|
||
var map = {
|
||
jingjue: "警觉",
|
||
renxing: "任性",
|
||
ruizhi: "睿智",
|
||
baonu: "暴怒",
|
||
};
|
||
return "下一个状态:" + map[player.storage.boss_nbianshen_next];
|
||
},
|
||
},
|
||
},
|
||
boss_damagecount: {
|
||
mode: ["boss"],
|
||
global: "boss_damagecount2",
|
||
},
|
||
boss_damagecount2: {
|
||
trigger: { source: "damageEnd" },
|
||
silent: true,
|
||
filter: function (event, player) {
|
||
if (!ui.damageCount) return false;
|
||
return event.num > 0 && player.isFriendOf(game.me) && event.player.isEnemyOf(game.me);
|
||
},
|
||
content: function () {
|
||
_status.damageCount += trigger.num;
|
||
ui.damageCount.innerHTML = "伤害: " + _status.damageCount;
|
||
},
|
||
},
|
||
boss_nianrui: {
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num += 2;
|
||
},
|
||
ai: {
|
||
threaten: 1.6,
|
||
},
|
||
},
|
||
boss_qixiang: {
|
||
group: ["boss_qixiang1", "boss_qixiang2"],
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (card.name == "lebu" && card.name == "bingliang") return 0.8;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_qixiang1: {
|
||
trigger: { player: "judge" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (event.card) {
|
||
if (event.card.viewAs) {
|
||
return event.card.viewAs == "lebu";
|
||
} else {
|
||
return event.card.name == "lebu";
|
||
}
|
||
}
|
||
},
|
||
content: function () {
|
||
player.addTempSkill("boss_qixiang3", "judgeAfter");
|
||
},
|
||
},
|
||
boss_qixiang2: {
|
||
trigger: { player: "judge" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (event.card) {
|
||
if (event.card.viewAs) {
|
||
return event.card.viewAs == "bingliang";
|
||
} else {
|
||
return event.card.name == "bingliang";
|
||
}
|
||
}
|
||
},
|
||
content: function () {
|
||
player.addTempSkill("boss_qixiang4", "judgeAfter");
|
||
},
|
||
},
|
||
boss_qixiang3: {
|
||
mod: {
|
||
suit: function (card, suit) {
|
||
if (suit == "diamond") return "heart";
|
||
},
|
||
},
|
||
},
|
||
boss_qixiang4: {
|
||
mod: {
|
||
suit: function (card, suit) {
|
||
if (suit == "spade") return "club";
|
||
},
|
||
},
|
||
},
|
||
boss_bianshen2: {
|
||
mode: ["boss"],
|
||
fixed: true,
|
||
global: "boss_bianshen2x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_bianshen2x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_bianshen2");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss(["boss_niutou", "boss_mamian"].randomGet());
|
||
},
|
||
},
|
||
boss_bianshen3: {
|
||
mode: ["boss"],
|
||
global: "boss_bianshen3x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
fixed: true,
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_bianshen3x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_bianshen3");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss(["boss_baiwuchang", "boss_heiwuchang"].randomGet());
|
||
},
|
||
},
|
||
boss_bianshen4: {
|
||
mode: ["boss"],
|
||
global: "boss_bianshen4x",
|
||
trigger: { player: "dieBegin" },
|
||
silent: true,
|
||
fixed: true,
|
||
content: function () {
|
||
player.hide();
|
||
game.addVideo("hidePlayer", player);
|
||
},
|
||
},
|
||
boss_bianshen4x: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
priority: -10,
|
||
fixed: true,
|
||
globalFixed: true,
|
||
filter: function (event) {
|
||
if (lib.config.mode != "boss") return false;
|
||
return event.player == game.boss && event.player.hasSkill("boss_bianshen4");
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay();
|
||
"step 1";
|
||
game.changeBoss(["boss_yecha", "boss_luocha"].randomGet());
|
||
},
|
||
},
|
||
boss_moyany: {
|
||
trigger: { player: "loseEnd" },
|
||
frequent: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase != player;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.judge(function (card) {
|
||
return get.color(card) == "red" ? 1 : 0;
|
||
});
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.chooseTarget(
|
||
true,
|
||
"选择一个目标对其造成两点火焰伤害",
|
||
function (card, player, target) {
|
||
return player != target;
|
||
}
|
||
).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "fire");
|
||
};
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (result.targets.length) {
|
||
player.line(result.targets, "fire");
|
||
result.targets[0].damage(2, "fire");
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card) {
|
||
if (get.tag(card, "loseCard")) {
|
||
return [0.5, 1];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_danshu: {
|
||
trigger: { player: "loseEnd" },
|
||
frequent: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase != player && player.hp < player.maxHp;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.judge(function (card) {
|
||
return get.color(card) == "red" ? 1 : 0;
|
||
});
|
||
"step 1";
|
||
if (result.color == "red") {
|
||
player.recover();
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card) {
|
||
if (get.tag(card, "loseCard")) {
|
||
return [0.5, 1];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_modao: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
player.draw(2);
|
||
},
|
||
},
|
||
boss_mojian: {
|
||
trigger: { player: "phaseUseBegin" },
|
||
content: function () {
|
||
var list = game.filterPlayer(function (current) {
|
||
return player.canUse("wanjian", current) && current.isEnemyOf(player);
|
||
});
|
||
list.sort(lib.sort.seat);
|
||
player.useCard({ name: "wanjian" }, list);
|
||
},
|
||
ai: {
|
||
threaten: 1.8,
|
||
},
|
||
},
|
||
boss_yushou: {
|
||
trigger: { player: "phaseUseBegin" },
|
||
content: function () {
|
||
var list = game.filterPlayer(function (current) {
|
||
return player.canUse("nanman", current) && current.isEnemyOf(player);
|
||
});
|
||
list.sort(lib.sort.seat);
|
||
player.useCard({ name: "nanman" }, list);
|
||
},
|
||
},
|
||
boss_zuijiu: {
|
||
trigger: { source: "damageBegin1" },
|
||
filter: function (event) {
|
||
return event.card && event.card.name == "sha" && event.getParent().name == "sha";
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
},
|
||
boss_xixing: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("boss_xixing"), function (card, player, target) {
|
||
return player != target && target.isLinked();
|
||
}).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "thunder");
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_xixing", result.targets);
|
||
result.targets[0].damage("thunder");
|
||
player.recover();
|
||
}
|
||
},
|
||
},
|
||
boss_suoming: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return game.hasPlayer(function (current) {
|
||
return current != player && !current.isLinked();
|
||
});
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var num = game.countPlayer(function (current) {
|
||
return current != player && !current.isLinked();
|
||
});
|
||
player.chooseTarget(
|
||
get.prompt("boss_suoming"),
|
||
[1, num],
|
||
function (card, player, target) {
|
||
return !target.isLinked() && player != target;
|
||
}
|
||
).ai = function (target) {
|
||
return -get.attitude(player, target);
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_suoming", result.targets);
|
||
event.targets = result.targets;
|
||
event.num = 0;
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (event.num < event.targets.length) {
|
||
event.targets[event.num].link();
|
||
event.num++;
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_taiping: {
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num += 2;
|
||
},
|
||
},
|
||
boss_baolian: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
player.draw(2);
|
||
},
|
||
},
|
||
boss_xiaoshou: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("boss_xiaoshou"), function (card, player, target) {
|
||
return player != target && target.hp >= player.hp;
|
||
}).ai = function (target) {
|
||
return get.damageEffect(target, player, player);
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_xiaoshou", result.targets);
|
||
result.targets[0].damage(3);
|
||
}
|
||
},
|
||
},
|
||
boss_manjia: {
|
||
group: ["boss_manjia1", "boss_manjia2"],
|
||
},
|
||
boss_manjia1: {
|
||
trigger: { target: ["useCardToBefore", "shaBegin"] },
|
||
forced: true,
|
||
priority: 6,
|
||
filter: function (event, player, name) {
|
||
if (player.getEquip(2)) return false;
|
||
if (name == "shaBegin") return lib.skill.tengjia3.filter(event, player);
|
||
return lib.skill.tengjia1.filter(event, player);
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (target.getEquip(2)) return;
|
||
return lib.skill.tengjia1.ai.effect.target.apply(this, arguments);
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_manjia2: {
|
||
trigger: { player: "damageBegin3" },
|
||
filter: function (event, player) {
|
||
if (player.getEquip(2)) return false;
|
||
if (event.hasNature("fire")) return true;
|
||
},
|
||
forced: true,
|
||
check: function () {
|
||
return false;
|
||
},
|
||
content: function () {
|
||
trigger.num++;
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (target.getEquip(2)) return;
|
||
return lib.skill.tengjia2.ai.effect.target.apply(this, arguments);
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_lianyu: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
unique: true,
|
||
content: function () {
|
||
"step 0";
|
||
event.players = get.players(player);
|
||
"step 1";
|
||
if (event.players.length) {
|
||
var current = event.players.shift();
|
||
if (current.isEnemyOf(player)) {
|
||
player.line(current, "fire");
|
||
current.damage("fire");
|
||
}
|
||
event.redo();
|
||
}
|
||
},
|
||
ai: {
|
||
threaten: 2,
|
||
},
|
||
},
|
||
boss_guiji: {
|
||
trigger: { player: "phaseJudgeBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
player.discard(player.getCards("j").randomGet());
|
||
},
|
||
filter: function (event, player) {
|
||
return player.countCards("j") > 0;
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (get.type(card) == "delay" && target.countCards("j") == 0) return 0.1;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_minbao: {
|
||
global: "boss_minbao2",
|
||
},
|
||
boss_minbao2: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
globalFixed: true,
|
||
filter: function (event, player) {
|
||
return event.player.hasSkill("boss_minbao") && event.player.isDead();
|
||
},
|
||
content: function () {
|
||
trigger.player.line(player, "fire");
|
||
player.damage("nosource", "fire").animate = false;
|
||
player.$damage(trigger.player);
|
||
player.$damagepop(-1, "fire");
|
||
if (lib.config.animation && !lib.config.low_performance) {
|
||
player.$fire();
|
||
}
|
||
if (!event.parent.parent.boss_minbao_logv) {
|
||
event.parent.parent.boss_minbao_logv = true;
|
||
game.logv(trigger.player, "boss_minbao", game.filterPlayer(), event.parent.parent);
|
||
}
|
||
},
|
||
},
|
||
boss_guihuo: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("boss_guihuo"), function (card, player, target) {
|
||
return player != target;
|
||
}).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "fire");
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_guihuo", result.targets);
|
||
result.targets[0].damage("fire");
|
||
}
|
||
},
|
||
},
|
||
boss_luolei: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("boss_luolei"), function (card, player, target) {
|
||
return player != target;
|
||
}).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "thunder");
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_luolei", result.targets);
|
||
result.targets[0].damage("thunder");
|
||
}
|
||
},
|
||
},
|
||
boss_beiming: {
|
||
trigger: { player: "dieBegin" },
|
||
forced: true,
|
||
filter: function (event) {
|
||
return event.source != undefined;
|
||
},
|
||
content: function () {
|
||
trigger.source.discard(trigger.source.getCards("h"));
|
||
},
|
||
ai: {
|
||
threaten: 0.7,
|
||
},
|
||
},
|
||
boss_shanbeng: {
|
||
global: "boss_shanbeng2",
|
||
trigger: { player: "dieBegin" },
|
||
forced: true,
|
||
logv: false,
|
||
content: function () {
|
||
var targets = game.filterPlayer(function (current) {
|
||
return current.countCards("e");
|
||
});
|
||
player.line(targets, "green");
|
||
game.delay();
|
||
game.logv(player, "boss_shanbeng", targets, null, true);
|
||
},
|
||
},
|
||
boss_shanbeng2: {
|
||
trigger: { global: "dieAfter" },
|
||
forced: true,
|
||
globalFixed: true,
|
||
filter: function (event, player) {
|
||
return (
|
||
player.countCards("e") > 0 &&
|
||
event.player.hasSkill("boss_shanbeng") &&
|
||
event.player.isDead()
|
||
);
|
||
},
|
||
content: function () {
|
||
player.discard(player.getCards("e"));
|
||
},
|
||
},
|
||
boss_didong: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("boss_didong"), function (card, player, target) {
|
||
return target.isEnemyOf(player);
|
||
}).ai = function (target) {
|
||
var att = get.attitude(player, target);
|
||
if (target.isTurnedOver()) {
|
||
if (att > 0) {
|
||
return att + 5;
|
||
}
|
||
return -1;
|
||
}
|
||
if (player.isTurnedOver()) {
|
||
return 5 - att;
|
||
}
|
||
return -att;
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_didong", result.targets);
|
||
result.targets[0].turnOver();
|
||
}
|
||
},
|
||
ai: {
|
||
threaten: 1.7,
|
||
},
|
||
},
|
||
boss_guimei: {
|
||
mod: {
|
||
targetEnabled: function (card, player, target) {
|
||
if (get.type(card) == "delay") {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
boss_bianshen: {
|
||
trigger: { global: "gameStart" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
player.smoothAvatar();
|
||
player.init(["boss_chi", "boss_mo", "boss_wang", "boss_liang"].randomGet());
|
||
game.addVideo("reinit2", player, player.name);
|
||
},
|
||
},
|
||
boss_bianshen_intro1: { nobracket: true },
|
||
boss_bianshen_intro2: { nobracket: true },
|
||
boss_bianshen_intro3: { nobracket: true },
|
||
boss_bianshen_intro4: { nobracket: true },
|
||
boss_chiyan_intro1: { nobracket: true },
|
||
boss_chiyan_intro2: { nobracket: true },
|
||
boss_chiyan_intro3: { nobracket: true },
|
||
boss_chiyan_intro4: { nobracket: true },
|
||
boss_qingmu_intro1: { nobracket: true },
|
||
boss_qingmu_intro2: { nobracket: true },
|
||
boss_qingmu_intro3: { nobracket: true },
|
||
boss_qingmu_intro4: { nobracket: true },
|
||
boss_baimang_intro1: { nobracket: true },
|
||
boss_baimang_intro2: { nobracket: true },
|
||
boss_baimang_intro3: { nobracket: true },
|
||
boss_baimang_intro4: { nobracket: true },
|
||
boss_xuanlin_intro1: { nobracket: true },
|
||
boss_xuanlin_intro2: { nobracket: true },
|
||
boss_xuanlin_intro3: { nobracket: true },
|
||
boss_xuanlin_intro4: { nobracket: true },
|
||
boss_leiji: {
|
||
audio: 2,
|
||
trigger: { player: ["respond", "useCard"] },
|
||
filter: function (event, player) {
|
||
return event.card.name == "shan";
|
||
},
|
||
direct: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("boss_leiji")).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "thunder");
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_leiji", result.targets, "thunder");
|
||
event.target = result.targets[0];
|
||
event.target.judge(function (card) {
|
||
// var suit=get.suit(card);
|
||
// if(suit=='spade') return -4;
|
||
// if(suit=='club') return -2;
|
||
if (get.color(card) == "black") return -2;
|
||
return 0;
|
||
});
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (result.bool == false) {
|
||
event.target.damage("thunder");
|
||
player.draw();
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target, current) {
|
||
if (get.tag(card, "respondShan")) {
|
||
var hastarget = false,
|
||
players = game.filterPlayer();
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (get.attitude(target, players[i]) < 0) {
|
||
hastarget = true;
|
||
break;
|
||
}
|
||
}
|
||
var be = target.countCards("e", { color: "black" });
|
||
if (target.countCards("h", "shan") && be) {
|
||
if (!target.hasSkill("guidao")) return 0;
|
||
return [0, hastarget ? target.countCards("he") / 2 : 0];
|
||
}
|
||
if (target.countCards("h", "shan") && target.countCards("h") > 2) {
|
||
if (!target.hasSkill("guidao")) return 0;
|
||
return [0, hastarget ? target.countCards("h") / 4 : 0];
|
||
}
|
||
if (target.countCards("h") > 3 || (be && target.countCards("h") >= 2)) {
|
||
return [0, 0];
|
||
}
|
||
if (target.countCards("h") == 0) {
|
||
return [1.5, 0];
|
||
}
|
||
if (target.countCards("h") == 1 && !be) {
|
||
return [1.2, 0];
|
||
}
|
||
if (!target.hasSkill("guidao")) return [1, 0.05];
|
||
return [1, Math.min(0.5, (target.countCards("h") + be) / 4)];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
wuqin: {
|
||
audio: 2,
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
filter: function (event, player) {
|
||
return player.countCards("h") == 0;
|
||
},
|
||
content: function () {
|
||
player.draw(3);
|
||
},
|
||
},
|
||
boss_baolin: {
|
||
audio: true,
|
||
inherit: "juece",
|
||
},
|
||
boss_qiangzheng: {
|
||
audio: 2,
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return game.hasPlayer(function (current) {
|
||
return current != player && current.countCards("h");
|
||
});
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var players = get.players(player);
|
||
players.remove(player);
|
||
event.players = players;
|
||
player.line(players, "green");
|
||
"step 1";
|
||
if (event.players.length) {
|
||
var current = event.players.shift();
|
||
var hs = current.getCards("h");
|
||
if (hs.length) {
|
||
var card = hs.randomGet();
|
||
player.gain(card, current);
|
||
current.$giveAuto(card, player);
|
||
}
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
guizhen: {
|
||
audio: 2,
|
||
trigger: { player: "loseEnd" },
|
||
frequent: true,
|
||
filter: function (event, player) {
|
||
if (player.countCards("h")) return false;
|
||
for (var i = 0; i < event.cards.length; i++) {
|
||
if (event.cards[i].original == "h") return true;
|
||
}
|
||
return false;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var players = get.players(player);
|
||
players.remove(player);
|
||
event.players = players;
|
||
"step 1";
|
||
if (event.players.length) {
|
||
var current = event.players.shift();
|
||
var hs = current.getCards("h");
|
||
if (hs.length) {
|
||
current.lose(hs)._triggered = null;
|
||
current.$throw(hs);
|
||
} else {
|
||
current.loseHp();
|
||
}
|
||
game.delay(0.5);
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_konghun: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
filter: function () {
|
||
return game.players.length >= 3;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(function (card, player, target) {
|
||
return target != player;
|
||
}).ai = function () {
|
||
return 1;
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("boss_konghun", result.targets);
|
||
result.targets[0].goMad();
|
||
}
|
||
},
|
||
group: "boss_konghun2",
|
||
},
|
||
boss_konghun2: {
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
forced: true,
|
||
popup: false,
|
||
content: function () {
|
||
var players = game.players.concat(game.dead);
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i].isMad()) {
|
||
players[i].unMad();
|
||
}
|
||
}
|
||
},
|
||
},
|
||
yuehun: {
|
||
unique: true,
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
frequent: true,
|
||
content: function () {
|
||
player.recover();
|
||
player.draw(2);
|
||
},
|
||
},
|
||
boss_wange: {
|
||
inherit: "boss_guiji",
|
||
},
|
||
fengwu: {
|
||
audio: 2,
|
||
unique: true,
|
||
enable: "phaseUse",
|
||
usable: 1,
|
||
content: function () {
|
||
"step 0";
|
||
event.current = player.next;
|
||
"step 1";
|
||
event.current.chooseToUse({ name: "sha" }, function (card, player, target) {
|
||
if (player == target) return false;
|
||
if (get.distance(player, target) <= 1) return true;
|
||
var players = game.filterPlayer();
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i] == player) continue;
|
||
if (get.distance(player, players[i]) < get.distance(player, target)) return false;
|
||
}
|
||
return true;
|
||
});
|
||
"step 2";
|
||
if (result.bool == false) event.current.loseHp();
|
||
if (event.current.next != player) {
|
||
event.current = event.current.next;
|
||
game.delay(0.5);
|
||
event.goto(1);
|
||
}
|
||
},
|
||
ai: {
|
||
order: 1,
|
||
result: {
|
||
player: function (player) {
|
||
if (player.countCards("h", "shan")) return 1;
|
||
var num = 0,
|
||
players = game.filterPlayer();
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i].canUse("sha", player) && players[i].countCards("h") > 1) {
|
||
num--;
|
||
} else {
|
||
num++;
|
||
}
|
||
}
|
||
return num;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
huanhua: {
|
||
audio: 2,
|
||
trigger: { global: "gameDrawAfter" },
|
||
forced: true,
|
||
unique: true,
|
||
content: function () {
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i] == player) continue;
|
||
player.maxHp += game.players[i].maxHp;
|
||
if (!game.players[i].name || !lib.character[game.players[i].name]) continue;
|
||
var skills = lib.character[game.players[i].name][3];
|
||
for (var j = 0; j < skills.length; j++) {
|
||
if (!lib.skill[skills[j]].forceunique) {
|
||
player.addSkill(skills[j]);
|
||
}
|
||
}
|
||
}
|
||
player.hp = player.maxHp;
|
||
player.update();
|
||
},
|
||
group: ["huanhua3", "huanhua4"],
|
||
ai: {
|
||
threaten: 0.8,
|
||
effect: {
|
||
target: function (card) {
|
||
if (card.name == "bingliang") return 0;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
huanhua2: {
|
||
trigger: { player: "phaseDrawBefore" },
|
||
priority: 10,
|
||
forced: true,
|
||
popup: false,
|
||
check: function () {
|
||
return false;
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
},
|
||
huanhua3: {
|
||
trigger: { global: "drawAfter" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (event.parent.name != "phaseDraw") return false;
|
||
return event.player != player;
|
||
},
|
||
content: function () {
|
||
player.draw(trigger.num);
|
||
},
|
||
},
|
||
huanhua4: {
|
||
trigger: { global: "discardAfter" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (event.parent.parent.name != "phaseDiscard") return false;
|
||
return event.player != player;
|
||
},
|
||
content: function () {
|
||
player.chooseToDiscard(trigger.cards.length, true);
|
||
},
|
||
},
|
||
jidian: {
|
||
audio: 2,
|
||
trigger: { source: "damageAfter" },
|
||
direct: true,
|
||
unique: true,
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseTarget(get.prompt("jidian"), function (card, player, target) {
|
||
return get.distance(trigger.player, target) <= 1 && trigger.player != target;
|
||
}).ai = function (target) {
|
||
return get.damageEffect(target, player, player, "thunder") + 0.1;
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
event.target = result.targets[0];
|
||
event.target.judge(function (card) {
|
||
return get.color(card) == "red" ? 0 : -1;
|
||
});
|
||
player.logSkill("jidian", event.target, false);
|
||
trigger.player.line(event.target, "thunder");
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (result.color == "black") {
|
||
event.target.damage("thunder");
|
||
}
|
||
},
|
||
},
|
||
tinqin: {
|
||
audio: false,
|
||
inherit: "manjuan",
|
||
},
|
||
boss_hujia: {
|
||
audio: 2,
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
if (player.hp == player.maxHp) return false;
|
||
if (!player.countCards("he")) return false;
|
||
return true;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.chooseCardTarget({
|
||
position: "he",
|
||
filterTarget: function (card, player, target) {
|
||
if (player == target) return false;
|
||
if (!lib.character[target.name]) return false;
|
||
return true;
|
||
},
|
||
filterCard: lib.filter.cardDiscardable,
|
||
ai1: function (card) {
|
||
return get.unuseful(card) + 9;
|
||
},
|
||
ai2: function (target) {
|
||
if (target.storage.boss_hujia) return Math.max(1, 10 - target.maxHp);
|
||
return 1 / target.maxHp;
|
||
},
|
||
prompt: get.prompt("boss_hujia"),
|
||
});
|
||
"step 1";
|
||
if (result.bool) {
|
||
var target = result.targets[0];
|
||
player.logSkill("boss_hujia", target);
|
||
if (target.storage.boss_hujia) {
|
||
target.loseMaxHp();
|
||
} else {
|
||
target.disableSkill("boss_hujia", lib.character[target.name][3]);
|
||
target.storage.boss_hujia = true;
|
||
}
|
||
player.discard(result.cards);
|
||
}
|
||
},
|
||
ai: {
|
||
expose: 0.2,
|
||
},
|
||
},
|
||
boss_guihan: {
|
||
audio: 2,
|
||
unique: true,
|
||
enable: "chooseToUse",
|
||
mark: true,
|
||
derivation: ["tinqin", "boss_huixin"],
|
||
init: function (player) {
|
||
player.storage.boss_guihan = false;
|
||
},
|
||
filter: function (event, player) {
|
||
if (event.type != "dying") return false;
|
||
if (!player.isDying()) return false;
|
||
if (player.storage.boss_guihan) return false;
|
||
return true;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.removeSkill("boss_guihan");
|
||
player.recover(player.maxHp - player.hp);
|
||
player.storage.boss_guihan = true;
|
||
"step 1";
|
||
player.draw(4);
|
||
"step 2";
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
game.players[i].enableSkill("boss_hujia");
|
||
delete game.players[i].storage.boss_hujia;
|
||
}
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
_status.roundStart = game.boss;
|
||
}
|
||
player.removeSkill("beige");
|
||
player.removeSkill("boss_hujia");
|
||
player.addSkill("tinqin");
|
||
player.addSkill("boss_huixin");
|
||
},
|
||
ai: {
|
||
skillTagFilter: function (player) {
|
||
if (player.storage.boss_guihan) return false;
|
||
},
|
||
save: true,
|
||
result: {
|
||
player: 4,
|
||
},
|
||
},
|
||
intro: {
|
||
content: "limited",
|
||
},
|
||
},
|
||
huoshen: {
|
||
trigger: { player: "damageBegin1" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
return event.hasNature("fire");
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
player.recover();
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card) {
|
||
if (get.tag(card, "fireDamage")) {
|
||
return [0, 2];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_xianyin: {
|
||
trigger: { player: "loseEnd" },
|
||
frequent: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase != player;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.judge(function (card) {
|
||
return get.color(card) == "red" ? 1 : 0;
|
||
});
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.chooseTarget(
|
||
true,
|
||
"选择一个目标令其失去1点体力",
|
||
function (card, player, target) {
|
||
return player != target;
|
||
}
|
||
).ai = function (target) {
|
||
return Math.max(1, 9 - target.hp);
|
||
};
|
||
} else {
|
||
event.finish();
|
||
}
|
||
"step 2";
|
||
if (result.targets.length) {
|
||
player.line(result.targets);
|
||
result.targets[0].loseHp();
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card) {
|
||
if (get.tag(card, "loseCard")) {
|
||
return [0.5, 1];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_huixin: {
|
||
trigger: { player: "loseEnd" },
|
||
frequent: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return _status.currentPhase != player;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.judge();
|
||
"step 1";
|
||
if (result.color == "black") {
|
||
_status.currentPhase.loseHp();
|
||
} else {
|
||
player.recover();
|
||
player.draw();
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card) {
|
||
if (get.tag(card, "loseCard")) {
|
||
return [0.5, 1];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_shengshou: {
|
||
audio: true,
|
||
trigger: { player: "useCard" },
|
||
frequent: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return player.hp < player.maxHp;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
player.judge(function (card) {
|
||
return get.color(card) == "red" ? 1 : 0;
|
||
});
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.recover();
|
||
}
|
||
},
|
||
},
|
||
boss_honglian: {
|
||
audio: 2,
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
unique: true,
|
||
content: function () {
|
||
"step 0";
|
||
event.players = get.players(player);
|
||
event.players.remove(player);
|
||
player.draw(2);
|
||
"step 1";
|
||
if (event.players.length) {
|
||
event.players.shift().damage("fire");
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_yuhuo: {
|
||
trigger: { player: "niepanAfter" },
|
||
forced: true,
|
||
unique: true,
|
||
derivation: ["shenwei", "zhuyu"],
|
||
content: function () {
|
||
player.addSkill("kanpo");
|
||
player.addSkill("shenwei");
|
||
player.addSkill("zhuyu");
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
_status.roundStart = game.boss;
|
||
}
|
||
},
|
||
},
|
||
boss_tianyu: {
|
||
audio: true,
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
if (player.isLinked()) return true;
|
||
return game.hasPlayer(function (current) {
|
||
return current != player && !current.isLinked();
|
||
});
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.targets = game.filterPlayer();
|
||
event.targets.remove(player);
|
||
event.targets.sort(lib.sort.seat);
|
||
if (player.isLinked()) player.link();
|
||
"step 1";
|
||
if (event.targets.length) {
|
||
var target = event.targets.shift();
|
||
if (!target.isLinked()) {
|
||
target.link();
|
||
player.line(target, "green");
|
||
}
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_jizhi: {
|
||
audio: 2,
|
||
trigger: { player: "useCard" },
|
||
frequent: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
var type = get.type(event.card, "trick");
|
||
return type != "basic" && event.card.isCard;
|
||
},
|
||
content: function () {
|
||
var cards = get.cards();
|
||
player.gain(cards, "gain2");
|
||
game.log(player, "获得了", cards);
|
||
},
|
||
ai: {
|
||
threaten: 1.4,
|
||
noautowuxie: true,
|
||
},
|
||
},
|
||
boss_guiyin: {
|
||
mod: {
|
||
targetEnabled: function (card, player, target) {
|
||
if (_status.currentPhase == player && target.hp < player.hp) return false;
|
||
},
|
||
},
|
||
},
|
||
boss_gongshen: {
|
||
trigger: { global: "gameDrawAfter" },
|
||
forced: true,
|
||
unique: true,
|
||
content: function () {
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i] != player) {
|
||
game.players[i].forcemin = true;
|
||
}
|
||
}
|
||
},
|
||
mod: {
|
||
targetEnabled: function (card, player, target) {
|
||
if (get.type(card) == "delay" && player != target) {
|
||
return false;
|
||
}
|
||
},
|
||
},
|
||
},
|
||
fanghua: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function () {
|
||
return game.hasPlayer(function (current) {
|
||
return current.isTurnedOver();
|
||
});
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.players = get.players(player);
|
||
event.num = 0;
|
||
for (var i = 0; i < event.players.length; i++) {
|
||
if (!event.players[i].isTurnedOver()) {
|
||
event.players.splice(i--, 1);
|
||
}
|
||
}
|
||
"step 1";
|
||
if (event.players.length) {
|
||
event.players.shift().loseHp();
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
tashui: {
|
||
audio: 2,
|
||
trigger: { player: ["useCard", "respondAfter"] },
|
||
direct: true,
|
||
unique: true,
|
||
filter: function (event) {
|
||
return get.color(event.card) == "black";
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
game.delay(0.5);
|
||
player.chooseTarget(get.prompt("tashui"), function (card, player, target) {
|
||
return player != target;
|
||
}).ai = function (target) {
|
||
// if(target.isTurnedOver()) return -1;
|
||
var player = _status.event.player;
|
||
if (get.attitude(_status.event.player, target) == 0) return 0;
|
||
if (get.attitude(_status.event.player, target) > 0) {
|
||
if (target.classList.contains("turnedover")) return 3;
|
||
if (target.hasSkillTag("noturn")) return 1;
|
||
return -1;
|
||
} else {
|
||
if (target.hasSkillTag("noturn")) return 0;
|
||
if (target.classList.contains("turnedover")) return -1;
|
||
return 5 - target.getDamagedHp();
|
||
}
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("tashui", result.targets, "thunder");
|
||
result.targets[0].turnOver();
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
player: function (card) {
|
||
if (get.color(card) == "black") {
|
||
return [1, 2];
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
shangshix: {
|
||
trigger: { player: ["loseEnd", "changeHp"] },
|
||
forced: true,
|
||
unique: true,
|
||
audio: 2,
|
||
filter: function (event, player) {
|
||
return player.countCards("h") < 4;
|
||
},
|
||
content: function () {
|
||
player.draw(4 - player.countCards("h"));
|
||
},
|
||
group: "shangshix2",
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (card.name == "shunshou") return;
|
||
if (card.name == "guohe") {
|
||
if (!target.countCards("e")) return [0, 1];
|
||
} else if (get.tag(card, "loseCard")) {
|
||
return [0, 1];
|
||
}
|
||
},
|
||
},
|
||
noh: true,
|
||
},
|
||
},
|
||
xiuluo: {
|
||
audio: 2,
|
||
trigger: { player: "phaseZhunbeiBegin" },
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return player.countCards("j") > 0;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var next = player.discardPlayerCard(
|
||
player,
|
||
2,
|
||
"hj",
|
||
"是否一张手牌来弃置一张花色相同的判定牌?"
|
||
);
|
||
next.filterButton = function (button) {
|
||
var card = button.link;
|
||
if (!lib.filter.cardDiscardable(card, player)) return false;
|
||
if (ui.selected.buttons.length == 0) return true;
|
||
if (get.position(ui.selected.buttons[0].link) == "h") {
|
||
if (get.position(card) != "j") return false;
|
||
}
|
||
if (get.position(ui.selected.buttons[0].link) == "j") {
|
||
if (get.position(card) != "h") return false;
|
||
}
|
||
return get.suit(card) == get.suit(ui.selected.buttons[0].link);
|
||
};
|
||
next.ai = function (button) {
|
||
var card = button.link;
|
||
if (get.position(card) == "h") {
|
||
return 11 - get.value(card);
|
||
}
|
||
if (card.name == "lebu") return 5;
|
||
if (card.name == "bingliang") return 4;
|
||
if (card.name == "guiyoujie") return 3;
|
||
return 2;
|
||
};
|
||
next.logSkill = "xiuluo";
|
||
"step 1";
|
||
if (result.bool && player.countCards("j")) event.goto(0);
|
||
},
|
||
},
|
||
shangshix2: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
forced: true,
|
||
unique: true,
|
||
filter: function (event, player) {
|
||
return player.hp > 1;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
event.players = get.players(player);
|
||
event.num = 0;
|
||
"step 1";
|
||
if (event.players.length) {
|
||
event.players.shift().loseHp();
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
boss_wuxin: {
|
||
audio: 2,
|
||
mod: {
|
||
targetEnabled: function (card, player, target) {
|
||
if (get.type(card) == "delay" && player != target) return false;
|
||
},
|
||
},
|
||
trigger: { player: "damageBefore" },
|
||
forced: true,
|
||
priority: 10,
|
||
content: function () {
|
||
trigger.cancel();
|
||
player.loseHp();
|
||
},
|
||
},
|
||
shenwei: {
|
||
audio: 2,
|
||
unique: true,
|
||
trigger: { player: "phaseDrawBegin" },
|
||
forced: true,
|
||
content: function () {
|
||
trigger.num += Math.min(3, game.players.length - 1);
|
||
},
|
||
mod: {
|
||
maxHandcard: function (player, current) {
|
||
return current + Math.min(3, game.players.length - 1);
|
||
},
|
||
},
|
||
},
|
||
boss_baonuwash: {
|
||
trigger: { player: "phaseAfter" },
|
||
forced: true,
|
||
content: function () {
|
||
game.over(game.me == game.boss);
|
||
},
|
||
temp: true,
|
||
},
|
||
boss_baonu: {
|
||
unique: true,
|
||
trigger: { player: "changeHp", global: "boss_baonuwash" },
|
||
forced: true,
|
||
priority: 100,
|
||
fixed: true,
|
||
audio: 2,
|
||
mode: ["identity", "guozhan", "boss", "stone"],
|
||
init: function (player) {
|
||
if (get.mode() == "boss" && player == game.boss) {
|
||
lib.onwash.push(function () {
|
||
if (!_status.boss_baonuwash) {
|
||
_status.boss_baonuwash = true;
|
||
_status.event.parent.trigger("boss_baonuwash");
|
||
} else {
|
||
_status.event.player.addSkill("boss_baonuwash");
|
||
}
|
||
});
|
||
for (var i in lib.card) {
|
||
if (lib.card[i].subtype == "equip1") lib.card[i].recastable = true;
|
||
}
|
||
}
|
||
},
|
||
filter: function (event, player) {
|
||
return player.hp <= 4 || _status.boss_baonuwash;
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
if (player.hp > 6) {
|
||
game.delay();
|
||
}
|
||
"step 1";
|
||
player
|
||
.chooseControl("暴怒战神", "神鬼无前", function () {
|
||
if (Math.random() < 0.5) return "神鬼无前";
|
||
return "暴怒战神";
|
||
})
|
||
.set("prompt", "选择一个形态");
|
||
"step 2";
|
||
var hp = player.hp;
|
||
player.removeSkill("boss_baonu", true);
|
||
if (result.control == "暴怒战神") {
|
||
player.init("boss_lvbu2");
|
||
} else {
|
||
player.init("boss_lvbu3");
|
||
}
|
||
if (hp > 6) {
|
||
player.maxHp = hp;
|
||
player.hp = hp;
|
||
}
|
||
player.update();
|
||
ui.clear();
|
||
if (player.isLinked()) player.link();
|
||
if (player.isTurnedOver()) player.turnOver();
|
||
player.discard(player.getCards("j"));
|
||
"step 3";
|
||
while (_status.event.name != "phaseLoop") {
|
||
_status.event = _status.event.parent;
|
||
}
|
||
game.resetSkills();
|
||
_status.paused = false;
|
||
_status.event.player = player;
|
||
_status.event.step = 0;
|
||
if (game.bossinfo) {
|
||
game.bossinfo.loopType = 1;
|
||
_status.roundStart = game.boss;
|
||
}
|
||
},
|
||
ai: {
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (get.tag(card, "damage") || get.tag(card, "loseHp")) {
|
||
if (player.hp == 5) {
|
||
if (game.players.length < 4) return [0, 5];
|
||
var num = 0;
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (game.players[i] != game.boss && game.players[i].hp == 1) {
|
||
num++;
|
||
}
|
||
}
|
||
if (num > 1) return [0, 2];
|
||
if (num && Math.random() < 0.7) return [0, 1];
|
||
}
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
qiwu: {
|
||
audio: true,
|
||
trigger: { player: "useCard" },
|
||
forced: true,
|
||
filter: function (event, player) {
|
||
return get.suit(event.card) == "club" && player.hp < player.maxHp;
|
||
},
|
||
content: function () {
|
||
player.recover();
|
||
},
|
||
},
|
||
jizhen: {
|
||
trigger: { player: "phaseJieshuBegin" },
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return game.hasPlayer(function (current) {
|
||
return current.isDamaged() && current != player;
|
||
});
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var num = 0;
|
||
for (var i = 0; i < game.players.length; i++) {
|
||
if (!game.players[i].isLinked() && player != game.players[i]) {
|
||
num++;
|
||
}
|
||
}
|
||
player.chooseTarget(get.prompt("jizhen"), [1, 2], function (card, player, target) {
|
||
return target.hp < target.maxHp && player != target;
|
||
}).ai = function (target) {
|
||
return get.attitude(player, target);
|
||
};
|
||
"step 1";
|
||
if (result.bool) {
|
||
player.logSkill("jizhen", result.targets);
|
||
game.asyncDraw(result.targets);
|
||
}
|
||
},
|
||
ai: {
|
||
expose: 0.3,
|
||
threaten: 1.3,
|
||
},
|
||
},
|
||
shenqu: {
|
||
audio: 2,
|
||
group: "shenqu2",
|
||
trigger: { global: "phaseZhunbeiBegin" },
|
||
filter: function (event, player) {
|
||
return player.countCards("h") <= player.maxHp;
|
||
},
|
||
frequent: true,
|
||
content: function () {
|
||
player.draw(2);
|
||
},
|
||
},
|
||
shenqu2: {
|
||
trigger: { player: "damageAfter" },
|
||
direct: true,
|
||
filter: function (event, player) {
|
||
return player.hasSkillTag("respondTao") || player.countCards("h", "tao") > 0;
|
||
},
|
||
content: function () {
|
||
player.chooseToUse({ name: "tao" }, "神躯:是否使用一张桃?").logSkill = "shenqu";
|
||
},
|
||
},
|
||
jiwu: {
|
||
derivation: ["qiangxix", "retieji", "olxuanfeng", "rewansha"],
|
||
audio: 2,
|
||
enable: "phaseUse",
|
||
filter: function (event, player) {
|
||
if (player.countCards("he") == 0) return false;
|
||
if (!player.hasSkill("qiangxix")) return true;
|
||
if (!player.hasSkill("retieji")) return true;
|
||
if (!player.hasSkill("olxuanfeng")) return true;
|
||
if (!player.hasSkill("rewansha")) return true;
|
||
return false;
|
||
},
|
||
filterCard: true,
|
||
position: "he",
|
||
check: function (card) {
|
||
if (get.position(card) == "e" && _status.event.player.hasSkill("olxuanfeng"))
|
||
return 16 - get.value(card);
|
||
return 7 - get.value(card);
|
||
},
|
||
content: function () {
|
||
"step 0";
|
||
var list = [];
|
||
if (!player.hasSkill("qiangxix")) list.push("qiangxix");
|
||
if (!player.hasSkill("retieji")) list.push("retieji");
|
||
if (!player.hasSkill("olxuanfeng")) list.push("olxuanfeng");
|
||
if (!player.hasSkill("rewansha")) list.push("rewansha");
|
||
if (list.length == 1) {
|
||
player.addTempSkills(list[0]);
|
||
event.finish();
|
||
} else {
|
||
player
|
||
.chooseControl(list, function () {
|
||
if (list.includes("olxuanfeng") && player.countCards("he", { type: "equip" }))
|
||
return "olxuanfeng";
|
||
if (!player.getStat().skill.qiangxix) {
|
||
if (
|
||
player.hasSkill("qiangxix") &&
|
||
player.getEquip(1) &&
|
||
list.includes("olxuanfeng")
|
||
)
|
||
return "olxuanfeng";
|
||
if (list.includes("rewansha") || list.includes("qiangxix")) {
|
||
var players = game.filterPlayer();
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i].hp == 1 && get.attitude(player, players[i]) < 0) {
|
||
if (list.includes("rewansha")) return "rewansha";
|
||
if (list.includes("qiangxix")) return "qiangxix";
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (list.includes("qiangxix")) return "qiangxix";
|
||
if (list.includes("rewansha")) return "rewansha";
|
||
if (list.includes("olxuanfeng")) return "olxuanfeng";
|
||
return "retieji";
|
||
})
|
||
.set("prompt", "选择获得一项技能直到回合结束");
|
||
}
|
||
"step 1";
|
||
player.addTempSkills(result.control);
|
||
// player.popup(get.translation(result.control));
|
||
},
|
||
ai: {
|
||
order: function () {
|
||
var player = _status.event.player;
|
||
if (player.countCards("e", { type: "equip" })) return 10;
|
||
if (!player.getStat().skill.qiangxix) {
|
||
if (
|
||
player.hasSkill("qiangxix") &&
|
||
player.getEquip(1) &&
|
||
!player.hasSkill("olxuanfeng")
|
||
)
|
||
return 10;
|
||
if (player.hasSkill("rewansha")) return 1;
|
||
var players = game.filterPlayer();
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i].hp == 1 && get.attitude(player, players[i]) < 0) return 10;
|
||
}
|
||
}
|
||
return 1;
|
||
},
|
||
result: {
|
||
player: function (player) {
|
||
if (player.countCards("e", { type: "equip" })) return 1;
|
||
if (!player.getStat().skill.qiangxix) {
|
||
if (
|
||
player.hasSkill("qiangxix") &&
|
||
player.getEquip(1) &&
|
||
!player.hasSkill("olxuanfeng")
|
||
)
|
||
return 1;
|
||
if (!player.hasSkill("rewansha") || !player.hasSkill("qiangxix")) {
|
||
var players = game.filterPlayer();
|
||
for (var i = 0; i < players.length; i++) {
|
||
if (players[i].hp == 1 && get.attitude(player, players[i]) < 0)
|
||
return 1;
|
||
}
|
||
}
|
||
}
|
||
return 0;
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_hunzi: {
|
||
skillAnimation: true,
|
||
animationColor: "wood",
|
||
audio: "hunzi",
|
||
juexingji: true,
|
||
derivation: ["reyingzi", "yinghun"],
|
||
unique: true,
|
||
trigger: {
|
||
player: "phaseZhunbeiBegin",
|
||
},
|
||
filter: function (event, player) {
|
||
return player.hp <= 2 && !player.storage.boss_hunzi;
|
||
},
|
||
forced: true,
|
||
content: function () {
|
||
player.removeSkill("boss_hunyou");
|
||
player.removeSkill("boss_hunyou_dying");
|
||
player.removeSkill("boss_hunyou_dieBegin");
|
||
player.loseMaxHp();
|
||
player.addSkill("reyingzi");
|
||
player.addSkill("yinghun");
|
||
game.log(player, "获得了技能", "#g【英姿】和【英魂】");
|
||
game.log(player, "", "#y【魂佑】");
|
||
player.awakenSkill("boss_hunzi");
|
||
player.storage.boss_hunzi = true;
|
||
},
|
||
ai: {
|
||
threaten: function (player, target) {
|
||
if (target.hp == 1) return 2;
|
||
return 0.5;
|
||
},
|
||
maixie: true,
|
||
effect: {
|
||
target: function (card, player, target) {
|
||
if (!target.hasFriend()) return;
|
||
if (
|
||
get.tag(card, "damage") == 1 &&
|
||
target.hp == 2 &&
|
||
!target.isTurnedOver() &&
|
||
_status.currentPhase != target &&
|
||
get.distance(_status.currentPhase, target, "absolute") <= 3
|
||
)
|
||
return [0.5, 1];
|
||
},
|
||
},
|
||
},
|
||
},
|
||
boss_jiang: {
|
||
audio: "jiang",
|
||
trigger: {
|
||
global: ["respondEnd"],
|
||
},
|
||
charlotte: true,
|
||
locked: true,
|
||
init: function (player) {
|
||
var a = window.setInterval(function () {
|
||
if (player.hasSkill("boss_jiang")) {
|
||
player.storage.boss_jiang = true;
|
||
} else {
|
||
game.addGlobalSkill("boss_jiang");
|
||
game.addGlobalSkill("boss_jiang_use");
|
||
window.clearInterval(a);
|
||
}
|
||
}, 1000);
|
||
},
|
||
filter2: function (event, player) {
|
||
if (!event.respondTo[1]) return false;
|
||
if (get.itemtype(event.cards) != "cards") return false;
|
||
if (["h", "e", "j"].includes(get.position(event.cards[0]))) return false;
|
||
if (event.respondTo[1] && get.itemtype(event.respondTo[1]) != "card") return false;
|
||
if (event.respondTo[1] && ["h", "e", "j"].includes(get.position(event.respondTo[1])))
|
||
return false;
|
||
},
|
||
filter: function (event, player) {
|
||
if (!player.storage.boss_jiang) return false;
|
||
if (!event.respondTo) return false;
|
||
if (get.color(event.card) != "red") return false;
|
||
if (event.respondTo[0] != player) {
|
||
return event.player == player;
|
||
} else {
|
||
return event.player != player;
|
||
}
|
||
},
|
||
frequent: true,
|
||
content: function () {
|
||
player.draw();
|
||
if (!lib.skill.boss_jiang.filter2(trigger, player)) return;
|
||
if (trigger.respondTo[0] != player) {
|
||
if (trigger.respondTo[1] && get.position(trigger.respondTo[1]) == "d")
|
||
player.gain(trigger.respondTo[1], "gain2");
|
||
} else {
|
||
if (get.position(trigger.cards[0]) == "d") player.gain(trigger.cards, "gain2");
|
||
}
|
||
},
|
||
group: ["boss_jiang_use"],
|
||
subSkill: {
|
||
use: {
|
||
trigger: {
|
||
global: ["useCard"],
|
||
},
|
||
filter: function (event, player) {
|
||
if (!player.storage.boss_jiang) return false;
|
||
if (get.color(event.card) != "red") return false;
|
||
return player == event.player || event.targets.includes(player);
|
||
},
|
||
frequent: true,
|
||
content: function () {
|
||
player.draw();
|
||
if (
|
||
trigger.player != player &&
|
||
get.itemtype(trigger.cards) == "cards" &&
|
||
get.position(trigger.cards[0]) == "d"
|
||
)
|
||
player.gain(trigger.cards, "gain2");
|
||
},
|
||
sub: true,
|
||
},
|
||
},
|
||
},
|
||
boss_hunyou: {
|
||
forced: true,
|
||
init: function (player) {
|
||
player.hp = 1;
|
||
player.storage.hp = player.hp;
|
||
player.storage.maxHp = player.maxHp;
|
||
player.update();
|
||
},
|
||
trigger: {
|
||
player: [
|
||
"damageBefore",
|
||
"recoverBefore",
|
||
"loseHpBefore",
|
||
"loseMaxHpBefore",
|
||
"gainMaxHpBefore",
|
||
],
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
},
|
||
group: ["boss_hunyou_dying", "boss_hunyou_dieBegin"],
|
||
subSkill: {
|
||
dying: {
|
||
trigger: {
|
||
player: "dying",
|
||
},
|
||
silent: true,
|
||
filter: function (event, player) {
|
||
if (player.hp != player.storage.hp && player.storage.hp > 0) return true;
|
||
return false;
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
player.maxHp = player.storage.maxHp;
|
||
player.hp = player.storage.hp;
|
||
player.update();
|
||
},
|
||
sub: true,
|
||
forced: true,
|
||
popup: false,
|
||
},
|
||
dieBegin: {
|
||
trigger: {
|
||
player: "dieBegin",
|
||
},
|
||
silent: true,
|
||
filter: function (event, player) {
|
||
if (player.maxHp != player.storage.maxHp && player.storage.maxHp > 0) return true;
|
||
return false;
|
||
},
|
||
content: function () {
|
||
trigger.cancel();
|
||
player.maxHp = player.storage.maxHp;
|
||
player.hp = player.storage.hp;
|
||
player.update();
|
||
},
|
||
sub: true,
|
||
forced: true,
|
||
popup: false,
|
||
},
|
||
},
|
||
},
|
||
boss_taoni: {
|
||
forced: true,
|
||
trigger: {
|
||
global: ["gameStart", "phaseBefore"],
|
||
player: "dieBegin",
|
||
},
|
||
priority: 50,
|
||
init: function (player) {
|
||
player.boss_taoni = function () {
|
||
if (typeof _status.taoni_over != "function") {
|
||
_status.taoni_over = function (str) {
|
||
_status.over = true;
|
||
game.alert(str);
|
||
};
|
||
}
|
||
function isDefined(opd) {
|
||
if (opd != undefined) {
|
||
if (opd.get || opd.set || opd.writable != true || opd.configurable != true) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
var keysArray = ["length", "players", "Player", "element"];
|
||
for (var i = 0; i < game[keysArray[1]][keysArray[0]]; i++) {
|
||
var node = game[keysArray[1]][i];
|
||
for (var a in Object.keys(lib[keysArray[3]][keysArray[2]].prototype)) {
|
||
var opd = Object.getOwnPropertyDescriptor(node, a);
|
||
if (isDefined(opd))
|
||
_status.taoni_over(
|
||
lib.translate[node.name] + "触发了〖讨逆〗,游戏已被终止。"
|
||
);
|
||
//还原函数
|
||
node[a] = lib[keysArray[3]][keysArray[2]].prototype[a];
|
||
var playerKeysArray = ["classList", "hp", "maxHp", "skills"];
|
||
for (var b = 0; b < playerKeysArray.length; b++) {
|
||
var opd2 = Object.getOwnPropertyDescriptor(node, playerKeysArray[b]);
|
||
if (isDefined(opd2))
|
||
_status.taoni_over(
|
||
lib.translate[node.name] + "触发了〖讨逆〗,游戏已被终止。"
|
||
);
|
||
}
|
||
var gameKeysArray = ["players", "dead", "over"];
|
||
for (var c = 0; c < gameKeysArray.length; c++) {
|
||
var opd3 = Object.getOwnPropertyDescriptor(game, gameKeysArray[c]);
|
||
if (isDefined(opd3)) _status.taoni_over("〖讨逆〗被触发,游戏终止。");
|
||
}
|
||
}
|
||
}
|
||
};
|
||
},
|
||
content: function () {
|
||
player.boss_taoni();
|
||
},
|
||
},
|
||
},
|
||
translate: {
|
||
zhu: "神",
|
||
cai: "盟",
|
||
zhong: "从",
|
||
|
||
boss_chi: "魑",
|
||
boss_mo: "魅",
|
||
boss_wang: "魍",
|
||
boss_liang: "魉",
|
||
boss_niutou: "牛头",
|
||
boss_mamian: "马面",
|
||
boss_baiwuchang: "白无常",
|
||
boss_heiwuchang: "黑无常",
|
||
boss_luocha: "罗刹",
|
||
boss_yecha: "夜叉",
|
||
boss_zhuoguiquxie: "捉鬼驱邪",
|
||
|
||
boss_nianshou: "年兽",
|
||
boss_nianshou_heti: "年兽",
|
||
boss_nianshou_jingjue: "警觉年兽",
|
||
boss_nianshou_renxing: "任性年兽",
|
||
boss_nianshou_baonu: "暴怒年兽",
|
||
boss_nianshou_ruizhi: "睿智年兽",
|
||
|
||
boss_shuijing: "水镜先生",
|
||
boss_huangyueying: "奇智女杰",
|
||
boss_zhangchunhua: "冷血皇后",
|
||
boss_satan: "堕落天使",
|
||
boss_dongzhuo: "乱世魔王",
|
||
boss_lvbu1: "最强神话",
|
||
boss_lvbu2: "暴怒战神",
|
||
boss_lvbu3: "神鬼无前",
|
||
boss_zhouyu: "赤壁火神",
|
||
boss_pangtong: "涅槃凤雏",
|
||
boss_zhugeliang: "祭风卧龙",
|
||
boss_zhangjiao: "天公将军",
|
||
boss_zuoci: "迷之仙人",
|
||
boss_yuji: "琅琊道士",
|
||
boss_liubei: "蜀汉烈帝",
|
||
boss_caiwenji: "异乡孤女",
|
||
boss_huatuo: "药坛圣手",
|
||
boss_luxun: "蹁跹君子",
|
||
boss_zhenji: "洛水仙子",
|
||
boss_diaochan: "绝代妖姬",
|
||
boss_guojia: "世之奇士",
|
||
boss_caocao: "魏武大帝",
|
||
|
||
boss_chiyanshilian: "夏之试炼",
|
||
boss_zhuque: "朱雀",
|
||
boss_huoshenzhurong: "火神祝融",
|
||
boss_yanling: "焰灵",
|
||
boss_yandi: "炎帝",
|
||
|
||
boss_hundun: "混沌",
|
||
boss_qiongqi: "穷奇",
|
||
boss_taowu: "梼杌",
|
||
boss_taotie: "饕餮",
|
||
boss_zhuyin: "烛阴",
|
||
boss_xiangliu: "相柳",
|
||
boss_zhuyan: "朱厌",
|
||
boss_bifang: "毕方",
|
||
boss_yingzhao: "英招",
|
||
|
||
boss_yaoshou: "妖兽",
|
||
boss_yaoshou_info: "锁定技,你与其他角色计算-2。",
|
||
boss_duqu: "毒躯",
|
||
boss_duqu_info:
|
||
"锁定技,你受到伤害时,伤害来源获得1枚“蛇毒”标记;你自身不会拥有“蛇毒”标记;你的“桃”均视为“杀”。“蛇毒”标记:锁定技,拥有“蛇毒”标记的角色回合开始时,需要选择弃置X张牌或者失去X点体力,然后弃置一枚“蛇毒”标记。X为其拥有的“蛇毒”标记个数。",
|
||
boss_shedu: "蛇毒",
|
||
boss_jiushou: "九首",
|
||
boss_jiushou_info:
|
||
"锁定技,你的手牌上限始终为9,你的出牌阶段开始时以及你的回合结束时,将手牌补至手牌上限,你始终跳过你的摸牌阶段。",
|
||
boss_echou_switch: "恶臭",
|
||
boss_echou: "恶臭",
|
||
boss_echou_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,除你之外的其他角色使用“桃”或“酒”时,获得1枚“蛇毒”标记。",
|
||
boss_bingxian: "兵燹",
|
||
boss_bingxian_info:
|
||
"锁定技,其他角色的回合结束时,若其回合内没有使用杀,则视为你对其使用一张“杀”。",
|
||
boss_juyuan: "巨猿",
|
||
boss_juyuan_info:
|
||
"锁定技,你的体力上限+5,你的出牌阶段内,若你的体力少于上一次你的回合结束时的体力,则你本回合使用“杀”可额外指定1个目标。",
|
||
boss_xushi_switch: "蓄势",
|
||
boss_xushi: "蓄势",
|
||
boss_xushi_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,你的出牌阶段结束时,你令自己翻面;当你的武将牌从背面翻至正面时,对所有其他角色造成随机1至2点伤害。",
|
||
boss_zhaohuo: "兆火",
|
||
boss_zhaohuo_info:
|
||
"锁定技,你造成的所有伤害均视为火属性伤害;你的回合中,所有其他角色的防具牌无效;你免疫所有火属性伤害。",
|
||
boss_honglianx: "红莲",
|
||
boss_honglianx_info:
|
||
"锁定技,你的红色牌不计入你的手牌上限;你的回合开始时,随机获得牌堆中0到3张红色牌,然后随机对3到0名其他角色各造成1点火属性伤害。",
|
||
boss_yanyu: "炎狱",
|
||
boss_yanyu_switch: "炎狱",
|
||
boss_yanyu_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,其他角色回合开始时进行判定,若为红色则受到1点火属性伤害,并重复此过程(每个回合最多判定3次)。",
|
||
boss_fengdong: "封冻",
|
||
boss_fengdong_info: "锁定技,你的回合内,其他角色的非锁定技无效。",
|
||
boss_xunyou: "巡游",
|
||
boss_xunyou_info:
|
||
"锁定技,其他角色回合开始时,你随机获得场上除你以外的一名角色区域内的一张牌,若你获得的是装备牌,则你使用之。",
|
||
boss_sipu: "司圃",
|
||
boss_sipu_switch: "司圃",
|
||
boss_sipu_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,你的出牌阶段内,若你使用的牌数小于等于2张,其他角色无法使用或打出牌。",
|
||
|
||
boss_wuzang: "无脏",
|
||
boss_wuzang_info:
|
||
"锁定技,摸牌阶段,你的摸牌基数改为X(X为你的体力值一半且至少为5);你的手牌上限基数为0。",
|
||
boss_xiangde: "相德",
|
||
boss_xiangde_info: "锁定技,其他角色对你造成伤害时,若其装备区内有武器牌,此伤害+1。",
|
||
boss_yinzei: "隐贼",
|
||
boss_yinzei_switch: "隐贼",
|
||
boss_yinzei_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,若你没有手牌,其他角色对你造成伤害后,随机弃置一张牌。",
|
||
boss_zhue: "助恶",
|
||
boss_zhue_info: "锁定技,每当一名其他角色造成伤害后,你与伤害来源各摸一张牌。",
|
||
boss_futai: "复态",
|
||
boss_futai_info:
|
||
"锁定技,你的回合外,其他角色不能使用【桃】;你的回合开始时,你令所有角色回复1点体力。",
|
||
boss_yandu: "厌笃",
|
||
boss_yandu_switch: "厌笃",
|
||
boss_yandu_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,其他角色回合结束后,若其未造成过伤害,你获得其一张牌。",
|
||
boss_minwan: "冥顽",
|
||
boss_minwan_info:
|
||
"锁定技,当你于回合内使用牌对其他角色造成伤害后,你于此回合内使用牌只能指定你与这些角色为目标,且你每使用一张牌,摸一张牌。",
|
||
boss_nitai: "拟态",
|
||
boss_nitai_info: "锁定技,防止你于回合内受到的伤害;你于回合外受到火属性伤害+1。",
|
||
boss_luanchang: "乱常",
|
||
boss_luanchang_switch: "乱常",
|
||
boss_luanchang_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,回合开始时,你视为使用【南蛮入侵】;回合结束时,你视为使用【万箭齐发】。",
|
||
boss_tanyu: "贪欲",
|
||
boss_tanyu_info: "锁定技,跳过你的弃牌阶段;结束阶段,若你的手牌数为全场最多,失去1点体力。",
|
||
boss_cangmu: "藏目",
|
||
boss_cangmu_info: "锁定技,你令摸牌阶段摸牌基数改为X(X为存活角色数)。",
|
||
boss_jicai: "积财",
|
||
boss_jicai_switch: "积财",
|
||
boss_jicai_info:
|
||
"体力值首次减少至一半或更少时激活此技能。锁定技,一名角色回复体力后,你与其各摸一张牌。",
|
||
boss_xiongshou: "凶兽",
|
||
boss_xiongshou_info:
|
||
"锁定技,你使用【杀】对体力值小于你的角色造成的伤害+1;你与其他角色距离-1;你不能被翻面。",
|
||
sadouchengbing: "撒豆成兵",
|
||
sadouchengbing_info:
|
||
"出牌阶段对自己使用,若你的势力为“神”,摸X张牌;否则将你手牌补至X;(X为你的体力上限且至多为5)。",
|
||
yihuajiemu: "移花接木",
|
||
yihuajiemu_info: "出牌阶段对一名有牌的其他角色使用,令其使用一张【杀】,或交给你两张牌。",
|
||
chiyanzhenhunqin: "赤焰镇魂琴",
|
||
chiyanzhenhunqin_info: "锁定技,你造成的伤害均视为具有火属性。",
|
||
juechenjinge: "绝尘金戈",
|
||
juechenjinge_info: "锁定技,敌方角色计算与己方其他角色距离+1。",
|
||
xiuluolianyuji: "修罗炼狱戟",
|
||
xiuluolianyuji_info:
|
||
"你使用【杀】可以额外指定任意名攻击范围内的其他角色为目标;锁定技,你使用【杀】造成的伤害+1,然后令受到伤害的角色回复1点体力。",
|
||
longfenghemingjian: "鸾凤和鸣剑",
|
||
longfenghemingjian_info:
|
||
"你使用的雷【杀】或火【杀】指定目标后,可令对方选择弃置一张牌或令你摸一张牌。",
|
||
qicaishenlu: "七彩神鹿",
|
||
qicaishenlu_info: "锁定技,你计算与其他角色的距离时-1,当你造成属性伤害时,你令此伤害+1。",
|
||
boss_mengpohuihun: "回魂",
|
||
boss_mengpohuihun_info:
|
||
"若场上有角色在本局游戏中因孟婆的〖忘魂〗失去过技能,则令其恢复该技能;此牌进入弃牌堆后,会被销毁。",
|
||
honghuangzhili: "洪荒之力",
|
||
honghuangzhili_cbg: "洪",
|
||
honghuangzhili_info:
|
||
"若该角色的势力是神,你获得其一张牌,其〖神裔〗无效直到其下家的回合(这个下家是动态变化的,会随着一个人的死或者复活而变化)开始;若该角色的势力不是神,其翻面。",
|
||
|
||
boss_qingmushilian: "春之试炼",
|
||
boss_qinglong: "青龙",
|
||
boss_mushengoumang: "木神勾芒",
|
||
boss_shujing: "树精",
|
||
boss_taihao: "太昊",
|
||
|
||
boss_baimangshilian: "秋之试炼",
|
||
boss_baihu: "白虎",
|
||
boss_jinshenrushou: "金神蓐收",
|
||
boss_mingxingzhu: "明刑柱",
|
||
boss_shaohao: "少昊",
|
||
|
||
boss_xuanlinshilian: "冬之试炼",
|
||
boss_xuanwu: "玄武",
|
||
boss_shuishenxuanming: "水神玄冥",
|
||
boss_shuishengonggong: "水神共工",
|
||
boss_zhuanxu: "颛顼",
|
||
|
||
boss_lingqu: "灵躯",
|
||
boss_lingqu_info:
|
||
"锁定技,当你受到伤害后,你摸一张牌,然后手牌上限+1;防止你受到的大于1点的伤害。",
|
||
boss_zirun: "滋润",
|
||
boss_zirun_info:
|
||
"锁定技,准备阶段开始时,你令所有角色摸一张牌,若其装备区内有牌,则其额外摸一张牌。",
|
||
boss_juehong: "决洪",
|
||
boss_juehong_info:
|
||
"锁定技,准备阶段开始时,你令所有敌方角色自己弃置自己的装备区内的所有牌,若其装备区内没有牌,则改为你弃置其一张手牌。",
|
||
boss_zaoyi: "皂仪",
|
||
boss_zaoyi_info:
|
||
"锁定技,只要水神玄冥存活,你不会成为敌方角色使用锦囊牌的目标,只要水神共工存活,你不会成为敌方角色使用基本牌的目标。水神玄冥和水神共工均死亡后,你摸四张牌,然后从下回合开始,每个回合开始时使体力值最少的敌方角色失去所有体力。",
|
||
boss_baiyi: "白仪",
|
||
boss_baiyi_info:
|
||
"锁定技,每名敌方角色的摸牌阶段,若当前轮数小于3,其少摸一张牌;第五轮开始时,每名敌方角色弃置两张牌;当己方角色受到的雷电伤害时,若当前轮数小于7,其防止此伤害。",
|
||
boss_qingzhu: "擎柱",
|
||
boss_qingzhu_info: "锁定技,你跳过弃牌阶段,若你没有“殛顶”,你于出牌阶段不能使用【杀】。",
|
||
boss_jiazu: "枷足",
|
||
boss_jiazu_info: "锁定技,回合开始时,弃置你上家和下家的敌方角色的装备区内的坐骑牌。",
|
||
boss_jiding: "殛顶",
|
||
boss_jiding_info:
|
||
"锁定技,其他己方角色受到伤害后,若伤害来源为敌方角色,则你视为对伤害来源使用雷【杀】,若此【杀】造成伤害,蓐收回复1点体力。然后你失去此技能(只有发动了才会失去,没发动不会失去)。",
|
||
boss_xingqiu: "刑秋",
|
||
boss_xingqiu_info:
|
||
"锁定技,每两轮的出牌阶段开始时,你横置所有敌方角色,然后使明刑柱获得〖殛顶〗。",
|
||
boss_kuangxiao: "狂啸",
|
||
boss_kuangxiao_info: "锁定技,你的回合内,你使用【杀】没有距离限制,且指定所有敌方角色为目标。",
|
||
boss_shenyi: "神裔",
|
||
boss_shenyi_info: "锁定技,你的武将牌始终正面向上,你的判定区内的牌效果反转。",
|
||
boss_shenen: "神恩",
|
||
boss_shenen_info:
|
||
"锁定技,所有己方角色使用牌无距离限制;所有敌方角色摸牌阶段多摸一张牌且手牌上限+1。",
|
||
boss_fentian: "焚天",
|
||
boss_fentian_info:
|
||
"锁定技,你造成的伤害视为火焰伤害;你使用红色牌无距离和次数限制,且不可被其他角色使用【闪】或【无懈可击】响应。",
|
||
boss_fentian2: "焚天",
|
||
boss_xingxia: "行夏",
|
||
boss_xingxia_info:
|
||
"每两轮限一次,出牌阶段,你可以对焰灵造成2点火焰伤害,然后令每名敌方角色选择一项:1.弃置一张红色牌;2.你对其造成1点火焰伤害。",
|
||
boss_huihuo: "回火",
|
||
boss_huihuo_info:
|
||
"锁定技,当你死亡时,你对所有敌方角色各造成3点火焰伤害;出牌阶段,你可以多使用一张【杀】。",
|
||
boss_furan: "复燃",
|
||
boss_furan2: "复燃",
|
||
boss_furan_info: "当你濒死时,所有敌方角色视为可以将红色牌当【桃】对你使用。",
|
||
boss_chiyi: "赤仪",
|
||
boss_chiyi2: "赤仪",
|
||
boss_chiyi_info:
|
||
"锁定技,从第三轮开始,敌方角色受到的伤害+1;第五轮开始时,你对所有角色各造成1点火焰伤害;第七轮开始时,你对焰灵造成5点火焰伤害。",
|
||
boss_buchun: "布春",
|
||
boss_buchun_info:
|
||
"每两轮限一次,出牌阶段,若场上有死亡的树精,你可以失去1点体力,复活所有树精,使其回复体力至1点,补充手牌至两张;若场上没有死亡的树精,你可以为一名己方角色回复2点体力。",
|
||
boss_cuidu: "淬毒",
|
||
boss_cuidu_info:
|
||
"锁定技,你对敌方角色造成伤害后,若其没有“中毒”,你令其获得“中毒”,然后令木神勾芒摸一张牌。",
|
||
boss_zhongdu: "中毒",
|
||
boss_zhongdu_bg: "毒",
|
||
boss_zhongdu_info:
|
||
"锁定技,回合开始时,你进行判定,若结果不为红桃,你受到1点无来源的伤害,若结果不为黑桃,你失去此技能。",
|
||
boss_qingyi: "青仪",
|
||
boss_qingyi_info:
|
||
"锁定技,第三轮开始时,己方角色各回复1点体力;第五轮开始时,敌方角色各失去1点体力;第七轮开始时,复活木神勾芒和树精,使其各摸三张牌,各+1体力上限,然后各回复3点体力。",
|
||
|
||
boss_guimou: "鬼谋",
|
||
boss_guimou_info: "结束阶段,你可以令一名随机的其他角色进入混乱状态直到其下一回合结束。",
|
||
boss_yuance: "远策",
|
||
boss_yuance_info:
|
||
"每当一名角色受到其他角色的伤害,你可以选择一项并进行一次判定:1. 若结果为黑色,受伤害角色失去1点体力,否则伤害来源失去1点体力;2. 若结果为红色,受伤害角色回复1点体力,否则伤害来源回复1点体力。",
|
||
boss_qizuo: "奇佐",
|
||
boss_qizuo_info: "你可以令你的普通锦囊牌额外结算一次。",
|
||
boss_guixin: "归心",
|
||
boss_guixin_info: "锁定技,其他角色摸牌时,若摸牌数不少于2,须将摸到的牌中的一张交给你。",
|
||
xiongcai: "雄才",
|
||
xiongcai_info: "锁定技,你在回合结束后随机获得一个魏势力角色的所有技能。",
|
||
xiaoxiong: "枭雄",
|
||
xiaoxiong_info:
|
||
"锁定技,每当一名其他角色使用一张基本牌或锦囊牌,你获得一张与之同名的牌;在一名其他角色的结束阶段,若其本回合没有使用牌,你对其造成1点伤害。",
|
||
boss_zhangwu: "章武",
|
||
boss_zhangwu_info:
|
||
"每当你受到一次伤害,你可以弃置任意张牌并令伤害来源选择一项:弃置等量的牌,或受到等量的伤害。",
|
||
xiangxing: "禳星",
|
||
xiangxing_info:
|
||
"锁定技,游戏开始时,你获得7枚星;每当你累计扣减7点体力,你失去一枚星,并造成7点雷属性伤害,随机分配给其他角色;当你失去全部星后,你的体力上限变为3。",
|
||
yueyin: "月隐",
|
||
yueyin_info: "锁定技,你的每一枚星对应的一个特定条件,当你失去星时,若满足此条件,则不造成伤害。",
|
||
xiangxing7_info: "你没有手牌",
|
||
xiangxing6_info: "此次受到的是火属性伤害",
|
||
xiangxing5_info: "此次受到的是雷属性伤害",
|
||
xiangxing4_info: "此次为失去体力",
|
||
xiangxing3_info: "一名其他角色有至少4件装备",
|
||
xiangxing2_info: "你的判定区内至少有两张牌",
|
||
xiangxing1_info: "场上只有2名存活角色",
|
||
gaiming: "改命",
|
||
gaiming_info:
|
||
"锁定技,在你的判定牌生效前,你观看牌堆顶的七张牌并选择一张作为判定结果,此结果不可更改。",
|
||
fengqi: "风起",
|
||
fengqi_info: "准备阶段和结束阶段,你可以视为使用任意一张普通锦囊牌。",
|
||
|
||
jiaoxia: "皎霞",
|
||
jiaoxia_info: "每当你成为红色牌的目标,你可以摸一张牌。",
|
||
lingbo: "凌波",
|
||
lingbo_info: "每当你使用或打出一张闪,你可以摸两张牌。",
|
||
tiandao: "天道",
|
||
tiandao_info: "任意一名角色的判定生效前,你可以打出一张牌替换之。",
|
||
yunshen: "云身",
|
||
yunshen2: "云身",
|
||
yunshen_info:
|
||
"每当你使用或打出一张闪时,你可以令你的防御距离+1;准备阶段,你将累计的防御距离清零,然后摸等量的牌。",
|
||
lianji: "连计",
|
||
lianji_info:
|
||
"出牌阶段限一次,你可以选择一张手牌并指定两名角色进行拼点,拼点赢的角色获得此牌,并对没赢的角色造成1点伤害。",
|
||
mazui: "麻醉",
|
||
mazui2: "麻醉",
|
||
mazui_info:
|
||
"出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌。",
|
||
|
||
boss_nbianshen: "变形",
|
||
boss_nbianshenx: "变形",
|
||
boss_nbianshenx_info: "你从第二轮开始,每一轮幻化为警觉、任性、睿智、暴怒四种随机状态中的一种。",
|
||
boss_mengtai: "萌态",
|
||
boss_mengtai_info:
|
||
"锁定技,若你的出牌阶段被跳过,你跳过本回合的弃牌阶段;若你的摸牌阶段被跳过,结束阶段开始时,你摸三张牌。",
|
||
boss_ruizhi: "睿智",
|
||
boss_ruizhi_info:
|
||
"锁定技,其他角色的准备阶段开始时,其选择一张手牌和一张装备区里的牌,然后弃置其余的牌。",
|
||
boss_jingjue: "警觉",
|
||
boss_jingjue_info: "每当你于回合外失去牌时,你可以进行一次判定,若结果为红色,你回复1点体力。",
|
||
boss_renxing: "任性",
|
||
boss_renxing_info: "锁定技,你的回合外,一名角色受到1点伤害后或回复1点体力时,你摸一张牌。",
|
||
boss_nbaonu: "暴怒",
|
||
boss_nbaonu_info:
|
||
"锁定技,摸牌阶段,你改为摸X张牌(X为4到你体力值间的随机数);若你的体力值小于5,则你使用【杀】造成的伤害+1且无次数限制。",
|
||
boss_shouyi: "兽裔",
|
||
boss_shouyi_info: "锁定技,你使用牌无距离限制。",
|
||
|
||
boss_nianrui: "年瑞",
|
||
boss_nianrui_info: "锁定技,摸牌阶段,你额外摸两张牌。",
|
||
boss_qixiang: "祺祥",
|
||
boss_qixiang1: "祺祥",
|
||
boss_qixiang2: "祺祥",
|
||
boss_qixiang_info:
|
||
"乐不思蜀判定时,你的方块判定牌视为红桃;兵粮寸断判定时,你的黑桃判定牌视为草花。",
|
||
|
||
qiwu: "栖梧",
|
||
qiwu_info: "锁定技。每当你使用一张梅花牌,你回复1点体力。",
|
||
jizhen: "激阵",
|
||
jizhen_info: "结束阶段,你可以令所至多两名已受伤角色摸一张牌。",
|
||
|
||
boss_yushou: "驭兽",
|
||
boss_yushou_info: "出牌阶段开始时,你可以对所有敌方角色使用一张【南蛮入侵】。",
|
||
boss_moyany: "魔炎",
|
||
boss_moyany_info:
|
||
"每当你于回合外失去牌时,你可以进行一次判定,若结果为红色,你对一名其他角色造成2点火焰伤害。",
|
||
boss_modao: "魔道",
|
||
boss_modao_info: "锁定技,准备阶段,你摸两张牌。",
|
||
boss_mojian: "魔箭",
|
||
boss_mojian_info: "出牌阶段开始时,你可以对所有敌方角色使用一张【万箭齐发】。",
|
||
boss_danshu: "丹术",
|
||
boss_danshu_info: "每当你于回合外失去牌时,你可以进行一次判定,若结果为红色,你回复1点体力。",
|
||
|
||
boss_zuijiu: "醉酒",
|
||
boss_zuijiu_info: "锁定技,你因【杀】造成伤害时,此伤害+1。",
|
||
boss_taiping: "太平",
|
||
boss_taiping_info: "锁定技,摸牌阶段摸牌时,你的摸牌数量+2。",
|
||
boss_suoming: "索命",
|
||
boss_suoming_info: "结束阶段,将任意名未被横置的其他角色的武将牌横置。",
|
||
boss_xixing: "吸星",
|
||
boss_xixing_info: "准备阶段,对任意一名横置的其他角色造成1点雷电伤害,然后回复1点体力。",
|
||
|
||
boss_baolian: "暴敛",
|
||
boss_baolian_info: "锁定技,结束阶段,你摸两张牌。",
|
||
boss_manjia: "蛮甲",
|
||
boss_manjia_info: "锁定技,若你的装备区内没有防具牌,则你视为装备了【藤甲】。",
|
||
boss_xiaoshou: "枭首",
|
||
boss_xiaoshou_info: "结束阶段,对体力不小于你的一名其他角色造成3点伤害。",
|
||
boss_guiji: "诡计",
|
||
boss_guiji_info: "锁定技,准备阶段结束时,若你的判定区内有牌,你随机弃置其中一张牌。",
|
||
boss_lianyu: "炼狱",
|
||
boss_lianyu_info: "结束阶段,你可以对所有敌方角色造成1点火焰伤害。",
|
||
|
||
boss_guihuo: "鬼火",
|
||
boss_guihuo_info: "结束阶段,你可以对一名其他角色造成1点火焰伤害。",
|
||
boss_minbao: "冥爆",
|
||
boss_minbao_info: "锁定技,当你死亡时,对场上所有其他角色造成1点火焰伤害。",
|
||
boss_luolei: "落雷",
|
||
boss_luolei_info: "准备阶段,你可以对一名其他角色造成1点雷电伤害。",
|
||
boss_beiming: "悲鸣",
|
||
boss_beiming_info: "锁定技,当你死亡时,你令杀死你的角色弃置所有手牌。",
|
||
boss_guimei: "鬼魅",
|
||
boss_guimei_info: "锁定技,你不能成为延时类锦囊的目标。",
|
||
boss_didong: "地动",
|
||
boss_didong_info: "结束阶段,你可以选择一名敌方角色将其武将牌翻面。",
|
||
boss_shanbeng: "山崩",
|
||
boss_shanbeng_info: "锁定技,当你死亡时,你令所有其他角色弃置其装备区内的所有牌。",
|
||
|
||
boss_chiyan_intro1: " 第一关",
|
||
boss_chiyan_intro1_info: "挑战朱雀",
|
||
boss_chiyan_intro2: " 第二关",
|
||
boss_chiyan_intro2_info: "挑战火神祝融、焰灵",
|
||
boss_chiyan_intro3: " 第三关",
|
||
boss_chiyan_intro3_info: "挑战炎帝、火神祝融、焰灵",
|
||
boss_chiyan_intro3_append:
|
||
"每通过一关,游戏轮数清零,阵亡角色复活,所有角色重置武将和区域内的牌,并获得4-X张起始手牌,X为阵亡角色数。",
|
||
|
||
boss_qingmu_intro1: " 第一关",
|
||
boss_qingmu_intro1_info: "挑战青龙",
|
||
boss_qingmu_intro2: " 第二关",
|
||
boss_qingmu_intro2_info: "挑战木神勾芒、树精",
|
||
boss_qingmu_intro3: " 第三关",
|
||
boss_qingmu_intro3_info: "挑战太昊、木神勾芒、树精",
|
||
boss_qingmu_intro3_append:
|
||
"每通过一关,游戏轮数清零,阵亡角色复活,所有角色重置武将和区域内的牌,并获得4-X张起始手牌,X为阵亡角色数。",
|
||
|
||
boss_xuanlin_intro1: " 第一关",
|
||
boss_xuanlin_intro1_info: "挑战玄武",
|
||
boss_xuanlin_intro2: " 第二关",
|
||
boss_xuanlin_intro2_info: "挑战水神玄冥、水神共工",
|
||
boss_xuanlin_intro3: " 第三关",
|
||
boss_xuanlin_intro3_info: "挑战颛顼、水神玄冥、水神共工",
|
||
boss_xuanlin_intro3_append:
|
||
"每通过一关,游戏轮数清零,阵亡角色复活,所有角色重置武将和区域内的牌,并获得4-X张起始手牌,X为阵亡角色数。",
|
||
|
||
boss_baimang_intro1: " 第一关",
|
||
boss_baimang_intro1_info: "挑战白虎",
|
||
boss_baimang_intro2: " 第二关",
|
||
boss_baimang_intro2_info: "挑战金神蓐收、明刑柱",
|
||
boss_baimang_intro3: " 第三关",
|
||
boss_baimang_intro3_info: "挑战少昊、金神蓐收、明刑柱",
|
||
boss_baimang_intro3_append:
|
||
"每通过一关,游戏轮数清零,阵亡角色复活,所有角色重置武将和区域内的牌,并获得4-X张起始手牌,X为阵亡角色数。",
|
||
|
||
boss_bianshen_intro1: " 第一关",
|
||
boss_bianshen_intro1_info: "挑战魑、魅、魍、魉中的随机一个",
|
||
boss_bianshen_intro2: " 第二关",
|
||
boss_bianshen_intro2_info: "挑战牛头、马面中的随机一个",
|
||
boss_bianshen_intro3: " 第三关",
|
||
boss_bianshen_intro3_info: "挑战白无常、黑无常中的随机一个",
|
||
boss_bianshen_intro4: " 第四关",
|
||
boss_bianshen_intro4_info: "挑战罗刹、夜叉中的随机一个",
|
||
// boss_bianshen2:'后援',
|
||
// boss_bianshen2_info:'你死亡后,随机召唤牛头、马面中的一个。',
|
||
// boss_bianshen3:'后援',
|
||
// boss_bianshen3_info:'你死亡后,随机召唤白无常、黑无常中的一个。',
|
||
// boss_bianshen4:'后援',
|
||
// boss_bianshen4_info:'你死亡后,随机召唤罗刹、夜叉中的一个。',
|
||
|
||
boss_qiangzheng: "强征",
|
||
boss_qiangzheng_info: "锁定技,结束阶段,你获得每个敌方角色的一张手牌。",
|
||
boss_baolin: "暴凌",
|
||
guizhen: "归真",
|
||
guizhen_info:
|
||
"每当你失去最后一张手牌,你可以所有敌人失去全部手牌,没有手牌的角色失去1点体力(不触发技能)。",
|
||
boss_shengshou: "圣手",
|
||
boss_shengshou_info: "每当你使用一张牌,你可以进行一次判定,若为红色,你回复1点体力。",
|
||
wuqin: "五禽戏",
|
||
wuqin_info: "结束阶段,若你没有手牌,可以摸三张牌。",
|
||
|
||
boss_konghun: "控心",
|
||
boss_konghun_info:
|
||
"结束阶段,你可以指定一名敌人令其进入混乱状态(不受对方控制,并将队友视为敌人)直到下一回合开始。",
|
||
yuehun: "月魂",
|
||
yuehun_info: "结束阶段,你可以回复1点体力并摸两张牌。",
|
||
fengwu: "风舞",
|
||
fengwu_info:
|
||
"出牌阶段限一次,可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】,无法如此做者失去1点体力。",
|
||
boss_wange: "笙歌",
|
||
|
||
huanhua: "幻化",
|
||
huanhua_info:
|
||
"锁定技,游戏开始时,你获得其他角色的所有技能,体力上限变为其他角色之和;其他角色于摸牌阶段摸牌时,你摸等量的牌;其他角色于弃牌阶段弃牌时,你弃置等量的手牌。",
|
||
|
||
boss_leiji: "雷击",
|
||
boss_leiji_info:
|
||
"每当你使用或打出一张【闪】,可令任意一名角色进行一次判定,若结果为黑色,其受到1点雷电伤害,然后你摸一张牌。",
|
||
jidian: "亟电",
|
||
jidian_info:
|
||
"每当你造成一次伤害,可以指定距离受伤害角色1以内的一名其他角色进行判定,若结果为黑色,该角色受到1点雷电伤害。",
|
||
|
||
tinqin: "听琴",
|
||
boss_guihan: "归汉",
|
||
boss_guihan_info:
|
||
"限定技,濒死阶段,你可以将体力回复至体力上限,摸四张牌,令所有敌人的技能恢复,失去技能〖悲歌〗和〖胡笳〗,并获得技能〖听琴〗、〖蕙质〗。",
|
||
boss_huixin: "蕙质",
|
||
boss_huixin_info:
|
||
"每当你于回合外失去牌,可以进行一次判定,若为黑色,当前回合角色失去1点体力,否则你回复1点体力并摸一张牌。",
|
||
boss_hujia: "胡笳",
|
||
boss_hujia_info:
|
||
"结束阶段,若你已受伤,可以弃置一张牌令一名其他角色的所有技能失效,若其所有技能已失效,改为令其失去1点体力上限。",
|
||
boss_honglian: "红莲",
|
||
boss_honglian_info: "锁定技,结束阶段,你摸两张牌,并对所有敌人造成1点火焰伤害。",
|
||
huoshen: "火神",
|
||
huoshen_info: "锁定技,你防止即将受到的火焰伤害,改为回复1点体力。",
|
||
boss_xianyin: "仙音",
|
||
boss_xianyin_info:
|
||
"每当你于回合外失去牌,你可以进行一次判定,若为红色,你令一名敌人失去1点体力。",
|
||
|
||
boss_yuhuo: "浴火",
|
||
boss_yuhuo_info: "觉醒技,在你涅槃后,你获得技能〖神威〗、〖朱羽〗。",
|
||
boss_tianyu: "天狱",
|
||
boss_tianyu_info: "锁定技,结束阶段,你解除横置状态,除你之外的所有角色进入横置状态。",
|
||
|
||
boss_jizhi: "集智",
|
||
boss_jizhi_info: "每当你使用一张非转化的非基本牌,你可以摸一张牌并展示之。",
|
||
boss_guiyin: "归隐",
|
||
boss_guiyin_info: "锁定技,体力值比你多的角色无法在回合内对你使用卡牌。",
|
||
boss_gongshen: "工神",
|
||
boss_gongshen_info: "锁定技,除你之外的角色没有装备区;你不能成为其他角色的延时锦囊牌的目标。",
|
||
|
||
fanghua: "芳华",
|
||
fanghua_info: "结束阶段,你可以令所有已翻面角色失去1点体力。",
|
||
tashui: "踏水",
|
||
tashui_info: "每当你使用或打出一张黑色牌,你可以令一名其他角色翻面。",
|
||
|
||
boss_wuxin: "无心",
|
||
boss_wuxin_info:
|
||
"锁定技,你防止即将受到的伤害,改为失去1点体力;你不能成为其他角色的延时锦囊的目标。",
|
||
shangshix: "伤逝",
|
||
shangshix2: "伤逝",
|
||
shangshix_info:
|
||
"锁定技,你的手牌数至少为4,结束阶段,若你的体力值大于1,你令场上所有角色失去1点体力。",
|
||
|
||
boss_baonu: "暴怒",
|
||
boss_baonu_info:
|
||
"锁定技,当你的体力值降至4或更低时,你变身为暴怒战神或神鬼无前,并立即开始你的回合。",
|
||
shenwei: "神威",
|
||
shenwei_info:
|
||
"锁定技,摸牌阶段,你额外摸X张牌,你的手牌上限+X(X为场上其他角色的数目且至多为3)。",
|
||
xiuluo: "修罗",
|
||
xiuluo_info:
|
||
"准备阶段,你可以弃置一张牌,然后弃置你判定区内一张同花色的牌,然后你可以重复此流程。",
|
||
shenqu: "神躯",
|
||
shenqu_info:
|
||
"每名角色的准备阶段,若你的手牌数少于或等于你的体力上限数,你可以摸两张牌;当你受到伤害后,你可以使用一张【桃】。",
|
||
jiwu: "极武",
|
||
jiwu_info:
|
||
"出牌阶段,你可以弃置一张牌,然后获得获得以下一项技能直到回合结束:〖强袭〗、〖铁骑〗、〖旋风〗、〖完杀〗。",
|
||
|
||
boss_jingjia: "精甲",
|
||
boss_jingjia_info: "锁定技,游戏开始时,将本局游戏中加入的装备随机置入你的装备区。",
|
||
boss_aozhan: "鏖战",
|
||
boss_aozhan_info:
|
||
"锁定技,若你装备区内有:武器牌,你可以多使用一张【杀】;防具牌,防止你受到的超过1点的伤害;坐骑牌,摸牌阶段多摸一张牌;宝物牌,跳过你的判定阶段。",
|
||
|
||
boss_qinguangwang_ab: "秦广王",
|
||
boss_qinguangwang: "秦广王·蒋子文",
|
||
boss_panguan: "判官",
|
||
boss_panguan_info: " 锁定技,你不能成为延时类锦囊的目标。",
|
||
boss_juhun: "拘魂",
|
||
boss_juhun_info: "锁定技,结束阶段,你令随机一名其他角色的武将牌翻面或横置。",
|
||
boss_wangxiang: "望乡",
|
||
boss_wangxiang_info: "锁定技,当你死亡时,你令所有其他角色弃置其装备区内的所有牌。",
|
||
boss_chujiangwang_ab: "楚江王",
|
||
boss_chujiangwang: "楚江王·厉温",
|
||
boss_bingfeng: "冰封",
|
||
boss_bingfeng_info: "锁定技,你死亡时,若杀死你的角色武将牌是正面朝上, 你令其翻面。",
|
||
boss_songdiwang: "宋帝王·余懃",
|
||
boss_heisheng: "黑绳",
|
||
boss_heisheng_info: "锁定技,你死亡时,横置所有场上角色。",
|
||
boss_shengfu: "绳缚",
|
||
boss_shengfu_info: "锁定技,你的回合结束时,随机弃置一张场上其他角色的坐骑牌。",
|
||
boss_wuguanwang_ab: "五官王",
|
||
boss_wuguanwang: "五官王·吕岱",
|
||
boss_zhiwang: "治妄",
|
||
boss_zhiwang_info: "锁定技,当其他角色于摸牌阶段外得到牌时,你随机弃置其一张手牌。",
|
||
boss_zhiwang_planetarian: "注意事项",
|
||
boss_zhiwang_planetarian_info:
|
||
"若触发〖治妄〗的角色因〖治妄〗触发的其他的技能(如〖伤逝〗〖连营〗等)继续得到了牌,则该角色将其武将牌变更为孙策。",
|
||
boss_gongzheng: "公正",
|
||
boss_gongzheng_info: "锁定技,准备阶段,若你判定区有牌,你随机弃置一张你判定区的牌。",
|
||
boss_xuechi: "血池",
|
||
boss_xuechi_info: "锁定技,你的回合结束时,令随机一名其他角色失去2点体力。",
|
||
boss_yanluowang_ab: "阎罗王",
|
||
boss_yanluowang: "阎罗王·包拯",
|
||
boss_tiemian: "铁面",
|
||
boss_tiemian_info: "锁定技,你的防具区没有牌时,视为你装备【仁王盾】。",
|
||
boss_zhadao: "铡刀",
|
||
boss_zhadao_info: "锁定技,你使用【杀】指定目标后,你令目标角色防具无效。",
|
||
boss_zhuxin: "诛心",
|
||
boss_zhuxin_info: "锁定技,你死亡时,你令场上血量最少的一名其他角色受到2点伤害。",
|
||
boss_bianchengwang_ab: "卞城王",
|
||
boss_bianchengwang: "卞城王·毕元宾",
|
||
boss_leizhou: "雷咒",
|
||
boss_leizhou_info: "锁定技,准备阶段,你对随机一名其他角色造成1点雷属性伤害。",
|
||
boss_leifu: "雷缚",
|
||
boss_leifu_info: "锁定技,你的回合结束时,随机横置一名其他角色。",
|
||
boss_leizhu: "雷诛",
|
||
boss_leizhu_info: "锁定技,你死亡时,对所有其他角色造成依次造成1点雷属性伤害。",
|
||
boss_taishanwang_ab: "泰山王",
|
||
boss_taishanwang: "泰山王·董和",
|
||
boss_fudu: "服毒",
|
||
boss_fudu_info: "锁定技,其他角色使用【桃】时,你令随机另一名其他角色失去1点体力。",
|
||
boss_kujiu: "苦酒",
|
||
boss_kujiu_info: "锁定技,其他角色准备阶段,你令其失去1点体力,然后该角色视为使用一张【酒】。",
|
||
boss_renao: "热恼",
|
||
boss_renao_info: "锁定技,你死亡时,你令随机一名其他角色受到3点火属性伤害。",
|
||
boss_dushiwang_ab: "都市王",
|
||
boss_dushiwang: "都市王·黄中庸",
|
||
boss_remen: "热闷",
|
||
boss_remen_info:
|
||
"锁定技,若你的装备区内没有防具牌,则【南蛮入侵】、【万箭齐发】和普通【杀】对你无效。",
|
||
boss_zhifen: "炙焚",
|
||
boss_zhifen_info:
|
||
"锁定技,准备阶段,你随机选择一名其他角色,获得其1张手牌(没有则不获得),并对其造成1点火属性伤害。",
|
||
boss_huoxing: "火刑",
|
||
boss_huoxing_info: "锁定技,你死亡时,你对所有其他角色造成1点火属性伤害。",
|
||
boss_pingdengwang_ab: "平等王",
|
||
boss_pingdengwang: "平等王·陆游",
|
||
boss_suozu: "锁足",
|
||
boss_suozu_info: "锁定技,准备阶段,你令所有其他角色横置。",
|
||
boss_abi: "阿鼻",
|
||
boss_abi_info:
|
||
"锁定技,锁定技,你受到伤害时,你对伤害来源造成伤害的角色造成1点随机属性伤害(雷或火随机)。",
|
||
boss_pingdeng: "平等",
|
||
boss_pingdeng_info:
|
||
"锁定技,你死亡时,你对体力最多的一名其他角色造成2点随机属性伤害(属性随机),然后再对一名体力最多的其他角色造成1点随机属性伤害(属性随机)。",
|
||
boss_zhuanlunwang_ab: "转轮王",
|
||
boss_zhuanlunwang: "转轮王·薛礼",
|
||
boss_lunhui: "轮回",
|
||
boss_lunhui_info:
|
||
"锁定技,准备阶段,若你的体力小于等于2,则你与场上除你以外体力最高且大于2的角色交换体力值。",
|
||
boss_wangsheng: "往生",
|
||
boss_wangsheng_info: "锁定技,你的出牌阶段开始时,视为你随机使用一张【南蛮入侵】或【万箭齐发】。",
|
||
boss_zlfanshi: "反噬",
|
||
boss_zlfanshi_info:
|
||
"锁定技,每个回合你受到第一次伤害后,若再次受到伤害,则对随机一名其他角色造成1点伤害。",
|
||
boss_shikieiki_ab: "四季映姫",
|
||
boss_shikieiki: "四季映姬·夜魔仙那度",
|
||
boss_yingzhong: "映冢",
|
||
boss_yingzhong_info: "锁定技。你登场后的第一个回合开始时,你随机获得两个“阴间武将”的全部技能。",
|
||
boss_yingzhong_append:
|
||
'<span style="font-family:yuanli">四季映姬到阴曹地府<br>——阴(映)到家了!</span>',
|
||
//孟婆:
|
||
boss_mengpo: "孟婆",
|
||
boss_shiyou: "拾忧",
|
||
boss_shiyou_info:
|
||
"其他角色于弃牌阶段弃置的牌进入弃牌堆前,你可以选择其中任意张花色各不相同的牌获得之。",
|
||
boss_wanghun: "忘魂",
|
||
boss_wanghun_info:
|
||
"锁定技,你死亡时,令随机两名敌方角色各随机失去一个技能(主公技除外),并在牌堆中加入2张回魂。(回魂只能在挑战模式出现)",
|
||
boss_wangshi: "往事",
|
||
boss_wangshi_info:
|
||
"锁定技,你存活时,敌方角色的回合开始时,令其于本回合不能使用或打出随机一种类型的牌(基本、锦囊、装备)。",
|
||
boss_wangshi2: "往事",
|
||
boss_wangshi2_info: "",
|
||
//地藏王:
|
||
boss_dizangwang: "地藏王",
|
||
boss_bufo: "不佛",
|
||
boss_bufo_info:
|
||
"锁定技,你的回合开始时,你对所有距离为1的其他角色造成1点火焰伤害;你受到大于等于2的伤害时,令此伤害-1。",
|
||
boss_wuliang: "无量",
|
||
boss_wuliang_info:
|
||
"锁定技,你登场时额外摸三张牌;结束阶段开始时,你摸两张牌;你的回合开始时,若你当前体力小于3,则回复至3。",
|
||
boss_dayuan: "大愿",
|
||
boss_dayuan_info: " 当一名角色判定牌最终生效前,你可以指定该判定牌的点数和花色。",
|
||
boss_diting: "谛听",
|
||
boss_diting_info:
|
||
"锁定技,你的坐骑区被废除,你与别人计算距离时-1,别人与你计算距离时+1;你的坐骑牌均用于重铸。",
|
||
/*
|
||
//等阶
|
||
"boss_sdyl_playerlevel1":"一阶",
|
||
"boss_sdyl_playerlevel1_info":"",
|
||
"boss_sdyl_playerlevel2":"二阶",
|
||
"boss_sdyl_playerlevel2_info":"开局随机使用一张装备牌,起始手牌+1。",
|
||
"boss_sdyl_playerlevel3":"三阶",
|
||
"boss_sdyl_playerlevel3_info":"出杀次数+1,体力上限+1。",
|
||
"boss_sdyl_playerlevel4":"四阶",
|
||
"boss_sdyl_playerlevel4_info":"摸牌阶段多摸一张牌,起始手牌+1。",
|
||
"boss_sdyl_playerlevel5":"重生",
|
||
"boss_sdyl_playerlevel5_info":"限定技,当你处于濒死状态时,你可以弃置所有判定区牌,然后复原你的武将牌,将手牌补充至手牌体力上限(至多为5),将体力回复至体力上限。",
|
||
|
||
"boss_sdyl_bosslevel1":"一阶",
|
||
"boss_sdyl_bosslevel1_info":"",
|
||
"boss_sdyl_bosslevel2":"二阶",
|
||
"boss_sdyl_bosslevel2_info":"登场时随机使用一张装备牌。",
|
||
"boss_sdyl_bosslevel3":"三阶",
|
||
"boss_sdyl_bosslevel3_info":"出杀次数+1,回合开始获得一张【杀】,体力上限+1,起始手牌+1。",
|
||
"boss_sdyl_bosslevel4":"四阶",
|
||
"boss_sdyl_bosslevel4_info":"摸牌阶段多摸一张牌,手牌上限+1。",
|
||
"boss_sdyl_bosslevel5":"五阶",
|
||
"boss_sdyl_bosslevel5_info":"登场时视为使用一张【南蛮入侵】且此【南蛮入侵】伤害+1。体力上限+1,起始手牌+1。",
|
||
*/
|
||
boss_sunce: "那个男人",
|
||
boss_hunzi: "魂姿",
|
||
boss_hunzi_info:
|
||
"觉醒技,准备阶段,若你的体力值为1,你减1点体力上限,失去技能〖魂佑〗并获得技能〖英姿〗和〖英魂〗。",
|
||
boss_jiang: "激昂",
|
||
boss_jiang_info:
|
||
"①锁定技,〖激昂〗不会无效。<br>②每当你使用或打出红色牌时,你可以摸一张牌。若你是因响应其他角色使用或打出的牌,则你获得对方使用或打出的牌。<br>③当有其他角色使用或打出红色牌指定你为目标或响应你后,你可以摸一张牌并获得这些牌。",
|
||
boss_hunyou: "魂佑",
|
||
boss_hunyou_info: "锁定技,你的体力值变化和体力上限变化无效。",
|
||
boss_taoni: "讨逆",
|
||
boss_taoni_info:
|
||
"锁定技,游戏开始时,每名角色回合开始时或你死亡时,你检查存活角色的合法性。若有角色存在非法行为,则你终止本局游戏。",
|
||
|
||
boss_xhuanren: "关卡说明",
|
||
boss_xhuanren_info: "",
|
||
boss_xhuanren_info_boss:
|
||
"第一关:挑战秦广王<br>第二关:挑战楚江王,宋帝王,五官王,阎罗王中的一个<br>第三关:挑战卞城王,泰山王,都市王,平等王中的一个<br>第四关:挑战转轮王",
|
||
|
||
boss_newhuanren: "关卡说明",
|
||
boss_newhuanren_info: "",
|
||
boss_newhuanren_info_boss:
|
||
"第一关:挑战秦广王<br>第二关:挑战楚江王,宋帝王,五官王,阎罗王中的一个<br>第三关:挑战卞城王,泰山王,都市王,平等王中的一个<br>第四关:挑战转轮王<br>注:孟婆将在每局前三个阶段随机一个阶段登场<br>地藏王登场规则为,50回合内通过第三关,并且在前三关中成功击杀孟婆。<li>选陆逊左慈张春华于吉蒋费孔融自动变孙笨",
|
||
lingsheji: "灵蛇髻",
|
||
lingsheji2: "灵蛇髻",
|
||
shanrangzhaoshu: "禅让诏书",
|
||
xingtianpojunfu: "刑天破军斧",
|
||
noda_axe: "刑天破军斧",
|
||
noda_axe2: "刑天破军斧",
|
||
jinwuluorigong: "金乌落日弓",
|
||
iwasawa_crowbow: "金乌落日弓",
|
||
lingsheji_info:
|
||
"出牌阶段结束时,你可选择:1.摸一张牌。2.将一张武将牌置于武将牌上,并于回合结束后获得此牌。",
|
||
shanrangzhaoshu_info:
|
||
"其他角色于回合外得到牌后,若是其本回合内第一次得到牌,则你可以选择一项:交给其一张牌,或令其交给你一张牌。",
|
||
xingtianpojunfu_info:
|
||
"当你于出牌阶段内使用牌指定唯一目标后,你可弃置两张牌。若如此做,其本回合内不能使用或打出牌且其防具技能无效。",
|
||
jinwuluorigong_info:
|
||
"当你于出牌阶段内一次性失去了两张以上的手牌后,你可以弃置一名其他角色等量的牌。",
|
||
TheDayIBecomeAGod: "神杀",
|
||
thedayibecomeagod: "传承",
|
||
thedayibecomeagod_info:
|
||
"选择一名其他己方角色。若其势力非神,则改为神势力;若其势力为神,则将武将牌翻至正面,回复体力至体力上限,并将手牌摸至5。",
|
||
gubuzifeng: "故步自封",
|
||
gubuzifeng_disable: "故步自封",
|
||
gubuzifeng_info: "出牌阶段,对一名其他角色使用。其的一个随机技能失效直到其下个回合结束。",
|
||
goujiangdesidai: "篝酱的丝带",
|
||
goujiangdesidai_info:
|
||
"锁定技,若你未拥有技能〖纵丝〗,则你视为拥有技能〖纵丝〗;若你拥有技能〖纵丝〗,则你将此技能改为「出牌阶段限两次」。",
|
||
goujiangdesidai_skill: "纵丝",
|
||
niaobaidaowenha: "鸟白岛文蛤",
|
||
niaobaidaowenha_skill: "鸟白岛文蛤",
|
||
niaobaidaowenha_info: "当你减少1点体力上限后,你可令一名其他角色增加1点体力上限并回复1点体力。",
|
||
niaobaidaowenha_skill_info:
|
||
"当你减少1点体力上限后,你可令一名其他角色增加1点体力上限并回复1点体力。",
|
||
shenzhixiunvfu: "神之修女服",
|
||
shenzhixiunvfu_info: "没什么实际作用的衣服,仅仅是显得像个神而已。",
|
||
|
||
mode_boss_card_config: "挑战卡牌",
|
||
mode_boss_character_config: "挑战武将",
|
||
},
|
||
get: {
|
||
rawAttitude: function (from, to) {
|
||
var num = to.identity == "zhong" ? 5 : 6;
|
||
return from.side === to.side ? num : -num;
|
||
},
|
||
},
|
||
};
|
||
});
|