From a040b100f92bd6976a4eb7e5a54a1f72b5177be6 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Sun, 1 Oct 2023 00:45:42 +0800 Subject: [PATCH] =?UTF-8?q?SP=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/collab.js | 5 +++++ character/diy.js | 8 ++++++-- character/offline.js | 13 ++++++++++++ character/refresh.js | 8 ++++---- character/sp.js | 16 +++++++++++++++ character/xinghuoliaoyuan.js | 2 ++ game/game.js | 39 ++++++++++++++++++++---------------- 7 files changed, 68 insertions(+), 23 deletions(-) diff --git a/character/collab.js b/character/collab.js index 8ffc00fe2..1defc44ce 100644 --- a/character/collab.js +++ b/character/collab.js @@ -1533,25 +1533,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, translate:{ old_lingju:'SP灵雎', + old_lingju_prefix:'SP', fenxin_old:'焚心', fenxin_old_info:'限定技,当你杀死一名非主公角色时,你可以与其交换未翻开的身份牌。(你的身份为主公时不能发动此技能)', sp_fuwan:'SP伏完', + sp_fuwan_prefix:'SP', spfengyin:'奉印', spfengyin_info:'其他角色的回合开始时,若其体力值不少于你,你可以交给其一张【杀】,令其跳过出牌阶段和弃牌阶段。', spchizhong:'持重', spchizhong_info:'锁定技,你的手牌上限等于体力上限;其他角色死亡时,你加1点体力上限。', sp_fuhuanghou:'SP伏寿', + sp_fuhuanghou_prefix:'SP', spcangni:'藏匿', spcangni_info:'弃牌阶段开始时,你可以回复1点体力或摸两张牌,然后将你的武将牌翻面;其他角色的回合内,当你获得(每回合限一次)/失去一次牌时,若你的武将牌背面朝上,你可以令该角色摸/弃置一张牌。', spmixin:'密信', spmixin_info:'出牌阶段限一次,你可以将一张手牌交给一名其他角色,该角色须对你选择的另一名角色使用一张无距离限制的【杀】,否则你选择的角色观看其手牌并获得其中一张。', sp_jiben:'SP吉本', + sp_jiben_prefix:'SP', spduanzhi:'断指', spduanzhi_info:'当你成为其他角色使用的牌的目标后,你可以弃置其至多两张牌,然后失去1点体力。', spduyi:'毒医', spduyi2:'毒医', spduyi_info:'出牌阶段限一次,你可以亮出牌堆顶的一张牌并交给一名角色,若此牌为黑色,该角色不能使用或打出手牌,直到回到结束。', sp_mushun:'SP穆顺', + sp_mushun_prefix:'SP', libai:'李白', dclbjiuxian:'酒仙', dclbjiuxian_info:'①你可以将额定目标数大于1的锦囊牌当做【酒】使用。②你使用【酒】无次数限制。', diff --git a/character/diy.js b/character/diy.js index 09d621125..c02a9094a 100755 --- a/character/diy.js +++ b/character/diy.js @@ -13988,7 +13988,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" player.chooseCard(get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+ - get.translation(trigger.player.judging[0])+','+get.prompt('guidao'),'he',function(card){ + get.translation(trigger.player.judging[0])+','+get.prompt('nswangfeng'),'he',function(card){ return get.color(card)=='red'; }).set('ai',function(card){ var trigger=_status.event.getTrigger(); @@ -17051,7 +17051,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, diy_jiaoxia:{ - audio:['jiaoxia',2], + //audio:['jiaoxia',2], trigger:{target:'useCardToBegin'}, filter:function(event,player){ return event.card&&get.color(event.card)=='red'; @@ -18049,6 +18049,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ns_nanhua_left:'幻身·左', ns_nanhua_right:'幻身·右', ns_huamulan:'SP花木兰', + ns_huamulan_prefix:'SP', ns_huangzu:'黄祖', ns_yanliang:'颜良', ns_wenchou:'文丑', @@ -18059,6 +18060,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ns_wangyue:'王越', ns_yuji:'于吉', ns_caocaosp:'SP曹操', + ns_caocaosp_prefix:'SP', ns_xinxianying:'辛宪英', ns_sunjian:'孙坚', ns_simazhao:'司马昭', @@ -18079,6 +18081,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ns_luyusheng:'陆郁生', sp_key_yuri:'SP仲村由理', + sp_key_yuri_prefix:'SP', key_lucia:'此花露西娅', key_kyousuke:'枣恭介', key_yuri:'仲村由理', @@ -18119,6 +18122,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_ao:'空门苍', key_yuzuru:'音无结弦', sp_key_kanade:'SP立华奏', + sp_key_kanade_prefix:'SP', key_mio:'西园美鱼', key_midori:'西园美鸟', key_kyoko:'岬镜子', diff --git a/character/offline.js b/character/offline.js index d7c4b2f57..37fd98f9b 100644 --- a/character/offline.js +++ b/character/offline.js @@ -6287,10 +6287,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, translate:{ sp_gongsunzan:'SP公孙瓒', + sp_gongsunzan_prefix:'SP', sp_simazhao:'SP司马昭', + sp_simazhao_prefix:'SP', sp_wangyuanji:'SP王元姬', + sp_wangyuanji_prefix:'SP', sp_xinxianying:'SP辛宪英', + sp_xinxianying_prefix:'SP', sp_liuxie:'SP刘协', + sp_liuxie_prefix:'SP', spyicong_info:'弃牌阶段结束时,你可以将任意张牌置于你的武将牌上,称为「扈」。每有一张「扈」,其他角色与你计算距离时便+1。', spyicong:'义从', sptuji:'突骑', @@ -6314,16 +6319,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ spyinzhi:'隐智', spyinzhi_info:'当你受到1点伤害后,你可以展示牌堆顶的两张牌。若其中有黑桃牌,则你可以进行至多X次「令一名角色获得伤害来源的一张手牌」的步骤。然后获得其余的牌。(X为其中黑桃牌的数量)', yj_caoang:'SP曹昂', + yj_caoang_prefix:'SP', yjxuepin:'血拼', yjxuepin_info:'出牌阶段限一次,你可以选择攻击范围内的一名角色并失去1点体力。你弃置其两张牌。若这两张牌类型相同,你回复1点体力。', ns_chendao:'SP陈到', + ns_chendao_prefix:'SP', nsjianglie:'将烈', nsjianglie_info:'当你使用【杀】指定目标后,你可以令其展示所有手牌,然后弃置其中一种颜色的牌。', ns_jiaxu:'☆贾诩', nsyice:'遗策', nsyice_info:'锁定技,当你使用/打出/弃置的牌进入弃牌堆后,你将这些牌以任意顺序置于你的武将牌上,称为“策”。若这些“策”中有点数相同的牌,则你获得这两张牌中的所有牌,将这两张牌置于牌堆两端。若场上没有处于濒死状态的角色,则你对一名角色造成1点伤害。', ns_lijue:'SP李傕', + ns_lijue_prefix:'SP', ns_zhangji:'SP张济', + ns_zhangji_prefix:'SP', nsfeixiong:'飞熊', nsfeixiong_info:'出牌阶段开始时,你可以和一名其他角色拼点。赢的角色对没赢的角色造成1点伤害。', nscesuan:'策算', @@ -6331,6 +6340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ nslulve:'掳掠', nslulve_info:'出牌阶段限一次,你可以弃置X张牌并选择一名装备区内有牌的其他角色,然后对其造成1点伤害(X为其装备区内的牌数)。', ns_fanchou:'SP樊稠', + ns_fanchou_prefix:'SP', nsyangwu:'扬武', nsyangwu_info:'出牌阶段限一次,你可以弃置一张♥手牌并选择一名手牌数大于你的其他角色。你观看其手牌并获得其中的X张牌(X为其与你手牌数之差的一半且向上取整)。', jsp_liubei:'群刘备', @@ -6341,6 +6351,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ nskuishe:'窥舍', nskuishe_info:'出牌阶段限一次,你可以选择一名其他角色A的一张牌,并将此牌交给不为A的一名角色。然后A可以对你使用一张【杀】。', sp_xiahoushi:"SP夏侯氏", + sp_xiahoushi_prefix:'SP', xinfu_yanyu:"燕语", xinfu_yanyu_info:"一名角色的出牌阶段开始时,你可以弃置一张牌。若如此做,则该出牌阶段内限三次,当一张与你弃置的牌类别相同的其他牌进入弃牌堆后,你可令任意一名角色获得此牌。", xinfu_yanyu2:"燕语", @@ -6359,6 +6370,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ fuji:'助祭', fuji_info:'当一名角色造成雷属性伤害时,你可以令其进行判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得判定牌。', sp_pangtong:'SP庞统', + sp_pangtong_prefix:'SP', manjuan:'漫卷', manjuan_info:'其他角色的牌因弃置而进入弃牌堆后,你可以弃置一张花色与之不同的牌,然后获得此牌。', xinmanjuan:'漫卷', @@ -6412,6 +6424,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhenjue_info:'一名角色的结束阶段开始时,若你没有手牌,则你可以令其选择一项:①弃置一张牌。②令你摸一张牌。', //用间 yj_caocao:'SP曹操', + yj_caocao_prefix:'SP', yjxiandao:'献刀', yjxiandao_info:'每回合限一次。当你赠予其他角色一张牌后,你令其不能使用或打出与本次赠予移动的牌A花色相同的牌直到回合结束。然后若牌A:为锦囊牌,你摸两张牌。为装备牌,你获得其一张不为A的牌。为武器牌,你对其造成1点伤害。', yjsancai:'散财', diff --git a/character/refresh.js b/character/refresh.js index f51357e4e..dd4f59e78 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -15108,8 +15108,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ rexiansi:'陷嗣', rexiansi2:'陷嗣', rexiansi_info:'①准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”。②当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用一张【杀】。③若你的“逆”数大于体力值,则你可以移去一张“逆”并视为使用一张【杀】。', - re_sp_taishici:'界群太史慈', - re_sp_taishici_prefix:'界群', + re_sp_taishici:'界SP太史慈', + re_sp_taishici_prefix:'界SP', rejixu:"击虚", rejixu_info:"出牌阶段限一次。若你有手牌,则你可以选择至多X名角色,令这些角色猜测你的手牌区中是否有【杀】。若你:有【杀】,则你本阶段使用【杀】的次数上限+Y,且当你于本阶段内使用【杀】指定目标后,你可以令这Y名角色也成为此【杀】的目标;没有【杀】,则你弃置这Y名角色的各一张牌。然后你摸Y张牌(X为你的体力值,Y为这些角色中猜错的角色数)。", ol_dianwei:'界典韦', @@ -15198,8 +15198,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_zhangsong_prefix:'界', rexiantu:'献图', rexiantu_info:'其他角色的出牌阶段开始时,你可以摸两张牌,然后将两张牌交给该角色。然后此阶段结束时,若其于此阶段没有造成过伤害,你失去1点体力。', - re_jsp_huangyueying:'界群黄月英', - re_jsp_huangyueying_prefix:'界群', + re_jsp_huangyueying:'界SP黄月英', + re_jsp_huangyueying_prefix:'界SP', rejiqiao:'机巧', rejiqiao_info:'出牌阶段开始时,你可以弃置任意张牌,然后亮出牌堆顶X张牌(X为你以此法弃置的牌数与其中装备牌数之和),你获得其中所有非装备牌。', relinglong:'玲珑', diff --git a/character/sp.js b/character/sp.js index 1269e4ee3..7f7fe66ad 100755 --- a/character/sp.js +++ b/character/sp.js @@ -24488,10 +24488,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ buzhi:'步骘', chenlin:'陈琳', yuanshu:'SP袁术', + yuanshu_prefix:'SP', gongsunzan:'公孙瓒', sp_diaochan:'SP貂蝉', + sp_diaochan_prefix:'SP', yangxiu:'杨修', sp_zhaoyun:'SP赵云', + sp_zhaoyun_prefix:'SP', caohong:'曹洪', liuxie:'刘协', xiahouba:'夏侯霸', @@ -24499,16 +24502,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhugeke:'诸葛恪', guanyinping:'关银屏', ganfuren:'SP甘夫人', + ganfuren_prefix:'SP', sunhao:'孙皓', chengyu:'程昱', simalang:'司马朗', tianfeng:'田丰', sp_jiaxu:'SP贾诩', + sp_jiaxu_prefix:'SP', maliang:'马良', sp_caoren:'SP曹仁', + sp_caoren_prefix:'SP', yuejin:'乐进', mifuren:'糜夫人', sp_dongzhuo:'SP董卓', + sp_dongzhuo_prefix:'SP', chendong:'陈武董袭', jiangfei:'蒋琬费祎', jiangqing:'蒋钦', @@ -24519,10 +24526,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ kongrong:'孔融', fuwan:'伏完', sp_pangde:'SP庞德', + sp_pangde_prefix:'SP', sp_sunshangxiang:'SP孙尚香', + sp_sunshangxiang_prefix:'SP', zhugedan:'诸葛诞', sp_machao:'SP马超', + sp_machao_prefix:'SP', sp_jiangwei:'SP姜维', + sp_jiangwei_prefix:'SP', zhangbao:'OL张宝', yangxiou:'杨修', shixie:'士燮', @@ -24531,12 +24542,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ wutugu:'兀突骨', mateng:'马腾', sp_caiwenji:'SP蔡琰', + sp_caiwenji_prefix:'SP', zhugeguo:'诸葛果', lingcao:'凌操', sunru:'手杀孙茹', lingju:'灵雎', lifeng:'李丰', jsp_guanyu:'SP关羽', + jsp_guanyu_prefix:'SP', zhuling:'朱灵', sunluyu:'OL孙鲁育', hanba:'旱魃', @@ -24547,6 +24560,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ cuiyan:'崔琰', wenpin:'文聘', jsp_huangyueying:'SP黄月英', + jsp_huangyueying_prefix:'SP', guansuo:'关索', tadun:'蹋顿', yanbaihu:'严虎', @@ -25268,6 +25282,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ olzaowang2:'造王', olzaowang_info:'限定技。出牌阶段,你可以令一名角色加1点体力上限,回复1点体力并摸三张牌,且获得如下效果:主公死亡时,若其身份为忠臣,则其和主公交换身份牌;其死亡时,若其身份为反贼且伤害来源的身份为主公或忠臣,则以主忠胜利结束本局游戏。', sp_ol_zhanghe:'SP张郃', + sp_ol_zhanghe_prefix:'SP', spolzhouxuan:'周旋', spolzhouxuan_info:'①弃牌阶段开始时,你可将任意张置于武将牌上,称为“旋”(你至多拥有五张“旋”)。②当你使用牌时,你随机将一张“旋”置入弃牌堆,然后摸一张牌(若你的手牌数不为全场唯一最多则额外摸X张牌,X为“旋”数)。③出牌阶段结束时,你将所有“旋”置入弃牌堆。', wuyan:'吾彦', @@ -25296,6 +25311,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ qhzhangji:'长姬', qhzhangji_info:'一名角色的回合结束时,若你本回合内:造成过伤害,则你可以令其摸两张牌;受到过伤害,则你可以令其弃置两张牌。', sp_menghuo:'SP孟获', + sp_menghuo_prefix:'SP', spmanwang:'蛮王', spmanwang_info:'出牌阶段,你可以弃置任意张牌。然后你依次执行以下选项中的前X项:⒈获得〖叛侵〗。⒉摸一张牌。⒊回复1点体力。⒋摸两张牌并失去〖叛侵〗。', sppanqin:'叛侵', diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index 514055af9..ecc3c355d 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -1574,8 +1574,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ translate:{ xinghuoliaoyuan:'星火燎原', "sp_taishici":"SP太史慈", + sp_taishici_prefix:'SP', wangcan:"王粲", "re_jsp_pangtong":"SP庞统", + re_jsp_pangtong_prefix:'SP', lvdai:"吕岱", "re_zhangliang":"张梁", lvqian:"吕虔", diff --git a/game/game.js b/game/game.js index 80e2e0dee..dcb2a5c3c 100644 --- a/game/game.js +++ b/game/game.js @@ -33641,6 +33641,10 @@ ]), natureSeparator:'|', namePrefix:new Map([ + ['界',{ + color:'#fdd559', + nature:'soilmm', + }], ['谋',{ color:'#def7ca', nature:'woodmm', @@ -33669,6 +33673,16 @@ color:'#dddddd', nature:'qunmm', }], + ['SP',{ + getSpan:(prefix,name)=>{ + return `SP`; + }, + }], + ['界SP',{ + getSpan:(prefix,name)=>{ + return get.prefixSpan('界')+get.prefixSpan('SP') + }, + }], ]), groupnature:{ shen:'shen', @@ -57332,10 +57346,7 @@ if(lib.translate[str+'_prefix']){ return str2.slice(lib.translate[str+'_prefix'].length); } - if(str2.indexOf('SP')==0){ - str2=str2.slice(2); - } - else if(str2.indexOf('TW')==0){ + if(str2.indexOf('TW')==0){ str2=str2.slice(2); } else if(str2.indexOf('OL')==0){ @@ -57368,10 +57379,7 @@ if(lib.translate[str+'_ab']) return lib.translate[str+'_ab']; var str2=lib.translate[str]; if(!str2) return ''; - if(str2.indexOf('SP')==0){ - str2=str2.slice(2); - } - else if(str2.indexOf('TW')==0){ + if(str2.indexOf('TW')==0){ str2=str2.slice(2); } else if(str2.indexOf('OL')==0){ @@ -57396,12 +57404,9 @@ if(lib.translate[str+'_ab']) str2=lib.translate[str+'_ab']; if(!str2) return ''; if(lib.translate[str+'_prefix']){ - return `${get.prefixSpan(lib.translate[str+'_prefix'])}${str2.slice(lib.translate[str+'_prefix'].length)}`; + return `${get.prefixSpan(lib.translate[str+'_prefix'],str)}${str2.slice(lib.translate[str+'_prefix'].length)}`; } - if(str2.indexOf('SP')==0){ - str2=str2.slice(2); - } - else if(str2.indexOf('TW')==0){ + if(str2.indexOf('TW')==0){ str2=str2.slice(2); } else if(str2.indexOf('OL')==0){ @@ -57421,16 +57426,16 @@ } return get.verticalStr(str2,true); }, - prefixSpan:function(prefix){ - let color='#fdd559',nature='soilmm'; + prefixSpan:function(prefix,name){ + let color='#ffffff',nature=false; const map=lib.namePrefix.get(prefix); if(map){ - if(map.getSpan) return map.getSpan(prefix); + if(map.getSpan) return map.getSpan(prefix,name); if(map.color) color=map.color; if(map.nature) nature=map.nature; if(map.showName) prefix=map.showName; } - return `${prefix}` + return `${prefix}` }, slimName:function(str){ return get.verticalStr(get.slimNameHorizontal(str),true);