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