'use strict';
game.import('character',function(lib,game,ui,get,ai,_status){
	return {
		name:'jiange',
		character:{
			jg_pangtong:['male','shu',3,['qiwu','tianyu']],
			jg_huangyueying:['female','shu',3,['zhinang','jingmiao']],
			jg_zhugeliang:['male','shu',3,['biantian','bazhen']],
			jg_liubei:['male','shu',4,['jizhen','lingfeng']],
			jg_xiahouyuan:['male','wei',4,['xinshensu','juechen']],
			jg_caozhen:['male','wei',4,['chiying','jingfan']],
			jg_zhanghe:['male','wei',4,['huodi','jueji']],
			jg_simayi:['male','wei',5,['xuanlei','sfanshi','konghun']],
		},
		skill:{
			sfanshi:{
				trigger:{player:'phaseEnd'},
				forced:true,
				check:function(){
					return false;
				},
				content:function(){
					player.loseHp();
				}
			},
			konghun:{
				trigger:{player:'phaseUseBegin'},
				direct:true,
				filter:function(event,player){
					if(game.players.length>=6){
						return player.hp<=2;
					}
					return player.hp<=1;
				},
				content:function(){
					"step 0"
					player.chooseTarget(get.prompt('konghun'),function(card,player,target){
						return player!=target;
					},[1,Math.min(4,Math.floor((game.players.length-1)/2))]).ai=function(target){
						return get.damageEffect(target,player,player,'thunder')+1;
					}
					"step 1"
					if(result.bool){
						event.targets=result.targets.slice(0);
						player.logSkill('konghun',event.targets,'thunder');
						event.targets.sort(lib.sort.seat);
						event.num=0;
					}
					else{
						event.finish();
					}
					"step 2"
					if(event.num<event.targets.length){
						event.targets[event.num].damage('thunder');
						event.num++;
						event.redo();
					}
					"step 3"
					player.recover(event.targets.length);
				}
			},
			xuanlei:{
				trigger:{player:'phaseBegin'},
				forced:true,
				filter:function(event,player){
					for(var i=0;i<game.players.length;i++){
						if(game.players[i]!=player&&game.players[i].countCards('j')) return true;
					}
					return false;
				},
				content:function(){
					"step 0"
					event.targets=[];
					for(var i=0;i<game.players.length;i++){
						if(game.players[i]!=player&&game.players[i].countCards('j')){
							event.targets.push(game.players[i]);
						}
					}
					event.targets.sort(lib.sort.seat);
					"step 1"
					if(event.targets.length){
						event.targets.shift().damage('thunder');
						event.redo();
					}
				}
			},
			jueji:{
				trigger:{global:'phaseDrawBegin'},
				direct:true,
				filter:function(event,player){
					return event.num>0&&event.player!=player&&event.player.hp<event.player.maxHp&&player.countCards('he');
				},
				content:function(){
					"step 0"
					var next=player.chooseToDiscard('he','是否弃置一张牌令'+get.translation(trigger.player)+'的摸牌数-1?');
					next.ai=function(card){
						if(get.attitude(player,trigger.player)<0){
							return 6-get.value(card);
						}
						return 0;
					}
					next.logSkill=['jueji',trigger.player];
					"step 1"
					if(result.bool){
						trigger.num--;
					}
				},
				ai:{
					expose:0.2,
					threaten:1.8
				}
			},
			huodi:{
				trigger:{player:'phaseEnd'},
				direct:true,
				filter:function(event,player){
					return !player.hasSkill('huodi3');
				},
				content:function(){
					"step 0"
					player.chooseTarget(get.prompt('huodi'),function(card,player,target){
						return target.countCards('he')&&player!=target;
					}).ai=function(target){
						return -get.attitude(player,target);
					}
					"step 1"
					if(result.bool){
						player.logSkill('huodi',result.targets);
						player.discardPlayerCard(result.targets[0],true,'he');
					}
				},
				ai:{
					expose:0.2,
					threaten:1.2
				},
				group:'huodi2'
			},
			huodi2:{
				trigger:{player:'useCard'},
				filter:function(event,player){
					return _status.currentPhase==player&&event.targets&&(event.targets.length>1||event.targets[0]!=player);
				},
				silent:true,
				content:function(){
					player.addTempSkill('huodi3');
				}
			},
			huodi3:{},
			jingfan:{
				trigger:{player:'phaseUseEnd'},
				unique:true,
				direct:true,
				content:function(){
					"step 0"
					var num=player.countUsed()-player.countCards('h');
					event.num=num;
					if(num>0){
						player.draw(num);
					}
					"step 1"
					if(event.num>0){
						player.chooseTarget('选择至多'+get.cnNumber(event.num)+'名角色令其进攻距离+1',[1,event.num],function(card,player,target){
							return player!=target;
						}).ai=function(target){
							return get.attitude(player,target);
						}
					}
					else{
						event.finish();
					}
					"step 2"
					if(result.bool&&result.targets){
						player.logSkill('jingfan',result.targets);
						for(var i=0;i<result.targets.length;i++){
							result.targets[i].addSkill('jingfan2');
							result.targets[i].popup('jingfan');
						}
					}
				},
				mod:{
					globalFrom:function(from,to,distance){
						if(_status.currentPhase==from){
							return distance-from.countUsed();
						}
					}
				},
				ai:{
					expose:0.1
				}
			},
			jingfan2:{
				mod:{
					globalFrom:function(from,to,distance){
						return distance-1;
					}
				},
				trigger:{player:'phaseEnd'},
				forced:true,
				content:function(){
					player.removeSkill('jingfan2');
				}
			},
			chiying:{
				trigger:{global:'damageBegin'},
				check:function(event,player){
					return get.attitude(player,event.player)>0;
				},
				filter:function(event,player){
					if(event.num<=1) return false;
					return true;
				},
				priority:-11,
				content:function(){
					trigger.num=1;
					if(trigger.source){
						trigger.source.addTempSkill('chiying2','damageAfter');
					}
				}
			},
			chiying2:{
				trigger:{source:'damageEnd'},
				forced:true,
				popup:false,
				content:function(){
					player.draw();
				}
			},
			juechen:{
				trigger:{player:'useCard'},
				filter:function(event,player){
					return event.card.name=='sha';
				},
				direct:true,
				content:function(){
					"step 0"
					player.chooseTarget(get.prompt('juechen'),function(card,player,target){
						return player!=target&&!trigger.targets.contains(target)&&target.countCards('he')>0;
					}).set('autodelay',true).ai=function(target){
						return -get.attitude(player,target);
					}
					"step 1"
					if(result.bool){
						player.logSkill('juechen',result.targets);
						player.discardPlayerCard(true,result.targets[0],'he');
					}
				}
			},
			lingfeng:{
				trigger:{player:'phaseDrawBefore'},
				check:function(event,player){
					for(var i=0;i<game.players.length;i++){
						if(player!=game.players[i]){
							if(get.attitude(player,game.players[i])<0) return true;
						}
					}
					return false;
				},
				content:function(){
					"step 0"
					trigger.cancel();
					event.cards=get.cards(2);
					player.showCards(event.cards);
					"step 1"
					if(get.color(event.cards[0])!=get.color(event.cards[1])){
						player.chooseTarget('是否弃置一名角色一张牌?',function(card,player,target){
							return player!=target&&target.countCards('he')>0;
						}).ai=function(target){
							return -get.attitude(player,target);
						}
					}
					"step 2"
					if(result.bool&&result.targets&&result.targets.length){
						player.discardPlayerCard(result.targets[0],'he',true);
					}
					"step 3"
					player.gain(event.cards);
					player.$draw(event.cards);
					game.delay();
				},
				ai:{
					threaten:1.1
				}
			},
			biantian4:{
				trigger:{player:'dieBegin'},
				forced:true,
				popup:false,
				content:function(){
					for(var i=0;i<game.players.length;i++){
						if(game.players[i].hasSkill('biantian3')){
							game.players[i].removeSkill('biantian3');
							game.players[i].popup('biantian3');
						}
					}
				}
			},
			biantian:{
				trigger:{player:'phaseBegin'},
				forced:true,
				unique:true,
				group:'biantian4',
				content:function(){
					"step 0"
					player.removeSkill('biantian2');
					for(var i=0;i<game.players.length;i++){
						if(game.players[i].hasSkill('biantian3')){
							game.players[i].removeSkill('biantian3');
							game.players[i].popup('biantian3');
						}
					}
					player.judge(function(card){
						if(get.color(card)=='red') return 1;
						if(get.suit(card)=='spade') return 3;
						return -1;
					});
					"step 1"
					if(result.color=='red'){
						player.chooseTarget('选择至多三名角色获得狂风标记',[1,3],function(card,player,target){
							return player!=target;
						}).ai=function(target){
							if(target.hasSkillTag('nofire')) return 0;
							return -get.attitude(player,target);
						};
					}
					else{
						event.finish();
						if(result.suit=='spade'){
							player.addSkill('biantian2');
						}
					}
					"step 2"
					if(result.bool&&result.targets){
						for(var i=0;i<result.targets.length;i++){
							result.targets[i].addSkill('biantian3');
							result.targets[i].popup('kuangfeng');
						}
						player.logSkill('kuangfeng',result.targets,'fire');
					}
				}
			},
			biantian2:{
				trigger:{player:'damageBefore'},
				filter:function(event){
					if(event.nature!='thunder') return true;
					return false;
				},
				forced:true,
				content:function(){
					trigger.cancel();
				},
				ai:{
					nofire:true,
					nodamage:true,
					effect:{
						target:function(card,player,target,current){
							if(get.tag(card,'damage')&&!get.tag(card,'thunderDamage')) return [0,0];
						}
					}
				}
			},
			biantian3:{
				trigger:{player:'damageBegin'},
				filter:function(event){
					if(event.nature=='fire') return true;
					return false;
				},
				forced:true,
				content:function(){
					trigger.num++;
				},
				ai:{
					effect:{
						target:function(card,player,target,current){
							if(get.tag(card,'fireDamage')) return 1.5;
						}
					}
				}
			},
			jingmiao:{
				trigger:{global:'useCardAfter'},
				direct:true,
				filter:function(event,player){
					return event.player!=player&&event.card.name=='wuxie'&&event.player.countCards('he')>0;
				},
				content:function(){
					"step 0"
					player.choosePlayerCard(trigger.player,get.prompt('jingmiao',trigger.player),'he');
					"step 1"
					if(result.bool){
						player.logSkill('jingmiao',trigger.player);
						trigger.player.discard(result.links);
					}
				},
				ai:{
					expose:0.2
				}
			},
			zhinang:{
				trigger:{player:'phaseBegin'},
				frequent:true,
				content:function(){
					"step 0"
					event.cards=get.cards(3);
					event.cards2=[];
					for(var i=0;i<event.cards.length;i++){
						var type=get.type(event.cards[i]);
						if(type=='trick'||type=='equip'){
							event.cards2.push(event.cards[i]);
						}
					}
					if(!event.isMine()||event.cards2.length==0){
						player.showCards(event.cards);
					}
					"step 1"
					if(event.cards2.length==0){
						event.finish();
					}
					else{
						var dialog=ui.create.dialog('将三张牌中的锦囊牌或装备牌交给一名角色','hidden');
						dialog.add(event.cards);
						for(var i=0;i<dialog.buttons.length;i++){
							if(event.cards2.contains(dialog.buttons[i].link)){
								dialog.buttons[i].style.opacity=1;
							}
							else{
								dialog.buttons[i].style.opacity=0.5;
							}
						}
						var next=player.chooseTarget(true,dialog);
						next.ai=function(target){
							if(player.hasJudge('lebu')){
								if(target==player) return 0.1;
							}
							var att=get.attitude(player,target);
							if(player.countCards('h')>player.hp){
								if(target==player) return Math.max(1,att-2);
							}
							if(target==player) return att+5;
							return att;
						}
					}
					"step 2"
					if(result&&result.targets&&result.targets.length){
						event.target=result.targets[0];
					}
					if(event.cards2.length){
						event.target.gain(event.cards2,'gain2');
					}
				},
				ai:{
					threaten:1.3
				}
			},
			tianyu:{
				trigger:{player:'phaseEnd'},
				direct:true,
				filter:function(event,player){
					for(var i=0;i<game.players.length;i++){
						if(!game.players[i].isLinked()&&player!=game.players[i]){
							return true;
						}
					}
				},
				content:function(){
					"step 0"
					var num=0;
					for(var i=0;i<game.players.length;i++){
						if(!game.players[i].isLinked()&&player!=game.players[i]){
							num++;
						}
					}
					player.chooseTarget(get.prompt('tianyu'),[1,num],function(card,player,target){
						return !target.isLinked()&&player!=target;
					}).ai=function(target){
						return -get.attitude(player,target);
					}
					"step 1"
					if(result.bool){
						player.logSkill('tianyu',result.targets);
						event.targets=result.targets;
						event.num=0;
					}
					else{
						event.finish();
					}
					"step 2"
					if(event.num<event.targets.length){
						event.targets[event.num].link();
						event.num++;
						event.redo();
					}
				},
				ai:{
					expose:0.3
				}
			},
			jizhen:{
				trigger:{player:'phaseEnd'},
				direct:true,
				filter:function(event,player){
					for(var i=0;i<game.players.length;i++){
						if(game.players[i].hp<game.players[i].maxHp&&player!=game.players[i]){
							return true;
						}
					}
					return false;
				},
				content:function(){
					"step 0"
					var num=0;
					for(var i=0;i<game.players.length;i++){
						if(!game.players[i].isLinked()&&player!=game.players[i]){
							num++;
						}
					}
					player.chooseTarget(get.prompt('jizhen'),[1,2],function(card,player,target){
						return target.hp<target.maxHp&&player!=target;
					}).ai=function(target){
						return get.attitude(player,target);
					}
					"step 1"
					if(result.bool){
						player.logSkill('jizhen',result.targets);
						game.asyncDraw(result.targets);
					}
				},
				ai:{
					expose:0.3,
					threaten:1.3
				}
			},
		},
		translate:{
			jg_pangtong:'浴火士元',
			jg_huangyueying:'工神月英',
			jg_zhugeliang:'天侯孔明',
			jg_liubei:'烈帝玄德',
			jg_xiahouyuan:'绝尘妙才',
			jg_caozhen:'佳人子丹',
			jg_zhanghe:'巧魁儁乂',
			jg_simayi:'断狱仲达',
			tianyu:'天狱',
			zhinang:'智囊',
			jingmiao:'精妙',
			biantian:'变天',
			biantian2:'大雾',
			biantian3:'狂风',
			jizhen:'激阵',
			xuanlei:'玄雷',
			xuanlei_info:'锁定技,准备阶段,你令所有判定区内有牌的其他角色受到1点雷电伤害',
			sfanshi:'反噬',
			sfanshi_info:'锁定技,结束阶段,你失去1点体力',
			konghun:'控魂',
			konghun_info:'出牌阶段开始时,若你的体力值不大于1(场上存活角色数不小于6时改为2),你可以对至多X名角色各造成1点雷电伤害,然后你恢复等量体力,X为场上其他存活角色数的一半(向下取整且至多为4)',
			jizhen_info:'结束阶段,你可以令所至多两名已受伤角色摸一张牌',
			// biantian2_info:'已获得大雾标记',
			// biantian3_info:'已获得狂风标记',
			lingfeng:'灵锋',
			jueji:'绝汲',
			huodi:'惑敌',
			huodi_info:'结束阶段,若你本回合内没有使用过指定其他角色为目标的卡牌,你可以弃置一名其他角色的一张牌',
			jueji_info:'其他角色的摸牌阶段开始时,若其已受伤,你可以弃置一张牌令其摸牌数-1',
			lingfeng_info:'摸牌阶段,你可以弃置摸牌,改为亮出牌堆顶的两张牌并获得之,若两张牌颜色不同,你可以弃置一名角色的一张牌',
			biantian_info:'锁定技,准备阶段,你进行一次判定,若为红色,你可以选择至多三名角色进入“狂风”状态直到你的下一回合开始,若为黑桃,直到下个回合开始前,你处于“大雾”状态',
			jingmiao_info:'每当有一名其他角色使用无懈可击,你可以弃置其一张牌',
			zhinang_info:'准备阶段,你可以亮出牌堆顶的三张牌,你可以将其中锦囊或装备牌交给一名角色',
			tianyu_info:'结束阶段,你可以将任意名未横置的其他角色横置',
			juechen:'绝尘',
			juechen_info:'每当你使用一张杀,可以弃置一名其他角色的一张牌(不能是杀的目标)',
			chiying:'持盈',
			chiying_info:'每当一名角色受到多于1伤害时,你可以令其防止其余伤害,然后令伤害来源摸一张牌',
			jingfan:'惊帆',
			jingfan2:'惊帆',
			jingfan_info:'回合内,每当你使用一张卡牌,你的进攻距离+1;出牌阶段结束时,你可以将手牌数补至X,并指定至多X名角色令其进攻距离+1直到其下一回合结束,X为你回合内使用的卡牌数',

		},
	};
});