2024-04-15 18:36:20 +00:00
|
|
|
|
import { lib, game, ui, get, ai, _status } from "../noname.js";
|
|
|
|
|
game.import("card", function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return {
|
2024-04-15 18:36:20 +00:00
|
|
|
|
name: "gujian",
|
|
|
|
|
card: {
|
|
|
|
|
luyugeng: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("luyugeng");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.luyugeng = card;
|
|
|
|
|
target.storage.luyugeng_markcount = 3;
|
|
|
|
|
target.addSkill("luyugeng");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
jinlianzhu: {
|
|
|
|
|
type: "trick",
|
|
|
|
|
fullskin: true,
|
|
|
|
|
filterTarget: true,
|
|
|
|
|
global: "g_jinlianzhu",
|
|
|
|
|
content: function () {
|
|
|
|
|
var evt = event.getParent(3)._trigger;
|
|
|
|
|
evt.cancel();
|
|
|
|
|
if (evt.source) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
evt.source.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 1,
|
|
|
|
|
value: [5, 1],
|
|
|
|
|
useful: [6, 1],
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
var evt = _status.event.getTrigger();
|
|
|
|
|
var eff = get.damageEffect(target, evt.source, target, evt.nature);
|
|
|
|
|
if (eff > 0) return -1;
|
|
|
|
|
if (eff < 0) return 2;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
chunbing: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("chunbing");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.chunbing = card;
|
|
|
|
|
target.storage.chunbing_markcount = 5;
|
|
|
|
|
target.addSkill("chunbing");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
var num = target.needsToDiscard();
|
|
|
|
|
if (num) {
|
|
|
|
|
if (target == player && num > 1) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return num;
|
|
|
|
|
}
|
|
|
|
|
return Math.sqrt(num);
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gudonggeng: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("gudonggeng");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.gudonggeng = card;
|
|
|
|
|
target.storage.gudonggeng_markcount = 3;
|
|
|
|
|
target.addSkill("gudonggeng");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (player == target && !player.hasShan()) return 2;
|
|
|
|
|
return 1 / Math.max(1, target.hp);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
liyutang: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("liyutang");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.liyutang = card;
|
|
|
|
|
target.storage.liyutang_markcount = 2;
|
|
|
|
|
target.addSkill("liyutang");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (player == target && target.isMinHp()) return 2;
|
|
|
|
|
if (target.isMinHp()) return 1.5;
|
|
|
|
|
return 1 / Math.max(1, target.hp);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mizhilianou: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("mizhilianou");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.mizhilianou = card;
|
|
|
|
|
target.storage.mizhilianou_markcount = 4;
|
|
|
|
|
target.addSkill("mizhilianou");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target == player) {
|
|
|
|
|
if (target.countCards("he", { suit: "heart" })) {
|
|
|
|
|
if (target.isDamaged()) return 1.5;
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0.2;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
} else if (target.isDamaged()) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
return 0.5;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
xiajiao: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("xiajiao");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.xiajiao = card;
|
|
|
|
|
target.storage.xiajiao_markcount = 3;
|
|
|
|
|
target.addSkill("xiajiao");
|
|
|
|
|
target.addTempSkill("xiajiao3");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 5,
|
|
|
|
|
result: {
|
|
|
|
|
target: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tanhuadong: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("tanhuadong");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.tanhuadong = card;
|
|
|
|
|
target.storage.tanhuadong_markcount = 3;
|
|
|
|
|
target.addSkill("tanhuadong");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 5,
|
|
|
|
|
result: {
|
|
|
|
|
target: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mapodoufu: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("mapodoufu");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
if (target == targets[0] && cards.length) target.$gain2(cards);
|
|
|
|
|
target.storage.mapodoufu = card;
|
|
|
|
|
target.storage.mapodoufu_markcount = 2;
|
|
|
|
|
target.addSkill("mapodoufu");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 1,
|
|
|
|
|
value: 5,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
return player == target ? 2 : 1;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
qingtuan: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("qingtuan");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.qingtuan = card;
|
|
|
|
|
target.storage.qingtuan_markcount = 2;
|
|
|
|
|
target.addSkill("qingtuan");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 4,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target == player) {
|
|
|
|
|
if (target.hasSha()) return 2;
|
|
|
|
|
} else {
|
|
|
|
|
var nh = target.countCards("h");
|
|
|
|
|
if (nh >= 3) return 1;
|
|
|
|
|
if (target.hasSha()) return 1;
|
|
|
|
|
if (nh && Math.random() < 0.5) return 1;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
return player.needsToDiscard() ? 0.2 : 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yougeng: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("yougeng");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.yougeng = card;
|
|
|
|
|
target.storage.yougeng_markcount = 2;
|
|
|
|
|
target.addSkill("yougeng");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target.isHealthy()) return player.needsToDiscard() ? 0.1 : 0;
|
|
|
|
|
if (target.isMinHp()) return 1.5;
|
|
|
|
|
return 1 / Math.max(1, target.hp);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
molicha: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("molicha");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.molicha = card;
|
|
|
|
|
target.storage.molicha_markcount = 4;
|
|
|
|
|
target.addSkill("molicha");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yuanbaorou: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "food",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("yuanbaorou");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
//range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(cards);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.storage.yuanbaorou = card;
|
|
|
|
|
target.storage.yuanbaorou_markcount = 4;
|
|
|
|
|
target.addSkill("yuanbaorou");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: 4,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target == player) {
|
|
|
|
|
if (target.hasSha()) return 2;
|
|
|
|
|
} else {
|
|
|
|
|
var nh = target.countCards("h");
|
|
|
|
|
if (nh >= 3) return 1;
|
|
|
|
|
if (target.hasSha()) return 1;
|
|
|
|
|
if (nh && Math.random() < 0.5) return 1;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
return player.needsToDiscard() ? 0.2 : 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
heilonglinpian: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "trick",
|
|
|
|
|
enable: true,
|
|
|
|
|
toself: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target == player;
|
|
|
|
|
},
|
|
|
|
|
selectTarget: -1,
|
|
|
|
|
modTarget: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.changeHujia();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target.addTempSkill("heilonglinpian", { player: "phaseBegin" });
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
value: [6, 1],
|
|
|
|
|
useful: 1,
|
|
|
|
|
order: 2,
|
|
|
|
|
result: {
|
|
|
|
|
target: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mutoumianju: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "equip",
|
|
|
|
|
subtype: "equip2",
|
|
|
|
|
skills: ["mutoumianju_skill"],
|
|
|
|
|
ai: {
|
|
|
|
|
equipValue: 4,
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yuheng: { fullskin: true },
|
|
|
|
|
gjyuheng: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
cardimage: "yuheng",
|
|
|
|
|
type: "equip",
|
|
|
|
|
subtype: "equip5",
|
|
|
|
|
nopower: true,
|
|
|
|
|
nomod: true,
|
|
|
|
|
unique: true,
|
|
|
|
|
skills: ["gjyuheng_skill"],
|
|
|
|
|
ai: {
|
|
|
|
|
equipValue: 6,
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gjyuheng_plus: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "equip",
|
|
|
|
|
subtype: "equip5",
|
|
|
|
|
nopower: true,
|
|
|
|
|
unique: true,
|
|
|
|
|
nomod: true,
|
|
|
|
|
epic: true,
|
|
|
|
|
cardimage: "yuheng",
|
|
|
|
|
skills: ["gjyuheng_plus_skill"],
|
|
|
|
|
ai: {
|
|
|
|
|
equipValue: 7,
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gjyuheng_pro: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "equip",
|
|
|
|
|
subtype: "equip5",
|
|
|
|
|
nopower: true,
|
|
|
|
|
unique: true,
|
|
|
|
|
nomod: true,
|
|
|
|
|
legend: true,
|
|
|
|
|
cardimage: "yuheng",
|
|
|
|
|
skills: ["gjyuheng_pro_skill"],
|
|
|
|
|
ai: {
|
|
|
|
|
equipValue: 8,
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
shatang: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "trick",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: true,
|
|
|
|
|
cardcolor: "red",
|
|
|
|
|
cardnature: "fire",
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
target.damage("fire");
|
|
|
|
|
"step 1";
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.changeHujia();
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
value: [4, 1],
|
|
|
|
|
useful: 2,
|
|
|
|
|
order: 2,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target.hasSkillTag("nofire")) return 1.5;
|
|
|
|
|
if (target.hasSkillTag("maixie_hp")) return 0;
|
|
|
|
|
if (target.hp == 1) return -1;
|
|
|
|
|
return -1 / Math.sqrt(target.hp + 1);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tag: {
|
|
|
|
|
damage: 1,
|
|
|
|
|
fireDamage: 1,
|
|
|
|
|
natureDamage: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
shujinsan: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "trick",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target.countCards("he") > 0;
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
target.chooseToDiscard(
|
|
|
|
|
"he",
|
|
|
|
|
[1, target.countCards("he")],
|
|
|
|
|
"弃置任意张牌并摸等量的牌"
|
|
|
|
|
).ai = function (card) {
|
|
|
|
|
return 6 - get.value(card);
|
|
|
|
|
};
|
|
|
|
|
"step 1";
|
|
|
|
|
if (result.bool) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.draw(result.cards.length);
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 1.5,
|
|
|
|
|
value: [4, 1],
|
|
|
|
|
tag: {
|
|
|
|
|
norepeat: 1,
|
|
|
|
|
},
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target == player) {
|
|
|
|
|
var cards = player.getCards("he");
|
|
|
|
|
var num = -1;
|
|
|
|
|
for (var i = 0; i < cards.length; i++) {
|
|
|
|
|
if (get.value(cards[i]) < 6) num++;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.needsToDiscard() && num < 1) {
|
|
|
|
|
num = 1;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
return Math.max(0, num);
|
|
|
|
|
} else {
|
|
|
|
|
if (!player.needsToDiscard() && target.countCards("he") <= 3) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
return target.countCards("he") / 2;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
dinvxuanshuang: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "basic",
|
|
|
|
|
savable: true,
|
|
|
|
|
selectTarget: -1,
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.recover();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
"step 1";
|
|
|
|
|
if (target.isIn()) {
|
|
|
|
|
target.chooseToDiscard([1, Infinity], "he", "弃置任意张牌并摸等量的牌");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
"step 2";
|
|
|
|
|
if (result.bool) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.draw(result.cards.length);
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
basic: {
|
|
|
|
|
order: 6,
|
|
|
|
|
useful: 10,
|
|
|
|
|
value: [8, 6.5, 5, 4],
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
result: {
|
|
|
|
|
target: 2,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tag: {
|
|
|
|
|
recover: 1,
|
|
|
|
|
save: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
dinvxuanshuang_old: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "basic",
|
|
|
|
|
enable: true,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
// range:{global:1},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
filterTarget: function (card, player, target) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return !target.hujia;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
target.storage.dinvxuanshuang_skill = game.createCard("dinvxuanshuang");
|
|
|
|
|
target.addSkill("dinvxuanshuang_skill");
|
|
|
|
|
if (cards && cards.length) {
|
|
|
|
|
card = cards[0];
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
target == targets[0] &&
|
|
|
|
|
card.clone &&
|
|
|
|
|
(card.clone.parentNode == player.parentNode || card.clone.parentNode == ui.arena)
|
|
|
|
|
) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
card.clone.moveDelete(target);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
game.addVideo("gain2", target, get.cardsInfo([card]));
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
basic: {
|
|
|
|
|
order: 7,
|
|
|
|
|
useful: 5,
|
|
|
|
|
value: [8, 6.5, 5, 4],
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
var num =
|
|
|
|
|
1 / Math.sqrt(1 + target.hp) + 0.1 / Math.sqrt(target.countCards("h") + 1);
|
|
|
|
|
if (player == target) num *= 1.2;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return num;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ziyangdan: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "basic",
|
|
|
|
|
enable: true,
|
|
|
|
|
filterTarget: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.changeHujia(3);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (target.hasSkill("ziyangdan")) {
|
|
|
|
|
target.storage.ziyangdan += 3;
|
|
|
|
|
} else {
|
|
|
|
|
target.addSkill("ziyangdan");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 1.6,
|
|
|
|
|
value: [7, 1],
|
|
|
|
|
useful: 3,
|
|
|
|
|
tag: {
|
|
|
|
|
norepeat: 1,
|
|
|
|
|
},
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target.hp > 2) {
|
|
|
|
|
if (player.needsToDiscard()) return 1 / target.hp;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (target.hp > 0) {
|
|
|
|
|
return 2 / target.hp;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
return 0;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yunvyuanshen: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "basic",
|
|
|
|
|
enable: true,
|
|
|
|
|
logv: false,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return !target.hasSkill("yunvyuanshen_skill");
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
target.storage.yunvyuanshen_skill = game.createCard("yunvyuanshen");
|
|
|
|
|
target.addSkill("yunvyuanshen_skill");
|
|
|
|
|
if (cards && cards.length) {
|
|
|
|
|
card = cards[0];
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
target == targets[0] &&
|
|
|
|
|
card.clone &&
|
|
|
|
|
(card.clone.parentNode == player.parentNode || card.clone.parentNode == ui.arena)
|
|
|
|
|
) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
card.clone.moveDelete(target);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
game.addVideo("gain2", target, get.cardsInfo([card]));
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
basic: {
|
|
|
|
|
value: 9,
|
|
|
|
|
useful: 4,
|
|
|
|
|
value: 7,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
order: 2,
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
return 1 / Math.sqrt(1 + target.hp);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
bingpotong: {
|
|
|
|
|
fullskin: true,
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
wuxieable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target.countCards("h") > 0;
|
|
|
|
|
},
|
|
|
|
|
selectTarget: [1, 3],
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
if (target.countCards("h") == 0 || player.countCards("h") == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player
|
|
|
|
|
.chooseCard("请展示一张手牌", true)
|
|
|
|
|
.set("ai", function () {
|
|
|
|
|
var num = 0;
|
|
|
|
|
var rand = _status.event.rand;
|
|
|
|
|
if (get.color(card) == "red") {
|
|
|
|
|
if (rand) num -= 6;
|
|
|
|
|
} else {
|
|
|
|
|
if (!rand) num -= 6;
|
|
|
|
|
}
|
|
|
|
|
var value = get.value(card);
|
|
|
|
|
if (value >= 8) return -100;
|
|
|
|
|
return num - value;
|
|
|
|
|
})
|
|
|
|
|
.set("rand", Math.random() < 0.5).prompt2 =
|
|
|
|
|
"若与" +
|
|
|
|
|
get.translation(target) +
|
|
|
|
|
"展示的牌相同,你弃置展示的牌," +
|
|
|
|
|
get.translation(target) +
|
|
|
|
|
"失去1点体力";
|
|
|
|
|
"step 1";
|
|
|
|
|
event.card1 = result.cards[0];
|
|
|
|
|
target
|
|
|
|
|
.chooseCard("请展示一张手牌", true)
|
|
|
|
|
.set("ai", function (card) {
|
|
|
|
|
var num = 0;
|
|
|
|
|
var rand = _status.event.rand;
|
|
|
|
|
if (get.color(card) == "red") {
|
|
|
|
|
if (rand) num -= 6;
|
|
|
|
|
} else {
|
|
|
|
|
if (!rand) num -= 6;
|
|
|
|
|
}
|
|
|
|
|
var value = get.value(card);
|
|
|
|
|
if (value >= 8) return -100;
|
|
|
|
|
return num - value;
|
|
|
|
|
})
|
|
|
|
|
.set("rand", Math.random() < 0.5).prompt2 =
|
|
|
|
|
"若与" +
|
|
|
|
|
get.translation(player) +
|
|
|
|
|
"展示的牌相同," +
|
|
|
|
|
get.translation(player) +
|
|
|
|
|
"弃置展示的牌,你失去1点体力";
|
|
|
|
|
"step 2";
|
|
|
|
|
event.card2 = result.cards[0];
|
|
|
|
|
ui.arena.classList.add("thrownhighlight");
|
|
|
|
|
game.addVideo("thrownhighlight1");
|
|
|
|
|
player.$compare(event.card1, target, event.card2);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
game.delay(4);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
"step 3";
|
|
|
|
|
game.log(player, "展示了", event.card1);
|
|
|
|
|
game.log(target, "展示了", event.card2);
|
|
|
|
|
if (get.color(event.card2) == get.color(event.card1)) {
|
|
|
|
|
player.discard(event.card1).animate = false;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.$gain2(event.card2);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
var clone = event.card1.clone;
|
|
|
|
|
if (clone) {
|
|
|
|
|
clone.style.transition = "all 0.5s";
|
|
|
|
|
clone.style.transform = "scale(1.2)";
|
2020-06-13 04:51:36 +00:00
|
|
|
|
clone.delete();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
game.addVideo("deletenode", player, get.cardsInfo([clone]));
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
target.loseHp();
|
|
|
|
|
event.finish();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
event.parent.cancelled = true;
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.$gain2(event.card1);
|
|
|
|
|
target.$gain2(event.card2);
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ui.arena.classList.remove("thrownhighlight");
|
|
|
|
|
game.addVideo("thrownhighlight2");
|
|
|
|
|
"step 4";
|
2020-06-13 04:51:36 +00:00
|
|
|
|
// if(cards&&cards.length){
|
|
|
|
|
// player.gain(cards,'gain2');
|
|
|
|
|
// target.addTempSkill('bingpotong');
|
|
|
|
|
// }
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
basic: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: [5, 1],
|
|
|
|
|
useful: 1,
|
|
|
|
|
},
|
|
|
|
|
result: {
|
|
|
|
|
player: function (player, target) {
|
|
|
|
|
if (
|
|
|
|
|
player.countCards("h") <= Math.min(5, Math.max(2, player.hp)) &&
|
|
|
|
|
_status.event.name == "chooseToUse"
|
|
|
|
|
) {
|
|
|
|
|
if (
|
|
|
|
|
typeof _status.event.filterCard == "function" &&
|
|
|
|
|
_status.event.filterCard(new lib.element.VCard({ name: "bingpotong" }))
|
|
|
|
|
) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return -10;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (_status.event.skill) {
|
|
|
|
|
var viewAs = get.info(_status.event.skill).viewAs;
|
|
|
|
|
if (viewAs == "bingpotong") return -10;
|
|
|
|
|
if (viewAs && viewAs.name == "bingpotong") return -10;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (player.countCards("h") <= 1) return 0;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return -1.5;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tag: {
|
|
|
|
|
loseHp: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
feibiao: {
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
wuxieable: true,
|
|
|
|
|
outrange: { globalFrom: 2 },
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target != player;
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
if (!target.countCards("h", { color: "black" })) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.loseHp();
|
|
|
|
|
event.finish();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
} else {
|
|
|
|
|
target.chooseToDiscard({ color: "black" }, "弃置一张黑色手牌或受失去1点体力").ai =
|
|
|
|
|
function (card) {
|
|
|
|
|
return 8 - get.value(card);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
"step 1";
|
|
|
|
|
if (!result.bool) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.loseHp();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
basic: {
|
|
|
|
|
order: 9,
|
|
|
|
|
value: 3,
|
|
|
|
|
useful: 1,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
result: {
|
|
|
|
|
target: -2,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tag: {
|
|
|
|
|
discard: 1,
|
|
|
|
|
loseHp: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
longxugou: {
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
wuxieable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target != player && target.countGainableCards(player, "e");
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
var es = target.getGainableCards(player, "e");
|
|
|
|
|
if (es.length) {
|
|
|
|
|
player
|
|
|
|
|
.choosePlayerCard("e", target, true)
|
|
|
|
|
.set("es", es)
|
|
|
|
|
.set("filterButton", function (button) {
|
|
|
|
|
return _status.event.es.includes(button.link);
|
|
|
|
|
});
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
"step 1";
|
|
|
|
|
if (result.bool) {
|
|
|
|
|
target.$give(result.links[0], player);
|
|
|
|
|
target.lose(result.links[0], ui.special);
|
|
|
|
|
event.card = result.links[0];
|
2020-06-13 04:51:36 +00:00
|
|
|
|
game.delay();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
"step 2";
|
|
|
|
|
if (event.card && get.position(event.card) == "s") {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.equip(event.card);
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
basic: {
|
|
|
|
|
order: 9,
|
|
|
|
|
value: 6,
|
|
|
|
|
useful: 4,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
result: {
|
|
|
|
|
target: -1,
|
|
|
|
|
},
|
|
|
|
|
tag: {
|
|
|
|
|
loseCard: 1,
|
|
|
|
|
gain: 1,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
qiankunbiao: {
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
wuxieable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target != player && target.countCards("he") > 0;
|
|
|
|
|
},
|
|
|
|
|
changeTarget: function (player, targets) {
|
|
|
|
|
game.filterPlayer(function (current) {
|
|
|
|
|
return get.distance(targets[0], current, "pure") == 1 && current.countCards("he");
|
|
|
|
|
}, targets);
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
var he = target.getCards("he");
|
|
|
|
|
if (he.length) {
|
|
|
|
|
target.discard(he.randomGet()).delay = false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
contentAfter: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
game.delay(0.5);
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 7,
|
|
|
|
|
tag: {
|
|
|
|
|
loseCard: 1,
|
|
|
|
|
discard: 1,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
wuxie: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
result: {
|
|
|
|
|
target: -1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
shenhuofeiya: {
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
wuxieable: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target != player;
|
|
|
|
|
},
|
|
|
|
|
changeTarget: function (player, targets) {
|
|
|
|
|
game.filterPlayer(function (current) {
|
|
|
|
|
return get.distance(targets[0], current, "pure") == 1;
|
|
|
|
|
}, targets);
|
|
|
|
|
},
|
|
|
|
|
cardcolor: "red",
|
|
|
|
|
cardnature: "fire",
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
var next = target.chooseToRespond({ name: "shan" });
|
|
|
|
|
next.ai = function (card) {
|
|
|
|
|
if (get.damageEffect(target, player, target, "fire") >= 0) return 0;
|
|
|
|
|
if (player.hasSkillTag("notricksource")) return 0;
|
|
|
|
|
if (target.hasSkillTag("notrick")) return 0;
|
|
|
|
|
if (target.hasSkillTag("noShan")) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return -1;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
return 11 - get.value(card);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
};
|
2024-04-15 18:36:20 +00:00
|
|
|
|
next.autochoose = lib.filter.autoRespondShan;
|
|
|
|
|
"step 1";
|
|
|
|
|
if (result.bool == false) {
|
|
|
|
|
target.damage("fire");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
wuxie: function (target, card, player, viewer) {
|
|
|
|
|
if (get.attitude(viewer, target) > 0 && target.countCards("h", "shan")) {
|
|
|
|
|
if (!target.countCards("h") || target.hp == 1 || Math.random() < 0.7) return 0;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (get.attitude(viewer, target) <= 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
order: 7,
|
|
|
|
|
tag: {
|
|
|
|
|
respond: 1,
|
|
|
|
|
respondShan: 1,
|
|
|
|
|
damage: 1,
|
|
|
|
|
natureDamage: 1,
|
|
|
|
|
fireDamage: 1,
|
|
|
|
|
multitarget: 1,
|
|
|
|
|
multineg: 1,
|
|
|
|
|
},
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target.hasSkillTag("nofire")) return 0;
|
|
|
|
|
if (player.hasUnknown(2)) return 0;
|
|
|
|
|
var nh = target.countCards("h");
|
|
|
|
|
if (lib.config.mode == "identity") {
|
|
|
|
|
if (target.isZhu && nh <= 2 && target.hp <= 1) return -100;
|
2020-08-11 13:05:00 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (nh == 0) return -2;
|
|
|
|
|
if (nh == 1) return -1.7;
|
2020-08-11 13:05:00 +00:00
|
|
|
|
return -1.5;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
// wenhuangsan:{
|
|
|
|
|
// type:'jiguan',
|
|
|
|
|
// enable:true,
|
|
|
|
|
// fullskin:true,
|
|
|
|
|
// },
|
|
|
|
|
// tuhunsha:{
|
|
|
|
|
// type:'jiguan',
|
|
|
|
|
// enable:true,
|
|
|
|
|
// fullskin:true,
|
|
|
|
|
// },
|
|
|
|
|
// shenhuofeiya:{
|
|
|
|
|
// type:'jiguan',
|
|
|
|
|
// enable:true,
|
|
|
|
|
// fullskin:true,
|
|
|
|
|
// },
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mianlijinzhen: {
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
filterTarget: function (card, player, target) {
|
|
|
|
|
return target.hp >= player.hp;
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.draw();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
"step 1";
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.loseHp();
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 2,
|
|
|
|
|
value: [5, 1],
|
|
|
|
|
useful: [4, 1],
|
|
|
|
|
result: {
|
|
|
|
|
target: -1.5,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tag: {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
// damage:1
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
// longxugou:{
|
|
|
|
|
// type:'jiguan',
|
|
|
|
|
// enable:true,
|
|
|
|
|
// fullskin:true,
|
|
|
|
|
// },
|
2024-04-15 18:36:20 +00:00
|
|
|
|
liutouge: {
|
|
|
|
|
type: "jiguan",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
filterTarget: true,
|
|
|
|
|
wuxieable: true,
|
|
|
|
|
content: function () {
|
|
|
|
|
if (player.getEnemies().includes(target)) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.getDebuff();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.getBuff();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 4,
|
|
|
|
|
value: 5,
|
|
|
|
|
result: {
|
|
|
|
|
player: function (player, target) {
|
|
|
|
|
if (get.attitude(player, target) == 0) return 0;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 1;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
liufengsan: {
|
|
|
|
|
type: "trick",
|
|
|
|
|
enable: true,
|
|
|
|
|
fullskin: true,
|
|
|
|
|
filterTarget: true,
|
|
|
|
|
content: function () {
|
|
|
|
|
var list = [];
|
|
|
|
|
for (var i = 0; i < 2; i++) {
|
|
|
|
|
list.push(game.createCard("shan"));
|
|
|
|
|
}
|
|
|
|
|
target.gain(list, "gain2");
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 4.5,
|
|
|
|
|
value: [5, 1],
|
|
|
|
|
tag: {
|
|
|
|
|
gain: 1,
|
|
|
|
|
norepeat: 1,
|
|
|
|
|
},
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target == player) {
|
|
|
|
|
if (!target.hasShan()) return 2;
|
|
|
|
|
var num = target.needsToDiscard(2);
|
|
|
|
|
if (num == 0) return 1.5;
|
|
|
|
|
if (num == 1) return 1;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0.5;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
} else {
|
|
|
|
|
switch (target.countCards("h")) {
|
|
|
|
|
case 0:
|
|
|
|
|
return 2;
|
|
|
|
|
case 1:
|
|
|
|
|
return 1.5;
|
|
|
|
|
case 2:
|
|
|
|
|
return 1;
|
|
|
|
|
default:
|
|
|
|
|
return 0.5;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
shihuifen: {
|
|
|
|
|
type: "trick",
|
|
|
|
|
fullskin: true,
|
|
|
|
|
filterTarget: true,
|
|
|
|
|
global: "g_shihuifen",
|
|
|
|
|
content: function () {
|
|
|
|
|
"step 0";
|
|
|
|
|
var next = _status.currentPhase.chooseToRespond({ name: "shan" });
|
|
|
|
|
next.set("prompt2", "否则本回合无法对其他角色使用卡牌");
|
|
|
|
|
"step 1";
|
|
|
|
|
if (!result.bool) {
|
|
|
|
|
_status.currentPhase.addTempSkill("shihuifen", "phaseUseAfter");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
order: 1,
|
|
|
|
|
value: [5, 1],
|
|
|
|
|
useful: [5, 1],
|
|
|
|
|
tag: {
|
|
|
|
|
respond: 1,
|
|
|
|
|
respondShan: 1,
|
|
|
|
|
},
|
|
|
|
|
result: {
|
|
|
|
|
target: function (player, target) {
|
|
|
|
|
if (target.countCards("h") >= 3 || target.needsToDiscard()) return -1.5;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return 0;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
skill: {
|
|
|
|
|
ziyangdan: {
|
|
|
|
|
trigger: { player: "phaseBegin" },
|
|
|
|
|
silent: true,
|
|
|
|
|
init: function (player) {
|
|
|
|
|
player.storage.ziyangdan = 3;
|
|
|
|
|
},
|
|
|
|
|
onremove: true,
|
|
|
|
|
content: function () {
|
|
|
|
|
if (player.hujia > 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.changeHujia(-1);
|
|
|
|
|
}
|
|
|
|
|
player.storage.ziyangdan--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.hujia == 0 || player.storage.ziyangdan == 0) {
|
|
|
|
|
player.removeSkill("ziyangdan");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
threaten: 0.8,
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
luyugeng: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
enable: "phaseUse",
|
|
|
|
|
usable: 1,
|
|
|
|
|
nopop: true,
|
|
|
|
|
filterCard: { type: "basic" },
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
return player.countCards("h", { type: "basic" });
|
|
|
|
|
},
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"出牌阶段限一次,你可以弃置一张基本牌并发现一张牌,持续两回合(剩余" +
|
|
|
|
|
player.storage.luyugeng_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.discoverCard();
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
group: "luyugeng_count",
|
|
|
|
|
subSkill: {
|
|
|
|
|
count: {
|
|
|
|
|
trigger: { player: "phaseAfter" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.luyugeng_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.luyugeng_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.luyugeng;
|
|
|
|
|
delete player.storage.luyugeng_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("luyugeng");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
xiajiao: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: ["phaseUseBefore", "phaseEnd"] },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
return !player.hasSkill("xiajiao3");
|
|
|
|
|
},
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"你在摸牌阶段额外摸一张牌,然后弃置一张牌(剩余" +
|
|
|
|
|
player.storage.xiajiao_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.xiajiao_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.xiajiao_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.xiajiao;
|
|
|
|
|
delete player.storage.xiajiao_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("xiajiao");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.addTempSkill("xiajiao3");
|
|
|
|
|
},
|
|
|
|
|
group: "xiajiao_draw",
|
|
|
|
|
subSkill: {
|
|
|
|
|
draw: {
|
|
|
|
|
trigger: { player: "phaseDrawBegin" },
|
|
|
|
|
forced: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
trigger.num++;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.addTempSkill("xiajiao2");
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
xiajiao2: {
|
|
|
|
|
trigger: { player: "phaseDrawAfter" },
|
|
|
|
|
silent: true,
|
|
|
|
|
content: function () {
|
|
|
|
|
player.chooseToDiscard("he", true);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
xiajiao3: {},
|
|
|
|
|
mizhilianou: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseAfter" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"你可以将一张红桃牌当作桃使用(剩余" +
|
|
|
|
|
player.storage.mizhilianou_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.mizhilianou_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.mizhilianou_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.mizhilianou;
|
|
|
|
|
delete player.storage.mizhilianou_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("mizhilianou");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
group: "mizhilianou_use",
|
|
|
|
|
subSkill: {
|
|
|
|
|
use: {
|
|
|
|
|
enable: "chooseToUse",
|
|
|
|
|
filterCard: { suit: "heart" },
|
|
|
|
|
position: "he",
|
|
|
|
|
viewAs: { name: "tao" },
|
|
|
|
|
viewAsFilter: function (player) {
|
|
|
|
|
return player.countCards("he", { suit: "heart" }) > 0;
|
|
|
|
|
},
|
|
|
|
|
prompt: "将一张红桃牌当桃使用",
|
|
|
|
|
check: function (card) {
|
|
|
|
|
return 10 - get.value(card);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
skillTagFilter: function (player) {
|
|
|
|
|
return player.countCards("he", { suit: "heart" }) > 0;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
save: true,
|
|
|
|
|
respondTao: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
chunbing: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseAfter" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return "你的手牌上限+1(剩余" + player.storage.chunbing_markcount + "回合)";
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mod: {
|
|
|
|
|
maxHandcard: function (player, num) {
|
|
|
|
|
return num + 1;
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.chunbing_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.chunbing_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.chunbing;
|
|
|
|
|
delete player.storage.chunbing_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("chunbing");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gudonggeng: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseBegin" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"当你下一次受到杀造成的伤害时,令伤害-1(剩余" +
|
|
|
|
|
player.storage.gudonggeng_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.gudonggeng_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.gudonggeng_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.gudonggeng;
|
|
|
|
|
delete player.storage.gudonggeng_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("gudonggeng");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
group: "gudonggeng_damage",
|
|
|
|
|
subSkill: {
|
|
|
|
|
damage: {
|
|
|
|
|
trigger: { player: "damageBegin" },
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
return event.card && event.card.name == "sha" && event.num > 0;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
forced: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
trigger.num--;
|
|
|
|
|
delete player.storage.gudonggeng;
|
|
|
|
|
delete player.storage.gudonggeng_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("gudonggeng");
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
effect: {
|
|
|
|
|
target: function (card, player, target) {
|
|
|
|
|
if (card.name == "sha" && get.attitude(player, target) < 0) return 0.5;
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
qingtuan: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseAfter" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"你在回合内使用首张杀时摸一张牌(剩余" +
|
|
|
|
|
player.storage.qingtuan_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.qingtuan_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.qingtuan_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.qingtuan;
|
|
|
|
|
delete player.storage.qingtuan_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("qingtuan");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
group: "qingtuan_draw",
|
|
|
|
|
subSkill: {
|
|
|
|
|
draw: {
|
|
|
|
|
trigger: { player: "useCard" },
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
return event.card.name == "sha" && _status.currentPhase == player;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
usable: 1,
|
|
|
|
|
forced: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.draw();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
liyutang: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseEnd" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"结束阶段,若你的体力值为全场最少或之一,你获得1点护甲(剩余" +
|
|
|
|
|
player.storage.liyutang_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
if (player.isMinHp()) {
|
|
|
|
|
player.logSkill("liyutang");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.changeHujia();
|
|
|
|
|
}
|
|
|
|
|
player.storage.liyutang_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.liyutang_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.liyutang;
|
|
|
|
|
delete player.storage.liyutang_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("liyutang");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yougeng: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseBegin" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"准备阶段,若你的体力值为全场最少或之一,你回复1点体力(剩余" +
|
|
|
|
|
player.storage.yougeng_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
if (player.isDamaged() && player.isMinHp()) {
|
|
|
|
|
player.logSkill("yougeng");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.recover();
|
|
|
|
|
}
|
|
|
|
|
player.storage.yougeng_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.yougeng_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.yougeng;
|
|
|
|
|
delete player.storage.yougeng_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("yougeng");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
molicha: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseAfter" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"你不能成为其他角色的黑色牌的目标(剩余" +
|
|
|
|
|
player.storage.molicha_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mod: {
|
|
|
|
|
targetEnabled: function (card, player, target) {
|
|
|
|
|
if (player != target && get.color(card) == "black") {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
return false;
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.molicha_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.molicha_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.molicha;
|
|
|
|
|
delete player.storage.molicha_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("molicha");
|
|
|
|
|
player.logSkill("molicha");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yuanbaorou: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseAfter" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"你在出牌阶段可以额外使用一张杀(剩余" +
|
|
|
|
|
player.storage.yuanbaorou_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mod: {
|
|
|
|
|
cardUsable: function (card, player, num) {
|
|
|
|
|
if (card.name == "sha") return num + 1;
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.yuanbaorou_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.yuanbaorou_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.yuanbaorou;
|
|
|
|
|
delete player.storage.yuanbaorou_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("yuanbaorou");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
tanhuadong: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseEnd" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"出牌阶段结束时,你摸一张牌(剩余" +
|
|
|
|
|
player.storage.tanhuadong_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.storage.tanhuadong_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.tanhuadong_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.tanhuadong;
|
|
|
|
|
delete player.storage.tanhuadong_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("tanhuadong");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
group: "tanhuadong_draw",
|
|
|
|
|
subSkill: {
|
|
|
|
|
draw: {
|
|
|
|
|
trigger: { player: "phaseUseEnd" },
|
|
|
|
|
forced: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.draw();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mapodoufu: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
trigger: { player: "phaseJieshuBegin" },
|
|
|
|
|
forced: true,
|
|
|
|
|
popup: false,
|
|
|
|
|
nopop: true,
|
|
|
|
|
forceLoad: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: function (storage, player) {
|
|
|
|
|
return (
|
|
|
|
|
"结束阶段,你随机弃置一名随机敌人的一张随机牌(剩余" +
|
|
|
|
|
player.storage.mapodoufu_markcount +
|
|
|
|
|
"回合)"
|
|
|
|
|
);
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
var list = player.getEnemies();
|
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
|
|
|
if (!list[i].countCards("he")) {
|
|
|
|
|
list.splice(i--, 1);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
var target = list.randomGet();
|
|
|
|
|
if (target) {
|
|
|
|
|
player.logSkill("mapodoufu", target);
|
|
|
|
|
target.discard(target.getCards("he").randomGet());
|
2020-06-13 04:51:36 +00:00
|
|
|
|
target.addExpose(0.2);
|
|
|
|
|
}
|
|
|
|
|
player.storage.mapodoufu_markcount--;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.storage.mapodoufu_markcount == 0) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
delete player.storage.mapodoufu;
|
|
|
|
|
delete player.storage.mapodoufu_markcount;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("mapodoufu");
|
|
|
|
|
} else {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.updateMarks();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
yunvyuanshen_skill: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
intro: {
|
|
|
|
|
content: "下一进入濒死状态时回复1点体力",
|
|
|
|
|
},
|
|
|
|
|
trigger: { player: "dying" },
|
|
|
|
|
forced: true,
|
|
|
|
|
priority: 6.1,
|
|
|
|
|
onremove: true,
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
return player.hp <= 0;
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.recover();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("yunvyuanshen_skill");
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
dinvxuanshuang_skill: {
|
|
|
|
|
mark: "card",
|
|
|
|
|
intro: {
|
|
|
|
|
content: "下个结束阶段获得1点护甲,若你体力值为全场最少之一,你摸一张牌",
|
|
|
|
|
},
|
|
|
|
|
trigger: { player: "phaseEnd" },
|
|
|
|
|
forced: true,
|
|
|
|
|
onremove: true,
|
|
|
|
|
content: function () {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.changeHujia();
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (player.isMinHp()) {
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.draw();
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
player.removeSkill("dinvxuanshuang_skill");
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
bingpotong: {},
|
|
|
|
|
heilonglinpian: {
|
|
|
|
|
mark: true,
|
|
|
|
|
marktext: "鳞",
|
|
|
|
|
intro: {
|
|
|
|
|
content: "防御距离+1",
|
|
|
|
|
},
|
|
|
|
|
mod: {
|
|
|
|
|
globalTo: function (from, to, distance) {
|
|
|
|
|
return distance + 1;
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
mutoumianju_skill: {
|
|
|
|
|
enable: "chooseToUse",
|
|
|
|
|
filterCard: true,
|
|
|
|
|
usable: 1,
|
|
|
|
|
viewAs: { name: "sha" },
|
|
|
|
|
viewAsFilter: function (player) {
|
|
|
|
|
if (!player.countCards("h")) return false;
|
|
|
|
|
},
|
|
|
|
|
prompt: "将一张手牌当杀使用",
|
|
|
|
|
check: function (card) {
|
|
|
|
|
return 5 - get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai: {
|
|
|
|
|
respondSha: true,
|
|
|
|
|
order: function () {
|
|
|
|
|
return get.order({ name: "sha" }) + 0.1;
|
|
|
|
|
},
|
|
|
|
|
skillTagFilter: function (player, tag, arg) {
|
|
|
|
|
if (arg != "use") return false;
|
|
|
|
|
if (!player.countCards("h")) return false;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gjyuheng_skill: {
|
|
|
|
|
enable: "phaseUse",
|
|
|
|
|
usable: 1,
|
|
|
|
|
filterCard: { suit: "spade" },
|
|
|
|
|
check: function (card) {
|
|
|
|
|
return 8 - get.value(card);
|
|
|
|
|
},
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
if (!player.countCards("h", { suit: "spade" })) return false;
|
|
|
|
|
var enemies = player.getEnemies();
|
|
|
|
|
for (var i = 0; i < enemies.length; i++) {
|
|
|
|
|
if (enemies[i].countCards("h", { suit: "spade" })) return true;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
var enemies = player.getEnemies();
|
|
|
|
|
var list = [];
|
|
|
|
|
for (var i = 0; i < enemies.length; i++) {
|
|
|
|
|
var hs = enemies[i].getCards("h", { suit: "spade" });
|
|
|
|
|
if (hs.length) {
|
|
|
|
|
list.push([enemies[i], hs]);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (list.length) {
|
|
|
|
|
var current = list.randomGet();
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.line(current[0]);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
current[0].give(current[1].randomGet(), player, true);
|
|
|
|
|
}
|
|
|
|
|
"step 1";
|
|
|
|
|
var card = player.getEquip("gjyuheng");
|
|
|
|
|
if (card) {
|
|
|
|
|
if (typeof card.storage.gjyuheng != "number") {
|
|
|
|
|
card.storage.gjyuheng = 1;
|
|
|
|
|
} else {
|
2022-08-18 14:57:28 +00:00
|
|
|
|
card.storage.gjyuheng++;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (card.storage.gjyuheng >= 3) {
|
|
|
|
|
card.init([card.suit, card.number, "gjyuheng_plus", card.nature]);
|
|
|
|
|
player.addTempSkill("gjyuheng_plus_temp");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 9,
|
|
|
|
|
result: {
|
|
|
|
|
player: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gjyuheng_plus_temp: {},
|
|
|
|
|
gjyuheng_plus_skill: {
|
|
|
|
|
enable: "phaseUse",
|
|
|
|
|
usable: 1,
|
|
|
|
|
filterCard: { color: "black" },
|
|
|
|
|
check: function (card) {
|
|
|
|
|
return 8 - get.value(card);
|
|
|
|
|
},
|
|
|
|
|
filter: function (event, player) {
|
2022-08-18 14:57:28 +00:00
|
|
|
|
// if(player.hasSkill('gjyuheng_plus_temp')) return false;
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (!player.countCards("h", { color: "black" })) return false;
|
|
|
|
|
var enemies = player.getEnemies();
|
|
|
|
|
for (var i = 0; i < enemies.length; i++) {
|
|
|
|
|
if (enemies[i].countCards("h", { suit: "spade" })) return true;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
var enemies = player.getEnemies();
|
|
|
|
|
var list = [];
|
|
|
|
|
for (var i = 0; i < enemies.length; i++) {
|
|
|
|
|
var hs = enemies[i].getCards("h", { suit: "spade" });
|
|
|
|
|
if (hs.length) {
|
|
|
|
|
list.push([enemies[i], hs]);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (list.length) {
|
|
|
|
|
var current = list.randomGet();
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.line(current[0]);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
current[0].give(current[1].randomGet(), player, true);
|
|
|
|
|
}
|
|
|
|
|
"step 1";
|
|
|
|
|
var card = player.getEquip("gjyuheng_plus");
|
|
|
|
|
if (card) {
|
|
|
|
|
if (typeof card.storage.gjyuheng != "number") {
|
|
|
|
|
card.storage.gjyuheng = 1;
|
|
|
|
|
} else {
|
2022-08-18 14:57:28 +00:00
|
|
|
|
card.storage.gjyuheng++;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (card.storage.gjyuheng >= 7) {
|
|
|
|
|
card.init([card.suit, card.number, "gjyuheng_pro", card.nature]);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 9,
|
|
|
|
|
result: {
|
|
|
|
|
player: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
gjyuheng_pro_skill: {
|
|
|
|
|
enable: "phaseUse",
|
|
|
|
|
filterCard: { color: "black" },
|
|
|
|
|
check: function (card) {
|
|
|
|
|
return 8 - get.value(card);
|
|
|
|
|
},
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
if (!player.countCards("h", { color: "black" })) return false;
|
|
|
|
|
var enemies = player.getEnemies();
|
|
|
|
|
for (var i = 0; i < enemies.length; i++) {
|
|
|
|
|
if (enemies[i].countCards("h", { suit: "spade" })) return true;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
content: function () {
|
|
|
|
|
var enemies = player.getEnemies();
|
|
|
|
|
var list = [];
|
|
|
|
|
for (var i = 0; i < enemies.length; i++) {
|
|
|
|
|
var hs = enemies[i].getCards("h", { suit: "spade" });
|
|
|
|
|
if (hs.length) {
|
|
|
|
|
list.push([enemies[i], hs]);
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (list.length) {
|
|
|
|
|
var current = list.randomGet();
|
2020-06-13 04:51:36 +00:00
|
|
|
|
player.line(current[0]);
|
2024-04-15 18:36:20 +00:00
|
|
|
|
current[0].give(current[1].randomGet(), player, true);
|
|
|
|
|
}
|
|
|
|
|
"step 1";
|
|
|
|
|
var card = player.getEquip("gjyuheng");
|
|
|
|
|
if (card) {
|
|
|
|
|
if (typeof card.storage.gjyuheng != "number") {
|
|
|
|
|
card.storage.gjyuheng = 1;
|
|
|
|
|
} else {
|
2022-08-18 14:57:28 +00:00
|
|
|
|
card.storage.gjyuheng++;
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
2024-04-15 18:36:20 +00:00
|
|
|
|
if (card.storage.gjyuheng >= 3) {
|
|
|
|
|
card.init([card.suit, card.number, "gjyuheng_plus", card.nature]);
|
|
|
|
|
player.addTempSkill("gjyuheng_plus_temp");
|
2020-06-13 04:51:36 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
ai: {
|
|
|
|
|
order: 9,
|
|
|
|
|
result: {
|
|
|
|
|
player: 1,
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
shihuifen: {
|
|
|
|
|
mark: true,
|
|
|
|
|
intro: {
|
|
|
|
|
content: "使用卡牌无法指定其他角色为目标",
|
|
|
|
|
},
|
|
|
|
|
mod: {
|
|
|
|
|
playerEnabled: function (card, player, target) {
|
|
|
|
|
if (player != target) return false;
|
|
|
|
|
},
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
g_shihuifen: {
|
|
|
|
|
trigger: { global: "phaseUseBegin" },
|
|
|
|
|
direct: true,
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
if (event.player.hasSkill("shihuifen")) return false;
|
|
|
|
|
if (event.player == player) return false;
|
|
|
|
|
if (!lib.filter.targetEnabled({ name: "shihuifen" }, player, event.player)) return false;
|
|
|
|
|
return player.hasCard("shihuifen") || player.hasSkillTag("shihuifen");
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
player.chooseToUse(
|
|
|
|
|
get.prompt("shihuifen", trigger.player).replace(/发动/, "使用"),
|
|
|
|
|
function (card, player) {
|
|
|
|
|
if (card.name != "shihuifen") return false;
|
|
|
|
|
return lib.filter.cardEnabled(card, player, "forceEnable");
|
|
|
|
|
},
|
|
|
|
|
trigger.player,
|
|
|
|
|
-1
|
|
|
|
|
).targetRequired = true;
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
g_jinlianzhu: {
|
|
|
|
|
trigger: { global: "damageBefore" },
|
|
|
|
|
direct: true,
|
|
|
|
|
filter: function (event, player) {
|
|
|
|
|
if (!lib.filter.targetEnabled({ name: "jinlianzhu" }, player, event.player)) return false;
|
|
|
|
|
return player.hasCard("jinlianzhu");
|
|
|
|
|
},
|
|
|
|
|
content: function () {
|
|
|
|
|
player.chooseToUse(
|
|
|
|
|
get.prompt("jinlianzhu", trigger.player).replace(/发动/, "使用"),
|
|
|
|
|
function (card, player) {
|
|
|
|
|
if (card.name != "jinlianzhu") return false;
|
|
|
|
|
return lib.filter.cardEnabled(card, player, "forceEnable");
|
|
|
|
|
},
|
|
|
|
|
trigger.player,
|
|
|
|
|
-1
|
|
|
|
|
).targetRequired = true;
|
|
|
|
|
},
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
cardType: {
|
|
|
|
|
food: 0.3,
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
translate: {
|
|
|
|
|
jinlianzhu: "金莲珠",
|
|
|
|
|
jinlianzhu_info: "对一名即将受到伤害的角色使用,防止此伤害,并令伤害来源摸一张牌。",
|
|
|
|
|
shihuifen: "石灰粉",
|
|
|
|
|
shihuifen_info:
|
|
|
|
|
"在一名其他角色的出牌阶段开始时对其使用,目标需打出一张闪,否则此阶段使用卡牌无法指定其他角色为目标。",
|
|
|
|
|
liufengsan: "流风散",
|
|
|
|
|
liufengsan_info: "出牌阶段对一名角色使用,目标获得两张闪。",
|
|
|
|
|
liutouge: "六骰格",
|
|
|
|
|
liutouge_info:
|
|
|
|
|
"出牌阶段对一名角色使用,若目标是敌人,对目标施加一个随机的负面效果;否则对目标施加一个随机的正面效果。",
|
|
|
|
|
longxugou: "龙须钩",
|
|
|
|
|
longxugou_info: "出牌阶段对一名装备区内有牌的其他角色使用,获得其装备区内的一张牌并装备之。",
|
|
|
|
|
mianlijinzhen: "棉里针",
|
|
|
|
|
mianlijinzhen_info: "出牌阶段对一名体力值不小于你的角色使用,目标摸一张牌然后失去1点体力。",
|
|
|
|
|
shenhuofeiya: "神火飞鸦",
|
|
|
|
|
shenhuofeiya_info:
|
|
|
|
|
"出牌阶段对一名其他角色和其相邻角色使用,目标需打出一张闪,否则受到1点火属性伤害。",
|
2020-06-13 04:51:36 +00:00
|
|
|
|
// tuhunsha:'土魂砂',
|
|
|
|
|
// tuhunsha_info:'土魂砂',
|
|
|
|
|
// wenhuangsan:'瘟癀伞',
|
|
|
|
|
// wenhuangsan_info:'瘟癀伞',
|
2024-04-15 18:36:20 +00:00
|
|
|
|
qiankunbiao: "乾坤镖",
|
|
|
|
|
qiankunbiao_info: "随机弃置一名其他角色和其相邻角色的一张牌。",
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
bingpotong: "天女散花",
|
|
|
|
|
bingpotong_ab: "散花",
|
|
|
|
|
bingpotong_info:
|
|
|
|
|
"出牌阶段对至多3名角色使用,你与每个目标依次同时展示一张手牌,若颜色相同,你弃置展示的手牌,目标失去1点体力并终止结算。",
|
|
|
|
|
feibiao: "飞镖",
|
|
|
|
|
feibiao_info: "出牌阶段,对一名距离1以外的角色使用,令其弃置一张黑色手牌或失去1点体力。",
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
dinvxuanshuang: "帝女玄霜",
|
|
|
|
|
dinvxuanshuang_skill: "帝女玄霜",
|
|
|
|
|
dinvxuanshuang_info:
|
|
|
|
|
"对一名濒死状态的角色使用,目标回复1点体力,然后可以弃置任意张牌并摸等量的牌。",
|
|
|
|
|
yunvyuanshen: "玉女元参",
|
|
|
|
|
yunvyuanshen_skill: "玉女元参",
|
|
|
|
|
yunvyuanshen_info: "出牌阶段对一名角色使用,目标在下一次进入濒死状态时回复1点体力。",
|
|
|
|
|
ziyangdan: "紫阳丹",
|
|
|
|
|
ziyangdan_info:
|
|
|
|
|
"出牌阶段对一名角色使用,目标获得3点护甲,此后每个准备阶段失去1点护甲,直到首次失去所有护甲或累计以此法失去3点护甲。",
|
|
|
|
|
gjyuheng: "玉衡",
|
|
|
|
|
gjyuheng_plus: "玉衡",
|
|
|
|
|
gjyuheng_pro: "玉衡",
|
|
|
|
|
gjyuheng_skill: "玉衡",
|
|
|
|
|
gjyuheng_plus_skill: "玉衡",
|
|
|
|
|
gjyuheng_pro_skill: "玉衡",
|
|
|
|
|
gjyuheng_info:
|
|
|
|
|
"出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑桃手牌,然后获得一名随机敌方角色的一张随机黑桃手牌(此牌在本局游戏中第三次和第七次发动效果后,分别自动获得一次强化)。",
|
|
|
|
|
gjyuheng_plus_info:
|
|
|
|
|
"由普通玉衡强化得到,将玉衡技能描述中的“弃置一张黑桃手牌”改为“弃置一张黑色手牌”。",
|
|
|
|
|
gjyuheng_pro_info:
|
|
|
|
|
"由普通玉衡二次强化得到,将玉横技能描述中的“弃置一张黑桃手牌”改为“弃置一张黑色手牌”,并去掉使用次数限制。",
|
|
|
|
|
gjyuheng_skill_info:
|
|
|
|
|
"出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑桃手牌,然后获得一名随机敌方角色的一张随机黑桃手牌。",
|
|
|
|
|
gjyuheng_plus_skill_info:
|
|
|
|
|
"出牌阶段限一次,若敌方角色有黑桃手牌,你可以弃置一张黑色手牌,然后获得一名随机敌方角色的一张随机黑桃手牌。",
|
|
|
|
|
gjyuheng_pro_skill_info:
|
|
|
|
|
"出牌阶段限,若敌方角色有黑桃手牌,你可以弃置一张黑色手牌,然后获得一名随机敌方角色的一张随机黑桃手牌。",
|
|
|
|
|
shujinsan: "舒筋散",
|
|
|
|
|
shujinsan_info: "出牌阶段对任意角色使用,目标可弃置任意张牌,并摸等量的牌。",
|
|
|
|
|
mutoumianju: "木头面具",
|
|
|
|
|
mutoumianju_info: "出牌阶段限一次,你可以将一张手牌当作杀使用。",
|
|
|
|
|
mutoumianju_skill: "木杀",
|
|
|
|
|
mutoumianju_skill_info: "出牌阶段限一次,你可以将一张手牌当作杀使用。",
|
|
|
|
|
heilonglinpian: "黑龙鳞片",
|
|
|
|
|
heilonglinpian_info: "出牌阶段对自己使用,获得1点护甲,直到下一回合开始,你的防御距离+1。",
|
|
|
|
|
shatang: "沙棠",
|
|
|
|
|
shatang_info: "出牌阶段对一名角色使用,对目标造成1点火焰伤害,然后目标获得1点护甲。",
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
food: "食物",
|
|
|
|
|
chunbing: "春饼",
|
|
|
|
|
chunbing_info: "你的手牌上限+1,持续五回合。",
|
|
|
|
|
gudonggeng: "骨董羹",
|
|
|
|
|
gudonggeng_info: "当你下一次受到杀造成的伤害时,令伤害-1,持续三回合。",
|
|
|
|
|
yougeng: "酉羹",
|
|
|
|
|
yougeng_info: "准备阶段,若你的体力值为全场最少或之一,你回复1点体力,持续两回合。",
|
|
|
|
|
liyutang: "鲤鱼汤",
|
|
|
|
|
liyutang_info: "结束阶段,若你的体力值为全场最少或之一,你获得1点护甲,持续两回合。",
|
|
|
|
|
mizhilianou: "蜜汁藕",
|
|
|
|
|
mizhilianou_info: "你可以将一张红桃牌当作桃使用,持续四回合。",
|
|
|
|
|
xiajiao: "虾饺",
|
|
|
|
|
xiajiao_info: "你在摸牌阶段额外摸一张牌,然后弃置一张牌,持续三回合。",
|
|
|
|
|
tanhuadong: "昙花冻",
|
|
|
|
|
tanhuadong_info: "出牌阶段结束时,你摸一张牌,持续三回合。",
|
|
|
|
|
qingtuan: "青团",
|
|
|
|
|
qingtuan_info: "你在回合内使用首张杀时摸一张牌,持续两回合。",
|
|
|
|
|
luyugeng: "鲈鱼羹",
|
|
|
|
|
luyugeng_info: "出牌阶段限一次,你可以弃置一张基本牌并发现一张牌,持续三回合。",
|
|
|
|
|
yuanbaorou: "元宝肉",
|
|
|
|
|
yuanbaorou_info: "你在出牌阶段可以额外使用一张杀,持续四回合。",
|
|
|
|
|
molicha: "茉莉茶",
|
|
|
|
|
molicha_info: "你不能成为其他角色的黑色牌的目标,持续四回合。",
|
|
|
|
|
mapodoufu: "麻婆豆腐",
|
|
|
|
|
mapodoufu_info: "结束阶段,你弃置一名随机敌人的一张随机牌,持续两回合。",
|
2020-06-13 04:51:36 +00:00
|
|
|
|
},
|
2024-04-15 18:36:20 +00:00
|
|
|
|
list: [
|
|
|
|
|
["spade", 2, "tanhuadong"],
|
|
|
|
|
["club", 1, "molicha"],
|
|
|
|
|
["club", 3, "chunbing"],
|
|
|
|
|
["heart", 12, "yougeng"],
|
|
|
|
|
["heart", 8, "gudonggeng"],
|
|
|
|
|
["heart", 1, "liyutang"],
|
|
|
|
|
["diamond", 4, "mizhilianou"],
|
|
|
|
|
["diamond", 6, "xiajiao"],
|
|
|
|
|
["spade", 3, "qingtuan"],
|
|
|
|
|
["club", 11, "luyugeng"],
|
|
|
|
|
["heart", 4, "mapodoufu"],
|
|
|
|
|
["spade", 8, "yuanbaorou"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["spade", 7, "gjyuheng"],
|
|
|
|
|
["club", 4, "mutoumianju"],
|
|
|
|
|
["spade", 2, "heilonglinpian"],
|
|
|
|
|
["spade", 1, "mianlijinzhen"],
|
|
|
|
|
["heart", 13, "yunvyuanshen"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["club", 8, "feibiao", "poison"],
|
|
|
|
|
["diamond", 9, "feibiao", "poison"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["spade", 3, "bingpotong", "poison"],
|
|
|
|
|
["club", 12, "bingpotong", "poison"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["club", 5, "shihuifen"],
|
|
|
|
|
["club", 1, "shihuifen"],
|
|
|
|
|
["spade", 13, "shihuifen"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["diamond", 6, "shujinsan"],
|
|
|
|
|
["spade", 2, "shujinsan"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["diamond", 6, "ziyangdan"],
|
|
|
|
|
["heart", 1, "ziyangdan"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2020-06-13 04:51:36 +00:00
|
|
|
|
// ['diamond',7,'dinvxuanshuang'],
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["heart", 9, "dinvxuanshuang"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["spade", 9, "qiankunbiao"],
|
|
|
|
|
["club", 13, "qiankunbiao"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["diamond", 9, "shenhuofeiya"],
|
|
|
|
|
["spade", 7, "longxugou"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["heart", 9, "jinlianzhu"],
|
|
|
|
|
["spade", 7, "jinlianzhu"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["heart", 6, "liutouge"],
|
|
|
|
|
["club", 6, "liutouge"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["club", 6, "liufengsan"],
|
|
|
|
|
["club", 3, "liufengsan"],
|
2024-01-12 03:38:36 +00:00
|
|
|
|
|
2024-04-15 18:36:20 +00:00
|
|
|
|
["heart", 13, "shatang", "fire"],
|
|
|
|
|
],
|
2020-06-13 04:51:36 +00:00
|
|
|
|
};
|
|
|
|
|
});
|