'use strict';
game.import('card',function(lib,game,ui,get,ai,_status){
	return {
		name:'sp',
		connect:true,
		card:{
			jinchan:{
				audio:true,
				fullskin:true,
				type:'trick',
				notarget:true,
				global:['g_jinchan','g_jinchan2'],
				content:function(){
					var evt=event.getParent(3)._trigger;
					if(evt.jinchan){
						var type=get.type(evt.card,'trick');
						if(type=='basic'||type=='trick'){
							evt.cancel();
						}
					}
					player.draw(2);
				},
				ai:{
					useful:function(){
						var player=_status.event.player;
						var nj=player.countCards('h','jinchan');
						var num=player.getHandcardLimit();
						if(nj>=num){
							return 10;
						}
						if(nj==num-1){
							return 6;
						}
						return 1;
					},
					result:{
						player:1
					},
					value:5
				}
			},
			qijia:{
				audio:true,
				fullskin:true,
				type:'trick',
				enable:true,
				filterTarget:function(card,player,target){
					if(target.getEquip(5)){
						return target.countCards('e')>1;
					}
					else{
						return target.countCards('e')>0;
					}
				},
				content:function(){
					'step 0'
					var e1=[],e2=[];
					var he=target.getCards('he');
					for(var i=0;i<he.length;i++){
						if(get.type(he[i])=='equip'){
							var subtype=get.subtype(he[i]);
							if(subtype=='equip1'||subtype=='equip4'){
								e1.push(he[i]);
							}
							else if(subtype=='equip2'||subtype=='equip3'){
								e2.push(he[i]);
							}
						}
					}
					if(e1.length&&e2.length){
						var choice=0;
						if(e1.length>e2.length||(target.hp>=3&&Math.random()<0.3)){
							choice=1;
						}
						event.e1=e1;
						event.e2=e2;
						target.chooseControl(choice).set('choiceList',['弃置'+get.translation(e1),'弃置'+get.translation(e2)]);
					}
					else{
						if(e1.length){
							target.discard(e1);
						}
						else if(e2.length){
							target.discard(e2);
						}
						event.finish();
					}
					'step 1'
					if(result.index==0){
						target.discard(event.e1);
					}
					else{
						target.discard(event.e2);
					}
				},
				ai:{
					order:9.01,
					useful:1,
					value:5,
					result:{
						target:function(player,target){
							var num1=0,num2=0;
							for(var i=1;i<=4;i++){
								var card=target.getEquip(i);
								if(card){
									if(i==1||i==4){
										num1+=get.equipValue(card);
									}
									else{
										num2+=get.equipValue(card);
									}
								}
							}
							var num;
							if(num1==0){
								num=num2;
							}
							else if(num2==0){
								num=num1;
							}
							else{
								num=Math.min(num1,num2);
							}
							if(num>0){
								return -0.8-num/10;
							}
							else{
								return 0;
							}
						}
					},
					tag:{
						loseCard:1,
						discard:1
					}
				}
			},
			fulei:{
				audio:true,
				fullskin:true,
				type:'delay',
				cardnature:'thunder',
				modTarget:function(card,player,target){
					return lib.filter.judge(card,player,target);
				},
				enable:function(card,player){
					return player.canAddJudge(card);
				},
				filterTarget:function(card,player,target){
					return (lib.filter.judge(card,player,target)&&player==target);
				},
				selectTarget:[-1,-1],
				judge:function(card){
					if(get.suit(card)=='spade') return -6;
					return 0;
				},
				effect:function(){
					'step 0'
					if(result.bool==false){
						if(!card.storage.fulei){
							card.storage.fulei=1;
						}
						else{
							card.storage.fulei++;
						}
						player.damage(card.storage.fulei,'thunder','nosource');
					}
					'step 1'
					player.addJudgeNext(card);
				},
				cancel:function(){
					player.addJudgeNext(card);
				},
				ai:{
					basic:{
						order:1,
						useful:0,
						value:0,
					},
					result:{
						target:function(player,target){
							return lib.card.shandian.ai.result.target(player,target);
						}
					},
				}
			},
			qibaodao:{
				audio:true,
				fullskin:true,
				type:'equip',
				subtype:'equip1',
				skills:['qibaodao'],
				distance:{attackFrom:-1},
				ai:{
					equipValue:function(card,player){
						if(game.hasPlayer(function(current){
							return player.canUse('sha',current)&&current.isHealthy()&&get.attitude(player,current)<0;
						})){
							return 5;
						}
						return 3;
					},
					basic:{
						equipValue:5
					}
				},
			},
			zhungangshuo:{
				audio:true,
				fullskin:true,
				type:'equip',
				subtype:'equip1',
				skills:['zhungangshuo'],
				distance:{attackFrom:-2},
				ai:{
					equipValue:4
				},
			},
			lanyinjia:{
				fullskin:true,
				type:'equip',
				subtype:'equip2',
				skills:['lanyinjia','lanyinjia2'],
				ai:{
					equipValue:6
				}
			},
			yinyueqiang:{
				audio:true,
				fullskin:true,
				type:'equip',
				subtype:'equip1',
				distance:{attackFrom:-2},
				ai:{
					basic:{
						equipValue:4
					}
				},
				skills:['yinyueqiang']
			},
			
			du:{
				type:'basic',
				fullskin:true,
				toself:true,
				ai:{
					value:-5,
					useful:6,
					result:{
						player:function(player,target){
							if(player.hasSkillTag('usedu')) return 5;
							return -1;
						}
					},
					order:7.5
				},
				enable:true,
				modTarget:true,
				global:'g_du',
				filterTarget:function(card,player,target){
					return target==player;
				},
				delay:false,
				content:function(){},
				selectTarget:-1
			},
			shengdong:{
				audio:true,
				fullskin:true,
				enable:function(){
					return game.countPlayer()>2;
				},
				chongzhu:function(){
					return game.countPlayer()<=2;
				},
				singleCard:true,
				type:'trick',
				selectTarget:2,
				complexTarget:true,
				multitarget:true,
				targetprompt:['给一张牌','得两张牌'],
				filterTarget:function(card,player,target){
					return target!=player;
				},
				content:function(){
					'step 0'
					if(!player.countCards('h')){
						event.finish();
					}
					else{
						event.target1=target;
						event.target2=event.addedTarget;
						player.chooseCard('h','将一张手牌交给'+get.translation(event.target1),true);
					}
					'step 1'
					player.$giveAuto(result.cards,event.target1);
					event.target1.gain(result.cards,player);
					'step 2'
					if(!event.target1.countCards('h')){
						event.finish();
					}
					else{
						var he=event.target1.getCards('he');
						if(he.length<=2){
							event.directresult=he;
						}
						else{
							event.target1.chooseCard('he','将两张牌交给'+get.translation(event.target2),2,true);
						}
					}
					'step 3'
					if(!event.directresult){
						event.directresult=result.cards;
					}
					event.target1.$giveAuto(event.directresult,event.target2);
					event.target2.gain(event.directresult,event.target1);
				},
				ai:{
					order:2.5,
					value:[4,1],
					useful:1,
					wuxie:function(){
						return 0;
					},
					result:{
						target:function(player,target){
							var ok=false;
							var hs=player.getCards('h');
							if(hs.length<=1) return 0;
							for(var i=0;i<hs.length;i++){
								if(get.value(hs[i])<=5){
									ok=true;
									break;
								}
							}
							if(!ok) return 0;
							if(ui.selected.targets.length==1){
								if(target.hasSkillTag('nogain')) return 0;
								return 2;
							}
							if(target.countCards('he')==0) return 0;
							if(player.hasFriend()) return -1;
							return 0;
						}
					}
				}
			},
			zengbin:{
				audio:true,
				fullskin:true,
				enable:true,
				type:'trick',
				filterTarget:true,
				content:function(){
					'step 0'
					target.draw(3);
					'step 1'
					if(target.countCards('he',{type:'basic'})<target.countCards('he')){
						target.chooseToDiscard('增兵减灶','he',function(card){
							return get.type(card)!='basic';
						}).set('ai',function(card){
							if(_status.event.goon) return 8-get.value(card);
							return 11-get.value(card);
						}).set('goon',target.countCards('h',function(card){
							return get.value(card,target,'raw')<8;
						})>1).set('prompt2','弃置一张非基本牌,或取消并弃置两张牌');
						event.more=true;
					}
					else{
						target.chooseToDiscard('he',2,true).set('ai',get.disvalue2);
					}
					'step 2'
					if(event.more&&!result.bool){
						target.chooseToDiscard('he',2,true).set('ai',get.disvalue2);
					}
				},
				ai:{
					order:7,
					useful:4,
					value:10,
					tag:{
						draw:2
					},
					result:{
						target:function(player,target){
							if(target.hasJudge('lebu')) return 0;
							return Math.max(1,2-target.countCards('h')/10);
						}
					}
				}
			},
			caomu:{
				audio:true,
				fullskin:true,
				enable:true,
				type:'delay',
				filterTarget:function(card,player,target){
					return (lib.filter.judge(card,player,target)&&player!=target);
				},
				judge:function(card){
					if(get.suit(card)=='club') return 0;
					return -3;
				},
				effect:function(){
					if(result.bool==false){
						player.addTempSkill('caomu_skill');
					}
				},
				ai:{
					basic:{
						order:1,
						useful:1,
						value:4.5,
					},
					result:{
						player:function(player,target){
							return game.countPlayer(function(current){
								if(get.distance(target,current)<=1&&current!=target){
									var att=get.attitude(player,current);
									if(att>3){
										return 1.1;
									}
									else if(att>0){
										return 1;
									}
									else if(att<-3){
										return -1.1;
									}
									else if(att<0){
										return -1;
									}
								}
							});
						},
						target:function(player,target){
							if(target.hasJudge('bingliang')) return 0;
							return -1.5/Math.sqrt(target.countCards('h')+1);
						}
					},
				}
			}
		},
		skill:{
			lanyinjia:{
				equipSkill:true,
				enable:['chooseToRespond'],
				filterCard:true,
				viewAs:{name:'shan'},
				viewAsFilter:function(player){
					if(!player.countCards('h')) return false;
				},
				prompt:'将一张手牌当闪打出',
				check:function(card){
					return 6-get.value(card);
				},
				ai:{
					respondShan:true,
					skillTagFilter:function(player){
						if(!player.countCards('h')) return false;
					},
					effect:{
						target:function(card,player,target,current){
							if(get.tag(card,'respondShan')&&current<0&&target.countCards('h')) return 0.59
						}
					},
					order:4,
					useful:-0.5,
					value:-0.5
				}
			},
			lanyinjia2:{
				equipSkill:true,
				trigger:{player:'damageBegin4'},
				forced:true,
				filter:function(event,player){
					return event.card&&event.card.name=='sha'&&player.getEquip('lanyinjia');
				},
				content:function(){
					var card=player.getEquip('lanyinjia');
					if(card){
						player.discard(card);
					}
				},
			},
			zhungangshuo:{
				equipSkill:true,
				trigger:{player:'useCardToPlayered'},
				logTarget:'target',
				filter:function(event,player){
					return event.card.name=='sha'&&(event.player.countCards('h')||player.countCards('h'));
				},
				check:function(event,player){
					var target=event.target;
					if(get.attitude(player,target)>=0) return false;
					if(player.hasCard(function(card){
						return get.value(card)>=8;
					})){
						return false;
					}
					var n1=event.target.countCards('h');
					return n1>0&&n1<=player.countCards('h');
				},
				content:function(){
					'step 0'
					game.delayx();
					'step 1'
					trigger.target.discardPlayerCard('h',player,true);
					'step 2'
					player.discardPlayerCard('h',trigger.target,true);
				}
			},
			qibaodao:{
				equipSkill:true,
				trigger:{source:'damageBegin1'},
				forced:true,
				filter:function(event){
					return event.card&&event.card.name=='sha'&&event.player.isHealthy();
				},
				content:function(){
					trigger.num++;
				},
				ai:{
					unequip:true,
					skillTagFilter:function(player,tag,arg){
						if(arg&&arg.name=='sha') return true;
						return false;
					},
					effect:{
						player:function(card,player,target){
							if(card.name=='sha'&&target.isHealthy()&&get.attitude(player,target)>0){
								return [1,-2];
							}
						}
					}
				}
			},
			g_jinchan:{
				cardSkill:true,
				trigger:{target:'useCardToBefore'},
				forced:true,
				popup:false,
				filter:function(event,player){
					if(event.player==player) return false;
					if(event.getParent().directHit.contains(player)) return false;
					var num=player.countCards('h','jinchan');
					return num&&num==player.countCards('h');
				},
				content:function(){
					'step 0'
					player.chooseToUse({name:'jinchan'},'是否对'+get.translation(trigger.card)+'使用【金蝉脱壳】?').set('ai1',function(card){
						return _status.event.bool;
					}).set('bool',-get.effect(player,trigger.card,trigger.player,player)).set('respondTo',[trigger.player,trigger.card]);
					trigger.jinchan=true;
					'step 1'
					delete trigger.jinchan;
				}
			},
			g_jinchan2:{
				trigger:{player:'discardAfter'},
				forced:true,
				filter:function(event,player){
					for(var i=0;i<event.cards.length;i++){
						if(event.cards[i].name=='jinchan') return true;
					}
					return false;
				},
				content:function(){
					var num=0;
					for(var i=0;i<trigger.cards.length;i++){
						if(trigger.cards[i].name=='jinchan') num++;
					}
					if(num){
						player.draw(num);
					}
				}
			},
			yinyueqiang:{
				equipSkill:true,
				trigger:{player:['useCard','respondAfter']},
				direct:true,
				filter:function(event,player){
					if(_status.currentPhase==player) return false;
					if(!event.cards) return false;
					if(event.cards.length!=1) return false;
					if(lib.filter.autoRespondSha.call({player:player})) return false;
					return get.color(event.cards[0])=='black';
				},
				content:function(){
					'step 0'
					var next=player.chooseToUse(get.prompt('yinyueqiang'),{name:'sha'});
					next.aidelay=true;
					next.logSkill='yinyueqiang';
					next.noButton=true;
					'step 1'
					if(result.bool){
						game.delay();
					}
				}
			},
			g_du:{
				cardSkill:true,
				trigger:{player:'loseEnd'},
				popup:false,
				forced:true,
				filter:function(event,player){
					if(!event.visible) return false;
					if(player.hasSkillTag('nodu')) return false;
					if(event.cards){
						for(var i=0;i<event.cards.length;i++){
							if(event.cards[i].name=='du'&&event.cards[i].original=='h') return true;
						}
					}
					return false;
				},
				content:function(){
					var num=0;
					for(var i=0;i<trigger.cards.length;i++){
						if(trigger.cards[i].name=='du'&&trigger.cards[i].original=='h') num++;
					}
					if(trigger.getParent().name!='useCard'||trigger.getParent().card.name!='du') player.popup('毒','wood');
					player.loseHp(num).type='du';
				},
			},
			caomu_skill:{
				cardSkill:true,
				unique:true,
				trigger:{player:'phaseDrawBegin'},
				silent:true,
				content:function(){
					trigger.num--;
				},
				group:'caomu_skill2'
			},
			caomu_skill2:{
				trigger:{player:'phaseDrawAfter'},
				silent:true,
				content:function(){
					var targets=game.filterPlayer(function(current){
						return get.distance(player,current)<=1&&player!=current;
					});
					if(targets.length){
						game.asyncDraw(targets);
					}
				}
			}
		},
		translate:{
			qijia:'弃甲曳兵',
			qijia_info:'出牌阶段,对一名装备区里有牌的其他角色使用。该角色选择一项:1.弃置手牌区和装备区里所有的武器和-1坐骑;2.弃置手牌区和装备区里所有的防具和+1坐骑。',
			jinchan:'金蝉脱壳',
			g_jinchan2:'金蝉脱壳',
			g_jinchan2_info:'当你因弃置而失去【金蝉脱壳】时,你摸一张牌',
			jinchan_info:'当你成为其他角色使用牌的目标时,若你的手牌里只有【金蝉脱壳】,使目标锦囊牌或基本牌对你无效,你摸两张牌。当你因弃置而失去【金蝉脱壳】时,你摸一张牌。',
			fulei:'浮雷',
			fulei_info:'出牌阶段,对你使用。将【浮雷】放置于你的判定区里,若判定结果为黑桃,则目标角色受到X点雷电伤害(X为此锦囊判定结果为黑桃的次数)。判定完成后,将此牌移动到下家的判定区里。',
			qibaodao:'七宝刀',
			qibaodao_info:'攻击范围2;锁定技,你使用【杀】无视目标防具,若目标角色未损失体力值,此【杀】伤害+1',
			zhungangshuo:'衠钢槊',
			zhungangshuo_info:'当你使用【杀】指定一名角色为目标后,你可令该角色弃置你的一张手牌,然后你弃置其一张手牌',
			lanyinjia:'烂银甲',
			lanyinjia_info:'你可以将一张手牌当做【闪】使用或打出。锁定技,【烂银甲】不会无效化;当你受到【杀】造成的伤害时,弃置【烂银甲】。',
			yinyueqiang:'银月枪',
			yinyueqiang_info:'你的回合外,每当你使用或打出了一张黑色手牌(若为使用则在它结算之前),你可以立即对你攻击范围内的任意一名角色使用一张【杀】',
			du:'毒',
			du_info:'当此牌正面朝上离开你的手牌区时,你失去一点体力',
			shengdong:'声东击西',
			shengdong_info:'出牌阶段,对一名其他角色使用。你交给目标角色一张手牌,若如此做,其将两张牌交给另一名由你选择的其他角色(不足则全给,存活角色不超过2时可重铸)',
			zengbin:'增兵减灶',
			zengbin_info:'出牌阶段,对一名角色使用。目标角色摸三张牌,然后选择一项:1.弃置一张非基本牌;2.弃置两张牌',
			caomu:'草木皆兵',
			caomu_info:'出牌阶段,对一名其他角色使用。将【草木皆兵】放置于该角色的判定区里,若判定结果不为梅花:摸牌阶段,目标角色少摸一张牌;摸牌阶段结束时,与其距离为1的角色各摸一张牌',
		},
		list:[
			['spade',1,'caomu'],
			['club',3,'caomu'],
			['heart',12,'shengdong',],
			['club',9,'shengdong'],
			['spade',9,'shengdong'],
			['diamond',4,'zengbin'],
			['heart',6,'zengbin'],
			['spade',7,'zengbin'],
			['spade',3,'du'],
			['spade',9,'du'],
			['club',3,'du'],
			['club',9,'du'],
			['diamond',5,'du'],
			['diamond',9,'du'],
			['diamond',12,'yinyueqiang'],
			["spade",11,'jinchan'],
			["club",12,'jinchan'],
			["club",13,'jinchan'],
			["club",12,'qijia'],
			["club",13,'qijia'],
			["spade",1,'fulei','thunder'],
			["spade",6,'qibaodao'],
			["spade",5,'zhungangshuo'],
			["spade",2,'lanyinjia'],
			["club",2,'lanyinjia'],
		],
	};
});