'use strict';
game.import('mode',function(lib,game,ui,get,ai,_status){
	return {
		name:'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'){
				var createCardDialog=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];
						}
						lib.setIntro(cardDialog.buttons[i]);
					}
					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);
					if(ui.deckcontrol){
						ui.deckcontrol.show();
						setTimeout(function(){
							ui.deckcontrol.style.transition='';
						},500);
					}
				};

				ui.deckcontrol=ui.create.system('卡组管理',function(){
					if(this.classList.contains('hidden')) return;
					// 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(lib.onfree){
					ui.deckcontrol.style.transition='all 0.5s';
					ui.deckcontrol.hide();
					lib.onfree.push(createCardDialog);
				}
				else{
					createCardDialog();
				}
			}

			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;
			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;

					lib.setIntro(ui.friendBar,null,true);
					lib.setIntro(ui.enemyBar,null,true);
				}
			}
			_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.getCards('h');
				for(var i=0;i<hs.length;i++){
					hs[i].discard(false);
				}
				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:function(event,player){
					return !player.isMin()&&!player.canAddFellow();
				},
				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(game.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 this.countUsed()+(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_zhumo','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"
					_status.roundStart=game.me;
					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"
					ui.arena.classList.add('choose-character');
					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).set('onfree',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;
					};
					if(lib.onfree){
						lib.onfree.push(function(){
							event.dialogxx=ui.create.characterDialog('heightset');
							if(ui.cheat2){
								ui.cheat2.animate('controlpressdownx',500);
								ui.cheat2.classList.remove('disabled');
							}
							event.dialogxx.style.height=(game.layout=='newlayout'?350:410)+'px';
							event.dialogxx._scrollset=true;
						});
					}
					else{
						event.dialogxx=ui.create.characterDialog('heightset');
					}
					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.animate('controlpressdownx',500);
									ui.cheat.classList.remove('disabled');
								}
							}
							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.classList.add('disabled');
								}
							}
						});
						if(lib.onfree){
							ui.cheat2.classList.add('disabled');
						}
					}
					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','forcebutton');
							}
							else{
								event.dialog=ui.create.dialog('','hidden','forcebutton');
							}

							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');
					}
					ui.control.style.transitionDuration='0s';
					ui.refresh(ui.control);
					ui.arena.classList.remove('choose-character');
					setTimeout(function(){
						ui.control.style.transitionDuration='';
					},500);
				});
			},
		},
		get:{
			rawAttitude:function(from,to){
				var num;
				if(to.isMin()&&!to.hasSkill('chaofeng')){
					num=5;
				}
				else{
					num=6;
				}
				return num*(from.side==to.side?1:-1);
			},
			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;
					lib.setIntro(player.node.career,null,true);
				}
				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.getCards('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.countCards('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.countCards('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'
					if(!targets.length){
						event.finish();
						return;
					}
					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','log');
					'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.countCards('h')>0;
				},
				content:function(){
					target.draw(target.countCards('h'));
				},
				ai:{
					order:4,
					value:2,
					useful:2,
					result:{
						target:function(player,target){
							return Math.max(0,target.countCards('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');
				},
				ai:{
					order:7,
					value:7,
					useful:5,
					result:{
						target:function(player,target){
							if(player.hasFellowSkill('priest_hunwu')){
								return -2
							}
							return 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.getCards('h');
						if(hs.length){
							target.discard(hs.randomGets(2));
						}
					}
				},
				ai:{
					order:7,
					value:5,
					useful:5,
					result:{
						target:function(player,target){
							if(target.countCards('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.countCards('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.countCards('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.countCards('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.countCards('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.getCards('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'
					if(!targets.length){
						event.finish();
						return;
					}
					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'
					if(targets[0]){
						var hs=targets[0].getCards('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'
					if(targets[1]){
						var hs=targets[1].getCards('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.getCards('h',function(card){
								return get.type(card)=='stonecharacter';
							});
							if(hs.length==0) return 0;
							var enemy=player.getEnemy();
							if(enemy.countCards('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');
				},
				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.countCards('h')>0;
				},
				selectTarget:-1,
				content:function(){
					var num=1;
					// if(player.hasFellowSkill('stone_shenyou')){
					// 	num=2;
					// }
					target.damage(target.countCards('h')*num);
				},
				ai:{
					order:7,
					value:5,
					useful:5,
					result:{
						target:function(player,target){
							return -Math.min(target.countCards('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.countCards('h')/2;
						}
					}
				}
			},
			spell_xinlingshijie:{
				type:'stonecard',
				stoneact:0,
				career:'priest',
				enable:function(event,player){
					return player.getEnemy().countCards('h')>0;
				},
				fullimage:true,
				filterTarget:function(card,player,target){
					return target==player.getEnemy();
				},
				selectTarget:-1,
				content:function(){
					var card=target.getCards('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 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 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.countCards('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.countCards('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');
				},
				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.countCards('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.countCards('e')){
						player.chooseToDiscard('e','是否弃置一张装备区内的牌令伤害+1?').ai=function(card){
							return 7-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.getEquip(1)?true:false;
				},
				stoneact:2,
				career:'rogue',
				filterTarget:function(card,player,target){
					return target.side!=player.side;
				},
				selectTarget:-1,
				contentBefore:function(){
					player.discard(player.getEquip(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.countCards('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'
					if(!targets.length){
						event.finish();
						return;
					}
					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.countCards('he')>0);
				},
				content:function(){
					"step 0"
					target.discard(target.getCards('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.countCards('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&&target.countCards('h')<=1;
				},
				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.isDying()){
						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].getCards('e'),targets[1].getCards('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.countCards('h')-player.countCards('h');
					if(dh>0){
						player.draw(dh);
					}
				},
				ai:{
					order:7,
					value:1,
					useful:1,
					result:{
						target:function(player,target){
							var ne1=target.countCards('e'),ne2=player.countCards('e');
							var nh1=target.countCards('h'),nh2=player.countCards('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.getCards('e'),'gain2');
					'step 1'
					var dh=target.countCards('h')-player.countCards('h');
					if(dh>0){
						target.discard(target.getCards('h').randomGets(dh));
					}
				},
				ai:{
					order:1,
					value:1,
					useful:1,
					result:{
						target:function(player,target){
							if(target.countCards('he')>=player.countCards('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.getCards('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
				}
			},
			shaman_fali:{
				trigger:{global:'damageBegin'},
				forced:true,
				filter:function(event,player){
					return event.source&&event.source!=player&&
					event.source==player.getLeader()&&event.notLink()&&
					event.card&&get.type(event.card)=='stonecard';
				},
				content:function(){
					trigger.num++;
				},
				ai:{
					threaten:1.3
				}
			},
			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.getCards('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.getCards('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.countCards('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.getCards('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().countCards('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 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 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(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.cancel();
				},
				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().countCards('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.countCards('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-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.getEquip(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('qianxing');
				},
				content:function(){
					player.tempHide();
				}
			},

			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].countCards('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].countCards('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 get.attitude(event.chooser,target)*(2-target.maxHp)/100;
						}
						return 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 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().countCards('e')>0&&player.getEnemy().hasFellow();
				},
				content:function(){
					'step 0'
					var num=player.getLeader().countCards('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.tempHide();
					}
					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.cancel();
				},
				ai:{
					threaten:0.1
				}
			},
			stone_jingxiang:{
				trigger:{player:'phaseDrawBefore'},
				forced:true,
				unique:true,
				popup:false,
				content:function(){
					trigger.cancel();
				},
				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().countCards('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.countCards('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-get.value(card);
						},
						ai2:function(target){
							return 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.countCards('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=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.getCards('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].countCards('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.countCards('he')>0;
					}).ai=function(target){
						return target.countCards('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].getCards('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 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.getCards('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.countCards('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 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 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 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 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.getEquip(1)&&player.countCards('e')<2){
							if(player.countCards('h','sha')&&player.getActCount()+3<=player.actcount){
								return 4;
							}
							return 0.1;
						}
						return 0;
					},
					result:{
						player:function(player){
							if(player.countCards('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 get.order({name:'sha'})-0.1;
					},
					result:{
						target:function(player,target){
							return get.effect(target,{name:'sha'},player,target);
						}
					}
				}
			},
			shaman_tuteng:{
				trigger:{player:'phaseDrawBefore'},
				forced:true,
				popup:false,
				content:function(){
					trigger.cancel();
				},
				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_old:{
				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].countCards('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.countCards('h')==0;
				},
				content:function(){
					player.draw(2);
				}
			},
			stone_fatiaozhuru1:{
				trigger:{player:'phaseEnd'},
				filter:function(event,player){
					return player.countCards('h')==0;
				},
				content:function(){
					player.draw(2);
				}
			},
			stone_qianxing:{
				trigger:{source:'fellow'},
				silent:true,
				unique:true,
				content:function(){
					player.tempHide();
				}
			},
			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 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 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].countCards('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.countCards('he')>0;
					}).ai=function(target){
						return target.countCards('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].getCards('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().countCards('e')>0;
				},
				content:function(){
					var enemy=player.getEnemy();
					var es=enemy.getCards('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');
				}
			},
			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].getCards('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,
				mod:{
					cardname:function(card){
						if(lib.card[card.name].type=='equip') return 'sha';
					},
				},
			},
			stoneshan:{
				unique:true,
				mod:{
					cardname:function(card){
						if(lib.card[card.name].type.indexOf('stone')==0) return 'shan';
					},
				},
			},
			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:'将一名手牌数不超过1的敌方随从吸收为己方,并令其于下个回合结束后死亡',
			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:'炉石模式',
		},
		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为对方存活的随从数,无替补时游戏结束'
		}
	};
});