diff --git a/Adventures in Lestoria/Animation.cpp b/Adventures in Lestoria/Animation.cpp index d607d590..70f006b2 100644 --- a/Adventures in Lestoria/Animation.cpp +++ b/Adventures in Lestoria/Animation.cpp @@ -268,6 +268,73 @@ void sig::Animation::InitializeAnimations(){ ANIMATION_DATA["TRAPPER_SETTRAP_E"]=pl_trapper_setTrap_e; ANIMATION_DATA["TRAPPER_SETTRAP_W"]=pl_trapper_setTrap_w; + //Witch animations + SetupClassWalkIdleAnimations(GFX["nico-witch.png"],"WITCH"); + Animate2D::FrameSequence pl_wizard_idle_attack_s; + pl_wizard_idle_attack_s.AddFrame({&GFX["nico-witch.png"],{vi2d{4,0}*24,{24,24}}}); + ANIMATION_DATA["WITCH_IDLE_ATTACK_S"]=pl_wizard_idle_attack_s; + Animate2D::FrameSequence pl_wizard_idle_attack_e; + pl_wizard_idle_attack_e.AddFrame({&GFX["nico-witch.png"],{vi2d{4,3}*24,{24,24}}}); + ANIMATION_DATA["WITCH_IDLE_ATTACK_E"]=pl_wizard_idle_attack_e; + Animate2D::FrameSequence pl_wizard_idle_attack_w; + pl_wizard_idle_attack_w.AddFrame({&GFX["nico-witch.png"],{vi2d{4,2}*24,{24,24}}}); + ANIMATION_DATA["WITCH_IDLE_ATTACK_W"]=pl_wizard_idle_attack_w; + Animate2D::FrameSequence pl_wizard_idle_attack_n; + pl_wizard_idle_attack_n.AddFrame({&GFX["nico-witch.png"],{vi2d{4,1}*24,{24,24}}}); + ANIMATION_DATA["WITCH_IDLE_ATTACK_N"]=pl_wizard_idle_attack_n; + Animate2D::FrameSequence pl_wizard_attack_s(0.2f); + for(int i=0;i<3;i++){ + pl_wizard_attack_s.AddFrame({&GFX["nico-witch.png"],{vi2d{4+i,0}*24,{24,24}}}); + if(i==1){ + pl_wizard_attack_s.AddFrame({&GFX["nico-witch.png"],{vi2d{4,0}*24,{24,24}}}); + } + } + ANIMATION_DATA["WITCH_ATTACK_S"]=pl_wizard_attack_s; + Animate2D::FrameSequence pl_wizard_attack_e(0.2f); + for(int i=0;i<3;i++){ + pl_wizard_attack_e.AddFrame({&GFX["nico-witch.png"],{vi2d{4+i,3}*24,{24,24}}}); + if(i==1){ + pl_wizard_attack_e.AddFrame({&GFX["nico-witch.png"],{vi2d{4,3}*24,{24,24}}}); + } + } + ANIMATION_DATA["WITCH_ATTACK_E"]=pl_wizard_attack_e; + Animate2D::FrameSequence pl_wizard_attack_w(0.2f); + for(int i=0;i<3;i++){ + pl_wizard_attack_w.AddFrame({&GFX["nico-witch.png"],{vi2d{4+i,2}*24,{24,24}}}); + if(i==1){ + pl_wizard_attack_w.AddFrame({&GFX["nico-witch.png"],{vi2d{4,2}*24,{24,24}}}); + } + } + ANIMATION_DATA["WITCH_ATTACK_W"]=pl_wizard_attack_w; + Animate2D::FrameSequence pl_wizard_attack_n(0.2f); + for(int i=0;i<3;i++){ + pl_wizard_attack_n.AddFrame({&GFX["nico-witch.png"],{vi2d{4+i,1}*24,{24,24}}}); + if(i==1){ + pl_wizard_attack_n.AddFrame({&GFX["nico-witch.png"],{vi2d{4,1}*24,{24,24}}}); + } + } + ANIMATION_DATA["WITCH_ATTACK_N"]=pl_wizard_attack_n; + Animate2D::FrameSequence pl_wizard_cast_s(0.1f); + for(int i=0;i<2;i++){ + pl_wizard_cast_s.AddFrame({&GFX["nico-witch.png"],{vi2d{7+i,0}*24,{24,24}}}); + } + ANIMATION_DATA["WITCH_CAST_S"]=pl_wizard_cast_s; + Animate2D::FrameSequence pl_wizard_cast_e(0.1f); + for(int i=0;i<2;i++){ + pl_wizard_cast_e.AddFrame({&GFX["nico-witch.png"],{vi2d{7+i,3}*24,{24,24}}}); + } + ANIMATION_DATA["WITCH_CAST_E"]=pl_wizard_cast_e; + Animate2D::FrameSequence pl_wizard_cast_n(0.1f); + for(int i=0;i<2;i++){ + pl_wizard_cast_n.AddFrame({&GFX["nico-witch.png"],{vi2d{7+i,1}*24,{24,24}}}); + } + ANIMATION_DATA["WITCH_CAST_N"]=pl_wizard_cast_n; + Animate2D::FrameSequence pl_wizard_cast_w(0.1f); + for(int i=0;i<2;i++){ + pl_wizard_cast_w.AddFrame({&GFX["nico-witch.png"],{vi2d{7+i,2}*24,{24,24}}}); + } + ANIMATION_DATA["WITCH_CAST_W"]=pl_wizard_cast_w; + CreateHorizontalAnimationSequence("ground-slam-attack-back.png",5,{64,64},{0.02f,Animate2D::Style::OneShot}); CreateHorizontalAnimationSequence("ground-slam-attack-front.png",5,{64,64},{0.02f,Animate2D::Style::OneShot}); CreateHorizontalAnimationSequence("battlecry_effect.png",5,{84,84},{0.02f,Animate2D::Style::OneShot}); diff --git a/Adventures in Lestoria/BulletTypes.h b/Adventures in Lestoria/BulletTypes.h index 35122972..94c8c161 100644 --- a/Adventures in Lestoria/BulletTypes.h +++ b/Adventures in Lestoria/BulletTypes.h @@ -316,4 +316,12 @@ private: float automaticDetonationTime{}; float activationWaitTime{}; float lastBeepTime{}; -}; \ No newline at end of file +}; + +struct PurpleEnergyBall:public Bullet{ + PurpleEnergyBall(vf2d pos,float radius,float homingRadius,int damage,bool upperLevel,bool hitsMultiple=false,float lifetime=INFINITE,bool friendly=false,Pixel col=WHITE,vf2d scale={1,1}); + void Update(float fElapsedTime)override; +private: + const float initialScale; + const float homingRadius; +} \ No newline at end of file diff --git a/Adventures in Lestoria/assets/config/Player.txt b/Adventures in Lestoria/assets/config/Player.txt index 8b5beee9..d3114205 100644 --- a/Adventures in Lestoria/assets/config/Player.txt +++ b/Adventures in Lestoria/assets/config/Player.txt @@ -71,16 +71,16 @@ Player Health Warning Outline Color = 255,0,0,255 # Each attack will have _N,_E,_S,_W appended to them once read in-game. - PLAYER_ANIMATION[0] = WARRIOR_WALK - PLAYER_ANIMATION[1] = WARRIOR_IDLE - PLAYER_ANIMATION[2] = WARRIOR_SWINGSWORD - PLAYER_ANIMATION[3] = WARRIOR_SWINGSONICSWORD - PLAYER_ANIMATION[4] = RANGER_WALK - PLAYER_ANIMATION[5] = RANGER_IDLE - PLAYER_ANIMATION[6] = RANGER_SHOOT - PLAYER_ANIMATION[7] = WIZARD_WALK - PLAYER_ANIMATION[8] = WIZARD_IDLE_ATTACK - PLAYER_ANIMATION[9] = WIZARD_ATTACK + PLAYER_ANIMATION[0] = WARRIOR_WALK + PLAYER_ANIMATION[1] = WARRIOR_IDLE + PLAYER_ANIMATION[2] = WARRIOR_SWINGSWORD + PLAYER_ANIMATION[3] = WARRIOR_SWINGSONICSWORD + PLAYER_ANIMATION[4] = RANGER_WALK + PLAYER_ANIMATION[5] = RANGER_IDLE + PLAYER_ANIMATION[6] = RANGER_SHOOT + PLAYER_ANIMATION[7] = WIZARD_WALK + PLAYER_ANIMATION[8] = WIZARD_IDLE_ATTACK + PLAYER_ANIMATION[9] = WIZARD_ATTACK PLAYER_ANIMATION[10] = WIZARD_CAST PLAYER_ANIMATION[11] = WIZARD_IDLE PLAYER_ANIMATION[12] = THIEF_IDLE @@ -91,6 +91,11 @@ Player PLAYER_ANIMATION[17] = TRAPPER_WALK PLAYER_ANIMATION[18] = TRAPPER_SHOOT PLAYER_ANIMATION[19] = TRAPPER_SETTRAP + PLAYER_ANIMATION[20] = WITCH_WALK + PLAYER_ANIMATION[21] = WITCH_IDLE_ATTACK + PLAYER_ANIMATION[22] = WITCH_ATTACK + PLAYER_ANIMATION[23] = WITCH_CAST + PLAYER_ANIMATION[24] = WITCH_IDLE } PlayerXP diff --git a/Adventures in Lestoria/assets/config/gfx/gfx.txt b/Adventures in Lestoria/assets/config/gfx/gfx.txt index 1c064c57..74693f0c 100644 --- a/Adventures in Lestoria/assets/config/gfx/gfx.txt +++ b/Adventures in Lestoria/assets/config/gfx/gfx.txt @@ -117,6 +117,7 @@ Images GFX_Thief_Sheet = nico-thief.png GFX_Trapper_Sheet = nico-trapper.png + GFX_Witch_Sheet = nico-witch.png # Ability Icons GFX_Warrior_BattleCry_Icon = Ability Icons/battlecry.png diff --git a/Adventures in Lestoria/assets/nico-witch.png b/Adventures in Lestoria/assets/nico-witch.png new file mode 100644 index 00000000..8356ae10 Binary files /dev/null and b/Adventures in Lestoria/assets/nico-witch.png differ diff --git a/Adventures in Lestoria/assets/nico-witch.xcf b/Adventures in Lestoria/assets/nico-witch.xcf new file mode 100644 index 00000000..045d9b18 Binary files /dev/null and b/Adventures in Lestoria/assets/nico-witch.xcf differ