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.
AdventuresInLestoria/Crawler/Class.h

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