[Action] ID=wb_swap; 
	name=Gate: Swap;
	icon=icon_gate_swap;
	mpCost=4;
	tooltip=Connect two points in space, teleporting yourself or allies between them.;
	rankUpTooltip=Each rank adds +1 range.;
	
	XPCost=150;
	XPCost=400;
	XPCost=700;
	
	AIRatingBias = -999;
	
	casterAnimation=spellcast;
	special=swapTargetWithTarget;
	maxRank=3;
	
	numTargets=2;
	FXOnCaster=magicCharge;
	
	FXOnTarget=gateClose_fast;
	FXOnTarget=horizSpark_many_wideArea;
	FXOnTarget=sfx_highestHum;
[ActionAoE] 
	ID=wb_swap;
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	teleporting=true;
	minRange = 0;
	maxRange = 1;
	maxRangeBonus=c:rank;
	canSelectEnemies=false;
	bypassAll=true;
	occupyAll=false;
[AvAffecter]
	ID=wb_swap; 
	harmful=false;
	chance=100;
[AvAffecterAoE]
	ID=wb_swap;
	cloneFrom=oneTile;

	
	
	

[Action] ID=wb_trick; 
	name=Gate: Trick;
	icon=icon_gate_trick;
	mpCost=2;
	tooltip=Thrust your weapon through a gate, surprising the enemy on the other side.;
	rankUpTooltip=Each rank adds +1 range.;
	tooltipIcons=<icon=noRanged>;
	
	XPCost=150;
	XPCost=500;
	XPCost=900;
	
	casterAnimation=weapon;
	maxRank=3;
	requiredWeaponElement=melee;
	
	FXOnCaster=sfx_highestHum;
	FXOnCaster=gateOpen_small_flicker_fast;
	FXOnCaster=gateClose_small_flicker_fast;
	
	FXOnTarget=gateOpen_small_flicker_fast_overlap;
	FXOnTarget=weaponFX;
[ActionAoE] 
	ID=wb_trick; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	teleporting=true;
	minRange = 1;
	maxRange = 1;
	maxRangeBonus=c:rank;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=wb_trick; 
	weaponAvAffecter=true;
	magnitude=w:magnitude;
	chance=w:chance * 1.2;
	duration=-2;
	FXOnTile=gateClose_small_flicker_fast;
[AvAffecterAoE]
	ID=wb_trick;
	cloneFrom=oneTile;
	
	
	
[Action] ID=wb_slam; 
	name=Gate: Slam;
	icon=icon_gate_slam;
	casterAnimation=gate_slam;
	casterAnimationSpeed=1;
	mpCost=10;
	tooltip=Leap through gates to increase your falling speed, then slam into the ground, pushing and stunning targets for <icon=time>2.;
	rankUpTooltip=Each rank adds +1 range.;
	
	
	XPCost=250;
	XPCost=550;
	XPCost=650;
	
	maxRank=3;
	
	special=moveCasterToTarget;
	
	FXOnCaster=woosh;
	FXOnCaster=delay;
	FXOnCaster=delay;
	FXOnCaster=darken;
	FXOnCaster=gateClose_fast;
	
	FXOnTarget=thunder;
	FXOnTarget=bigShakeVert;
	FXOnTarget=windBlast_spidest;
[ActionAoE] 
	ID=wb_slam;
	cloneFrom=adjacent;
	minRange=2;
	maxRange=3;
	maxRangeBonus=c:rank;
	airborne=true;
	arc=true;
	needsLoE=false;
	needsLoS=true;
	occupyAll=false;
	canSelectActors=false;
[AvAffecter]
	ID=wb_slam; 
	actorValue=HP;
	magnitude=d:fistDmg * 0.5 + d:magicDmgHalfDef(1) * 0.5;
	duration=-2;
	chance=100;
	FXOnTile=terrain;
	FXOnTile=SLAM;
	element=physical;
	element=melee;
	element=smash;
	element=heavySmash;
[AvAffecterAoE]
	ID=wb_slam;
	cloneFrom=adjacent;
	airborne=true;
	arc=true;
	maxRange=1;
[AvAffecter]
	ID=wb_slam; 
	actorValue=stun;
	magnitude=1;
	duration=2;
	chance=100;
[AvAffecterAoE]
	ID=wb_slam;
	cloneFrom=adjacent;
	airborne=true;
	arc=true;
	maxRange=1;
[AvAffecter]
	ID=wb_slam; 
	actorValue=push;
	magnitude=1;
	duration=-2;
	chance=100;
[AvAffecterAoE]
	ID=wb_slam;
	cloneFrom=adjacent;
	airborne=true;
	arc=true;
	maxRange=1;
	
	
[Action] ID=wb_gateShield; 
	name=Gate: Shield;
	icon=icon_gate_shield;
	mpCost=4;
	tooltip=Grant an ally immunity to ranged attacks for <icon=time><math=45 + c:MagAtk * 3>.;
	rankUpTooltip=Each rank adds +1 range.;
	
	XPCost=200;
	XPCost=400;
	XPCost=700;
	
	AIRatingBias = -999;
	
	casterAnimation=spellcast;
	maxRank=3;
	
	FXOnCaster=magicCharge;
	
[ActionAoE] 
	ID=wb_gateShield;
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	teleporting=true;
	minRange = 0;
	maxRange = 3;
	maxRangeBonus=c:rank;
	canSelectEnemies=false;
	bypassAll=true;
	occupyAll=false;
[AvAffecter]
	ID=wb_gateShield; 
	harmful=false;
	actorValue=gateShield;
	magnitude=1;
	duration=45 + c:MagAtk * 3;
	chance=100;
	FXOnTile=horizSpark_many_wideArea;
	FXOnTile=gateOpen_fast;
	FXOnTile=gateClose_flicker_fast;
	element=physical;
[AvAffecterAoE]
	ID=wb_gateShield;
	cloneFrom=oneTile;



[Action] ID=wb_onslaught; 
	name=Gate: Onslaught;
	icon=icon_gate_onslaught;
	mpCost=18;
	chargeTime=26;
	tooltip=Use gates to attack every enemy with your weapon for 80% damage.;
	rankUpTooltip=;
	tooltipIcons=<icon=noRanged>;
	
	XPCost=750;
	
	casterAnimation=charge_disappear;
	casterAnimationSpeed=0.8;
	maxRank=1;
	requiredWeaponElement=melee;
	
	special=requiresCasting;
	special=cantUseInTravel;
	
	FXOnCaster=sfx_highestHum;
	FXOnCaster=gateOpen_flicker;
	FXOnCaster=actor_spreadPhantoms;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=gateClose_small_flicker_fast;
	
	FXOnTarget=screenShock_instant;
	FXOnTarget=sfx_laser_blast_high;
	FXOnCaster=gateClose_flicker;
	
[ActionAoE] 
	ID=wb_onslaught; shape=17;
	cloneFrom=adjacentAndSelf;
	maxRange=22;
	arc=true;
	airborne=true;
	needsLoE=false;
	needsLoS=false;
	bypassAll=true;
	canSelectAllies=false;
[AvAffecter]
	ID=wb_onslaught; 
	weaponAvAffecter=false;
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance * 0.95;
	duration=-2;
	FXOnTile=sfx_highestHum_quiet;
	FXOnTile=gateClose_flicker_overlap;
	FXOnTile=ThudShot;
[AvAffecterAoE]
	ID=wb_onslaught; shape=17;
	cloneFrom=adjacentAndSelf;
	maxRange=22;
	arc=true;
	airborne=true;
	needsLoE=false;
	needsLoS=false;
	bypassAll=true;
	canSelectAllies=false;
	aoeCasterAsOrigin=true;
	
	

[Action] ID=wb_cross; 
	name=Gate: Cross;
	icon=icon_gate_cross;
	mpCost=12;
	chargeTime=8;
	tooltip=Perform two dashing attacks in a cross pattern, dealing heavy damage in the center.;
	rankUpTooltip=Each rank adds +1 range.;
	tooltipIcons=<icon=noRanged>;
	
	XPCost=250;
	XPCost=670;
	XPCost=750;
	
	casterAnimation=charge_disappear;
	maxRank=3;
	requiredWeaponElement=melee;
	
	special=requiresCasting;
	
	FXOnCaster=sfx_highestHum;
	FXOnCaster=gateOpen_small_flicker_fast;
	FXOnCaster=gateClose_small_flicker_fast;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=delay2;
	FXOnCaster=gateClose_small_flicker_fast;
	
	FXOnTarget=gateOpen_left_noOverlap;
	FXOnTarget=gateOpen_right_noOverlap;
[ActionAoE] 
	ID=wb_cross; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	teleporting=true;
	minRange = 3;
	maxRange = 3;
	maxRangeBonus=c:rank;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=wb_cross; 
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance;
	duration=-2;
	element=physical;
[AvAffecterAoE]
	ID=wb_cross; shape=2;
	minRange=1;
	maxRange=2;
	forcedRot=180;
	coneAngle=1;
	arc=true;
	airborne=true;
	teleporting=true;
	needsLoE=false;
	needsLoS=true;
	
[AvAffecter]
	ID=wb_cross; 
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance;
	duration=-2;
	element=physical;
	FXOnTile=delay;
	FXOnTile=DramaticNyeaow;
	FXOnTile=longslash;
	FXOnTile=gateClose_left_noOverlap;
	FXOnTile=gateClose_right_noOverlap;
	FXOnTile=gateOpen_above_noOverlap;
	FXOnTile=gateOpen_below_noOverlap;
	FXOnHit=triSlash;
	FXOnHit=sfx_slashingHit;
[AvAffecterAoE]
	ID=wb_cross;
	cloneFrom=oneTile;
	airborne=true;
	teleporting=true;
	teleporting=true;
	
[AvAffecter]
	ID=wb_cross; 
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance;
	duration=-2;
	element=physical;
[AvAffecterAoE]
	ID=wb_cross; shape=2;
	minRange=1;
	maxRange=2;
	forcedRot=0;
	coneAngle=1;
	arc=true;
	airborne=true;
	teleporting=true;
	needsLoE=false;
	needsLoS=true;
	

[AvAffecter]
	ID=wb_cross; 
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance;
	duration=-2;
	element=physical;
[AvAffecterAoE]
	ID=wb_cross; shape=2;
	minRange=1;
	maxRange=2;
	forcedRot=270;
	coneAngle=1;
	arc=true;
	airborne=true;
	teleporting=true;
	needsLoE=false;
	needsLoS=true;
	
[AvAffecter]
	ID=wb_cross; 
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance;
	duration=-2;
	element=physical;
	FXOnTile=DramaticNyeaow;
	FXOnTile=longslash_rot;
	FXOnTile=gateClose_above_noOverlap;
	FXOnTile=gateClose_below_noOverlap;
	FXOnHit=triSlash;
	FXOnHit=sfx_slashingHit;
[AvAffecterAoE]
	ID=wb_cross;
	cloneFrom=oneTile;
	arc=true;
	airborne=true;
	teleporting=true;
	
[AvAffecter]
	ID=wb_cross; 
	actorValue=HP;
	magnitude=w:magnitude * 0.8;
	chance=w:chance;
	duration=-2;
	element=physical;
[AvAffecterAoE]
	ID=wb_cross; shape=2;
	minRange=1;
	maxRange=2;
	forcedRot=90;
	coneAngle=1;
	arc=true;
	airborne=true;
	teleporting=true;
	needsLoE=false;
	needsLoS=true;
	
	

[Action] ID=wb_barrage; 
	name=Gate: Barrage;
	icon=icon_gate_barrage;
	mpCost=7;
	tooltip=Deal minor damage and push enemies through <math=c:rank + 2> gates.;
	rankUpTooltip=Each rank adds +1 target.;
	tooltipIcons=<icon=noRanged>;
	
	XPCost=200;
	XPCost=400;
	XPCost=900;
	
	AIRatingBias = -999;
	
	casterAnimation=pummel;
	maxRank=3;
	requiredWeaponElement=melee;
	
	numTargets=2 + c:rank;
	minDistanceBetweenTargets=2;
--maxDistanceBetweenTargets=3;
	
	FXOnCaster=sfx_highestHum;
	FXOnCaster=gateOpen_flicker;
	FXOnCaster=gateClose_flicker;
	
[ActionAoE] 
	ID=wb_barrage; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	teleporting=true;
	minRange = 2;
	maxRange = 5;
	bypassAll=true;
	occupyAll=true;
	canSelectActors=false;
[AvAffecter]
	ID=wb_barrage;
	visibleEvaluations=false;	
	FXOnTile=delay;
	FXOnTile=gateClose_small_flicker_fast;
	FXOnTile=sfx_gustyBlast;
[AvAffecterAoE]
	ID=wb_barrage;
	cloneFrom=oneTile;
[AvAffecter]
	ID=wb_barrage; 
	actorValue=HP;
	magnitude=w:magnitude * 0.25 + d:magicDmgHalfDef(1) * 0.25;
	chance=w:chance;
	duration=-2;
	useCasterAsOriginForDirectionalEffects=false;
	FXOnTile=smallShockwave_instant_moving;
[AvAffecterAoE]
	ID=wb_barrage;
	cloneFrom=adjacent;
[AvAffecter]
	ID=wb_barrage; 
	actorValue=push;
	magnitude=1;
	chance=w:chance;
	duration=-2;
	useCasterAsOriginForDirectionalEffects=false;
	FXOnHit=pop;
	FXOnHit=largePing;
	FXOnHit=click;
[AvAffecterAoE]
	ID=wb_barrage;
	cloneFrom=adjacent;
	
	