feat: add enchant value to pdef/mdef, patk/matk
This commit is contained in:
parent
ca0183603f
commit
4cfb986ce0
@ -99,8 +99,8 @@ namespace L2Bot::Domain::Entities
|
||||
const uint16_t enchantLevel,
|
||||
const Enums::ArmorType armorType,
|
||||
const Enums::CrystalType crystalType,
|
||||
const uint16_t pDef,
|
||||
const uint16_t mDef,
|
||||
const uint32_t pDef,
|
||||
const uint32_t mDef,
|
||||
const std::string& setEffect,
|
||||
const std::string& addSetEffect,
|
||||
const std::string& enchantEffect
|
||||
@ -150,8 +150,8 @@ namespace L2Bot::Domain::Entities
|
||||
{
|
||||
bool isEquipped = 0;
|
||||
uint16_t enchantLevel = 0;
|
||||
uint16_t pDef = 0;
|
||||
uint16_t mDef = 0;
|
||||
uint32_t pDef = 0;
|
||||
uint32_t mDef = 0;
|
||||
|
||||
bool isNewState = true;
|
||||
};
|
||||
@ -161,8 +161,8 @@ namespace L2Bot::Domain::Entities
|
||||
uint16_t m_EnchantLevel = 0;
|
||||
Enums::ArmorType m_ArmorType = Enums::ArmorType::none;
|
||||
Enums::CrystalType m_CrystalType = Enums::CrystalType::none;
|
||||
uint16_t m_PDef = 0;
|
||||
uint16_t m_MDef = 0;
|
||||
uint32_t m_PDef = 0;
|
||||
uint32_t m_MDef = 0;
|
||||
std::string m_SetEffect = "";
|
||||
std::string m_AddSetEffect = "";
|
||||
std::string m_EnchantEffect = "";
|
||||
|
@ -85,7 +85,7 @@ namespace L2Bot::Domain::Entities
|
||||
const uint16_t enchantLevel,
|
||||
const Enums::CrystalType crystalType,
|
||||
const int16_t evasion,
|
||||
const uint16_t pDef,
|
||||
const uint32_t pDef,
|
||||
const uint16_t defRate
|
||||
) :
|
||||
BaseItem
|
||||
@ -128,7 +128,7 @@ namespace L2Bot::Domain::Entities
|
||||
{
|
||||
bool isEquipped = 0;
|
||||
uint16_t enchantLevel = 0;
|
||||
uint16_t pDef = 0;
|
||||
uint32_t pDef = 0;
|
||||
|
||||
bool isNewState = true;
|
||||
};
|
||||
@ -138,7 +138,7 @@ namespace L2Bot::Domain::Entities
|
||||
uint16_t m_EnchantLevel = 0;
|
||||
Enums::CrystalType m_CrystalType = Enums::CrystalType::none;
|
||||
int16_t m_Evasion = 0;
|
||||
uint16_t m_PDef = 0;
|
||||
uint32_t m_PDef = 0;
|
||||
uint16_t m_DefRate = 0;
|
||||
|
||||
GetState m_PrevState = GetState();
|
||||
|
@ -112,8 +112,8 @@ namespace L2Bot::Domain::Entities
|
||||
const Enums::WeaponType weaponType,
|
||||
const Enums::CrystalType crystalType,
|
||||
const uint8_t rndDamage,
|
||||
const uint16_t pAtk,
|
||||
const uint16_t mAtk,
|
||||
const uint32_t pAtk,
|
||||
const uint32_t mAtk,
|
||||
const uint16_t critical,
|
||||
const int8_t hitModify,
|
||||
const uint16_t atkSpd,
|
||||
@ -175,8 +175,8 @@ namespace L2Bot::Domain::Entities
|
||||
{
|
||||
bool isEquipped = 0;
|
||||
uint16_t enchantLevel = 0;
|
||||
uint16_t pAtk = 0;
|
||||
uint16_t mAtk = 0;
|
||||
uint32_t pAtk = 0;
|
||||
uint32_t mAtk = 0;
|
||||
|
||||
bool isNewState = true;
|
||||
};
|
||||
@ -187,8 +187,8 @@ namespace L2Bot::Domain::Entities
|
||||
Enums::WeaponType m_WeaponType = Enums::WeaponType::none;
|
||||
Enums::CrystalType m_CrystalType = Enums::CrystalType::none;
|
||||
uint8_t m_RndDamage = 0;
|
||||
uint16_t m_PAtk = 0;
|
||||
uint16_t m_MAtk = 0;
|
||||
uint32_t m_PAtk = 0;
|
||||
uint32_t m_MAtk = 0;
|
||||
uint16_t m_Critical = 0;
|
||||
int8_t m_HitModify = 0;
|
||||
uint16_t m_AtkSpd = 0;
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "pch.h"
|
||||
|
||||
#include "Common.h"
|
||||
#include <cmath>
|
||||
#include <Rpc.h>
|
||||
#pragma comment(lib, "Rpcrt4.lib")
|
||||
|
||||
@ -31,4 +33,14 @@ std::string GenerateUUID()
|
||||
wszUuid = NULL;
|
||||
|
||||
return std::string(ws.begin(), ws.end());
|
||||
}
|
||||
|
||||
std::uint32_t GetEnchantValue(const std::uint16_t baseValue, const std::uint16_t enchantLevel, const uint8_t lowEnchantDelta, const uint8_t highEnchantDelta)
|
||||
{
|
||||
if (baseValue == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return baseValue + enchantLevel * lowEnchantDelta + max(enchantLevel - 3, 0) * (highEnchantDelta - lowEnchantDelta);
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <cstdint>
|
||||
|
||||
std::string ConvertFromWideChar(const wchar_t* str);
|
||||
std::string GenerateUUID();
|
||||
std::string GenerateUUID();
|
||||
std::uint32_t GetEnchantValue(const std::uint16_t baseValue, const std::uint16_t enchantLevel, const uint8_t lowEnchantDelta, const uint8_t highEnchantDelta);
|
@ -134,8 +134,8 @@ namespace Interlude
|
||||
itemInfo.enchantLevel,
|
||||
casted ? static_cast<Enums::ArmorType>(casted->armorType) : Enums::ArmorType::none,
|
||||
casted ? static_cast<Enums::CrystalType>(casted->crystalType) : Enums::CrystalType::none,
|
||||
casted ? casted->pDef : 0,
|
||||
casted ? casted->mDef : 0,
|
||||
GetEnchantValue(casted ? casted->pDef : 0, itemInfo.enchantLevel, 1, 3),
|
||||
GetEnchantValue(casted ? casted->mDef : 0, itemInfo.enchantLevel, 1, 3),
|
||||
setEffect,
|
||||
addSetEffect,
|
||||
enchantEffect
|
||||
@ -167,8 +167,8 @@ namespace Interlude
|
||||
casted ? static_cast<Enums::WeaponType>(casted->weaponType) : Enums::WeaponType::none,
|
||||
casted ? static_cast<Enums::CrystalType>(casted->crystalType) : Enums::CrystalType::none,
|
||||
casted ? casted->rndDamage : 0,
|
||||
casted ? casted->pAtk : 0,
|
||||
casted ? casted->mAtk : 0,
|
||||
GetEnchantValue(casted ? casted->pAtk : 0, itemInfo.enchantLevel, 3, 6),
|
||||
GetEnchantValue(casted ? casted->mAtk : 0, itemInfo.enchantLevel, 3, 6),
|
||||
casted ? casted->critical : 0,
|
||||
casted ? casted->hitModify : 0,
|
||||
casted ? casted->atkSpd : 0,
|
||||
@ -190,7 +190,7 @@ namespace Interlude
|
||||
itemInfo.enchantLevel,
|
||||
casted ? static_cast<Enums::CrystalType>(casted->crystalType) : Enums::CrystalType::none,
|
||||
casted ? casted->shieldEvasion : 0,
|
||||
casted ? casted->shieldPdef : 0,
|
||||
GetEnchantValue(casted ? casted->shieldPdef : 0, itemInfo.enchantLevel, 1, 3),
|
||||
casted ? casted->shieldDefRate : 0
|
||||
);
|
||||
}
|
||||
|
@ -72,6 +72,7 @@ namespace Interlude
|
||||
}
|
||||
}
|
||||
|
||||
//todo need to delete items if they are not exists in create "queue"
|
||||
void OnItemCreated(const Event& evt)
|
||||
{
|
||||
std::shared_lock<std::shared_timed_mutex>(m_Mutex);
|
||||
@ -112,7 +113,6 @@ namespace Interlude
|
||||
}
|
||||
}
|
||||
|
||||
//todo deleted ehchant scroll
|
||||
void OnItemDeleted(const Event& evt)
|
||||
{
|
||||
//fixme may be a race condition
|
||||
|
@ -66,7 +66,6 @@ namespace Interlude
|
||||
EventDispatcher::GetInstance().Subscribe(HeroDeletedEvent::name, [this](const Event& evt) {
|
||||
OnHeroDeleted(evt);
|
||||
});
|
||||
// TODO delete outdated skills: on hero change subclass?
|
||||
}
|
||||
|
||||
SkillRepository() = delete;
|
||||
@ -91,6 +90,8 @@ namespace Interlude
|
||||
m_ReloadingTimers.StopAll();
|
||||
}
|
||||
}
|
||||
|
||||
//todo need to delete skills if they are not exists in create "queue"
|
||||
void OnSkillCreated(const Event& evt)
|
||||
{
|
||||
std::shared_lock<std::shared_timed_mutex>(m_Mutex);
|
||||
|
Loading…
Reference in New Issue
Block a user