1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-27 11:57:45 +00:00

pld oath gauge

This commit is contained in:
collett 2020-02-05 17:21:57 +09:00
parent 93479a9c75
commit 0903f0d2f1
4 changed files with 45 additions and 1 deletions

View file

@ -586,7 +586,7 @@ namespace Sapphire::Common
// DRKGauge = 25, // DRKGauge = 25,
// AetherflowStack = 30, // AetherflowStack = 30,
// Status = 32, // Status = 32,
// PLDGauge = 41, PLDGauge = 41,
// RDMGaugeBoth = 74, // RDMGaugeBoth = 74,
//// RDMGaugeBlack = 75, // not right? //// RDMGaugeBlack = 75, // not right?
// DRGGauge3Eyes = 76, // DRGGauge3Eyes = 76,

View file

@ -483,6 +483,17 @@ void Action::Action::buildEffects()
actor->onActionHostile( m_pSource ); actor->onActionHostile( m_pSource );
dmg.first = actor->applyShieldProtection( dmg.first ); dmg.first = actor->applyShieldProtection( dmg.first );
m_effectBuilder->damage( actor, actor, dmg.first, dmg.second, dmg.first == 0 ? Common::ActionEffectResultFlag::Absorbed : Common::ActionEffectResultFlag::None ); m_effectBuilder->damage( actor, actor, dmg.first, dmg.second, dmg.first == 0 ? Common::ActionEffectResultFlag::Absorbed : Common::ActionEffectResultFlag::None );
if( m_isAutoAttack && m_pSource->isPlayer() )
{
if( auto player = m_pSource->getAsPlayer() )
{
if( player->getClass() == Common::ClassJob::Paladin )
{
player->gaugePldSetOath( std::min( 100, player->gaugePldGetOath() + 5 ) );
}
}
}
} }
auto reflectDmg = Math::CalcStats::calcDamageReflect( m_pSource, actor, dmg.first, auto reflectDmg = Math::CalcStats::calcDamageReflect( m_pSource, actor, dmg.first,
@ -737,6 +748,23 @@ bool Action::Action::primaryCostCheck( bool subtractCosts )
return false; return false;
} }
case Common::ActionPrimaryCostType::PLDGauge:
{
auto pPlayer = m_pSource->getAsPlayer();
if( pPlayer )
{
auto oath = pPlayer->gaugePldGetOath();
if( oath >= m_primaryCost )
{
if( subtractCosts )
pPlayer->gaugePldSetOath( oath - m_primaryCost );
return true;
}
}
return false;
}
// free casts, likely just pure ogcds // free casts, likely just pure ogcds
case Common::ActionPrimaryCostType::None: case Common::ActionPrimaryCostType::None:
{ {

View file

@ -2203,6 +2203,19 @@ void Sapphire::Entity::Player::gaugeWarSetIb( uint8_t value )
} }
uint8_t Sapphire::Entity::Player::gaugeWarGetIb() uint8_t Sapphire::Entity::Player::gaugeWarGetIb()
{
return gaugeGet( 0 );
}
void Sapphire::Entity::Player::gaugePldSetOath( uint8_t value )
{
auto oldValue = gaugePldGetOath();
gaugeSet( 0, value );
if( oldValue != value )
sendActorGauge();
}
uint8_t Sapphire::Entity::Player::gaugePldGetOath()
{ {
return gaugeGet( 0 ); return gaugeGet( 0 );
} }

View file

@ -983,6 +983,9 @@ namespace Sapphire::Entity
void gaugeWarSetIb( uint8_t value ); void gaugeWarSetIb( uint8_t value );
uint8_t gaugeWarGetIb(); uint8_t gaugeWarGetIb();
void gaugePldSetOath( uint8_t value );
uint8_t gaugePldGetOath();
////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////
Common::HuntingLogEntry& getHuntingLogEntry( uint8_t index ); Common::HuntingLogEntry& getHuntingLogEntry( uint8_t index );