Prepare Witch class animations and spritesheet.

removeExposedPackKey
sigonasr2 4 months ago
parent 0df19d7b56
commit d7351bd872
  1. 67
      Adventures in Lestoria/Animation.cpp
  2. 10
      Adventures in Lestoria/BulletTypes.h
  3. 25
      Adventures in Lestoria/assets/config/Player.txt
  4. 1
      Adventures in Lestoria/assets/config/gfx/gfx.txt
  5. BIN
      Adventures in Lestoria/assets/nico-witch.png
  6. BIN
      Adventures in Lestoria/assets/nico-witch.xcf

@ -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});

@ -316,4 +316,12 @@ private:
float automaticDetonationTime{};
float activationWaitTime{};
float lastBeepTime{};
};
};
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;
}

@ -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

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Loading…
Cancel
Save