'use strict'; mode.stone={ element:{ player:{ init:function(player){ if(!player.isMin()||player.forcemin){ if(!player.node.actcount){ player.node.actcount=ui.create.div('.actcount.hp',player); } if(typeof player.actcount!=='number'){ player.actcount=2; } player.actused=0; if(!player.actcharacterlist){ player.actcharacterlist=[]; } player.updateActCount(); } }, updateActCount:function(used,countx,current){ if(_status.video){ this.actcount=countx||2; } else{ game.addVideo('updateActCount',this,[used,this.actcount,this.getActCount()]); } for(var i=0;i<10;i++){ if(this.actcount>this.node.actcount.childElementCount){ ui.create.div(this.node.actcount); } else if(this.actcount=0){ this.actcharacterlist[index]=null; } return this; }, dieAfter:function(source){ var dead=this; if(game.me.isDead()){ if(!_status.mylist.length){ _status.friendCount.innerHTML='友军: '+get.cnNumber(0); game.over(false); } else{ game.pause(); _status.deadfriend.push(this); game.additionaldead.push(this); setTimeout(function(){ var player=ui.create.player(); player.classList.add('noidentity'); player.dataset.position=dead.dataset.position; player.side=dead.side; player.actcharacterlist=dead.actcharacterlist; player.animate('replaceme'); player.actcount=game.enemy.actcount; player.actcount=dead.actcount; if(_status.double_character){ player.init(_status.mylist.shift(),_status.mylist.shift()); } else{ player.init(_status.mylist.shift()); } if(_status.mode=='deck'){ get.deck(player,_status.deck.shift()); } game.players.push(player); ui.arena.appendChild(player); game.addVideo('stoneSwap',null,{ name:player.name, name2:player.name2, position:player.dataset.position, actcount:player.actcount, me:true }); game.swapControl(player); game.arrangePlayers(); if(_status.mode=='deck'){ player.draw(2,false); var nd=game.enemy.countFellow(); if(nd){ console.log(nd); player.directgain(player.getDeckCards(nd)); } } else{ player.draw(2+game.enemy.countFellow(),false); } game.resume(); game.updateStatusCount(); },lib.config.duration); } } else if(game.enemy.isDead()){ if(!_status.enemylist.length){ _status.enemyCount.innerHTML='敌军: '+get.cnNumber(0); game.over(true); } else{ game.pause(); _status.deadenemy.push(this); game.additionaldead.push(this); setTimeout(function(){ var player=ui.create.player(); player.classList.add('noidentity'); player.dataset.position=dead.dataset.position; player.side=dead.side; player.actcharacterlist=dead.actcharacterlist; player.animate('replaceenemy'); player.actcount=dead.actcount; if(_status.double_character){ player.init(_status.enemylist.shift(),_status.enemylist.shift()); } else{ player.init(_status.enemylist.shift()); } if(_status.mode=='deck'){ get.deck(player,'random'); } game.players.push(player); game.enemy=player; ui.arena.appendChild(player); game.addVideo('stoneSwap',null,{ name:player.name, name2:player.name2, position:player.dataset.position, actcount:player.actcount, }); game.arrangePlayers(); player.draw(2+game.me.countFellow(),false); game.resume(); game.updateStatusCount(); },lib.config.duration); } } if(source&&source.side!=this.side&&!source.isMin()){ source.draw(2); if(source.getActCount()>0){ source.actused--; } source.updateActCount(); } game.dead.remove(this); game.arrangePlayers(); this.getLeader().removeFellow(this); setTimeout(function(){ dead.delete(); },500); } } }, cardPack:{ mode_stone:[ 'zhaohunfan','jintiao','liumangxingzhen','shengerpingdeng','emofengdi','konghunshi', 'mindieyi','miefafu','dianhaishenzhu','yesushengxue','sanghunzhao','fengraozhijiao' ] }, characterPack:{ mode_stone:{ stone_weibing:['male','wei',2,['stone_weibing'],['minskin','stone'],[1,0]], stone_weiguan:['male','wei',1,['stone_weiguan'],['minskin','stone'],[1,2]], stone_weijiang:['male','wei',3,['stone_weijiang'],['minskin','stone'],[3,0]], stone_shubing:['male','shu',2,['stone_shubing'],['minskin','stone'],[1,0]], stone_shuguan:['male','shu',1,['stone_shuguan'],['minskin','stone'],[1,2]], stone_shujiang:['male','shu',3,['stone_shujiang'],['minskin','stone'],[3,0]], stone_wubing:['male','wu',2,['stone_wubing'],['minskin','stone'],[1,0]], stone_wuguan:['male','wu',1,['stone_wuguan'],['minskin','stone'],[1,2]], stone_wujiang:['male','wu',3,['stone_wujiang'],['minskin','stone'],[3,0]], stone_qunbing:['male','qun',2,['stone_qunbing'],['minskin','stone'],[1,0]], stone_qunguan:['male','qun',1,['stone_qunguan'],['minskin','stone'],[1,2]], stone_qunjiang:['male','qun',3,['stone_qunjiang'],['minskin','stone'],[3,0]], stone_daoshi:['male','qun',1,['stone_daoshi'],['minskin','stone'],[1,2]], stone_sanxian:['male','qun',2,['stone_sanxian'],['minskin','stone'],[2,0]], stone_yisheng:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]], stone_yinshi:['male','qun',1,['stone_yinshi'],['minskin','stone'],[1,2]], stone_banxian:['male','qun',3,['stone_banxian'],['minskin','stone'],[3,0]], stone_daogu:['female','qun',1,['stone_daogu'],['minskin','stone'],[1,2]], stone_gongzhu:['female','wu',1,['shushen'],['minskin','stone'],[2,2]], stone_genv:['female','wei',1,['jieyin'],['minskin','stone'],[1,2]], stone_wunv:['female','qun',1,['biyue'],['minskin','stone'],[3,2]], stone_huanghou:['female','qun',2,['stone_huanghou'],['minskin','stone'],[3,1]], stone_feipin:['female','qun',1,['guixiu'],['minskin','stone'],[1,2]], stone_yiji:['female','qun',1,['stone_yiji'],['minskin','stone'],[2,2]], stone_tuteng1:['none','qun',2,['shaman_tuteng','chaofeng'],['minskin','stone','stonehidden'],[2,0]], stone_tuteng2:['none','qun',2,['shaman_tuteng','shaman_zhuore'],['minskin','stone','stonehidden'],[2,0]], stone_tuteng3:['none','qun',2,['shaman_tuteng','shaman_fali'],['minskin','stone','stonehidden'],[2,0]], stone_tuteng4:['none','qun',2,['shaman_tuteng','shaman_zhiliao'],['minskin','stone','stonehidden'],[2,0]], stone_xinbing:['none','qun',2,[],['minskin','stone','stonehidden'],[2,1]], } }, careerList:['mage','shaman','druid','paladin','rogue','priest','hunter','warrior','warlock'], game:{ reserveDead:true, modPhaseDraw:function(player,num){ if(_status.mode=='deck'&&!player.isMin()){ if(num>1){ player.draw(num-1,false); } if(num>0){ player.directgain(player.getDeckCards(),'draw'); } player.$draw(num); game.delay(); } else{ player.draw(num); } }, getVideoName:function(){ var str=get.translation(game.me.name); if(game.me.name2){ str+='/'+get.translation(game.me.name2); } var name=[ str,'炉石 - '+get.config('battle_number')+'人' ]; return name; }, updateStatusCount:function(){ _status.friendCount.innerHTML='友军: '+get.cnNumber(1+_status.mylist.length/(_status.double_character?2:1),true); _status.enemyCount.innerHTML='敌军: '+get.cnNumber(1+_status.enemylist.length/(_status.double_character?2:1),true); }, stoneLoop:function(player){ var next=game.createEvent('phaseLoop'); next.player=player; next.content=function(){ "step 0" player.phase(); event.num=0; "step 1" if(event.num/g,''); }; var observer = new MutationObserver(removeLine); observer.observe(rename,{characterData:true,subtree:true}); rename.addEventListener('keyup',removeLine); var cardDialog=ui.create.cardDialog(true,function(name){ var type=lib.card[name].type; return type!='stonecard'&&type!='stonecharacter'; },{seperate:function(list){ var nl=[],ns=[]; var result={ '中立法术':ns, '中立随从':nl, } for(var i=0;i=30){ for(var i=0;i=2){ list.push(i); } } for(var i=0;i'+editing.name+'', listContainer,editDeck); ui.create.div('.menubutton.round',deckitem).dataset.career=editing.content.career; deckitem.name=editing.name; } lib.storage.deckList[editing.name]=editing.content; } game.save('deckList',lib.storage.deckList); listContainer.style.transform=''; deckContainer.classList.remove('shown'); } e.stopPropagation(); }); var listContainer=ui.create.div('.list-container',deckList); for(var i in lib.storage.deckList){ var deckitem=ui.create.div('.deckitem.shadowed',''+i+'', listContainer,editDeck); ui.create.div('.menubutton.round',deckitem).dataset.career=lib.storage.deckList[i].career; deckitem.name=i; } var deckContainer=ui.create.div('.list-container.deck',deckList); }()); ui.deckcontrol=ui.create.system('卡组管理',function(){ if(lib.config.low_performance){ ui.arena.style.transform='translateY('+ui.window.offsetHeight+'px)'; } else{ ui.arena.style.top='100%'; } ui.system.style.opacity=0; ui.window.appendChild(ui.deckBuilder); if(ui.deckBuilder.timeout){ clearTimeout(ui.deckBuilder.timeout); delete ui.deckBuilder.timeout; } ui.refresh(ui.deckBuilder); ui.deckBuilder.classList.add('shown'); ui.auto.hide(); ui.pause.hide(); },true); } if(playback){ ui.create.me(); ui.arena.style.display='none'; ui.system.style.display='none'; _status.playback=playback; localStorage.removeItem(lib.configprefix+'playback'); var store=lib.db.transaction(['video'],'readwrite').objectStore('video'); store.get(parseInt(playback)).onsuccess=function(e){ if(e.target.result){ game.playVideoContent(e.target.result.video); } else{ alert('播放失败:找不到录像'); game.reload(); } } event.finish(); } else{ game.prepareArena(2); game.delay(); } ui.arena.classList.add('stone'); "step 2" for(var i=0;i'+game.me.deckCards.length); uiintro.addSmall([game.me.deckCards,'card']); return uiintro; },220); } _status.friendCount=ui.create.system('',null,true); _status.enemyCount=ui.create.system('',null,true); game.updateStatusCount(); lib.setPopped(_status.friendCount,function(){ var uiintro=ui.create.dialog('hidden'); if(_status.deadfriend.length){ uiintro.add('已阵亡'); uiintro.add([_status.deadfriend,'player']); } uiintro.add('未上场'); if(_status.mylist.length){ uiintro.add([_status.mylist,'character']); } else{ uiintro.add('(无)') } return uiintro; }); lib.setPopped(_status.enemyCount,function(){ if(_status.deadenemy.length){ var uiintro=ui.create.dialog('hidden'); uiintro.add('已阵亡'); uiintro.add([_status.deadenemy,'player']); return uiintro; } }); game.me.side=Math.random()<0.5; game.enemy.side=!game.me.side; var players=get.players(lib.sort.position); var info=[]; for(var i=0;i'+i+'',buttons,clickButton); ui.create.div('.menubutton.round',deckitem).dataset.career=lib.storage.deckList[i].career; deckitem.name=i; } } for(var i=0;i随机',buttons,clickButton); ui.create.div('.menubutton.round',deckitem).dataset.career=lib.careerList[i]; deckitem.name='random:'+lib.careerList[i]; } event.dialog.open(); } else{ var bn=parseInt(get.config('battle_number')); for(var i=0;i1||target.num('he')>0); }, content:function(){ "step 0" target.discard(target.get('he')); "step 1" if(target.maxHp>1){ target.loseMaxHp(target.maxHp-1); } }, ai:{ result:{ target:function(player,target){ return 1-target.hp-target.num('h')/2; } }, order:5 } }, liumangxingzhen:{ fullskin:true, type:'stonecard', enable:true, filterTarget:function(card,player,target){ return target.isMin(); }, selectTarget:-1, multiline:true, multitarget:true, content:function(){ 'step 0' targets.sort(lib.sort.seat); for(var i=0;i1; }, selectTarget:-1, content:function(){ target.loseMaxHp(target.maxHp-1); }, ai:{ order:9, result:{ target:function(player,target){ if(target.hp>1) return -1; if(target.maxHp>1) return -0.1; return 0; } } } }, emofengdi:{ fullskin:true, type:'stonecard', enable:function(event,player){ if(player.isMin()) return false; return player.canAddFellow(); }, stoneact:5, filterTarget:function(card,player,target){ return target.isMin()&&target.side!=player.side; }, content:function(){ target.getLeader().removeFellow(target); target.side=player.side; player.addFellow(target); }, ai:{ order:9, result:{ target:function(player,target){ return -target.hp; } } } }, konghunshi:{ type:'stonecard', fullskin:true, enable:function(event,player){ if(player.isMin()) return false; return player.canAddFellow(); }, stoneact:4, filterTarget:function(card,player,target){ return target.isMin()&&target.side!=player.side; }, content:function(){ target.getLeader().removeFellow(target); target.side=player.side; player.addFellow(target); target.addSkill('konghunshi_die'); }, ai:{ order:9, result:{ target:function(player,target){ return -target.hp; } } } }, mindieyi:{ fullskin:true, type:'stonecard', enable:true, stoneact:2, filterTarget:function(card,player,target){ return target.isMin(); }, selectTarget:-1, content:function(){ target.turnOver(); }, ai:{ order:7, result:{ target:function(player,target){ if(target.isTurnedOver()) return 1; return -1; } } } }, miefafu:{ type:'stonecard', enable:true, stoneact:1, fullskin:true, filterTarget:function(card,player,target){ return target.isMin(); }, content:function(){ target.turnOver(); }, ai:{ order:6, result:{ target:function(player,target){ if(target.isTurnedOver()) return 1; return -1; } } } }, dianhaishenzhu:{ fullskin:true, type:'stonecard', enable:true, stoneact:1, filterTarget:function(card,player,target){ return target.isMin()&&target.side==player.side&&!target.skills.contains('chaofeng'); }, content:function(){ target.addSkill('chaofeng'); target.markSkill('chaofeng'); game.log(target,'获得了嘲讽'); target.popup('嘲讽'); }, ai:{ order:2, result:{ target:function(player,target){ if(target.hp>=3) return target.hp; return 0; } } } }, yesushengxue:{ fullskin:true, type:'stonecard', enable:true, stoneact:4, filterTarget:function(card,player,target){ return target.isMin()&&target.hp<5; }, content:function(){ if(target.maxHp<5){ target.gainMaxHp(Math.min(2,5-target.maxHp)); } target.recover(2); }, ai:{ order:7, result:{ target:function(player,target){ return 5-target.hp; } } } }, sanghunzhao:{ type:'stonecard', fullskin:true, enable:true, stoneact:3, filterTarget:function(card,player,target){ return target.isMin(); }, selectTarget:-1, multitarget:true, multiline:true, content:function(){ targets.sort(lib.sort.seat); for(var i=0;iplayer.actcount) return false; return true; }, usable:1, filterTarget:true, content:function(){ player.actused+=2; player.updateActCount(); target.recover(); }, ai:{ order:2, result:{ target:function(player,target){ return ai.get.recoverEffect(target,player,target); } } } }, _mage_skill:{ enable:'phaseUse', filter:function(event,player){ if(player.career!='mage') return false; if(player.getActCount()+2>player.actcount) return false; return true; }, usable:1, line:'fire', filterTarget:function(card,player,target){ return !target.career; }, content:function(){ player.actused+=2; player.updateActCount(); target.damage('fire'); }, ai:{ order:2, result:{ target:function(player,target){ return ai.get.damageEffect(target,player,target,'fire'); } } } }, _warlock_skill:{ enable:'phaseUse', filter:function(event,player){ if(player.career!='warlock') return false; if(player.getActCount()+2>player.actcount) return false; return player.num('he')>0; }, usable:1, content:function(){ player.actused+=2; player.updateActCount(); player.gain(player.getDeckCards(2),'draw'); }, ai:{ order:2, result:{ player:1 } } }, _hunter_skill:{ enable:'phaseUse', filter:function(event,player){ if(player.career!='hunter') return false; if(player.getActCount()+2>player.actcount) return false; return player.num('he')>0; }, usable:1, selectTarget:-1, filterTarget:function(card,player,target){ return target.career&&target.side!=player.side; }, content:function(){ player.actused+=2; player.updateActCount(); target.damage(); }, ai:{ order:2, result:{ target:function(player,target){ return ai.get.damageEffect(target,player,target); } } } }, _warrior_skill:{ enable:'phaseUse', filter:function(event,player){ if(player.career!='warrior') return false; if(player.getActCount()+2>player.actcount) return false; return true; }, usable:1, content:function(){ player.actused+=2; player.updateActCount(); player.changeHujia(1); player.draw(); }, ai:{ order:2, result:{ player:1 } } }, _rogue_skill:{ enable:'phaseUse', filter:function(event,player){ if(player.career!='rogue') return false; if(player.getActCount()+2>player.actcount) return false; return true; }, usable:1, content:function(){ 'step 0' player.actused+=2; player.updateActCount(); var equip1=get.cardPile(function(card){ return get.subtype(card)=='equip1'; }); if(!equip1){ equip1=game.createCard('qingnang'); } var equip4=get.cardPile(function(card){ return get.type(card)=='equip'&&get.subtype(card)!='equip1'; }); if(!equip4){ equip4=game.createCard('chitu'); } player.$gain(equip1); setTimeout(function(){ player.$gain(equip4); },250); game.delay(); event.equip1=equip1; event.equip4=equip4; 'step 1' player.equip(event.equip1); game.delay(0.5); 'step 2' player.equip(event.equip4); }, ai:{ order:function(skill,player){ if(!player.get('e','1')&&player.num('e')<2){ if(player.num('h','sha')&&player.getActCount()+3<=player.actcount){ return 4; } return 0.1; } return 0; }, result:{ player:function(player){ if(player.num('e')<=2) return 1; return 0; } } } }, _druid_skill:{ enable:'phaseUse', filter:function(event,player){ if(player.career!='druid') return false; if(player.getActCount()+2>player.actcount) return false; return player.num('he')>0&&lib.filter.cardEnabled({name:'sha'},player); }, usable:1, filterTarget:function(card,player,target){ return player.canUse('sha',target,false); }, direct:true, content:function(){ player.actused+=2; player.updateActCount(); player.useCard({name:'sha'},targets,'_druid_skill',false).animate=false; }, ai:{ order:function(){ return lib.card.sha.ai.order-0.1; }, result:{ target:function(player,target){ return ai.get.effect(target,{name:'sha'},player,target); } } } }, shaman_tuteng:{ trigger:{player:'phaseDrawBefore'}, forced:true, popup:false, content:function(){ trigger.untrigger(); trigger.finish(); } }, shaman_zhiliao:{ trigger:{player:'phaseEnd'}, forced:true, direct:true, content:function(){ 'step 0' var players=get.players(); var targets=[]; for(var i=0;iplayer.actcount) return false; return true; }, usable:1, content:function(){ "step 0" player.actused+=2; player.updateActCount(); var name='stone_tuteng'+Math.ceil(Math.random()*4); var added=false; var i; for(i=0;iplayer.actcount) return false; return true; }, usable:1, content:function(){ "step 0" player.actused+=2; player.updateActCount(); var name='stone_xinbing'; var added=false; var i; for(i=0;i0; }).ai=function(target){ return target.num('he'); }; player.line(event.chooser); "step 1" if(result.bool){ event.chooser.line(result.targets[0]); game.delay(); result.targets[0].discard(result.targets[0].get('he')); } } }, stone_weijiang:{ trigger:{source:'fellow'}, forced:true, unique:true, filter:function(event,player){ for(var i=0;i0; }, content:function(){ var enemy=player.getEnemy(); var es=enemy.get('e'); if(es.length){ player.getLeader().line(enemy); game.delay(); enemy.discard(es.randomGet()); // game.log(get.translation(event.enemy)+'将'+get.translation(es)+'收入手牌') } } }, stone_wuguan:{ trigger:{source:'fellow'}, forced:true, unique:true, content:function(){ player.getLeader().addTempSkill('stone_wuguan2','phaseAfter'); } }, stone_wuguan2:{ mod:{ maxHandcard:function(player,num){ return num+2; } }, }, stone_wujiang:{ trigger:{source:'fellow'}, forced:true, unique:true, content:function(){ player.getLeader().draw(2); } }, stone_qunbing:{ trigger:{source:'fellow'}, forced:true, unique:true, content:function(){ player.addSkill('stone_qunbing2'); } }, stone_qunbing2:{ trigger:{player:'phaseDrawBegin'}, forced:true, content:function(){ trigger.num++; player.removeSkill('stone_qunbing2'); } }, stone_qunguan:{ trigger:{source:'fellow'}, forced:true, unique:true, content:function(){ var targets=[]; for(var i=0;iplayer.getLeader().countFellow(); }, content:function(){ "step 0" event.chooser=player.getEnemy(); event.chooser.chooseTarget('皇后:选择己方一名随从令其死亡',function(card,playerx,target){ return target.isMin()&&target.side!=player.side; },true).ai=function(target){ return -target.hp; }; player.line(event.chooser); "step 1" if(result.bool){ event.chooser.line(result.targets[0]); game.delay(); result.targets[0].die(); } } }, stone_yiji:{ trigger:{player:'dieBegin'}, forced:true, filter:function(event){ return event.source!=undefined&&event.source.isMin(); }, content:function(){ trigger.source.addSkill('stone_yiji2'); }, }, stone_yiji2:{ trigger:{global:'dieAfter'}, forced:true, popup:false, unique:true, filter:function(event,player){ return player.skills.contains('stone_yiji2'); }, content:function(){ player.loseHp(); player.removeSkill('stone_yiji2'); } }, _actcount:{ mod:{ cardEnabled:function(card,player){ if(player.isMin()){ return; } if(_status.currentPhase!=player) return; var stoneact=get.info(card).stoneact; if(typeof stoneact!='number'){ stoneact=1; } if(player.getActCount()+stoneact>player.actcount) return false; } }, trigger:{player:'phaseBegin'}, forced:true, popup:false, filter:function(event,player){ return !player.isMin(); }, content:function(){ player.actused=0; if(player.side){ player.actcount=player.getEnemy().actcount; } else{ player.actcount=player.getEnemy().actcount+1; } if(player.actcount>6){ player.actcount-=4; } player.updateActCount(); } }, _actcount2:{ trigger:{player:'useCard'}, forced:true, popup:false, filter:function(event,player){ return !player.isMin(); }, content:function(){ var stoneact=get.info(trigger.card).stoneact; if(typeof stoneact==='number'){ player.actused+=stoneact-1; } player.updateActCount(); } }, stonesha:{ unique:true, enable:['chooseToUse','chooseToRespond'], filterCard:{type:'equip'}, viewAs:{name:'sha'}, check:function(){return 1}, filter:function(event,player){ return player.num('h',{type:'equip'})>0; }, viewAsFilter:function(player){ return player.num('h',{type:'equip'})>0; }, ai:{ skillTagFilter:function(player){ return player.num('h',{type:'equip'})>0; }, respondSha:true, order:4, useful:-1, value:-1 } }, stoneshan:{ unique:true, enable:['chooseToRespond'], viewAs:{name:'shan'}, filterCard:{type:'stonecharacter'}, check:function(){return 1}, filter:function(event,player){ return player.num('h',{type:'stonecharacter'})>0; }, viewAsFilter:function(player){ return player.num('h',{type:'stonecharacter'})>0; }, ai:{ skillTagFilter:function(player){ return player.num('h',{type:'stonecharacter'})>0; }, respondShan:true, order:4, useful:-1, value:-1 } }, stonedraw:{ trigger:{player:'phaseDrawBegin'}, forced:true, popup:false, content:function(){ trigger.num--; } } }, translate:{ shaman:'祭司', mage:'法师', priest:'医生', warrior:'战士', warlock:'术士', knight:'死亡骑士', rogue:'游侠', paladin:'谋士', hunter:'猎人', druid:'蛮人', shaman_tuteng:'图腾', shaman_tuteng_info:'锁定技,你跳过摸牌阶段', shaman_fali:'法潮', shaman_fali_info:'回合结束阶段,令所有无手牌的友方随从摸一张牌', shaman_zhiliao:'治疗', shaman_zhiliao_info:'回合结束阶段,令所有友方随从回复一点体力', shaman_zhuore:'灼热', shaman_zhuore_info:'回合结束阶段,对一名随机敌方随从造成一点伤害', _shaman_skill:'祭天', _shaman_skill_info:'召唤一个随机图腾', _mage_skill:'火冲', _mage_skill_info:'对一名随从造成一点火焰伤害', _priest_skill:'治疗', _priest_skill_info:'回复一点体力', _warrior_skill:'战甲', _warrior_skill_info:'获得一点护甲,摸一张牌', _warlock_skill:'作法', _warlock_skill_info:'从牌库中获得两张牌', _rogue_skill:'出鞘', _rogue_skill_info:'装备一把武器和一个随机非武器装备', _paladin_skill:'动员', _paladin_skill_info:'召唤一名士兵', _hunter_skill:'射击', _hunter_skill_info:'对敌方主将造成一点伤害', _druid_skill:'猛击', _druid_skill_info:'视为使用一张不计入出杀次数的杀', stone_tuteng1:'石爪图腾', stone_tuteng2:'灼热图腾', stone_tuteng3:'法潮图腾', stone_tuteng4:'治疗图腾', stone_xinbing:'新兵', stone_weibing:'魏兵', stone_weibing_info:'你出场时,已方主将可以弃置对方一名随从的所有牌', stone_weiguan:'魏官', stone_weiguan_info:'你出场时,已方主将可以令已方一名其他角色摸一张牌', stone_weijiang:'魏将', stone_weijiang_info:'你出场时,已方主将可以对对方一名随从造成一点伤害', stone_shubing:'蜀兵', stone_shubing_info:'你出场时,立即将武将牌翻至正面', stone_shuguan:'蜀官', stone_shuguan2:'蜀官', stone_shuguan_info:'你出场时,已方主将于本回合结束阶段摸一张牌', stone_shujiang:'蜀将', stone_shujiang_info:'你出场时,已方主将可视为对一名敌方角色使用一张杀', stone_wubing:'吴兵', stone_wubing_info:'你出场时,敌方主将随机弃置一张装备牌', stone_wuguan:'吴官', stone_wuguan_info:'你出场时,已方主将本回合手牌上限+2', stone_wujiang:'吴将', stone_wujiang_info:'你出场时,已方主将摸两张牌', stone_qunbing:'群兵', stone_qunbing2:'群兵', stone_qunbing_info:'你出场后的第一个摸牌阶段摸牌数+1', stone_qunguan:'群官', stone_qunguan_info:'你出场时,所有其他随从各摸一张牌', stone_qunjiang:'群将', stone_qunjiang_info:'你出场时,敌方随从弃置所有牌', stone_daoshi:'道士', stone_daoshi_info:'回合开始阶段,若你没有手牌,你摸一张牌', stone_sanxian:'散仙', stone_sanxian_info:'你死亡前,已方主将可令一名敌方随从失去1点体力', stone_banxian:'半仙', stone_banxian_info:'你死亡后,场上所有其他随从失去1点体力', stone_yisheng:'医生', stone_yinshi:'隐士', stone_yinshi_info:'在你的回合开始前,不能成为任何卡牌的目标', stone_gongzhu:'公主', stone_genv:'歌女', stone_wunv:'舞女', stone_huanghou:'皇后', stone_huanghou_info:'你出场时,若敌方随从数多于己方,敌方主将须选择一名随从令其死亡', stone_feipin:'王妃', stone_yiji:'艺伎', stone_yiji_info:'杀死你的随从失去一点体力', stone_daogu:'道姑', stone_daogu_info:'回合结束阶段,若你没有手牌,你摸一张牌', stonesha:'冲锋', stonesha_info:'锁定技,你的装备牌均视为杀', stoneshan:'格挡', stoneshan_info:'锁定技,你的随从牌均视为闪', stonecharacter:'随从', shengerpingdeng:'生而平等', shengerpingdeng_info:'将所有随从体力上限降为1', emofengdi:'恶魔之眼', emofengdi_info:'限主将使用,将一名敌方随从吸收为已方', konghunshi:'控魂石', konghunshi_info:'限主将使用,将一名敌方随从吸收为已方,并令其于下个回合结束后死亡', konghunshi_die:'控魂石', konghunshi_die_info:'下个回合结束后死亡', mindieyi:'冥蝶翼', mindieyi_info:'将场上所有随从翻面', miefafu:'灭法符', miefafu_info:'将目标随从翻面', liumangxingzhen:'六芒星阵', liumangxingzhen_info:'令场上所有随从立即死亡(无法触发死亡技能),回复两点体力', dianhaishenzhu:'颠海神珠', dianhaishenzhu_info:'令目标随从获得嘲讽', chaofeng:'嘲讽', chaofeng_info:'同阵营的无嘲讽角色不以能成为杀或决斗的目标', yesushengxue:'耶稣圣血', yesushengxue_info:'令一名随从增加两点体力上限(不能超过5)并回复两点体力', sanghunzhao:'丧魂爪', sanghunzhao_info:'令场上所有随从失去一点体力', jintiao:'荆条', jintiao_info:'弃置一名随从的所有牌,并令其体力上限减至1', zhaohunfan:'招魂幡', zhaohunfan_info:'令双方各一名随从立即死亡', fengraozhijiao:'丰饶之角', fengraozhijiao_info:'令一名随从回复全部体力', stonecard:'法术', mode_stone_card_config:'炉石模式', mode_stone_character_config:'炉石模式', }, ai:{ get:{ attitude:function(from,to){ var num; if(to.isMin()&&!to.skills.contains('chaofeng')){ num=5; } else{ num=6; } return num*(from.side==to.side?1:-1); } } }, config:['battle_number','double_character','double_hp','ban_weak','free_choose','change_choice'], }