From e0c9c137c3dc6cc819471c6f60f53152e461d996 Mon Sep 17 00:00:00 2001
From: mengxinzxz <139629761+mengxinzxz@users.noreply.github.com>
Date: Wed, 30 Aug 2023 01:13:51 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=9D=80=E9=83=AD=E7=85=A7=EF=BC=8C?=
=?UTF-8?q?=E6=89=8B=E6=9D=80=E5=BC=A0=E5=B6=B7=EF=BC=8C=E6=89=8B=E6=9D=80?=
=?UTF-8?q?=E5=AD=99=E4=BA=AE+=E6=89=8B=E6=9D=80=E5=BC=82=E6=9E=84?=
=?UTF-8?q?=E7=A5=9E=E8=AF=9D=E5=8C=85=E5=88=86=E8=A7=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加手杀测试服武将手杀郭照,手杀张嶷(unseen)
添加手杀异构武将手杀孙亮
手杀异构神话包分解为风火林山阴雷六个小包
---
character/mobile.js | 402 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 394 insertions(+), 8 deletions(-)
diff --git a/character/mobile.js b/character/mobile.js
index e0f607029..0f7829248 100644
--- a/character/mobile.js
+++ b/character/mobile.js
@@ -6,22 +6,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
mobile:{
- mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie","peixiu","sp_jianggan","ruanhui","xin_mamidi","sp_caosong","yangfu","wangjun","sp_pengyang","qianzhao","old_wanglang",'shichangshi'],
+ mobile_default:['xin_guozhao',"miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie","peixiu","sp_jianggan","ruanhui","xin_mamidi","sp_caosong","yangfu","wangjun","sp_pengyang","qianzhao","old_wanglang",'shichangshi'],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning",'yj_huangzhong','yj_weiyan'],
- mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
- mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong","re_caiwenji","re_xunyu","re_dianwei","xin_zhoutai","re_yanwen",'re_zhangzhang','re_xiaoqiao'],
+ mobile_shenhua_feng:['re_xiaoqiao',"xin_zhoutai"],
+ mobile_shenhua_huo:["re_pangtong","re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","xin_yuanshao"],
+ mobile_shenhua_lin:["re_dongzhuo","re_sunjian","re_zhurong"],
+ mobile_shenhua_shan:["re_liushan","re_dengai","re_jiangwei","re_caiwenji",'re_zhangzhang',"re_sunben"],
+ mobile_shenhua_yin:['xin_sunliang'],
+ mobile_shenhua_lei:["re_guanqiujian"],
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin","re_wuguotai","re_gaoshun",'re_caozhi'],
mobile_yijiang2:["xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui","re_bulianshi"],
mobile_yijiang3:["re_liru","xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
mobile_yijiang4:["xin_zhoucang","xin_caifuren","xin_guyong","xin_sunluban","xin_caozhen","xin_jushou","xin_wuyi","xin_zhuhuan","re_chenqun"],
- mobile_yijiang5:['xin_sunxiu','xin_quancong','xin_zhuzhi','xin_caoxiu'],
+ mobile_yijiang5:['xin_zhangyi','xin_sunxiu','xin_quancong','xin_zhuzhi','xin_caoxiu'],
mobile_yijiang67:["re_jikang"],
mobile_changshi:['scs_zhangrang','scs_zhaozhong','scs_sunzhang','scs_bilan','scs_xiayun','scs_hankui','scs_lisong','scs_duangui','scs_guosheng','scs_gaowang'],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan","xin_hansui"],
},
},
character:{
+ xin_guozhao:['female','wei',3,['yichong','wufei'],['unseen']],
+ xin_zhangyi:['male','shu',4,['xinwurong','shizhi'],['unseen']],
+ xin_sunliang:['male','wu',3,['xinzhizheng','xinkuizhu','xinlijun'],['zhu']],
re_xiaoqiao:['female','wu',3,['retianxiang','xinhongyan']],
shichangshi:['male','qun',1,['mbdanggu','mbmowang']],
re_zhangzhang:['male','wu',3,['rezhijian','guzheng']],
@@ -387,6 +394,368 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
+ //郭照
+ yichong:{
+ init:function(player){
+ if(!lib.skill['yichong_'+player.playerid]){
+ lib.skill['yichong_'+player.playerid]={
+ init:function(player){
+ player.storage['yichong_'+player.playerid]=0;
+ },
+ onremove:true,
+ mark:true,
+ marktext:'雀',
+ intro:{
+ content:function(storage){
+ return '已被掠夺'+(storage||0)+'张牌';
+ },
+ },
+ };
+ lib.translate['yichong_'+player.playerid]='易宠';
+ lib.translate['yichong_'+player.playerid+'_bg']='雀';
+ }
+ },
+ audio:2,
+ trigger:{player:'phaseZhunbeiBegin'},
+ direct:true,
+ content:function(){
+ 'step 0'
+ player.chooseTarget(get.prompt('meihun'),'选择一名其他角色并选择一个花色,获得其此花色的所有牌并令其获得“雀”标记',lib.filter.notMe).set('ai',function(target){
+ var player=_status.event.player;
+ var att=get.attitude(player,target);
+ if(att>0) return 0;
+ var getNum=function(player){
+ var list=[];
+ for(var i of lib.suit) list.push((player.countCards('he',{suit:i})+3));
+ return list.sort((a,b)=>b-a)[0];
+ };
+ return getNum(target)+target.countCards('h')/10;
+ });
+ 'step 1'
+ if(result.bool){
+ var target=result.targets[0];
+ player.logSkill('yichong',target);
+ event.target=target;
+ player.chooseControl(lib.suit.slice(0).reverse()).set('prompt','请声明一个花色').set('ai',function(){
+ var target=_status.event.target,cards=target.getCards('he');
+ var suits=lib.suit.slice(0);
+ suits.sort(function(a,b){
+ var num=function(suit){
+ return cards.filter(function(card){
+ return get.suit(card)==suit;
+ }).length;
+ };
+ return num(b)-num(a);
+ });
+ return suits[0];
+ }).set('target',target);
+ }
+ else event.finish();
+ 'step 2'
+ var suit=result.control;
+ player.chat(get.translation(suit+2));
+ game.log(player,'选择了','#y'+get.translation(suit+2));
+ player.storage.yichong=suit;
+ player.markSkill('yichong');
+ game.broadcastAll(function(player,suit){
+ if(player.marks.yichong) player.marks.yichong.firstChild.innerHTML=get.translation(suit);
+ },player,suit)
+ if(target.countCards('he',{suit:suit})) player.gain(target.getCards('he',{suit:suit}),target,'giveAuto');
+ game.countPlayer(function(current){
+ current.removeSkill('yichong_'+player.playerid);
+ if(current==target) target.addSkill('yichong_'+player.playerid);
+ });
+ },
+ onremove:true,
+ intro:{content:'拥有“雀”标记的角色获得$牌后,你获得之'},
+ group:'yichong_gain',
+ subSkill:{
+ gain:{
+ audio:'yichong',
+ trigger:{global:['gainAfter','loseAsyncAfter']},
+ filter:function(event,player){
+ if(!player.storage.yichong) return false;
+ return game.hasPlayer(function(current){
+ if(!event.getg(current).length||!current.hasSkill('yichong_'+player.playerid)) return false;
+ if(current.countMark('yichong_'+player.playerid)>=5) return false;
+ return event.getg(current).some(card=>get.suit(card,current)==player.storage.yichong&&lib.filter.canBeGained(card,current,player));
+ });
+ },
+ forced:true,
+ content:function(){
+ 'step 0'
+ var target=game.findPlayer(function(current){
+ if(!trigger.getg(current).length||!current.hasSkill('yichong_'+player.playerid)) return false;
+ if(current.countMark('yichong_'+player.playerid)>=5) return false;
+ return trigger.getg(current).some(card=>get.suit(card,current)==player.storage.yichong&&lib.filter.canBeGained(card,current,player));
+ });
+ event.target=target;
+ var cards=trigger.getg(target).filter(card=>get.suit(card,target)==player.storage.yichong&&lib.filter.canBeGained(card,target,player));
+ if(cards.length<=5-target.countMark('yichong_'+player.playerid)) event._result={bool:true,links:cards};
+ else{
+ var num=(5-target.countMark('yichong_'+player.playerid));
+ player.chooseButton(['易宠:获得其中的'+get.cnNumber(num)+'张牌',cards],num,true).set('ai',function(button){
+ return get.value(button.link);
+ });
+ }
+ 'step 1'
+ if(result.bool){
+ player.gain(result.links,target,'give');
+ target.addMark('yichong_'+player.playerid,result.links.length,false);
+ }
+ },
+ },
+ },
+ },
+ wufei:{
+ audio:2,
+ trigger:{player:['useCardToPlayered','damageEnd']},
+ 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);
+ return event.isFirstTarget&&(event.card.name=='sha'||(get.type(event.card)=='trick'&&get.tag(event.card,'damage')));
+ },
+ direct:true,
+ content:function(){
+ 'step 0'
+ var target=game.findPlayer(current=>current.hasSkill('yichong_'+player.playerid));
+ event.target=target;
+ if(trigger.name=='damage'){
+ player.chooseBool(get.prompt('wufei',target),'对'+get.translation(target)+'造成1点伤害').set('choice',get.damageEffect(target,player,player)>0);
+ }
+ else{
+ player.logSkill('wufei',target);
+ player.addTempSkill('wufei_effect');
+ player.markAuto('wufei_effect',[trigger.card]);
+ game.log(target,'成为了',trigger.card,'的伤害来源');
+ event.finish();
+ }
+ 'step 1'
+ if(result.bool){
+ player.logSkill('wufei',target);
+ target.damage();
+ }
+ },
+ subSkill:{
+ effect:{
+ charlotte:true,
+ trigger:{source:'damageBefore'},
+ filter:function(event,player){
+ if(!event.card) return false;
+ return player.getStorage('wufei_effect').contains(event.card);
+ },
+ forced:true,
+ popup:false,
+ firstDo:true,
+ content:function(){
+ var target=game.findPlayer(current=>current.hasSkill('yichong_'+player.playerid));
+ if(!target) delete trigger.source;
+ else trigger.source=target;
+ },
+ },
+ },
+ },
+ //张嶷
+ xinwurong:{
+ audio:2,
+ enable:'phaseUse',
+ usable:1,
+ filterTarget:lib.filter.notMe,
+ content:function(){
+ 'step 0'
+ player.chooseToDuiben(target).set('title','谋弈').set('namelist',[
+ '反抗','归顺','镇压','安抚'
+ ]).set('ai',button=>1+Math.random());
+ 'step 1'
+ if(result.bool){
+ if(result.player=='db_def1'){
+ target.damage();
+ player.draw();
+ event.finish();
+ }
+ else{
+ var cards=target.getCards('he');
+ if(cards.length<2){
+ target.skip('phaseDraw');
+ target.addTempSkill('xinwurong_skip',{player:'phaseDrawSkipped'});
+ event.finish();
+ }
+ else if(cards.length==2) event._result={bool:true,cards:cards};
+ else target.chooseCard('怃戎:交给'+get.translation(player)+'两张牌',2,true,'he');
+ }
+ }
+ else{
+ if(result.player=='db_def1'){
+ player.gainPlayerCard(target,'he',true);
+ event.goto(3);
+ }
+ else{
+ player.damage();
+ player.draw();
+ event.finish();
+ }
+ }
+ 'step 2'
+ if(result.bool) player.gain(result.cards,target,'giveAuto');
+ event.finish();
+ 'step 3'
+ var cards=player.getCards('he');
+ if(!cards.length) event.finish();
+ else if(cards.length<=2) event._result={bool:true,cards:cards};
+ else player.chooseCard('怃戎:交给'+get.translation(target)+'两张牌',2,true,'he');
+ 'step 4'
+ if(result.bool) target.gain(result.cards,player,'giveAuto');
+ },
+ ai:{
+ order:7,
+ result:{
+ player:1,
+ target:-1,
+ },
+ },
+ subSkill:{
+ skip:{
+ charlotte:true,
+ mark:true,
+ intro:{content:'跳过下个摸牌阶段'},
+ },
+ },
+ },
+ //孙亮
+ xinkuizhu:{
+ audio:'nzry_kuizhu',
+ trigger:{player:'phaseDiscardAfter'},
+ filter:function(event,player){
+ return player.getHistory('lose',function(evt){
+ return evt.type=='discard'&&evt.getParent('phaseDiscard')==event;
+ }).length;
+ },
+ direct:true,
+ content:function(){
+ 'step 0'
+ var cards=[];
+ player.getHistory('lose',function(evt){
+ if(evt.type=='discard'&&evt.getParent('phaseDiscard')==trigger) cards.addArray(evt.cards2);
+ });
+ event.num=cards.length;
+ event.str1='令至多'+event.num+'名角色摸一张牌';
+ event.str2='对任意名体力值之和为'+event.num+'的角色造成1点伤害';
+ player.chooseControl('cancel2').set('ai',function(){
+ if(game.countPlayer(function(current){return get.attitude(player,current)<0&¤t.hp==event.num})>0&&event.num<=3) return 1;
+ return 0;
+ }).set('choiceList',[event.str1,event.str2]).set('prompt','是否发动【溃诛】?');
+ 'step 1'
+ if(result.control=='cancel2') event.finish();
+ event.control=[event.str1,event.str2][result.index];
+ 'step 2'
+ var str='请选择〖溃诛〗的目标';
+ if(event.bool==false) str='
所选目标体力之和不足'+event.num+',请重选';
+ if(event.control==event.str2){
+ player.chooseTarget(str,function(card,player,target){
+ var targets=ui.selected.targets;
+ var num=0;
+ for(var i=0;i=2) player.loseHp();
+ }
+ }
+ }
+ },
+ },
+ xinzhizheng:{
+ audio:'nzry_zhizheng',
+ mod:{
+ playerEnabled:function(card,player,target){
+ var info=get.info(card);
+ if(target!=player&&(!info||!info.singleCard||!ui.selected.targets.length)&&player.isPhaseUsing()&&!target.inRange(player)) return false;
+ },
+ },
+ trigger:{player:'phaseUseEnd'},
+ filter:function(event,player){
+ return player.getHistory('useCard',function(evt){
+ return evt.getParent('phaseUse')==event;
+ }).length0);
+ 'step 1'
+ if(result.bool){
+ player.logSkill('xinlijun',trigger.player);
+ player.gain(trigger.cards.filterInD(),'gain2');
+ player.chooseBool().set('prompt','是否令'+get.translation(trigger.player)+'摸一张牌?').set('choice',get.attitude(player,trigger.player)>0);
+ }
+ else event.finish();
+ 'step 2'
+ if(result.bool) trigger.player.draw();
+ },
+ },
//十常侍
mbdanggu:{
audio:2,
@@ -13374,8 +13743,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//伊吹 风子
qiaosi_c6:' ',
//仲村 由理
- mobile_sunben:'那个男人',
- //孙笨
yangbiao:'手杀杨彪',
zhaohan:'昭汉',
@@ -13820,10 +14187,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
scsmiaoyu:'妙语',
scsmiaoyu_info:'你可以将至多两张相同花色的牌按照以下规则使用或打出:♦牌当作火【杀】,♥牌当作【桃】,♣牌当作【闪】,♠牌当作【无懈可击】。若你以此法使用了两张红色牌,则此牌回复值或伤害值+1。若你以此法使用了两张黑色牌,则你弃置当前回合角色一张牌。',
re_xiaoqiao:'手杀小乔',
-
+ xin_sunliang:'手杀孙亮',
+ xinkuizhu:'溃诛',
+ xinkuizhu_info:'弃牌阶段结束后,你可以选择一项:1.令至多X名角色各摸一张牌。2.对任意名体力值之和为X的角色造成1点伤害,若你以此法选择的角色数不小于2,你失去1点体力。(X为你此阶段弃置的牌数)',
+ xinzhizheng:'掣政',
+ xinzhizheng_info:'锁定技,你的出牌阶段内,攻击范围内不包含你的其他角色不能成为你使用牌的目标。出牌阶段结束时,若你本阶段内使用的牌数小于这些角色的数量,则你弃置其中一名角色的一张牌。',
+ xinlijun:'立军',
+ xinlijun_info:'主公技,其他吴势力角色于其回合内使用【杀】结算完毕后,其可以将此【杀】对应的实体牌交给你,然后你可以令其摸一张牌。',
+ xin_zhangyi:'手杀张嶷',
+ xinwurong:'怃戎',
+ xinwurong_info:'出牌阶段限一次,你可以与一名其他角色进行谋弈:
若你选择“镇压”且其选择“反抗”,你对其造成1点伤害,然后你摸一张牌。
若你选择“安抚”且其选择“归顺”,其须交给你两张牌(若其手牌数不足两张,则改为令其跳过其下个摸牌阶段)。
若你选择“镇压”且其选择“归顺”,你获得其一张牌,然后你交给其两张牌。
若你选择“安抚”且其选择“反抗”,你受到1点伤害,然后你摸一张牌。',
+ xin_guozhao:'手杀郭照',
+ yichong:'易宠',
+ yichong_info:'①准备阶段,你可以选择一名其他角色并选择一个花色,然后你获得其所有此花色的牌,移除场上的所有“雀”标记并令其获得“雀”标记。②拥有“雀”标记的角色获得你最后一次发动〖易宠①〗选择的花色的牌后,你获得这些牌,你至多通过每个“雀”获得五张牌。',
+ wufei:'诬诽',
+ wufei_info:'若场上有拥有“雀”的角色A,则:①当你使用【杀】或伤害类锦囊牌指定第一个目标后,你令A成为此牌伤害来源。②当你受到伤害后,若A的体力值大于1且A的体力值大于你,则你可以对A造成1点伤害。',
mobile_standard:'手杀异构·标准包',
- mobile_shenhua:'手杀异构·神话再临',
+ mobile_shenhua_feng:'手杀异构·其疾如风',
+ mobile_shenhua_huo:'手杀异构·侵掠如火',
+ mobile_shenhua_lin:'手杀异构·其徐如林',
+ mobile_shenhua_shan:'手杀异构·不动如山',
+ mobile_shenhua_yin:'手杀异构·难知如阴',
+ mobile_shenhua_lei:'手杀异构·动如雷霆',
mobile_yijiang1:'手杀异构·将1',
mobile_yijiang2:'手杀异构·将2',
mobile_yijiang3:'手杀异构·将3',