From 9e15fa81b183f8e99d6ecee4b63ec808a00f5d5b Mon Sep 17 00:00:00 2001 From: MDYY1 <2741562754@qq.com> Date: Sat, 30 Sep 2023 18:36:46 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=B8=BAaddJudgeNext=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=89=8C=E7=9A=84=E4=BD=8D=E7=BD=AE=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/game.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/game/game.js b/game/game.js index a5592a31b..63b487f2b 100644 --- a/game/game.js +++ b/game/game.js @@ -25136,8 +25136,12 @@ if(mod!='unchanged') return mod; return true; }, - addJudgeNext:function(card){ + addJudgeNext:function(card,unlimited){ if(!card.expired){ + if(get.postion(card,true)!=='o'&&get.postion(card,true)!=='j'&&!unlimited){ + game.log('将',card,'移入',this.next,'的判定区失败'); + return; + } var target=this.next; var name=card.viewAs||card.name; var bool=false; From ae5bd0ec4b1ea31a9a795d8063d55835a90a5665 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Sat, 30 Sep 2023 22:01:59 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=BE=A4=E5=8A=BF=E5=8A=9B=E8=BE=B9?= =?UTF-8?q?=E6=A1=86,=20=E6=96=B0=E7=9A=84prefix=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/clan.js | 16 ++++++++++++++++ character/extra.js | 7 ++++++- character/tw.js | 5 ++++- character/yingbian.js | 14 +++++++------- game/game.js | 25 ++++++++++++++++++++----- layout/default/layout.css | 32 ++++++++++++++++++++++++++++++++ 6 files changed, 85 insertions(+), 14 deletions(-) diff --git a/character/clan.js b/character/clan.js index f5d1a62d1..77cf6a5d1 100644 --- a/character/clan.js +++ b/character/clan.js @@ -2277,6 +2277,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, translate:{ + clan_wuxian_prefix:'族', + clan_wuban_prefix:'族', + clan_xunshu_prefix:'族', + clan_xunchen_prefix:'族', + clan_xuncai_prefix:'族', + clan_xuncan_prefix:'族', + clan_hanshao_prefix:'族', + clan_hanrong_prefix:'族', + clan_wukuang_prefix:'族', + clan_wangling_prefix:'族', + clan_zhongyan_prefix:'族', + clan_wangyun_prefix:'族', + clan_wanghun_prefix:'族', + clan_zhonghui_prefix:'族', + clan_zhongyu_prefix:'族', + clan_wuxian:'族吴苋', clanyirong:'移荣', clanyirong_info:'出牌阶段限两次。若你的手牌数:小于X,则你可以将手牌摸至X张(至多摸八张),然后X-1;大于X,则你可以将手牌弃置至X张,然后X+1。(X为你的手牌上限)', diff --git a/character/extra.js b/character/extra.js index 0c9ba2432..9df78fa41 100755 --- a/character/extra.js +++ b/character/extra.js @@ -584,7 +584,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ skillAnimation:true, animationColor:'orange', filter:function(event,player){ - return player.getStorage('dctuoyu').length==3; + return true; + //return player.getStorage('dctuoyu').length==3; }, content:function(){ 'step 0' @@ -592,6 +593,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.loseMaxHp(); 'step 1' if(game.countPlayer()>2){ + if(player==trigger.player&&!trigger.skill){ + var evt=trigger.getParent(); + if(evt.name=='phaseLoop'&&evt._isStandardLoop) evt.player=player.next; + } player.chooseTarget(true,'请选择一名要更换座次的角色,将自己移动到该角色的上家位置',function(card,player,target){ return target!=player&&target!=player.next; }).set('ai',function(target){ diff --git a/character/tw.js b/character/tw.js index 513987f74..ebdff9ee3 100644 --- a/character/tw.js +++ b/character/tw.js @@ -320,7 +320,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ '观看'+str+'的手牌并获得其一种花色的所有手牌', ]).set('ai',()=>{ var player=_status.event.player; - var target=_status.event.target; + var target=_status.event.getParent().target; if(target.countCards('h')-player.countCards('h')>target.countCards('h')/4||get.attitude(player,target)>0) return 0; return 1; }); @@ -14488,6 +14488,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ twchuanshu:'传术', twchuanshu_info:'限定技。准备阶段,你可以选择一名角色。直到你的下回合开始,其获得以下效果:1.当其拼点牌亮出时,此牌点数+3;2.其使用的下一张【杀】对除你外的角色造成伤害时,此伤害+1;3.若其不为你,其使用的下一张【杀】结算结束后,你摸等同于其因此【杀】造成的伤害值数的牌。', xia_xushu:'侠徐庶', + xia_xushu_prefix:'侠', twjiange:'剑歌', twjiange_info:'每回合限一次。你可以将一张非基本牌当做【杀】使用或打出(无距离和次数限制,且不计入次数)。若此时不为你的回合,你摸一张牌。', twxiawang:'侠望', @@ -14517,11 +14518,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ twjimeng:'急盟', twjimeng_info:'出牌阶段限一次。你可以获得一名其他角色区域内的一张牌,然后交给其一张牌。若其体力值不小于你,你摸一张牌。', xia_lusu:'侠鲁肃', + xia_lusu_prefix:'侠', twkaizeng:'慨赠', twkaizeng_info:'其他角色的出牌阶段限一次。其可以选择一种基本牌的牌名或非基本牌的类型,然后令你选择是否交给其任意张手牌。若你以此法:交给其至少两张牌,你摸一张牌;交给其的牌中包含其选择的牌名或类型的牌,你获得一张与此牌名或类型不同的牌。', twyangming:'扬名', twyangming_info:'出牌阶段结束时,你可以摸X张牌,且令本回合的手牌上限+X(X为你本阶段使用过的牌的类型数)。', xia_dianwei:'侠典韦', + xia_dianwei_prefix:'侠', twliexi:'烈袭', twliexi_info:'准备阶段,你可以弃置任意张牌并选择一名其他角色。若你以此法弃置的牌数大于其体力值,你对其造成1点伤害;否则其对你造成1点伤害。然后若你弃置的牌中有武器牌,你对其造成1点伤害。', twshezhong:'慑众', diff --git a/character/yingbian.js b/character/yingbian.js index 2d1119bfb..8f69c72b8 100644 --- a/character/yingbian.js +++ b/character/yingbian.js @@ -3590,7 +3590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, translate:{ jin_zhangchunhua:'晋张春华', - jin_zhangchunhua_ab:'张春华', + jin_zhangchunhua_prefix:'晋', huishi:'慧识', huishi_info:'摸牌阶段,你可以放弃摸牌,改为观看牌堆顶的X张牌,获得其中的一半(向下取整),然后将其余牌置入牌堆底。(X为牌堆数量的个位数)', qingleng:'清冷', @@ -3599,7 +3599,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xuanmu2:'宣穆', xuanmu_info:'锁定技,隐匿技。你于其他角色的回合登场时,防止你受到的伤害直到回合结束。', jin_simayi:'晋司马懿', - jin_simayi_ab:'司马懿', + jin_simayi_prefix:'晋', zhanghuyuechen:'张虎乐綝', xijue:'袭爵', xijue_gain:'袭爵', @@ -3621,7 +3621,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ pozhu_info:'出牌阶段,你可以将一张手牌当做【出其不意】使用。若你未因此牌造成过伤害,则你不能再发动〖破竹〗直到回合结束。', pozhu_info_guozhan:'出牌阶段限一次,你可以将一张手牌当做【出其不意】使用。', jin_wangyuanji:'晋王元姬', - jin_wangyuanji_ab:'王元姬', + jin_wangyuanji_prefix:'晋', shiren:'识人', shiren_info:'隐匿技。你于其他角色的回合内登场时,若其有手牌,则你可对其发动〖宴戏〗。', yanxi:'宴戏', @@ -3629,7 +3629,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yanxi_info:'出牌阶段,你可选择一名有手牌的角色。你将该角色的一张随机手牌与牌堆顶的两张牌混合后展示,并选择其中一张。若你以此法选择的是该角色的手牌,则你获得这三张牌。否则你获得选择的牌。你通过〖宴戏〗得到的牌,不计入当前回合的手牌上限。', yanxi_info_guozhan:'出牌阶段,你可选择一名有手牌的角色。你将该角色的一张随机手牌与牌堆中的两张随机牌混合后展示,并选择其中一张。若你以此法选择的是该角色的手牌,则你获得这三张牌。否则你获得选择的牌。你通过〖宴戏〗得到的牌,不计入当前回合的手牌上限。', jin_simazhao:'晋司马昭', - jin_simazhao_ab:'司马昭', + jin_simazhao_prefix:'晋', tuishi:'推弑', tuishi_info:'隐匿技,你于其他角色A的回合内登场时,可于此回合结束时选择其攻击范围内的一名角色B。A选择一项:①对B使用一张【杀】。②你对A造成1点伤害。', choufa:'筹伐', @@ -3644,7 +3644,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ chengwu:'成务', chengwu_info:'主公技,锁定技,其他晋势力角色攻击范围内的角色视为在你的攻击范围内。', jin_xiahouhui:'晋夏侯徽', - jin_xiahouhui_ab:'夏侯徽', + jin_xiahouhui_prefix:'晋', baoqie:'宝箧', baoqie_info:'隐匿技,锁定技。你登场后,从牌堆中获得一张不为赠物的宝物牌。若此牌在你的手牌区内为宝物牌,则你可以使用此牌。', jyishi:'宜室', @@ -3652,7 +3652,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shiduo:'识度', shiduo_info:'出牌阶段限一次,你可以与一名其他角色拼点。若你赢,你获得其所有手牌。然后你交给其X张手牌(X为你手牌数的一半,向下取整)。', jin_simashi:'晋司马师', - jin_simashi_ab:'司马师', + jin_simashi_prefix:'晋', taoyin:'韬隐', taoyin2:'韬隐', taoyin_info:'隐匿技,当你登场后,若当前回合角色存在且不是你,则你可令该角色本回合的手牌上限-2。', @@ -3678,7 +3678,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhuosheng_info:'出牌阶段,①你使用本轮内得到的基本牌时无次数和距离限制。②你使用本轮内获得的普通锦囊牌选择目标后,可令此牌的目标数+1或-1。③你使用本轮内得到的装备牌时可以摸一张牌(以此法得到的牌不能触发〖擢升〗)。', zhuosheng_info_guozhan:'出牌阶段,①你使用本轮内得到的基本牌时无距离限制。②你使用本轮内获得的普通锦囊牌选择目标后,可令此牌的目标数+1或-1。③你使用本轮内得到的装备牌时可以摸一张牌(以此法得到的牌不能触发〖擢升〗)。', jin_yanghuiyu:'晋羊徽瑜', - jin_yanghuiyu_ab:'羊徽瑜', + jin_yanghuiyu_prefix:'晋', gz_jin_yanghuiyu:'羊徽瑜', huirong:'慧容', huirong_info:'隐匿技,锁定技。当你登场后,你令一名角色将手牌数摸至/弃至与体力值相同(至多摸至五张)。', diff --git a/game/game.js b/game/game.js index a5592a31b..0a7b75a78 100644 --- a/game/game.js +++ b/game/game.js @@ -13943,11 +13943,13 @@ lib.onphase[i](); } player.phase(); - event.player=player.next; "step 2" if(!game.players.contains(event.player.next)){ event.player=game.findNext(event.player.next); } + else{ + event.player=event.player.next; + } event.goto(1); }, loadPackage:function(){ @@ -33648,16 +33650,28 @@ nature:'keymm', }], ['神',{ - color:'#d6cde9', - nature:'thundermm', + color:'#faecd1', + nature:'orangemm', + }], + ['族',{ + color:'#ee9ac7', + nature:'firemm', + }], + ['晋',{ + color:'#e1a6f0', + nature:'blackmm', + }], + ['侠',{ + color:'#dddddd', + nature:'qunmm', }], ]), groupnature:{ - shen:'thunder', + shen:'shen', wei:'water', shu:'soil', wu:'wood', - qun:'metal', + qun:'qun', western:'thunder', key:'key', jin:'thunder', @@ -39516,6 +39530,7 @@ phaseLoop:function(player){ var next=game.createEvent('phaseLoop'); next.player=player; + next._isStandardLoop=true; next.setContent('phaseLoop'); }, gameDraw:function(player,num){ diff --git a/layout/default/layout.css b/layout/default/layout.css index bbc324e8f..113e999cd 100644 --- a/layout/default/layout.css +++ b/layout/default/layout.css @@ -3967,6 +3967,38 @@ span[data-nature='keymm'] { rgba(203, 177, 255,1) 0 0 2px,black 0 0 1px; } + +div[data-nature='shen'], +span[data-nature='shen'] { + text-shadow: rgba(243, 171, 27, 1) 0 0 2px,rgba(243, 171, 27, 1) 0 0 5px,rgba(243, 171, 27, 1) 0 0 10px, + rgba(243, 171, 27, 1) 0 0 10px,rgba(243, 171, 27, 1) 0 0 20px,rgba(243, 171, 27, 1) 0 0 20px,black 0 0 1px; +} +div[data-nature='shenm'], +span[data-nature='shenm'] { + text-shadow: rgba(243, 171, 27, 1) 0 0 2px,rgba(243, 171, 27, 1) 0 0 5px,rgba(243, 171, 27, 1) 0 0 5px, + rgba(243, 171, 27, 1) 0 0 5px,black 0 0 1px; +} +div[data-nature='shenmm'], +span[data-nature='shenmm'] { + text-shadow: rgba(243, 171, 27, 1) 0 0 2px,rgba(243, 171, 27, 1) 0 0 2px,rgba(243, 171, 27, 1) 0 0 2px, + rgba(243, 171, 27, 1) 0 0 2px,black 0 0 1px; +} +div[data-nature='qun'], +span[data-nature='qun'] { + text-shadow: rgba(164, 164, 164, 1) 0 0 2px,rgba(164, 164, 164, 1) 0 0 5px,rgba(164, 164, 164, 1) 0 0 10px, + rgba(164, 164, 164, 1) 0 0 10px,rgba(164, 164, 164, 1) 0 0 20px,rgba(164, 164, 164, 1) 0 0 20px,black 0 0 1px; +} +div[data-nature='qunm'], +span[data-nature='qunm'] { + text-shadow: rgba(164, 164, 164, 1) 0 0 2px,rgba(164, 164, 164, 1) 0 0 5px,rgba(164, 164, 164, 1) 0 0 5px, + rgba(164, 164, 164, 1) 0 0 5px,black 0 0 1px; +} +div[data-nature='qunmm'], +span[data-nature='qunmm'] { + text-shadow: rgba(164, 164, 164, 1) 0 0 2px,rgba(164, 164, 164, 1) 0 0 2px,rgba(164, 164, 164, 1) 0 0 2px, + rgba(164, 164, 164, 1) 0 0 2px,black 0 0 1px; +} + .player .identity[data-color="nei"], .player .identity[data-color="ye"], .player .identity[data-color="rYe"], From 1020ece0f1a73af5d974c2e13e3f5bea9924be76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=8E=9F?= <98148643+MDYY1@users.noreply.github.com> Date: Sat, 30 Sep 2023 22:03:53 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E7=BC=A9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/game.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game/game.js b/game/game.js index 63b487f2b..c154f0d2b 100644 --- a/game/game.js +++ b/game/game.js @@ -25138,10 +25138,10 @@ }, addJudgeNext:function(card,unlimited){ if(!card.expired){ - if(get.postion(card,true)!=='o'&&get.postion(card,true)!=='j'&&!unlimited){ - game.log('将',card,'移入',this.next,'的判定区失败'); - return; - } + if(get.postion(card,true)!=='o'&&get.postion(card,true)!=='j'&&!unlimited){ + game.log('将',card,'移入',this.next,'的判定区失败'); + return; + } var target=this.next; var name=card.viewAs||card.name; var bool=false; From 92e88a41ce5c501bed79883cac42ee3c9625263f Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Sat, 30 Sep 2023 22:07:30 +0800 Subject: [PATCH 4/4] minus fix --- character/huicui.js | 1 + character/shiji.js | 1 + game/game.js | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/character/huicui.js b/character/huicui.js index e2186629d..b687c924e 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -8280,6 +8280,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, trigger:{player:'dieAfter'}, + forceDie:true, filter:function(event,player){ for(let i of game.players){ if(i.hasSkill('fengxiang')) return false; diff --git a/character/shiji.js b/character/shiji.js index f0d9d60f9..9764b8ea0 100644 --- a/character/shiji.js +++ b/character/shiji.js @@ -5920,6 +5920,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filter:function(event,player){ return !game.hasPlayer(current=>current.hasSkill('spshanxi_suoming')); }, + forceDie:true, silent:true, charlotte:true, content:function(){ diff --git a/game/game.js b/game/game.js index e3cf97f5a..80e2e0dee 100644 --- a/game/game.js +++ b/game/game.js @@ -25140,7 +25140,7 @@ }, addJudgeNext:function(card,unlimited){ if(!card.expired){ - if(get.postion(card,true)!=='o'&&get.postion(card,true)!=='j'&&!unlimited){ + if(!unlimited&&get.postion(card,true)!=='o'&&get.postion(card,true)!=='j'){ game.log('将',card,'移入',this.next,'的判定区失败'); return; }