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.
44 lines
989 B
44 lines
989 B
#pragma once
|
|
#include "olcUTIL_Animate2D.h"
|
|
#include "Animation.h"
|
|
#include "Monster.h"
|
|
|
|
struct Player{
|
|
private:
|
|
int hp=100,maxhp=hp;
|
|
int atk=10;
|
|
vf2d pos;
|
|
float moveSpd=1.0f;
|
|
float size=1.0f;
|
|
float attack_range=1.5f;
|
|
const float ATTACK_COOLDOWN=0.75f;
|
|
float attack_cooldown_timer=0;
|
|
Animate2D::Animation<AnimationState>animation;
|
|
Animate2D::AnimationState internal_animState;
|
|
Key lastReleasedMovementKey;
|
|
public:
|
|
Player();
|
|
Player(vf2d pos);
|
|
void SetX(float x);
|
|
void SetY(float y);
|
|
void SetPos(vf2d pos);
|
|
vf2d&GetPos();
|
|
float GetX();
|
|
float GetY();
|
|
int GetHealth();
|
|
int GetMaxHealth();
|
|
int GetAttack();
|
|
float GetMoveSpdMult();
|
|
float GetSizeMult();
|
|
float GetAttackRangeMult();
|
|
|
|
void Update(float fElapsedTime);
|
|
void AddAnimation(AnimationState state);
|
|
void UpdateAnimation(AnimationState animState);
|
|
Animate2D::Frame GetFrame();
|
|
void SetLastReleasedMovementKey(Key k);
|
|
Key GetLastReleasedMovementKey();
|
|
|
|
//Triggers when the player has moved.
|
|
void Moved();
|
|
}; |