From a7ed420a78423220c9cb69eee8977542689554a6 Mon Sep 17 00:00:00 2001 From: mengxinzxz <2223529500@qq.com> Date: Wed, 28 Feb 2024 18:30:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B9=E5=A9=B4=E3=80=81=E7=A7=A6=E6=9C=97?= =?UTF-8?q?=E3=80=81=E7=B3=9C=E8=8A=B3=E5=82=85=E5=A3=AB=E4=BB=81=E3=80=81?= =?UTF-8?q?=E8=87=A7=E9=9C=B8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/huicui.js | 4 +-- character/sp.js | 46 +++++++++++++++++-------- character/sp2.js | 81 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 115 insertions(+), 16 deletions(-) diff --git a/character/huicui.js b/character/huicui.js index 736be0719..40251122e 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -4982,7 +4982,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ source:'damageSource', player:'damageEnd', }, - usable:1, + usable:2, logTarget:'source', check:function(event,player){ if(typeof player.storage.dchaochong!='number'||player.storage.dchaochong==0) return true; @@ -12574,7 +12574,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ dchaochong:'昊宠', dchaochong_info:'当你使用牌后,你可以将手牌摸至或弃置至你的手牌上限数(至多摸五张)。然后若你以此法:得到牌,你的手牌上限-1;失去牌,你的手牌上限+1。', dcjinjin:'矜谨', - dcjinjin_info:'每回合限一次。当你造成或受到伤害后,你可以重置因〖昊宠〗增加或减少的手牌上限,令伤害来源弃置至多X张牌,然后你摸Y张牌(X为你以此法变化的手牌上限且至少为1,Y为X减其以此法弃置的牌数)。', + dcjinjin_info:'每回合限两次。当你造成或受到伤害后,你可以重置因〖昊宠〗增加或减少的手牌上限,令伤害来源弃置至多X张牌,然后你摸Y张牌(X为你以此法变化的手牌上限且至少为1,Y为X减其以此法弃置的牌数)。', xianglang:'向朗', dckanji:'勘集', dckanji_info:'出牌阶段限两次。你可以展示所有手牌,若花色均不同,你摸两张牌。然后若你的手牌因此包含了四种花色,你跳过下一个弃牌阶段。', diff --git a/character/sp.js b/character/sp.js index 017faff3f..e25221bec 100755 --- a/character/sp.js +++ b/character/sp.js @@ -119,7 +119,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jianggan:["male","wei",3,["weicheng","daoshu"]], - caoying:["female","wei",4,["xinfu_lingren","xinfu_fujian"],[]], + caoying:["female","wei",4,["xinfu_lingren","fujian"],[]], simahui:["male","qun",3,["jianjie","xinfu_chenghao","xinfu_yinshi"],[]], baosanniang:["female","shu",4,["olwuniang","olxushen"],[]], @@ -16955,7 +16955,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{global:'phaseEnd'}, forced:true, charlotte:true, - filter:function(event,player){ + filterx:function(event,player){ if(!event.player.countMark('rehengjiang2')) return false; if(event.player.hasHistory('lose',function(evt){ return evt.type=='discard'&&evt.cards2.length>0&&evt.getParent('phaseDiscard').player==event.player; @@ -16964,10 +16964,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, logTarget:'player', content:function(){ - var num=player.getHistory('useSkill',function(evt){ - return evt.skill=='rehengjiang'&&evt.targets.includes(trigger.player); - }).length; - if(num>0) player.draw(num); + if(lib.skill.rehengjiang3.filterx(trigger,player)){ + var num=player.getHistory('useSkill',function(evt){ + return evt.skill=='rehengjiang'&&evt.targets.includes(trigger.player); + }).length; + if(num>0) player.draw(num); + } + else player.draw(); }, }, shuangren:{ @@ -24891,20 +24894,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else trigger.player.discard(event.card); } }, - "xinfu_lingren":{ - usable:1, + xinfu_lingren:{ audio:2, trigger:{ player:"useCardToPlayered", }, - direct:true, filter:function(event,player){ if(event.getParent().triggeredTargets3.length>1) return false; - if(!player.isPhaseUsing()) return false; if(!['basic','trick'].includes(get.type(event.card))) return false; if(get.tag(event.card,'damage')) return true; return false; }, + usable:1, + direct:true, content:function(){ 'step 0' player.chooseTarget(get.prompt('xinfu_lingren'),'选择一名目标角色并猜测其手牌构成',function(card,player,target){ @@ -25051,6 +25053,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, }, + fujian:{ + audio:'xinfu_fujian', + trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']}, + filter(event,player){ + return game.hasPlayer(target=>target!=player&&target.countCards('h')&&!target.isMaxHandcard()); + }, + forced:true, + async content(event,trigger,player){ + const target=game.filterPlayer(target=>{ + return target!=player&&target.countCards('h')&&!target.isMaxHandcard(); + }).randomGet(); + player.line(target); + game.log(player,'观看了',target,'的手牌'); + player.viewHandcards(target); + }, + }, xinfu_xionghuo:{ audio:2, enable:'phaseUse', @@ -26167,7 +26185,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, translate:{ "xinfu_lingren":"凌人", - "xinfu_lingren_info":"每回合限一次。当你于出牌阶段内使用带有「伤害」标签的基本牌或普通锦囊牌指定目标后,你可以猜测其中的一个目标的手牌中是否有基本牌,锦囊牌或装备牌。若你猜中的项目数:≥1,此牌对该角色的伤害+1;≥2,你摸两张牌;≥3,你获得技能〖奸雄〗和〖行殇〗直到你的下回合开始。", + "xinfu_lingren_info":"每回合限一次。当你使用带有「伤害」标签的基本牌或普通锦囊牌指定目标后,你可以猜测其中的一个目标的手牌中是否有基本牌,锦囊牌或装备牌。若你猜中的项目数:≥1,此牌对该角色的伤害+1;≥2,你摸两张牌;≥3,你获得技能〖奸雄〗和〖行殇〗直到你的下回合开始。", "lingren_adddamage":"凌人", "lingren_adddamage_info":"", "lingren_jianxiong":"奸雄", @@ -26175,7 +26193,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "lingren_xingshang":"行殇", "lingren_xingshang_info":"当有角色死亡后,你可以选择一项:1.回复1点体力。2.获得该角色的所有牌。", "xinfu_fujian":"伏间", - "xinfu_fujian_info":"锁定技,结束阶段开始时,你观看一名随机的其他角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)", + "xinfu_fujian_info":"锁定技,结束阶段,你观看一名随机的其他角色的随机X张手牌。(X为场上手牌最少的角色的手牌数)", + fujian:'伏间', + fujian_info:'锁定技,准备阶段和结束阶段,你随机观看一名手牌数不为全场最多的其他角色的张手牌。', xinfu_xionghuo:'凶镬', xinfu_xionghuo_info:'游戏开始时,你获得3个“暴戾”标记(标记上限为3)。出牌阶段,你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其一张手牌和一张装备区的牌。', xinfu_shajue:'杀绝', @@ -26487,7 +26507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ rehengjiang:'横江', rehengjiang2:'横江', rehengjiang3:'横江', - rehengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内没有弃牌,则你摸X张牌(X为你本回合内对其发动过〖横江〗的次数)。', + rehengjiang_info:'当你受到1点伤害后,你可以令当前回合角色本回合的手牌上限-1。然后若其弃牌阶段内有/没有弃牌,则你摸一/X张牌(X为你本回合内对其发动过〖横江〗的次数)。', shuangren:'双刃', shuangren_info:'出牌阶段开始时,你可以与一名角色拼点。若你赢,你视为对其或与其势力相同的另一名角色使用一张【杀】(不计入出牌阶段的次数限制);若你没赢,你本回合内不能对其他角色使用牌。', xiashu:'下书', diff --git a/character/sp2.js b/character/sp2.js index 4600aef42..e8200e6c6 100644 --- a/character/sp2.js +++ b/character/sp2.js @@ -38,7 +38,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinping:['male','qun',3,['fuyuan','zhongjie','yongdi']], zhangning:['female','qun',3,['tianze','difa']], tongyuan:['male','qun',4,['chaofeng','chuanshu']], - sp_mifangfushiren:['male','shu',4,['dcmffengshi']], + sp_mifangfushiren:['male','shu',4,['fengshi']], re_nanhualaoxian:['male','qun',4,['gongxiu','jinghe']], dufuren:['female','wei',3,['yise','shunshi']], caoanmin:['male','wei',4,['xianwei']], @@ -10725,6 +10725,83 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, //糜芳傅士仁 + fengshi:{ + audio:'mffengshi', + audioname:['sp_mifangfushiren'], + trigger:{player:'useCardToPlayered'}, + filter(event,player){ + if(!event.isFirstTarget) return false; + return event.targets.some(target=>{ + return player.countCards('h')>target.countCards('h')&&target.countCards('he')>0&&player.hasCard(card=>{ + return lib.filter.cardDiscardable(card,player,'fengshi'); + },'he'); + }); + }, + direct:true, + async content(event,trigger,player){ + const targetx=trigger.targets.filter(target=>{ + return player.countCards('h')>target.countCards('h')&&target.countCards('he')>0&&player.hasCard(card=>{ + return lib.filter.cardDiscardable(card,player,'fengshi'); + },'he'); + }); + if(targetx.length==1){ + const aim=targetx[0],info=get.info('dcmffengshi'); + const {result:{bool}}=await player.chooseBool(get.prompt('fengshi',targets[0]),info.prompt2({card:trigger.card,target:aim},player)).set('choice',info.check({card:trigger.card,target:aim},player)); + } + else{ + const {result:{bool,targets}}=await player.chooseTarget(get.prompt('fengshi'),'弃置你与一名目标角色的各一张牌,然后令'+get.translation(event.card)+'对其造成的伤害+1',(card,player,target)=>{ + const targets=get.event().getTrigger().targets; + if(!targets.includes(target)) return false; + return player.countCards('h')>target.countCards('h')&&target.countCards('he')>0&&player.hasCard(card=>{ + return lib.filter.cardDiscardable(card,player,'fengshi'); + },'he'); + }).set('ai',target=>{ + const player=get.event('player'); + const card=get.event().getTrigger().card; + if(!get.info('dcmffengshi').check({card:card,target:target})) return 0; + return get.effect(target,{name:'guohe_copy2'},player,player); + }); + } + if(bool){ + const target=(targets?targets[0]:aim); + player.logSkill('fengshi',target); + player.chooseToDiscard('he',true); + player.discardPlayerCard(target,'he',true); + if(get.tag(trigger.card,'damage')){ + var id=target.playerid; + var map=trigger.getParent().customArgs; + if(!map[id]) map[id]={}; + if(typeof map[id].extraDamage!='number') map[id].extraDamage=0; + map[id].extraDamage++; + } + } + }, + group:'fengshi_target', + subSkill:{ + target:{ + inherit:'dcmffengshi', + trigger:{target:'useCardToTargeted'}, + filter(event,player){ + if(event.player==event.target) return false; + return event.player.countCards('h')>event.target.countCards('h')&&event.target.countCards('he')>0&&player.hasCard(card=>{ + return lib.filter.cardDiscardable(card,player,'fengshi'); + },'he'); + }, + content(){ + var target=lib.skill.dcmffengshi.logTarget(trigger,player); + player.chooseToDiscard('he',true); + player.discardPlayerCard(target,'he',true); + if(get.tag(trigger.card,'damage')){ + var id=player.playerid; + var map=trigger.getParent().customArgs; + if(!map[id]) map[id]={}; + if(typeof map[id].extraDamage!='number') map[id].extraDamage=0; + map[id].extraDamage++; + } + }, + }, + }, + }, dcmffengshi:{ audio:'mffengshi', audioname:['sp_mifangfushiren'], @@ -11349,6 +11426,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则此牌的使用者可令你弃置自己和对方的各一张牌,并令此牌的伤害值+1。', dcmffengshi:'锋势', dcmffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则你可弃置自己和对方的各一张牌,并令此牌的伤害值+1。', + fengshi:'锋势', + fengshi_info:'当你使用牌指定第一个目标后,你可弃置你与其中一名手牌数小于你的目标角色和对方的各一张牌,并令此牌对其造成的伤害+1;当你称为其他角色使用牌的目标后,你可以弃置你与其的各一张牌,并令此牌对你造成的伤害+1。', tongyuan:'童渊', chaofeng:'朝凤', chaofeng_info:'出牌阶段限一次。当你造成伤害时,你可以弃置一张牌,然后摸一张牌。若此伤害的渠道为牌且你弃置的牌:与此牌颜色相同,则你改为摸两张牌;与此牌类型相同,则此伤害+1。',