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

生成无名杀技能代码;技能名:治世 , 技能效果:出牌阶段选择一名其他角色,对其造成1点伤害并恢复1点生命

好的,下面是一个基于“无名杀”游戏引擎的技能代码示例,技能名为“治世”,效果为在出牌阶段选择一名其他角色,对其造成1点伤害并恢复1点生命。 ```java package skills; import cards.Card; import client.GameClient; import client.GameClient.Player; import client.event.ActionEvent; import client.util.CardUtil; public class ZhiShiSkill extends Skill { @Override public String getSkillName() { return "治世"; } @Override public String getSkillType() { return "phase"; } @Override public int getSkillFrequency() { return SkillFrequency.EACH_TURN; } @Override public boolean cardLimit(ActionEvent event) { return false; } @Override public boolean isAvailable(ActionEvent event) { Player player = event.getPlayer(); return player.getPhase() == Player.Phase.PLAY && player.getAlive(); } @Override public void onAction(ActionEvent event) { Player player = event.getPlayer(); GameClient game = player.getGame(); Player[] players = game.getPlayers(); // Display a list of other players to choose from String[] names = new String[players.length - 1]; for (int i = 0, j = 0; i < players.length; i++) { if (players[i] != player && players[i].getAlive()) { names[j++] = players[i].getName(); } } String targetName = game.showChooseDialog(player, "选择一名角色", names); if (targetName != null) { Player target = null; for (Player p : players) { if (p.getName().equals(targetName) && p.getAlive()) { target = p; break; } } if (target != null) { // Deal 1 damage to the target target.loseHp(1); // Heal 1 HP to the player player.recoverHp(1); // Log the action game.log(player.getName() + "使用【治世】对" + target.getName() + "造成1点伤害并恢复1点生命"); } } } } ``` 额外需要注意的逻辑点: 1. 边界条件处理:确保在选择目标角色时,目标角色处于存活状态,避免选择已死亡角色。 2. 技能触发频率:该技能设计为每回合出牌阶段可用一次,确保逻辑上不会因多次触发导致异常。 3. 日志记录:记录技能使用的详细日志,便于调试和复盘分析。 [2025-05-24 09:16:42 | AI写代码神器 | 662点数解答]

相关提问