mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-09 20:24:16 +00:00
Add speedbase readling and writing to the level prograssion component and impli proper character versions for fixes (#856)
* Add speed base readling and writing to the level prograssion component Add retroactive fix to the world transfer TODO: see about versioning charxml fixes to make them not run every time * version all current changes * cleanup speed behavior add calculate for future use in scripts make < 1 speed multiplier possible tested wormholer and it plays anims correctly * cap the lower end of the speed multiplier until the ending the behavior on hit properly works * address feedback add emun for character version make set ignore multipliers consistent in speed behavior switch case for char version upgrades * remove the ability to stack speed boosts * update value on level ups
This commit is contained in:
@@ -3,11 +3,13 @@
|
||||
#include "Entity.h"
|
||||
#include "GameMessages.h"
|
||||
#include "Component.h"
|
||||
#include "eCharacterVersion.h"
|
||||
|
||||
/**
|
||||
* Component that handles level progression and serilization.
|
||||
*
|
||||
*/
|
||||
|
||||
class LevelProgressionComponent : public Component {
|
||||
public:
|
||||
static const uint32_t ComponentType = eReplicaComponentType::COMPONENT_TYPE_LEVEL_PROGRESSION;
|
||||
@@ -44,11 +46,40 @@ public:
|
||||
*/
|
||||
void SetLevel(uint32_t level) { m_Level = level; m_DirtyLevelInfo = true; }
|
||||
|
||||
/**
|
||||
* Gets the current Speed Base of the entity
|
||||
* @return the current Speed Base of the entity
|
||||
*/
|
||||
const uint32_t GetSpeedBase() const { return m_SpeedBase; }
|
||||
|
||||
/**
|
||||
* Sets the Speed Base of the entity
|
||||
* @param SpeedBase the Speed Base to set
|
||||
*/
|
||||
void SetSpeedBase(uint32_t SpeedBase) { m_SpeedBase = SpeedBase; }
|
||||
|
||||
/**
|
||||
* Gives the player rewards for the last level that they leveled up from
|
||||
*/
|
||||
void HandleLevelUp();
|
||||
|
||||
/**
|
||||
* Gets the current Character Version of the entity
|
||||
* @return the current Character Version of the entity
|
||||
*/
|
||||
const eCharacterVersion GetCharacterVersion() const { return m_CharacterVersion; }
|
||||
|
||||
/**
|
||||
* Sets the Character Version of the entity
|
||||
* @param CharacterVersion the Character Version to set
|
||||
*/
|
||||
void SetCharacterVersion(eCharacterVersion CharacterVersion) { m_CharacterVersion = CharacterVersion; }
|
||||
|
||||
/**
|
||||
* Set the Base Speed retroactively of the entity
|
||||
*/
|
||||
void SetRetroactiveBaseSpeed();
|
||||
|
||||
private:
|
||||
/**
|
||||
* whether the level is dirty
|
||||
@@ -59,4 +90,15 @@ private:
|
||||
* Level of the entity
|
||||
*/
|
||||
uint32_t m_Level;
|
||||
|
||||
/**
|
||||
* The base speed of the entity
|
||||
*/
|
||||
float m_SpeedBase;
|
||||
|
||||
/**
|
||||
* The Character format version
|
||||
*/
|
||||
eCharacterVersion m_CharacterVersion;
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user