酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

生成无名杀技能代码,技能名:一之弹 , 技能效果:出牌阶段,你可以失去一点体力或一点体力上限,然后你选择你攻击范围内的一名角色直到你下一个回合其使用牌没有次数与距离限制,使用牌后摸一张牌。

# 无名杀技能代码:一之弹 ```javascript // 技能名称:一之弹 // 技能效果:出牌阶段,你可以失去一点体力或一点体力上限,然后选择你攻击范围内的一名角色直到你下一个回合其使用牌没有次数与距离限制,使用牌后摸一张牌。 { name: "一之弹", trigger: { player: "phaseUse" }, filter: function(event, player) { return player.hp > 1 || player.maxHp > 1; // 至少有1点体力或体力上限可失去 }, content: async function() { // 选择失去体力或体力上限 const choices = []; if (this.player.hp > 1) choices.push("失去1点体力"); if (this.player.maxHp > 1) choices.push("失去1点体力上限"); const choose = await this.player.chooseButton("请选择要失去的:", choices); if (choose == null) return; // 取消选择 // 执行失去效果 if (choose == "失去1点体力") { await this.player.changeHp(-1); } else { await this.player.changeMaxHp(-1); } // 选择目标角色 const target = await this.player.chooseTarget("请选择一名角色", "attack"); if (!target) return; // 添加效果到目标角色 target.addTempSkill({ name: "一之弹效果", trigger: { player: "useCard" }, forced: true, filter: function(event, player) { return event.player == player; }, content: async function() { await this.player.draw(1); // 使用牌后摸一张牌 }, mod: { globalFrom: function(from, to, player) { if (player == this.player) return Infinity; // 无距离限制 return from; }, globalUse: function(card, player) { if (player == this.player) return Infinity; // 无次数限制 return 0; } } }, this.player.nextPhase); // 效果持续到玩家下一个回合 } } ``` ## 代码说明 1. 技能在出牌阶段触发,首先检查玩家是否有足够的体力或体力上限可以失去 2. 玩家可以选择失去1点体力或1点体力上限 3. 选择攻击范围内的一名目标角色 4. 为目标角色添加临时技能效果,持续到玩家下一个回合 5. 临时技能效果包括: - 使用牌无距离限制 - 使用牌无次数限制 - 每次使用牌后摸一张牌 ## 需要注意的逻辑点 1. 需要正确处理玩家取消选择的情况,避免强制玩家必须选择 2. 临时技能的持续时间需要精确控制,确保在下个回合时自动移除 3. 需要同时考虑距离限制和次数限制的修改,确保两者都正确生效 [2025-05-04 10:41:34 | AI写代码神器 | 654点数解答]

相关提问