From 74503ed0b1c45a42816765bff6e88f536b1525d5 Mon Sep 17 00:00:00 2001 From: Spmario233 Date: Thu, 14 Nov 2019 13:47:38 +0800 Subject: [PATCH] Add files via upload --- card/extra.js | 40 +++- card/guozhan.js | 31 ++- card/sp.js | 13 +- card/standard.js | 72 +++++- character/extra.js | 6 +- character/old.js | 8 +- character/refresh.js | 38 ++-- character/shenhua.js | 12 +- character/sp.js | 84 +++---- character/standard.js | 2 +- character/tw.js | 4 +- character/xinghuoliaoyuan.js | 53 +++-- character/yijiang.js | 111 +++++++-- game/asset.js | 4 +- game/game.js | 351 +++++++++++++++-------------- game/update.js | 31 ++- image/character/old_caochong.jpg | Bin 0 -> 23077 bytes image/character/old_fuhuanghou.jpg | Bin 0 -> 33821 bytes mode/boss.js | 9 +- mode/guozhan.js | 43 ++-- mode/single.js | 129 ++++++++--- 21 files changed, 685 insertions(+), 356 deletions(-) create mode 100644 image/character/old_caochong.jpg create mode 100644 image/character/old_fuhuanghou.jpg diff --git a/card/extra.js b/card/extra.js index 6bffa912e..583e44978 100644 --- a/card/extra.js +++ b/card/extra.js @@ -315,7 +315,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){ }, effect:function(){ if(result.bool==false){ - player.skip('phaseDraw'); + if(get.is.changban()) player.addTempSkill('bingliang_changban'); + else player.skip('phaseDraw'); } }, ai:{ @@ -399,6 +400,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ player.recover(); }, filterLose:function(card,player){ + if(player.hasSkillTag('unequip2')) return false; return player.hp0 }, @@ -1711,11 +1766,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } }, bagua_skill:{ + equipSkill:true, trigger:{player:'chooseToRespondBegin'}, filter:function(event,player){ if(event.responded) return false; if(!event.filterCard({name:'shan'})) return false; if(!lib.filter.cardRespondable({name:'shan'},player,event)) return false; + if(player.hasSkillTag('unequip2')) return false; var evt=event.getParent(); if(evt.player&&evt.player.hasSkillTag('unequip',false,{ name:evt.card?evt.card.name:null, @@ -1742,6 +1799,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ target:function(card,player,target,effect){ + if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return; if(player.hasSkillTag('unequip',false,{ name:card?card.name:null, target:player, diff --git a/character/extra.js b/character/extra.js index a7cce7c56..602c2c24e 100755 --- a/character/extra.js +++ b/character/extra.js @@ -1249,7 +1249,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:'dawu3' }, dawu2:{ - trigger:{player:'damageBefore'}, + trigger:{player:'damageBegin4'}, filter:function(event){ if(event.nature!='thunder') return true; return false; @@ -1326,14 +1326,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, kuangfeng2:{ - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin3'}, filter:function(event){ if(event.nature=='fire') return true; return false; }, mark:true, intro:{ - content:'已获得大雾标记' + content:'已获得狂风标记' }, forced:true, content:function(){ diff --git a/character/old.js b/character/old.js index 5993b9aa4..a44297894 100755 --- a/character/old.js +++ b/character/old.js @@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ old_refresh:["old_zhangfei","old_huatuo"], old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"], old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"], - old_yijiang3:["liru","old_zhuran","ol_zhuran","ol_manchong","ol_guohuai"], + old_yijiang3:["liru","old_zhuran","ol_zhuran","ol_manchong","ol_guohuai","old_fuhuanghou","old_caochong"], old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"], old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"], old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"], @@ -16,6 +16,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, character:{ + old_fuhuanghou:['female','qun',3,['oldzhuikong','oldqiuyuan']], + old_caochong:['male','wei',3,['oldrenxin','oldchengxiang']], xuhuang:['male','wei',4,['gzduanliang']], pangde:['male','qun',4,['mashu','mengjin']], xiahouyuan:['male','wei',4,['shensu']], @@ -747,7 +749,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, oldqianxi:{ - trigger:{source:'damageBefore'}, + trigger:{source:'damageBegin2'}, check:function(event,player){ var att=get.attitude(player,event.player); if(event.player.hp==event.player.maxHp) return att<0; @@ -875,6 +877,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ol_guohuai:'OL郭淮', ol_wuyi:'OL吴懿', ol_liuyu:'OL刘虞', + old_fuhuanghou:'旧伏皇后', + old_caochong:'旧曹冲', old_fuhun:'父魂', old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。', diff --git a/character/refresh.js b/character/refresh.js index aa66900de..70798235b 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -466,13 +466,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:"phaseDrawBegin", }, direct:true, - priority:-10, + //priority:-10, filter:function (event){ return event.num>0; }, content:function (){ "step 0" - player.chooseTarget(get.prompt('new_retuxi'),'获得至多'+get.translation(trigger.num)+'名角色的各一张手牌,然后少摸等量的牌',[1,trigger.num],function(card,player,target){ + var num=get.copy(trigger.num); + if(get.mode()=='guozhan'&&num>2) num=2; + player.chooseTarget(get.prompt('new_retuxi'),'获得至多'+get.translation(num)+'名角色的各一张手牌,然后少摸等量的牌',[1,num],function(card,player,target){ return target.countCards('h')>0&&player!=target; },function(target){ var att=get.attitude(_status.event.player,target); @@ -792,7 +794,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "new_yijue2":{ trigger:{ - player:"damageBegin", + player:"damageBegin1", }, filter:function (event){ return event.source&&event.source.hasSkill('new_yijue')&&event.card&&event.card.name=='sha'&&get.suit(event.card)=='heart'&&event.notLink(); @@ -1030,15 +1032,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "new_reyaowu":{ trigger:{ - player:"damage", + player:"damageBegin3", }, priority:1, audio:"yaowu", filter:function (event){ - if(event.card&&(event.card.name=='sha')){ - if(['red','black'].contains(get.color(event.card))) return true; - } - return false; + return event.card&&event.card.name=='sha'; }, forced:true, check:function (event){ @@ -1047,7 +1046,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, content:function (){ - if(get.color(trigger.cards)=='black') player.draw(); + if(get.color(trigger.card)!='red') player.draw(); else trigger.source.chooseDrawRecover(true); }, ai:{ @@ -1936,7 +1935,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, reluoyi2:{ - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, filter:function(event){ return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink(); }, @@ -2810,8 +2809,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lib.filter.targetEnabled({name:'sha'},player,event.player)&&player.hasSha(); }, content:function(){ - player.chooseToUse({name:'sha'},'诛害:是否对'+get.translation(trigger.player)+'使用一张杀?', - trigger.player,-1).set('logSkill','zhuhai'); + player.chooseToUse({name:'sha'},'诛害:是否对'+get.translation(trigger.player)+'使用一张杀?').set('logSkill','zhuhai').set('complexSelect',true).set('filterTarget',function(card,player,target){ + if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false; + return lib.filter.filterTarget.apply(this,arguments); + }).set('sourcex',trigger.player); } }, qianxin:{ @@ -3014,13 +3015,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xunxun:{ audio:2, trigger:{player:'phaseDrawBefore'}, - check:function(event,player){ - return !player.hasSkill('reyiji2'); - }, + //check:function(event,player){ + // return !player.hasSkill('reyiji2'); + //}, content:function(){ "step 0" event.cards=get.cards(4); - player.chooseCardButton(event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue); + player.chooseCardButton(event.cards,2,'选择两张牌置于牌堆顶',true).set('ai',ai.get.buttonValue); "step 1" if(result.bool){ var choice=[]; @@ -3154,7 +3155,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "new_liyu":"利驭", "new_liyu_info":"当你使用【杀】对一名其他角色造成伤害后,你可以获得其一张牌。若此牌不为装备牌,则其摸一张牌。若此牌为装备牌,则视为你对其选择的另一名角色使用一张【决斗】。", "new_retuxi":"突袭", - "new_retuxi_info":"摸牌阶段摸牌时,你可以少摸任意张牌,然后选择等量的角色的各一张手牌。", + "new_retuxi_info":"摸牌阶段摸牌时,你可以少摸任意张牌,然后获得等量的角色的各一张手牌。", + "new_retuxi_info_guozhan":"摸牌阶段摸牌时,你可以少摸至多两张牌,然后获得等量的角色的各一张手牌。", "new_reyiji":"遗计", "new_reyiji_info":"每当你受到1点伤害后,你可以摸两张牌,然后可以将至多两张手牌交给其他角色。", "new_rejianxiong":"奸雄", @@ -3180,7 +3182,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "new_reqingnang":"青囊", "new_reqingnang_info":"出牌阶段,你可以弃置一张手牌,令一名本回合内未成为过〖青囊〗的目标的角色回复一点体力。若你弃置的是黑色牌,则你本回合内不能再发动〖青囊〗。", "new_reyaowu":"耀武", - "new_reyaowu_info":"锁定技,当任意一名角色使用【杀】对你造成伤害时,若此杀为红色,该角色回复1点体力或摸一张牌。若为黑色,则你摸一张牌。", + "new_reyaowu_info":"锁定技,当一名角色使用【杀】对你造成伤害时,若此杀为红色,该角色回复1点体力或摸一张牌。否则则你摸一张牌。", reqingguo:'倾国', reqingguo_info:'你可以将一张黑色牌当做【闪】使用或打出。', diff --git a/character/shenhua.js b/character/shenhua.js index 41dda086c..a710c56c0 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -1154,7 +1154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "tachibana_effect":{ audio:'nzry_huaiju', trigger:{ - global:['damageBefore','phaseDrawBegin'], + global:['damageBegin4','phaseDrawBegin'], }, forced:true, filter:function(event,player){ @@ -2443,7 +2443,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - target.chooseToUse({name:'sha'},player,-1,'挑衅:对'+get.translation(player)+'使用一张杀,或令其弃置你的一张牌').set('targetRequired',true); + target.chooseToUse({name:'sha'},'挑衅:对'+get.translation(player)+'使用一张杀,或令其弃置你的一张牌').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){ + if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false; + return lib.filter.filterTarget.apply(this,arguments); + }).set('sourcex',player); "step 1" if(result.bool==false&&target.countCards('he')>0){ player.discardPlayerCard(target,'he',true); @@ -5225,6 +5228,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ check:function(event,player){ return get.attitude(player,event.target)<0; }, + logTarget:'target', content:function(){ player.discardPlayerCard('he',trigger.target,true); } @@ -5527,7 +5531,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ tianxiang:{ audio:2, audioname:['daxiaoqiao'], - trigger:{player:'damageBefore'}, + trigger:{player:'damageBegin3'}, direct:true, filter:function(event,player){ return player.countCards('h',{suit:'heart'})>0&&event.num>0; @@ -5622,7 +5626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ retianxiang:{ audio:'tianxiang', audioname:['daxiaoqiao'], - trigger:{player:'damageBefore'}, + trigger:{player:'damageBegin4'}, direct:true, filter:function(event,player){ return player.countCards('he',{suit:'heart'})>0&&event.num>0; diff --git a/character/sp.js b/character/sp.js index fb055655d..55f6f7a44 100755 --- a/character/sp.js +++ b/character/sp.js @@ -24,7 +24,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ niujin:['male','wei',4,['cuorui','liewei']], guanlu:['male','wei',3,['tuiyan','busuan','mingjie']], - gexuan:['male','wu',3,['lianhua','zhafu']], + gexuan:['male','wu',3,['gxlianhua','zhafu']], wenyang:['male','wei',5,['xinlvli','choujue']], mangyachang:["male","qun",4,["spjiedao"],[]], xugong:["male","wu",3,["biaozhao","yechou"],[]], @@ -458,6 +458,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ cardimage:"baiyin", type:"equip", subtype:"equip2", + onLoseFilter:function(card,player){ + if(player.hasSkillTag('unequip2')) return false; + return true; + }, onLose:function (){ player.recover(); player.draw(2); @@ -690,7 +694,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, //管辂和葛玄 - lianhua:{ + gxlianhua:{ audio:2, init:function(player,skill){ if(!player.storage[skill]) player.storage[skill]={ @@ -713,28 +717,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return event.player!=player&&_status.currentPhase!=player; }, content:function(){ - player.storage.lianhua[player.getFriends().contains(trigger.player)?'red':'black']++; - player.markSkill('lianhua'); + player.storage.gxlianhua[player.getFriends().contains(trigger.player)?'red':'black']++; + player.markSkill('gxlianhua'); }, - group:'lianhua_harmonia', + group:'gxlianhua_harmonia', subSkill:{ harmonia:{ forced:true, - audio:'lianhua', + audio:'gxlianhua', sub:true, trigger:{player:'phaseBegin'}, //filter:function(event,player){ - // return player.storage.lianhua&&player.storage.lianhua.red+player.storage.lianhua.black>0; + // return player.storage.gxlianhua&&player.storage.gxlianhua.red+player.storage.gxlianhua.black>0; //}, forced:true, content:function(){ var cards=[]; var cards2=[]; var skill=''; - var red=player.storage.lianhua.red; - var black=player.storage.lianhua.black; - player.storage.lianhua={red:0,black:0}; - player.unmarkSkill('lianhua'); + var red=player.storage.gxlianhua.red; + var black=player.storage.gxlianhua.black; + player.storage.gxlianhua={red:0,black:0}; + player.unmarkSkill('gxlianhua'); if(red+black<4){ cards=['tao']; skill='reyingzi'; @@ -1298,7 +1302,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ spjiedao:{ audio:2, trigger:{ - source:"damageBegin", + source:"damageBegin1", }, usable:1, direct:true, @@ -4341,7 +4345,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, zfengshi:{ - audio:'fengshi', + audio:2, trigger:{player:'useCardToPlayered'}, filter:function(event,player){ return event.card.name=='sha'&&event.target.countCards('e'); @@ -4356,7 +4360,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, chuanxin:{ - trigger:{source:'damageBefore'}, + audio:2, + trigger:{source:'damageBegin2'}, filter:function(event,player){ if(_status.currentPhase!=player) return false; if(!_status.event.getParent('phaseUse')) return false; @@ -4379,6 +4384,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, logTarget:'player', check:function(event,player){ + if(get.mode()=='guozhan'){ + if(get.guozhanRank(event.player.name2)<4) return false; + } if(event.player.hasSkill('subplayer')) return false; if(get.attitude(player,event.player)<0){ if(event.player.hp==1) return false; @@ -4391,6 +4399,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger.cancel(); if(trigger.player.countCards('e')){ trigger.player.chooseControl(function(event,player){ + if(get.mode()=='guozhan'&&get.guozhanRank(event.player.name2)<4) return 1; if(player.hp==1) return 1; if(player.hp==2&&player.countCards('e')>=2) return 1; return 0; @@ -4592,12 +4601,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ intro:{ content:'下一次受到超过1点的伤害时,防止此伤害,然后$跳过下个回合的摸牌阶段' },*/ - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin4'}, forced:true, filter:function(event,player){ return event.num>1; }, - priority:-11, + //priority:-11, content:function(){ trigger.cancel(); player.storage.kuanshi2.skip('phaseDraw'); @@ -5791,14 +5800,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, shichou2:{ group:'shichou3', - trigger:{player:'damageBefore'}, + trigger:{player:'damageBegin3'}, forced:true, popup:false, content:function(){ trigger.untrigger(); trigger.player=player.storage.shichou_target; trigger.player.addSkill('shichou4'); - trigger.trigger('damageBefore'); + trigger.trigger('damageBegin3'); player.logSkill('shichou2',player.storage.shichou_target); game.delay(0.5); }, @@ -6147,11 +6156,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return num+player.maxHp; } }, - trigger:{global:'gameStart',player:'enterGame'}, + trigger:{global:'gameDrawAfter',player:'enterGame'}, forced:true, content:function(){ - player.draw(player.maxHp,false); - player.$draw(player.maxHp); + player.draw(player.maxHp); } }, tuifeng:{ @@ -7181,7 +7189,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, jiaozi:{ audio:2, - trigger:{player:'damageBegin',source:'damageBegin'}, + trigger:{player:'damageBegin3',source:'damageBegin1'}, forced:true, filter:function(event,player){ return player.isMaxHandcard(true); @@ -7283,7 +7291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ intro:{ content:'防止你受到的所有伤害' }, - trigger:{player:'damageBefore'}, + trigger:{player:'damageBegin3'}, forced:true, content:function(){ trigger.cancel(); @@ -7452,7 +7460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, jie:{ audio:1, - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, filter:function(event){ return event.card&&event.card.name=='sha'&&get.color(event.card)=='red'&&event.notLink(); }, @@ -7863,7 +7871,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ subSkill:{ source:{ audio:"anxian", - trigger:{source:'damageBefore'}, + trigger:{source:'damageBegin2'}, filter:function(event,player){ return event.card&&event.card.name=='sha'; }, @@ -8472,7 +8480,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, nuzhan2:{ audio:'nuzhan', - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin2'}, forced:true, filter:function(event,player){ return event.card&&event.card.name=='sha'&&event.cards&& @@ -8583,7 +8591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ subSkill:{ more:{ audio:true, - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, direct:true, filter:function(event,player){ if(!player.hasSkill('fenxin_nei')){ @@ -8620,7 +8628,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, less:{ audio:true, - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin2'}, filter:function(event,player){ if(!player.hasSkill('fenxin_nei')){ if(!player.countCards('h',{color:'red'})) return false; @@ -8830,7 +8838,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, shixin:{ audio:2, - trigger:{player:'damageBefore'}, + trigger:{player:'damageBegin4'}, filter:function(event){ return event.nature=='fire'; }, @@ -9146,7 +9154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, hanyong3:{ audio:false, - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, forced:true, onremove:true, filter:function(event,player){ @@ -9305,7 +9313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, fengpo2:{ - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, filter:function(event){ return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink(); }, @@ -9414,7 +9422,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, fuji:{ - trigger:{global:'damageBegin'}, + trigger:{global:'damageBegin1'}, filter:function(event){ return event.source&&event.nature=='thunder'; }, @@ -9499,7 +9507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, chouhai:{ audio:2, - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin3'}, forced:true, check:function(){ return false; @@ -10403,7 +10411,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, mingshi:{ audio:2, - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin3'}, direct:true, filter:function(event,player){ return event.source&&event.source.hp>player.hp; @@ -11035,7 +11043,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(get.damageEffect(trigger.player,player,player)<=0){ nono=true; } - var next=player.chooseToDiscard('弃置一张装备牌并令'+get.translation(player)+'摸一张牌,或受到一点伤害',get.prompt('xiaoguo',trigger.player),{type:'basic'}); + var next=player.chooseToDiscard(get.prompt('xiaoguo',trigger.player),{type:'basic'}); next.set('ai',function(card){ if(_status.event.nono) return 0; return 8-get.useful(card); @@ -11045,7 +11053,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 1" if(result.bool){ var nono=(get.damageEffect(trigger.player,player,trigger.player)>=0); - trigger.player.chooseToDiscard('he','弃置一张装备牌,或受到一点伤害',{type:'equip'}).set('ai',function(card){ + trigger.player.chooseToDiscard('he','弃置一张装备牌并令'+get.translation(player)+'摸一张牌,或受到一点伤害',{type:'equip'}).set('ai',function(card){ if(_status.event.nono){ return 0; } @@ -12801,8 +12809,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ busuan_angelbeats:'卜算', mingjie:'命戒', mingjie_info:'结束阶段,你可以摸一张牌,若此牌为红色,你可以重复此流程直到摸到黑色牌或摸到第三张牌。当你以此法摸到黑色牌时,你失去1点体力。', - lianhua:'炼化', - lianhua_info:'你的回合外,每当有其他角色受到伤害后,你获得一个“丹血”标记 (该角色与你阵营一致为红色,不一致为黑色,此颜色对玩家不可见)直到你的准备阶段开始。准备阶段,根据你获得的“丹血”标记的数量和颜色,你获得相应的游戏牌以及获得相应技能直到回合结束。3枚或以下:“英姿”和【桃】;超过3枚且红色“丹血”较多:“观星”和【无中生有】;超过3枚且黑色“丹血”较多:“直言”和【顺手牵羊】;超过3枚且红色和黑色一样多:【杀】、【决斗】和“攻心”。', + gxlianhua:'炼化', + gxlianhua_info:'你的回合外,每当有其他角色受到伤害后,你获得一个“丹血”标记 (该角色与你阵营一致为红色,不一致为黑色,此颜色对玩家不可见)直到你的准备阶段开始。准备阶段,根据你获得的“丹血”标记的数量和颜色,你获得相应的游戏牌以及获得相应技能直到回合结束。3枚或以下:“英姿”和【桃】;超过3枚且红色“丹血”较多:“观星”和【无中生有】;超过3枚且黑色“丹血”较多:“直言”和【顺手牵羊】;超过3枚且红色和黑色一样多:【杀】、【决斗】和“攻心”。', zhafu:'札符', zhafu_info:' 限定技,出牌阶段,你可以选择一名其他角色。该角色的下一个弃牌阶段开始时,其选择保留一张手牌,然后将其余的手牌交给你。', xinlvli:'膂力', diff --git a/character/standard.js b/character/standard.js index ce914b589..e5363ac53 100755 --- a/character/standard.js +++ b/character/standard.js @@ -340,7 +340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, luoyi2:{ - trigger:{source:'damageBegin'}, + trigger:{source:'damageBegin1'}, filter:function(event){ return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink(); }, diff --git a/character/tw.js b/character/tw.js index 96acbfbb5..63dabc730 100644 --- a/character/tw.js +++ b/character/tw.js @@ -72,7 +72,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ twbaimei:{ audio:2, trigger:{ - player:"damageBefore", + player:"damageBegin4", }, forced:true, priority:15, @@ -350,7 +350,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, twbaobian:{ audio:2, - trigger:{source:'damageBefore'}, + trigger:{source:'damageBegin2'}, filter:function(event,player){ var card=event.card; if(!card||(card.name!='sha'&&card.name!='juedou')) return false; diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index 1d29289f6..f14fb1817 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -1136,7 +1136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ delete player.storage.lingren; }, trigger:{ - player:"damageBegin", + player:"damageBegin3", }, filter:function (event,player){ var info=player.storage.lingren; @@ -1246,14 +1246,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.line(trigger.player,'fire'); trigger.player.damage('fire'); trigger.player.addTempSkill('xionghuo_disable','phaseAfter'); - game.delay(); - event.finish(); + event.goto(4); 'step 2' player.line(trigger.player,'water'); trigger.player.loseHp(); trigger.player.addTempSkill('xionghuo_low','phaseAfter'); - game.delay(); - event.finish(); + event.goto(4); 'step 3' player.line(trigger.player,'green'); var card1=trigger.player.getCards('h').randomGet(); @@ -1264,6 +1262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(list.length>0){ player.gain(list,trigger.player,'giveAuto','bySelf'); } + 'step 4' game.delay(); }, }, @@ -1272,7 +1271,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ sub:true, forced:true, trigger:{ - source:"damageBegin", + source:"damageBegin1", }, filter:function (event,player){ return event.player.hasSkill('xionghuo'); @@ -1800,10 +1799,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "xinfu_yinshi":{ audio:2, trigger:{ - player:"damageBefore", + player:"damageBegin4", }, forced:true, - priority:15, + //priority:15, filter:function (event,player){ if(player.hasSkill('smh_huoji')||player.hasSkill('smh_lianhuan')) return false; if(!player.isEmpty(2)) return false; @@ -2220,7 +2219,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "zhenyi_heart":{ trigger:{ - source:"damageBegin", + source:"damageBegin1", }, filter:function (event,player){ return event.source&&player.storage.xinfu_falu_map.heart; @@ -3184,7 +3183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "xinfu_zengdao2":{ trigger:{ - source:"damageBegin", + source:"damageBegin1", }, audio:"xinfu_zengdao", forced:true, @@ -3290,7 +3289,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "xinfu_gongqing":{ audio:true, trigger:{ - player:"damageBegin", + player:"damageBegin4", }, forced:true, filter:function (event,player){ @@ -3323,7 +3322,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, audio:2, trigger:{ - player:"damageBefore", + player:"damageBegin4", }, filter:function (event,player){ return (event.source&&event.source.countCards('h')); @@ -4442,7 +4441,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:'xinfu_pdgyingshi2', priority:Infinity, content:function(){ - event.getParent('arrangeTrigger').list=[]; + var evt=event.getParent('arrangeTrigger'); + if(evt&&evt.map){ + for(var i in evt.map){ + evt.map[i].list=[]; + } + evt.list=[]; + } game.log(player,'跳过了',event.triggername=='phaseBegin'?'准备阶段':'结束阶段'); }, }, @@ -4974,7 +4979,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ usable:1, audio:2, trigger:{ - player:"damageBegin", + player:"damageBegin4", }, filter:function (event,player){ return event.source!=undefined&&player.countCards('h')>0; @@ -5278,11 +5283,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_bagua_skill":{ + equipSkill:true, inherit:"bagua_skill", trigger:{ player:"chooseToRespondBegin", }, filter:function (event,player){ + if(player.hasSkillTag('unequip2')) return false; if(event.responded) return false; if(!event.filterCard({name:'shan'})) return false; if(!lib.filter.cardRespondable({name:'sha'},player,event)) return false; @@ -5312,6 +5319,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ target:function (card,player,target,effect){ + if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return; if(player.hasSkillTag('unequip',false,{ name:card?card.name:null, target:player, @@ -5323,13 +5331,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_baiyin_skill":{ + equipSkill:true, inherit:"baiyin_skill", trigger:{ - player:"damageBegin", + player:"damageBegin4", }, forced:true, audio:true, filter:function (event,player){ + if(player.hasSkillTag('unequip2')) return false; if(event.num<=1) return false; if(event.source&&event.source.hasSkillTag('unequip',false,{ name:event.card?event.card.name:null, @@ -5344,6 +5354,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_lanyinjia":{ + equipSkill:true, inherit:"lanyinjia", enable:["chooseToRespond"], filterCard:true, @@ -5377,6 +5388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_minguangkai_cancel":{ + equipSkill:true, inherit:"minguangkai_cancel", trigger:{ target:"useCardToBefore", @@ -5405,6 +5417,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_minguangkai_link":{ + equipSkill:true, inherit:"minguangkai_link", trigger:{ player:"linkBefore", @@ -5428,6 +5441,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_renwang_skill":{ + equipSkill:true, inherit:"renwang_skill", trigger:{ target:"shaBegin", @@ -5436,6 +5450,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ priority:6, audio:true, filter:function (event,player){ + if(player.hasSkillTag('unequip2')) return false; if(event.player.hasSkillTag('unequip',false,{ name:event.card?event.card.name:null, target:player, @@ -5449,6 +5464,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ target:function (card,player){ + if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return; if(player.hasSkillTag('unequip',false,{ name:card?card.name:null, target:player, @@ -5460,6 +5476,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_tengjia1":{ + equipSkill:true, inherit:"tengjia1", trigger:{ target:"useCardToBefore", @@ -5468,6 +5485,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ priority:6, audio:true, filter:function (event,player){ + if(player.hasSkillTag('unequip2')) return false; if(event.player.hasSkillTag('unequip',false,{ name:event.card?event.card.name:null, target:player, @@ -5482,6 +5500,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ effect:{ target:function (card,player,target,current){ + if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return; if(player.hasSkillTag('unequip',false,{ name:card?card.name:null, target:player, @@ -5499,9 +5518,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_tengjia2":{ + equipSkill:true, inherit:"tengjia2", trigger:{ - player:"damageBegin", + player:"damageBegin3", }, filter:function (event){ if(event.nature=='fire') return true; @@ -5523,6 +5543,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "rw_tengjia3":{ + equipSkill:true, inherit:"rw_minguangkai_link", trigger:{ player:"linkBefore", diff --git a/character/yijiang.js b/character/yijiang.js index d625545a7..c0a0b879a 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -390,7 +390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } ]; for(var i=0;i0; + }, + check:function(event,player){ + if(get.attitude(player,event.player)<0) return false; + if(player.countCards('h',{name:['tao','jiu']})+target.hp<0) return false; + return true; + }, + content:function(){ + 'step 0' + player.turnOver(); + 'step 1' + trigger.player.gain(player.getCards('h'),'give',player); + 'step 2' + trigger.player.recover(); + }, + }, + renxin:{ + trigger:{global:'damageBegin4'}, + audio:3, + //priority:6, filter:function(event,player){ return event.player!=player&&event.player.hp==1&&player.countCards('he',{type:'equip'})>0; }, @@ -11201,7 +11270,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jingce:'精策', xinjingce:'精策', chengxiang:'称象', + oldchengxiang:'称象', renxin:'仁心', + oldrenxin:'仁心', zhenlie:'贞烈', miji:'秘计', zhiyan:'直言', @@ -11211,7 +11282,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhuiyi:'追忆', gongji:'弓骑', qiuyuan:'求援', + oldqiuyuan:'求援', zhuikong:'惴恐', + oldzhuikong:'惴恐', qieting:'窃听', xianzhou:'献州', quanji:'权计', @@ -11245,7 +11318,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xianzhou_info:'限定技。出牌阶段,你可以将装备区内的所有牌交给一名其他角色,然后该角色选择一项:令你回复X点体力;或对其攻击范围内的X名角色各造成1点伤害(X为你以此法交给该角色的牌的数量)。', qieting_info:'其他角色的结束阶段,若其未于此回合内使用过指定其他角色为目标的牌,你可以选择一项:将其装备区里的一张牌移动至你装备区里的相应位置(可替换原装备);或摸一张牌。', zhuikong_info:'其他角色的准备阶段,若你已受伤,你可以与该角色拼点。若你赢,该角色本回合使用的牌不能指定除该角色外的角色为目标。若你没赢,其本回合至你的距离视为1。', + oldzhuikong_info:'其他角色的准备阶段,若你已受伤,你可以与该角色拼点。若你赢,该角色跳过本回合的出牌阶段。若你没赢,其本回合至你的距离视为1。', qiuyuan_info:'当你成为【杀】的目标时,你可以令一名其他角色选择一项:①、交给你一张【闪】;②、成为此【杀】的额外目标。', + oldqiuyuan_info:'当你成为【杀】的目标时,你可以令一名有手牌的其他角色正面朝上交给你一张牌。若此牌不为【闪】,则该角色也成为此【杀】的额外目标。', gongji_info:'出牌阶段限一次,你可以弃置一张牌,然后你的攻击范围视为无限直到回合结束。若你以此法弃置的牌为装备牌,则你可以弃置一名其他角色的一张牌。', zhuiyi_info:'当你死亡时,你可以令一名其他角色(杀死你的角色除外)摸三张牌,然后其回复1点体力。', anxu_info:'出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌多的角色将一张手牌交给手牌少的角色,然后若这两名角色手牌数相等,你摸一张牌或回复1点体力', @@ -11255,7 +11330,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ miji_info:'结束阶段,若你已受伤,则可以摸X张牌,然后可以将等量的牌交给一名其他角色(X为你已损失的体力值)。', zhenlie_info:'当你成为其他角色使用牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。', chengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌', + oldchengxiang_info:'当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌', renxin_info:'当体力值为1的一名其他角色受到伤害时,你可以将武将牌翻面并弃置一张装备牌,然后防止此伤害。', + oldrenxin_info:'其他角色进入濒死状态时,你可以将所有手牌交给该角色并翻面,然后该角色回复1点体力。', jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。', xinjingce_info:'结束阶段,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。', wuyan_info:'锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。', diff --git a/game/asset.js b/game/asset.js index 2ae01430d..032cb83c3 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - '1.9.95', + '1.9.95.1', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -2324,6 +2324,8 @@ window.noname_asset_list=[ 'image/character/hejin.jpg', 'image/character/hansui.jpg', 'image/character/niujin.jpg', + 'image/character/old_fuhuanghou.jpg', + 'image/character/old_caochong.jpg', 'image/character/baiwuchang.jpg', 'image/character/baosanniang.jpg', diff --git a/game/game.js b/game/game.js index 7dc285f5b..2aada53be 100644 --- a/game/game.js +++ b/game/game.js @@ -5478,6 +5478,7 @@ item:{ normal:'新1v1', dianjiang:'点将单挑', + changban:'血战长坂坡', }, restart:true, frequent:true, @@ -5491,6 +5492,7 @@ item:{ normal:'新1v1', dianjiang:'点将单挑', + changban:'血战长坂坡', }, restart:true, frequent:true, @@ -10368,123 +10370,73 @@ event.filter3=function(info,info2){ return event.filter2(info2)&&event.filter1(info2)&&info2[1]==info[1]&&info[2]==info2[2]&&info[1].hasSkill(info2[0],true); } - event.num=0; - event.used=[]; 'step 1' - var bool=false; - var list=event.list; - for(var i=0;ipriority){ + event.doing.list.splice(i--,1); + event.num--; + } + } + event.choice=[]; + if(event.num1){ - for(var i=0;i0&&player.hujia&&!player.hasSkillTag('nohujia')){ if(num>=player.hujia){ event.hujia=player.hujia; @@ -14303,7 +14292,7 @@ player.changeHujia(-event.hujia).type='damage'; } event.num=num; - "step 1" + "step 5" if(lib.config.background_audio){ game.playAudio('effect','damage'+(num>1?'2':'')); } @@ -14361,7 +14350,7 @@ event.trigger('damage'); } } - "step 2" + "step 6" if(player.hp<=0&&player.isAlive()){ game.delayx(); player.dying(event); @@ -14406,7 +14395,7 @@ } } } - "step 3" + "step 7" if(!event.notrigger) event.trigger('damageSource'); }, recover:function(){ @@ -14459,62 +14448,18 @@ loseMaxHp:function(){ "step 0" game.log(player,'减少了'+get.cnNumber(num)+'点体力上限'); - if(!event.forced&&typeof player.singleHp==='boolean'){ - if(num%2==1){ - if(player.singleHp){ - player.singleHp=false; - player.maxHp-=(num-1)/2; - } - else{ - player.singleHp=true; - player.maxHp-=(num+1)/2; - event.changed=true; - } - } - else{ - player.maxHp-=num/2; - } - } - else{ - player.maxHp-=num; - } + player.maxHp-=num; player.update(); "step 1" if(player.maxHp<=0){ player.die(); } - "step 2" - if(!event.forced&&event.changed&&!player.isUnseen(2)){ - player.doubleDraw(); - } }, gainMaxHp:function(){ "step 0" game.log(player,'增加了'+get.cnNumber(num)+'点体力上限'); - if(!event.forced&&typeof player.singleHp==='boolean'){ - if(num%2==1){ - if(player.singleHp){ - player.singleHp=false; - player.maxHp+=(num+1)/2; - } - else{ - player.singleHp=true; - player.maxHp+=(num-1)/2; - event.changed=true; - } - } - else{ - player.maxHp+=num/2; - } - } - else{ - player.maxHp+=num; - } + player.maxHp+=num; player.update(); - "step 1" - if(!event.forced&&event.changed&&!player.isUnseen(2)){ - player.doubleDraw(); - } }, changeHp:function(){ player.hp+=num; @@ -14537,6 +14482,7 @@ }, dying:function(){ "step 0" + event.forceDie=true; if(player.isDying()||player.hp>0){ event.finish(); return; @@ -14546,8 +14492,31 @@ _status.dying=list; },_status.dying); event.trigger('dying'); - game.log(player,'濒死') + game.log(player,'濒死'); "step 1" + if(player.hp>0){ + _status.dying.remove(player); + game.broadcast(function(list){ + _status.dying=list; + },_status.dying); + event.finish(); + } + else{ + var next=game.createEvent('_save'); + var start=false; + var starts=[_status.currentPhase,event.source,event.player,game.me,game.players[0]]; + for(var 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 Ef<9kr!~g&Q literal 0 HcmV?d00001 diff --git a/image/character/old_fuhuanghou.jpg b/image/character/old_fuhuanghou.jpg new file mode 100644 index 0000000000000000000000000000000000000000..adc6df1bdf4fd576360a2f0dc618652bbef5258a GIT binary patch literal 33821 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 literal 0 HcmV?d00001 diff --git a/mode/boss.js b/mode/boss.js index 921ab4101..9104c797f 100644 --- a/mode/boss.js +++ b/mode/boss.js @@ -1974,6 +1974,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ gameDraw:function(player){ return player==game.boss?8:4; }, + init:function(){ + _status.taoni_over=get.copy(game.over); + }, }, global:{ loopType:1, @@ -8058,7 +8061,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var opd=Object.getOwnPropertyDescriptor(node,a); if(opd!=undefined){ if(opd.get||opd.set||opd.writable!=true||opd.configurable!=true||opd.enumerable!=true){ - game.over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。'); + _status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。'); } } node[a] = lib[__Ox598df[0x3]][__Ox598df[0x2]][a];//还原函数 @@ -8067,7 +8070,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var opd2=Object.getOwnPropertyDescriptor(node,_xsu8[b]); if(opd2!=undefined){ if(opd2.get||opd2.set||opd2.writable!=true||opd2.configurable!=true||opd2.enumerable!=true){ - game.over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。'); + _status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。'); } } } @@ -8076,7 +8079,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var opd3=Object.getOwnPropertyDescriptor(game,_cRYC[c]); if(opd3!=undefined){ if(opd3.get||opd3.set||opd3.writable!=true||opd3.configurable!=true||opd3.enumerable!=true){ - 已被game.over('〖讨逆〗被触发,游戏终止。'); + _status.taoni_over('〖讨逆〗被触发,游戏终止。'); } } } diff --git a/mode/guozhan.js b/mode/guozhan.js index 0329c5efb..486a340a1 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -816,7 +816,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ audio:['buyi',2], }, keshou:{ - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin3'}, direct:true, filter:function(event,player){ return event.num>0; @@ -1078,12 +1078,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, congjian:{ - trigger:{global:'damageBefore'}, + trigger:{ + player:'damageBegin3', + source:'damageBegin1', + }, forced:true, - filter:function(event,player){ + filter:function(event,player,name){ if(event.num<=0) return false; - if(event.source&&event.source==player&&_status.currentPhase!=player&&event.notLink()) return true; - if(event.player&&event.player==player&&_status.currentPhase==player) return true; + if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true; + if(name=='damageBegin3'&&_status.currentPhase==player) return true; + return false; }, check:function(event,player){ return _status.currentPhase!=player; @@ -2968,7 +2972,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ hmkyuanyu:{ audio:'zongkui', trigger:{ - player:"damageBegin", + player:"damageBegin4", }, forced:true, filter:function (event,player){ @@ -3257,10 +3261,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, "xianqu_skill":{ + ruleSkill:true, enable:"phaseUse", - filter:function (event,player){ - return player.countCards('h')<4; - }, + //filter:function (event,player){ + //return player.countCards('h')<4; + //}, usable:1, mark:true, intro:{ @@ -3268,7 +3273,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, content:function (){ "step 0" - player.draw(4-player.countCards('h')); + var num=4-player.countCards('h'); + if(num) player.draw(num); player.chooseTarget('是否观看一名其他角色的一张暗置武将牌?',function(card,player,target){ return target!=player&&target.isUnseen(2); }).set('ai',function(target){ @@ -3315,11 +3321,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ ai:{ order:1, result:{ - player:2, + player:function(player){ + if(4-player.countCards('h')<2) return 0; + return 1; + }, }, }, }, "zhulianbihe_skill":{ + ruleSkill:true, group:["zhulianbihe_skill_draw","zhulianbihe_skill_tao"], mark:true, intro:{ @@ -3327,6 +3337,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, "yinyang_skill":{ + ruleSkill:true, group:["yinyang_skill_draw","yinyang_skill_add"], mark:true, intro:{ @@ -3334,6 +3345,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, "zhulianbihe_skill_draw":{ + ruleSkill:true, enable:"phaseUse", usable:1, content:function (){ @@ -3368,6 +3380,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, "zhulianbihe_skill_tao":{ + ruleSkill:true, enable:"chooseToUse", viewAs:{ name:"tao", @@ -3383,6 +3396,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, "yinyang_skill_draw":{ + ruleSkill:true, enable:"phaseUse", usable:1, content:function (){ @@ -3405,6 +3419,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, }, "yinyang_skill_add":{ + ruleSkill:true, trigger:{ player:"phaseDiscardBefore", }, @@ -5463,12 +5478,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, fengshi:{ - audio:2, + audio:'zfengshi', zhenfa:'siege', global:'fengshi_sha' }, fengshi_sha:{ - audio:'fengshi', + audio:'zfengshi', trigger:{player:'useCardToPlayered'}, filter:function(event,player){ if(event.card.name!='sha'&&game.countPlayer()<4) return false; @@ -5622,7 +5637,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, gzmingshi:{ audio:'mingshi', - trigger:{player:'damageBegin'}, + trigger:{player:'damageBegin3'}, forced:true, filter:function(event,player){ return event.num>0&&event.source&&event.source.isUnseen(2); diff --git a/mode/single.js b/mode/single.js index df484f39b..6e28c78a1 100644 --- a/mode/single.js +++ b/mode/single.js @@ -2,6 +2,26 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ return { name:'single', + changbanCharacter:[ + "key_kyousuke", + "xf_yiji","caozhang","sunquan", + "re_caocao","re_guojia","re_xuzhu","re_zhangliao","re_xiahoudun","re_simayi","re_lidian", + "re_zhangfei","re_zhaoyun","re_zhouyu","re_ganning","re_lvbu","re_gongsunzan","re_diaochan", + "re_xiahouyuan","re_huangzhong","re_weiyan","re_dianwei","re_pangde","re_yanwen","pangtong", + "re_zhurong","sunjian","jiaxu","dengai","jiangwei","sunce", + "wangji","kuailiangkuaiyue","wangping","yl_luzhi","chendao","lukang", + "xin_masu","lingtong","xusheng","wangyi","xunyou","madai","handang", + "guohuai","caochong","guanping","liufeng","zhuran","xin_liru", + "hanhaoshihuan","wuyi","guyong","caoxiu","liuchen","sunxiu","gongsunyuan", + "guohuanghou","xinxianying","qinmi","xushi","xuezong","ol_yujin", + "lvdai","wangcan","zhoufang","guosi","zhangji","fanchou", + "zhanggong","shamoke","mangyachang","huangfusong","xf_huangquan","xf_tangzi","xf_sufei","liuqi", + "lifeng","lingcao","sunru","re_jikang","zhuling", + "sp_caiwenji","caoang","sp_caoren","fuwan","guanyinping","jsp_guanyu","huangjinleishi", + "sp_jiangwei","litong","mayunlu","sp_pangde","wanglang","xiahouba", + "yuanshu","yuejin","sp_zhangfei","zhugejin","panfeng","chenlin", + "jiling","mateng","tw_dingfeng","kaisa", + ], singlePile:[ ['spade',5,'sha'], ['spade',7,'sha'], @@ -110,14 +130,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, onreinit:function(){ - _status.characterList=[]; + _status.mode=_status.connectMode?lib.configOL.single_mode:get.config('single_mode'); + if(_status.mode!='normal') return; for(var i in lib.characterSingle){ lib.character[i]=lib.characterSingle[i]; if(!lib.character[i][4]){ lib.character[i][4]=[]; } - _status.characterList.push(i); } + for(var j in lib.singleTranslate) lib.translate[j]=lib.singleTranslate[j]; }, start:function(){ "step 0" @@ -154,16 +175,28 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(_status.mode=='normal'){ lib.card.list=lib.singlePile.slice(0); game.fixedPile=true; - game.broadcastAll(function(){ - for(var j in lib.singleTranslate) lib.translate[j]=lib.singleTranslate[j]; + game.broadcastAll(function(singleTranslate,characterSingle){ + _status.mode='normal'; + for(var j in singleTranslate) lib.translate[j]=singleTranslate[j]; _status.characterList=[]; - for(var i in lib.characterSingle){ - lib.character[i]=lib.characterSingle[i]; + for(var i in characterSingle){ + lib.character[i]=characterSingle[i]; if(!lib.character[i][4]){ lib.character[i][4]=[]; } _status.characterList.push(i); } + },lib.singleTranslate,lib.characterSingle); + } + else if(_status.mode=='changban'){ + _status.characterList=[]; + for(var i=0;i