mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-05 10:17:46 +00:00
Merge branch 'master' of https://github.com/SapphireServer/Sapphire into actions-war
This commit is contained in:
commit
8337d5ddca
4 changed files with 14 additions and 39 deletions
|
@ -144,11 +144,9 @@ void ActionResult::execute()
|
|||
case Common::ActionEffectType::CALC_RESULT_TYPE_SET_STATUS_ME:
|
||||
{
|
||||
if( !m_bOverrideStatus )
|
||||
m_target->addStatusEffectByIdIfNotExist( m_pStatus->getId(), m_pStatus->getDuration(), *m_pStatus->getSrcActor(),
|
||||
m_pStatus->getStatusModifiers(), m_pStatus->getFlag(), m_pStatus->getParam() );
|
||||
m_target->addStatusEffectByIdIfNotExist( m_pStatus );
|
||||
else
|
||||
m_target->addStatusEffectById( m_pStatus->getId(), m_pStatus->getDuration(), *m_pStatus->getSrcActor(),
|
||||
m_pStatus->getStatusModifiers(), m_pStatus->getFlag(), m_pStatus->getParam() );
|
||||
m_target->addStatusEffectById( m_pStatus );
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -503,41 +503,18 @@ void Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEffect )
|
|||
}
|
||||
|
||||
/*! \param StatusEffectPtr to be applied to the actor */
|
||||
void Chara::addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param )
|
||||
void Chara::addStatusEffectById( StatusEffect::StatusEffectPtr pStatus )
|
||||
{
|
||||
auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000 );
|
||||
effect->setParam( param );
|
||||
addStatusEffect( effect );
|
||||
}
|
||||
|
||||
void Chara::addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source,
|
||||
std::vector< World::Action::StatusModifier > modifiers, uint32_t flag, uint16_t param )
|
||||
{
|
||||
auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, modifiers, flag, 3000 );
|
||||
effect->setParam( param );
|
||||
addStatusEffect( effect );
|
||||
addStatusEffect( pStatus );
|
||||
}
|
||||
|
||||
/*! \param StatusEffectPtr to be applied to the actor */
|
||||
void Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param )
|
||||
void Chara::addStatusEffectByIdIfNotExist( StatusEffect::StatusEffectPtr pStatus )
|
||||
{
|
||||
if( hasStatusEffect( id ) )
|
||||
if( hasStatusEffect( pStatus->getId() ) )
|
||||
return;
|
||||
|
||||
auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000 );
|
||||
effect->setParam( param );
|
||||
addStatusEffect( effect );
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source,
|
||||
std::vector< World::Action::StatusModifier > modifiers, uint32_t flag, uint16_t param )
|
||||
{
|
||||
if( hasStatusEffect( id ) )
|
||||
return;
|
||||
|
||||
auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, modifiers, flag, 3000 );
|
||||
effect->setParam( param );
|
||||
addStatusEffect( effect );
|
||||
addStatusEffect( pStatus );
|
||||
}
|
||||
|
||||
int8_t Chara::getStatusEffectFreeSlot()
|
||||
|
|
|
@ -140,13 +140,10 @@ namespace Sapphire::Entity
|
|||
const uint32_t* getModelArray() const;
|
||||
|
||||
// add a status effect by id
|
||||
void addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param = 0 );
|
||||
void addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source,
|
||||
std::vector< World::Action::StatusModifier > modifiers, uint32_t flag, uint16_t param = 0 );
|
||||
void addStatusEffectById( StatusEffect::StatusEffectPtr pStatus );
|
||||
|
||||
// add a status effect by id if it doesn't exist
|
||||
void addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param = 0 );
|
||||
void addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source,
|
||||
std::vector< World::Action::StatusModifier > modifiers, uint32_t flag, uint16_t param = 0 );
|
||||
void addStatusEffectByIdIfNotExist( StatusEffect::StatusEffectPtr pStatus );
|
||||
|
||||
// remove a status effect by id
|
||||
void removeSingleStatusEffectFromId( uint32_t id );
|
||||
|
|
|
@ -663,7 +663,10 @@ std::pair< float, Sapphire::Common::ActionHitSeverityType > CalcStats::calcActio
|
|||
std::pair< float, Sapphire::Common::ActionHitSeverityType > CalcStats::calcActionHealing( const Sapphire::Entity::Chara& chara, uint32_t ptc, float wepDmg )
|
||||
{
|
||||
// lol just for testing
|
||||
auto factor = std::floor( ptc * ( wepDmg / 10.0f ) + ptc );
|
||||
float det = chara.getStatValue( Common::BaseParam::Determination );
|
||||
float mnd = chara.getStatValue( Common::BaseParam::Mind );
|
||||
|
||||
auto factor = std::floor( ( wepDmg * ( mnd / 200 ) + ( det / 10 ) ) * ( ptc / 100 ) * 1.3f );
|
||||
Sapphire::Common::ActionHitSeverityType hitType = Sapphire::Common::ActionHitSeverityType::NormalHeal;
|
||||
|
||||
if( criticalHitProbability( chara ) > range100( rng ) )
|
||||
|
|
Loading…
Add table
Reference in a new issue