10210 lines
265 KiB
JavaScript
10210 lines
265 KiB
JavaScript
'use strict';
|
||
mode.stone={
|
||
start:function(){
|
||
"step 0"
|
||
lib.init.css(lib.assetURL+'layout/mode/','stone');
|
||
_status.mode='deck';
|
||
game.initStone();
|
||
var playback=localStorage.getItem(lib.configprefix+'playback');
|
||
|
||
if(!playback&&_status.mode=='deck'){
|
||
(function(){
|
||
ui.deckBuilder=ui.create.div('.popup-container#deck-builder',function(){
|
||
if(careerList.classList.contains('shown')){
|
||
careerList.classList.remove('shown');
|
||
newDeck.classList.remove('active');
|
||
}
|
||
else if(!cardDialog.classList.contains('shown')){
|
||
this.classList.remove('shown');
|
||
this.timeout=setTimeout(function(){
|
||
ui.deckBuilder.remove();
|
||
},500);
|
||
ui.arena.style.top='';
|
||
ui.arena.style.transform='';
|
||
ui.arena.style.opacity='';
|
||
ui.system.style.opacity='';
|
||
ui.auto.show();
|
||
ui.pause.show();
|
||
ui.historybar.show();
|
||
}
|
||
});
|
||
var clickNode=function(){
|
||
cardDialog.classList.add('shown');
|
||
controls.classList.add('shown');
|
||
var name='未命名';
|
||
for(var i=1;;i++){
|
||
if(!lib.storage.deckList[name+i]){
|
||
break;
|
||
}
|
||
}
|
||
cardDialog.editing={
|
||
name:name+i,
|
||
content:{
|
||
career:this.firstChild.dataset.career,
|
||
deck:[]
|
||
},
|
||
}
|
||
rename.innerHTML=name+i;
|
||
newDeck.innerHTML='确认编辑';
|
||
newDeck.classList.add('active');
|
||
careerList.classList.remove('shown');
|
||
listContainer.style.transform='translateX(200px)';
|
||
deckContainer.innerHTML='';
|
||
deckContainer.classList.add('shown');
|
||
updateCardDialog();
|
||
}
|
||
var careerList=ui.create.div('.shadowed.career',ui.deckBuilder);
|
||
for(var i=0;i<lib.careerList.length;i++){
|
||
var node=ui.create.div(careerList,clickNode);
|
||
ui.create.div('.menubutton.round',node).dataset.career=lib.careerList[i];
|
||
ui.create.div('.text',lib.translate[lib.careerList[i]],node);
|
||
}
|
||
var controls=ui.create.div('.controls',ui.deckBuilder);
|
||
var cardCount=ui.create.div('.card-count',controls);
|
||
ui.create.div('.menubutton.large','删除',controls,function(e){
|
||
if(this.innerHTML=='删除'){
|
||
this.innerHTML='确定';
|
||
var that=this;
|
||
setTimeout(function(){
|
||
that.innerHTML='删除';
|
||
},1000);
|
||
}
|
||
else{
|
||
cardDialog.classList.remove('shown');
|
||
controls.classList.remove('shown');
|
||
newDeck.innerHTML='新建卡组';
|
||
newDeck.classList.remove('active');
|
||
var editing=cardDialog.editing;
|
||
if(editing){
|
||
if(editing.origin){
|
||
delete lib.storage.deckList[editing.origin];
|
||
for(var i=0;i<listContainer.childElementCount;i++){
|
||
if(listContainer.childNodes[i].name==editing.origin){
|
||
listContainer.childNodes[i].remove();break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
game.save('deckList',lib.storage.deckList);
|
||
listContainer.style.transform='';
|
||
deckContainer.classList.remove('shown');
|
||
updateCardDialog();
|
||
}
|
||
e.stopPropagation();
|
||
});
|
||
var rename=ui.create.div('.menubutton.large','重命名',controls);
|
||
rename.contentEditable=true;
|
||
rename.onfocus=function(){
|
||
var range = document.createRange();
|
||
range.selectNodeContents(this);
|
||
var sel = window.getSelection();
|
||
sel.removeAllRanges();
|
||
sel.addRange(range);
|
||
};
|
||
rename.onblur=function(){
|
||
if(cardDialog.editing){
|
||
if(!lib.storage.deckList[this.innerHTML]){
|
||
cardDialog.editing.name=this.innerHTML;
|
||
}
|
||
else{
|
||
this.innerHTML=cardDialog.editing.name;
|
||
}
|
||
}
|
||
var sel = window.getSelection();
|
||
sel.removeAllRanges();
|
||
};
|
||
rename.onkeydown=function(e){
|
||
if(e.keyCode==13){
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
rename.blur();
|
||
}
|
||
};
|
||
var removeLine=function() {
|
||
rename.innerHTML=rename.innerHTML.replace(/\n|<br>/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){
|
||
if(lib.card[name].stonehidden) return true;
|
||
var type=lib.card[name].type;
|
||
return type!='stonecard'&&type!='stonecharacter';
|
||
},{seperate:function(list){
|
||
var nl=[],ns=[];
|
||
var career={};
|
||
var careerspell={};
|
||
for(var i=0;i<lib.careerList.length;i++){
|
||
career[lib.careerList[i]]=[];
|
||
careerspell[lib.careerList[i]]=[];
|
||
}
|
||
var result={
|
||
list:{}
|
||
};
|
||
for(var i=0;i<list.length;i++){
|
||
if(lib.card[list[i][2]].type=='stonecard'){
|
||
if(lib.card[list[i][2]].career&&lib.careerList.contains(lib.card[list[i][2]].career)){
|
||
careerspell[lib.card[list[i][2]].career].push(list[i]);
|
||
}
|
||
else{
|
||
ns.push(list[i]);
|
||
}
|
||
}
|
||
else{
|
||
if(lib.card[list[i][2]].career&&lib.careerList.contains(lib.card[list[i][2]].career)){
|
||
career[lib.card[list[i][2]].career].push(list[i]);
|
||
}
|
||
else{
|
||
nl.push(list[i]);
|
||
}
|
||
}
|
||
}
|
||
for(var i=0;i<lib.careerList.length;i++){
|
||
result.list[get.translation(lib.careerList[i])]=careerspell[lib.careerList[i]].concat(career[lib.careerList[i]]);
|
||
result['法术·'+get.translation(lib.careerList[i])+'_link:'+lib.careerList[i]]=careerspell[lib.careerList[i]];
|
||
result['随从·'+get.translation(lib.careerList[i])+'_link:'+lib.careerList[i]]=career[lib.careerList[i]];
|
||
}
|
||
result.list['中立']=ns.concat(nl);
|
||
result['法术·中立']=ns;
|
||
result['随从·中立']=nl;
|
||
return result;
|
||
}});
|
||
for(var i=0;i<cardDialog.buttons.length;i++){
|
||
if(cardDialog.buttons[i].node.info.innerHTML.indexOf('随从')!=-1){
|
||
var buttonName=cardDialog.buttons[i].link[2];
|
||
buttonName=buttonName.slice(0,buttonName.indexOf('_stonecharacter'));
|
||
buttonName=lib.character[buttonName];
|
||
cardDialog.buttons[i].node.info.innerHTML=buttonName[5][1]+'/'+buttonName[2];
|
||
}
|
||
if(lib.config.touchscreen){
|
||
lib.setLongPress(cardDialog.buttons[i],ui.click.intro);
|
||
}
|
||
else{
|
||
if(lib.config.hover_all){
|
||
lib.setHover(cardDialog.buttons[i],ui.click.hoverplayer);
|
||
}
|
||
if(lib.config.right_info){
|
||
cardDialog.buttons[i].oncontextmenu=ui.click.rightplayer;
|
||
}
|
||
}
|
||
}
|
||
var updateCardDialog=function(button){
|
||
if(!deckContainer.classList.contains('shown')){
|
||
for(var i=0;i<cardDialog.buttons.length;i++){
|
||
cardDialog.buttons[i].classList.remove('unselectable');
|
||
}
|
||
for(var i=0;i<cardDialog.content.childElementCount;i++){
|
||
cardDialog.content.childNodes[i].classList.remove('nodisplay');
|
||
}
|
||
return;
|
||
}
|
||
if(deckContainer.childElementCount>=30){
|
||
for(var i=0;i<cardDialog.buttons.length;i++){
|
||
cardDialog.buttons[i].classList.add('unselectable');
|
||
}
|
||
}
|
||
else{
|
||
var nummap={};
|
||
for(var i=0;i<deckContainer.childElementCount;i++){
|
||
var name=deckContainer.childNodes[i].name;
|
||
if(!nummap[name]){
|
||
nummap[name]=1;
|
||
}
|
||
else{
|
||
nummap[name]++;
|
||
}
|
||
}
|
||
var list=[];
|
||
for(var i in nummap){
|
||
if(nummap[i]>=2){
|
||
list.push(i);
|
||
}
|
||
}
|
||
for(var i=0;i<cardDialog.buttons.length;i++){
|
||
if(list.contains(cardDialog.buttons[i].link[2])){
|
||
cardDialog.buttons[i].classList.add('unselectable');
|
||
}
|
||
else{
|
||
cardDialog.buttons[i].classList.remove('unselectable');
|
||
}
|
||
}
|
||
}
|
||
var career=cardDialog.editing.content.career;
|
||
for(var i=0;i<cardDialog.content.childElementCount;i++){
|
||
var currentNode=cardDialog.content.childNodes[i];
|
||
if(currentNode.link){
|
||
if(currentNode.link==career){
|
||
currentNode.classList.remove('nodisplay');
|
||
currentNode.nextSibling.classList.remove('nodisplay');
|
||
}
|
||
else{
|
||
currentNode.classList.add('nodisplay');
|
||
currentNode.nextSibling.classList.add('nodisplay');
|
||
}
|
||
}
|
||
}
|
||
cardCount.innerHTML=deckContainer.childElementCount+'/30';
|
||
};
|
||
var clickCard=function(){
|
||
this.remove();
|
||
updateCardDialog();
|
||
};
|
||
var clickButton=function(){
|
||
if(!deckContainer.classList.contains('shown')) return;
|
||
if(!this.classList.contains('unselectable')){
|
||
var card=ui.create.card(null,'noclick').init(this.link).listen(clickCard);
|
||
deckContainer.insertBefore(card,deckContainer.firstChild);
|
||
updateCardDialog();
|
||
}
|
||
}
|
||
for(var i=0;i<cardDialog.buttons.length;i++){
|
||
cardDialog.buttons[i].listen(clickButton);
|
||
}
|
||
cardDialog.classList.add('fullheight');
|
||
cardDialog.classList.add('scroll1');
|
||
cardDialog.classList.add('scroll2');
|
||
cardDialog.classList.add('fixed');
|
||
cardDialog.listen(function(e){
|
||
e.stopPropagation();
|
||
});
|
||
|
||
ui.deckBuilder.appendChild(cardDialog);
|
||
var deckList=ui.create.div('.shadowed.list',ui.deckBuilder,function(e){
|
||
e.stopPropagation();
|
||
if(careerList.classList.contains('shown')){
|
||
careerList.classList.remove('shown');
|
||
newDeck.classList.remove('active');
|
||
}
|
||
});
|
||
var editDeck=function(){
|
||
if(!cardDialog.classList.contains('shown')){
|
||
cardDialog.classList.add('shown');
|
||
controls.classList.add('shown');
|
||
var info=lib.storage.deckList[this.name];
|
||
cardDialog.editing={
|
||
origin:this.name,
|
||
name:this.name,
|
||
content:{
|
||
career:info.career,
|
||
deck:info.deck
|
||
},
|
||
}
|
||
rename.innerHTML=this.name;
|
||
newDeck.innerHTML='确认编辑';
|
||
newDeck.classList.add('active');
|
||
careerList.classList.remove('shown');
|
||
listContainer.style.transform='translateX(200px)';
|
||
deckContainer.innerHTML='';
|
||
for(var i=0;i<info.deck.length;i++){
|
||
ui.create.card(deckContainer,'noclick').init(['',get.translation(lib.card[info.deck[i]].type),info.deck[i]]).listen(clickCard);
|
||
}
|
||
deckContainer.classList.add('shown');
|
||
updateCardDialog();
|
||
}
|
||
};
|
||
var newDeck=ui.create.div('.menubutton.large.create','新建卡组',deckList,function(e){
|
||
if(this.innerHTML=='新建卡组'){
|
||
this.classList.toggle('active');
|
||
if(this.classList.contains('active')){
|
||
careerList.classList.add('shown');
|
||
}
|
||
else{
|
||
careerList.classList.remove('shown');
|
||
}
|
||
}
|
||
else{
|
||
cardDialog.classList.remove('shown');
|
||
controls.classList.remove('shown');
|
||
this.innerHTML='新建卡组';
|
||
this.classList.remove('active');
|
||
var editing=cardDialog.editing;
|
||
if(editing){
|
||
editing.content.deck.length=0;
|
||
for(var i=0;i<deckContainer.childElementCount;i++){
|
||
editing.content.deck.push(deckContainer.childNodes[i].name);
|
||
}
|
||
editing.content.deck.sort(function(a,b){
|
||
if(a>b) return 1;
|
||
if(a<b) return -1;
|
||
return 0;
|
||
});
|
||
if(editing.origin){
|
||
for(var i=0;i<listContainer.childElementCount;i++){
|
||
if(listContainer.childNodes[i].name==editing.origin){
|
||
listContainer.childNodes[i].name=editing.name;
|
||
listContainer.childNodes[i].firstChild.innerHTML=editing.name;
|
||
break;
|
||
}
|
||
}
|
||
delete lib.storage.deckList[editing.origin];
|
||
}
|
||
else if(!lib.storage.deckList[editing.name]){
|
||
var deckitem=ui.create.div('.deckitem.shadowed','<span>'+editing.name+'</span>',
|
||
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');
|
||
updateCardDialog();
|
||
}
|
||
e.stopPropagation();
|
||
});
|
||
var listContainer=ui.create.div('.list-container',deckList);
|
||
for(var i in lib.storage.deckList){
|
||
var deckitem=ui.create.div('.deckitem.shadowed','<span>'+i+'</span>',
|
||
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.arena.style.transform='scale(0.6)';
|
||
ui.arena.style.opacity=0;
|
||
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();
|
||
ui.historybar.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 1"
|
||
for(var i=0;i<game.players.length;i++){
|
||
game.players[i].getId();
|
||
game.players[i].classList.add('noidentity');
|
||
}
|
||
game.enemy=game.me.next;
|
||
if(lib.storage.test){
|
||
lib.config.game_speed='vfast';
|
||
_status.auto=true;
|
||
ui.auto.classList.add('glow');
|
||
}
|
||
game.chooseCharacter();
|
||
"step 2"
|
||
if(_status.mode=='deck'){
|
||
_status.deckButton=ui.create.system('卡组',null,true);
|
||
lib.setPopped(_status.deckButton,function(){
|
||
var uiintro=ui.create.dialog('hidden');
|
||
uiintro.listen(function(e){
|
||
e.stopPropagation();
|
||
});
|
||
uiintro.add('剩余 <span style="font-family:'+'xinwei'+'">'+game.me.deckCards.length);
|
||
uiintro.addSmall([game.me.deckCards,'card']);
|
||
return uiintro;
|
||
},220);
|
||
if(get.config('skill_bar')){
|
||
_status.rageEnabled=true;
|
||
|
||
ui.friendBar=ui.create.div('.skillbar.right.shadowed.playerbg',ui.arena);
|
||
ui.enemyBar=ui.create.div('.skillbar.left.shadowed.playerbg',ui.arena);
|
||
// ui.friendBar.dataset.nature='metal';
|
||
// ui.enemyBar.dataset.nature='fire';
|
||
ui.create.div('.skillbarshadow',ui.friendBar);
|
||
ui.create.div('.skillbarshadow',ui.enemyBar);
|
||
ui.create.div('.skillbarfill',ui.friendBar);
|
||
ui.create.div('.skillbarfill',ui.enemyBar);
|
||
ui.friendBar.fillnode=ui.create.div(ui.friendBar.lastChild);
|
||
ui.enemyBar.fillnode=ui.create.div(ui.enemyBar.lastChild);
|
||
// ui.friendBar.popnode=ui.create.div('.skillbartext',ui.friendBar);
|
||
// ui.enemyBar.popnode=ui.create.div('.skillbartext',ui.enemyBar);
|
||
_status.friendRage=0;
|
||
_status.enemyRage=0;
|
||
|
||
if(lib.config.touchscreen){
|
||
lib.setLongPress(ui.friendBar,ui.click.intro);
|
||
lib.setLongPress(ui.enemyBar,ui.click.intro);
|
||
}
|
||
else{
|
||
if(lib.config.hover_all){
|
||
lib.setHover(ui.friendBar,ui.click.hoverplayer);
|
||
lib.setHover(ui.enemyBar,ui.click.hoverplayer);
|
||
}
|
||
if(lib.config.right_info){
|
||
ui.friendBar.oncontextmenu=ui.click.rightplayer;
|
||
ui.enemyBar.oncontextmenu=ui.click.rightplayer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
_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<players.length;i++){
|
||
info.push({
|
||
name:players[i].name,
|
||
name2:players[i].name2,
|
||
count:players[i].actcount
|
||
});
|
||
}
|
||
_status.videoInited=true,
|
||
game.addVideo('init',null,info);
|
||
|
||
event.trigger('gameStart');
|
||
if(_status.mode=='deck'){
|
||
game.gameDraw(game.me,3);
|
||
game.me.drawDeck(1,false);
|
||
game.me.next.drawDeck(1,false);
|
||
}
|
||
else{
|
||
game.gameDraw(game.me);
|
||
}
|
||
"step 3"
|
||
game.me.chooseBool('是否置换手牌?');
|
||
"step 4"
|
||
if(result.bool){
|
||
var hs=game.me.get('h');
|
||
for(var i=0;i<hs.length;i++){
|
||
ui.discardPile.appendChild(hs[i]);
|
||
}
|
||
if(_status.mode=='deck'){
|
||
game.me.drawDeck(1,false);
|
||
game.me.directgain(get.cards(3));
|
||
}
|
||
else{
|
||
game.me.directgain(get.cards(4));
|
||
}
|
||
}
|
||
"step 5"
|
||
if(game.me.side){
|
||
game.stoneLoop(game.me);
|
||
}
|
||
else{
|
||
game.stoneLoop(game.enemy);
|
||
}
|
||
},
|
||
element:{
|
||
content:{
|
||
addFellowAuto:function(){
|
||
"step 0"
|
||
if(!player.canAddFellow()){
|
||
event.finish();
|
||
return;
|
||
}
|
||
var name=event.fellowName;
|
||
var added=false;
|
||
var i;
|
||
for(i=0;i<player.actcharacterlist.length;i++){
|
||
if(player.actcharacterlist[i]===null){
|
||
added=true;
|
||
break;
|
||
}
|
||
}
|
||
var pos=i+4;
|
||
if(player!=game.me){
|
||
pos+=4;
|
||
}
|
||
var fellow=game.addFellow(pos,name,'zoominanim');
|
||
fellow.side=player.side;
|
||
fellow.classList.add('turnedover');
|
||
player.actcharacterlist[i]=fellow;
|
||
event.source=fellow;
|
||
var num=lib.character[name][5][1];
|
||
if(num){
|
||
fellow.draw(num,false);
|
||
}
|
||
player.updateActCount();
|
||
if(fellow.hasSkillTag('noPhaseDelay')||event.delay===false){
|
||
fellow.noPhaseDelay=true;
|
||
}
|
||
// player.line(fellow,'green');
|
||
"step 1"
|
||
event.trigger('fellow');
|
||
event.result=event.source;
|
||
}
|
||
},
|
||
stonecharacter:{
|
||
type:'stonecharacter',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
chongzhu:true,
|
||
notarget:true,
|
||
content:function(){
|
||
"step 0"
|
||
var name=card.name.slice(0,card.name.indexOf('_stonecharacter'));
|
||
var added=false;
|
||
var i;
|
||
for(i=0;i<player.actcharacterlist.length;i++){
|
||
if(player.actcharacterlist[i]===null){
|
||
added=true;
|
||
break;
|
||
}
|
||
}
|
||
var pos=i+4;
|
||
if(player!=game.me){
|
||
pos+=4;
|
||
}
|
||
var fellow=game.addFellow(pos,name);
|
||
fellow.side=player.side;
|
||
fellow.classList.add('turnedover');
|
||
player.actcharacterlist[i]=fellow;
|
||
fellow.$gain2(card);
|
||
event.source=fellow;
|
||
var num=lib.character[name][5][1];
|
||
if(num){
|
||
fellow.draw(num,false);
|
||
}
|
||
player.updateActCount();
|
||
if(fellow.hasSkillTag('noPhaseDelay')){
|
||
fellow.noPhaseDelay=true;
|
||
}
|
||
"step 1"
|
||
event.trigger('fellow');
|
||
},
|
||
ai:{
|
||
order:8.5,
|
||
useful:[5.5,1],
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
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=0;
|
||
}
|
||
player.actused=0;
|
||
if(!player.actcharacterlist){
|
||
player.actcharacterlist=[];
|
||
}
|
||
player.updateActCount();
|
||
}
|
||
},
|
||
changeRage:function(num){
|
||
if(_status.mode!='deck') return;
|
||
if(!_status.rageEnabled) return;
|
||
var popup=null;
|
||
if(this.side==game.me.side){
|
||
if(_status.friendRage<100){
|
||
popup=ui.friendBar;
|
||
}
|
||
_status.friendRage+=num;
|
||
if(_status.friendRage<0){
|
||
_status.friendRage=0;
|
||
}
|
||
if(_status.friendRage>=100){
|
||
_status.friendRage=100;
|
||
ui.friendBar.fillnode.style.top='-50%';
|
||
ui.friendBar.classList.add('full');
|
||
}
|
||
else{
|
||
ui.friendBar.fillnode.style.top=(100-_status.friendRage)+'%';
|
||
ui.friendBar.classList.remove('full');
|
||
}
|
||
}
|
||
else{
|
||
if(_status.enemyRage<100){
|
||
popup=ui.enemyBar;
|
||
}
|
||
_status.enemyRage+=num;
|
||
if(_status.enemyRage<0){
|
||
_status.enemyRage=0;
|
||
}
|
||
if(_status.enemyRage>=100){
|
||
_status.enemyRage=100;
|
||
ui.enemyBar.fillnode.style.top='-50%';
|
||
ui.enemyBar.classList.add('full');
|
||
}
|
||
else{
|
||
ui.enemyBar.fillnode.style.top=(100-_status.enemyRage)+'%';
|
||
ui.enemyBar.classList.remove('full');
|
||
}
|
||
}
|
||
if(num>0&&popup){
|
||
var node=ui.create.div('.skillbartext',num.toString(),popup);
|
||
ui.refresh(node);
|
||
node.style.opacity=1;
|
||
setTimeout(function(){
|
||
node.delete();
|
||
},700);
|
||
}
|
||
},
|
||
drawDeck:function(num,log){
|
||
if(!num){
|
||
num=1;
|
||
}
|
||
var cards=this.getDeckCards(num);
|
||
if(log==false){
|
||
this.directgain(cards);
|
||
}
|
||
else if(log==true){
|
||
this.directgain(cards);
|
||
game.log(this,'从牌库中获得了'+get.cnNumber(num)+'张牌');
|
||
}
|
||
else{
|
||
this.gain(cards,'draw');
|
||
game.log(this,'从牌库中获得了'+get.cnNumber(num)+'张牌');
|
||
}
|
||
return cards;
|
||
},
|
||
updateActCount:function(used,countx,current){
|
||
if(_status.video){
|
||
this.actcount=countx||2;
|
||
}
|
||
else{
|
||
game.addVideo('updateActCount',this,[used,this.actcount,this.getActCount()]);
|
||
}
|
||
var maxcount,overflow2;
|
||
if(lib.config.layout=='default'||used=='outphase'||_status.currentPhase!=this){
|
||
maxcount=this.actcount;
|
||
}
|
||
else{
|
||
if(_status.video){
|
||
maxcount=this.actcount-(current||0);
|
||
}
|
||
else{
|
||
maxcount=this.actcount-this.getActCount();
|
||
}
|
||
if(this.actcount>maxcount){
|
||
maxcount=this.actcount;
|
||
}
|
||
if(maxcount>12){
|
||
maxcount=this.actcount+1;
|
||
this.node.actcount.classList.add('overflow2');
|
||
}
|
||
else{
|
||
this.node.actcount.classList.remove('overflow2');
|
||
}
|
||
}
|
||
for(var i=0;i<12;i++){
|
||
if(maxcount>this.node.actcount.childElementCount){
|
||
ui.create.div(this.node.actcount);
|
||
}
|
||
else if(maxcount<this.node.actcount.childElementCount){
|
||
this.node.actcount.lastChild.remove();
|
||
}
|
||
else{
|
||
break;
|
||
}
|
||
}
|
||
if(used!==false){
|
||
var count;
|
||
if(_status.video){
|
||
count=this.actcount-(current||0);
|
||
}
|
||
else{
|
||
count=this.actcount-this.getActCount();
|
||
}
|
||
for(var i=0;i<this.node.actcount.childElementCount;i++){
|
||
if(i<count){
|
||
this.node.actcount.childNodes[i].classList.remove('lost');
|
||
if(i>=this.actcount){
|
||
this.node.actcount.childNodes[i].classList.add('overflow');
|
||
}
|
||
else{
|
||
this.node.actcount.childNodes[i].classList.remove('overflow');
|
||
}
|
||
}
|
||
else{
|
||
this.node.actcount.childNodes[i].classList.add('lost');
|
||
this.node.actcount.childNodes[i].classList.remove('overflow');
|
||
}
|
||
}
|
||
}
|
||
},
|
||
getAct:function(){
|
||
return this.actcount-this.getActCount();
|
||
},
|
||
hasFellowSkill:function(skill,exclude){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(exclude&&game.players[i]==this) continue;
|
||
if(game.players[i].hasSkill(skill)&&
|
||
game.players[i].side==this.side){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
countFellowSkill:function(skill,exclude){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(exclude&&game.players[i]==this) continue;
|
||
if(game.players[i].hasSkill(skill)&&
|
||
game.players[i].side==this.side){
|
||
num++;
|
||
}
|
||
}
|
||
return num;
|
||
},
|
||
canAddFellow:function(){
|
||
if(!this.actcharacterlist) return false;
|
||
if(this.actcharacterlist.length<4) return true;
|
||
for(var i=0;i<this.actcharacterlist.length;i++){
|
||
if(this.actcharacterlist[i]===null) return true;
|
||
}
|
||
return false;
|
||
},
|
||
getDeckCards:function(num){
|
||
if(typeof num!='number'){
|
||
num=1;
|
||
}
|
||
if(!this.deckCards){
|
||
return get.cards(num);
|
||
}
|
||
var player=this;
|
||
for(var i=0;i<5;i++){
|
||
if(player.deckCards.length<num){
|
||
get.deck(player,player.deck);
|
||
}
|
||
else{
|
||
break;
|
||
}
|
||
}
|
||
var list=[];
|
||
for(var i=0;i<num;i++){
|
||
list.push(player.deckCards.randomRemove());
|
||
}
|
||
return list;
|
||
},
|
||
getActCount:function(){
|
||
return get.cardCount(true,this)+(this.actused||0)
|
||
},
|
||
getLeader:function(){
|
||
return this.side==game.me.side?game.me:game.enemy;
|
||
},
|
||
getEnemy:function(){
|
||
return this.side!=game.me.side?game.me:game.enemy;
|
||
},
|
||
hasFellow:function(){
|
||
if(!this.actcharacterlist) return false;
|
||
for(var i=0;i<this.actcharacterlist.length;i++){
|
||
if(this.actcharacterlist[i]) return true;
|
||
}
|
||
return false;
|
||
},
|
||
getFellow:function(enemy){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()){
|
||
if(enemy){
|
||
if(game.players[i].side!=this.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
else{
|
||
if(game.players[i].side==this.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return list;
|
||
},
|
||
countFellow:function(){
|
||
if(!this.actcharacterlist) return 0;
|
||
var num=0;
|
||
for(var i=0;i<this.actcharacterlist.length;i++){
|
||
if(this.actcharacterlist[i]) num++;
|
||
}
|
||
return num;
|
||
},
|
||
addFellow:function(fellow){
|
||
if(!this.actcharacterlist) return this;
|
||
var i;
|
||
for(i=0;i<this.actcharacterlist.length;i++){
|
||
if(this.actcharacterlist[i]===null){
|
||
break;
|
||
}
|
||
}
|
||
this.actcharacterlist[i]=fellow;
|
||
game.addVideo('stonePosition',null,[fellow.dataset.position,i+4+(this==game.me?0:4)]);
|
||
fellow.dataset.position=i+4+(this==game.me?0:4);
|
||
return this;
|
||
},
|
||
addFellowAuto:function(name,delay){
|
||
var next=game.createEvent('addFellowAuto');
|
||
next.player=this;
|
||
next.fellowName=name;
|
||
if(typeof delay=='boolean'){
|
||
next.delay=delay;
|
||
}
|
||
next.setContent('addFellowAuto');
|
||
},
|
||
removeFellow:function(fellow){
|
||
if(!this.actcharacterlist) return this;
|
||
var index=this.actcharacterlist.indexOf(fellow);
|
||
if(index>=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.getId();
|
||
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());
|
||
}
|
||
player.maxHp++;
|
||
player.hp++;
|
||
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'){
|
||
var nd=game.enemy.countFellow();
|
||
if(nd){
|
||
player.draw(3+nd,{drawDeck:nd},false);
|
||
}
|
||
else{
|
||
player.draw(3,false);
|
||
}
|
||
}
|
||
else{
|
||
player.draw(3+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.getId();
|
||
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());
|
||
}
|
||
player.maxHp++;
|
||
player.hp++;
|
||
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();
|
||
if(_status.mode=='deck'){
|
||
var nd=game.me.countFellow();
|
||
if(nd){
|
||
player.draw(3+nd,{drawDeck:nd},false);
|
||
}
|
||
else{
|
||
player.draw(3,false);
|
||
}
|
||
}
|
||
else{
|
||
player.draw(3+game.me.countFellow(),false);
|
||
}
|
||
game.resume();
|
||
game.updateStatusCount();
|
||
},lib.config.duration);
|
||
}
|
||
}
|
||
if(source&&source.side!=this.side&&!source.isMin()){
|
||
if(_status.mode=='deck'){
|
||
source.drawDeck();
|
||
}
|
||
else{
|
||
source.draw();
|
||
}
|
||
source.actused--;
|
||
source.updateActCount();
|
||
}
|
||
game.dead.remove(this);
|
||
game.arrangePlayers();
|
||
this.getLeader().removeFellow(this);
|
||
setTimeout(function(){
|
||
dead.delete();
|
||
},500);
|
||
}
|
||
}
|
||
},
|
||
beastList:['stone_misha','stone_leiouke','stone_huofu','stone_caoyuanshi','stone_jiewangzhu',
|
||
'stone_huangjialeixiang','stone_damoshatuo','stone_tujiu','stone_senlinlang',
|
||
'stone_fennuxiaoji','stone_juxingchanchu','stone_yanjingshe','stone_yuanhou'
|
||
],
|
||
cardPack:{
|
||
mode_stone:[
|
||
'spell_xiaoshi','spell_chenmo','spell_morizaihuo','spell_shengerpingdeng','spell_jingshenkongzhi','spell_anyingkuangluan',
|
||
'spell_binghuan','spell_yanmie','spell_zhiliaozhichu','spell_wangzhezhufu','spell_diyulieyan','spell_zhiliaoshui',
|
||
'spell_hanbingjian','spell_huoqiushu','spell_bianxingshu','spell_aoshuzhihui','spell_baofengxue','spell_lieyanfengbao',
|
||
'spell_shandianfengbao','spell_chazhuangshandian','spell_yaoshu','spell_shixue','spell_lianhuanbaolie','spell_yexinglanghun',
|
||
'spell_fuchouzhinu','spell_liliangzhufu','spell_fennuzhichui','spell_fengxian','spell_zuozhandongyuan','spell_shengliaoshu',
|
||
'spell_cigu','spell_modaoyou','spell_jianrenluanwu','spell_daoshan','spell_cisha','spell_sijidaifa',
|
||
'spell_huotigenxu','spell_wuyashenxiang','spell_ziranzhili','spell_yemanpaoxiao','spell_hengsao','spell_yexingchengzhang',
|
||
'spell_xishengqiyue','spell_zuzhou','spell_xiaoguibaopo','spell_emozhinu','spell_anyinglieyan','spell_liliangdaijia',
|
||
'spell_shenshengxinxing','spell_shengguangzhadan','spell_maizang','spell_xinlingshijie','spell_naluzhiguang','spell_zhiliaozhihuan',
|
||
'spell_nuxi','spell_dunpaimengji','spell_zhansha','spell_nuhuozhongshao','spell_xuanfengzhan','spell_juemingluandou',
|
||
'spell_lierenyinji','spell_kuaisusheji','spell_guanmenfanggou','spell_zhaohuanchongwu','spell_zidanshangtang','spell_duochongsheji',
|
||
'spell_xianzuzhihun','spell_xianzuzhaohuan','spell_fengnu','spell_shihuawuqi','spell_xianzuzhishi','spell_rongyanbaolie',
|
||
'spell_laojiuhuoba','spell_chirehuoba','spell_aoshufeidan','spell_canying','spell_yanbaoshu','spell_hanbingpingzhang','spell_jingxiang',
|
||
'spell_mengun','spell_jipao','spell_beici','spell_weijisifu','spell_anzhongpohuai','spell_piaoqie',
|
||
'spell_conglinzhihun','spell_heiandiyu','spell_fugen','spell_xingchenzhuiluo','spell_fennu','spell_ziyang',
|
||
'spell_shalumingling','spell_tianjiangzhuqun','spell_tanxianmao','spell_dubiao','spell_qiangfengsheji','spell_zhuizongshu',
|
||
'spell_zhenyanshu','spell_enzeshu','spell_anyingxingtai','spell_kuaisuzhiliao','spell_kongxinshu','spell_xinlinghanbao',
|
||
'spell_jinyingduijue','spell_zhihuizhufu','spell_shenshengfennu','spell_yongshizhufu','spell_shenpan','spell_zhengqianghaosheng',
|
||
'spell_zhongnian','spell_fuchoudaji','spell_yingyongdaji','spell_zhandounuhuo','spell_chongfeng','spell_kuangbao',
|
||
'spell_linghunhongxi','spell_siwangchanrao','spell_emozhixin','spell_fushishu','spell_ansezhadan','spell_heianqiyue'
|
||
]
|
||
},
|
||
characterPack:{
|
||
mode_stone:{
|
||
stone_tutengyongshi:['male','wei',4,['shaman_jili'],['minskin','stone'],[4,2,'shaman']],
|
||
stone_xuejuren:['male','wei',2,['shaman_xueju'],['minskin','stone'],[1,1,'shaman']],
|
||
stone_tuyuansu:['male','qun',5,['chaofeng'],['minskin','stone'],[5,4,'shaman']],
|
||
stone_huoyuansu:['male','shu',3,['shaman_huoxi'],['minskin','stone'],[4,3,'shaman']],
|
||
stone_fachao:['male','wei',3,['shaman_tuteng','shaman_fachao'],['minskin','stone'],[3,0,'shaman']],
|
||
stone_huoshe:['male','shu',3,['shaman_tuteng','shaman_huoshe'],['minskin','stone'],[3,0,'shaman']],
|
||
stone_huoli:['male','wei',3,['shaman_tuteng','shaman_huoli'],['minskin','stone'],[2,0,'shaman']],
|
||
stone_huoyanweishi:['male','shu',4,['shaman_zhuhuo'],['minskin','stone'],[4,1,'shaman']],
|
||
stone_tutengshi:['female','wei',2,['shaman_peiyu'],['minskin','stone'],[3,3,'shaman']],
|
||
stone_shachuisaman:['male','qun',3,['shaman_fengnu'],['minskin','stone'],[4,4,'shaman']],
|
||
stone_wanshiyuansu:['male','qun',3,['shaman_zoushi'],['minskin','stone'],[3,1,'shaman']],
|
||
stone_shalinxingzhe:['male','qun',4,['shaman_anhun'],['minskin','stone'],[4,2,'shaman']],
|
||
|
||
stone_kuangyedoushi:['male','wu',3,['druid_nuhuo'],['minskin','stone'],[4,2,'druid']],
|
||
stone_conglinshouwei:['male','wu',3,['druid_huwei'],['minskin','stone'],[4,2,'druid']],
|
||
stone_baohuzhishu:['male','qun',6,['chaofeng'],['minskin','stone'],[6,4,'druid']],
|
||
stone_liebao:['male','wei',3,['stone_chongfeng'],['minskin','stone'],[3,2,'druid']],
|
||
stone_zongxiong:['male','shu',4,['chaofeng'],['minskin','stone'],[4,2,'druid']],
|
||
stone_baoqishi:['female','wei',2,['druid_chengzhang'],['minskin','stone'],[2,2,'druid']],
|
||
stone_renyaqishi:['female','wei',1,['druid_renya'],['minskin','stone'],[1,1,'druid']],
|
||
stone_huangyeqishi:['male','wei',4,['druid_chicheng'],['minskin','stone'],[5,2,'druid']],
|
||
stone_huoshanxiemu:['male','wei',3,['druid_juhuo','chaofeng'],['minskin','stone'],[5,6,'druid']],
|
||
stone_conglinxiaoshou:['male','wei',3,['druid_yuehuo'],['minskin','stone'],[4,4,'druid']],
|
||
stone_lindishuyao:['female','wei',3,['druid_yeyou'],['minskin','stone'],[3,3,'druid']],
|
||
stone_xunmenglong:['male','wei',2,['druid_qicheng'],['minskin','stone'],[3,3,'druid']],
|
||
|
||
stone_caoyuanshi:['male','qun',5,['hunter_nuhou'],['minskin','stone'],[5,2,'hunter']],
|
||
stone_leiouke:['male','shu',2,['hunter_zhanhuo'],['minskin','stone'],[3,1,'hunter']],
|
||
stone_huofu:['male','qun',2,['stone_chongfeng'],['minskin','stone'],[3,4,'hunter']],
|
||
stone_misha:['male','shu',3,['chaofeng'],['minskin','stone'],[3,3,'hunter']],
|
||
stone_jiewangzhu:['male','wu',1,['hunter_jiewang'],['minskin','stone'],[1,2,'hunter']],
|
||
stone_xunshoushi:['male','qun',2,['hunter_xunshou'],['minskin','stone'],[4,3,'hunter']],
|
||
stone_senlinlang:['male','qun',1,['hunter_qunxi'],['minskin','stone'],[1,2,'hunter']],
|
||
stone_tujiu:['male','qun',3,['hunter_mishi'],['minskin','stone'],[3,2,'hunter']],
|
||
stone_muyangren:['male','qun',3,['hunter_muyang'],['minskin','stone'],[4,3,'hunter']],
|
||
stone_jujishou:['male','qun',2,['hunter_juji'],['minskin','stone'],[2,2,'hunter']],
|
||
stone_damoshatuo:['male','qun',3,['hunter_dusha'],['minskin','stone'],[3,3,'hunter']],
|
||
stone_huangjialeixiang:['male','qun',2,['hunter_chuanlin'],['minskin','stone'],[2,3,'hunter']],
|
||
|
||
stone_shuiyuansu:['male','wei',4,['mage_bingdong'],['minskin','stone'],[4,2,'mage']],
|
||
stone_wushixuetu:['female','wu',1,['mage_zhufa'],['minskin','stone'],[1,2,'mage']],
|
||
stone_huoyao:['male','shu',3,['mage_lieyan'],['minskin','stone'],[3,1,'mage']],
|
||
stone_falifulong:['male','shu',2,['mage_tunfa'],['minskin','stone'],[1,1,'mage']],
|
||
stone_yingxiongzhihun:['male','wei',1,['mage_minghuo'],['minskin','stone'],[1,2,'mage']],
|
||
stone_shifazhe:['male','qun',3,['mage_shifa'],['minskin','stone'],[3,3,'mage']],
|
||
stone_aoshushi:['male','qun',3,['mage_aoshu'],['minskin','stone'],[3,2,'mage']],
|
||
stone_faqishi:['male','qun',4,['mage_jili'],['minskin','stone'],[4,2,'mage']],
|
||
stone_fuhuokaijia:['male','qun',3,['mage_gushou'],['minskin','stone'],[3,3,'mage']],
|
||
stone_kaodalalong:['male','qun',4,['mage_yufa'],['minskin','stone'],[5,4,'mage']],
|
||
stone_yanshushi:['male','qun',2,['mage_yanshu'],['minskin','stone'],[4,4,'mage']],
|
||
stone_xulingwushi:['male','qun',2,['mage_pingxu'],['minskin','stone'],[3,3,'mage']],
|
||
|
||
stone_hudunren:['male','qun',2,['paladin_hudun'],['minskin','stone'],[2,2,'paladin']],
|
||
stone_junxuguan:['male','qun',3,['paladin_buji'],['minskin','stone'],[4,1,'paladin']],
|
||
stone_yurenqishi:['male','qun',2,['paladin_zhaochao'],['minskin','stone'],[4,2,'paladin']],
|
||
stone_chidunweishi:['male','qun',3,['paladin_chidun'],['minskin','stone'],[3,2,'paladin']],
|
||
stone_liewangshouwei:['male','qun',5,['paladin_shouwei'],['minskin','stone'],[5,2,'paladin']],
|
||
stone_longwangpeiou:['female','qun',4,['paladin_zhaohuan'],['minskin','stone'],[5,4,'paladin']],
|
||
stone_baoweizhe:['male','qun',2,['paladin_baowei'],['minskin','stone'],[2,1,'paladin']],
|
||
stone_guiqishi:['male','qun',5,['paladin_tuxi'],['minskin','stone'],[5,4,'paladin']],
|
||
stone_shenmiqishou:['male','qun',4,['paladin_miying'],['minskin','stone'],[5,4,'paladin']],
|
||
stone_shixiangweishi:['female','qun',3,['paladin_huashi'],['minskin','stone'],[3,3,'paladin']],
|
||
stone_xuefanzhanshi:['male','qun',3,['paladin_jinghua'],['minskin','stone'],[4,4,'paladin']],
|
||
stone_xunmashi:['male','qun',3,['paladin_moma'],['minskin','stone'],[3,2,'paladin']],
|
||
|
||
stone_lieyanxiaogui:['male','qun',2,['warlock_nonghuo'],['minskin','stone'],[1,4,'warlock']],
|
||
stone_xiaoguishouling:['male','qun',3,['warlock_zhaogui'],['minskin','stone'],[3,1,'warlock']],
|
||
stone_xiaogui:['male','qun',1,[],['minskin','stone','stonehidden'],[1,1]],
|
||
stone_kongjuzhanma:['male','qun',1,['warlock_yongsheng'],['minskin','stone'],[3,1,'warlock']],
|
||
stone_morishouwei:['male','qun',4,['stone_chongfeng','warlock_zaihuo'],['minskin','stone'],[4,4,'warlock']],
|
||
stone_xukongxingzhe:['male','qun',2,['chaofeng'],['minskin','stone'],[1,1,'warlock']],
|
||
stone_diyuhuo:['male','qun',4,['warlock_yuhuo'],['minskin','stone'],[5,4,'warlock']],
|
||
stone_diyuhuox:['male','qun',2,[],['minskin','stone','stonehidden'],[2,2,'warlock']],
|
||
stone_heishitanfan:['male','qun',2,['warlock_anyu'],['minskin','stone'],[2,2,'warlock']],
|
||
stone_zhaohuanzhe:['male','qun',3,['warlock_zhaohuan'],['minskin','stone'],[4,2,'warlock']],
|
||
stone_meimo:['male','qun',3,['warlock_huanmeng'],['minskin','stone'],[2,3,'warlock']],
|
||
stone_tongkunvwang:['male','qun',2,['warlock_tongku'],['minskin','stone'],[2,1,'warlock']],
|
||
stone_xukongkongmo:['male','qun',3,['warlock_tunshi'],['minskin','stone'],[3,3,'warlock']],
|
||
stone_fukongmoyan:['male','qun',4,['warlock_shijie'],['minskin','stone'],[5,4,'warlock']],
|
||
|
||
stone_zhihuiguan:['female','qun',2,['warrior_tongling'],['minskin','stone'],[3,2,'warrior']],
|
||
stone_kuangzhanshi:['male','qun',2,['warrior_baoluan'],['minskin','stone'],[3,1,'warrior']],
|
||
stone_zhujiashi:['male','qun',2,['warrior_zhujia'],['minskin','stone'],[2,1,'warrior']],
|
||
stone_jiangong:['male','qun',2,['warrior_jiangong'],['minskin','stone'],[2,2,'warrior']],
|
||
stone_chidunshinv:['female','qun',4,['warrior_tidun'],['minskin','stone'],[5,4,'warrior']],
|
||
stone_yuanhou:['male','qun',2,['chaofeng'],['minskin','stone'],[2,3,'warrior']],
|
||
stone_heiyaoyaoshou:['male','qun',4,['warrior_heiyao'],['minskin','stone'],[5,4,'warrior']],
|
||
stone_honglongyongshi:['male','qun',2,['warrior_fenyong'],['minskin','stone'],[2,3,'warrior']],
|
||
stone_peilianshi:['male','qun',2,['chaofeng','warrior_peilian'],['minskin','stone'],[2,2,'warrior']],
|
||
stone_jingyingweishi:['male','qun',3,['stone_chongfeng'],['minskin','stone'],[4,3,'warrior']],
|
||
stone_mengmaren:['male','qun',3,['warrior_chuanci'],['minskin','stone'],[4,4,'warrior']],
|
||
stone_zhifuzhe:['male','qun',2,['warrior_zhifu'],['minskin','stone'],[3,1,'warrior']],
|
||
|
||
stone_daomufeizei:['male','qun',3,['rogue_xunbao'],['minskin','stone'],[4,3,'rogue']],
|
||
stone_qiezei:['male','qun',2,['rogue_touqie'],['minskin','stone'],[2,2,'rogue']],
|
||
stone_heitieairen:['male','qun',2,['rogue_qiancang'],['minskin','stone'],[4,3,'rogue']],
|
||
stone_tegong:['male','qun',2,['rogue_touxi'],['minskin','stone'],[3,3,'rogue']],
|
||
stone_haidaotoumu:['male','qun',2,['rogue_zhaomu'],['minskin','stone'],[2,2,'rogue']],
|
||
stone_haidao:['male','qun',1,[],['minskin','stone','stonehidden'],[1,2,'rogue']],
|
||
stone_cike:['male','qun',1,['rogue_cisha','stone_qianxing'],['minskin','stone'],[1,1,'rogue']],
|
||
stone_duyanhaidao:['male','qun',2,['rogue_duxing'],['minskin','stone'],[3,4,'rogue']],
|
||
stone_gangtiewushi:['male','qun',2,['rogue_shoudao'],['minskin','stone'],[3,2,'rogue']],
|
||
stone_lifaji:['male','qun',2,['rogue_lifa'],['minskin','stone'],[2,2,'rogue']],
|
||
stone_shihualong:['male','qun',1,['rogue_fusheng'],['minskin','stone'],[3,2,'rogue']],
|
||
stone_xiushuihaidao:['male','qun',1,['rogue_jielue'],['minskin','stone'],[1,2,'rogue']],
|
||
stone_zousishangfan:['male','qun',3,['rogue_jiaoyi'],['minskin','stone'],[4,3,'rogue']],
|
||
|
||
stone_beijunmushi:['male','qun',2,['priest_shengliao'],['minskin','stone'],[1,1,'priest']],
|
||
stone_guanliyuan:['male','qun',2,['priest_faxian'],['minskin','stone'],[2,1,'priest']],
|
||
stone_linghunjisi:['female','qun',4,['priest_hunwu'],['minskin','stone'],[4,2,'priest']],
|
||
stone_heianjiaotu:['male','qun',3,['priest_zhufu'],['minskin','stone'],[3,2,'priest']],
|
||
stone_guangyaozhizi:['male','qun',3,['priest_guangyao'],['minskin','stone'],[5,3,'priest']],
|
||
stone_longmianjiaoguan:['male','qun',2,['priest_xundao'],['minskin','stone'],[2,2,'priest']],
|
||
stone_shengdianzhishi:['male','qun',4,['priest_puzhao'],['minskin','stone'],[5,4,'priest']],
|
||
stone_suoxiaojishi:['male','qun',2,['priest_suoxiao'],['minskin','stone'],[2,2,'priest']],
|
||
stone_anyingzisi:['male','qun',3,['priest_shixin'],['minskin','stone'],[4,4,'priest']],
|
||
stone_guangmingquan:['male','qun',3,['priest_shengshui'],['minskin','stone'],[2,0,'priest']],
|
||
stone_muguangchulong:['male','qun',2,['priest_muguang'],['minskin','stone'],[1,1,'priest']],
|
||
stone_shenshengyongshi:['male','qun',3,['priest_shengguang'],['minskin','stone'],[4,3,'priest']],
|
||
|
||
stone_zhongshi:['male','wei',1,['stone_zhongshi1'],['minskin','stone'],[1,2]],
|
||
stone_zhucangzhe:['male','wei',1,['stone_zhucangzhe1'],['minskin','stone'],[1,2]],
|
||
stone_huoqiangshou:['male','wei',3,['stone_huoqiangshou1'],['minskin','stone'],[3,1]],
|
||
|
||
stone_lansaizhanshi:['male','shu',1,['stone_chongfeng'],['minskin','stone'],[1,2]],
|
||
stone_kutongsiseng:['male','shu',1,['stone_kutongsiseng1'],['minskin','stone'],[1,2]],
|
||
stone_yuanguanying:['male','shu',3,['stone_yuanguanying1'],['minskin','stone'],[3,1]],
|
||
|
||
stone_dijieshicong:['male','wu',2,['stone_dijieshicong1'],['minskin','stone'],[1,1]],
|
||
stone_yaosaishouwei:['male','wu',2,['stone_yaosaishouwei1'],['minskin','stone'],[1,1]],
|
||
stone_famingjia:['male','wu',3,['stone_famingjia1'],['minskin','stone'],[3,1]],
|
||
|
||
stone_chilundashi:['male','qun',2,['stone_chilundashi1'],['minskin','stone'],[1,1]],
|
||
stone_hanguangzhizhe:['male','qun',2,['stone_hanguangzhizhe1'],['minskin','stone'],[2,2]],
|
||
stone_aihaozhihun:['male','qun',3,['stone_aihaozhihun1'],['minskin','stone'],[3,1]],
|
||
|
||
stone_fennuxiaoji:['male','qun',1,['stone_fennuxiaoji1'],['minskin','stone'],[1,2]],
|
||
stone_juxingchanchu:['male','qun',2,['stone_juxingchanchu1'],['minskin','stone'],[2,1]],
|
||
stone_wuyi:['male','qun',1,['jijiu'],['minskin','stone'],[2,2]],
|
||
stone_langren:['male','qun',1,['stone_qianxing'],['minskin','stone'],[1,2]],
|
||
stone_shishigui:['male','qun',2,['stone_shishigui1'],['minskin','stone'],[2,1]],
|
||
|
||
stone_fatiaozhuru:['female','qun',1,['stone_fatiaozhuru1'],['minskin','stone'],[1,2]],
|
||
stone_mingguangjisi:['female','wu',2,['shushen'],['minskin','stone'],[2,1]],
|
||
stone_nianqingjisi:['female','wei',2,['stone_zhufu'],['minskin','stone'],[2,1]],
|
||
stone_aomishouwei:['female','qun',1,['biyue'],['minskin','stone'],[2,2]],
|
||
stone_yanjingshe:['female','qun',2,['stone_yanjingshe1'],['minskin','stone'],[3,2]],
|
||
stone_zhiyuzhe:['female','qun',3,['stone_zhiyu'],['minskin','stone'],[3,1]],
|
||
stone_mafengzhuru:['female','qun',1,['stone_mafengzhuru1'],['minskin','stone'],[1,2]],
|
||
|
||
stone_shumiao:['none','wu',1,[],['minskin','stone','stonehidden'],[1,1]],
|
||
stone_shuren:['none','wu',2,['stone_chongfeng','stone_zibao'],['minskin','stone','stonehidden'],[2,2]],
|
||
stone_shurenx:['none','wu',2,[],['minskin','stone','stonehidden'],[2,2]],
|
||
stone_shurenxx:['none','wu',2,['chaofeng'],['minskin','stone','stonehidden'],[2,2]],
|
||
stone_youlinglang:['none','qun',2,['chaofeng'],['minskin','stone','stonehidden'],[2,2]],
|
||
stone_xiaojingling:['none','qun',1,['xuying'],['minskin','stone','stonehidden'],[1,1]],
|
||
stone_zhumo:['none','qun',2,[],['minskin','stone','stonehidden'],[2,2]],
|
||
stone_jingxiang:['none','qun',2,['stone_jingxiang','chaofeng'],['minskin','stone','stonehidden'],[2,0]],
|
||
stone_shengguanghuwei:['female','qun',2,['priest_shengguang'],['minskin','stone','stonehidden'],[1,1]],
|
||
stone_liegou:['none','qun',1,['stone_chongfeng'],['minskin','stone','stonehidden'],[1,2]],
|
||
stone_mianyang:['none','qun',1,['mage_mianyang'],['minskin','stone','stonehidden'],[1,0]],
|
||
stone_qingwa:['none','wu',1,['shaman_qingwa'],['minskin','stone','stonehidden'],[1,0]],
|
||
stone_shengjiachong:['none','qun',1,['chaofeng'],['minskin','stone','stonehidden'],[1,1]],
|
||
|
||
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,0]],
|
||
|
||
stone_siwangzhiyi:['male','qun',4,['stone_mieshi'],['minskin','stone','stonehidden','stonelegend'],[6,4]],
|
||
stone_alaikesita:['female','qun',4,['stone_fushi'],['minskin','stone','stonehidden','stonelegend'],[6,4]],
|
||
stone_yisela:['female','qun',4,['stone_chenshui'],['minskin','stone','stonehidden','stonelegend'],[6,2]],
|
||
stone_nuoziduomu:['male','qun',4,['stone_shixu'],['minskin','stone','stonehidden','stonelegend'],[6,4]],
|
||
stone_maligousi:['male','qun',4,['stone_mowang'],['minskin','stone','stonehidden','stonelegend'],[6,2]],
|
||
|
||
stone_aolajier:['male','qun',4,['stone_chongfeng','shaman_fengnu','paladin_hudun','chaofeng'],['minskin','stone','stonehidden','stonelegend_shaman'],[6,4]],
|
||
stone_andongni:['male','qun',4,['stone_zhiyin'],['minskin','stone','stonehidden','stonelegend_mage'],[6,4]],
|
||
stone_jialakesi:['male','qun',6,['stone_bianshen'],['minskin','stone','stonehidden','stonelegend_warlock'],[6,0]],
|
||
stone_jialakesix:['male','qun',6,['stone_lianyu'],['modeimage','stonehidden','stonespecial']],
|
||
stone_kelushi:['male','qun',5,['stone_chongfeng'],['minskin','stone','stonehidden','stonelegend_hunter'],[6,5]],
|
||
stone_geluomashi:['male','qun',4,['stone_chongfeng','stone_jinu'],['minskin','stone','stonehidden','stonelegend_warrior'],[6,4]],
|
||
stone_aidewen:['male','qun',3,['stone_lianji'],['minskin','stone','stonehidden','stonelegend_rogue'],[6,3]],
|
||
stone_sainaliusi:['male','qun',3,['stone_shenyu'],['minskin','stone','stonehidden','stonelegend_druid'],[6,3]],
|
||
stone_fuding:['male','qun',3,['paladin_hudun','chaofeng','stone_fuchou'],['minskin','stone','stonehidden','stonelegend_paladin'],[6,3]],
|
||
stone_weilun:['male','qun',4,['stone_shenyou'],['minskin','stone','stonehidden','stonelegend_priest'],[6,6]],
|
||
}
|
||
},
|
||
careerList:['mage','shaman','druid','paladin','rogue','priest','hunter','warrior','warlock'],
|
||
game:{
|
||
reserveDead:true,
|
||
bannedcards:['lebu','guiyoujie','xietianzi','lingjiandai','jiguanshu','sifeizhenmian','fengxueren','chuansongmen'],
|
||
onwash:function(){
|
||
if(_status.mode!='deck') return;
|
||
var list=[];
|
||
for(var i=0;i<ui.discardPile.childElementCount;i++){
|
||
var type=get.type(ui.discardPile.childNodes[i]);
|
||
if(type=='stonecard'||type=='stonecharacter'){
|
||
list.push(ui.discardPile.childNodes[i]);
|
||
}
|
||
}
|
||
while(list.length){
|
||
list.shift().remove();
|
||
}
|
||
},
|
||
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.setContent(function(){
|
||
"step 0"
|
||
player.phase();
|
||
event.num=0;
|
||
"step 1"
|
||
if(event.num<player.actcharacterlist.length){
|
||
var current=player.actcharacterlist[event.num];
|
||
if(current){
|
||
current.phase();
|
||
}
|
||
event.num++;
|
||
event.redo();
|
||
}
|
||
"step 2"
|
||
if(event.player==game.me){
|
||
event.player=game.enemy;
|
||
}
|
||
else{
|
||
event.player=game.me;
|
||
}
|
||
event.goto(0);
|
||
});
|
||
},
|
||
initStone:function(){
|
||
var list=[],list2=[],list3={},list4={};
|
||
for(var i=0;i<lib.careerList.length;i++){
|
||
list3[lib.careerList[i]]=[];
|
||
list4[lib.careerList[i]]=[];
|
||
}
|
||
var i,j,name;
|
||
for(var i in lib.characterPack.mode_stone){
|
||
lib.character[i]=lib.characterPack.mode_stone[i];
|
||
if(lib.characterPack.mode_stone[i][4].contains('stonespecial')) continue;
|
||
lib.character[i][3].add('stonesha');
|
||
lib.character[i][3].add('stoneshan');
|
||
lib.character[i][3].add('stonedraw');
|
||
name=i+'_stonecharacter';
|
||
lib.card[name]={
|
||
image:'mode/stone/character/'+i,
|
||
stoneact:lib.character[i][5][0],
|
||
career:lib.character[i][5][2]||null
|
||
};
|
||
for(j in lib.element.stonecharacter){
|
||
lib.card[name][j]=lib.element.stonecharacter[j];
|
||
}
|
||
lib.translate[name]=get.translation(i);
|
||
lib.translate[name+'_info']=get.skillintro(i);
|
||
if(lib.character[i][4].contains('stonehidden')){
|
||
lib.card[name].stonehidden=true;
|
||
continue;
|
||
}
|
||
if(!lib.character[i][5][2]){
|
||
if(lib.character[i][5][0]<3){
|
||
list.push(name);
|
||
}
|
||
else{
|
||
list2.push(name);
|
||
}
|
||
}
|
||
else{
|
||
list3[lib.character[i][5][2]].push(name);
|
||
}
|
||
}
|
||
if(_status.mode=='deck'){
|
||
lib.spells=[];
|
||
var spells=lib.cardPack.mode_stone;
|
||
for(var i=0;i<spells.length;i++){
|
||
if(lib.card[spells[i]].stonehidden) continue;
|
||
if(lib.card[spells[i]].career){
|
||
list4[lib.card[spells[i]].career].push(spells[i]);
|
||
}
|
||
else{
|
||
lib.spells.push(spells[i]);
|
||
}
|
||
}
|
||
lib.careerSpells=list4;
|
||
lib.minions=list.concat(list2);
|
||
lib.careerMinions=list3;
|
||
if(!lib.storage.deckList){
|
||
lib.storage.deckList={};
|
||
}
|
||
}
|
||
else{
|
||
delete game.modPhaseDraw;
|
||
var random_length=parseInt(get.config('random_length').slice(2));
|
||
if(!random_length){
|
||
random_length=80;
|
||
}
|
||
var addedcardcount=Math.ceil(lib.card.list.length/random_length);
|
||
var addedcardcount2=Math.ceil(lib.card.list.length/random_length/2);
|
||
var suit=['heart','diamond','club','spade'];
|
||
while(addedcardcount--){
|
||
for(i=0;i<list.length;i++){
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),list[i]]);
|
||
}
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_shengerpingdeng']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_anyingkuangluan']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_jingshenkongzhi']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_binghuan']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_zuzhou']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_diyulieyan']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_diyulieyan']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_chenmo']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_xishengqiyue']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_zhiliaoshui']);
|
||
}
|
||
while(addedcardcount2--){
|
||
for(i=0;i<list2.length;i++){
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),list2[i]]);
|
||
}
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_morizaihuo']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_zhiliaozhichu']);
|
||
lib.card.list.push([suit.randomGet(),Math.ceil(Math.random()*13),'spell_wangzhezhufu']);
|
||
}
|
||
lib.card.list.randomSort();
|
||
}
|
||
|
||
lib.skill._chongzhu.usable=3;
|
||
for(i in lib.skill){
|
||
if(lib.skill[i].changeSeat){
|
||
lib.skill[i]={};
|
||
if(lib.translate[i+'_info']){
|
||
lib.translate[i+'_info']='此模式下不可用';
|
||
}
|
||
}
|
||
}
|
||
for(i in lib.card){
|
||
if(lib.card[i].type=='equip'){
|
||
lib.card[i].stoneact=0;
|
||
}
|
||
else{
|
||
if(typeof lib.card[i].stoneact==='number'&&!lib.card[i].addinfo){
|
||
lib.card[i].addinfo='消耗: '+lib.card[i].stoneact;
|
||
lib.card[i].addinfomenu='消耗:'+lib.card[i].stoneact;
|
||
}
|
||
}
|
||
}
|
||
|
||
_status.deadfriend=[];
|
||
_status.deadenemy=[];
|
||
game.additionaldead=[];
|
||
},
|
||
chooseCharacter:function(){
|
||
var next=game.createEvent('chooseCharacter',false);
|
||
next.showConfig=true;
|
||
next.setContent(function(){
|
||
"step 0"
|
||
var i;
|
||
var list=[];
|
||
event.list=list;
|
||
for(i in lib.character){
|
||
if(lib.character[i][4]&&lib.character[i][4].contains('minskin')) continue;
|
||
if(lib.character[i][4]&&lib.character[i][4].contains('stonehidden')) continue;
|
||
if(lib.config.forbidstone.contains(i)) continue;
|
||
if(lib.filter.characterDisabled(i)) continue;
|
||
list.push(i);
|
||
}
|
||
list.randomSort();
|
||
var dialog=ui.create.dialog('按顺序选择出场角色'+(get.config('double_character')?'(双将)':''),'hidden');
|
||
dialog.add('0/'+(get.config('double_character')?2:1)*get.config('battle_number'));
|
||
dialog.add([list.slice(0,get.config('battle_number')*2+5),'character']);
|
||
dialog.open();
|
||
|
||
var next=game.me.chooseButton(dialog,true);
|
||
next.selectButton=function(){
|
||
return (get.config('double_character')?2:1)*get.config('battle_number');
|
||
};
|
||
next.custom.add.button=function(){
|
||
if(ui.cheat2&&ui.cheat2.backup) return;
|
||
_status.event.dialog.content.childNodes[0].innerHTML=
|
||
'按顺序选择出场角色'+(get.config('double_character')?'(双将)':'');
|
||
_status.event.dialog.content.childNodes[1].innerHTML=
|
||
ui.selected.buttons.length+'/'+_status.event.selectButton();
|
||
};
|
||
event.changeDialog=function(){
|
||
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
|
||
return;
|
||
}
|
||
if(game.changeCoin){
|
||
game.changeCoin(-3);
|
||
}
|
||
list.randomSort();
|
||
|
||
var buttons=ui.create.div('.buttons');
|
||
var node=_status.event.dialog.buttons[0].parentNode;
|
||
_status.event.dialog.buttons=ui.create.buttons(list.slice(0,get.config('battle_number')*2+5),'character',buttons);
|
||
_status.event.dialog.content.insertBefore(buttons,node);
|
||
buttons.animate('start');
|
||
node.remove();
|
||
|
||
game.uncheck();
|
||
game.check();
|
||
};
|
||
ui.create.cheat=function(){
|
||
_status.createControl=ui.cheat2;
|
||
ui.cheat=ui.create.control('更换',event.changeDialog);
|
||
delete _status.createControl;
|
||
};
|
||
event.dialogxx=ui.create.characterDialog();
|
||
ui.create.cheat2=function(){
|
||
ui.cheat2=ui.create.control('自由选将',function(){
|
||
if(this.dialog==_status.event.dialog){
|
||
if(game.changeCoin){
|
||
game.changeCoin(50);
|
||
}
|
||
this.dialog.close();
|
||
_status.event.dialog=this.backup;
|
||
this.backup.open();
|
||
delete this.backup;
|
||
game.uncheck();
|
||
game.check();
|
||
if(ui.cheat){
|
||
ui.cheat.style.opacity=1;
|
||
}
|
||
}
|
||
else{
|
||
if(game.changeCoin){
|
||
game.changeCoin(-10);
|
||
}
|
||
this.backup=_status.event.dialog;
|
||
_status.event.dialog.close();
|
||
_status.event.dialog=_status.event.parent.dialogxx;
|
||
this.dialog=_status.event.dialog;
|
||
this.dialog.open();
|
||
game.uncheck();
|
||
game.check();
|
||
if(ui.cheat){
|
||
ui.cheat.style.opacity=0.6;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
if(!ui.cheat&&get.config('change_choice'))
|
||
ui.create.cheat();
|
||
if(!ui.cheat2&&get.config('free_choose'))
|
||
ui.create.cheat2();
|
||
"step 1"
|
||
if(ui.cheat){
|
||
ui.cheat.close();
|
||
delete ui.cheat;
|
||
}
|
||
if(ui.cheat2){
|
||
ui.cheat2.close();
|
||
delete ui.cheat2;
|
||
}
|
||
if(ui.deckcontrol){
|
||
ui.deckcontrol.remove();
|
||
delete ui.deckcontrol;
|
||
}
|
||
_status.mylist=result.links.slice(0);
|
||
for(var i=0;i<result.links.length;i++){
|
||
event.list.remove(result.links[i]);
|
||
}
|
||
event.list.randomSort();
|
||
_status.enemylist=event.list.slice(0,result.links.length);
|
||
_status.double_character=get.config('double_character');
|
||
"step 2"
|
||
event.choosingDeck=true;
|
||
if(_status.mode=='deck'){
|
||
_status.deck=[];
|
||
if(!_status.auto){
|
||
ui.auto.hide();
|
||
game.pause();
|
||
var list=_status.mylist.slice(0);
|
||
if(_status.double_character){
|
||
event.dialog=ui.create.dialog('','hidden');
|
||
}
|
||
else{
|
||
event.dialog=ui.create.dialog('','hidden');
|
||
}
|
||
|
||
var buttons=ui.create.div('.buttons',event.dialog.content);
|
||
var currentNode=null;
|
||
var clickButton=function(click){
|
||
if(!event.choosingDeck) return;
|
||
if(click!==false){
|
||
_status.deck.push(this.name);
|
||
}
|
||
if(currentNode){
|
||
currentNode.delete();
|
||
}
|
||
if(list.length){
|
||
var names=[];
|
||
if(_status.double_character){
|
||
names.push(list.shift());
|
||
names.push(list.shift());
|
||
event.dialog.content.firstChild.innerHTML='为'+get.translation(names[0])+'/'+get.translation(names[1])+'选择一个卡组';
|
||
currentNode=ui.create.player().init(names[0],names[1]);
|
||
}
|
||
else{
|
||
names.push(list.shift());
|
||
event.dialog.content.firstChild.innerHTML='为'+get.translation(names[0])+'选择一个卡组';
|
||
currentNode=ui.create.player().init(names[0]);
|
||
}
|
||
currentNode.classList.add('stone_deck');
|
||
ui.arena.appendChild(currentNode);
|
||
ui.refresh(currentNode);
|
||
currentNode.classList.add('shown');
|
||
}
|
||
else{
|
||
event.choosingDeck=false;
|
||
event.dialog.close();
|
||
ui.auto.show();
|
||
game.resume();
|
||
}
|
||
}
|
||
clickButton(false);
|
||
for(var i in lib.storage.deckList){
|
||
if(lib.storage.deckList[i].deck.length==30){
|
||
var deckitem=ui.create.div('.deckitem.shadowed','<span>'+i+'</span>',buttons,clickButton);
|
||
ui.create.div('.menubutton.round',deckitem).dataset.career=lib.storage.deckList[i].career;
|
||
deckitem.name=i;
|
||
}
|
||
}
|
||
for(var i=0;i<lib.careerList.length;i++){
|
||
var deckitem=ui.create.div('.deckitem.shadowed','<span>随机</span>',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;i<bn;i++){
|
||
_status.deck.push('random');
|
||
}
|
||
}
|
||
}
|
||
"step 3"
|
||
game.addRecentCharacter.apply(this,_status.mylist);
|
||
if(ui.coin){
|
||
_status.coinCoeff=get.coinCoeff(_status.mylist);
|
||
}
|
||
if(_status.double_character){
|
||
game.me.init(_status.mylist.shift(),_status.mylist.shift());
|
||
game.enemy.init(_status.enemylist.shift(),_status.enemylist.shift());
|
||
}
|
||
else{
|
||
game.me.init(_status.mylist.shift());
|
||
game.enemy.init(_status.enemylist.shift());
|
||
}
|
||
game.me.maxHp++;
|
||
game.me.hp++;
|
||
game.me.update();
|
||
game.enemy.maxHp++;
|
||
game.enemy.hp++;
|
||
game.enemy.update();
|
||
if(_status.mode=='deck'){
|
||
get.deck(game.me,_status.deck.shift());
|
||
get.deck(game.enemy,'random');
|
||
}
|
||
});
|
||
},
|
||
},
|
||
get:{
|
||
stonecard:function(type,career){
|
||
var list=[];
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(lib.card[i].type!='stonecard'&&lib.card[i].type!='stonecharacter') continue;
|
||
if(type==1&&lib.card[i].type!='stonecard') continue;
|
||
if(type==2&&lib.card[i].type!='stonecharacter') continue;
|
||
if(career&&lib.card[i].career!=career) continue;
|
||
list.push(i);
|
||
}
|
||
return list;
|
||
},
|
||
deck:function(player,name){
|
||
var career,deck;
|
||
if(name=='random'||name.indexOf('random:')==0){
|
||
if(name=='random'){
|
||
career=lib.careerList.randomGet();
|
||
name=name+':'+career;
|
||
}
|
||
else{
|
||
career=name.slice(7);
|
||
}
|
||
deck=lib.careerMinions[career].randomGets(6).concat(lib.careerMinions[career].randomGets(6)).
|
||
concat(lib.minions.randomGets(6)).concat(lib.spells.randomGets(4)).
|
||
concat(lib.careerSpells[career].randomGets(4)).concat(lib.careerSpells[career].randomGets(4));
|
||
}
|
||
else{
|
||
career=lib.storage.deckList[name].career;
|
||
deck=lib.storage.deckList[name].deck.slice(0);
|
||
}
|
||
deck.sort(function(a,b){
|
||
if(a>b) return 1;
|
||
if(a==b) return 0;
|
||
return -1;
|
||
});
|
||
player.deck=name;
|
||
player.career=career;
|
||
if(!player.node.career){
|
||
player.node.career=ui.create.div('.menubutton.round.identity',player);
|
||
player.node.career.dataset.career=career;
|
||
if(lib.config.touchscreen){
|
||
lib.setLongPress(player.node.career,ui.click.intro);
|
||
}
|
||
else{
|
||
if(lib.config.hover_all){
|
||
lib.setHover(player.node.career,ui.click.hoverplayer);
|
||
}
|
||
if(lib.config.right_info){
|
||
player.node.career.oncontextmenu=ui.click.rightplayer;
|
||
}
|
||
}
|
||
}
|
||
if(!player.deckCards) player.deckCards=[];
|
||
for(var i=0;i<deck.length;i++){
|
||
player.deckCards.push(game.createCard(deck[i]));
|
||
}
|
||
}
|
||
},
|
||
cardType:{
|
||
stonecard:-0.5,
|
||
stonecharacter:1
|
||
},
|
||
card:{
|
||
spell_siwangchanrao:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.damage();
|
||
'step 1'
|
||
if(target.isDead()){
|
||
player.drawDeck();
|
||
}
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_ansezhadan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'warlock',
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage(2);
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2
|
||
}
|
||
}
|
||
},
|
||
spell_emozhixin:{
|
||
type:'stonecard',
|
||
stoneact:4,
|
||
career:'warlock',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
if(target.side!=player.side){
|
||
target.damage(4);
|
||
}
|
||
else{
|
||
target.draw(4);
|
||
}
|
||
},
|
||
ai:{
|
||
order:4,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.side!=player.side){
|
||
return -3;
|
||
}
|
||
else{
|
||
return 2;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_heianqiyue:{
|
||
type:'stonecard',
|
||
stoneact:4,
|
||
career:'warlock',
|
||
enable:true,
|
||
fullimage:true,
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
var fellows=player.getEnemy().getFellow();
|
||
if(fellows.length){
|
||
fellows.randomGet().die();
|
||
}
|
||
'step 1'
|
||
var fellows=player.getEnemy().getFellow();
|
||
if(fellows.length){
|
||
fellows.randomGet().die();
|
||
}
|
||
'step 2'
|
||
var hs=player.get('h');
|
||
if(hs.length){
|
||
player.discard(hs.randomGets(2));
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:function(player){
|
||
if(player.getEnemy().countFellow()>=2) return 1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_linghunhongxi:{
|
||
type:'stonecard',
|
||
stoneact:4,
|
||
career:'warlock',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.die();
|
||
'step 1'
|
||
player.recover();
|
||
},
|
||
ai:{
|
||
order:7.5,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_fushishu:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'warlock',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&!target.hasSkill('warlock_fushishu');
|
||
},
|
||
content:function(){
|
||
target.addSkill('warlock_fushishu');
|
||
},
|
||
ai:{
|
||
order:7.5,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_fuchoudaji:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'warrior',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
if(player.hp<=2){
|
||
target.damage(3);
|
||
}
|
||
else{
|
||
target.damage();
|
||
}
|
||
},
|
||
ai:{
|
||
order:8.9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_yingyongdaji:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'warrior',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
player.damage(2,target);
|
||
'step 1'
|
||
target.damage(2);
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(player.hujia>=2) return -1.5;
|
||
if(player.hujia==1){
|
||
if(player.hp>3) return -1.5;
|
||
return 0;
|
||
}
|
||
return 0;
|
||
}
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_zhandounuhuo:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()) return true;
|
||
}
|
||
return false;
|
||
},
|
||
stoneact:1,
|
||
career:'warrior',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()){
|
||
num++;
|
||
}
|
||
}
|
||
if(num){
|
||
player.drawDeck(num);
|
||
}
|
||
},
|
||
ai:{
|
||
order:0.5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_kuangbao:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'warrior',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.isDamaged();
|
||
},
|
||
content:function(){
|
||
target.draw(4);
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
target:1
|
||
},
|
||
}
|
||
},
|
||
spell_chongfeng:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'warrior',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.isTurnedOver();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.draw(3);
|
||
'step 1'
|
||
if(target.isTurnedOver()){
|
||
target.turnOver();
|
||
}
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.isTurnedOver()) return 2;
|
||
return 1;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_zhongnian:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'warrior',
|
||
enable:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()) return true;
|
||
}
|
||
return false;
|
||
},
|
||
fullimage:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()){
|
||
num++;
|
||
}
|
||
}
|
||
if(num){
|
||
target.damage(Math.min(3,num));
|
||
}
|
||
},
|
||
ai:{
|
||
order:7.2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()){
|
||
num++;
|
||
if(num>=2) return -1.5;
|
||
}
|
||
}
|
||
return 0;
|
||
},
|
||
tag:{
|
||
damage:1
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_jinyingduijue:{
|
||
type:'stonecard',
|
||
stoneact:4,
|
||
career:'paladin',
|
||
enable:function(card,player){
|
||
var n1=player.countFellow();
|
||
var n2=player.getEnemy().countFellow();
|
||
return n1>0&&n2>0&&n1+n2>2;
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
multitarget:true,
|
||
multiline:true,
|
||
content:function(){
|
||
'step 0'
|
||
var maxf=[],maxe=[];
|
||
for(var i=0;i<targets.length;i++){
|
||
if(targets[i].side==player.side){
|
||
if(!maxf.length||targets[i].hp==maxf[0].hp){
|
||
maxf.push(targets[i]);
|
||
}
|
||
else if(targets[i].hp>maxf[0].hp){
|
||
maxf.length=0;
|
||
maxf.push(targets[i]);
|
||
}
|
||
}
|
||
else{
|
||
if(!maxe.length||targets[i].hp==maxe[0].hp){
|
||
maxe.push(targets[i]);
|
||
}
|
||
else if(targets[i].hp>maxe[0].hp){
|
||
maxe.length=0;
|
||
maxe.push(targets[i]);
|
||
}
|
||
}
|
||
}
|
||
if(maxf.length){
|
||
targets.remove(maxf.randomGet());
|
||
}
|
||
if(maxe.length){
|
||
targets.remove(maxe.randomGet());
|
||
}
|
||
targets.sort(lib.sort.seat);
|
||
event.targets=targets;
|
||
'step 1'
|
||
if(event.targets.length){
|
||
event.targets.shift().die();
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:2,
|
||
useful:2,
|
||
result:{
|
||
player:function(player,target){
|
||
return player.getEnemy().countFellow()-player.countFellow();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_zhihuizhufu:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'paladin',
|
||
enable:function(card,player){
|
||
return !player.isMin();
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&!target.hasSkill('paladin_zhihuizhufu');
|
||
},
|
||
content:function(){
|
||
target.addSkill('paladin_zhihuizhufu');
|
||
target.storage.paladin_zhihuizhufu=player;
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:function(player,target){
|
||
return target.hp;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_shenshengfennu:{
|
||
type:'stonecard',
|
||
stoneact:5,
|
||
career:'paladin',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
event.card=player.getDeckCards()[0];
|
||
player.gain(event.card,'gain2');
|
||
game.log(player,'获得了',event.card);
|
||
'step 1'
|
||
var num=lib.card[event.card.name].stoneact;
|
||
if(num&&typeof num=='number'){
|
||
target.damage(num);
|
||
}
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:2,
|
||
useful:2,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2
|
||
}
|
||
}
|
||
},
|
||
spell_yongshizhufu:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'paladin',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.num('h')>0;
|
||
},
|
||
content:function(){
|
||
target.draw(target.num('h'));
|
||
},
|
||
ai:{
|
||
order:4,
|
||
value:2,
|
||
useful:2,
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.max(0,target.num('h')-1);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_shenpan:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'paladin',
|
||
enable:function(card,player){
|
||
var num=player.getEnemy().countFellow();
|
||
return num>0&&num>=player.countFellow();
|
||
},
|
||
fullimage:true,
|
||
notarget:true,
|
||
content:function(){
|
||
var target=player.getEnemy().getFellow().randomGet();
|
||
player.line(target);
|
||
target.die();
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_zhengqianghaosheng:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'paladin',
|
||
enable:function(card,player){
|
||
return !player.hasSkill('paladin_zhengqianghaosheng');
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return player==target;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.addSkill('paladin_zhengqianghaosheng');
|
||
},
|
||
ai:{
|
||
order:3,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
player:function(player){
|
||
if(player.countFellow()>=2) return 1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_zhenyanshu:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.maxHp++;
|
||
target.hp++;
|
||
target.update();
|
||
player.drawDeck();
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.max(1,10-target.hp);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_enzeshu:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.maxHp+=3;
|
||
target.hp+=3;
|
||
target.update();
|
||
},
|
||
ai:{
|
||
order:5,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.max(1,10-target.hp);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_anyingxingtai:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'priest',
|
||
chongzhu:true,
|
||
enable:function(event,player){
|
||
if(player.career!='priest') return false;
|
||
return !player.storage.anyingxingtai||player.storage.anyingxingtai<2;
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return player==target;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
if(typeof player.storage.anyingxingtai!='number'){
|
||
player.storage.anyingxingtai=1;
|
||
}
|
||
else if(player.storage.anyingxingtai<2){
|
||
player.storage.anyingxingtai=2;
|
||
}
|
||
player.markSkill('priest_anyingxingtai');
|
||
},
|
||
ai:{
|
||
order:6.1,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_kuaisuzhiliao:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return true;
|
||
}
|
||
return target.hp<target.maxHp;
|
||
},
|
||
content:function(){
|
||
var num=2;
|
||
if(player.hasFellowSkill('stone_shenyou')){
|
||
num=4;
|
||
}
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
target.loseHp(num);
|
||
}
|
||
else{
|
||
target.recover(num);
|
||
}
|
||
// player.addTempSkill('priest_kuaisuzhiliao','phaseAfter');
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:7,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return -2
|
||
}
|
||
return ai.get.recoverEffect(target,player,target);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_kongxinshu:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'priest',
|
||
enable:function(card,player){
|
||
return player.canAddFellow();
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
if(!player.canAddFellow()) return;
|
||
var deck=player.getEnemy().deckCards;
|
||
if(deck){
|
||
var list=[];
|
||
for(var i=0;i<deck.length;i++){
|
||
if(get.type(deck[i])=='stonecharacter'){
|
||
list.push(deck[i].name);
|
||
}
|
||
}
|
||
if(list.length){
|
||
var name=list.randomGet();
|
||
player.addFellowAuto(name.slice(0,name.indexOf('_stonecharacter')));
|
||
}
|
||
}
|
||
},
|
||
ai:{
|
||
order:3,
|
||
value:2,
|
||
useful:2,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_xinlinghanbao:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var num=2;
|
||
// if(player.hasFellowSkill('stone_shenyou')){
|
||
// num=4;
|
||
// }
|
||
target.damage(num);
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_shalumingling:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
var num=1;
|
||
var friends=player.getFellow();
|
||
for(var i=0;i<friends.length;i++){
|
||
if(lib.beastList.contains(friends[i].name)){
|
||
num=2;break;
|
||
}
|
||
}
|
||
target.damage(num);
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-2,
|
||
},
|
||
tag:{
|
||
damage:2
|
||
}
|
||
}
|
||
},
|
||
spell_dubiao:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
notarget:true,
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
var target=list.randomGet();
|
||
target.damage();
|
||
player.line(target);
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_tanxianmao:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side==player.side;
|
||
},
|
||
content:function(){
|
||
target.maxHp++;
|
||
target.hp++;
|
||
target.update();
|
||
target.draw();
|
||
target.addSkill('hunter_tanxianmao');
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:2,
|
||
useful:2,
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.max(1,10-target.hp);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_zhuizongshu:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return player==target;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
player.chooseCardButton('选择一张加入手牌',player.getDeckCards(3),true);
|
||
'step 1'
|
||
player.gain(result.links,'draw');
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_qiangfengsheji:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'hunter',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side&&target.isMin();
|
||
},
|
||
selectTarget:[1,2],
|
||
content:function(){
|
||
'step 0'
|
||
target.damage();
|
||
'step 1'
|
||
if(target.isAlive()){
|
||
var hs=target.get('h');
|
||
if(hs.length){
|
||
target.discard(hs.randomGets(2));
|
||
}
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.num('h')) return -2;
|
||
return -1.5;
|
||
}
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_tianjiangzhuqun:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
stoneact:3,
|
||
career:'hunter',
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_jiewangzhu');
|
||
}
|
||
'step 1'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_jiewangzhu');
|
||
}
|
||
'step 2'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_jiewangzhu');
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
|
||
spell_conglinzhihun:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'druid',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return player.side==target.side&&target.isMin()&&!target.hasSkill('druid_conglinzhihun');
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.addSkill('druid_conglinzhihun');
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:function(player){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side==player.side&&
|
||
!game.players[i].hasSkill('druid_conglinzhihun')){
|
||
num++;
|
||
if(num>=2) return 1;
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_heiandiyu:{
|
||
fullimage:true,
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
multitarget:true,
|
||
targetprompt:['增加体力并摸牌'],
|
||
selectTarget:[0,1],
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
if(targets.length){
|
||
targets[0].maxHp++;
|
||
targets[0].hp++;
|
||
target.update();
|
||
targets[0].draw(3);
|
||
event.finish();
|
||
}
|
||
else{
|
||
event.num=0;
|
||
}
|
||
'step 1'
|
||
if(player.canAddFellow()&&event.num++<10){
|
||
player.addFellowAuto('stone_xiaojingling');
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.max(1,target.hp-target.num('h'));
|
||
},
|
||
}
|
||
}
|
||
},
|
||
spell_ziyang:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'druid',
|
||
enable:function(card,player){
|
||
return player.deckCards&&!player.isMin();
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return player==target;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
if(player.hasSkill('druid_ziyang')){
|
||
player.drawDeck(3);
|
||
event.finish();
|
||
}
|
||
else{
|
||
player.chooseControl('获得行动值','摸牌').ai=function(){
|
||
if(player.num('h')<=1) return '摸牌';
|
||
return '获得行动值';
|
||
};
|
||
}
|
||
'step 1'
|
||
if(result.control=='摸牌'){
|
||
player.drawDeck(3);
|
||
}
|
||
else{
|
||
player.addSkill('druid_ziyang');
|
||
}
|
||
},
|
||
ai:{
|
||
order:1,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_xingchenzhuiluo:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:6,
|
||
career:'druid',
|
||
targetprompt:['造成五点伤害'],
|
||
multitarget:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side&&target.isMin();
|
||
},
|
||
selectTarget:[0,1],
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
if(targets.length){
|
||
targets[0].damage(4);
|
||
event.finish();
|
||
}
|
||
else{
|
||
var list=player.getFellow(true);
|
||
if(list.length){
|
||
list.sort(lib.sort.seat);
|
||
event.list=list;
|
||
player.line(list);
|
||
}
|
||
else{
|
||
event.finish();
|
||
}
|
||
}
|
||
'step 1'
|
||
if(event.list.length){
|
||
event.list.shift().damage(2);
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
useful:5,
|
||
value:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target==player.getEnemy()) return -2;
|
||
return -1;
|
||
}
|
||
},
|
||
tag:{
|
||
damage:2
|
||
}
|
||
}
|
||
},
|
||
spell_fennu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
player.chooseControl('两点','一点').prompt='造成两点伤害,或造成一点伤害并从牌库中获得一张牌';
|
||
'step 1'
|
||
if(result.control=='一点'){
|
||
target.damage();
|
||
}
|
||
else{
|
||
target.damage(2);
|
||
event.finish();
|
||
}
|
||
'step 2'
|
||
player.drawDeck();
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
}
|
||
}
|
||
},
|
||
spell_fugen:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'druid',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.die();
|
||
'step 1'
|
||
var list=[];
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(lib.card[i].type=='stonecharacter'){
|
||
list.push(i);
|
||
}
|
||
}
|
||
player.getEnemy().gain(game.createCard(list.randomGet()),'draw');
|
||
},
|
||
ai:{
|
||
order:8.8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_mengun:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'rogue',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side!=player.side;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.die()._triggered=null;
|
||
event.name=target.name;
|
||
'step 1'
|
||
player.getEnemy().gain(game.createCard(event.name+'_stonecharacter'),'gain2');
|
||
},
|
||
ai:{
|
||
order:8.8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_jipao:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'rogue',
|
||
enable:function(card,player){
|
||
return !player.isMin();
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
if(!player.isMin()){
|
||
player.drawDeck(4);
|
||
}
|
||
},
|
||
ai:{
|
||
order:1,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_beici:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
career:'rogue',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.hp==target.maxHp;
|
||
},
|
||
content:function(){
|
||
target.loseHp();
|
||
},
|
||
ai:{
|
||
order:9,
|
||
result:{
|
||
target:-1
|
||
},
|
||
value:6,
|
||
useful:6,
|
||
}
|
||
},
|
||
spell_weijisifu:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'rogue',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
if(target.deckCards){
|
||
var cards=[];
|
||
for(var i=0;i<3;i++){
|
||
cards.push(game.createCard('spell_zhumo'));
|
||
}
|
||
player.$give(cards,target);
|
||
for(var i=0;i<cards.length;i++){
|
||
target.deckCards.push(cards[i]);
|
||
}
|
||
game.addGlobalSkill('rogue_zhumo');
|
||
}
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1
|
||
}
|
||
}
|
||
},
|
||
spell_zhumo:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
enable:false,
|
||
fullimage:true,
|
||
stonehidden:true
|
||
},
|
||
spell_anzhongpohuai:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'rogue',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
var list=target.getFellow();
|
||
if(list.length){
|
||
list.randomGet().die({source:player});
|
||
}
|
||
'step 1'
|
||
var es=target.get('e');
|
||
if(es.length){
|
||
target.discard(es.randomGet());
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.hasFellow()) return -1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_piaoqie:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'rogue',
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var cards=player.getEnemy().deckCards.randomGets(2);
|
||
var list=[];
|
||
for(var i=0;i<cards.length;i++){
|
||
list.push(game.createCard(cards[i].name,cards[i].suit,cards[i].number,cards[i].nature));
|
||
}
|
||
if(list.length){
|
||
player.gain(list,'draw');
|
||
}
|
||
},
|
||
ai:{
|
||
order:0.5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_canying:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'mage',
|
||
enable:function(event,player){
|
||
return player.hasFellow();
|
||
},
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side==player.side;
|
||
},
|
||
selectTarget:-1,
|
||
multitarget:true,
|
||
multiline:true,
|
||
fullimage:true,
|
||
content:function(){
|
||
var cards=[];
|
||
for(var i=0;i<targets.length;i++){
|
||
if(lib.card[targets[i].name+'_stonecharacter']){
|
||
cards.push(game.createCard(targets[i].name+'_stonecharacter'));
|
||
}
|
||
}
|
||
player.gain(cards,'gain2');
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_laojiuhuoba:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'mage',
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage('fire');
|
||
if(player.deckCards){
|
||
player.deckCards.push(game.createCard('spell_chirehuoba'));
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
target:-1
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
natureDamage:1,
|
||
fireDamage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_chirehuoba:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'mage',
|
||
stonehidden:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage(2,'fire');
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:6,
|
||
useful:6,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
natureDamage:2,
|
||
fireDamage:2,
|
||
}
|
||
}
|
||
},
|
||
spell_hanbingpingzhang:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'mage',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
if(target.maxHp<2){
|
||
target.maxHp=2;
|
||
}
|
||
if(target.hp<2){
|
||
target.hp=2;
|
||
target.update();
|
||
}
|
||
target.addSkill('mage_hanbingpingzhang');
|
||
},
|
||
ai:{
|
||
order:1,
|
||
value:3,
|
||
useful:3,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.hp<=2) return 3-target.hp;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_aoshufeidan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.getEnemy().countFellow()>0;
|
||
},
|
||
stoneact:2,
|
||
career:'mage',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side&&target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
multitarget:true,
|
||
multiline:true,
|
||
content:function(){
|
||
'step 0'
|
||
var map=[];
|
||
for(var i=0;i<targets.length;i++){
|
||
map.push(0);
|
||
}
|
||
for(var i=0;i<3;i++){
|
||
map[Math.floor(Math.random()*map.length)]++;
|
||
}
|
||
event.num=0;
|
||
event.map=map;
|
||
'step 1'
|
||
if(event.num<targets.length){
|
||
if(event.map[event.num]){
|
||
targets[event.num].damage(event.map[event.num]);
|
||
}
|
||
event.num++;
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_jingxiang:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
stoneact:2,
|
||
career:'mage',
|
||
selectTarget:-1,
|
||
filterTarget:function(card,player,target){
|
||
return player==target;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_jingxiang',false);
|
||
}
|
||
'step 1'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_jingxiang',false);
|
||
}
|
||
},
|
||
ai:{
|
||
order:4,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_yanbaoshu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:6,
|
||
career:'mage',
|
||
filterTarget:true,
|
||
content:function(){
|
||
var num=4;
|
||
if(!target.isMin()){
|
||
num=Math.min(4,target.hp);
|
||
}
|
||
target.damage(num,'fire');
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
natureDamage:2,
|
||
fireDamage:2,
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_fengnu:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'shaman',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&!target.hasSkill('shaman_fengnu');
|
||
},
|
||
content:function(){
|
||
target.addSkill('shaman_fengnu');
|
||
},
|
||
ai:{
|
||
order:4,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.hasSkill('shaman_tuteng')) return 0;
|
||
if(target.hp>1) return target.hp;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_shihuawuqi:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'shaman',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&!target.hasSkill('shaman_shihuawuqi');
|
||
},
|
||
content:function(){
|
||
target.addSkill('shaman_shihuawuqi');
|
||
},
|
||
ai:{
|
||
order:4,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.isTurnedOver()) return 0;
|
||
var num=0;
|
||
if(target.hasSkill('shaman_fengnu')){
|
||
num=3;
|
||
}
|
||
if(target.isMin()) return target.hp+num;
|
||
return 1.1;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_xianzuzhaohuan:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'shaman',
|
||
fullimage:true,
|
||
enable:true,
|
||
filterTarget:function(card,player,target){
|
||
return !target.isMin();
|
||
},
|
||
multitarget:true,
|
||
multiline:true,
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
var hs=targets[0].get('h',function(card){
|
||
return get.type(card)=='stonecharacter';
|
||
});
|
||
if(hs.length&&targets[0].canAddFellow()){
|
||
targets[0].useCard(targets[0],hs.randomGet(),false).noActCount=true;
|
||
}
|
||
'step 1'
|
||
var hs=targets[1].get('h',function(card){
|
||
return get.type(card)=='stonecharacter';
|
||
});
|
||
if(hs.length&&targets[1].canAddFellow()){
|
||
targets[1].useCard(targets[1],hs.randomGet(),false).noActCount=true;
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:function(player){
|
||
var hs=player.get('h',function(card){
|
||
return get.type(card)=='stonecharacter';
|
||
});
|
||
if(hs.length==0) return 0;
|
||
var enemy=player.getEnemy();
|
||
if(enemy.num('h')<=1) return 1;
|
||
var num=0;
|
||
for(var i=0;i<hs.length;i++){
|
||
num+=get.info(hs[i]).stoneact;
|
||
}
|
||
if(num/hs.length>=3) return 1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_xianzuzhihun:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'shaman',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&!target.hasSkill('shaman_xianzuzhihun');
|
||
},
|
||
content:function(){
|
||
target.addSkill('shaman_xianzuzhihun');
|
||
},
|
||
ai:{
|
||
order:5,
|
||
value:4,
|
||
useful:4,
|
||
result:{
|
||
target:function(player,target){
|
||
if(lib.card[target.name+'_stonecharacter']){
|
||
return lib.card[target.name+'_stonecharacter'].stoneact-1;
|
||
}
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_xianzuzhishi:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:0,
|
||
career:'shaman',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.drawDeck(2);
|
||
player.addTempSkill('shaman_xianzuzhishi','phaseAfter');
|
||
},
|
||
ai:{
|
||
order:10,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_rongyanbaolie:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'shaman',
|
||
filterTarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
target.damage(3,'fire');
|
||
'step 1'
|
||
player.loseHp();
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:6,
|
||
useful:5,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
natureDamage:2,
|
||
fireDamage:2,
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_shenshengxinxing:{
|
||
type:'stonecard',
|
||
stoneact:5,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')||target.side!=player.side) return true;
|
||
return target.isDamaged();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var num=1;
|
||
if(player.hasFellowSkill('stone_shenyou')){
|
||
num=2;
|
||
}
|
||
if(player.side==target.side){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
target.loseHp(num);
|
||
}
|
||
else{
|
||
target.recover(num);
|
||
}
|
||
}
|
||
else{
|
||
target.damage();
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')) return -1;
|
||
if(player.side==target.side) return 1;
|
||
return -1;
|
||
}
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1
|
||
}
|
||
}
|
||
},
|
||
spell_shengguangzhadan:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.num('h')>0;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var num=1;
|
||
// if(player.hasFellowSkill('stone_shenyou')){
|
||
// num=2;
|
||
// }
|
||
target.damage(target.num('h')*num);
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -Math.min(target.num('h'),target.hp);
|
||
}
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1
|
||
}
|
||
}
|
||
},
|
||
spell_maizang:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side!=player.side;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.die()._triggered=null;
|
||
'step 1'
|
||
if(player.deckCards){
|
||
player.deckCards.push(game.createCard(target.name+'_stonecharacter'));
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_xinlingshijie:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
career:'priest',
|
||
enable:function(event,player){
|
||
return player.getEnemy().num('h')>0;
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var card=target.get('h').randomGet();
|
||
if(card){
|
||
player.gain(game.createCard(card.name,card.suit,card.number,card.nature),'draw');
|
||
}
|
||
},
|
||
ai:{
|
||
order:9.5,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_naluzhiguang:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return true;
|
||
}
|
||
return target.hp<target.maxHp;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var num=1;
|
||
if(player.hasFellowSkill('stone_shenyou')){
|
||
num=2;
|
||
}
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
target.loseHp(num);
|
||
}
|
||
else{
|
||
target.recover(num);
|
||
}
|
||
'step 1'
|
||
if(target.hp<target.maxHp&&player.canAddFellow()){
|
||
player.addFellowAuto('stone_shengguanghuwei');
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:7,
|
||
useful:5,
|
||
result:{
|
||
player:function(player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return 1;
|
||
}
|
||
if(target.hp<target.maxHp-1) return 2;
|
||
return 0;
|
||
},
|
||
target:function(player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return -2
|
||
}
|
||
return ai.get.recoverEffect(target,player,target);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_zhiliaozhihuan:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
career:'priest',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var num=3;
|
||
if(player.hasFellowSkill('stone_shenyou')){
|
||
num=6;
|
||
}
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
target.loseHp(num);
|
||
}
|
||
else{
|
||
target.recover(num);
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return -1;
|
||
}
|
||
return ai.get.recoverEffect(target,player,target);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_nuxi:{
|
||
type:'stonecard',
|
||
stoneact:3,
|
||
career:'warrior',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage();
|
||
player.changeHujia(2);
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5,
|
||
},
|
||
tag:{
|
||
damage:1
|
||
}
|
||
}
|
||
},
|
||
spell_dunpaimengji:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'warrior',
|
||
enable:function(event,player){
|
||
return player.hujia>0;
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.damage(player.hujia);
|
||
},
|
||
ai:{
|
||
order:7.2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5,
|
||
tag:{
|
||
damage:1
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_zhansha:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'warrior',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.hp<target.maxHp;
|
||
},
|
||
content:function(){
|
||
target.die();
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_nuhuozhongshao:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
career:'warrior',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.damage();
|
||
'step 1'
|
||
if(target.isAlive()){
|
||
target.draw(2);
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.hp==1) return -1;
|
||
if(target.hp>=4) return 1.5;
|
||
if(target.hp>=3&&target.num('h')<target.hp) return 1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_xuanfengzhan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'warrior',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.damage();
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_juemingluandou:{
|
||
type:'stonecard',
|
||
stoneact:4,
|
||
career:'warrior',
|
||
enable:function(){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()){
|
||
num++;
|
||
if(num>=2) return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
targets.randomRemove();
|
||
targets.sort(lib.sort.seat);
|
||
event.list=targets;
|
||
'step 1'
|
||
if(event.list.length){
|
||
event.list.shift().die();
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-2
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_lierenyinji:{
|
||
type:'stonecard',
|
||
stoneact:0,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.maxHp>1;
|
||
},
|
||
content:function(){
|
||
target.loseMaxHp(target.maxHp-1);
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return 1-target.hp;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_kuaisusheji:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage();
|
||
player.draw();
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5,
|
||
},
|
||
tag:{
|
||
damage:1
|
||
}
|
||
}
|
||
},
|
||
spell_guanmenfanggou:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'hunter',
|
||
enable:function(event,player){
|
||
return player.getEnemy().countFellow()>0&&player.canAddFellow();
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
event.num=player.getEnemy().countFellow();
|
||
'step 1'
|
||
if(player.canAddFellow()&&event.num--){
|
||
player.addFellowAuto('stone_liegou');
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:1
|
||
}
|
||
}
|
||
},
|
||
spell_zhaohuanchongwu:{
|
||
type:'stonecard',
|
||
stoneact:2,
|
||
career:'hunter',
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.addFellowAuto(lib.beastList.randomGet());
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_zidanshangtang:{
|
||
type:'stonecard',
|
||
stoneact:1,
|
||
career:'hunter',
|
||
enable:true,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
var list=['spell_lierenyinji','spell_guanmenfanggou','spell_duochongsheji','spell_kuaisusheji','spell_zhaohuanchongwu'];
|
||
player.gain(game.createCard(list.randomGet()),'draw');
|
||
player.addTempSkill('hunter_zidanshangtang','phaseAfter');
|
||
},
|
||
ai:{
|
||
order:7.5,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_duochongsheji:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
stoneact:4,
|
||
career:'hunter',
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
list=list.randomGets(2);
|
||
list.sort(lib.sort.seat);
|
||
}
|
||
event.list=list;
|
||
'step 1'
|
||
if(event.list.length){
|
||
var current=event.list.shift();
|
||
player.line(current);
|
||
current.damage(2);
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
|
||
spell_liliangdaijia:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
return target.side==player.side&&target.isMin();
|
||
},
|
||
content:function(){
|
||
target.draw(4);
|
||
target.hp=5;
|
||
target.maxHp=5;
|
||
target.update();
|
||
target.addSkill('stone_zibao');
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.hasSkill('warlock_yongsheng')) return 2;
|
||
if(target.hp==1&&target.num('h')<=2) return 1;
|
||
return 0;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_xiaoguibaopo:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
event.num=Math.ceil(Math.random()*3);
|
||
target.damage(event.num);
|
||
'step 1'
|
||
if(player.canAddFellow()&&event.num--){
|
||
player.addFellowAuto('stone_xiaogui');
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_emozhinu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.damage(2);
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_anyinglieyan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
return target.side==player.side&&target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.die({source:player});
|
||
event.num=target.hp;
|
||
'step 1'
|
||
event.list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
event.list.push(game.players[i]);
|
||
}
|
||
}
|
||
event.list.sort(lib.sort.seat);
|
||
'step 2'
|
||
if(event.list.length){
|
||
event.list.shift().damage(event.num);
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:function(player,target){
|
||
if(player==target) return -10;
|
||
var list=[];
|
||
var maxHp=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
if(game.players[i].hp>maxHp){
|
||
maxHp=game.players[i].hp;
|
||
}
|
||
}
|
||
}
|
||
if(list.length<2) return 0;
|
||
if(list.length==2&&target.hp>=4) return 0;
|
||
if(target.hp>maxHp) return 1;
|
||
return target.hp;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_xishengqiyue:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:0,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
if(!target.isMin()) return false;
|
||
if(ui.selected.targets.length){
|
||
return target.side!=ui.selected.targets[0].side;
|
||
}
|
||
return true;
|
||
},
|
||
selectTarget:2,
|
||
multitarget:true,
|
||
multiline:true,
|
||
content:function(){
|
||
targets.sort(lib.sort.seat);
|
||
for(var i=0;i<targets.length;i++){
|
||
targets[i].die();
|
||
}
|
||
},
|
||
ai:{
|
||
result:{
|
||
target:function(player,target){
|
||
if(ui.selected.targets.length&&target.hp<ui.selected.targets[0].hp){
|
||
return 1;
|
||
}
|
||
return -1;
|
||
}
|
||
},
|
||
order:6
|
||
}
|
||
},
|
||
spell_zuzhou:{
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:1,
|
||
fullimage:true,
|
||
career:'warlock',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.turnOver();
|
||
player.draw();
|
||
},
|
||
ai:{
|
||
order:6,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.isTurnedOver()) return 1;
|
||
return -1;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_yexingchengzhang:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return !player.hasSkill('druid_yexingchengzhang')&&!player.isMin();
|
||
},
|
||
stoneact:2,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.addSkill('druid_yexingchengzhang');
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_ziranzhili:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
stoneact:4,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
event.num=3;
|
||
'step 1'
|
||
if(player.canAddFellow()&&event.num--){
|
||
player.addFellowAuto('stone_shuren');
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_yemanpaoxiao:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return !player.hasSkill('spell_yemanpaoxiao');
|
||
},
|
||
stoneact:2,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.addTempSkill('spell_yemanpaoxiao',{player:'phaseBegin'});
|
||
},
|
||
ai:{
|
||
order:1,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:function(player){
|
||
if(player.countFellow()>=2) return 1;
|
||
return 0;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_hengsao:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
event.list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=target&&game.players[i].side==target.side){
|
||
event.list.push(game.players[i]);
|
||
}
|
||
}
|
||
target.damage(2);
|
||
'step 1'
|
||
if(event.list.length){
|
||
event.list.shift().damage();
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:1
|
||
}
|
||
}
|
||
},
|
||
spell_wuyashenxiang:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'druid',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
player.chooseControl('法术牌','随从牌').ai=function(){
|
||
return Math.random()<0.5?'法术牌':'随从牌';
|
||
}
|
||
'step 1'
|
||
var list=[];
|
||
var bool=(result.control=='法术牌');
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(bool){
|
||
if(lib.card[i].type=='stonecard'){
|
||
list.push(i);
|
||
}
|
||
}
|
||
else{
|
||
if(lib.card[i].type=='stonecharacter'){
|
||
list.push(i);
|
||
}
|
||
}
|
||
}
|
||
list=list.randomGets(3);
|
||
var cards=[];
|
||
for(var i=0;i<list.length;i++){
|
||
cards.push(game.createCard(list[i]));
|
||
}
|
||
player.chooseCardButton(cards,'选择一张加入手牌',true);
|
||
'step 2'
|
||
player.gain(result.links,'draw');
|
||
},
|
||
ai:{
|
||
order:2,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_huotigenxu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'druid',
|
||
filterTarget:true,
|
||
selectTarget:[0,1],
|
||
notarget:true,
|
||
multitarget:true,
|
||
targetprompt:['造成一点伤害'],
|
||
content:function(){
|
||
'step 0'
|
||
if(targets.length){
|
||
targets[0].damage();
|
||
event.finish();
|
||
}
|
||
else{
|
||
event.num=2;
|
||
}
|
||
'step 1'
|
||
if(player.canAddFellow()&&event.num--){
|
||
player.addFellowAuto('stone_shumiao');
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1
|
||
},
|
||
tag:{
|
||
damage:1
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_cigu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'rogue',
|
||
filterTarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
if(player.num('e')){
|
||
player.chooseToDiscard('e','是否弃置一张装备区内的牌令伤害+1?').ai=function(card){
|
||
return 7-ai.get.value(card);
|
||
}
|
||
}
|
||
else{
|
||
event.goto(2);
|
||
}
|
||
'step 1'
|
||
if(result.bool){
|
||
event.add=true;
|
||
}
|
||
'step 2'
|
||
if(event.add){
|
||
target.damage(2);
|
||
}
|
||
else{
|
||
target.damage();
|
||
}
|
||
player.storage.spell_cigu=false;
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:6,
|
||
useful:6,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_sijidaifa:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return !player.hasSkill('spell_sijidaifa');
|
||
},
|
||
stoneact:0,
|
||
career:'rogue',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.addSkill('spell_sijidaifa');
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_daoshan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'rogue',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side&&target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.damage();
|
||
},
|
||
contentAfter:function(){
|
||
player.drawDeck();
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_jianrenluanwu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.get('e','1')?true:false;
|
||
},
|
||
stoneact:2,
|
||
career:'rogue',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side;
|
||
},
|
||
selectTarget:-1,
|
||
contentBefore:function(){
|
||
player.discard(player.get('e','1'));
|
||
},
|
||
content:function(){
|
||
if(typeof player.storage.spell_modaoyou=='number'){
|
||
target.damage(player.storage.spell_modaoyou+1);
|
||
}
|
||
else{
|
||
target.damage();
|
||
}
|
||
player.unmarkSkill('spell_modaoyou');
|
||
},
|
||
contentAfter:function(){
|
||
player.storage.spell_modaoyou=0;
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:6,
|
||
useful:6,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_cisha:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'rogue',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.die({source:player});
|
||
},
|
||
ai:{
|
||
order:8.8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp-target.num('h')/2;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_modaoyou:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'rogue',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.markSkill('spell_modaoyou');
|
||
if(typeof player.storage.spell_modaoyou!='number'){
|
||
player.storage.spell_modaoyou=1;
|
||
}
|
||
else{
|
||
player.storage.spell_modaoyou++;
|
||
}
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side==player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
game.asyncDraw([player,list.randomGet()],2);
|
||
}
|
||
else{
|
||
player.draw(2);
|
||
}
|
||
},
|
||
ai:{
|
||
order:1,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
|
||
spell_fengxian:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'paladin',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.damage();
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_fuchouzhinu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.getEnemy().countFellow()>0;
|
||
},
|
||
stoneact:4,
|
||
career:'paladin',
|
||
filterTarget:function(card,player,target){
|
||
return target.side!=player.side&&target.isMin();
|
||
},
|
||
selectTarget:-1,
|
||
multitarget:true,
|
||
multiline:true,
|
||
content:function(){
|
||
'step 0'
|
||
var map=[];
|
||
for(var i=0;i<targets.length;i++){
|
||
map.push(0);
|
||
}
|
||
for(var i=0;i<5;i++){
|
||
map[Math.floor(Math.random()*map.length)]++;
|
||
}
|
||
event.num=0;
|
||
event.map=map;
|
||
'step 1'
|
||
if(event.num<targets.length){
|
||
if(event.map[event.num]){
|
||
targets[event.num].damage(event.map[event.num]);
|
||
}
|
||
event.num++;
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
spell_liliangzhufu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'paladin',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.draw(2);
|
||
},
|
||
ai:{
|
||
order:6,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:1
|
||
},
|
||
}
|
||
},
|
||
spell_shengliaoshu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'paladin',
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.recover(2);
|
||
target.draw(2);
|
||
},
|
||
ai:{
|
||
order:4,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return 1+target.maxHp-target.hp;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_zuozhandongyuan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
stoneact:3,
|
||
career:'paladin',
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_xinbing');
|
||
}
|
||
'step 1'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_xinbing');
|
||
}
|
||
'step 2'
|
||
var equip1=get.cardPile(function(card){
|
||
return get.subtype(card)=='equip1';
|
||
});
|
||
if(!equip1){
|
||
equip1=game.createCard('qingnang');
|
||
}
|
||
player.equip(equip1);
|
||
},
|
||
ai:{
|
||
order:8.5,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_fennuzhichui:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'paladin',
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage();
|
||
player.drawDeck();
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_lianhuanbaolie:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'shaman',
|
||
filterTarget:true,
|
||
content:function(){
|
||
target.damage(Math.ceil(Math.random()*2),'thunder');
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
natureDamage:1,
|
||
thunderDamage:1
|
||
}
|
||
}
|
||
},
|
||
spell_shandianfengbao:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
career:'shaman',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side!=player.side;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.damage(Math.ceil(Math.random()*2),'thunder');
|
||
},
|
||
ai:{
|
||
order:9,
|
||
useful:5,
|
||
value:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
natureDamage:1,
|
||
thunderDamage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_yaoshu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'shaman',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.clearSkills();
|
||
target.init('stone_qingwa');
|
||
target.noPhaseDelay=true;
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_shixue:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'shaman',
|
||
selectTarget:-1,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side==player.side;
|
||
},
|
||
multitarget:true,
|
||
multiline:true,
|
||
content:function(){
|
||
game.asyncDraw(targets,2);
|
||
},
|
||
ai:{
|
||
order:5,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:2
|
||
},
|
||
tag:{
|
||
multitarget:1
|
||
}
|
||
}
|
||
},
|
||
spell_yexinglanghun:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.canAddFellow();
|
||
},
|
||
stoneact:4,
|
||
career:'shaman',
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_youlinglang');
|
||
}
|
||
'step 1'
|
||
if(player.canAddFellow()){
|
||
player.addFellowAuto('stone_youlinglang');
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
spell_chazhuangshandian:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
stoneact:2,
|
||
career:'shaman',
|
||
notarget:true,
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
list=list.randomGets(2);
|
||
list.sort(lib.sort.seat);
|
||
}
|
||
event.list=list;
|
||
'step 1'
|
||
if(event.list.length){
|
||
var current=event.list.shift();
|
||
player.line(current,'thunder');
|
||
current.damage('thunder');
|
||
event.redo();
|
||
}
|
||
},
|
||
ai:{
|
||
order:5,
|
||
result:{
|
||
player:1
|
||
},
|
||
}
|
||
},
|
||
|
||
spell_hanbingjian:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
career:'mage',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.damage(2);
|
||
'step 1'
|
||
if(target.isAlive()&&!target.isTurnedOver()){
|
||
target.turnOver();
|
||
}
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-1
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
}
|
||
}
|
||
},
|
||
spell_huoqiushu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'mage',
|
||
filterTarget:true,
|
||
content:function(){
|
||
var num=3;
|
||
if(!target.isMin()){
|
||
num=Math.min(3,target.hp);
|
||
}
|
||
target.damage(num,'fire');
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
natureDamage:2,
|
||
fireDamage:2,
|
||
}
|
||
}
|
||
},
|
||
spell_lieyanfengbao:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:5,
|
||
career:'mage',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side!=player.side;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.damage(2);
|
||
},
|
||
ai:{
|
||
order:9,
|
||
useful:5,
|
||
value:5,
|
||
result:{
|
||
target:-2
|
||
},
|
||
tag:{
|
||
damage:2,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
spell_bianxingshu:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'mage',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.clearSkills();
|
||
target.init('stone_mianyang');
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:5,
|
||
useful:5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp;
|
||
}
|
||
},
|
||
}
|
||
},
|
||
spell_aoshuzhihui:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:1,
|
||
career:'mage',
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
player.drawDeck(2);
|
||
},
|
||
ai:{
|
||
order:0.5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
spell_baofengxue:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:4,
|
||
career:'mage',
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side!=player.side;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
'step 0'
|
||
target.damage();
|
||
'step 1'
|
||
if(target.isAlive()){
|
||
target.turnOver();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9,
|
||
useful:5,
|
||
value:5,
|
||
result:{
|
||
target:-1.5
|
||
},
|
||
tag:{
|
||
damage:1,
|
||
multitarget:1,
|
||
multineg:1,
|
||
}
|
||
}
|
||
},
|
||
|
||
spell_chenmo:{
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:2,
|
||
fullimage:true,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&(target.maxHp>1||target.num('he')>0);
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
target.discard(target.get('he'));
|
||
"step 1"
|
||
if(target.maxHp>2){
|
||
target.loseMaxHp(target.maxHp-2);
|
||
}
|
||
},
|
||
ai:{
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.min(0,2-target.hp)-target.num('h')/2;
|
||
}
|
||
},
|
||
order:7
|
||
}
|
||
},
|
||
spell_morizaihuo:{
|
||
fullimage: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);
|
||
event.list=targets;
|
||
'step 1'
|
||
if(event.list.length){
|
||
event.list.shift().die();
|
||
event.redo();
|
||
}
|
||
'step 2'
|
||
player.recover(2)
|
||
},
|
||
stoneact:5,
|
||
ai:{
|
||
order:9,
|
||
result:{
|
||
target:-1,
|
||
player:function(player){
|
||
if(player.hp<player.maxHp) return 1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_shengerpingdeng:{
|
||
fullimage:true,
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:2,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.maxHp>1;
|
||
},
|
||
selectTarget:-1,
|
||
content:function(){
|
||
target.loseMaxHp(target.maxHp-1);
|
||
},
|
||
ai:{
|
||
order:9.1,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.hp>1) return -1;
|
||
if(target.maxHp>1) return -0.1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_jingshenkongzhi:{
|
||
fullimage:true,
|
||
type:'stonecard',
|
||
enable:function(event,player){
|
||
if(player.isMin()) return false;
|
||
return player.canAddFellow();
|
||
},
|
||
stoneact:6,
|
||
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);
|
||
if(!target.isTurnedOver()){
|
||
target.turnOver();
|
||
}
|
||
},
|
||
ai:{
|
||
order:9.5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_anyingkuangluan:{
|
||
type:'stonecard',
|
||
fullimage: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('spell_anyingkuangluan_die');
|
||
},
|
||
ai:{
|
||
order:9.5,
|
||
result:{
|
||
target:function(player,target){
|
||
return -target.hp;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_binghuan:{
|
||
fullimage:true,
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:1,
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_zhiliaozhichu:{
|
||
fullimage:true,
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:1,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin()&&target.side==player.side&&
|
||
(!target.hasSkill('chaofeng')||target.hp<target.maxHp);
|
||
},
|
||
content:function(){
|
||
if(target.hp<target.maxHp){
|
||
target.recover(target.maxHp-target.hp);
|
||
}
|
||
target.addSkill('chaofeng');
|
||
target.markSkill('chaofeng');
|
||
game.log(target,'获得了嘲讽');
|
||
target.popup('嘲讽');
|
||
},
|
||
ai:{
|
||
order:2,
|
||
result:{
|
||
target:function(player,target){
|
||
return target.maxHp-target.hp;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_wangzhezhufu:{
|
||
fullimage:true,
|
||
type:'stonecard',
|
||
enable:true,
|
||
stoneact:4,
|
||
filterTarget:function(card,player,target){
|
||
return target.isMin();
|
||
},
|
||
content:function(){
|
||
target.maxHp+=2;
|
||
target.hp+=2;
|
||
target.update();
|
||
target.draw(2);
|
||
},
|
||
ai:{
|
||
order:7,
|
||
result:{
|
||
target:function(player,target){
|
||
return Math.max(1,10-target.hp);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_diyulieyan:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
filterTarget:true,
|
||
selectTarget:-1,
|
||
multitarget:true,
|
||
multiline:true,
|
||
content:function(){
|
||
targets.sort(lib.sort.seat);
|
||
for(var i=0;i<targets.length;i++){
|
||
targets[i].loseHp();
|
||
}
|
||
ui.clear();
|
||
},
|
||
ai:{
|
||
order:9,
|
||
result:{
|
||
target:-1
|
||
}
|
||
}
|
||
},
|
||
spell_zhiliaoshui:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:function(event,player){
|
||
return player.hp<player.maxHp;
|
||
},
|
||
savable:true,
|
||
stoneact:2,
|
||
selectTarget:-1,
|
||
filterTarget:function(card,player,target){
|
||
return target==player;
|
||
},
|
||
content:function(){
|
||
if(target==_status.dying){
|
||
target.recover();
|
||
}
|
||
else{
|
||
target.recover(2);
|
||
}
|
||
},
|
||
ai:{
|
||
order:8,
|
||
value:6,
|
||
useful:6,
|
||
result:{
|
||
target:1
|
||
}
|
||
}
|
||
},
|
||
spell_yanmie:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:3,
|
||
selectTarget:-1,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
var targets=[player,target];
|
||
event.cards=[targets[0].get('e'),targets[1].get('e')];
|
||
targets[0].lose(event.cards[0],ui.special);
|
||
targets[1].lose(event.cards[1],ui.special);
|
||
if(event.cards[0].length) targets[0].$give(event.cards[0],targets[1]);
|
||
if(event.cards[1].length) targets[1].$give(event.cards[1],targets[0]);
|
||
"step 1"
|
||
var targets=[player,target];
|
||
for(var i=0;i<event.cards[1].length;i++){
|
||
targets[0].equip(event.cards[1][i]);
|
||
}
|
||
for(var i=0;i<event.cards[0].length;i++){
|
||
targets[1].equip(event.cards[0][i]);
|
||
}
|
||
"step 2"
|
||
var dh=target.num('h')-player.num('h');
|
||
if(dh>0){
|
||
player.draw(dh);
|
||
}
|
||
},
|
||
ai:{
|
||
order:7,
|
||
value:1,
|
||
useful:1,
|
||
result:{
|
||
target:function(player,target){
|
||
var ne1=target.num('e'),ne2=player.num('e');
|
||
var nh1=target.num('h'),nh2=player.num('h');
|
||
if(nh1<nh2) nh1=nh2;
|
||
if(ne2-ne1<nh1-nh2+ne1-ne2) return -1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_xiaoshi:{
|
||
type:'stonecard',
|
||
fullimage:true,
|
||
enable:true,
|
||
stoneact:2,
|
||
selectTarget:-1,
|
||
filterTarget:function(card,player,target){
|
||
return target==player.getEnemy();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
target.gain(target.get('e'),'gain2');
|
||
'step 1'
|
||
var dh=target.num('h')-player.num('h');
|
||
if(dh>0){
|
||
target.discard(target.get('h').randomGets(dh));
|
||
}
|
||
},
|
||
ai:{
|
||
order:1,
|
||
value:1,
|
||
useful:1,
|
||
result:{
|
||
target:function(player,target){
|
||
if(target.num('he')>=player.num('h')) return -1;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
},
|
||
skill:{
|
||
stone_mieshi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
list.sort(lib.sort.seat);
|
||
event.list=list;
|
||
"step 1"
|
||
if(event.list.length){
|
||
var current=event.list.shift();
|
||
current.damage(2,'fire');
|
||
player.line(current,'fire');
|
||
event.redo();
|
||
}
|
||
"step 2"
|
||
var target=player.getLeader();
|
||
var hs=target.get('h');
|
||
if(hs.length){
|
||
target.discard(hs);
|
||
}
|
||
game.delay();
|
||
}
|
||
},
|
||
stone_fushi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:false,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()){
|
||
list.push(game.players[i]);
|
||
game.players[i].recover(game.players[i].maxHp);
|
||
}
|
||
}
|
||
player.line(list,'green');
|
||
}
|
||
},
|
||
stone_chenshui:{
|
||
trigger:{player:'phaseEnd'},
|
||
forced:true,
|
||
content:function(){
|
||
var list=['hsmengjing_feicuiyoulong','hsmengjing_huanxiaojiemei',
|
||
'hsmengjing_suxing','hsmengjing_mengye','hsmengjing_mengjing'];
|
||
var target=player.getLeader();
|
||
target.gain(game.createCard(list.randomGet()));
|
||
target.$draw();
|
||
player.line(target,'green');
|
||
},
|
||
ai:{
|
||
threaten:2
|
||
}
|
||
},
|
||
stone_shixu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:false,
|
||
filter:function(event,player){
|
||
return _status.currentPhase==player.getLeader();
|
||
},
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
target.actused-=4;
|
||
target.updateActCount();
|
||
player.line(target,'green');
|
||
}
|
||
},
|
||
stone_mowang:{
|
||
trigger:{global:'damageBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.source&&event.source!=player&&
|
||
player.side==event.source.side&&event.notLink()&&
|
||
event.card&&get.type(event.card)=='stonecard';
|
||
},
|
||
content:function(){
|
||
if(trigger.player.isMin()){
|
||
trigger.num+=4;
|
||
}
|
||
else{
|
||
trigger.num+=2;
|
||
}
|
||
},
|
||
ai:{
|
||
threaten:1.6
|
||
}
|
||
},
|
||
|
||
stone_zhiyin:{
|
||
trigger:{global:'useCard'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecard'&&event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
trigger.player.gain(game.createCard('spell_huoqiushu'),'gain2');
|
||
},
|
||
ai:{
|
||
threaten:1.5
|
||
}
|
||
},
|
||
stone_bianshen:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().career=='warlock';
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var target=player.getLeader();
|
||
if(target.name=='stone_jialakesix'){
|
||
target.hp=target.maxHp;
|
||
target.update();
|
||
target.actused-=6;
|
||
target.updateActCount();
|
||
target.storage.stone_lianyu++;
|
||
}
|
||
else{
|
||
if(target.name2){
|
||
target.storage.stone_lianyu=1;
|
||
}
|
||
else{
|
||
target.storage.stone_lianyu=0;
|
||
}
|
||
target.init('stone_jialakesix');
|
||
game.addVideo('reinit2',target,'stone_jialakesix');
|
||
}
|
||
target.syncStorage('stone_lianyu');
|
||
game.delay();
|
||
'step 1'
|
||
player.die()._triggered=null;
|
||
}
|
||
},
|
||
stone_jinu:{
|
||
trigger:{player:'phaseDrawBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return player.isDamaged();
|
||
},
|
||
content:function(){
|
||
trigger.num+=2;
|
||
},
|
||
ai:{
|
||
threaten:function(player,target){
|
||
if(target.hp<target.maxHp) return 2;
|
||
return 0.5;
|
||
},
|
||
maixie:true,
|
||
effect:{
|
||
target:function(card,player,target){
|
||
if(target.maxHp<=3) return;
|
||
if(get.tag(card,'damage')){
|
||
if(target.hp==target.maxHp) return [0,1];
|
||
}
|
||
if(get.tag(card,'recover')&&player.hp>=player.maxHp-1) return [0,0];
|
||
}
|
||
}
|
||
}
|
||
},
|
||
stone_lianyu:{
|
||
mark:true,
|
||
intro:{
|
||
content:function(storage){
|
||
return '地狱火的初始手牌数和体力值为'+(storage+2);
|
||
}
|
||
},
|
||
ai:{
|
||
threaten:function(player,target){
|
||
return 1+target.storage.stone_lianyu;
|
||
},
|
||
}
|
||
},
|
||
stone_lianji:{
|
||
trigger:{global:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player.side==player.side&&event.source!=player;
|
||
},
|
||
content:function(){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
player.draw();
|
||
},
|
||
ai:{
|
||
threaten:2
|
||
}
|
||
},
|
||
stone_shenyu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
var target=player.getLeader();
|
||
var next=target.chooseControl('召唤树人','增强随从');
|
||
next.prompt='召唤两个嘲讽树人,或令所有其他随从增加一点体力和体力上限并摸两张牌';
|
||
next.ai=function(){
|
||
if(target.countFellow()<=2) return '召唤树人';
|
||
return '增强随从';
|
||
}
|
||
'step 1'
|
||
if(result.control=='增强随从'){
|
||
var targets=player.getLeader().getFellow();
|
||
targets.remove(player);
|
||
for(var i=0;i<targets.length;i++){
|
||
targets[i].hp++;
|
||
targets[i].maxHp++;
|
||
targets[i].update();
|
||
}
|
||
game.asyncDraw(targets,2);
|
||
event.finish();
|
||
}
|
||
'step 2'
|
||
var target=player.getLeader();
|
||
if(target.canAddFellow()){
|
||
target.addFellowAuto('stone_shurenxx');
|
||
}
|
||
'step 3'
|
||
var target=player.getLeader();
|
||
if(target.canAddFellow()){
|
||
target.addFellowAuto('stone_shurenxx');
|
||
}
|
||
}
|
||
},
|
||
stone_fuchou:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('stone_fuchou2');
|
||
},
|
||
},
|
||
stone_fuchou2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('stone_fuchou');
|
||
},
|
||
content:function(){
|
||
game.delay();
|
||
player.removeSkill('stone_fuchou2');
|
||
var targets=player.getEnemy().getFellow();
|
||
if(targets.length){
|
||
player.useCard(targets,game.createCard('spell_fuchouzhinu'),false).noActCount=true;
|
||
}
|
||
}
|
||
},
|
||
stone_shenyou:{
|
||
ai:{
|
||
threaten:1.6
|
||
}
|
||
},
|
||
|
||
warlock_anyu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(lib.card[i].type=='stonecharacter'||lib.card[i].type){
|
||
if(lib.card[i].stoneact==1){
|
||
list.push(i);
|
||
}
|
||
}
|
||
}
|
||
list=list.randomGets(3);
|
||
var cards=[];
|
||
for(var i=0;i<list.length;i++){
|
||
cards.push(game.createCard(list[i]));
|
||
}
|
||
player.getLeader().chooseCardButton(cards,'选择一张加入手牌',true);
|
||
'step 1'
|
||
player.getLeader().gain(result.links,'draw');
|
||
}
|
||
},
|
||
warlock_zhaohuan:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('warlock_zhaohuan2');
|
||
},
|
||
ai:{
|
||
threaten:0.9
|
||
}
|
||
},
|
||
warlock_zhaohuan2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('warlock_zhaohuan');
|
||
},
|
||
content:function(){
|
||
game.delay();
|
||
player.removeSkill('warlock_zhaohuan2');
|
||
var hs=player.get('h',function(card){
|
||
return get.type(card)=='stonecharacter';
|
||
});
|
||
if(hs.length&&player.canAddFellow()){
|
||
player.useCard(player,hs.randomGet(),false).noActCount=true;
|
||
}
|
||
}
|
||
},
|
||
warlock_huanmeng:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
var hs=target.get('h');
|
||
if(hs.length){
|
||
target.discard(hs.randomGets(1));
|
||
}
|
||
}
|
||
},
|
||
warlock_tongku:{
|
||
trigger:{source:'damageEnd'},
|
||
unique:true,
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().isDamaged();
|
||
},
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
player.line(target,'green');
|
||
target.recover();
|
||
},
|
||
ai:{
|
||
threaten:1.3
|
||
}
|
||
},
|
||
warlock_tunshi:{
|
||
trigger:{source:'fellow'},
|
||
unique:true,
|
||
forced:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side==player.side&&game.players[i]!=player){
|
||
return true;
|
||
}
|
||
}
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('吞噬:令一名友方随从死亡',function(card,playerx,target){
|
||
return player!=target&&target.isMin()&&target.side==player.side;
|
||
},true).ai=function(target){
|
||
return -target.hp-target.num('h')/4;
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
game.delay();
|
||
var target=result.targets[0];
|
||
var hs=target.get('h');
|
||
if(hs.length){
|
||
player.gain(hs);
|
||
}
|
||
target.$give(hs.length,player);
|
||
player.hp+=target.hp;
|
||
player.maxHp+=target.hp;
|
||
player.update();
|
||
target.die();
|
||
}
|
||
}
|
||
},
|
||
warlock_shijie:{
|
||
trigger:{global:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
player.draw();
|
||
},
|
||
ai:{
|
||
threaten:1.6
|
||
}
|
||
},
|
||
|
||
warrior_heiyao:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
direct:true,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader()&&event.player.canAddFellow();
|
||
},
|
||
content:function(){
|
||
trigger.player.addFellowAuto('stone_shengjiachong');
|
||
},
|
||
ai:{
|
||
threaten:1.3
|
||
}
|
||
},
|
||
warrior_fenyong:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().num('h',{type:'stonecharacter'})>0;
|
||
},
|
||
content:function(){
|
||
player.addSkill('stone_chongfeng');
|
||
if(player.isTurnedOver()){
|
||
player.turnOver();
|
||
}
|
||
}
|
||
},
|
||
warrior_peilian:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=player&&game.players[i].isMin()&&
|
||
!game.players[i].hasSkill('chaofeng')) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('陪练:令一名随从获得嘲讽',function(card,playerx,target){
|
||
return player!=target&&target.isMin()&&!target.hasSkill('chaofeng');
|
||
}).ai=function(target){
|
||
return ai.get.attitude(event.chooser,target)*target.hp;
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].addSkill('chaofeng');
|
||
}
|
||
}
|
||
},
|
||
warrior_chuanci:{
|
||
trigger:{source:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var target=event.player;
|
||
if(target.side==player.side) return false;
|
||
if(event.parent.name=='warrior_chuanci') return false;
|
||
if(!target.isMin()) return false;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=target&&game.players[i].isMin()&&game.players[i].side!=player.side) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=trigger.player&&game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
var target=list.randomGet();
|
||
player.line(target,'green');
|
||
target.damage(trigger.num);
|
||
}
|
||
}
|
||
},
|
||
warrior_zhifu:{
|
||
trigger:{player:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getEnemy();
|
||
player.line(target,'green');
|
||
target.damage();
|
||
}
|
||
},
|
||
|
||
priest_puzhao:{
|
||
trigger:{source:'fellow'},
|
||
unique:true,
|
||
forced:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&
|
||
game.players[i]!=player&&game.players[i].isMin()) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('普照:选择一名己方随从增加两点体力和体力上限',function(card,playerx,target){
|
||
return player!=target&&player.side==target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return ai.get.attitude(event.chooser,target)*Math.max(1,10-target.hp);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].maxHp+=2;
|
||
result.targets[0].hp+=2;
|
||
result.targets[0].update();
|
||
}
|
||
}
|
||
},
|
||
priest_suoxiao:{
|
||
trigger:{source:'fellow'},
|
||
unique:true,
|
||
forced:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=player&&game.players[i].isMin()&&game.players[i].maxHp>1) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('缩小:令一名随从减少两点体力上限',function(card,playerx,target){
|
||
return player!=target&&target.isMin()&&target.maxHp>1;
|
||
}).ai=function(target){
|
||
if(ai.get.attitude(player,target)>=0) return 0;
|
||
if(target.hp==1) return 0.01;
|
||
if(target.maxHp-target.hp>=2) return 0.01;
|
||
if(target.maxHp-target.hp==1){
|
||
if(target.hp==2) return 1;
|
||
return 0.1;
|
||
}
|
||
switch(target.hp){
|
||
case 1:return 0.01;
|
||
case 2:return 1;
|
||
case 3:return 2;
|
||
case 4:return 1.5;
|
||
case 5:return 1;
|
||
default:return 0.8;
|
||
}
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].maxHp-=2;
|
||
if(result.targets[0].maxHp<1){
|
||
result.targets[0].maxHp=1;
|
||
}
|
||
result.targets[0].update();
|
||
}
|
||
}
|
||
},
|
||
priest_shixin:{
|
||
trigger:{global:'useSkillAfter'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.career&&event.player.side==player.side;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var target=player.getLeader();
|
||
target.damage();
|
||
player.line(target,'green');
|
||
'step 1'
|
||
var target=player.getEnemy();
|
||
target.damage();
|
||
player.line(target,'green');
|
||
}
|
||
},
|
||
priest_shengshui:{
|
||
trigger:{player:'phaseBegin'},
|
||
unique:true,
|
||
forced:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()) return true;
|
||
}
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&game.players[i].isDamaged()){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
var target=list.randomGet();
|
||
target.recover(2);
|
||
player.line(target,'green');
|
||
}
|
||
},
|
||
ai:{
|
||
threaten:1.5
|
||
},
|
||
group:'priest_shengshui2'
|
||
},
|
||
priest_shengshui2:{
|
||
trigger:{player:'phaseDrawBefore'},
|
||
forced:true,
|
||
popup:false,
|
||
content:function(){
|
||
trigger.untrigger();
|
||
trigger.finish();
|
||
},
|
||
ai:{
|
||
effect:{
|
||
target:function(card){
|
||
if(card.name=='bingliang') return 0;
|
||
}
|
||
},
|
||
noPhaseDelay:1
|
||
}
|
||
},
|
||
priest_muguang:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().num('h',{type:'stonecharacter'})>0;
|
||
},
|
||
content:function(){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
}
|
||
},
|
||
|
||
hunter_mishi:{
|
||
trigger:{global:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player.side==player.side&&event.source!=player;
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
}
|
||
},
|
||
hunter_muyang:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().countFellow()>1&&player.getLeader().canAddFellow();
|
||
},
|
||
content:function(){
|
||
var num=player.getLeader().countFellow()-1;
|
||
var list=[];
|
||
for(var i in lib.character){
|
||
if(lib.character[i][4].contains('stone')&&
|
||
!lib.character[i][4].contains('stonehidden')&&
|
||
lib.character[i][5]&&lib.character[i][5][0]==num){
|
||
list.push(i);
|
||
}
|
||
}
|
||
var target=player.getLeader();
|
||
if(list.length){
|
||
target.addFellowAuto(list.randomGet());
|
||
}
|
||
}
|
||
},
|
||
hunter_juji:{
|
||
unique:true
|
||
},
|
||
hunter_dusha:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
var target=player.getLeader();
|
||
for(var i=0;i<target.deckCards.length;i++){
|
||
if(get.type(target.deckCards[i])=='stonecharacter'&&
|
||
get.info(target.deckCards[i]).stoneact==1){
|
||
list.push(target.deckCards[i]);
|
||
}
|
||
}
|
||
if(list.length&&target.canAddFellow()){
|
||
target.useCard(target,list.randomGet(),false).noActCount=true;
|
||
}
|
||
'step 1'
|
||
var list=[];
|
||
var target=player.getEnemy();
|
||
for(var i=0;i<target.deckCards.length;i++){
|
||
if(get.type(target.deckCards[i])=='stonecharacter'&&
|
||
get.info(target.deckCards[i]).stoneact==1){
|
||
list.push(target.deckCards[i]);
|
||
}
|
||
}
|
||
if(list.length&&target.canAddFellow()){
|
||
target.useCard(target,list.randomGet(),false).noActCount=true;
|
||
}
|
||
}
|
||
},
|
||
hunter_chuanlin:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var list=[];
|
||
var target=player.getLeader();
|
||
for(var i=0;i<target.deckCards.length;i++){
|
||
if(get.type(target.deckCards[i])=='stonecharacter'){
|
||
list.push(target.deckCards[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
target.gain(target,list.randomGet(),'gain2');
|
||
}
|
||
}
|
||
},
|
||
hunter_zhanhuo:{
|
||
global:'hunter_zhanhuo2',
|
||
ai:{
|
||
threaten:1.8
|
||
}
|
||
},
|
||
hunter_zhanhuo2:{
|
||
trigger:{player:'phaseDrawBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return player.hasFellowSkill('hunter_zhanhuo',true)&&player.isMin();
|
||
},
|
||
content:function(){
|
||
trigger.num+=player.countFellowSkill('hunter_zhanhuo',true);
|
||
}
|
||
},
|
||
|
||
rogue_jiaoyi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var target=player.getLeader();
|
||
return target.num('e')>0;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseToDiscard('是否弃置一张装备牌令'+get.translation(player)+'摸三张牌?',
|
||
'he',function(card){
|
||
return get.type(card)=='equip';
|
||
}).ai=function(card){
|
||
return 7-ai.get.value(card);
|
||
};
|
||
"step 1"
|
||
if(result.bool){
|
||
player.draw(3);
|
||
}
|
||
}
|
||
},
|
||
rogue_jielue:{
|
||
trigger:{global:'equipEnd'},
|
||
unique:true,
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.player.side==player.side&&get.subtype(event.card)=='equip1';
|
||
},
|
||
content:function(){
|
||
player.draw(2);
|
||
},
|
||
ai:{
|
||
threaten:1.3
|
||
}
|
||
},
|
||
rogue_fusheng:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].hp>1){
|
||
return true;
|
||
}
|
||
}
|
||
},
|
||
content:function(){
|
||
var num=1;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].hp>num){
|
||
num=game.players[i].hp;
|
||
}
|
||
}
|
||
player.hp=num;
|
||
player.maxHp=num;
|
||
player.update();
|
||
}
|
||
},
|
||
rogue_lifa:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
var target=player.getLeader();
|
||
if(target.get('e','1')){
|
||
target=target.getEnemy();
|
||
player.line(target,'green');
|
||
target.damage();
|
||
}
|
||
else{
|
||
player.line(target,'green');
|
||
var equip1=get.cardPile(function(card){
|
||
return get.subtype(card)=='equip1';
|
||
});
|
||
if(!equip1){
|
||
equip1=game.createCard('qingnang');
|
||
}
|
||
target.equip(equip1);
|
||
}
|
||
}
|
||
},
|
||
rogue_shoudao:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
direct:true,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader()&&event.player.countFellow()>1;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var players=get.players();
|
||
var targets=[];
|
||
for(var i=0;i<players.length;i++){
|
||
if(players[i].side==player.side&&players[i].isMin()&&players[i]!=player){
|
||
targets.push(players[i]);
|
||
}
|
||
}
|
||
if(targets.length){
|
||
var target=targets.randomGet();
|
||
player.logSkill('rogue_shoudao',target);
|
||
target.maxHp++;
|
||
target.hp++;
|
||
target.update();
|
||
target.draw();
|
||
}
|
||
},
|
||
ai:{
|
||
threaten:1.8
|
||
}
|
||
},
|
||
rogue_duxing:{
|
||
trigger:{global:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player.side!=player.side&&!player.hasSkill('stone_qianxing');
|
||
},
|
||
content:function(){
|
||
player.addSkill('stone_qianxing');
|
||
}
|
||
},
|
||
|
||
paladin_moma:{
|
||
global:'paladin_moma2',
|
||
ai:{
|
||
threaten:1.5
|
||
}
|
||
},
|
||
paladin_moma2:{
|
||
trigger:{player:'phaseDrawBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return player.name=='stone_xinbing'&&player.hasFellowSkill('paladin_moma');
|
||
},
|
||
content:function(){
|
||
trigger.num+=player.countFellowSkill('paladin_moma');
|
||
}
|
||
},
|
||
paladin_jinghua:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&game.players[i].num('h')>1){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&game.players[i].num('h')>1){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
list.sort(lib.sort.seat);
|
||
event.list=list;
|
||
"step 1"
|
||
if(event.list.length){
|
||
var current=event.list.shift();
|
||
current.damage(2);
|
||
player.line(current,'green');
|
||
event.redo();
|
||
}
|
||
}
|
||
},
|
||
paladin_tuxi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var leader=player.getLeader();
|
||
return leader.hp<leader.maxHp;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
player.line(target,'green');
|
||
var target=player.getLeader();
|
||
event.target=target;
|
||
target.judge(function(card){
|
||
return get.color(card)=='red'?1:0
|
||
});
|
||
'step 1'
|
||
if(result.color=='red'){
|
||
event.target.recover();
|
||
}
|
||
}
|
||
},
|
||
paladin_huashi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&
|
||
(game.players[i].hp!=2||game.players[i].maxHp!=2)) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('化石:令一名随从的体力值及体力上限变为2',function(card,playerx,target){
|
||
return player!=target&&target.isMin()&&(target.hp!=2||target.maxHp!=2);
|
||
}).ai=function(target){
|
||
if(target.hp==2&&target.maxHp>2){
|
||
return ai.get.attitude(event.chooser,target)*(2-target.maxHp)/100;
|
||
}
|
||
return ai.get.attitude(event.chooser,target)*(2-target.hp);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].hp=2;
|
||
result.targets[0].maxHp=2;
|
||
result.targets[0].update();
|
||
}
|
||
}
|
||
},
|
||
paladin_baowei:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&
|
||
game.players[i]!=player&&game.players[i].isMin()) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('保卫:令一名友方随从获得一点护甲',function(card,playerx,target){
|
||
return player!=target&&player.side==target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return ai.get.attitude(event.chooser,target);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].changeHujia();
|
||
}
|
||
}
|
||
},
|
||
paladin_miying:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getEnemy();
|
||
var added=[];
|
||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||
if(get.type(ui.cardPile.childNodes[i])=='delay'){
|
||
var name=ui.cardPile.childNodes[i].name;
|
||
if(!added.contains(name)&&!target.hasJudge(name)){
|
||
target.addJudge(ui.cardPile.childNodes[i]);
|
||
added.add(name);
|
||
}
|
||
}
|
||
}
|
||
for(var i=0;i<ui.discardPile.childNodes.length;i++){
|
||
if(get.type(ui.discardPile.childNodes[i])=='delay'){
|
||
var name=ui.discardPile.childNodes[i].name;
|
||
if(!added.contains(name)&&!target.hasJudge(name)){
|
||
target.addJudge(ui.discardPile.childNodes[i]);
|
||
added.add(name);
|
||
}
|
||
}
|
||
}
|
||
if(added.length){
|
||
player.line(target,'green');
|
||
}
|
||
}
|
||
},
|
||
|
||
mage_yufa:{
|
||
trigger:{global:'useSkillAfter'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.career&&event.player.side==player.side;
|
||
},
|
||
content:function(){
|
||
trigger.player.actused--;
|
||
trigger.player.updateActCount();
|
||
}
|
||
},
|
||
mage_pingxu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(lib.card[i].type=='stonecard'){
|
||
list.push(i);
|
||
}
|
||
}
|
||
list=list.randomGets(3);
|
||
var cards=[];
|
||
for(var i=0;i<list.length;i++){
|
||
cards.push(game.createCard(list[i]));
|
||
}
|
||
player.getLeader().chooseCardButton(cards,'选择一张法术加入手牌',true);
|
||
'step 1'
|
||
player.getLeader().gain(result.links,'draw');
|
||
}
|
||
},
|
||
mage_gushou:{
|
||
trigger:{global:'damageBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
if(event.num<=1) return false;
|
||
return event.player==player.getLeader();
|
||
},
|
||
priority:-11,
|
||
content:function(){
|
||
trigger.num=1;
|
||
}
|
||
},
|
||
mage_jili:{
|
||
trigger:{global:'useSkillAfter'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.career&&event.player.side==player.side;
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
}
|
||
},
|
||
mage_aoshu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().gain(game.createCard('spell_aoshuzhihui'),'gain2');
|
||
}
|
||
},
|
||
mage_yanshu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().num('e')>0&&player.getEnemy().hasFellow();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var num=player.getLeader().num('e');
|
||
var map=[];
|
||
var targets=player.getEnemy().getFellow();
|
||
event.targets=targets;
|
||
for(var i=0;i<targets.length;i++){
|
||
map.push(0);
|
||
}
|
||
for(var i=0;i<num;i++){
|
||
map[Math.floor(Math.random()*map.length)]++;
|
||
}
|
||
event.num=0;
|
||
event.map=map;
|
||
'step 1'
|
||
var targets=event.targets;
|
||
if(event.num<targets.length){
|
||
if(event.map[event.num]){
|
||
player.line(targets[event.num],'fire')
|
||
targets[event.num].damage(event.map[event.num],'fire');
|
||
}
|
||
event.num++;
|
||
event.redo();
|
||
}
|
||
}
|
||
},
|
||
|
||
druid_juhuo:{
|
||
trigger:{global:'dieAfter'},
|
||
filter:function(event,player){
|
||
return event.player.isMin()&&_status.currentPhase==player.getLeader();
|
||
},
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
target.actused--;
|
||
target.updateActCount();
|
||
player.line(target,'green');
|
||
}
|
||
},
|
||
druid_yeyou:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
game.asyncDraw([player.getLeader(),player.getEnemy()],1,{drawDeck:1});
|
||
}
|
||
},
|
||
druid_chicheng:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var target=player.getLeader();
|
||
return _status.currentPhase==target&&target.countFellow()>1;
|
||
},
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
var num=target.countFellow();
|
||
if(num>1){
|
||
target.actused-=num-1;
|
||
target.updateActCount();
|
||
}
|
||
}
|
||
},
|
||
druid_qicheng:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('druid_qicheng2');
|
||
},
|
||
ai:{
|
||
threaten:0.8
|
||
}
|
||
},
|
||
druid_qicheng2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('druid_qicheng');
|
||
},
|
||
content:function(){
|
||
game.delay();
|
||
var list=[];
|
||
for(var i in lib.character){
|
||
if(lib.character[i][4].contains('stone')&&
|
||
!lib.character[i][4].contains('stonehidden')&&
|
||
lib.character[i][5]&&lib.character[i][5][0]==1){
|
||
list.push(i);
|
||
}
|
||
}
|
||
player.addFellowAuto(list.randomGet());
|
||
player.removeSkill('druid_qicheng2');
|
||
}
|
||
},
|
||
druid_renya:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
player.getLeader().chooseControl('冲锋','潜行').ai=function(){
|
||
if(Math.random()<0.5) return '潜行';
|
||
return '冲锋';
|
||
}
|
||
'step 1'
|
||
if(result.control=='潜行'){
|
||
player.maxHp++;
|
||
player.hp++;
|
||
player.update();
|
||
player.addSkill('stone_qianxing');
|
||
}
|
||
else{
|
||
player.draw();
|
||
player.addSkill('stone_chongfeng');
|
||
if(player.isTurnedOver()){
|
||
player.turnOver();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
druid_yuehuo:{
|
||
trigger:{global:'damageBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event){
|
||
return event.card&&get.type(event.card)=='trick'&&event.notLink();
|
||
},
|
||
content:function(){
|
||
trigger.num++;
|
||
},
|
||
},
|
||
|
||
shaman_anhun:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player.side==player.side;
|
||
},
|
||
content:function(){
|
||
player.line(player.getLeader(),'green');
|
||
player.getLeader().drawDeck();
|
||
}
|
||
},
|
||
shaman_zoushi:{
|
||
trigger:{global:'useCardAfter'},
|
||
direct:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecharacter'&&event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
if(!player.storage.shaman_zoushi){
|
||
player.storage.shaman_zoushi=true;
|
||
}
|
||
else{
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
var target=list.randomGet();
|
||
player.line(target,'green');
|
||
target.damage();
|
||
game.delay();
|
||
player.logSkill('shaman_zoushi');
|
||
}
|
||
},
|
||
ai:{
|
||
threaten:1.3
|
||
}
|
||
},
|
||
shaman_zhuhuo:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.draw(Math.ceil(Math.random()*3));
|
||
}
|
||
},
|
||
shaman_peiyu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var fellows=player.getLeader().getFellow();
|
||
for(var i=0;i<fellows.length;i++){
|
||
if(fellows[i].hasSkill('shaman_tuteng')) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var num=0;
|
||
var fellows=player.getLeader().getFellow();
|
||
for(var i=0;i<fellows.length;i++){
|
||
if(fellows[i].hasSkill('shaman_tuteng')) num++;
|
||
}
|
||
player.maxHp+=num;
|
||
player.hp+=num;
|
||
player.update();
|
||
}
|
||
},
|
||
shaman_huoli:{
|
||
trigger:{global:'phaseUseBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player.career&&player.side==event.player.side;
|
||
},
|
||
content:function(){
|
||
player.line(trigger.player,'green');
|
||
trigger.player.actused--;
|
||
trigger.player.updateActCount();
|
||
},
|
||
ai:{
|
||
threaten:1.5
|
||
}
|
||
},
|
||
|
||
warlock_fushishu:{
|
||
trigger:{player:'phaseAfter'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'下个回合结束后死亡'
|
||
},
|
||
content:function(){
|
||
player.die();
|
||
},
|
||
ai:{
|
||
threaten:0.1
|
||
}
|
||
},
|
||
|
||
paladin_zhengqianghaosheng:{
|
||
trigger:{player:'phaseBegin'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'在你的下一回合开始时,令所有友方随从增加一点体力和体力上限并摸一张牌'
|
||
},
|
||
content:function(){
|
||
player.removeSkill('paladin_zhengqianghaosheng');
|
||
var list=player.getFellow();
|
||
for(var i=0;i<list.length;i++){
|
||
list[i].maxHp++;
|
||
list[i].hp++;
|
||
list[i].update();
|
||
}
|
||
game.asyncDraw(list);
|
||
}
|
||
},
|
||
paladin_zhihuizhufu:{
|
||
trigger:{player:'phaseBegin'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:function(storage){
|
||
return '回合开始阶段,'+get.translation(storage)+'从牌库中获得一张牌';
|
||
}
|
||
},
|
||
filter:function(event,player){
|
||
return game.players.contains(player.storage.paladin_zhihuizhufu);
|
||
},
|
||
content:function(){
|
||
player.storage.paladin_zhihuizhufu.drawDeck();
|
||
}
|
||
},
|
||
|
||
priest_kuaisuzhiliao:{
|
||
mark:true,
|
||
intro:{
|
||
content:'本回合手牌上限-1'
|
||
},
|
||
marktext:'治',
|
||
mod:{
|
||
maxHandcard:function(player,num){
|
||
return num-1;
|
||
}
|
||
}
|
||
},
|
||
priest_anyingxingtai:{
|
||
intro:{
|
||
content:function(storage,player){
|
||
return '职业技能改为造成'+get.cnNumber(player.storage.anyingxingtai)+'点伤害';
|
||
}
|
||
}
|
||
},
|
||
hunter_tanxianmao:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
mark:true,
|
||
marktext:'帽',
|
||
intro:{
|
||
content:'你死亡时,将一张探险帽置入主将的手牌'
|
||
},
|
||
content:function(){
|
||
player.getLeader().addSkill('hunter_tanxianmao2');
|
||
}
|
||
},
|
||
hunter_tanxianmao2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('hunter_tanxianmao');
|
||
},
|
||
content:function(){
|
||
player.gain(game.createCard('spell_tanxianmao'),'gain2');
|
||
player.removeSkill('hunter_tanxianmao2');
|
||
}
|
||
},
|
||
rogue_zhumo:{
|
||
trigger:{player:'discardAfter'},
|
||
filter:function(event,player){
|
||
for(var i=0;i<event.cards.length;i++){
|
||
if(get.position(event.cards[i])=='d'){
|
||
if(event.cards[i].name=='spell_zhumo') return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
forced:true,
|
||
popup:false,
|
||
content:function(){
|
||
'step 0'
|
||
event.num=0;
|
||
for(var i=0;i<trigger.cards.length;i++){
|
||
if(get.position(trigger.cards[i])=='d'){
|
||
if(trigger.cards[i].name=='spell_zhumo') event.num++;
|
||
}
|
||
}
|
||
event.target=player.getEnemy();
|
||
"step 1"
|
||
if(event.num--&&event.target.canAddFellow()){
|
||
event.target.addFellowAuto('stone_zhumo');
|
||
event.redo();
|
||
}
|
||
},
|
||
},
|
||
|
||
druid_conglinzhihun:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'你死亡后,召唤一个树人'
|
||
},
|
||
content:function(){
|
||
player.getLeader().addSkill('druid_conglinzhihun2');
|
||
},
|
||
ai:{
|
||
threaten:0.8
|
||
}
|
||
},
|
||
druid_conglinzhihun2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('druid_conglinzhihun');
|
||
},
|
||
content:function(){
|
||
game.delay();
|
||
player.addFellowAuto('stone_shurenx');
|
||
player.removeSkill('druid_conglinzhihun2');
|
||
}
|
||
},
|
||
shaman_xianzuzhishi:{
|
||
mark:true,
|
||
intro:{
|
||
content:'本回合手牌上限-1'
|
||
},
|
||
marktext:'祖',
|
||
mod:{
|
||
maxHandcard:function(player,num){
|
||
return num-1;
|
||
}
|
||
}
|
||
},
|
||
shaman_xianzuzhihun:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'你死亡后,召唤一个自身的复制'
|
||
},
|
||
marktext:'魂',
|
||
content:function(){
|
||
var target=player.getLeader()
|
||
target.addSkill('shaman_xianzuzhihun2');
|
||
target.storage.shaman_xianzuzhihun=player.name;
|
||
},
|
||
ai:{
|
||
threaten:0.5
|
||
}
|
||
},
|
||
shaman_xianzuzhihun2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
if(!player.storage.shaman_xianzuzhihun) return false;
|
||
return event.player.hasSkill('shaman_xianzuzhihun');
|
||
},
|
||
content:function(){
|
||
game.delay();
|
||
player.addFellowAuto(player.storage.shaman_xianzuzhihun);
|
||
player.removeSkill('shaman_xianzuzhihun2');
|
||
delete player.storage.shaman_xianzuzhihun;
|
||
}
|
||
},
|
||
|
||
shaman_fengnu:{
|
||
unique:true,
|
||
trigger:{player:'phaseAfter'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'结合结束后,你获得一个额外的回合'
|
||
},
|
||
filter:function(event,player){
|
||
return event.parent.name!='shaman_fengnu';
|
||
},
|
||
content:function(){
|
||
player.phase();
|
||
},
|
||
ai:{
|
||
order:-10,
|
||
result:{
|
||
target:2
|
||
},
|
||
threaten:1.5
|
||
}
|
||
},
|
||
shaman_shihuawuqi:{
|
||
trigger:{player:'phaseBegin'},
|
||
forced:true,
|
||
content:function(){
|
||
player.draw(3);
|
||
},
|
||
mark:true,
|
||
intro:{
|
||
content:'回合开始阶段,摸三张牌'
|
||
},
|
||
group:'shaman_shihuawuqi2'
|
||
},
|
||
shaman_shihuawuqi2:{
|
||
trigger:{global:'phaseBegin'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
player.removeSkill('shaman_shihuawuqi');
|
||
}
|
||
},
|
||
mage_hanbingpingzhang:{
|
||
trigger:{player:['damageBegin','loseHpBegin']},
|
||
forced:true,
|
||
unique:true,
|
||
priority:-55,
|
||
mark:true,
|
||
filter:function(event,player){
|
||
return player.hp-event.num<2;
|
||
},
|
||
content:function(){
|
||
trigger.num=player.hp-2;
|
||
},
|
||
intro:{
|
||
content:'体力值不能降至2以内'
|
||
},
|
||
marktext:'屏',
|
||
ai:{
|
||
effect:{
|
||
target:function(card,player,target){
|
||
if(get.tag(card,'damage')||get.tag(card,'loseHp')){
|
||
if(target.hp<=2) return 0;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
group:'mage_hanbingpingzhang2'
|
||
},
|
||
mage_hanbingpingzhang2:{
|
||
trigger:{global:'phaseBegin'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
player.removeSkill('mage_hanbingpingzhang');
|
||
}
|
||
},
|
||
spell_modaoyou:{
|
||
intro:{
|
||
content:function(storage){
|
||
return '下次剑刃乱舞的伤害+'+storage;
|
||
}
|
||
}
|
||
},
|
||
hunter_jiewang2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('hunter_jiewang');
|
||
},
|
||
content:function(){
|
||
player.gain(game.createCard(lib.beastList.randomGet()+'_stonecharacter'),'draw');
|
||
player.removeSkill('hunter_jiewang2');
|
||
}
|
||
},
|
||
hunter_zidanshangtang:{
|
||
trigger:{player:'useCard'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'每当你使用一张法术牌,便随机获得一张猎人职业法术牌'
|
||
},
|
||
filter:function(event){
|
||
return get.type(event.card)=='stonecard';
|
||
},
|
||
content:function(){
|
||
var list=['spell_lierenyinji','spell_guanmenfanggou','spell_duochongsheji','spell_kuaisusheji','spell_zhaohuanchongwu'];
|
||
player.gain(game.createCard(list.randomGet()),'draw');
|
||
}
|
||
},
|
||
spell_yemanpaoxiao:{
|
||
mark:true,
|
||
intro:{
|
||
content:'友方角色造成的伤害+1'
|
||
},
|
||
global:'spell_yemanpaoxiao2'
|
||
},
|
||
spell_yemanpaoxiao2:{
|
||
trigger:{source:'damageBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().hasSkill('spell_yemanpaoxiao')&&event.notLink();
|
||
},
|
||
content:function(){
|
||
trigger.num++;
|
||
}
|
||
},
|
||
stone_zibao:{
|
||
trigger:{player:'phaseAfter'},
|
||
forced:true,
|
||
content:function(){
|
||
player.die();
|
||
}
|
||
},
|
||
spell_sijidaifa:{
|
||
trigger:{player:'useCard'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecard';
|
||
},
|
||
mark:true,
|
||
intro:{
|
||
content:'使用下一张法术牌时获得X点行动值,X为该法术的行动值消耗且不超过3'
|
||
},
|
||
content:function(){
|
||
var num=lib.card[trigger.card.name].stoneact;
|
||
if(num>3) num=3;
|
||
player.actused-=num;
|
||
player.updateActCount();
|
||
player.removeSkill('spell_sijidaifa');
|
||
}
|
||
},
|
||
shaman_qingwa:{
|
||
trigger:{player:'phaseDrawBefore'},
|
||
forced:true,
|
||
unique:true,
|
||
popup:false,
|
||
content:function(){
|
||
trigger.untrigger();
|
||
trigger.finish();
|
||
},
|
||
ai:{
|
||
threaten:0.1
|
||
}
|
||
},
|
||
stone_jingxiang:{
|
||
trigger:{player:'phaseDrawBefore'},
|
||
forced:true,
|
||
unique:true,
|
||
popup:false,
|
||
content:function(){
|
||
trigger.untrigger();
|
||
trigger.finish();
|
||
},
|
||
ai:{
|
||
effect:{
|
||
target:function(card){
|
||
if(card.name=='bingliang') return 0;
|
||
}
|
||
},
|
||
noPhaseDelay:1
|
||
}
|
||
},
|
||
mage_mianyang:{
|
||
mod:{
|
||
cardEnabled:function(card){
|
||
if(card.name=='sha') return false;
|
||
}
|
||
},
|
||
ai:{
|
||
threaten:0.1
|
||
}
|
||
},
|
||
priest_xundao:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().num('h',{type:'stonecharacter'})>0;
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
player.addSkill('chaofeng');
|
||
}
|
||
},
|
||
priest_guangyao:{
|
||
trigger:{player:'changeHp'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event){
|
||
return event.num!=0;
|
||
},
|
||
content:function(){
|
||
player.draw(Math.abs(trigger.num));
|
||
},
|
||
},
|
||
priest_zhufu:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&
|
||
game.players[i].side==player.side&&game.players[i]!=player){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&
|
||
game.players[i].side==player.side&&game.players[i]!=player){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
var target=list.randomGet();
|
||
player.line(target,'green');
|
||
target.maxHp++;
|
||
target.hp++;
|
||
target.update();
|
||
}
|
||
},
|
||
priest_hunwu:{
|
||
unique:true,
|
||
},
|
||
priest_faxian:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(lib.card[i].type=='stonecharacter'){
|
||
list.push(i);
|
||
}
|
||
}
|
||
list=list.randomGets(3);
|
||
var cards=[];
|
||
for(var i=0;i<list.length;i++){
|
||
cards.push(game.createCard(list[i]));
|
||
}
|
||
player.getLeader().chooseCardButton(cards,'选择一个随从加入手牌',true);
|
||
'step 1'
|
||
player.getLeader().gain(result.links,'draw');
|
||
}
|
||
},
|
||
priest_shengliao:{
|
||
trigger:{global:'recoverEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event){
|
||
return event.player.isMin();
|
||
},
|
||
content:function(){
|
||
player.getLeader().drawDeck();
|
||
}
|
||
},
|
||
priest_shengguang:{
|
||
trigger:{global:'recoverEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event){
|
||
return event.player.isMin();
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
}
|
||
},
|
||
rogue_cisha:{
|
||
trigger:{source:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.player.isAlive()&&event.player.isMin();
|
||
},
|
||
content:function(){
|
||
trigger.player.die({source:player});
|
||
}
|
||
},
|
||
rogue_touxi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var target=player.getLeader();
|
||
return target.num('e')>0;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseCardTarget({
|
||
position:'e',
|
||
filterTarget:function(card,player,target){
|
||
return player.side!=target.side;
|
||
},
|
||
filterCard:true,
|
||
ai1:function(card){
|
||
return 9-ai.get.value(card);
|
||
},
|
||
ai2:function(target){
|
||
return ai.get.damageEffect(target,player,player);
|
||
},
|
||
prompt:'偷袭:弃置一张装备区内的牌并对一名敌方角色一点伤害'
|
||
});
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.discard(result.cards);
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].damage(event.chooser);
|
||
}
|
||
}
|
||
},
|
||
rogue_qiancang:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side&&
|
||
game.players[i].hp==game.players[i].maxHp){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side&&
|
||
game.players[i].hp==game.players[i].maxHp){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
list.sort(lib.sort.seat);
|
||
event.list=list;
|
||
"step 1"
|
||
if(event.list.length){
|
||
var current=event.list.shift();
|
||
current.damage();
|
||
player.line(current,'green');
|
||
event.redo();
|
||
}
|
||
}
|
||
},
|
||
rogue_xunbao:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('rogue_xunbao2');
|
||
}
|
||
},
|
||
rogue_xunbao2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('rogue_xunbao');
|
||
},
|
||
content:function(){
|
||
player.gain(game.createCard('spell_sijidaifa'),'gain2');
|
||
player.removeSkill('rogue_xunbao2');
|
||
}
|
||
},
|
||
rogue_touqie:{
|
||
trigger:{source:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().drawDeck();
|
||
}
|
||
},
|
||
rogue_zhaomu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().canAddFellow();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
player.getLeader().addFellowAuto('stone_haidao');
|
||
'step 1'
|
||
player.line(result,'green');
|
||
}
|
||
},
|
||
warrior_zhujia:{
|
||
trigger:{player:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var leader=player.getLeader();
|
||
leader.changeHujia();
|
||
}
|
||
},
|
||
warrior_tidun:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var leader=player.getLeader();
|
||
leader.changeHujia(2);
|
||
}
|
||
},
|
||
warrior_tongling:{
|
||
trigger:{global:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.source.side==player.side&&event.source!=player&&event.source.num('h')<=2;
|
||
},
|
||
content:function(){
|
||
trigger.source.classList.remove('turnedover');
|
||
player.line(trigger.source,'green');
|
||
},
|
||
ai:{
|
||
threaten:1.3
|
||
}
|
||
},
|
||
warrior_baoluan:{
|
||
trigger:{global:'damageEnd'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.player.isMin();
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
},
|
||
ai:{
|
||
threaten:1.6
|
||
}
|
||
},
|
||
warrior_jiangong:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=player&&game.players[i].isMin()){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('监工:对一名随从造成一点伤害然后令其摸两张牌',function(card,playerx,target){
|
||
return player!=target&&target.isMin();
|
||
}).ai=function(target){
|
||
var att=ai.get.attitude(event.chooser,target);
|
||
if(target.hp==1) return -att;
|
||
if(target.hp==2) return 0;
|
||
return att;
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
game.delay();
|
||
result.targets[0].damage(event.chooser);
|
||
result.targets[0].draw(2);
|
||
}
|
||
}
|
||
},
|
||
warlock_yuhuo:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
list.sort(lib.sort.seat);
|
||
event.list=list;
|
||
"step 1"
|
||
if(event.list.length){
|
||
var current=event.list.shift();
|
||
current.damage();
|
||
player.line(current,'green');
|
||
event.redo();
|
||
}
|
||
}
|
||
},
|
||
warlock_zaihuo:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
var hs=target.get('h');
|
||
if(hs.length){
|
||
target.discard(hs.randomGets(2));
|
||
}
|
||
}
|
||
},
|
||
warlock_yongsheng:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('warlock_yongsheng2');
|
||
},
|
||
ai:{
|
||
threaten:0.1
|
||
}
|
||
},
|
||
warlock_yongsheng2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('warlock_yongsheng');
|
||
},
|
||
content:function(){
|
||
game.delay();
|
||
player.addFellowAuto('stone_kongjuzhanma');
|
||
player.removeSkill('warlock_yongsheng2');
|
||
}
|
||
},
|
||
warlock_zhaogui:{
|
||
trigger:{player:'damageEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getLeader().canAddFellow();
|
||
},
|
||
content:function(){
|
||
player.getLeader().addFellowAuto('stone_xiaogui');
|
||
}
|
||
},
|
||
warlock_nonghuo:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
target.damage('fire');
|
||
player.line(target,'green');
|
||
game.delay();
|
||
}
|
||
},
|
||
paladin_zhaohuan:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('paladin_zhaohuan2');
|
||
}
|
||
},
|
||
paladin_zhaohuan2:{
|
||
trigger:{player:'useCard'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'使用下一张随从牌时,获得两点行动值'
|
||
},
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecharacter';
|
||
},
|
||
content:function(){
|
||
player.actused-=2;
|
||
player.updateActCount();
|
||
player.removeSkill('paladin_zhaohuan2');
|
||
}
|
||
},
|
||
paladin_shouwei:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var leader=player.getLeader();
|
||
return leader.hp<leader.maxHp;
|
||
},
|
||
content:function(){
|
||
var leader=player.getLeader();
|
||
leader.recover(2);
|
||
}
|
||
},
|
||
paladin_chidun:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side&&
|
||
game.players[i].isMin()&&
|
||
game.players[i].num('he')){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('持盾:弃置对方一名随从的所有牌',function(card,playerx,target){
|
||
return player.side!=target.side&&target.isMin()&&target.num('he')>0;
|
||
}).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'));
|
||
}
|
||
}
|
||
},
|
||
paladin_zhaochao:{
|
||
trigger:{global:'useSkillAfter'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return event.career&&event.player.side==player.side;
|
||
},
|
||
content:function(){
|
||
player.draw(2);
|
||
}
|
||
},
|
||
paladin_buji:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].name=='stone_xinbing'&&game.players[i].side==player.side){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].name=='stone_xinbing'&&game.players[i].side==player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
for(var i=0;i<list.length;i++){
|
||
list[i].maxHp++;
|
||
list[i].hp++;
|
||
list[i].update();
|
||
}
|
||
game.asyncDraw(list,2);
|
||
player.line(list,'green');
|
||
}
|
||
},
|
||
paladin_hudun:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.changeHujia();
|
||
}
|
||
},
|
||
mage_shifa:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&
|
||
game.players[i]!=player) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var target1=player.getLeader();
|
||
var target2=player.getEnemy();
|
||
var list=[];
|
||
for(var i in lib.card){
|
||
if(lib.card[i].stonehidden) continue;
|
||
if(lib.card[i].type=='stonecard'){
|
||
list.push(i);
|
||
}
|
||
}
|
||
target1.gain(game.createCard(list.randomGet()));
|
||
target2.gain(game.createCard(list.randomGet()));
|
||
target1.$draw();
|
||
target2.$draw();
|
||
game.delay();
|
||
}
|
||
},
|
||
mage_minghuo:{
|
||
trigger:{global:'damageBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.source&&event.source==player.getLeader()&&event.parent.name=='_mage_skill';
|
||
},
|
||
content:function(){
|
||
trigger.num++;
|
||
}
|
||
},
|
||
mage_tunfa:{
|
||
trigger:{global:'useCard'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecard'&&event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
}
|
||
},
|
||
mage_lieyan:{
|
||
trigger:{global:'useCardAfter'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecard'&&event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
var target=list.randomGet();
|
||
player.line(target,'fire');
|
||
target.damage('fire');
|
||
game.delay();
|
||
},
|
||
ai:{
|
||
threaten:1.3
|
||
}
|
||
},
|
||
mage_zhufa:{
|
||
trigger:{global:'useCard'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecard'&&event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
trigger.player.actused--;
|
||
trigger.player.updateActCount();
|
||
}
|
||
},
|
||
mage_bingdong:{
|
||
trigger:{source:'damageEnd'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.player.isMin()&&event.player!=player&&!event.player.isTurnedOver();
|
||
},
|
||
content:function(){
|
||
trigger.player.turnOver();
|
||
}
|
||
},
|
||
hunter_xunshou:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&
|
||
game.players[i]!=player&&game.players[i].isMin()) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('驯兽:选择一名己方随从增加一点体力和体力上限并摸两张牌',function(card,playerx,target){
|
||
return player!=target&&player.side==target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return ai.get.attitude(event.chooser,target);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].maxHp++;
|
||
result.targets[0].hp++;
|
||
result.targets[0].update();
|
||
result.targets[0].draw(2);
|
||
result.targets[0].addSkill('chaofeng');
|
||
}
|
||
}
|
||
},
|
||
hunter_jiewang:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('hunter_jiewang2');
|
||
}
|
||
},
|
||
hunter_qunxi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var targets=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&game.players[i].side==player.side){
|
||
targets.push(game.players[i]);
|
||
}
|
||
}
|
||
targets.sort(lib.sort.seat);
|
||
game.asyncDraw(targets);
|
||
}
|
||
},
|
||
stone_zhiyu:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&
|
||
game.players[i].side==player.side&&game.players[i].hp<game.players[i].maxHp){
|
||
game.players[i].recover();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
hunter_nuhou:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side){
|
||
game.players[i].addSkill('hunter_nuhou2');
|
||
}
|
||
}
|
||
}
|
||
},
|
||
hunter_nuhou2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.hasSkill('hunter_nuhou2');
|
||
},
|
||
content:function(){
|
||
player.damage('nosource');
|
||
player.removeSkill('hunter_nuhou2');
|
||
}
|
||
},
|
||
stone_chongfeng:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.classList.remove('turnedover');
|
||
}
|
||
},
|
||
druid_nuhuo:{
|
||
trigger:{global:'useSkillAfter'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.career&&event.player.side==player.side;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
var target=list.randomGet();
|
||
player.line(target,'green');
|
||
target.damage();
|
||
game.delay();
|
||
},
|
||
ai:{
|
||
threaten:1.5
|
||
}
|
||
},
|
||
druid_huwei:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side&&
|
||
game.players[i].isMin()){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('护卫:对一名对方随从造成一点伤害或弃置其所有牌并将其体力上限改为1',function(card,playerx,target){
|
||
return player.side!=target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return Math.max(1,10-target.hp);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.target=result.targets[0];
|
||
event.chooser.chooseControl('造成伤害','discard_card').ai=function(){
|
||
if(event.target.hp>1) return 'discard_card';
|
||
return '造成伤害';
|
||
};
|
||
event.chooser.line(event.target);
|
||
game.delay();
|
||
}
|
||
else{
|
||
event.finish();
|
||
}
|
||
"step 2"
|
||
if(result.control=='造成伤害'){
|
||
event.target.damage(event.chooser);
|
||
}
|
||
else{
|
||
event.target.discard(event.target.get('h'));
|
||
if(event.target.maxHp>2){
|
||
event.target.loseMaxHp(event.target.maxHp-2);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
druid_yexingchengzhang:{
|
||
trigger:{player:'phaseUseBegin'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'下个出牌阶段开始时获得三点额外行动值',
|
||
},
|
||
content:function(){
|
||
player.actused-=3;
|
||
player.updateActCount();
|
||
player.removeSkill('druid_yexingchengzhang');
|
||
}
|
||
},
|
||
druid_ziyang:{
|
||
trigger:{player:'phaseUseBegin'},
|
||
forced:true,
|
||
mark:true,
|
||
intro:{
|
||
content:'下个出牌阶段开始时获得四点额外行动值',
|
||
},
|
||
content:function(){
|
||
player.actused-=4;
|
||
player.updateActCount();
|
||
player.removeSkill('druid_ziyang');
|
||
}
|
||
},
|
||
druid_chengzhang:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var target=player.getLeader();
|
||
target.actused--;
|
||
target.updateActCount();
|
||
},
|
||
group:'druid_chengzhang2'
|
||
},
|
||
druid_chengzhang2:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('druid_chengzhang3');
|
||
}
|
||
},
|
||
druid_chengzhang3:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return event.player.hasSkill('druid_chengzhang');
|
||
},
|
||
content:function(){
|
||
if(player.num('h')){
|
||
game.delay();
|
||
player.chooseToDiscard('h',true);
|
||
}
|
||
player.removeSkill('druid_chengzhang3');
|
||
}
|
||
},
|
||
shaman_xueju:{
|
||
trigger:{global:'useCard'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return get.type(event.card)=='stonecharacter'&&event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
player.draw();
|
||
}
|
||
},
|
||
shaman_huoxi:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side&&
|
||
game.players[i].isMin()){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('火袭:对一名对方随从造成两点伤害',function(card,playerx,target){
|
||
return player.side!=target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return Math.max(1,10-target.hp);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
game.delay();
|
||
result.targets[0].damage(2,'fire',event.chooser);
|
||
}
|
||
}
|
||
},
|
||
shaman_fachao:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.player.career&&player.side==event.player.side&&event.player.isAlive();
|
||
},
|
||
content:function(){
|
||
trigger.player.drawDeck();
|
||
trigger.player.recover();
|
||
}
|
||
},
|
||
shaman_jili:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
if(event.player.career&&player.side==event.player.side){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(!game.players[i].career&&game.players[i].hasSkill('shaman_tuteng')&&
|
||
game.players[i].side==player.side){
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(!game.players[i].career&&game.players[i].hasSkill('shaman_tuteng')&&
|
||
game.players[i].side==player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
game.asyncDraw(list);
|
||
}
|
||
}
|
||
},
|
||
shaman_huoshe:{
|
||
trigger:{global:'damageBegin'},
|
||
forced:true,
|
||
filter:function(event,player){
|
||
return event.source&&event.source!=player&&event.source.isMin()&&
|
||
player.side==event.source.side&&event.notLink();
|
||
},
|
||
content:function(){
|
||
trigger.num++
|
||
},
|
||
ai:{
|
||
threaten:1.8
|
||
}
|
||
},
|
||
_priest_skill:{
|
||
enable:'phaseUse',
|
||
filter:function(event,player){
|
||
if(player.career!='priest') return false;
|
||
if(player.getActCount()+2>player.actcount) return false;
|
||
if(player.storage.anyingxingtai) return false;
|
||
return true;
|
||
},
|
||
usable:1,
|
||
prompt:function(event){
|
||
if(event.player.hasFellowSkill('priest_hunwu')) return '令目标流失一点体力';
|
||
return '回复一点体力';
|
||
},
|
||
filterTarget:function(card,player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')) return true;
|
||
return target.hp<target.maxHp;
|
||
},
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
event.parent.career='priest';
|
||
var num=1;
|
||
if(player.hasFellowSkill('stone_shenyou')){
|
||
num=2;
|
||
}
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
target.loseHp(num);
|
||
}
|
||
else{
|
||
target.recover(num);
|
||
}
|
||
},
|
||
ai:{
|
||
order:2,
|
||
result:{
|
||
target:function(player,target){
|
||
if(player.hasFellowSkill('priest_hunwu')){
|
||
return -1;
|
||
}
|
||
return ai.get.recoverEffect(target,player,target);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
_priest_skillx:{
|
||
enable:'phaseUse',
|
||
filter:function(event,player){
|
||
if(player.career!='priest') return false;
|
||
if(player.getActCount()+2>player.actcount) return false;
|
||
if(!player.storage.anyingxingtai) return false;
|
||
return true;
|
||
},
|
||
usable:1,
|
||
prompt:function(event,player){
|
||
return '造成'+get.cnNumber(_status.event.player.storage.anyingxingtai)+'点伤害';
|
||
},
|
||
filterTarget:true,
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
event.parent.career='priest';
|
||
var num=1;
|
||
// if(player.hasFellowSkill('stone_shenyou')){
|
||
// num=2;
|
||
// }
|
||
target.damage(player.storage.anyingxingtai*num);
|
||
},
|
||
ai:{
|
||
order:2,
|
||
result:{
|
||
target:function(player,target){
|
||
return ai.get.damageEffect(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');
|
||
event.parent.career='mage';
|
||
},
|
||
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.hasSkill('stone_lianyu')) return false;
|
||
if(player.career!='warlock') return false;
|
||
if(player.getActCount()+2>player.actcount) return false;
|
||
return true;
|
||
},
|
||
usable:1,
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
player.drawDeck(2);
|
||
event.parent.career='warlock';
|
||
},
|
||
ai:{
|
||
order:0.5,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
_warlock_skillx:{
|
||
enable:'phaseUse',
|
||
filter:function(event,player){
|
||
if(!player.hasSkill('stone_lianyu')) return false;
|
||
if(player.career!='warlock') return false;
|
||
if(player.getActCount()+2>player.actcount) return false;
|
||
if(!player.canAddFellow()) return false;
|
||
return true;
|
||
},
|
||
usable:1,
|
||
content:function(){
|
||
'step 0'
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
event.parent.career='warlock';
|
||
player.addFellowAuto('stone_diyuhuox');
|
||
'step 1'
|
||
var num=player.storage.stone_lianyu;
|
||
if(num&&get.itemtype(result)=='player'){
|
||
result.maxHp+=num;
|
||
result.hp+=num;
|
||
result.directgain(get.cards(num));
|
||
}
|
||
},
|
||
ai:{
|
||
order:0.5,
|
||
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 true;
|
||
},
|
||
usable:1,
|
||
prompt:function(event){
|
||
if(event.player.hasFellowSkill('hunter_juji')) return '造成一点伤害';
|
||
return '对敌方主将造成一点伤害';
|
||
},
|
||
selectTarget:function(){
|
||
if(_status.event.player.hasFellowSkill('hunter_juji')) return 1;
|
||
return -1;
|
||
},
|
||
filterTarget:function(card,player,target){
|
||
if(player.hasFellowSkill('hunter_juji')) return target!=player;
|
||
return target.career&&target.side!=player.side;
|
||
},
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
target.damage();
|
||
event.parent.career='hunter';
|
||
},
|
||
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.hujia>=3) return false;
|
||
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);
|
||
event.parent.career='warrior';
|
||
},
|
||
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);
|
||
event.parent.career='rogue';
|
||
},
|
||
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 lib.filter.cardEnabled({name:'sha'},player);
|
||
},
|
||
usable:1,
|
||
filterTarget:function(card,player,target){
|
||
return player.canUse('sha',target,null,false);
|
||
},
|
||
direct:true,
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
player.useCard({name:'sha'},targets,'_druid_skill',false).animate=false;
|
||
event.parent.career='druid';
|
||
},
|
||
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();
|
||
},
|
||
ai:{
|
||
effect:{
|
||
target:function(card){
|
||
if(card.name=='bingliang') return 0;
|
||
}
|
||
},
|
||
noPhaseDelay:1
|
||
}
|
||
},
|
||
shaman_zhiliao:{
|
||
trigger:{player:'phaseEnd'},
|
||
forced:true,
|
||
direct:true,
|
||
content:function(){
|
||
'step 0'
|
||
var players=get.players();
|
||
var targets=[];
|
||
for(var i=0;i<players.length;i++){
|
||
if(players[i].side==player.side&&!players[i].career&&players[i].hp<players[i].maxHp){
|
||
targets.push(players[i]);
|
||
players[i].recover();
|
||
}
|
||
}
|
||
if(targets.length){
|
||
player.logSkill('shaman_zhiliao');
|
||
}
|
||
else{
|
||
event.finish();
|
||
}
|
||
'step 1'
|
||
game.delay();
|
||
},
|
||
ai:{
|
||
threaten:2
|
||
}
|
||
},
|
||
shaman_fali:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
direct:true,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var players=get.players();
|
||
var targets=[];
|
||
for(var i=0;i<players.length;i++){
|
||
if(players[i].side==player.side&&!players[i].career&&players[i].num('h')<=1){
|
||
targets.push(players[i]);
|
||
}
|
||
}
|
||
if(targets.length){
|
||
game.asyncDraw(targets);
|
||
player.logSkill('shaman_fali');
|
||
}
|
||
else{
|
||
event.finish();
|
||
}
|
||
'step 1'
|
||
game.delay();
|
||
}
|
||
},
|
||
shaman_zhuore:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
direct:true,
|
||
filter:function(event,player){
|
||
return event.player==player.getLeader();
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var players=get.players();
|
||
var targets=[];
|
||
for(var i=0;i<players.length;i++){
|
||
if(players[i].side!=player.side&&!players[i].career){
|
||
targets.push(players[i]);
|
||
}
|
||
}
|
||
if(targets.length){
|
||
var target=targets.randomGet();
|
||
player.logSkill('shaman_zhuore',target);
|
||
target.damage();
|
||
}
|
||
else{
|
||
event.finish();
|
||
}
|
||
'step 1'
|
||
game.delay();
|
||
}
|
||
},
|
||
_shaman_skill:{
|
||
enable:'phaseUse',
|
||
filter:function(event,player){
|
||
if(player.career!='shaman') return false;
|
||
if(!player.canAddFellow()) return false;
|
||
if(player.getActCount()+2>player.actcount) return false;
|
||
return true;
|
||
},
|
||
usable:1,
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
var name='stone_tuteng'+Math.ceil(Math.random()*4);
|
||
player.addFellowAuto(name);
|
||
event.parent.career='shaman';
|
||
},
|
||
ai:{
|
||
order:2,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
_paladin_skill:{
|
||
enable:'phaseUse',
|
||
filter:function(event,player){
|
||
if(player.career!='paladin') return false;
|
||
if(!player.canAddFellow()) return false;
|
||
if(player.getActCount()+2>player.actcount) return false;
|
||
return true;
|
||
},
|
||
usable:1,
|
||
content:function(){
|
||
player.actused+=2;
|
||
player.updateActCount();
|
||
player.addFellowAuto('stone_xinbing');
|
||
event.parent.career='paladin';
|
||
},
|
||
ai:{
|
||
order:2,
|
||
result:{
|
||
player:1
|
||
}
|
||
}
|
||
},
|
||
chaofeng:{
|
||
mark:true,
|
||
intro:{
|
||
content:'已获得嘲讽'
|
||
}
|
||
},
|
||
_chaofeng:{
|
||
mod:{
|
||
targetEnabled:function(card,player,target){
|
||
if(target.hasSkill('chaofeng')) return;
|
||
if(card.name=='sha'){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==target.side&&game.players[i].hasSkill('chaofeng')){
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
spell_anyingkuangluan_die:{
|
||
trigger:{player:'phaseAfter'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.die();
|
||
}
|
||
},
|
||
stone_juxingchanchu1:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side&&
|
||
game.players[i].isMin()){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('毒液:令一名敌方随从失去一点体力',function(card,playerx,target){
|
||
return player.side!=target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return Math.max(1,10-target.hp);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
game.delay();
|
||
result.targets[0].addSkill('stone_juxingchanchu2');
|
||
}
|
||
}
|
||
},
|
||
stone_juxingchanchu2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.hasSkill('stone_juxingchanchu2');
|
||
},
|
||
content:function(){
|
||
player.loseHp();
|
||
player.removeSkill('stone_juxingchanchu2');
|
||
}
|
||
},
|
||
stone_shishigui1:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]!=player&&
|
||
game.players[i].isMin()){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player){
|
||
game.players[i].addSkill('stone_shishigui2');
|
||
}
|
||
}
|
||
}
|
||
},
|
||
stone_shishigui2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.hasSkill('stone_shishigui2');
|
||
},
|
||
content:function(){
|
||
player.loseHp();
|
||
player.removeSkill('stone_shishigui2');
|
||
}
|
||
},
|
||
stone_fennuxiaoji1:{
|
||
trigger:{player:'phaseBegin'},
|
||
filter:function(event,player){
|
||
return player.num('h')==0;
|
||
},
|
||
content:function(){
|
||
player.draw(2);
|
||
}
|
||
},
|
||
stone_fatiaozhuru1:{
|
||
trigger:{player:'phaseEnd'},
|
||
filter:function(event,player){
|
||
return player.num('h')==0;
|
||
},
|
||
content:function(){
|
||
player.draw(2);
|
||
}
|
||
},
|
||
stone_qianxing:{
|
||
trigger:{player:'phaseBegin'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.removeSkill('stone_qianxing');
|
||
},
|
||
mod:{
|
||
targetEnabled:function(){
|
||
return false;
|
||
}
|
||
}
|
||
},
|
||
stone_kutongsiseng1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addSkill('stone_kutongsiseng2');
|
||
}
|
||
},
|
||
stone_kutongsiseng2:{
|
||
trigger:{player:'phaseEnd'},
|
||
forced:true,
|
||
content:function(){
|
||
player.draw();
|
||
player.removeSkill('stone_kutongsiseng2');
|
||
}
|
||
},
|
||
stone_yuanguanying1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('暗影:选择敌方一名角色视为对其使用一张杀',function(card,player,target){
|
||
return lib.filter.targetEnabled({name:'sha'},event.chooser,target);
|
||
}).ai=function(target){
|
||
return ai.get.effect(target,{name:'sha'},event.chooser);
|
||
}
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.useCard({name:'sha'},result.targets,false);
|
||
}
|
||
|
||
}
|
||
},
|
||
stone_zhucangzhe1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side==player.side&&
|
||
game.players[i]!=player) return true;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('发明:选择己方一名角色摸一张牌',function(card,playerx,target){
|
||
return player!=target&&player.side==target.side;
|
||
}).ai=function(target){
|
||
return ai.get.attitude(event.chooser,target);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
result.targets[0].draw();
|
||
}
|
||
}
|
||
},
|
||
stone_zhongshi1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side&&
|
||
game.players[i].isMin()&&
|
||
game.players[i].num('he')){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('叫嚣:弃置对方一名随从的所有牌',function(card,playerx,target){
|
||
return player.side!=target.side&&target.isMin()&&target.num('he')>0;
|
||
}).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_huoqiangshou1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].side!=player.side&&
|
||
game.players[i].isMin()){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
"step 0"
|
||
event.chooser=player.getLeader();
|
||
event.chooser.chooseTarget('火枪:对一名对方随从造成一点伤害',function(card,playerx,target){
|
||
return player.side!=target.side&&target.isMin();
|
||
}).ai=function(target){
|
||
return Math.max(1,10-target.hp);
|
||
};
|
||
player.line(event.chooser);
|
||
"step 1"
|
||
if(result.bool){
|
||
event.chooser.line(result.targets[0]);
|
||
game.delay();
|
||
result.targets[0].damage(event.chooser);
|
||
}
|
||
}
|
||
},
|
||
stone_dijieshicong1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getEnemy().num('e')>0;
|
||
},
|
||
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_yaosaishouwei1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().addTempSkill('stone_yaosaishouwei2','phaseAfter');
|
||
}
|
||
},
|
||
stone_yaosaishouwei2:{
|
||
mod:{
|
||
maxHandcard:function(player,num){
|
||
return num+2;
|
||
}
|
||
},
|
||
},
|
||
stone_famingjia1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.getLeader().draw(2);
|
||
}
|
||
},
|
||
stone_chilundashi1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
player.addSkill('stone_chilundashi2');
|
||
}
|
||
},
|
||
stone_chilundashi2:{
|
||
trigger:{player:'phaseDrawBegin'},
|
||
forced:true,
|
||
content:function(){
|
||
trigger.num++;
|
||
player.removeSkill('stone_chilundashi2');
|
||
}
|
||
},
|
||
stone_hanguangzhizhe1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var targets=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player){
|
||
targets.push(game.players[i]);
|
||
}
|
||
}
|
||
targets.sort(lib.sort.seat);
|
||
game.asyncDraw(targets);
|
||
}
|
||
},
|
||
stone_aihaozhihun1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
content:function(){
|
||
var targets=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
targets.push(game.players[i]);
|
||
}
|
||
}
|
||
targets.sort(lib.sort.seat);
|
||
for(var i=0;i<targets.length;i++){
|
||
targets[i].discard(targets[i].get('he'));
|
||
}
|
||
}
|
||
},
|
||
stone_yanjingshe1:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
var num=player.getEnemy().countFellow();
|
||
return num>0&&num>=player.getLeader().countFellow();
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
var target=list.randomGet();
|
||
player.line(target,'green');
|
||
target.die({source:player});
|
||
game.delay();
|
||
}
|
||
}
|
||
},
|
||
stone_yanjingshe_old:{
|
||
trigger:{source:'fellow'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.getEnemy().countFellow()>=player.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_mafengzhuru1:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
filter:function(event){
|
||
return event.source&&event.source.isMin();
|
||
},
|
||
content:function(){
|
||
trigger.source.addSkill('stone_mafengzhuru2');
|
||
},
|
||
},
|
||
stone_mafengzhuru2:{
|
||
trigger:{global:'dieAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
return player.hasSkill('stone_mafengzhuru2');
|
||
},
|
||
content:function(){
|
||
player.loseHp();
|
||
player.removeSkill('stone_mafengzhuru2');
|
||
}
|
||
},
|
||
stone_zhufu:{
|
||
trigger:{global:'phaseEnd'},
|
||
forced:true,
|
||
unique:true,
|
||
filter:function(event,player){
|
||
if(event.player!=player.getLeader()) return false;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&
|
||
game.players[i].side==player.side&&game.players[i].hp<game.players[i].maxHp){
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
var list=[];
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i]!=player&&
|
||
game.players[i].side==player.side&&game.players[i].hp<game.players[i].maxHp){
|
||
list.push(game.players[i]);
|
||
}
|
||
}
|
||
if(list.length){
|
||
var target=list.randomGet();
|
||
target.recover();
|
||
game.delay();
|
||
player.line(target,'green');
|
||
}
|
||
}
|
||
},
|
||
_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,
|
||
priority:15,
|
||
filter:function(event,player){
|
||
return !player.isMin();
|
||
},
|
||
content:function(){
|
||
player.actused=0;
|
||
if(player.side){
|
||
player.actcount=player.getEnemy().actcount+1;
|
||
}
|
||
else{
|
||
player.actcount=player.getEnemy().actcount;
|
||
if(!_status.actcoin){
|
||
_status.actcoin=true;
|
||
player.actused--;
|
||
}
|
||
}
|
||
if(player.actcount>6){
|
||
if(get.config('mana_mode')=='inc'){
|
||
player.actcount=6;
|
||
}
|
||
else{
|
||
player.actcount-=4;
|
||
}
|
||
}
|
||
player.updateActCount();
|
||
player.getEnemy().updateActCount('outphase');
|
||
}
|
||
},
|
||
_actcount2:{
|
||
trigger:{player:'useCard'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return !player.isMin()&&!event.noActCount&&_status.currentPhase==player;
|
||
},
|
||
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'},
|
||
nopop:true,
|
||
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','stonecard']},
|
||
mod:{
|
||
cardEnabled:function(card){
|
||
if(get.type(card)=='stonecard') return false;
|
||
},
|
||
cardSavable:function(card){
|
||
if(get.type(card)=='stonecard') return false;
|
||
},
|
||
},
|
||
nopop:true,
|
||
check:function(){return 1},
|
||
filter:function(event,player){
|
||
return player.num('h',{type:['stonecharacter','stonecard']})>0;
|
||
},
|
||
viewAsFilter:function(player){
|
||
return player.num('h',{type:['stonecharacter','stonecard']})>0;
|
||
},
|
||
ai:{
|
||
skillTagFilter:function(player){
|
||
return player.num('h',{type:['stonecharacter','stonecard']})>0;
|
||
},
|
||
respondShan:true,
|
||
order:4,
|
||
useful:-1,
|
||
value:-1
|
||
}
|
||
},
|
||
stonedraw:{
|
||
trigger:{player:'phaseDrawBegin'},
|
||
forced:true,
|
||
popup:false,
|
||
content:function(){
|
||
trigger.num--;
|
||
},
|
||
ai:{
|
||
effect:{
|
||
target:function(card){
|
||
if(card.name=='bingliang'){
|
||
return 0.6;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
_stonerage1:{
|
||
trigger:{player:'damageEnd'},
|
||
forced:true,
|
||
popup:false,
|
||
content:function(){
|
||
if(player.isMin()){
|
||
player.changeRage(3*trigger.num);
|
||
}
|
||
else{
|
||
player.changeRage(6*trigger.num);
|
||
}
|
||
}
|
||
},
|
||
_stonerage2:{
|
||
trigger:{player:'dieBegin'},
|
||
forced:true,
|
||
popup:false,
|
||
content:function(){
|
||
if(player.isMin()){
|
||
player.changeRage(10);
|
||
}
|
||
else{
|
||
player.changeRage(20);
|
||
}
|
||
}
|
||
},
|
||
_stonerage3:{
|
||
trigger:{player:'phaseAfter'},
|
||
forced:true,
|
||
popup:false,
|
||
filter:function(event,player){
|
||
return !player.isMin()&&player.getEnemy().countFellow()>player.countFellow();
|
||
},
|
||
content:function(){
|
||
player.changeRage((player.getEnemy().countFellow()-player.countFellow())*10);
|
||
}
|
||
},
|
||
_stonerage_add:{
|
||
trigger:{player:'phaseBegin'},
|
||
direct:true,
|
||
priority:10,
|
||
filter:function(event,player){
|
||
if(!player.canAddFellow()){
|
||
return false;
|
||
}
|
||
if(player==game.me){
|
||
return _status.friendRage>=100;
|
||
}
|
||
else if(player==game.me.getEnemy()){
|
||
return _status.enemyRage>=100;
|
||
}
|
||
return false;
|
||
},
|
||
content:function(){
|
||
'step 0'
|
||
var list=[];
|
||
var list2=[];
|
||
for(var i in lib.character){
|
||
if(lib.character[i][4].contains('stonelegend_'+player.career)){
|
||
list.push(i);
|
||
}
|
||
else if(lib.character[i][4].contains('stonelegend')){
|
||
list2.push(i);
|
||
}
|
||
}
|
||
var dialog=ui.create.dialog('hidden','召唤一名传说随从','<div class="text center">消耗100怒气值和4点行动值</div>',[list.concat(list2),'character']);
|
||
var heilong=false;
|
||
var dc=player.getEnemy().countFellow()-player.countFellow();
|
||
if(dc>2){
|
||
heilong=true;
|
||
}
|
||
else if(dc==2){
|
||
if(player.getEnemy().countFellow()>=3){
|
||
heilong=Math.random()<0.5;
|
||
}
|
||
else if(player.actcount-player.getActCount()<=0){
|
||
heilong=true;
|
||
}
|
||
else{
|
||
dc=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i].isMin()&&game.players[i].side!=player.side){
|
||
dc+=game.players[i].hp;
|
||
}
|
||
}
|
||
if(dc>5){
|
||
heilong=true;
|
||
}
|
||
else{
|
||
heilong=Math.random()<0.3;
|
||
}
|
||
}
|
||
}
|
||
var honglong=false;
|
||
if(!heilong){
|
||
var num=0;
|
||
for(var i=0;i<game.players.length;i++){
|
||
if(game.players[i]==player){
|
||
num+=1.5*(game.players[i].maxHp-game.players[i].hp);
|
||
}
|
||
else if(game.players[i].side==player.side){
|
||
num+=game.players[i].maxHp-game.players[i].hp;
|
||
}
|
||
}
|
||
if(num>6){
|
||
honglong=true;
|
||
}
|
||
else if(player.maxHp-player.hp>=3&&player.hp<=2){
|
||
honglong=true;
|
||
}
|
||
}
|
||
player.chooseButton(dialog).ai=function(button){
|
||
if(button.link=='stone_siwangzhiyi'){
|
||
if(heilong) return 3;
|
||
return 0;
|
||
}
|
||
if(button.link=='stone_alaikesita'){
|
||
if(honglong) return 2;
|
||
return 0;
|
||
}
|
||
return Math.random();
|
||
}
|
||
'step 1'
|
||
if(result.bool){
|
||
player.$skill(get.translation(result.links[0]),'legend','metal');
|
||
game.delay(2);
|
||
event.addname=result.links[0];
|
||
player.changeRage(-100);
|
||
player.actused+=4;
|
||
player.updateActCount();
|
||
}
|
||
else{
|
||
event.finish();
|
||
}
|
||
'step 2'
|
||
if(event.addname){
|
||
if(event.addname=='stone_jialakesi'){
|
||
if(player.name=='stone_jialakesix'){
|
||
player.hp=player.maxHp;
|
||
player.update();
|
||
player.actused-=4;
|
||
player.updateActCount();
|
||
player.storage.stone_lianyu++;
|
||
}
|
||
else{
|
||
if(player.name2){
|
||
player.storage.stone_lianyu=1;
|
||
}
|
||
else{
|
||
player.storage.stone_lianyu=0;
|
||
}
|
||
player.init('stone_jialakesix');
|
||
game.addVideo('reinit2',player,'stone_jialakesix');
|
||
}
|
||
player.syncStorage('stone_lianyu');
|
||
var card=game.createCard('stone_jialakesi_stonecharacter');
|
||
card.node.info.remove();
|
||
card.node.addinfo.remove();
|
||
player.$give(card,player);
|
||
}
|
||
else{
|
||
player.addFellowAuto(event.addname);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
translate:{
|
||
shaman:'萨满',
|
||
mage:'法师',
|
||
priest:'牧师',
|
||
warrior:'战士',
|
||
warlock:'术士',
|
||
knight:'死亡骑士',
|
||
rogue:'潜行者',
|
||
paladin:'圣骑士',
|
||
hunter:'猎人',
|
||
druid:'德鲁伊',
|
||
|
||
stone_siwangzhiyi:'死亡之翼',
|
||
stone_alaikesita:'阿莱克萨',
|
||
stone_yisela:'伊瑟拉',
|
||
stone_nuoziduomu:'诺兹多姆',
|
||
stone_maligousi:'玛里苟斯',
|
||
stone_aolajier:'奥拉基尔',
|
||
stone_andongni:'安东尼',
|
||
stone_jialakesi:'加拉克斯',
|
||
stone_jialakesix:'加拉克斯',
|
||
stone_kelushi:'克鲁什',
|
||
stone_geluomashi:'格罗玛什',
|
||
stone_aidewen:'艾德温',
|
||
stone_sainaliusi:'塞纳留斯',
|
||
stone_fuding:'弗丁',
|
||
stone_weilun:'维纶',
|
||
|
||
stone_fushi:'缚誓',
|
||
stone_fushi_info:'你出场时,为所有友方角色回复所有体力值',
|
||
stone_mieshi:'灭世',
|
||
stone_mieshi_info:'你出场时,对所有其他随从造成两点伤害,然后弃置己方主将的所有手牌',
|
||
stone_shixu:'时序',
|
||
stone_shixu_info:'你出场的回合内,己方主将获得4点行动值',
|
||
stone_chenshui:'沉睡',
|
||
stone_chenshui_info:'在你的回合结束阶段,令己方主将获得一张梦境牌',
|
||
stone_mowang:'魔网',
|
||
stone_mowang_info:'己方法术对主将伤害+2,对随从伤害+4',
|
||
|
||
stone_zhiyin:'指引',
|
||
stone_zhiyin_info:'每当己方主将使用一张法术牌,将一张火球术置于其手牌',
|
||
stone_bianshen:'变身',
|
||
stone_bianshen_info:'你出场时,若己方主将职业为术士,则代之成为新的主将;若己变身,则改为令你召唤的地狱火的初始手牌数和体力值+1',
|
||
stone_lianyu:'炼狱',
|
||
stone_lianyu_info:'你的职业技能改为召唤一个地狱火',
|
||
stone_lianji:'连击',
|
||
stone_lianji_info:'每当己方主将召唤一个随从,便增加一点体力和体力上限并摸一张牌',
|
||
stone_shenyu:'神谕',
|
||
stone_shenyu_info:'你出场时,己方主将可以选择一项:召唤两个嘲讽树人,或令所有其他随从增加一点体力和体力上限并摸两张牌',
|
||
stone_fuchou:'复仇',
|
||
stone_fuchou_info:'你死亡后,视为己方主将使用了一张复仇之怒',
|
||
stone_shenyou:'神佑',
|
||
stone_shenyou_info:'己方主将的职业技能和法术的治疗效果翻倍',
|
||
stone_jinu:'激怒',
|
||
stone_jinu_info:'摸牌阶段,若你己受伤,则额外摸两张牌',
|
||
|
||
spell_shenshengxinxing:'神圣新星',
|
||
spell_shenshengxinxing_info:'对所有敌方角色造成一点伤害,令所有友方角色回复一点体力',
|
||
spell_shengguangzhadan:'圣光炸弹',
|
||
spell_shengguangzhadan_info:'对所有随从造成等同于其手牌数的伤害',
|
||
spell_maizang:'埋葬',
|
||
spell_maizang_info:'令一名敌方随从死亡(不触发死亡技能),并将一张与该随从同名的随从洗入你的牌库',
|
||
spell_xinlingshijie:'心灵视界',
|
||
spell_xinlingshijie_info:'将一张敌方主将手牌的复制置于你的手牌',
|
||
spell_naluzhiguang:'纳鲁之光',
|
||
spell_naluzhiguang_info:'恢复一点体力值,若目标仍处于受伤状态,则召唤一名圣光护卫',
|
||
spell_zhiliaozhihuan:'治疗之环',
|
||
spell_zhiliaozhihuan_info:'令所有随从回复三点体力',
|
||
|
||
spell_zhenyanshu:'真言术',
|
||
spell_zhenyanshu_info:'令一名随从增加一点体力和体力上限;从牌库中获得一张牌',
|
||
spell_enzeshu:'恩泽术',
|
||
spell_enzeshu_info:'令一名随从增加三点体力和体力上限',
|
||
spell_anyingxingtai:'暗影形态',
|
||
priest_anyingxingtai:'暗影形态',
|
||
spell_anyingxingtai_info:'你的职业技能改为造成一点伤害,若已进入暗影形态,则改为造成两点伤害',
|
||
spell_kuaisuzhiliao:'快速治疗',
|
||
spell_kuaisuzhiliao_info:'回复两点体力',
|
||
spell_xinlinghanbao:'心灵撼爆',
|
||
spell_xinlinghanbao_info:'对敌方主将造成两点伤害',
|
||
spell_kongxinshu:'控心术',
|
||
spell_kongxinshu_info:'复制敌方牌库中的一张随从,将其置入战场',
|
||
|
||
stone_shengguanghuwei:'圣光护卫',
|
||
priest_shengguang:'圣光',
|
||
priest_shengguang_info:'每当一名随从获得治疗,摸一张牌',
|
||
|
||
spell_nuxi:'怒袭',
|
||
spell_nuxi_info:'造成一点伤害,获得两点护甲',
|
||
spell_dunpaimengji:'盾牌猛击',
|
||
spell_dunpaimengji_info:'对一名随从造成等同于你护甲值的伤害',
|
||
spell_zhansha:'斩杀',
|
||
spell_zhansha_info:'令一名已受伤的敌方随从死亡',
|
||
spell_nuhuozhongshao:'怒火中烧',
|
||
spell_nuhuozhongshao_info:'对一名随从造成一点伤害,然后令其摸两张牌',
|
||
spell_xuanfengzhan:'旋风斩',
|
||
spell_xuanfengzhan_info:'对所有随从造成一点伤害',
|
||
spell_juemingluandou:'绝命乱斗',
|
||
spell_juemingluandou_info:'随机保留一名随从,然后令所有其他随从死亡',
|
||
|
||
spell_zhongnian:'重碾',
|
||
spell_zhongnian_info:'造成X点伤害,X为已受伤的友方角色数且不超过3',
|
||
spell_zhandounuhuo:'战斗怒火',
|
||
spell_zhandounuhuo_info:'从牌库中获得X张牌,X为已受伤的友方角色数',
|
||
spell_chongfeng:'冲锋',
|
||
spell_chongfeng_info:'令一名武将牌背面朝上的友方随从摸三张牌,然后将武将牌翻至正面',
|
||
spell_fuchoudaji:'复仇打击',
|
||
spell_fuchoudaji_info:'对所有随从造成一点伤害,若你的体力值不大于2,改为造成三点伤害',
|
||
spell_kuangbao:'狂暴',
|
||
spell_kuangbao_info:'令一名已受伤的友方随从摸四张牌',
|
||
spell_yingyongdaji:'英勇打击',
|
||
spell_yingyongdaji_info:'令一名敌方角色对你造成两点伤害,然后对其造成两点伤害',
|
||
|
||
spell_dubiao:'毒镖',
|
||
spell_dubiao_info:'对一名随机敌方角色造成一点伤害',
|
||
spell_qiangfengsheji:'强风射击',
|
||
spell_qiangfengsheji_info:'对两名敌方随从各造成一点伤害,并弃置其两张手牌',
|
||
spell_tanxianmao:'探险帽',
|
||
hunter_tanxianmao:'探险帽',
|
||
hunter_tanxianmao_info:'你死亡时,将一张探险帽置入主将的手牌',
|
||
spell_tanxianmao_info:'令一名友方随从增加一点体力和体力上限并摸一张牌,当该随从死亡时,将一张探险帽置入你的手牌',
|
||
spell_shalumingling:'杀戮命令',
|
||
spell_shalumingling_info:'造成一点伤害,如果你控制任何野兽,则改为造成两点伤害',
|
||
spell_zhuizongshu:'追踪术',
|
||
spell_zhuizongshu_info:'从牌库中随机选择三张牌,获得其中的一张',
|
||
spell_tianjiangzhuqun:'天降蛛群',
|
||
spell_tianjiangzhuqun_info:'召唤三只结网蛛',
|
||
|
||
spell_lierenyinji:'猎人印记',
|
||
spell_lierenyinji_info:'将一名随从的体力上限降至1',
|
||
spell_kuaisusheji:'快速射击',
|
||
spell_kuaisusheji_info:'造成一点伤害,摸一张牌',
|
||
spell_guanmenfanggou:'关门放狗',
|
||
spell_guanmenfanggou_info:'每有一名敌方随从,便召唤一只猎狗',
|
||
spell_zhaohuanchongwu:'动物伙伴',
|
||
spell_zhaohuanchongwu_info:'随机召唤一只野兽',
|
||
spell_zidanshangtang:'子弹上膛',
|
||
spell_zidanshangtang_info:'随机获得一张猎人职业法术牌,并获得技能【上膛】直到回合结束',
|
||
spell_duochongsheji:'多重射击',
|
||
spell_duochongsheji_info:'对两名随机敌方随从各造成两点伤害',
|
||
|
||
stone_liegou:'猎狗',
|
||
hunter_zidanshangtang:'上膛',
|
||
hunter_zidanshangtang_bg:'膛',
|
||
hunter_zidanshangtang_info:'每当你使用一张法术牌,便随机获得一张猎人职业法术牌',
|
||
|
||
spell_zuzhou:'诅咒',
|
||
spell_zuzhou_info:'将目标随从翻面,摸一张牌',
|
||
spell_xishengqiyue:'牺牲契约',
|
||
spell_xishengqiyue_info:'令双方各一名随从立即死亡',
|
||
spell_xiaoguibaopo:'小鬼爆破',
|
||
spell_xiaoguibaopo_info:'对一名随从造成1〜3点伤害,每造成一点伤害,便召唤一只小鬼',
|
||
spell_anyinglieyan:'暗影裂焰',
|
||
spell_anyinglieyan_info:'杀死一名友方随从,并对所有敌方随从造成等于其体力值的伤害',
|
||
spell_liliangdaijia:'力量代价',
|
||
spell_liliangdaijia_info:'令一名友方随从摸4张牌,将体力值变为5,并在其下个回合结束后死亡',
|
||
spell_emozhinu:'恶魔之怒',
|
||
spell_emozhinu_info:'对所有随从造成两点伤害',
|
||
|
||
spell_emozhixin:'恶魔之心',
|
||
spell_emozhixin_info:'对一名敌方随从造成四点伤害,或令一名友方随从摸四张牌',
|
||
spell_ansezhadan:'暗色炸弹',
|
||
spell_ansezhadan_info:'造成两点伤害',
|
||
spell_fushishu:'腐蚀术',
|
||
warlock_fushishu:'腐蚀',
|
||
warlock_fushishu_info:'下个回合结束后死亡',
|
||
spell_fushishu_info:'令一名敌方随从于其下个回合结束后死亡',
|
||
spell_heianqiyue:'黑暗契约',
|
||
spell_heianqiyue_info:'随机令两名敌方随从死亡,随机弃置两张手牌',
|
||
spell_linghunhongxi:'灵魂虹吸',
|
||
spell_linghunhongxi_info:'令一名随从死亡,回复一点体力',
|
||
spell_siwangchanrao:'死亡缠绕',
|
||
spell_siwangchanrao_info:'对一名随从造成一点伤害;若该随从死亡,从牌库中获得一张牌',
|
||
|
||
spell_wuyashenxiang:'乌鸦神像',
|
||
spell_wuyashenxiang_info:'从三张法术牌或随从牌中选择一张加入手牌',
|
||
spell_huotigenxu:'活体根须',
|
||
spell_huotigenxu_info:'造成一点伤害,或召唤两个树苗',
|
||
spell_hengsao:'横扫',
|
||
spell_hengsao_info:'对一名敌方角色造成两点伤害,然后对其他敌方角色造成一点伤害',
|
||
spell_yexingchengzhang:'野性成长',
|
||
spell_yexingchengzhang_info:'下个出牌阶段开始时获得三点额外行动值',
|
||
spell_ziranzhili:'自然之力',
|
||
spell_ziranzhili_info:'召唤三个自爆树人',
|
||
spell_yemanpaoxiao:'野蛮咆哮',
|
||
spell_yemanpaoxiao_bg:'咆',
|
||
spell_yemanpaoxiao2:'咆哮',
|
||
spell_yemanpaoxiao_info:'所有友方角色造成的伤害+1,直到你的下个回合开始',
|
||
|
||
spell_conglinzhihun:'丛林之魂',
|
||
druid_conglinzhihun:'树魂',
|
||
druid_conglinzhihun_info:'你死亡后召唤一个树人',
|
||
spell_conglinzhihun_info:'令所有友方随从获得技能树魂(你死亡后召唤一个树人)',
|
||
spell_ziyang:'滋养',
|
||
spell_ziyang_info:'下个出牌开始阶段获得四点额外行动值,或从牌库中获得三张牌',
|
||
spell_fugen:'腐根',
|
||
spell_fugen_info:'令一名随从死亡,将一张随机随从置入对手的手牌',
|
||
spell_xingchenzhuiluo:'星辰坠落',
|
||
spell_xingchenzhuiluo_info:'对一名敌方随从造成五点伤害,或对所有敌方随从造成两点伤害',
|
||
spell_fennu:'愤怒',
|
||
spell_fennu_info:'对一名随从造成两点伤害,或造成一点伤害并从牌库中获得一张牌',
|
||
spell_heiandiyu:'黑暗低语',
|
||
spell_heiandiyu_info:'召唤若干个小精灵直到你的随从数达到4;或令一名随从增加一点体力和体力上限并摸三张牌',
|
||
|
||
druid_yexingchengzhang:'成长',
|
||
druid_yexingchengzhang_bg:'长',
|
||
druid_yexingchengzhang_info:'下个出牌阶段开始时获得三点额外行动值',
|
||
druid_ziyang:'滋养',
|
||
druid_ziyang_bg:'养',
|
||
druid_ziyang_info:'下个出牌阶段开始时获得四点额外行动值',
|
||
|
||
stone_shumiao:'树苗',
|
||
stone_shuren:'自爆树人',
|
||
stone_shurenx:'树人',
|
||
stone_shurenxx:'嘲讽树人',
|
||
stone_zibao:'自爆',
|
||
stone_zibao_info:'结合结束后立即死亡',
|
||
|
||
spell_cigu:'刺骨',
|
||
spell_cigu_info:'造成一点伤害,你可以弃置一张装备区内的牌令伤害+1',
|
||
spell_jianrenluanwu:'剑刃乱舞',
|
||
spell_jianrenluanwu_info:'弃置你的武器牌,并对所有敌方角色造成一点伤害',
|
||
spell_daoshan:'刀扇',
|
||
spell_daoshan_info:'对所有敌方随从造成一点伤害,从牌库中获得一张牌',
|
||
spell_sijidaifa:'伺机待发',
|
||
spell_sijidaifa_info:'你使用下一张法术牌时获得X点行动值,X为该法术的行动值消耗且不超过3',
|
||
spell_cisha:'刺杀',
|
||
spell_cisha_info:'杀死一名随从',
|
||
spell_modaoyou:'磨刀油',
|
||
spell_modaoyou_info:'令你下一次剑刃乱舞造成的伤害+1,并与一名随机友方随从各摸两张牌',
|
||
|
||
spell_mengun:'闷棍',
|
||
spell_mengun_info:'令一名敌方随从死亡(不触发死亡技能),将一张该随从的复制置入对手的手牌',
|
||
spell_anzhongpohuai:'暗中破坏',
|
||
spell_anzhongpohuai_info:'随机杀死一名敌方随从,随机弃置敌方的一张装备牌',
|
||
spell_beici:'背刺',
|
||
spell_beici_info:'令一名未受伤的随从流失一点体力',
|
||
spell_weijisifu:'危机四伏',
|
||
spell_zhumo:'蛛魔',
|
||
stone_zhumo:'蛛魔',
|
||
spell_zhumo_info:'每当该牌被弃置,为你的对手召唤一只蛛魔',
|
||
spell_weijisifu_info:'将三张蛛魔牌洗入对手的牌库;每当一名角色弃置蛛魔牌,为其对手召唤一只蛛魔',
|
||
spell_piaoqie:'剽窃',
|
||
spell_piaoqie_info:'复制两张对手牌库中的牌加入你的手牌',
|
||
spell_jipao:'疾跑',
|
||
spell_jipao_info:'从牌库中获得四张牌',
|
||
|
||
spell_fengxian:'奉献',
|
||
spell_fengxian_info:'对所有敌方角色造成一点伤害',
|
||
spell_fuchouzhinu:'复仇之怒',
|
||
spell_fuchouzhinu_info:'造成5点伤害,随机分配到所有敌方随从上',
|
||
spell_shengliaoshu:'圣疗术',
|
||
spell_shengliaoshu_info:'恢复两点体力,摸两张牌',
|
||
spell_fennuzhichui:'愤怒之锤',
|
||
spell_fennuzhichui_info:'造成一点伤害,从牌库中获得一张牌',
|
||
spell_zuozhandongyuan:'作战动员',
|
||
spell_zuozhandongyuan_info:'召唤两个新兵,随机装备一把武器',
|
||
spell_liliangzhufu:'力量祝福',
|
||
spell_liliangzhufu_info:'令一名随从摸两张牌',
|
||
|
||
spell_jinyingduijue:'精英对决',
|
||
spell_jinyingduijue_info:'双方各保留体力值最高的一名随从,然后令其他随从死亡',
|
||
spell_shenpan:'审判',
|
||
spell_shenpan_info:'若你的对手随从数不少于你,则随机令一名敌方随从死亡',
|
||
spell_shenshengfennu:'神圣愤怒',
|
||
spell_shenshengfennu_info:'从牌库中获得一张牌,并造成等同于其行动值消耗的伤害',
|
||
spell_yongshizhufu:'勇士祝福',
|
||
spell_yongshizhufu_info:'令一名随从的手牌数翻倍',
|
||
spell_zhengqianghaosheng:'争强好胜',
|
||
paladin_zhengqianghaosheng:'争强好胜',
|
||
paladin_zhengqianghaosheng_info:'在你的下一回合开始时,令所有友方随从增加一点体力和体力上限并摸一张牌',
|
||
spell_zhengqianghaosheng_info:'在你的下一回合开始时,令所有友方随从增加一点体力和体力上限并摸一张牌',
|
||
spell_zhihuizhufu:'智慧祝福',
|
||
paladin_zhihuizhufu:'智慧祝福',
|
||
spell_zhihuizhufu_info:'选择一名随从,每当其回合开始时,你从牌库中获得一张牌',
|
||
|
||
spell_fengnu:'风怒',
|
||
shaman_fengnu:'风怒',
|
||
shaman_fengnu_info:'回合结束后,你获得一个额外回合',
|
||
spell_fengnu_info:'令一名随从获得技能风怒(回合结束后,你获得一个额外回合)',
|
||
spell_rongyanbaolie:'熔岩爆裂',
|
||
spell_rongyanbaolie_info:'造成三点火焰伤害,流失一点体力',
|
||
spell_shihuawuqi:'石化武器',
|
||
shaman_shihuawuqi:'充能',
|
||
shaman_shihuawuqi_info:'回合开始阶段,你摸三张牌',
|
||
spell_shihuawuqi_info:'令一名友方随从获得技能充能(回合开始阶段,你摸三张牌),直到你的下一回合开始',
|
||
spell_xianzuzhaohuan:'先祖召唤',
|
||
spell_xianzuzhaohuan_info:'双方各将手牌中的一张随机随从牌置入战场',
|
||
spell_xianzuzhihun:'先祖之魂',
|
||
shaman_xianzuzhihun:'转生',
|
||
shaman_xianzuzhihun_info:'你死亡后,召唤一个自身的复制',
|
||
spell_xianzuzhihun_info:'令一名随从获得技能转生(你死亡后,召唤一个自身的复制)',
|
||
spell_xianzuzhishi:'先祖知识',
|
||
shaman_xianzuzhishi:'先祖知识',
|
||
shaman_xianzuzhishi_info:'本回合手牌上限-1',
|
||
spell_xianzuzhishi_info:'从牌库中获得两张牌,本回合手牌上限-1(多次使用不叠加)',
|
||
|
||
spell_lianhuanbaolie:'连环爆裂',
|
||
spell_lianhuanbaolie_info:'造成1〜2点雷电伤害',
|
||
spell_shandianfengbao:'闪电风暴',
|
||
spell_shandianfengbao_info:'对所有敌方随从造成1〜2点伤害',
|
||
spell_yaoshu:'妖术',
|
||
spell_yaoshu_info:'将一个随从变成一只青蛙',
|
||
spell_yexinglanghun:'野性狼魂',
|
||
spell_yexinglanghun_info:'召唤两个幽灵狼',
|
||
spell_shixue:'嗜血',
|
||
spell_shixue_info:'所有友方随从摸两张牌',
|
||
spell_chazhuangshandian:'叉状闪电',
|
||
spell_chazhuangshandian_info:'对两个随机敌方随从各造成一点雷电伤害',
|
||
|
||
stone_qingwa:'青蛙',
|
||
stone_youlinglang:'幽灵狼',
|
||
stone_jingxiang:'镜像',
|
||
stone_jingxiang_info:'锁定技,你跳过摸牌阶段',
|
||
shaman_qingwa:'青蛙',
|
||
shaman_qingwa_info:'锁定技,你跳过摸牌阶段',
|
||
stone_xiaojingling:'小精灵',
|
||
|
||
spell_laojiuhuoba:'老旧火把',
|
||
spell_laojiuhuoba_info:'造成一点伤害,将一张炽热火把置入你的牌库',
|
||
spell_chirehuoba:'炽热火把',
|
||
spell_chirehuoba_info:'造成两点火焰伤害',
|
||
spell_canying:'残影',
|
||
spell_canying_info:'复制你的所有随从,并将其置入你的手牌',
|
||
spell_yanbaoshu:'炎爆术',
|
||
spell_yanbaoshu_info:'造成四点火焰伤害(若目标为主将,伤害不能超过目标的当前体力值)',
|
||
spell_jingxiang:'镜像',
|
||
spell_jingxiang_info:'召唤两个具有嘲讽且摸牌阶段不摸牌的随从',
|
||
spell_aoshufeidan:'奥术飞弹',
|
||
spell_aoshufeidan_info:'造成3点伤害,随从分配到所有敌方随从上',
|
||
spell_hanbingpingzhang:'寒冰屏障',
|
||
mage_hanbingpingzhang:'寒冰屏障',
|
||
mage_hanbingpingzhang_info:'体力值不能降到2以内',
|
||
spell_hanbingpingzhang_info:'令一名角色的体力值不能降到2以内,直到你的下一回合开始',
|
||
|
||
spell_hanbingjian:'寒冰箭',
|
||
spell_hanbingjian_info:'对一个随从造成两点伤害,然后将其翻面',
|
||
spell_lieyanfengbao:'烈焰风暴',
|
||
spell_lieyanfengbao_info:'对所有敌方随从造成两点伤害',
|
||
spell_baofengxue:'暴风雪',
|
||
spell_baofengxue_info:'对所有敌方随从造成一点伤害,然后将其翻面',
|
||
spell_aoshuzhihui:'奥术智慧',
|
||
spell_aoshuzhihui_info:'从牌库中获得两张牌',
|
||
spell_bianxingshu:'变形术',
|
||
spell_bianxingshu_info:'将一个随从变成一只绵羊',
|
||
spell_huoqiushu:'火球术',
|
||
spell_huoqiushu_info:'造成三点火焰伤害(若目标为主将,伤害不能超过目标的当前体力值)',
|
||
|
||
stone_mianyang:'绵羊',
|
||
mage_mianyang:'绵羊',
|
||
mage_mianyang_info:'锁定技,你不能使用杀',
|
||
|
||
stone_beijunmushi:'北郡牧师',
|
||
stone_guangyaozhizi:'光耀之子',
|
||
stone_longmianjiaoguan:'龙眠教官',
|
||
stone_linghunjisi:'灵魂祭司',
|
||
stone_guanliyuan:'管理员',
|
||
stone_heianjiaotu:'黑暗教徒',
|
||
|
||
stone_shengdianzhishi:'圣殿执事',
|
||
stone_suoxiaojishi:'缩小技师',
|
||
stone_anyingzisi:'暗影子嗣',
|
||
stone_guangmingquan:'光明泉',
|
||
stone_muguangchulong:'暮光雏龙',
|
||
stone_shenshengyongshi:'神圣勇士',
|
||
|
||
priest_puzhao:'普照',
|
||
priest_puzhao_info:'你出场时,己方主将可令一名其他友方随从增加两点体力和体力上限',
|
||
priest_suoxiao:'缩小',
|
||
priest_suoxiao_info:'你出场时,己方主将可令一名其他随从减少两点体力上限(不能小于1)',
|
||
priest_shengshui:'圣水',
|
||
priest_shengshui_info:'你跳过摸牌阶段;在你的回合开始阶段,令一名随机友方角色回复两点体力',
|
||
priest_muguang:'暮光',
|
||
priest_muguang_info:'你出场时,若主将手牌中有随从牌,则增加一点体力和体力上限',
|
||
priest_shixin:'蚀心',
|
||
priest_shixin_info:'每当己方主将使用一次职业技能,对双方主将各造成一点伤害',
|
||
|
||
priest_shengliao:'圣疗',
|
||
priest_shengliao_info:'每当一名随从回复体力,己方主将从牌库中获得一张牌',
|
||
priest_guangyao:'光耀',
|
||
priest_guangyao_info:'每当你的体力值发生改变,摸一张牌',
|
||
priest_xundao:'训导',
|
||
priest_xundao_info:'你出场时,若己方主将手牌中有随从牌,则摸一张牌并获得嘲讽',
|
||
priest_hunwu:'魂舞',
|
||
priest_hunwu_info:'己方主将的职业技能及法术的治疗效果改为令目标流失等量体力',
|
||
priest_faxian:'发现',
|
||
priest_faxian_info:'你出场时,己方主将从三张随机随从牌中选择一张加入手牌',
|
||
priest_zhufu:'献身',
|
||
priest_zhufu_info:'你死亡时,令一名随机友方随从增加一点体力和体力上限',
|
||
|
||
stone_daomufeizei:'盗墓匪贼',
|
||
stone_haidao:'海盗',
|
||
stone_haidaotoumu:'海盗头目',
|
||
stone_cike:'刺客',
|
||
stone_tegong:'特工',
|
||
stone_qiezei:'窃贼',
|
||
stone_heitieairen:'黑铁矮人',
|
||
|
||
stone_duyanhaidao:'独眼海盗',
|
||
stone_gangtiewushi:'刚铁武师',
|
||
stone_lifaji:'理发机',
|
||
stone_shihualong:'石化龙',
|
||
stone_xiushuihaidao:'锈水海盗',
|
||
stone_zousishangfan:'走私商贩',
|
||
|
||
rogue_duxing:'独行',
|
||
rogue_duxing_info:'每当敌方主将召唤一名随从,便获得潜行',
|
||
rogue_shoudao:'授道',
|
||
rogue_shoudao_info:'在己方主将的回合结束阶段,令一名随机友方随从增加一点体力和体力上限并摸一张牌',
|
||
rogue_lifa:'理发',
|
||
rogue_lifa_info:'为己方主将装备一把武器,若已有武器,改为对敌方主将造成一点伤害',
|
||
rogue_fusheng:'复生',
|
||
rogue_fusheng_info:'你出场时,体力值和体力上限变为X,X为场上体力最高的随从的体力值',
|
||
rogue_jielue:'劫掠',
|
||
rogue_jielue_info:'每当己方主将装备一把武器牌,摸两张牌',
|
||
rogue_jiaoyi:'交易',
|
||
rogue_jiaoyi_info:'你出场时,己方主将可以弃置一张装备牌令你摸三张牌',
|
||
|
||
rogue_touqie:'偷窃',
|
||
rogue_touqie_info:'每当你造成一次伤害,己方主将从牌库中获得一张牌',
|
||
rogue_xunbao:'寻宝',
|
||
rogue_xunbao_info:'你死亡时,将一张伺机行发置于己方主将的手牌',
|
||
rogue_cisha:'刺杀',
|
||
rogue_cisha_info:'每当你对一名随从造成伤害,受伤害随从立即死亡',
|
||
rogue_touxi:'偷袭',
|
||
rogue_touxi_info:'你出场时,己方主将可弃置一张装备区内的牌并对一名敌方角色造成一点伤害',
|
||
rogue_qiancang:'潜藏',
|
||
rogue_qiancang_info:'你出场时,对所有未受伤害的敌方随从造成一点伤害',
|
||
rogue_zhaomu:'结伙',
|
||
rogue_zhaomu_info:'你出场时,召唤一个海盗',
|
||
|
||
stone_zhihuiguan:'指挥官',
|
||
stone_jiangong:'监工',
|
||
stone_yuanhou:'猿猴',
|
||
stone_chidunshinv:'持盾侍女',
|
||
stone_zhujiashi:'铸甲师',
|
||
stone_kuangzhanshi:'狂战士',
|
||
|
||
stone_heiyaoyaoshou:'黑曜妖兽',
|
||
stone_honglongyongshi:'红龙勇士',
|
||
stone_peilianshi:'陪练师',
|
||
stone_jingyingweishi:'精英卫士',
|
||
stone_shengjiachong:'圣甲虫',
|
||
stone_mengmaren:'猛犸人',
|
||
stone_zhifuzhe:'掷斧者',
|
||
|
||
warrior_heiyao:'黑曜',
|
||
warrior_heiyao_info:'在己方主将的回合结束阶段,召唤一只圣甲虫',
|
||
warrior_peilian:'陪练',
|
||
warrior_peilian_info:'你出场时,己方主将可令一名其他随从获得嘲讽',
|
||
warrior_fenyong:'奋勇',
|
||
warrior_fenyong_info:'你出场时,若己方主将手牌中有随从牌,则获得冲锋',
|
||
warrior_chuanci:'穿刺',
|
||
warrior_chuanci_info:'每当你对一名敌方随从造成伤害,对另一名随机敌方随从造成等量的伤害',
|
||
warrior_zhifu:'掷斧',
|
||
warrior_zhifu_info:'每当你受到一次伤害,对敌方主将造成一点伤害',
|
||
|
||
warrior_tongling:'统领',
|
||
warrior_tongling_info:'每当你召唤一个初始手牌数不大于2的随从,令其获得冲锋',
|
||
warrior_baoluan:'暴乱',
|
||
warrior_baoluan_info:'每当一名随从受到一次伤害,摸一张牌',
|
||
warrior_jiangong:'监工',
|
||
warrior_jiangong_info:'你出场时,己方主将可对一名随从造成一点伤害,然后令该随从摸两张牌',
|
||
warrior_zhujia:'铸甲',
|
||
warrior_zhujia_info:'每当你受到一次伤害,己方主将获得一点护甲',
|
||
warrior_tidun:'提盾',
|
||
warrior_tidun_info:'你出场时,己方主将获得两点护甲',
|
||
|
||
stone_lieyanxiaogui:'烈焰小鬼',
|
||
stone_xiaoguishouling:'小鬼首领',
|
||
stone_kongjuzhanma:'恐惧战马',
|
||
stone_morishouwei:'末日守卫',
|
||
stone_xukongxingzhe:'虚空行者',
|
||
stone_diyuhuo:'地狱火',
|
||
stone_diyuhuox:'地狱火',
|
||
stone_xiaogui:'小鬼',
|
||
|
||
stone_heishitanfan:'黑市摊贩',
|
||
stone_zhaohuanzhe:'召唤者',
|
||
stone_meimo:'魅魔',
|
||
stone_tongkunvwang:'痛苦女王',
|
||
stone_xukongkongmo:'虚空恐魔',
|
||
stone_fukongmoyan:'浮空魔眼',
|
||
|
||
warlock_anyu:'暗语',
|
||
warlock_anyu_info:'你出场时,己方主将从三张随机的行动值消耗为1的牌中选择一张加入手牌',
|
||
warlock_zhaohuan:'召唤',
|
||
warlock_zhaohuan_info:'你死亡时,将手牌中的一张随机随从牌置入战场',
|
||
warlock_huanmeng:'幻梦',
|
||
warlock_huanmeng_info:'你出场时,己方主将随机弃置一张手牌',
|
||
warlock_tongku:'痛苦',
|
||
warlock_tongku_info:'每当你造成一次伤害,令己方主将回复一点体力',
|
||
warlock_tunshi:'吞噬',
|
||
warlock_tunshi_info:'你出场时,己方主将须令一名其他友方随从死亡,然后你获得其全部的手牌和体力值',
|
||
warlock_shijie:'视界',
|
||
warlock_shijie_info:'每当己方主将受到一次伤害,你增加一点体力和体力上限并摸一张牌',
|
||
|
||
warlock_nonghuo:'弄火',
|
||
warlock_nonghuo_info:'你出场时,对己方主将造成1点火焰伤害',
|
||
warlock_zhaogui:'召鬼',
|
||
warlock_zhaogui_info:'每当你受到一次伤害,召唤一个小鬼',
|
||
warlock_yongsheng:'永生',
|
||
warlock_yongsheng_info:'你死亡后,召唤一匹恐惧战马',
|
||
warlock_yuhuo:'狱火',
|
||
warlock_yuhuo_info:'你出场时,对所有其他随从造成一点伤害',
|
||
warlock_zaihuo:'灾祸',
|
||
warlock_zaihuo_info:'你出场时,随机弃置主将的两张手牌',
|
||
|
||
stone_hudunren:'护盾人',
|
||
stone_junxuguan:'军需官',
|
||
stone_yurenqishi:'鱼人骑士',
|
||
stone_chidunweishi:'持盾卫士',
|
||
stone_liewangshouwei:'列王守卫',
|
||
stone_longwangpeiou:'龙王配偶',
|
||
|
||
stone_baoweizhe:'保卫者',
|
||
stone_guiqishi:'龟骑士',
|
||
stone_shenmiqishou:'神秘骑手',
|
||
stone_shixiangweishi:'石像卫士',
|
||
stone_xuefanzhanshi:'血帆战士',
|
||
stone_xunmashi:'训马师',
|
||
|
||
paladin_baowei:'保卫',
|
||
paladin_baowei_info:'你出场时,己方主将可令一名其他随从获得一点护甲',
|
||
paladin_tuxi:'吐息',
|
||
paladin_tuxi_info:'你出场时,己方主将进行一次判定,若为红色,则回复一点体力',
|
||
paladin_miying:'秘影',
|
||
paladin_miying_info:'你出场时,依次将牌堆中的所有不重名的判定牌置入敌方主将的判定区',
|
||
paladin_huashi:'化石',
|
||
paladin_huashi_info:'你出场时,己方主将可将一名其他随从的体力值及体力上限变为2',
|
||
paladin_jinghua:'净化',
|
||
paladin_jinghua_info:'你出场时,对所有手牌数大于1的随从造成两点伤害',
|
||
paladin_moma:'秣马',
|
||
paladin_moma2:'秣马',
|
||
paladin_moma_info:'所有友方新兵摸牌阶段摸牌数+1',
|
||
|
||
paladin_zhaohuan:'召唤',
|
||
paladin_zhaohuan2:'召唤',
|
||
paladin_zhaohuan_info:'你出场后,你的主将在使用下一张随从牌时获得两点行动值',
|
||
paladin_shouwei:'守卫',
|
||
paladin_shouwei_info:'你出场时,你的主将回复两点体力值',
|
||
paladin_chidun:'持盾',
|
||
paladin_chidun_info:'你出场时,己方主将可以弃置对方一名随从的所有牌',
|
||
paladin_buji:'补给',
|
||
paladin_buji_info:'你出场时,所有友方新兵增加一点体力和体力上限并摸两张牌',
|
||
paladin_hudun:'护盾',
|
||
paladin_hudun_info:'你出场时,获得一点护甲值',
|
||
paladin_zhaochao:'招潮',
|
||
paladin_zhaochao_info:'每当你的主将使用一次英雄技能,便摸两张牌',
|
||
|
||
stone_shifazhe:'嗜法者',
|
||
stone_wushixuetu:'巫师学徒',
|
||
stone_shuiyuansu:'水元素',
|
||
stone_falifulong:'法力浮龙',
|
||
stone_yingxiongzhihun:'英雄之魂',
|
||
stone_huoyao:'火妖',
|
||
|
||
stone_aoshushi:'奥术师',
|
||
stone_faqishi:'法骑士',
|
||
stone_fuhuokaijia:'复活铠甲',
|
||
stone_kaodalalong:'考达拉龙',
|
||
stone_yanshushi:'炎术士',
|
||
stone_xulingwushi:'虚灵巫师',
|
||
|
||
mage_aoshu:'奥术',
|
||
mage_aoshu_info:'你出场时,将一张奥术智慧置入主将的手牌',
|
||
mage_jili:'激励',
|
||
mage_jili_info:'每当主将使用一次职业技能,摸一张牌',
|
||
mage_gushou:'固守',
|
||
mage_gushou_info:'每当己方主将受到多于1伤害时,防止其余伤害',
|
||
mage_yufa:'驭法',
|
||
mage_yufa_info:'每当己方主将使用一次职业技能,令其获得一点行动值',
|
||
mage_yanshu:'炎术',
|
||
mage_yanshu_info:'你出场时,造成X点火焰伤害,随机分配到敌方随从上,X为己方主将装备区内装备牌的数量',
|
||
mage_pingxu:'冯虚',
|
||
mage_pingxu_info:'你出场时,己方主将从三张随机法术牌中选择一张加入手牌',
|
||
|
||
mage_shifa:'嗜法',
|
||
mage_shifa_info:'你出场时,将一张随机法术牌置入双方主将的手牌',
|
||
mage_minghuo:'冥火',
|
||
mage_minghuo_info:'你的主将的职业技能造成的伤害+1',
|
||
mage_tunfa:'吞法',
|
||
mage_tunfa_info:'每当己方主将使用一张法术牌,摸一张牌',
|
||
mage_lieyan:'烈焰',
|
||
mage_lieyan_info:'每当己方主将使用一张法术牌,对一名随机敌方角色造成一点火焰伤害',
|
||
mage_zhufa:'助法',
|
||
mage_zhufa_info:'每当己方主将使用一张法术牌,令其获得一点行动值',
|
||
mage_bingdong:'冰冻',
|
||
mage_bingdong_info:'每当你对一个随从造成伤害,该随从将武将牌翻至背面',
|
||
|
||
stone_caoyuanshi:'草原狮',
|
||
stone_leiouke:'雷欧克',
|
||
stone_misha:'米莎',
|
||
stone_huofu:'霍弗',
|
||
stone_jiewangzhu:'结网蛛',
|
||
stone_xunshoushi:'驯兽师',
|
||
|
||
stone_senlinlang:'森林狼',
|
||
stone_tujiu:'秃鹫',
|
||
stone_muyangren:'牧羊人',
|
||
stone_jujishou:'狙击手',
|
||
stone_damoshatuo:'大漠沙驼',
|
||
stone_huangjialeixiang:'皇家雷象',
|
||
|
||
hunter_jiewang:'结网',
|
||
hunter_jiewang_info:'你死亡时,己方主将获得一张随机野兽牌',
|
||
hunter_xunshou:'驯兽',
|
||
hunter_xunshou_info:'你出场时,己方主将可选择一名其他友方随从令其增加一点体力和体力上限,摸两张牌并获得嘲讽',
|
||
hunter_nuhou:'怒吼',
|
||
hunter_nuhou_info:'当你死亡时,对所有敌方角色造成一点伤害',
|
||
hunter_zhanhuo:'战火',
|
||
hunter_zhanhuo2:'战火',
|
||
hunter_zhanhuo_info:'其他友方随从摸牌阶段的摸牌数+1',
|
||
|
||
hunter_qunxi:'群袭',
|
||
hunter_qunxi_info:'你出场时,所有友方随从摸一张牌',
|
||
hunter_mishi:'觅食',
|
||
hunter_mishi_info:'每当己方主将召唤一个随从,摸一张牌',
|
||
hunter_dusha:'渡沙',
|
||
hunter_dusha_info:'你出场时,令双方主将各随机使用一张牌库中的1费随从牌(不计入行动值消耗)',
|
||
hunter_chuanlin:'穿林',
|
||
hunter_chuanlin_info:'你出场时,己方主将展示牌库中的一张随机随从牌并获得之',
|
||
hunter_muyang:'牧羊',
|
||
hunter_muyang_info:'你出场时,随机召唤一个行动值消耗为X的随从,X为其他友方随从数',
|
||
hunter_juji:'狙击',
|
||
hunter_juji_info:'你的职业技能可以指定随从为目标',
|
||
|
||
stone_baoqishi:'豹骑士',
|
||
stone_conglinshouwei:'从林守卫',
|
||
stone_baohuzhishu:'保护之树',
|
||
stone_kuangyedoushi:'狂野斗士',
|
||
stone_liebao:'猎豹',
|
||
stone_zongxiong:'棕熊',
|
||
|
||
stone_renyaqishi:'刃牙骑士',
|
||
stone_conglinxiaoshou:'丛林枭兽',
|
||
stone_huangyeqishi:'荒野骑士',
|
||
stone_xunmenglong:'迅猛龙',
|
||
stone_lindishuyao:'林地树妖',
|
||
stone_huoshanxiemu:'火山邪木',
|
||
|
||
druid_renya:'刃牙',
|
||
druid_renya_info:'你出场时,己方主将可以选择一项:令你摸一张牌并将武将牌翻至正面,或令你增加一点体力上限并获得技能潜行',
|
||
druid_yuehuo:'月火',
|
||
druid_yuehuo_info:'所有锦囊牌造成的伤害+1',
|
||
druid_qicheng:'骑乘',
|
||
druid_qicheng_info:'你死亡时,随机召唤一个行动消耗为1的随从',
|
||
druid_chicheng:'驰骋',
|
||
druid_chicheng_info:'你出场时,己方主将获得X点行动值,X为其他友方随从数',
|
||
druid_yeyou:'夜游',
|
||
druid_yeyou_info:'双方主将各从牌库中获得一张牌',
|
||
druid_juhuo:'举火',
|
||
druid_juhuo_info:'己方主将回合内,每有一名随从死亡,令己方主将获得一点行动值',
|
||
|
||
stone_chongfeng:'冲锋',
|
||
stone_chongfeng_info:'你出场时,立即将武将牌翻至正面',
|
||
druid_nuhuo:'怒火',
|
||
druid_nuhuo_info:'每当己方主将使用一次职业技能,便对一名随机敌人造成一点伤害',
|
||
druid_chengzhang:'成长',
|
||
druid_chengzhang2:'成长',
|
||
druid_chengzhang_info:'你出场时,己方主将获得一点行动值;你死亡时,己方主将需弃置一张手牌',
|
||
druid_huwei:'护卫',
|
||
druid_huwei_info:'你出场时,己方主将可以选择一项:对一名随从造成一点伤害,或弃置一名随从的所有牌并将其体力上限改为2',
|
||
|
||
|
||
stone_fachao:'法潮图腾',
|
||
stone_tutengyongshi:'图腾勇士',
|
||
stone_huoshe:'火舌图腾',
|
||
stone_huoyuansu:'火元素',
|
||
stone_tuyuansu:'土元素',
|
||
stone_wujiyuansu:'无羁元素',
|
||
stone_xuejuren:'穴居人',
|
||
stone_huoli:'活力图腾',
|
||
stone_tutengshi:'图腾师',
|
||
stone_shachuisaman:'砂槌萨满',
|
||
stone_huoyanweishi:'火焰卫士',
|
||
stone_wanshiyuansu:'顽石元素',
|
||
stone_shalinxingzhe:'砂鳞行者',
|
||
|
||
shaman_anhun:'暗魂',
|
||
shaman_anhun_info:'每当一名友方随从死亡,令主将从牌库中获得一张牌',
|
||
shaman_zoushi:'走石',
|
||
shaman_zoushi_info:'每当己方主将使用一张随从牌,对一名随机敌方角色造成一点伤害',
|
||
shaman_zhuhuo:'逐火',
|
||
shaman_zhuhuo_info:'你出场时,摸1~3张牌',
|
||
shaman_peiyu:'培育',
|
||
shaman_peiyu_info:'你出场时,增加X点体力和体力上限,X为友方图腾数',
|
||
shaman_huoli:'活力',
|
||
shaman_huoli_info:'己方主将出牌阶段开始时,你令其获得一点行动值',
|
||
shaman_xueju:'穴居',
|
||
shaman_xueju_info:'每当己主将使用一张随从牌,摸一张牌',
|
||
shaman_huoxi:'火袭',
|
||
shaman_huoxi_info:'你出场时,己方主将可以对对方一名随从造成两点火焰伤害',
|
||
shaman_fachao:'法潮',
|
||
shaman_fachao_info:'己方主将在其每个回合结束阶从牌库中获得一张牌并回复一点体力',
|
||
shaman_huoshe:'火舌',
|
||
shaman_huoshe_info:'其他友方随从造成的伤害始终+1',
|
||
|
||
shaman_jili:'激励',
|
||
shaman_jili_info:'己方主将回合结束时,所有友方图腾摸一张牌',
|
||
shaman_tuteng:'图腾',
|
||
shaman_tuteng_info:'你跳过摸牌阶段',
|
||
shaman_fali:'空气',
|
||
shaman_fali_info:'已方主将的回合结束阶段,令所有手牌数不大于1的友方随从摸一张牌',
|
||
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:'回复一点体力',
|
||
_priest_skillx:'心刺',
|
||
_priest_skillx_info:'造成一点伤害',
|
||
_warrior_skill:'战甲',
|
||
_warrior_skill_info:'获得一点护甲(不能超过3点)',
|
||
_warlock_skill:'分流',
|
||
_warlock_skill_info:'从牌库中获得两张牌',
|
||
_warlock_skillx:'炼狱',
|
||
_warlock_skillx_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_zhongshi:'中士',
|
||
stone_zhongshi1:'叫嚣',
|
||
stone_zhongshi1_info:'你出场时,己方主将可以弃置对方一名随从的所有牌',
|
||
stone_zhucangzhe:'伫藏者',
|
||
stone_zhucangzhe1:'伫藏',
|
||
stone_zhucangzhe1_info:'你出场时,己方主将可以令己方一名其他角色摸一张牌',
|
||
stone_huoqiangshou:'火枪手',
|
||
stone_huoqiangshou1:'火枪',
|
||
stone_huoqiangshou1_info:'你出场时,己方主将可以对对方一名随从造成一点伤害',
|
||
|
||
stone_lansaizhanshi:'蓝腮战士',
|
||
stone_kutongsiseng:'苦痛侍僧',
|
||
stone_kutongsiseng1:'苦痛',
|
||
stone_kutongsiseng2:'苦痛',
|
||
stone_kutongsiseng1_info:'你出场时,己方主将于本回合结束阶段摸一张牌',
|
||
stone_yuanguanying:'远古暗影',
|
||
stone_yuanguanying1:'暗影',
|
||
stone_yuanguanying1_info:'你出场时,己方主将可视为对一名敌方角色使用一张杀',
|
||
|
||
stone_dijieshicong:'低阶侍从',
|
||
stone_dijieshicong1:'持枪',
|
||
stone_dijieshicong1_info:'你出场时,敌方主将随机弃置一张装备牌',
|
||
stone_yaosaishouwei:'要塞守卫',
|
||
stone_yaosaishouwei1:'守卫',
|
||
stone_yaosaishouwei1_info:'你出场时,己方主将本回合手牌上限+2',
|
||
stone_famingjia:'发明家',
|
||
stone_famingjia1:'发明',
|
||
stone_famingjia1_info:'你出场时,己方主将摸两张牌',
|
||
|
||
stone_chilundashi:'齿轮大师',
|
||
stone_chilundashi1:'齿轮',
|
||
stone_chilundashi2:'齿轮',
|
||
stone_chilundashi1_info:'你出场后的第一个摸牌阶段摸牌数+1',
|
||
stone_hanguangzhizhe:'寒光智者',
|
||
stone_hanguangzhizhe1:'寒光',
|
||
stone_hanguangzhizhe1_info:'你出场时,所有其他随从各摸一张牌',
|
||
stone_aihaozhihun:'哀嚎之魂',
|
||
stone_aihaozhihun1:'哀嚎',
|
||
stone_aihaozhihun1_info:'你出场时,敌方随从弃置所有牌',
|
||
|
||
stone_fennuxiaoji:'愤怒小鸡',
|
||
stone_fennuxiaoji1:'暴怒',
|
||
stone_fennuxiaoji1_info:'回合开始阶段,若你没有手牌,你摸两张牌',
|
||
stone_juxingchanchu:'巨型蟾蜍',
|
||
stone_juxingchanchu1:'毒液',
|
||
stone_juxingchanchu1_info:'你死亡时,己方主将可令一名敌方随从失去1点体力',
|
||
stone_shishigui:'食尸鬼',
|
||
stone_shishigui1:'食尸',
|
||
stone_shishigui1_info:'你死亡后,场上所有其他随从失去1点体力',
|
||
stone_wuyi:'巫医',
|
||
stone_langren:'狼人',
|
||
stone_qianxing:'潜行',
|
||
stone_qianxing_info:'在你的回合开始前,不能成为任何卡牌的目标',
|
||
|
||
stone_mingguangjisi:'明光祭司',
|
||
stone_nianqingjisi:'年轻祭司',
|
||
stone_zhufu:'祝福',
|
||
stone_zhufu_info:'己方主将的回合结束阶段,你令一名随机的受伤友方随从回复一点体力',
|
||
stone_aomishouwei:'奥秘守卫',
|
||
stone_yanjingshe:'眼镜蛇',
|
||
stone_yanjingshe1:'毒噬',
|
||
stone_yanjingshe1_info:'你出场时,若敌方随从数不少于己方,则随机杀死一名随从',
|
||
stone_zhiyuzhe:'治愈者',
|
||
stone_zhiyu:'治愈',
|
||
stone_zhiyu_info:'你出场时,令所有友方随从回复一点体力',
|
||
stone_mafengzhuru:'麻风侏儒',
|
||
stone_mafengzhuru1:'麻风',
|
||
stone_mafengzhuru1_info:'杀死你的随从失去一点体力',
|
||
stone_fatiaozhuru:'发条侏儒',
|
||
stone_fatiaozhuru1:'发条',
|
||
stone_fatiaozhuru1_info:'回合结束阶段,若你没有手牌,你摸两张牌',
|
||
|
||
stonesha:'进攻',
|
||
stonesha_info:'锁定技,你的装备牌均视为杀',
|
||
stoneshan:'格挡',
|
||
stoneshan_info:'锁定技,你的随从和法术牌均视为闪',
|
||
|
||
stonecharacter:'随从',
|
||
spell_shengerpingdeng:'生而平等',
|
||
spell_shengerpingdeng_info:'将所有随从体力上限降为1',
|
||
spell_jingshenkongzhi:'精神控制',
|
||
spell_jingshenkongzhi_info:'将一名敌方随从吸收为己方',
|
||
spell_anyingkuangluan:'暗影狂乱',
|
||
spell_anyingkuangluan_info:'将一名敌方随从吸收为己方,并令其于下个回合结束后死亡',
|
||
spell_anyingkuangluan_die:'暗影狂乱',
|
||
spell_anyingkuangluan_die_info:'下个回合结束后死亡',
|
||
spell_binghuan:'冰环',
|
||
spell_binghuan_info:'将场上所有随从翻面',
|
||
spell_morizaihuo:'末日灾祸',
|
||
spell_morizaihuo_info:'令场上所有随从立即死亡,回复两点体力',
|
||
spell_zhiliaozhichu:'治疗之触',
|
||
spell_zhiliaozhichu_info:'令目标随从恢复所有体力值并获得嘲讽',
|
||
chaofeng:'嘲讽',
|
||
chaofeng_info:'同阵营的无嘲讽角色不以能成为杀的目标',
|
||
spell_wangzhezhufu:'王者祝福',
|
||
spell_wangzhezhufu_info:'令一名随从增加两点体力和体力上限并摸两张牌',
|
||
spell_diyulieyan:'地狱烈焰',
|
||
spell_diyulieyan_info:'所有角色失去一点体力',
|
||
spell_chenmo:'沉默',
|
||
spell_chenmo_info:'弃置一名随从的所有牌,并令其体力上限减至2',
|
||
spell_zhiliaoshui:'治疗水',
|
||
spell_zhiliaoshui_info:'出牌阶段对自己使用,恢复两点体力值;或于濒死阶段对一名角色使用,令目标恢复一点体力',
|
||
spell_yanmie:'极恶之咒',
|
||
spell_yanmie_info:'交换你与敌方主将的装备区,并摸若干张牌直到你的手牌数与敌方主将相等',
|
||
spell_xiaoshi:'消失',
|
||
spell_xiaoshi_info:'令敌方主将将所有装备区内的牌收入手牌,并弃置其若干张手牌,直到其手牌数与你相等',
|
||
|
||
stonecard:'法术',
|
||
mode_stone_card_config:'炉石模式',
|
||
mode_stone_character_config:'炉石模式',
|
||
},
|
||
ai:{
|
||
get:{
|
||
attitude:function(from,to){
|
||
if(!from||!to) return 0;
|
||
var num;
|
||
if(to.isMin()&&!to.hasSkill('chaofeng')){
|
||
num=5;
|
||
}
|
||
else{
|
||
num=6;
|
||
}
|
||
if(from&&from.isMad()){
|
||
num=-num;
|
||
}
|
||
return num*(from.side==to.side?1:-1);
|
||
}
|
||
}
|
||
},
|
||
help:{
|
||
'炉石模式':
|
||
'<div style="margin:10px">构筑</div><ul style="margin-top:0"><li>点击右上角的卡组管理构建卡组<li>一套卡组共30张牌,由法术和随从牌构成,每个同名卡牌最多带两张'+
|
||
'<li>卡组管理器中,随从右上角的x/y表示登场状态为x牌y血'+
|
||
'<li>游戏开始时,双方摸三张牌并从牌库中获得一张牌,并可选择将手牌置换一次'+
|
||
'<li>每当主将摸X张牌时,若X至少为2,则其中的X-1张牌从牌堆中获得,1张牌从牌库中获得'+
|
||
'<li>每名角色使用一套卡组,卡组用完后会重新补满'+
|
||
'<li>卡组与职业绑定,每个职业有一个专属技能,每回合限用一次,消耗两点行动值</ul>'+
|
||
'<div style="margin:10px">职业技能</div><ul style="margin-top:0"><li>祭司:召唤一个随机图腾'+
|
||
'<li>法师:对一名随从造成一点火焰伤害'+
|
||
'<li>牧师:回复一点体力'+
|
||
'<li>战士:获得一点护甲(不能超过3点)'+
|
||
'<li>术士:牌库中摸两张牌'+
|
||
'<li>潜行者:装备一把武器和一个随机非武器装备'+
|
||
'<li>圣骑士:召唤一名士兵'+
|
||
'<li>猎人:对敌方主将造成一点伤害'+
|
||
'<li>德鲁伊:视为使用一张不计入出杀次数的杀</ul>'+
|
||
'<div style="margin:10px">怒气值</div><ul style="margin-top:0"><li>每当友方随从受到伤害获得3点怒气值,主将受到伤害获得6点怒气值'+
|
||
'<li>每有一个友方随从死亡,获得10点怒气值,主将死亡获得20点怒气值'+
|
||
'<li>回合结束阶段,若己方随从数少于对方会获得10X点怒气值,X为随从数之差'+
|
||
'<li>怒气值达到100时不再增加。回合开始阶段,若怒气值己满,可消耗全部怒气值和4点行动值并召唤一名传说随从</ul>'+
|
||
'<div style="margin:10px">战斗</div><ul style="margin-top:0"><li>场上有两名主将进行对抗,主将的体力上限+1'+
|
||
'<li>游戏牌堆移除了乐不思蜀等跳过出牌阶段以及包含翻面功能的卡牌'+
|
||
'<li>主将出牌阶段的出牌数量(行动值)有上限,从1开始递增,后手的首个回合有一点额外行动值,装备牌不计入出牌上限<li>游戏每进行一轮,主将的出牌上限+1,直到增加至6'+
|
||
'<li>使用随从牌可召唤一个随从,随从出场时背面朝上。每一方在场的随从数不能超过4<li>随从于摸牌阶段摸牌基数为1,随从的法术和随从牌均视为闪,装备牌均视为杀<li>'+
|
||
'随从与其他所有角色相互距离基数为1<li>'+
|
||
'主将杀死对方随从后获得一个额外的行动值并从牌库中获得一张牌,杀死己方随从无惩罚,随从杀死随从无效果'+
|
||
'<li>主将在随从满员时可重铸随从牌,但回合内总的重铸次数不能超过3;若重铸的牌为随从牌或法术牌,则摸牌改为获得一张随机法术牌'+
|
||
'<li>嘲讽:若一方阵营中有嘲讽角色,则同阵营的无嘲讽角色不以能成为杀目标'+
|
||
'<li>行动顺序为先主将后随从。主将或随从死亡后立即移出游戏,主将死亡后替补登场,替补登场时摸3+X张牌,X为对方存活的随从数,无替补时游戏结束'
|
||
}
|
||
}
|