1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-28 15:17:46 +00:00

Basic dot/hot ticks implemented

This commit is contained in:
Lucy 2023-03-07 20:00:32 +01:00
parent 7ad9f9687e
commit 51b7740a6f
3 changed files with 11 additions and 7 deletions

View file

@ -851,13 +851,13 @@ void Sapphire::Entity::Chara::onTick()
auto thisEffect = effectIt.second->getTickEffect();
switch( thisEffect.first )
{
case 1:
case Common::ParamModifier::TickDamage:
{
thisTickDmg += thisEffect.second;
break;
}
case 2:
case Common::ParamModifier::TickHeal:
{
thisTickHeal += thisEffect.second;
break;

View file

@ -55,12 +55,12 @@ Sapphire::StatusEffect::StatusEffect::~StatusEffect()
{
}
void Sapphire::StatusEffect::StatusEffect::registerTickEffect( uint8_t type, uint32_t param )
void Sapphire::StatusEffect::StatusEffect::registerTickEffect( ParamModifier type, uint32_t param )
{
m_currTickEffect = std::make_pair( type, param );
}
std::pair< uint8_t, uint32_t > Sapphire::StatusEffect::StatusEffect::getTickEffect()
std::pair< ParamModifier, uint32_t > Sapphire::StatusEffect::StatusEffect::getTickEffect()
{
return m_currTickEffect;
}
@ -98,6 +98,10 @@ void Sapphire::StatusEffect::StatusEffect::applyStatus()
// TODO: ticks
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
m_targetActor->addModifier( 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();

View file

@ -45,9 +45,9 @@ public:
void setParam( uint16_t param );
void registerTickEffect( uint8_t type, uint32_t param );
void registerTickEffect( Common::ParamModifier type, uint32_t param );
std::pair< uint8_t, uint32_t > getTickEffect();
std::pair< Common::ParamModifier, uint32_t > getTickEffect();
const std::string& getName() const;
@ -61,7 +61,7 @@ private:
uint64_t m_lastTick;
uint16_t m_param;
std::string m_name;
std::pair< uint8_t, uint32_t > m_currTickEffect;
std::pair< Common::ParamModifier, uint32_t > m_currTickEffect;
std::vector< World::Action::StatusModifier > m_modifiers;
};