mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-28 23:27:45 +00:00
Basic dot/hot ticks implemented
This commit is contained in:
parent
7ad9f9687e
commit
51b7740a6f
3 changed files with 11 additions and 7 deletions
|
@ -851,13 +851,13 @@ void Sapphire::Entity::Chara::onTick()
|
||||||
auto thisEffect = effectIt.second->getTickEffect();
|
auto thisEffect = effectIt.second->getTickEffect();
|
||||||
switch( thisEffect.first )
|
switch( thisEffect.first )
|
||||||
{
|
{
|
||||||
case 1:
|
case Common::ParamModifier::TickDamage:
|
||||||
{
|
{
|
||||||
thisTickDmg += thisEffect.second;
|
thisTickDmg += thisEffect.second;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 2:
|
case Common::ParamModifier::TickHeal:
|
||||||
{
|
{
|
||||||
thisTickHeal += thisEffect.second;
|
thisTickHeal += thisEffect.second;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -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 );
|
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;
|
return m_currTickEffect;
|
||||||
}
|
}
|
||||||
|
@ -98,6 +98,10 @@ void Sapphire::StatusEffect::StatusEffect::applyStatus()
|
||||||
// TODO: ticks
|
// TODO: ticks
|
||||||
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
|
if( mod.modifier != Common::ParamModifier::TickDamage && mod.modifier != Common::ParamModifier::TickHeal )
|
||||||
m_targetActor->addModifier( mod.modifier, mod.value );
|
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();
|
m_targetActor->calculateStats();
|
||||||
|
|
|
@ -45,9 +45,9 @@ public:
|
||||||
|
|
||||||
void setParam( uint16_t param );
|
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;
|
const std::string& getName() const;
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ private:
|
||||||
uint64_t m_lastTick;
|
uint64_t m_lastTick;
|
||||||
uint16_t m_param;
|
uint16_t m_param;
|
||||||
std::string m_name;
|
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;
|
std::vector< World::Action::StatusModifier > m_modifiers;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue