The open source repository for the action RPG game in development by Sig Productions titled 'Adventures in Lestoria'!
https://forums.lestoria.net
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.8 KiB
85 lines
3.8 KiB
#pragma once
|
|
#include "Ability.h"
|
|
#include "Animation.h"
|
|
#include "olcPixelGameEngine.h"
|
|
|
|
enum Class{
|
|
WARRIOR,THIEF,RANGER,BARD,WIZARD,WITCH
|
|
};
|
|
struct ClassData{
|
|
std::string name;
|
|
Class cl;
|
|
Ability rightClickAbility,ability1,ability2,ability3;
|
|
AnimationState walk_n,walk_e,walk_s,walk_w,idle_n,idle_e,idle_s,idle_w;
|
|
static void InitializeClassData();
|
|
ClassData(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
virtual ~ClassData()=default;
|
|
virtual void Update(float fElapsedTime)=0;
|
|
virtual bool AutoAttack()=0;
|
|
virtual bool Ability1()=0;
|
|
virtual bool Ability2()=0;
|
|
virtual bool Ability3()=0;
|
|
virtual bool RightClickAbility()=0;
|
|
};
|
|
|
|
struct Warrior:public ClassData{
|
|
Warrior(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
void Update(float fElapsedTime)override;
|
|
bool AutoAttack()override;
|
|
bool Ability1()override;
|
|
bool Ability2()override;
|
|
bool Ability3()override;
|
|
bool RightClickAbility()override;
|
|
};
|
|
struct Thief:public ClassData{
|
|
Thief(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
void Update(float fElapsedTime)override;
|
|
bool AutoAttack()override;
|
|
bool Ability1()override;
|
|
bool Ability2()override;
|
|
bool Ability3()override;
|
|
bool RightClickAbility()override;
|
|
};
|
|
struct Ranger:public ClassData{
|
|
Ranger(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
void Update(float fElapsedTime)override;
|
|
bool AutoAttack()override;
|
|
bool Ability1()override;
|
|
bool Ability2()override;
|
|
bool Ability3()override;
|
|
bool RightClickAbility()override;
|
|
};
|
|
struct Bard:public ClassData{
|
|
Bard(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
void Update(float fElapsedTime)override;
|
|
bool AutoAttack()override;
|
|
bool Ability1()override;
|
|
bool Ability2()override;
|
|
bool Ability3()override;
|
|
bool RightClickAbility()override;
|
|
};
|
|
struct Wizard:public ClassData{
|
|
Wizard(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
void Update(float fElapsedTime)override;
|
|
bool AutoAttack()override;
|
|
bool Ability1()override;
|
|
bool Ability2()override;
|
|
bool Ability3()override;
|
|
bool RightClickAbility()override;
|
|
};
|
|
struct Witch:public ClassData{
|
|
Witch(std::string name,Class cl,Ability rightClickAbility,Ability ability1,Ability ability2,Ability ability3,
|
|
AnimationState walk_n,AnimationState walk_e,AnimationState walk_s,AnimationState walk_w,AnimationState idle_n,AnimationState idle_e,AnimationState idle_s,AnimationState idle_w);
|
|
void Update(float fElapsedTime)override;
|
|
bool AutoAttack()override;
|
|
bool Ability1()override;
|
|
bool Ability2()override;
|
|
bool Ability3()override;
|
|
bool RightClickAbility()override;
|
|
}; |