mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-05 18:27:47 +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:
|
case Common::ActionEffectType::CALC_RESULT_TYPE_SET_STATUS_ME:
|
||||||
{
|
{
|
||||||
if( !m_bOverrideStatus )
|
if( !m_bOverrideStatus )
|
||||||
m_target->addStatusEffectByIdIfNotExist( m_pStatus->getId(), m_pStatus->getDuration(), *m_pStatus->getSrcActor(),
|
m_target->addStatusEffectByIdIfNotExist( m_pStatus );
|
||||||
m_pStatus->getStatusModifiers(), m_pStatus->getFlag(), m_pStatus->getParam() );
|
|
||||||
else
|
else
|
||||||
m_target->addStatusEffectById( m_pStatus->getId(), m_pStatus->getDuration(), *m_pStatus->getSrcActor(),
|
m_target->addStatusEffectById( m_pStatus );
|
||||||
m_pStatus->getStatusModifiers(), m_pStatus->getFlag(), m_pStatus->getParam() );
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -503,41 +503,18 @@ void Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEffect )
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \param StatusEffectPtr to be applied to the actor */
|
/*! \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 );
|
addStatusEffect( pStatus );
|
||||||
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 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \param StatusEffectPtr to be applied to the actor */
|
/*! \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;
|
return;
|
||||||
|
|
||||||
auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000 );
|
addStatusEffect( pStatus );
|
||||||
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 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t Chara::getStatusEffectFreeSlot()
|
int8_t Chara::getStatusEffectFreeSlot()
|
||||||
|
|
|
@ -140,13 +140,10 @@ namespace Sapphire::Entity
|
||||||
const uint32_t* getModelArray() const;
|
const uint32_t* getModelArray() const;
|
||||||
|
|
||||||
// add a status effect by id
|
// add a status effect by id
|
||||||
void addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param = 0 );
|
void addStatusEffectById( StatusEffect::StatusEffectPtr pStatus );
|
||||||
void addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source,
|
|
||||||
std::vector< World::Action::StatusModifier > modifiers, uint32_t flag, uint16_t param = 0 );
|
|
||||||
// add a status effect by id if it doesn't exist
|
// 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( StatusEffect::StatusEffectPtr pStatus );
|
||||||
void addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source,
|
|
||||||
std::vector< World::Action::StatusModifier > modifiers, uint32_t flag, uint16_t param = 0 );
|
|
||||||
|
|
||||||
// remove a status effect by id
|
// remove a status effect by id
|
||||||
void removeSingleStatusEffectFromId( uint32_t 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 )
|
std::pair< float, Sapphire::Common::ActionHitSeverityType > CalcStats::calcActionHealing( const Sapphire::Entity::Chara& chara, uint32_t ptc, float wepDmg )
|
||||||
{
|
{
|
||||||
// lol just for testing
|
// 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;
|
Sapphire::Common::ActionHitSeverityType hitType = Sapphire::Common::ActionHitSeverityType::NormalHeal;
|
||||||
|
|
||||||
if( criticalHitProbability( chara ) > range100( rng ) )
|
if( criticalHitProbability( chara ) > range100( rng ) )
|
||||||
|
|
Loading…
Add table
Reference in a new issue