From d998b6f0e74568126d4b6dd631993acf03e4d7eb Mon Sep 17 00:00:00 2001 From: mengxinzxz <2223529500@qq.com> Date: Thu, 28 Mar 2024 20:38:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=90=E8=8D=A3=EF=BC=8C=E4=BA=8C=E5=90=95?= =?UTF-8?q?=EF=BC=8C=E7=A7=A6=E5=AE=9C=E7=A6=84=EF=BC=8C=E8=AF=B8=E8=91=9B?= =?UTF-8?q?=E8=8B=A5=E9=9B=AA=EF=BC=8C=E8=B0=8B=E9=B2=81=E8=82=83=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/huicui.js | 8 ++++---- character/sp.js | 6 +++++- character/sp2.js | 19 +++++++++++-------- character/xianding.js | 41 ++++++++++++++++++----------------------- 4 files changed, 38 insertions(+), 36 deletions(-) diff --git a/character/huicui.js b/character/huicui.js index 0589883f7..31ba2901d 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -7095,6 +7095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' player.showCards(cards,get.translation(player)+'发动了【数合】'); + player.addMark('dcliehou',1); 'step 1' event.cards2=[]; var num1=get.number(cards[0],player); @@ -7135,7 +7136,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var target=result.targets[0]; player.line(target,'green'); player.give(cards,target); - player.addMark('dcliehou',1); } }, ai:{ @@ -11908,7 +11908,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' var target=trigger.player; event.target=target; - if(target.getHistory('sourceDamage').length>0&&player.canUse('juedou',target)){ + if(target.getHistory('useCard',evt=>get.color(evt.card)=='black').length>0&&player.canUse('juedou',target)){ player.useCard({name:'juedou',isCard:true},target,'dcxunji_effect'); } 'step 1' @@ -12558,7 +12558,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhuangdan_info:'锁定技,其他角色的回合结束时,若你的手牌数为全场唯一最多,则你令〖裂胆〗失效直到你下回合结束。', dc_caiyang:'蔡阳', dcxunji:'寻嫉', - dcxunji_info:'出牌阶段限一次,你可以选择一名其他角色。该角色的下个结束阶段开始时,若其于该回合内造成过伤害,则你视为对其使用一张【决斗】,且当此【决斗】对其造成伤害后,其对你造成等量的伤害。', + dcxunji_info:'出牌阶段限一次,你可以选择一名其他角色。该角色的下个结束阶段开始时,若其此回合使用过黑色牌,则你视为对其使用一张【决斗】,且当此【决斗】对其造成伤害后,其对你造成等量的伤害。', dcjiaofeng:'交锋', dcjiaofeng_info:'锁定技。每回合限一次,当你造成伤害时,若你本回合内未造成过其他伤害且你已损失的体力值:大于0,则你摸一张牌;大于1,则此伤害+1;大于2,则你回复1点体力。', zhoushan:'周善', @@ -12758,7 +12758,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ qinbao_info:'锁定技。当你使用【杀】或普通锦囊牌时,你令所有手牌数不小于你的角色不能响应此牌。', dc_lvkuanglvxiang:'吕旷吕翔', dcshuhe:'数合', - dcshuhe_info:'出牌阶段限一次,你可以展示一张手牌。若场上有与此牌点数相同的牌,则你获得这些牌;否则你将此牌交给一名其他角色并获得一枚“爵”。', + dcshuhe_info:'出牌阶段限一次,你可以展示一张手牌并获得一枚“爵”。若场上有与此牌点数相同的牌,则你获得这些牌;否则你将此牌交给一名其他角色。', dcliehou:'列侯', dcliehou_info:'锁定技。摸牌阶段开始时,你令额定摸牌数+X;然后此摸牌阶段结束时,你选择一项:⒈弃置X张牌。⒉失去1点体力(X为你的“爵”数+1且至多为5)。', yinfuren:'尹夫人', diff --git a/character/sp.js b/character/sp.js index cc9622aa8..1a097f7af 100755 --- a/character/sp.js +++ b/character/sp.js @@ -25521,12 +25521,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ break; case 2: player.line(trigger.player,'green'); + /* var card1=trigger.player.getCards('h').randomGet(); var card2=trigger.player.getCards('e').randomGet(); var list=[]; if(card1) list.push(card1); if(card2) list.push(card2); if(list.length) player.gain(list,trigger.player,'giveAuto','bySelf'); + */ + const cards=trigger.player.getGainableCards(player,'he'); + if(cards.length) player.gain(cards.randomGets(2),trigger.player,'giveAuto','bySelf'); break; } 'step 2' @@ -26544,7 +26548,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ fujian:'伏间', fujian_info:'锁定技,准备阶段和结束阶段,你随机观看一名手牌数不为全场最多的其他角色的手牌。', xinfu_xionghuo:'凶镬', - xinfu_xionghuo_info:'游戏开始时,你获得3个“暴戾”标记(标记上限为3)。出牌阶段,你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其一张手牌和一张装备区的牌。', + xinfu_xionghuo_info:'游戏开始时,你获得3个“暴戾”标记(标记上限为3)。出牌阶段,你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其两张牌。', xinfu_shajue:'杀绝', xinfu_shajue_info:'锁定技,其他角色进入濒死状态时,你获得一个“暴戾”标记。然后若其体力值小于0,你获得使其进入濒死状态的牌。', xinfu_jianjie:"荐杰", diff --git a/character/sp2.js b/character/sp2.js index 9416804b1..51432f316 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -3272,7 +3272,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } else player.addTempSkill('piaoping_blocker'); }, - intro:{name2:'栗',content:'mark'}, + init(player){ + player.addMark('tuoxian',1,false); + }, + intro:{name2:'栗',content:'剩余可用#次'}, }, chuaili:{ audio:2, @@ -3288,8 +3291,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.changeZhuanhuanji('piaoping'); } else{ - player.addMark('tuoxian',1); - player.addTempSkill('chuaili_blocker'); + player.addMark('tuoxian',1,false); + if(player.countCards('tuoxian')>3) player.addTempSkill('chuaili_blocker'); } game.delayx(); }, @@ -11043,9 +11046,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return '转换技,锁定技。当你使用一张牌时,阴:你摸X张牌。阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)'; }, chuaili:function(player){ - if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。'; - if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。'; - return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。'; + if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。'; + if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。'; + return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。'; }, dcdouzhen:function(player){ var str='锁定技。①转换技。你的回合内,'; @@ -11529,9 +11532,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ piaoping:'漂萍', piaoping_info:'转换技,锁定技。当你使用一张牌时,阴:你摸X张牌。阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)', tuoxian:'托献', - tuoxian_info:'当你因执行〖漂萍〗的效果而弃置牌后,你可以弃置一枚“栗”并令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。', + tuoxian_info:'每局游戏限一次。当你因执行〖漂萍〗的效果而弃置牌后,你可令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。', chuaili:'惴栗', - chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。', + chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。', fengfang:'冯方', dcditing:'谛听', dcditing_info:'其他角色的出牌阶段开始时,若你在该角色的攻击范围内,则你可以观看其的X张手牌(X为你的体力值)并选择其中一张,且获得如下效果:①当其使用对应实体牌包含此牌的牌指定你为目标后,你令此牌对你无效。②当其使用对应实体牌包含此牌的牌结算结束后,若你不是此牌的目标,则你摸两张牌。③其出牌阶段结束时,若此牌位于其的手牌区,则你获得此牌。', diff --git a/character/xianding.js b/character/xianding.js index 2054f99f2..4aca7ebb8 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -1282,14 +1282,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhuanhuanji:true, intro:{ content:function(storage){ - if(!storage) return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力。(X为你的体力值)' - return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力值,Y为X-其打出【杀】数)'; + if(!storage) return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力。(X为你的体力上限)'; + return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力上限,Y为X-其打出【杀】数)'; }, }, audio:2, trigger:{global:['gainAfter','loseAsyncAfter']}, filter:function(event,player){ - if(!player.getHp()) return false; + if(typeof player.maxHp!='number'||player.maxHp<=0) return false; if(event.name=='loseAsync'&&event.type!='gain') return false; if(player.hasSkill('dcsbmengmou_true')&&player.hasSkill('dcsbmengmou_false')) return false; var cards1=event.getl(player).cards2,cards2=event.getg(player); @@ -1308,7 +1308,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var player=map.player,trigger=map.trigger; var storage=player.storage.dcsbmengmou; player.addTempSkill('dcsbmengmou_effect','dcsbmengmouAfter'); - var targets=[],num=player.getHp(); + var targets=[],num=player.maxHp; var cards1=trigger.getl(player).cards2; var cards2=trigger.getg(player); targets.addArray(game.filterPlayer(function(current){ @@ -1525,14 +1525,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, trigger:{player:'phaseJieshuBegin'}, direct:true, - filter:function(event,player){ - return game.hasPlayer(current=>current.countCards('e')); - }, content:function*(event,map){ const player=map.player; - let result=yield player.chooseTarget(get.prompt('dcnuanhui'),'选择一名装备区有牌的角色,该角色可以依次使用X张基本牌(X为其装备区牌数)。',(card,player,target)=>{ - return target.countCards('e'); - }).set('ai',target=>{ + let result=yield player.chooseTarget(get.prompt('dcnuanhui'),'选择一名装备区有牌的角色,该角色可以依次使用X张基本牌(X为其装备区牌数)。').set('ai',target=>{ return get.event('aiTarget')==target?10:0; }).set('aiTarget',(()=>{ const player=get.player(); @@ -1544,7 +1539,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(get.attitude(player,target)<=0) return -1; const toUse=[]; const hp=target.hp; - let eff=0,count=target.countCards('e'); + let eff=0,count=Math.max(1,target.countCards('e')); while(count--){ target.hp=Math.min(target.maxHp,target.hp+toUse.filter(card=>card.name=='tao').length); const listx=list.map(info=>{ @@ -1570,11 +1565,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return eff; } - const playerList=game.filterPlayer(current=>{ - return current.countCards('e'); - }).map(current=>[current,getUseValue(current)]).sort((a,b)=>{ - return b[1]-a[1]; - }); + const playerList=game.filterPlayer().map(current=>[current,getUseValue(current)]).sort((a,b)=>b[1]-a[1]); if(playerList[0][1]<=0) return null; return playerList[0][0]; })()); @@ -1582,8 +1573,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ const target=result.targets[0]; player.logSkill('dcnuanhui',target); if(!target.isUnderControl(true)&&!target.isOnline()) game.delayx(); - const total=target.countCards('e'); - let count=0,forced=false; + const total=Math.max(1,target.countCards('e')); + let count=0,forced=false,used=[],discard=false; while(count{ return info[0]=='basic'&&target.hasUseTarget({name:info[2],nature:info[3],isCard:true}); @@ -1602,10 +1593,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } forced=true; const card=new lib.element.VCard({name:result.links[0][2],nature:result.links[0][3],isCard:true}); - yield target.chooseUseTarget(card,true,false); + const result=yield target.chooseUseTarget(card,true,false); + if(!discard&&result.bool){ + if(used.includes(result.links[0][2])) discard=true; + else used.add(result.links[0][2]); + } count++; } - if(count>1){ + if(discard){ const cards=target.getCards('e',card=>{ return lib.filter.cardDiscardable(card,target,'dcnuanhui'); }); @@ -14445,7 +14440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(storage) str+=''; str+='阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。'; if(storage) str+=''; - str+='(X为你的体力值,Y为X-其打出【杀】数)'; + str+='(X为你的体力上限,Y为X-其打出【杀】数)'; return str; }, dcsbyingmou:function(player){ @@ -14969,7 +14964,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dcqiongying:'琼英', dcqiongying_info:'出牌阶段限一次。你可以移动场上的一张牌,然后你弃置一张与此牌花色相同的手牌(若没有该花色的手牌则改为展示所有手牌)。', dcnuanhui:'暖惠', - dcnuanhui_info:'结束阶段,你可以选择一名装备区有牌的角色,其可以视为依次使用X张基本牌(X为其装备区牌数)。若其以此法使用了至少两张牌,其弃置装备区里的所有牌。', + dcnuanhui_info:'结束阶段,你可以选择一名装备区有牌的角色,其可以视为依次使用X张基本牌(X为其装备区牌数且至少为1)。若其此次以此法使用了同名牌,其弃置装备区里的所有牌。', zhangjian:'张臶', dc_zj_a:'技能', dc_zj_a_info:'锁定技。当你受到牌造成的伤害时,若此牌有点数,则你将此伤害值改为此牌点数,否则你防止此伤害。', @@ -14980,7 +14975,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dcsbmingshi:'明势', dcsbmingshi_info:'摸牌阶段,你可以多摸两张牌,然后展示三张牌并令一名其他角色选择获得其中的一张牌。', dcsbmengmou:'盟谋', - dcsbmengmou_info:'转换技,每回合每项各限一次,当你得到其他角色的牌后,或其他角色得到你的牌后:阴,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力;阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力值,Y为X-其打出【杀】数)', + dcsbmengmou_info:'转换技,每回合每项各限一次,当你得到其他角色的牌后,或其他角色得到你的牌后:阴,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力;阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力上限,Y为X-其打出【杀】数)', dc_sb_zhouyu:'新杀谋周瑜', dc_sb_zhouyu_prefix:'新杀谋', dcsbronghuo:'融火',