#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::Animationanimation; 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(); };