|
|
|
#pragma once
|
|
|
|
#include "Ability.h"
|
|
|
|
#include "Animation.h"
|
|
|
|
#include "olcPixelGameEngine.h"
|
|
|
|
|
|
|
|
enum Class{
|
|
|
|
WARRIOR,THIEF,RANGER,TRAPPER,WIZARD,WITCH
|
|
|
|
};
|
|
|
|
struct ClassData{
|
|
|
|
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;
|
|
|
|
};
|