From 15c065bf3dfc1f844b5e7e2f02ff83a811c5aa07 Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 16:19:49 +0800 Subject: [PATCH 1/7] =?UTF-8?q?die=5Faudio=E6=B7=BB=E5=8A=A0=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E6=9C=AC=E4=BD=93=E4=BB=BB=E6=84=8F=E6=AD=A6=E5=B0=86?= =?UTF-8?q?=E9=98=B5=E4=BA=A1=E9=85=8D=E9=9F=B3=E7=9A=84=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/game.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/game/game.js b/game/game.js index f2c328d43..359297e3e 100644 --- a/game/game.js +++ b/game/game.js @@ -19926,8 +19926,10 @@ game.playAudio(path); } } - else if(lib.character[player.name]&&lib.character[player.name][4].contains('die_audio')){ - game.playAudio('die',player.name); + else if(lib.character[player.name]&&lib.character[player.name][4].some(tag=>tag.startsWith('die_audio'))){ + var tag=lib.character[player.name][4].find(tag=>tag.startsWith('die_audio')); + var list=tag.split(':').slice(1); + game.playAudio('die',list.length?list[0]:player.name); } else{ game.playAudio('die',player.name,function(){ From 073950db8acbc22f0e9a5cce83997a21474f70f3 Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 16:21:35 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=92=8B=E6=B5=8E=E3=80=81=E9=B2=8D?= =?UTF-8?q?=E4=BF=A1=E4=BD=BF=E7=94=A8=E6=96=B0die=5Faudio=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/mobile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/character/mobile.js b/character/mobile.js index bda8e3750..b8e804c5d 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -27,8 +27,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, character:{ xin_wuban:['male','shu',4,['xinjintao'],['clan:陈留吴氏','character:wuban']], - baoxin:['male','qun',4,['mutao','yimou'],['character:tw_baoxin']], - jiangji:['male','wei',3,['twjichou','jilun'],['character:tw_jiangji']], + baoxin:['male','qun',4,['mutao','yimou'],['character:tw_baoxin','die_audio:tw_baoxin']], + jiangji:['male','wei',3,['twjichou','jilun'],['character:tw_jiangji','die_audio:tw_jiangji']], liwei:['male','shu',4,['jiaohua'],['character:tw_liwei','die:tw_liwei']], laimin:['male','shu',3,['laishou','luanqun']], yj_zhoubuyi:['male','wei',3,['mbhuiyao','mbquesong']], From 184171fbf6ff3222c3c75c05fac5eed3cd5eb2a0 Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 16:25:05 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E9=83=AD=E7=85=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/mobile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/character/mobile.js b/character/mobile.js index b8e804c5d..4526dce5b 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -1027,7 +1027,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ var target=game.findPlayer(current=>current.hasSkill('yichong_'+player.playerid)); if(!target) return false; - if(event.name=='damage') return target.hp>Math.max(1,player.hp); + if(event.name=='damage') return target.hp>3; return event.isFirstTarget&&(event.card.name=='sha'||(get.type(event.card)=='trick'&&get.tag(event.card,'damage'))); }, direct:true, @@ -15279,7 +15279,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yichong:'易宠', yichong_info:'①准备阶段,你可以选择一名其他角色并选择一个花色,然后你获得其所有此花色的牌,移除场上的所有“雀”标记,令其获得“雀”标记直到你的下个回合开始。②拥有“雀”标记的角色获得你最后一次发动〖易宠①〗选择的花色的牌后,你获得这些牌(你至多通过每个“雀”得到一张牌)。', wufei:'诬诽', - wufei_info:'若场上存在拥有“雀”标记的角色A,则:①当你使用【杀】或伤害类锦囊牌指定第一个目标后,你令A成为此牌伤害来源。②当你受到伤害后,若A的体力值大于1且A的体力值大于你,则你可以令A受到1点无来源伤害。', + wufei_info:'若场上存在拥有“雀”标记的角色A,则:①当你使用【杀】或伤害类锦囊牌指定第一个目标后,你令A成为此牌伤害来源。②当你受到伤害后,若A的体力值大于3,则你可以令A受到1点无来源伤害。', yj_zhoubuyi:'☆周不疑', yj_zhoubuyi_prefix:'☆', mbhuiyao:'慧夭', From 9160576b1f66310509cf2a90cd0963a3b56c57f6 Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 16:25:36 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E8=B0=8B=E5=AD=9F=E8=8E=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/sb.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/character/sb.js b/character/sb.js index 2d87cac2c..953c72d53 100644 --- a/character/sb.js +++ b/character/sb.js @@ -457,9 +457,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ backflow:{ audio:'sbzaiqi', trigger:{ - player:'enterGame', + //player:'enterGame', source:'damageSource', - global:'phaseBefore', + //global:'phaseBefore', }, usable:1, filter:function(event,player){ @@ -5113,7 +5113,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sbhuoshou:'祸首', sbhuoshou_info:'锁定技。①【南蛮入侵】对你无效。②当其他角色使用【南蛮入侵】指定第一个目标后,你代替其成为此牌的伤害来源。③出牌阶段开始时,你随机获得弃牌堆中的一张【南蛮入侵】。④出牌阶段,若你于此阶段使用过【南蛮入侵】,你不能使用【南蛮入侵】。', sbzaiqi:'再起', - sbzaiqi_info:'蓄力技(3/7)。①弃牌阶段结束时,你可以消耗任意点蓄力值并选择等量名角色,然后令这些角色选择一项:1.令你摸一张牌;2.弃置一张牌,然后你回复1点体力。②每回合限一次。当你造成伤害后,你获得1点蓄力值。', + sbzaiqi_info:'蓄力技(0/7)。①弃牌阶段结束时,你可以消耗任意点蓄力值并选择等量名角色,然后令这些角色选择一项:1.令你摸一张牌;2.弃置一张牌,然后你回复1点体力。②每回合限一次。当你造成伤害后,你获得1点蓄力值。', sb_zhanghe:'谋张郃', sbqiaobian:'巧变', sbqiaobian_info:'每回合限一次。①你可以失去1点体力并跳过判定阶段,将判定区的所有牌移动给一名其他角色(无法置入其判定区的牌改为弃置之)。②你可以跳过摸牌阶段,于下个准备阶段摸两张牌并回复1点体力。③你可以将手牌数弃置至六张(若手牌数少于六张则跳过之)并跳过出牌阶段和弃牌阶段,然后移动场上的一张牌。', From 18aa8a17513dfbb6aa1eefa5f9793c206a36ec99 Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 20:01:28 +0800 Subject: [PATCH 5/7] =?UTF-8?q?OL=E4=B8=81=E5=B0=9A=E6=B6=B4+=E4=B8=81?= =?UTF-8?q?=E5=B0=9A=E6=B6=B4=E5=90=8C=E5=90=8D=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/sp.js | 104 +++++++++++++++++++++++++++++++++++++++++- character/xianding.js | 1 + 2 files changed, 104 insertions(+), 1 deletion(-) diff --git a/character/sp.js b/character/sp.js index 6b8c0c689..d7e07757f 100755 --- a/character/sp.js +++ b/character/sp.js @@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'], sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'], sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'], - sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','ol_lvboshe','zhangyan'], + sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','ol_lvboshe','zhangyan','ol_dingshangwan'], sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'], sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'], sp_zhongdan:["cuiyan","huangfusong"], @@ -33,6 +33,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ + ol_dingshangwan:['female','wei',['olfudao','olfengyan']], zhangyan:['male','qun',4,['olsuji','ollangdao']], ol_tw_zhangji:['male','wei',3,['skill_zhangji_A','skill_zhangji_B'],['unseen']], ol_feiyi:['male','shu',3,['skill_feiyi_A','skill_feiyi_B'],['unseen']], @@ -706,6 +707,101 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, skill:{ + //丁尚涴 + olfudao:{ + audio:2, + trigger:{ + global:'phaseBefore', + player:'enterGame', + }, + filter:function(event,player){ + return event.name!='phase'||game.phaseNumber==0; + }, + forced:true, + locked:false, + content:function(){ + 'step 0' + var list=[],num=player.countCards('he'); + for(var i=-4;i<=4;i++){ + if(num+i<0||i==0) continue; + list.push(i); + } + player.chooseControl(list).set('prompt','讽言:请选择一个数字').set('prompt2','令此数值作为调整的手牌数值').set('ai',function(){ + var list=[],num=_status.event.player.countCards('he'); + for(var i=-4;i<=4;i++){ + if(num+i<0||i==0) continue; + if(i>0&&i!=4) continue; + list.push(i); + } + return list.randomGet(); + }); + 'step 1' + var num=result.control + player.popup(num); + if(num>0) player.draw(num); + else player.chooseToDiscard('he',true,-num); + 'step 2' + player.storage.olfudao=player.countCards('he'); + player.markSkill('olfudao'); + }, + intro:{ + content:'一名角色的回合结束时,若其手牌数等于#,你可以与其各摸一张牌。', + }, + group:'olfudao_qiaoshi', + subSkill:{ + qiaoshi:{ + audio:'olfudao', + trigger:{global:'phaseEnd'}, + filter:function(event,player){ + if(typeof player.storage.olfudao!='number') return false; + return event.player.countCards('h')==player.storage.olfudao&&event.player.isIn(); + }, + check:function(event,player){ + return get.attitude(player,event.player)>=0; + }, + logTarget:'player', + prompt2:function(event,player){ + return '与'+get.translation(event.player)+'各摸一张牌'; + }, + content:function(){ + game.asyncDraw([trigger.player,player]); + }, + }, + }, + }, + olfengyan:{ + audio:2, + trigger:{player:['damageEnd','useCard','respond']}, + filter:function(event,player){ + if(event.name=='damage') return event.source&&event.source.isIn()&&event.source!=player; + return Array.isArray(event.respondTo)&&event.respondTo[0]!=player; + }, + logTarget:function(event,player){ + if(event.name=='damage') return event.source; + return event.respondTo[0]; + }, + forced:true, + content:function(){ + 'step 0' + var target=lib.skill.olfengyan.logTarget(trigger,player); + if(trigger.name=='damage'){ + event.target=target; + player.draw(); + } + else{ + target.draw(); + target.chooseToDiscard(2,'he',true); + event.finish(); + } + 'step 1' + var num=player.countCards('he'); + if(!num) event.finish(); + else if(num==1) event._result={bool:true,cards:player.getCards('he')}; + else player.chooseCard('he',true,'交给'+get.translation(target)+'一张牌'); + 'step 2' + if(result.bool) target.gain(result.cards,player,'giveAuto'); + }, + }, //张燕 olsuji:{ audio:2, @@ -25953,6 +26049,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ olsuji_info:'一名角色的出牌阶段开始时,若其已受伤,你可以将一张黑色牌当【杀】使用。若其受到此【杀】的伤害,你获得其一张牌。', ollangdao:'狼蹈', ollangdao_info:'当你使用【杀】指定唯一目标时,你可以与该目标角色同时选择一项:1.令此【杀】伤害基数+1;2.令你可以为此【杀】多选择一个目标;3.令此【杀】不可被响应。然后若没有角色因此【杀】死亡,你移除本次被选择的项。', + ol_dingshangwan:'OL丁尚涴', + ol_dingshangwan_prefix:'OL', + olfudao:'抚悼', + olfudao_info:'①游戏开始时,你选择弃置或摸至多四张牌,然后记录你的手牌数。②一名角色的回合结束时,若其手牌数和你发动〖抚悼①〗记录的数值相同,则你可以与其各摸一张牌。', + olfengyan:'讽言', + olfengyan_info:'锁定技。①当你受到其他角色造成的伤害后,你摸一张牌,然后交给其一张牌。②当你响应其他角色使用的牌时,其摸一张牌,然后弃置两张牌。', sp_tianji:'天极·皇室宗亲', diff --git a/character/xianding.js b/character/xianding.js index 4cc01cc12..90d0fcdd1 100644 --- a/character/xianding.js +++ b/character/xianding.js @@ -12363,6 +12363,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ luotong:['dc_luotong','luotong'], dc_wangchang:['dc_wangchang','tw_wangchang'], guozhao:['guozhao','xin_guozhao'], + dingshangwan:['dingshangwan','ol_dingshangwan'], }, translate:{ puyuan:'蒲元', From a44d03b9073448599b848048bc750dd43c1e653f Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 20:03:52 +0800 Subject: [PATCH 6/7] =?UTF-8?q?OL=E4=B8=81=E5=B0=9A=E6=B6=B4=E8=A1=A5?= =?UTF-8?q?=E4=B8=8A=E5=88=9D=E5=A7=8B=E4=BD=93=E5=8A=9B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/sp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/sp.js b/character/sp.js index d7e07757f..887c9cbf2 100755 --- a/character/sp.js +++ b/character/sp.js @@ -33,7 +33,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ - ol_dingshangwan:['female','wei',['olfudao','olfengyan']], + ol_dingshangwan:['female','wei',3,['olfudao','olfengyan']], zhangyan:['male','qun',4,['olsuji','ollangdao']], ol_tw_zhangji:['male','wei',3,['skill_zhangji_A','skill_zhangji_B'],['unseen']], ol_feiyi:['male','shu',3,['skill_feiyi_A','skill_feiyi_B'],['unseen']], From add664debebc547cfb9f22551c95aa24ab767b58 Mon Sep 17 00:00:00 2001 From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com> Date: Wed, 11 Oct 2023 20:36:30 +0800 Subject: [PATCH 7/7] =?UTF-8?q?ol=5Flvboshe=E2=86=92lvboshe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/sp.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/character/sp.js b/character/sp.js index 887c9cbf2..725d58edd 100755 --- a/character/sp.js +++ b/character/sp.js @@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'], sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'], sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'], - sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','ol_lvboshe','zhangyan','ol_dingshangwan'], + sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_feiyi','lvboshe','zhangyan','ol_dingshangwan'], sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'], sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'], sp_zhongdan:["cuiyan","huangfusong"], @@ -28,7 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ol_dongzhao:function(mode){ return mode=='identity'&&['normal','zhong'].contains(_status.mode); }, - ol_lvboshe:function(mode){ + lvboshe:function(mode){ return mode=='doudizhu'; }, }, @@ -37,7 +37,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhangyan:['male','qun',4,['olsuji','ollangdao']], ol_tw_zhangji:['male','wei',3,['skill_zhangji_A','skill_zhangji_B'],['unseen']], ol_feiyi:['male','shu',3,['skill_feiyi_A','skill_feiyi_B'],['unseen']], - ol_lvboshe:['male','qun',4,['skill_lvboshe'],['unseen']], + lvboshe:['male','qun',4,['skill_lvboshe'],['unseen']], ol_luyusheng:['female','wu',3,['olcangxin','olrunwei']], caoxi:['male','wei',3,['olgangshu','oljianxuan']], ol_pengyang:['male','shu',3,['olqifan','oltuishi','nzry_cunmu']], @@ -26041,7 +26041,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ skill_feiyi_A_info:'出牌阶段各限一次,若你的手牌数为:①奇数,你可以摸三张牌,然后弃置至少一半手牌(向下取整);②偶数,你可以弃置至少一半手牌,然后摸三张牌。', skill_feiyi_B:'技能', skill_feiyi_B_info:'每回合每项限一次,当你的手牌数变为1后,你可以展示此唯一手牌A并摸一张牌,然后你选择一项:①本回合使用点数大于A的点数的牌额外结算一次;②本回合使用点数小于A的点数的牌额外结算一次。', - ol_lvboshe:'吕伯奢', + lvboshe:'吕伯奢', skill_lvboshe:'技能', skill_lvboshe_info:'农民的回合结束时:阴,你可以令地主进行一个额外回合;阳,你可以令其进行一个额外回合。', zhangyan:'张燕',