diff --git a/card/standard.js b/card/standard.js index 1f121d6a7..86f11562f 100644 --- a/card/standard.js +++ b/card/standard.js @@ -1407,7 +1407,7 @@ game.import("card", function () { return 1; }, basic: { - order: 9, + order: 7.2, useful: [5, 1], value: 5, }, @@ -1700,7 +1700,7 @@ game.import("card", function () { return 1; }, basic: { - order: 9, + order: 7.2, useful: 1, value: 5, }, @@ -1843,7 +1843,7 @@ game.import("card", function () { } }, basic: { - order: 7.2, + order: 7, useful: 4.5, value: 9.2, }, @@ -2111,12 +2111,13 @@ game.import("card", function () { pos = get.position(button.link), name = get.name(button.link); if (pos == "j") { - if (name == "lebu") { + let viewAs = button.link.viewAs; + if (viewAs == "lebu") { let needs = target.needsToDiscard(2); btv *= 1.08 + 0.2 * needs; - } else if (name == "shandian" || name == "fulei" || name == "plague") btv /= 2; + } else if (viewAs == "shandian" || viewAs == "fulei") btv /= 2; } - if (get.attitude(player, get.owner(button.link)) > 0) btv = -btv; + if (att > 0) btv = -btv; if (pos != "e") { if (pos == "h" && !player.hasSkillTag("viewHandcard", null, target, true)) return btv + 0.1; @@ -2156,6 +2157,7 @@ game.import("card", function () { return get.value(card, target) > 0 && card != target.getEquip('jinhe'); }) && !js.some(card => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return true; return get.effect(target, cardj, target, player) < 0; })) return 0; } @@ -2164,6 +2166,7 @@ game.import("card", function () { return get.value(card, target) <= 0; }) || js.some(card => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return false; return get.effect(target, cardj, target, player) < 0; })) ? 1.5 : 0; } @@ -2180,6 +2183,7 @@ game.import("card", function () { return get.value(card, target) > 0 && card != target.getEquip('jinhe'); }) || js.some(card => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return true; return get.effect(target, cardj, target, player) < 0; })) ? -1.5 : 1.5; } @@ -2187,6 +2191,7 @@ game.import("card", function () { return get.value(card, target) <= 0; }) || js.some(card => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return false; return get.effect(target, cardj, target, player) < 0; })) ? 1.5 : -1.5; }, @@ -2218,6 +2223,7 @@ game.import("card", function () { }) || js.some((card) => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return true; return get.effect(target, cardj, target, player) < 0; }) ? -1.5 @@ -2228,6 +2234,7 @@ game.import("card", function () { }) || js.some((card) => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return false; return get.effect(target, cardj, target, player) < 0; }) ? 1.5 @@ -2250,6 +2257,7 @@ game.import("card", function () { }) && !js.some((card) => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return true; return get.effect(target, cardj, target, player) < 0; }) ) @@ -2260,6 +2268,7 @@ game.import("card", function () { }) || js.some((card) => { var cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return false; return get.effect(target, cardj, target, player) < 0; }) ? 1.5 @@ -2423,12 +2432,13 @@ game.import("card", function () { pos = get.position(button.link), name = get.name(button.link); if (pos === "j") { - if (name === "lebu") { + let viewAs = button.link.viewAs; + if (viewAs === "lebu") { let needs = target.needsToDiscard(2); val *= 1.08 + 0.2 * needs; - } else if (name == "shandian" || name == "fulei" || name == "plague") val /= 2; + } else if (viewAs == "shandian" || viewAs == "fulei") val /= 2; } - if (get.attitude(player, get.owner(button.link)) > 0) val = -val; + if (att > 0) val = -val; if (pos !== "e") return val; let sub = get.subtypes(button.link); if (sub.includes("equip1")) return (val * Math.min(3.6, target.hp)) / 3; @@ -2466,6 +2476,7 @@ game.import("card", function () { if (att > 0) { if (js.some(card => { const cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return false; return get.effect(target, cardj, target, player) < 0; })) return 3; if (target.isDamaged() && es.some(card => card.name == 'baiyin') && @@ -2485,6 +2496,7 @@ game.import("card", function () { })); const noj = (js.length == 0 || !js.some(card => { const cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return true; return get.effect(target, cardj, target, player) < 0; })) if (noh && noe2 && noj) return 1.5; @@ -2518,6 +2530,7 @@ game.import("card", function () { if ( js.some((card) => { const cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return false; return get.effect(target, cardj, target, player) < 0; }) ) @@ -2548,6 +2561,7 @@ game.import("card", function () { js.length == 0 || !js.some((card) => { const cardj = card.viewAs ? { name: card.viewAs } : card; + if (cardj.name == "xumou_jsrg") return true; return get.effect(target, cardj, target, player) < 0; }); if (noh && noe2 && noj) return 1.5; diff --git a/card/yingbian.js b/card/yingbian.js index d6b5e3bb5..52ea6f60f 100644 --- a/card/yingbian.js +++ b/card/yingbian.js @@ -61,7 +61,7 @@ game.import("card", function () { var base = 0; if (get.cardtag(card, "yingbian_all")) { if ( - targets.filter(function (current) { + targets.some(function (current) { var att = get.attitude(player, current); if (att <= 0) return ( @@ -74,7 +74,7 @@ game.import("card", function () { return get.position(card) == "j" || get.value(card, current) <= 0; }) > 1 ); - }).length + }) ) base += 6; } @@ -138,13 +138,11 @@ game.import("card", function () { ? -1.5 : 1.5; var js = target.getCards("j"); - if (js.length) { - var jj = js[0].viewAs ? { name: js[0].viewAs } : js[0]; - if (js.length == 1 && get.effect(target, jj, target, player) >= 0) { - return -1.5; - } - return 3; - } + if (js.length && js.some(i => { + let cardj = i.viewAs ? { name: i.viewAs } : i; + if (cardj.name == "xumou_jsrg") return false; + return get.effect(target, cardj, target, player) < 0; + })) return 3; return -1.5; }, player: function (player, target) { @@ -159,13 +157,11 @@ game.import("card", function () { } if (get.attitude(player, target) > 1) { var js = target.getCards("j"); - if (js.length) { - var jj = js[0].viewAs ? { name: js[0].viewAs } : js[0]; - if (js.length == 1 && get.effect(target, jj, target, player) >= 0) { - return 0; - } - return 1; - } + if (js.length && js.some(i => { + let cardj = i.viewAs ? { name: i.viewAs } : i; + if (cardj.name == "xumou_jsrg") return false; + return get.effect(target, cardj, target, player) < 0; + })) return 1; return 0; } return 1; diff --git a/character/mobile/skill.js b/character/mobile/skill.js index 1489b3883..81e6ccc38 100644 --- a/character/mobile/skill.js +++ b/character/mobile/skill.js @@ -119,6 +119,9 @@ const skills = { if (cards.length) await player.discard(cards); await player.draw(4); }, + ai: { + combo: "mbpanxiang" + }, }, //李昭焦伯 mbzuoyou: { diff --git a/character/refresh/skill.js b/character/refresh/skill.js index ffc15c369..d66bb70c4 100644 --- a/character/refresh/skill.js +++ b/character/refresh/skill.js @@ -1635,9 +1635,12 @@ const skills = { return target.countCards("he") > 0 && target != player; }) .set("ai", target => { - var player = _status.event.player; - if (_status.event.goon) return get.attitude(player, target) * Math.sqrt(target.countCards("he")); - return (-get.attitude(player, target) / (target.countCards("he") + 1)) * 10; + var player = _status.event.player, att = get.attitude(player, target); + if (_status.event.goon) { + if (att > 0) return att * Math.sqrt(target.countCards("he")); + return (1 - att) / (target.countCards("he") + 1); + } + return -10 * att / (target.countCards("he") + 1); }) .set("goon", player.countCards("hs", card => player.hasValueTarget(card)) >= 2); "step 1"; @@ -1661,6 +1664,14 @@ const skills = { }, subSkill: { effect: { + mod: { + aiOrder(player, card, num) { + if (num <= 0 || !player.getExpansions("rekuangbi_effect").length) return; + let suit = get.suit(card); + if (player.getExpansions("rekuangbi_effect").some(i => get.suit(i) == suit)) return num + 10; + return num / 4; + } + }, trigger: { player: "useCard" }, charlotte: true, forced: true, diff --git a/character/sp/skill.js b/character/sp/skill.js index 8d7d8e74d..1fab8a2ab 100644 --- a/character/sp/skill.js +++ b/character/sp/skill.js @@ -25173,7 +25173,12 @@ const skills = { usable: 1, content: function () { "step 0"; - player.judge(); + player.judge(card => { + if (game.hasPlayer(cur => { + return get.event("player").canUse("sha", cur); + })) return get.number(card); + return 1 / get.number(card); + }); "step 1"; player.storage.qiangwu = result.number; player.addTempSkill("qiangwu3", "phaseUseEnd");