
[Action] ID=So_inferno; 
	name=Inferno;
	icon=icon_So_inferno;
	mpCost=7;
	chargeTime=15;
	tooltip=Unleash devastating fire in a small area.;
	rankUpTooltip=;
	
	XPCost=150;
	
	special=requiresCasting;
	casterAnimation=spellcast;
	maxRank=1;
	
	FXOnCaster=magicCharge;
	
	FXOnTarget=fireburst;
	FXOnTarget=burn;
[ActionAoE] 
	ID=So_inferno; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	minRange = 1;
	maxRange = 4;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=So_inferno; 
	actorValue=HP;
	magnitude=d:fireDmg(10);
	duration=-2;
	chance=d:magicAcc;
	element=magic;
	element=fire;
	element=kindle;
	FXOnTile=tallExplosion;
[AvAffecterAoE]
	ID=So_inferno;
	cloneFrom=adjacentAndSelf;
	needsLoE = false;
	bypassAll=true;
	occupyAll=true;
	airborne=true;
	arc=true;



[Action] ID=So_lightning; 
	name=Lightning;
	icon=icon_So_lightning;
	mpCost=7;
	chargeTime=13;
	tooltip=Strike an area with a bolt of lightning.;
	rankUpTooltip=Each rank adds +1 range.;
	
	XPCost=150;
	XPCost=400;
	XPCost=750;
	
	special=requiresCasting;
	casterAnimation=spellcast;
	maxRank=3;
	
	FXOnCaster=magicCharge;
	FXOnTarget=darken_minor;
	
	FXOnTarget=thunderbolt;
	FXOnTarget=DramaticNyeaow;
	FXOnTarget=elecBlast;
[ActionAoE] 
	ID=So_lightning; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	minRange = 1;
	maxRange = 3;
	maxRangeBonus = c:rank;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=So_lightning; 
	actorValue=HP;
	magnitude= d:elecDmg(8);
	duration=-2;
	chance=d:magicAcc;
	element=magic;
	element=lightning;
	FXOnTile=spark;
	FXOnTileColor=SkyBlue;
[AvAffecterAoE]
	ID=So_lightning;
	cloneFrom=adjacentAndSelf;
	needsLoE = false;
	bypassAll=true;
	occupyAll=true;
	airborne=true;
	arc=true;

	

[Action] ID=So_blizzard; 
	name=Blizzard;
	icon=icon_So_blizzard;
	mpCost=10;
	chargeTime=16;
	tooltip=Conjure an icy storm that blasts <math=c:rank+1> adjacent areas.;
	rankUpTooltip=Each rank increases area of effect.;
	
	numTargets=c:rank+1;
	minDistanceBetweenTargets=3;
	maxDistanceBetweenTargets=3;
	
	XPCost=270;
	XPCost=700;
	XPCost=1200;
	
	FXOnCaster=magicCharge;
	FXOnTarget=darken_minor;
	FXOnTarget=sparkle;
	FXOnTarget=iceShards_rot_small;
	
	special=requiresCasting;
	casterAnimation=spellcast;
	maxRank=3;
[ActionAoE] 
	ID=So_blizzard; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	minRange = 1;
	maxRange = 5;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=So_blizzard; 
	actorValue=HP;
	magnitude= d:iceDmg(9);
	duration=-2;
	chance=d:magicAcc;
	element=magic;
	element=ice;
	FXOnTile=frostcloud;
	FXOnTile=iceExplosion;
[AvAffecterAoE]
	ID=So_blizzard;
	cloneFrom=adjacentAndSelf;
	needsLoE = false;
	bypassAll=true;
	occupyAll=true;
	airborne=true;
	arc=true;
	

[Action] ID=So_cyclone; 
	name=Cyclone;
	icon=icon_So_cyclone;
	mpCost=11;
	chargeTime=15;
	tooltip=Create a vortex of wind that pushes enemies away from its center by <math=c:rank> tile(s).;
	rankUpTooltip=Each rank increases distance pushed by 1.;
	
	XPCost=220;
	XPCost=350;
	XPCost=500;
	
	special=requiresCasting;
	casterAnimation=spellcast;
	maxRank=3;
	
	FXOnCaster=magicCharge;
	FXOnTarget=darken_minor;
[ActionAoE] 
	ID=So_cyclone; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	minRange = 1;
	maxRange = 4;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=So_cyclone; 
	useCasterAsOriginForDirectionalEffects=false;
	actorValue=HP;
	magnitude= d:windDmg(10);
	duration=-2;
	chance=d:magicAcc;
	element=magic;
	element=wind;
	FXOnTile=smallShockwave_moving;
	FXOnTile=windWhirlSlash;
[AvAffecterAoE]
	ID=So_cyclone;
	cloneFrom=adjacentAndSelf+1;
	needsLoE = false;
	bypassAll=true;
	occupyAll=true;
	airborne=true;
	arc=true;
[AvAffecter]
	ID=So_cyclone; 
	useCasterAsOriginForDirectionalEffects=false;
	actorValue=push;
	magnitude= c:rank;
	duration=-2;
	chance=d:magicAcc;
	element=magic;
	element=wind;
[AvAffecterAoE]
	ID=So_cyclone;
	cloneFrom=adjacentAndSelf+1;
	needsLoE = false;
	bypassAll=true;
	occupyAll=true;
	airborne=true;
	arc=true;
	
	

[Action] ID=So_freeze; 
	name=Freeze;
	icon=icon_So_freeze;
	mpCost=14;
	chargeTime=15;
	tooltip=Freeze a target up to <icon=time><math=30 + d:iceDurMax(2) + c:rank * 10>. When used on empty space, creates a block of ice.;
	rankUpTooltip=Each rank increases frozen duration by <icon=time>10.;
	
	XPCost=320;
	XPCost=450;
	XPCost=475;
	XPCost=550;
	XPCost=650;
	
	special=requiresCasting;
	casterAnimation=spellcast;
	maxRank=5;
	
	FXOnCaster=magicCharge;
	FXOnTarget=darken_minor;
	FXOnTarget=sparkle;
[ActionAoE] 
	ID=So_freeze; 
	needsLoS = true;
	needsLoE = false;
	airborne=true;
	arc=true;
	minRange = 1;
	maxRange = 4;
	bypassAll=true;
	occupyAll=true;
[AvAffecter]
	ID=So_freeze; 
	actorValue=HP;
	magnitude= d:iceDmg(5);
	duration=-2;
	chance=d:magicAcc;
	element=magic;
	element=ice;
	FXOnTile=chargeFast;
	FXOnTile=sfx_frost;
	FXOnTile=icefreeze;
	FXOnTile=iceBurst;
[AvAffecterAoE]
	ID=So_freeze;
	cloneFrom=oneTile;
[AvAffecter]
	ID=So_freeze; 
	actorValue=frozen;
	magnitude= 1;
	duration=30 + d:iceDur(2) + 10 * c:rank;
	chance=d:magicAcc - t:warmth * 200;
	element=magic;
	element=ice;
[AvAffecterAoE]
	ID=So_freeze;
	cloneFrom=oneTile;
[AvAffecter]
	ID=So_freeze; 
	actorValue=summonItem;
	magnitude=iceBlock;
	duration=1;
[AvAffecterAoE]
	ID=So_freeze;
	cloneFrom=oneTile;
	canSelectActors=false;
	bypassAll=false;
	occupyAll=false;
	
	
[Action] ID=So_shockBolts; 
	name=Shock Bolts;
	icon=icon_So_shockBolts;
	mpCost=5;
	tooltip=Shoot <math=c:rank> orb(s) of electricity at your targets.;
	rankUpTooltip=Each rank increases number of targets by 1.;
	
	XPCost=80;
	XPCost=220;
	XPCost=670;
	XPCost=1250;
	
	numTargets=c:rank;
	
	casterAnimation=spellcast;
	maxRank=4;
	
	FXOnCaster=sparkOut;
[ActionAoE] 
	ID=So_shockBolts; 
	needsLoS = true;
	needsLoE = true;
	minRange = 1;
	maxRange = 4;
	airborne=true;
	arc=false;
	bypassAll=false;
	occupyAll=true;
[AvAffecter]
	ID=So_shockBolts; 
	actorValue=HP;
	magnitude=d:elecDmg(3);
	duration=-2;
	chance=d:magicProjectileAcc;
	element=magic;
	element=lightning;
	FXOnTile=sparkShot;
	FXOnTile=spark;
	FXOnHit=hitDust;
[AvAffecterAoE]
	ID=So_shockBolts;
	cloneFrom=oneTile;
	
	
	

[Action] ID=So_fireWhirl; 
	name=Fire Whirl;
	icon=icon_So_fireWhirl;
	mpCost=15;
	chargeTime=11;
	tooltip=Summon a fiery tornado that lasts <icon=time>80 and scorches adjacent creatures every <icon=time>20.;
	rankUpTooltip=Each rank adds +1 range.;
	
	AIRatingBias = -11;
	
	XPCost=275;
	XPCost=600;
	XPCost=700;
	
	special=requiresCasting;
	casterAnimation=spellcast;
	maxRank=3;
	
	FXOnCaster=magicCharge;
	
	FXOnTarget=darken;
	FXOnTarget=fireburst;
	FXOnTarget=gustyBlast;
[ActionAoE] 
	ID=So_fireWhirl;
	needsLoS=true;
	needsLoE = false;
	canSelectActors=false;
	airborne=true;
	arc=true;
	bypassAll=true;
	occupyAll=false;
	minRange = 1;
	maxRange = 2;
	maxRangeBonus=c:rank;
[AvAffecter]
	ID=So_fireWhirl; 
	actorValue=summonItem;
	magnitude=fireWhirl;
	duration=1;
[AvAffecterAoE]
	ID=So_fireWhirl;
	cloneFrom=oneTile;
	canSelectActors=false;
	bypassAll=false;
	occupyAll=false;
[AvAffecter]
	ID=So_fireWhirl; 
	actorValue=HP;
	magnitude=-8 - t:TrueHPMax * 0.1 + t:MagDef + t:skill_Fire;
	duration=-2;
	chance=100 - t:MagEva/2;
	element=magic;
	element=fire;
	FXOnTile=burn;
[AvAffecterAoE]
	ID=So_fireWhirl;
	cloneFrom=adjacent;
	needsLoE = false;
	bypassAll=true;
	occupyAll=true;
	airborne=true;
	arc=true;