1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 14:57:44 +00:00

fix attack power calculation not using level value

This commit is contained in:
NotAdam 2019-04-24 23:47:35 +10:00
parent c851a4a88b
commit fc9f1e6673
2 changed files with 12 additions and 9 deletions

View file

@ -342,9 +342,13 @@ float CalcStats::weaponDamage( const Sapphire::Entity::Chara& chara, float weapo
return std::floor( ( ( mainVal * jobAttribute ) / 1000.f ) + weaponDamage );
}
float CalcStats::calcAttackPower( uint32_t attackPower )
float CalcStats::calcAttackPower( const Sapphire::Entity::Chara& chara, uint32_t attackPower )
{
return std::floor( ( 125.f * ( attackPower - 292.f ) / 292.f ) + 100.f ) / 100.f;
auto level = chara.getLevel();
auto mainVal = static_cast< float >( levelTable[ level ][ Common::LevelTableEntry::MAIN ] );
auto divVal = static_cast< float >( levelTable[ level ][ Common::LevelTableEntry::DIV ] );
return std::floor( ( 125.f * ( attackPower - mainVal ) / divVal ) + 100.f ) / 100.f;
}
float CalcStats::attackPower( const Sapphire::Entity::Chara& chara )
@ -353,22 +357,22 @@ float CalcStats::attackPower( const Sapphire::Entity::Chara& chara )
// todo: this is wrong
if( chara.isBattleNpc() )
return calcAttackPower( baseStats.attack );
return calcAttackPower( chara, baseStats.attack );
switch( chara.getPrimaryStat() )
{
case Common::BaseParam::Mind:
{
return calcAttackPower( baseStats.healingPotMagic );
return calcAttackPower( chara, baseStats.healingPotMagic );
}
case Common::BaseParam::Intelligence:
{
return calcAttackPower( baseStats.attackPotMagic );
return calcAttackPower( chara, baseStats.attackPotMagic );
}
default:
{
return calcAttackPower( baseStats.attack );
return calcAttackPower( chara, baseStats.attack );
}
}
}
@ -502,8 +506,7 @@ float CalcStats::calculateAutoAttackDamage( const Sapphire::Entity::Chara& chara
auto pot = potency( AUTO_ATTACK_POTENCY );
auto aa = autoAttack( chara );
//auto ap = attackPower( chara );
auto ap = 1.f;
auto ap = attackPower( chara );
auto det = determination( chara );
auto ten = tenacity( chara );

View file

@ -139,7 +139,7 @@ namespace Sapphire::Math
*
* @param attackPower The magic/physical attack power value.
*/
static float calcAttackPower( uint32_t attackPower );
static float calcAttackPower( const Sapphire::Entity::Chara& chara, uint32_t attackPower );
static uint32_t primaryStatValue( const Sapphire::Entity::Chara& chara );