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,14 +147,17 @@ void Sapphire::StatusEffect::StatusEffect::applyStatus()
|
|||
m_startTime = Util::getTimeMs();
|
||||
auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref();
|
||||
|
||||
for( const auto& mod : m_statusModifiers )
|
||||
if( m_modifiers.empty() )
|
||||
{
|
||||
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
|
||||
setModifier( mod.modifier, mod.value );
|
||||
else if( mod.modifier == Common::ParamModifier::TickDamage )
|
||||
registerTickEffect( mod.modifier, mod.value );
|
||||
else if( mod.modifier == Common::ParamModifier::TickHeal )
|
||||
registerTickEffect( mod.modifier, mod.value );
|
||||
for( const auto& mod : m_statusModifiers )
|
||||
{
|
||||
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
|
||||
setModifier( mod.modifier, mod.value );
|
||||
else if( mod.modifier == Common::ParamModifier::TickDamage )
|
||||
registerTickEffect( mod.modifier, mod.value );
|
||||
else if( mod.modifier == Common::ParamModifier::TickHeal )
|
||||
registerTickEffect( mod.modifier, mod.value );
|
||||
}
|
||||
}
|
||||
|
||||
m_targetActor->calculateStats();
|
||||
|
@ -237,3 +240,14 @@ void Sapphire::StatusEffect::StatusEffect::setSlot( uint8_t 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;
|
||||
void setSlot( uint8_t slot );
|
||||
|
||||
void refresh( uint32_t newDuration );
|
||||
|
||||
private:
|
||||
uint32_t m_id;
|
||||
Entity::CharaPtr m_sourceActor;
|
||||
|
@ -83,6 +85,7 @@ private:
|
|||
std::unordered_map< Common::ParamModifier, int32_t > m_modifiers;
|
||||
uint8_t m_slot;
|
||||
|
||||
void refresh();
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue