mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-23 10:17:44 +00:00
Add status refreshing
This commit is contained in:
parent
f2ab5d5304
commit
496f14071d
2 changed files with 25 additions and 8 deletions
|
@ -147,6 +147,8 @@ void Sapphire::StatusEffect::StatusEffect::applyStatus()
|
||||||
m_startTime = Util::getTimeMs();
|
m_startTime = Util::getTimeMs();
|
||||||
auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref();
|
auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref();
|
||||||
|
|
||||||
|
if( m_modifiers.empty() )
|
||||||
|
{
|
||||||
for( const auto& mod : m_statusModifiers )
|
for( const auto& mod : m_statusModifiers )
|
||||||
{
|
{
|
||||||
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
|
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
|
||||||
|
@ -156,6 +158,7 @@ void Sapphire::StatusEffect::StatusEffect::applyStatus()
|
||||||
else if( mod.modifier == Common::ParamModifier::TickHeal )
|
else if( mod.modifier == Common::ParamModifier::TickHeal )
|
||||||
registerTickEffect( mod.modifier, mod.value );
|
registerTickEffect( mod.modifier, mod.value );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_targetActor->calculateStats();
|
m_targetActor->calculateStats();
|
||||||
|
|
||||||
|
@ -237,3 +240,14 @@ void Sapphire::StatusEffect::StatusEffect::setSlot( uint8_t slot )
|
||||||
{
|
{
|
||||||
m_slot = slot;
|
m_slot = slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Sapphire::StatusEffect::StatusEffect::refresh()
|
||||||
|
{
|
||||||
|
applyStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sapphire::StatusEffect::StatusEffect::refresh( uint32_t newDuration )
|
||||||
|
{
|
||||||
|
m_duration = newDuration;
|
||||||
|
refresh();
|
||||||
|
}
|
|
@ -67,6 +67,8 @@ public:
|
||||||
uint8_t getSlot() const;
|
uint8_t getSlot() const;
|
||||||
void setSlot( uint8_t slot );
|
void setSlot( uint8_t slot );
|
||||||
|
|
||||||
|
void refresh( uint32_t newDuration );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint32_t m_id;
|
uint32_t m_id;
|
||||||
Entity::CharaPtr m_sourceActor;
|
Entity::CharaPtr m_sourceActor;
|
||||||
|
@ -83,6 +85,7 @@ private:
|
||||||
std::unordered_map< Common::ParamModifier, int32_t > m_modifiers;
|
std::unordered_map< Common::ParamModifier, int32_t > m_modifiers;
|
||||||
uint8_t m_slot;
|
uint8_t m_slot;
|
||||||
|
|
||||||
|
void refresh();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue