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 i=0;i0; @@ -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