```javascript skill = { audio: 2, trigger: { player: "useCard", }, frequent: true, filter: function (event, player) { if (!event.cards || event.cards.length != 1) return false; if (_status.currentPhase != '出牌阶段') return false; // 检查渐营效果条件:与上一张牌花色或点数相同 let lastCard = player.storage.lastCard; if (!lastCard) return false; if (get.suit(event.cards[0]) != get.suit(lastCard) && event.cards[0].number != lastCard.number) { return false; } return true; }, content: function () { this.player.draw(); // 记录最后使用的牌 this.player.storage.lastCard = this.event.cards[0]; }, intro: { content: "card", }, group: ["jianying2", "jianying3"], }, skill2 = { name: "渐营", audio: 2, trigger: { player: "useCard", }, limited: { maxTimes: 1, phase: '出牌阶段' }, filter: function (event, player) { if (!event.cards || event.cards.length != 1) return false; if (_status.currentPhase != '出牌阶段') return false; // 检查转换基本牌的条件 let lastCard = player.storage.lastCard; if (lastCard && get.suit(lastCard)) { // 若上一张牌有花色,则当前牌花色视为相同 event.cards[0] = clone(event.cards[0]); event.cards[0].suit = lastCard.suit; } return true; }, content: function () { // 允许将牌当做基本牌使用 this.game.modifyCardType(this.event.cards[0], 'basic'); }, intro: { content: "card", }, group: ["jianying2", "jianying3"], } ``` 三条额外需要注意的逻辑点: 1. 存储机制:`player.storage.lastCard` 用于记录玩家在出牌阶段使用的上一张牌,需确保每次使用牌后正确更新此变量。 2. 花色继承:当玩家将牌当做基本牌使用时,若上一张牌有花色,当前牌的花色会继承上一张牌的花色,需通过 `clone` 和修改 `suit` 属性实现。 3. 触发次数限制:`limited` 中的 `maxTimes` 和 `phase` 确保技能在出牌阶段最多触发一次,避免重复摸牌或多次转换基本牌。 [2025-07-05 23:27:14 | AI写代码神器 | 713点数解答]