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:
parent
c851a4a88b
commit
fc9f1e6673
2 changed files with 12 additions and 9 deletions
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue