From 7f3801cb20c4d64ad799e3a2ae0ad397c4a100b7 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Sat, 30 Mar 2024 17:42:00 +0800 Subject: [PATCH] bugfix --- character/clan.js | 4 +-- character/refresh.js | 60 +++++++++++++++++++++++--------------------- character/shenhua.js | 4 +-- character/sp2.js | 3 ++- character/tw.js | 3 ++- 5 files changed, 40 insertions(+), 34 deletions(-) diff --git a/character/clan.js b/character/clan.js index d23a1d9e0..7d542aabc 100644 --- a/character/clan.js +++ b/character/clan.js @@ -1240,8 +1240,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, - prompt(result){ - if(result.index>0) return '点击“确定”以观看牌堆顶牌'; + prompt(result,player){ + if(!player.storage.clanguangu) return '点击“确定”以观看牌堆顶牌'; return '观骨:选择观看牌的目标'; }, }, diff --git a/character/refresh.js b/character/refresh.js index f762363a9..c0a268cf4 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -5448,40 +5448,44 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return true; }, - direct:true, - content:function(){ - "step 0" - if(lib.skill.rebingyi.filtery(player)) event.draw=true; - if(lib.skill.rebingyi.filterx(player)){ - player.chooseTarget(get.prompt('xinbingyi'),'展示所有手牌,并选择至多'+get.cnNumber(player.countCards('h'))+'名角色各摸一张牌',[0,player.countCards('h')],function(card,player,target){ - return true; - }).set('ai',function(target){ - return get.attitude(_status.event.player,target); - }); + async cost(event, trigger, player){ + const selfDraw = lib.skill.rebingyi.filtery(player), asyncDraw = lib.skill.rebingyi.filterx(player); + if (asyncDraw) { + const num = player.countCards('h'); + const result = await player.chooseTarget( + get.prompt('xinbingyi'), + `展示所有手牌,并选择至多${get.cnNumber(num)}名角色各摸一张牌${selfDraw ? '' : ',然后你摸一张牌'}`, + [0,num] + ).set('ai', function(target){ + return get.attitude(get.player(), target); + }).forResult(); + if(result.bool) event.result = { + bool: result.bool, + cost_data: { + asyncDraw, + selfDraw, + targets: result.targets + }, + } } - else player.chooseBool(get.prompt('bingyi'),'展示所有手牌').ai=function(){return false}; - "step 1" - if(result.bool){ - player.logSkill('rebingyi'); - player.showHandcards(get.translation(player)+'发动了【秉壹】'); - event.targets=result.targets; + else { + event.result = await player.chooseBool(get.prompt('bingyi'),`展示所有手牌${selfDraw ? '' : ',然后你摸一张牌'}`) + .set('choice', selfDraw) + .set('ai',()=>get.event().choice) + .forResult(); + event.result.cost_data = {selfDraw}; } - else{ - event.finish(); - } - "step 2" - if(targets&&targets.length){ - player.line(targets,'green'); - targets.sortBySeat(); + }, + async content(event, trigger, player){ + await player.showHandcards(get.translation(player)+'发动了【秉壹】') + const data = event.cost_data; + if (data.asyncDraw && data.targets && data.targets.length){ + const targets = data.targets.sortBySeat(); game.asyncDraw(targets); } - else event.finish(); - if(event.draw){ + if (data.selfDraw) { player.draw(); - event.finish(); } - "step 3" - game.delayx(); }, }, //钟会 diff --git a/character/shenhua.js b/character/shenhua.js index 171dae51f..2bf40c7f0 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -6208,8 +6208,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } "step 2" if(result.suit=='club'){ - event.target.damage('thunder'); player.recover(); + event.target.damage('thunder'); } else if(result.suit=='spade'){ event.target.damage(2,'thunder'); @@ -8113,7 +8113,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinkuanggu_info:'当你造成1点伤害后,若受伤角色受到此伤害时你与其的距离不大于1,则你可以回复1点体力或摸一张牌。', xinliegong_info:'①你使用【杀】可以选择你距离不大于此【杀】点数的角色为目标。②当你使用【杀】指定一个目标后,你可以根据下列条件执行相应的效果:1.其手牌数小于等于你的手牌数,此【杀】不可被响应,2.其体力值大于等于你的体力值,此【杀】伤害+1。', jiewei_info:'当你的武将牌翻面后,你可以摸一张牌。然后你可以使用一张锦囊牌或装备牌,并可以在此牌结算后弃置场上一张同类型的牌。', - releiji_info:'当你使用或打出一张【闪】时,你可令一名其他角色进行一次判定:若结果为梅花,其受到1点雷电伤害,然后你回复1点体力;若结果为黑桃,其受到2点雷电伤害。', + releiji_info:'当你使用或打出一张【闪】时,你可令一名其他角色进行一次判定:若结果为梅花,你回复1点体力,并对其造成1点雷电伤害;若结果为黑桃,你对其造成2点雷电伤害。', tiangong_info:'锁定技,你防止即将受到的雷电伤害。每当你造成雷电伤害时,你摸一张牌。', shensu_info:'你可以跳过判定阶段和摸牌阶段,或跳过出牌阶段并弃置一张装备牌。若如此做,则你可以视为对任意一名角色使用一张无距离限制的【杀】。', jushou_info:'结束阶段,你可以摸三张牌并翻面。', diff --git a/character/sp2.js b/character/sp2.js index 51432f316..063019f9a 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -261,6 +261,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ const num=player.countCards('h'); if(player.isMaxHandcard()&&num>0){ const maxNum=game.findPlayer(current=>{ + if(current===player) return false; return !game.hasPlayer(current2=>{ if(current2===player) return false; return current2.countCards('h')>current.countCards('h'); @@ -11408,7 +11409,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ recuorui:'摧锐', recuorui_info:'限定技,出牌阶段,你可以依次获得至多X名角色的各一张手牌(X为你的体力值)。', reliewei:'裂围', - reliewei_info:'每回合限Y次,当有角色于你的回合内进入濒死状态时,你可以摸一张牌(Y为你的体力值,若当前回合角色为你,则Y为Infinity)。', + reliewei_info:'每回合限Y次,当有角色进入濒死状态时,你可以摸一张牌(Y为你的体力值,若当前回合角色为你,则Y为Infinity)。', duanwei:'段煨', langmie:'狼灭', langmie_damage:'狼灭', diff --git a/character/tw.js b/character/tw.js index be64325a2..2d96a986c 100644 --- a/character/tw.js +++ b/character/tw.js @@ -1374,7 +1374,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ const {result:{bool,links}}=await player.chooseButton([ '劫囚:请选择你要恢复的装备栏', [transList,'tdnodes'], - ],num,true).set('map',map) + ],Math.min(transList.length,num),true).set('map',map) .set('ai',button=>['equip5','equip4','equip1','equip3','equip2'].indexOf(get.event('map')[button.link])+2); if(bool) await player.enableEquip(links.slice().map(i=>map[i])); }, @@ -10594,6 +10594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ card:trigger.card, })) damageNum=1; var yimie=function(){ + if(damageNum==1) return false; var hit=true; if(get.type(trigger.card)=='trick'&&trigger.player.countCards('hs',{name:'wuxie'})) hit=false; if(trigger.card.name=='huogong'&&trigger.player.countCards('h',function(card){