#include "Animation.h"
#include "Crawler.h"
#include "DEFINES.h"

INCLUDE_game
INCLUDE_ANIMATION_DATA

void sig::Animation::InitializeAnimations(){
	//Warrior animations.
	Animate2D::FrameSequence pl_warrior_walk_s{0.2};
	pl_warrior_walk_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,0}*24,{24,24}}});
	pl_warrior_walk_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{1,0}*24,{24,24}}});
	pl_warrior_walk_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,0}*24,{24,24}}});
	pl_warrior_walk_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{2,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_WALK_S]=pl_warrior_walk_s;
	Animate2D::FrameSequence pl_warrior_walk_e{0.2};
	pl_warrior_walk_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,3}*24,{24,24}}});
	pl_warrior_walk_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{1,3}*24,{24,24}}});
	pl_warrior_walk_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,3}*24,{24,24}}});
	pl_warrior_walk_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{2,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_WALK_E]=pl_warrior_walk_e;
	Animate2D::FrameSequence pl_warrior_walk_w{0.2};
	pl_warrior_walk_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,2}*24,{24,24}}});
	pl_warrior_walk_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{1,2}*24,{24,24}}});
	pl_warrior_walk_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,2}*24,{24,24}}});
	pl_warrior_walk_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{2,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_WALK_W]=pl_warrior_walk_w;
	Animate2D::FrameSequence pl_warrior_walk_n{0.2};
	pl_warrior_walk_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,1}*24,{24,24}}});
	pl_warrior_walk_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{1,1}*24,{24,24}}});
	pl_warrior_walk_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,1}*24,{24,24}}});
	pl_warrior_walk_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{2,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_WALK_N]=pl_warrior_walk_n;
	Animate2D::FrameSequence pl_warrior_idle_s;
	pl_warrior_idle_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_IDLE_S]=pl_warrior_idle_s;
	Animate2D::FrameSequence pl_warrior_idle_e;
	pl_warrior_idle_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_IDLE_E]=pl_warrior_idle_e;
	Animate2D::FrameSequence pl_warrior_idle_w;
	pl_warrior_idle_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_IDLE_W]=pl_warrior_idle_w;
	Animate2D::FrameSequence pl_warrior_idle_n;
	pl_warrior_idle_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{0,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WARRIOR_IDLE_N]=pl_warrior_idle_n;
	Animate2D::FrameSequence pl_warrior_swing_s(0.05),pl_warrior_swing_n(0.05),pl_warrior_swing_e(0.05),pl_warrior_swing_w(0.05);
	Animate2D::FrameSequence pl_warrior_sonic_swing_s(0.1,Animate2D::Style::OneShot),pl_warrior_sonic_swing_n(0.1,Animate2D::Style::OneShot),pl_warrior_sonic_swing_e(0.1,Animate2D::Style::OneShot),pl_warrior_sonic_swing_w(0.1,Animate2D::Style::OneShot);
	for (int i=0;i<4;i++){
		pl_warrior_swing_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,0}*24,{24,24}}});
		pl_warrior_sonic_swing_s.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,4}*24,{24,24}}});
	}
	for (int i=0;i<4;i++){
		pl_warrior_swing_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,1}*24,{24,24}}});
		pl_warrior_sonic_swing_n.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,5}*24,{24,24}}});
	}
	for (int i=0;i<4;i++){
		pl_warrior_swing_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,2}*24,{24,24}}});
		pl_warrior_sonic_swing_w.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,6}*24,{24,24}}});
	}
	for (int i=0;i<4;i++){
		pl_warrior_swing_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,3}*24,{24,24}}});
		pl_warrior_sonic_swing_e.AddFrame({&game->GFX_Warrior_Sheet,{vi2d{4+i,7}*24,{24,24}}});
	}
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSWORD_N]=pl_warrior_swing_n;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSWORD_E]=pl_warrior_swing_e;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSWORD_S]=pl_warrior_swing_s;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSWORD_W]=pl_warrior_swing_w;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSONICSWORD_N]=pl_warrior_sonic_swing_n;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSONICSWORD_E]=pl_warrior_sonic_swing_e;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSONICSWORD_S]=pl_warrior_sonic_swing_s;
	ANIMATION_DATA[AnimationState::WARRIOR_SWINGSONICSWORD_W]=pl_warrior_sonic_swing_w;

	//Ranger animations
	Animate2D::FrameSequence pl_ranger_walk_s{0.2};
	pl_ranger_walk_s.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,0}*24,{24,24}}});
	pl_ranger_walk_s.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{1,0}*24,{24,24}}});
	pl_ranger_walk_s.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,0}*24,{24,24}}});
	pl_ranger_walk_s.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{2,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_WALK_S]=pl_ranger_walk_s;
	Animate2D::FrameSequence pl_ranger_walk_e{0.2};
	pl_ranger_walk_e.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,3}*24,{24,24}}});
	pl_ranger_walk_e.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{1,3}*24,{24,24}}});
	pl_ranger_walk_e.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,3}*24,{24,24}}});
	pl_ranger_walk_e.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{2,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_WALK_E]=pl_ranger_walk_e;
	Animate2D::FrameSequence pl_ranger_walk_w{0.2};
	pl_ranger_walk_w.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,2}*24,{24,24}}});
	pl_ranger_walk_w.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{1,2}*24,{24,24}}});
	pl_ranger_walk_w.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,2}*24,{24,24}}});
	pl_ranger_walk_w.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{2,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_WALK_W]=pl_ranger_walk_w;
	Animate2D::FrameSequence pl_ranger_walk_n{0.2};
	pl_ranger_walk_n.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,1}*24,{24,24}}});
	pl_ranger_walk_n.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{1,1}*24,{24,24}}});
	pl_ranger_walk_n.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,1}*24,{24,24}}});
	pl_ranger_walk_n.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{2,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_WALK_N]=pl_ranger_walk_n;
	Animate2D::FrameSequence pl_ranger_idle_s;
	pl_ranger_idle_s.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_IDLE_S]=pl_ranger_idle_s;
	Animate2D::FrameSequence pl_ranger_idle_e;
	pl_ranger_idle_e.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_IDLE_E]=pl_ranger_idle_e;
	Animate2D::FrameSequence pl_ranger_idle_w;
	pl_ranger_idle_w.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_IDLE_W]=pl_ranger_idle_w;
	Animate2D::FrameSequence pl_ranger_idle_n;
	pl_ranger_idle_n.AddFrame({&game->GFX_Ranger_Sheet,{vi2d{0,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::RANGER_IDLE_N]=pl_ranger_idle_n;

	//Wizard animations
	Animate2D::FrameSequence pl_wizard_walk_s{0.2};
	pl_wizard_walk_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,0}*24,{24,24}}});
	pl_wizard_walk_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{1,0}*24,{24,24}}});
	pl_wizard_walk_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,0}*24,{24,24}}});
	pl_wizard_walk_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{2,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_WALK_S]=pl_wizard_walk_s;
	Animate2D::FrameSequence pl_wizard_walk_e{0.2};
	pl_wizard_walk_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,3}*24,{24,24}}});
	pl_wizard_walk_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{1,3}*24,{24,24}}});
	pl_wizard_walk_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,3}*24,{24,24}}});
	pl_wizard_walk_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{2,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_WALK_E]=pl_wizard_walk_e;
	Animate2D::FrameSequence pl_wizard_walk_w{0.2};
	pl_wizard_walk_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,2}*24,{24,24}}});
	pl_wizard_walk_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{1,2}*24,{24,24}}});
	pl_wizard_walk_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,2}*24,{24,24}}});
	pl_wizard_walk_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{2,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_WALK_W]=pl_wizard_walk_w;
	Animate2D::FrameSequence pl_wizard_walk_n{0.2};
	pl_wizard_walk_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,1}*24,{24,24}}});
	pl_wizard_walk_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{1,1}*24,{24,24}}});
	pl_wizard_walk_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,1}*24,{24,24}}});
	pl_wizard_walk_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{2,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_WALK_N]=pl_wizard_walk_n;
	Animate2D::FrameSequence pl_wizard_idle_s;
	pl_wizard_idle_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_S]=pl_wizard_idle_s;
	Animate2D::FrameSequence pl_wizard_idle_e;
	pl_wizard_idle_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_E]=pl_wizard_idle_e;
	Animate2D::FrameSequence pl_wizard_idle_w;
	pl_wizard_idle_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_W]=pl_wizard_idle_w;
	Animate2D::FrameSequence pl_wizard_idle_n;
	pl_wizard_idle_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{0,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_N]=pl_wizard_idle_n;
	Animate2D::FrameSequence pl_wizard_idle_attack_s;
	pl_wizard_idle_attack_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,0}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_ATTACK_S]=pl_wizard_idle_attack_s;
	Animate2D::FrameSequence pl_wizard_idle_attack_e;
	pl_wizard_idle_attack_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,3}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_ATTACK_E]=pl_wizard_idle_attack_e;
	Animate2D::FrameSequence pl_wizard_idle_attack_w;
	pl_wizard_idle_attack_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,2}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_ATTACK_W]=pl_wizard_idle_attack_w;
	Animate2D::FrameSequence pl_wizard_idle_attack_n;
	pl_wizard_idle_attack_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,1}*24,{24,24}}});
	ANIMATION_DATA[AnimationState::WIZARD_IDLE_ATTACK_N]=pl_wizard_idle_attack_n;
	Animate2D::FrameSequence pl_wizard_attack_s(0.2);
	for(int i=0;i<3;i++){
		pl_wizard_attack_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4+i,0}*24,{24,24}}});
		if(i==1){
			pl_wizard_attack_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,0}*24,{24,24}}});
		}
	}
	ANIMATION_DATA[AnimationState::WIZARD_ATTACK_S]=pl_wizard_attack_s;
	Animate2D::FrameSequence pl_wizard_attack_e(0.2);
	for(int i=0;i<3;i++){
		pl_wizard_attack_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4+i,3}*24,{24,24}}});
		if(i==1){
			pl_wizard_attack_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,3}*24,{24,24}}});
		}
	}
	ANIMATION_DATA[AnimationState::WIZARD_ATTACK_E]=pl_wizard_attack_e;
	Animate2D::FrameSequence pl_wizard_attack_w(0.2);
	for(int i=0;i<3;i++){
		pl_wizard_attack_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4+i,2}*24,{24,24}}});
		if(i==1){
			pl_wizard_attack_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,2}*24,{24,24}}});
		}
	}
	ANIMATION_DATA[AnimationState::WIZARD_ATTACK_W]=pl_wizard_attack_w;
	Animate2D::FrameSequence pl_wizard_attack_n(0.2);
	for(int i=0;i<3;i++){
		pl_wizard_attack_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4+i,1}*24,{24,24}}});
		if(i==1){
			pl_wizard_attack_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{4,1}*24,{24,24}}});
		}
	}
	ANIMATION_DATA[AnimationState::WIZARD_ATTACK_N]=pl_wizard_attack_n;
	Animate2D::FrameSequence pl_wizard_cast_s(0.1);
	for(int i=0;i<2;i++){
		pl_wizard_cast_s.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{7+i,0}*24,{24,24}}});
	}
	ANIMATION_DATA[AnimationState::WIZARD_CAST_S]=pl_wizard_cast_s;
	Animate2D::FrameSequence pl_wizard_cast_e(0.1);
	for(int i=0;i<2;i++){
		pl_wizard_cast_e.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{7+i,3}*24,{24,24}}});
	}
	ANIMATION_DATA[AnimationState::WIZARD_CAST_E]=pl_wizard_cast_e;
	Animate2D::FrameSequence pl_wizard_cast_n(0.1);
	for(int i=0;i<2;i++){
		pl_wizard_cast_n.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{7+i,1}*24,{24,24}}});
	}
	ANIMATION_DATA[AnimationState::WIZARD_CAST_N]=pl_wizard_cast_n;
	Animate2D::FrameSequence pl_wizard_cast_w(0.1);
	for(int i=0;i<2;i++){
		pl_wizard_cast_w.AddFrame({&game->GFX_Wizard_Sheet,{vi2d{7+i,2}*24,{24,24}}});
	}
	ANIMATION_DATA[AnimationState::WIZARD_CAST_W]=pl_wizard_cast_w;

	//Load slime animations.
	for(int slime=0;slime<4;slime++){
		for(int state=0;state<5;state++){
			Animate2D::FrameSequence anim;
			if(state==4){//These are death animations.
				anim=Animate2D::FrameSequence(0.1f,Animate2D::Style::OneShot);
			}
			if(state==2){//These are death animations.
				anim=Animate2D::FrameSequence(0.06f);
			}
			for (int frame=0;frame<10;frame++){
				anim.AddFrame({&game->GFX_Slime_Sheet,{vi2d{frame,state+5*slime}*24,{24,24}}});
			}
			ANIMATION_DATA[AnimationState(AnimationState::GREEN_SLIME_IDLE+state+slime*5)]=anim;
		}
	}
	Animate2D::FrameSequence effect_groundslam_back(0.02f,Animate2D::Style::OneShot),effect_groundslam_front(0.02f,Animate2D::Style::OneShot);
	for(int i=0;i<5;i++){
		effect_groundslam_back.AddFrame({&game->GFX_Effect_GroundSlam_Back,{{i*64,0},{64,64}}});
		effect_groundslam_front.AddFrame({&game->GFX_Effect_GroundSlam_Front,{{i*64,0},{64,64}}});
	}
	ANIMATION_DATA[AnimationState::GROUND_SLAM_ATTACK_BACK]=effect_groundslam_back;
	ANIMATION_DATA[AnimationState::GROUND_SLAM_ATTACK_FRONT]=effect_groundslam_front;
	Animate2D::FrameSequence battlecry_effect(0.02f,Animate2D::Style::OneShot);
	for(int i=0;i<5;i++){
		battlecry_effect.AddFrame({&game->GFX_Battlecry_Effect,{{i*84,0},{84,84}}});
	}
	ANIMATION_DATA[AnimationState::BATTLECRY_EFFECT]=battlecry_effect;
	Animate2D::FrameSequence sonicslash_effect(0.04f,Animate2D::Style::OneShot);
	for(int i=0;i<4;i++){
		sonicslash_effect.AddFrame({&game->GFX_SonicSlash,{{i*60,0},{60,60}}});
	}
	ANIMATION_DATA[AnimationState::SONICSLASH]=sonicslash_effect;
	Animate2D::FrameSequence energy_bolt;
	energy_bolt.AddFrame({&game->GFX_EnergyBolt,{{0,0},{24,24}}});
	ANIMATION_DATA[AnimationState::ENERGY_BOLT]=energy_bolt;

	Animate2D::FrameSequence energy_particle;
	for(int i=0;i<3;i++){
		energy_particle.AddFrame({&game->GFX_EnergyParticle,{{i*3,0},{3,3}}});
	}
	ANIMATION_DATA[AnimationState::ENERGY_PARTICLE]=energy_particle;

	Animate2D::FrameSequence splash_animation(0.05);
	for(int i=0;i<5;i++){
		splash_animation.AddFrame({&game->GFX_Splash_Effect,{{i*24,0},{24,24}}});
	}
	ANIMATION_DATA[AnimationState::SPLASH_EFFECT]=splash_animation;

	Animate2D::FrameSequence dot_particle;
	dot_particle.AddFrame({&game->GFX_BulletCircle,{{0,0},{3,3}}});
	ANIMATION_DATA[AnimationState::DOT_PARTICLE]=dot_particle;

	Animate2D::FrameSequence lightningbolt(0.03,Animate2D::Style::PingPong);
	for(int i=0;i<5;i++){
		lightningbolt.AddFrame({&game->GFX_LightningBolt,{{i*24,0},{24,24}}});
	}
	ANIMATION_DATA[AnimationState::LIGHTNING_BOLT]=lightningbolt;

	Animate2D::FrameSequence lightningboltpart1;
	lightningboltpart1.AddFrame({&game->GFX_LightningBoltParticle1,{{0,0},{5,5}}});
	ANIMATION_DATA[AnimationState::LIGHTNING_BOLT_PARTICLE1]=lightningboltpart1;
	Animate2D::FrameSequence lightningboltpart2;
	lightningboltpart2.AddFrame({&game->GFX_LightningBoltParticle2,{{0,0},{5,5}}});
	ANIMATION_DATA[AnimationState::LIGHTNING_BOLT_PARTICLE2]=lightningboltpart2;
	Animate2D::FrameSequence lightningboltpart3;
	lightningboltpart3.AddFrame({&game->GFX_LightningBoltParticle3,{{0,0},{5,5}}});
	ANIMATION_DATA[AnimationState::LIGHTNING_BOLT_PARTICLE3]=lightningboltpart3;
	Animate2D::FrameSequence lightningboltpart4;
	lightningboltpart4.AddFrame({&game->GFX_LightningBoltParticle4,{{0,0},{5,5}}});
	ANIMATION_DATA[AnimationState::LIGHTNING_BOLT_PARTICLE4]=lightningboltpart4;

	Animate2D::FrameSequence chainlightning;
	chainlightning.AddFrame({&game->GFX_ChainLightning,{{0,0},{1,9}}});
	ANIMATION_DATA[AnimationState::CHAIN_LIGHTNING]=chainlightning;

	Animate2D::FrameSequence lightningsplash;
	for(int i=0;i<5;i++){
		lightningsplash.AddFrame({&game->GFX_LightningSplash,{{i*24,0},{24,24}}});
	}
	ANIMATION_DATA[AnimationState::LIGHTNING_SPLASH]=lightningsplash;

	Animate2D::FrameSequence meteor;
	meteor.AddFrame({&game->GFX_Meteor,{{0,0},{192,192}}});
	ANIMATION_DATA[AnimationState::METEOR]=meteor;
}

void sig::Animation::SetupPlayerAnimations(){
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_WALK_N);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_WALK_E);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_WALK_S);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_WALK_W);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_IDLE_N);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_IDLE_E);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_IDLE_S);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_IDLE_W);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSWORD_E);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSWORD_S);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSWORD_N);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSWORD_W);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSONICSWORD_E);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSONICSWORD_S);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSONICSWORD_N);
	game->GetPlayer()->AddAnimation(AnimationState::WARRIOR_SWINGSONICSWORD_W);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_WALK_N);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_WALK_E);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_WALK_S);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_WALK_W);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_IDLE_N);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_IDLE_E);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_IDLE_S);
	game->GetPlayer()->AddAnimation(AnimationState::RANGER_IDLE_W);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_WALK_N);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_WALK_E);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_WALK_S);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_WALK_W);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_N);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_E);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_S);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_W);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_ATTACK_N);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_ATTACK_E);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_ATTACK_S);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_IDLE_ATTACK_W);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_ATTACK_N);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_ATTACK_E);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_ATTACK_S);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_ATTACK_W);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_CAST_N);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_CAST_E);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_CAST_S);
	game->GetPlayer()->AddAnimation(AnimationState::WIZARD_CAST_W);
}