CSC8503_Advanced_Game_Technologies / CSC8503 / CSC8503Common / PlayerObject.h
PlayerObject.h
Raw
#pragma once
#include "GameObject.h"

using namespace NCL;
using namespace CSC8503;

class PlayerObject : public GameObject {
public:
	PlayerObject(string playerName = "") : GameObject(playerName) {
		name = playerName;
	}
	virtual ~PlayerObject() {}

	int PickUpItem(GameObject* object, int bonusValue);

	void AddScore(const unsigned int value)	{ score += value; }

	void SetScore(const unsigned int value) { score = value; }

	unsigned int GetScore() const {	return score; }

	void AddPointsCollected(const unsigned int value) { pointsCollected += value; }

	void SetPointsCollected(const unsigned int value) { pointsCollected = value; }

	unsigned int GetPointsCollected() const { return pointsCollected; }

	unsigned int GetItems()	{ return pickedUpItems;	}

	float& GetSpeedMultiplier() { return speedMultiplier; }

	void SetSpeedMultiplier(const float speed) { speedMultiplier = speed; }

	float& GetSprint() { return sprint; }

	const string& GetName() const {	return name; }


	float& GetPlayerAttackCD() { return playerAttackCD; }
	float& GetPlayerForce() { return playerForce; }
	float& GetPlayerkRange() { return playerRange; }

	void UpdatePlayerAbility(const float dt) {
		if (playerAttackCD > 0)
		{
			playerAttackCD -= dt;
		}
	}

protected:
	float speedMultiplier = 1.0f;
	float sprint = 0.0f;

	string	name;

	unsigned int pickedUpItems = 0;
	unsigned int pointsCollected = 0;
	unsigned int score = 0;

	float playerAttackCD = 0.0f;
	float playerForce = 750.0f;
	float playerRange = 15.0f;
};