2018-03-06 22:22:19 +01:00
|
|
|
#include <Common.h>
|
|
|
|
#include <Exd/ExdDataGenerated.h>
|
2018-06-30 12:49:34 +10:00
|
|
|
#include <CommonGen.h>
|
2018-03-02 07:22:25 -03:00
|
|
|
|
|
|
|
#include "Framework.h"
|
2017-08-08 13:53:47 +02:00
|
|
|
#include "Item.h"
|
|
|
|
|
2018-03-09 00:06:44 +01:00
|
|
|
extern Core::Framework g_fw;
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2018-06-30 12:49:34 +10:00
|
|
|
Core::Item::Item( uint64_t uId, uint32_t catalogId, uint64_t model1, uint64_t model2, bool isHq ) :
|
2018-08-29 21:40:59 +02:00
|
|
|
m_id( catalogId ),
|
|
|
|
m_uId( uId ),
|
|
|
|
m_model1( model1 ),
|
|
|
|
m_model2( model2 ),
|
|
|
|
m_isHq( isHq )
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
|
|
|
auto itemInfo = pExdData->get< Core::Data::Item >( catalogId );
|
2018-06-30 12:49:34 +10:00
|
|
|
|
2018-08-29 21:40:59 +02:00
|
|
|
m_delayMs = itemInfo->delayms;
|
|
|
|
m_physicalDmg = itemInfo->damagePhys;
|
|
|
|
m_magicalDmg = itemInfo->damageMag;
|
|
|
|
m_weaponDmg = ( m_physicalDmg != 0 ) ? m_physicalDmg : m_magicalDmg;
|
|
|
|
m_autoAttackDmg = static_cast< float >( m_weaponDmg * m_delayMs ) / 3000;
|
|
|
|
m_category = static_cast< Common::ItemUICategory >( itemInfo->itemUICategory );
|
|
|
|
m_itemLevel = itemInfo->levelItem;
|
|
|
|
m_maxStackSize = itemInfo->stackSize;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2017-08-11 00:58:35 -03:00
|
|
|
float Core::Item::getAutoAttackDmg() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_autoAttackDmg;
|
2017-08-11 00:58:35 -03:00
|
|
|
}
|
|
|
|
|
2017-08-08 13:53:47 +02:00
|
|
|
uint16_t Core::Item::getDelay() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_delayMs;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2017-08-11 00:58:35 -03:00
|
|
|
uint16_t Core::Item::getPhysicalDmg() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_physicalDmg;
|
2017-08-11 00:58:35 -03:00
|
|
|
}
|
|
|
|
|
2017-08-19 16:50:50 -03:00
|
|
|
uint16_t Core::Item::getMagicalDmg() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_magicalDmg;
|
2017-08-19 16:50:50 -03:00
|
|
|
}
|
|
|
|
|
2017-11-16 00:03:36 -02:00
|
|
|
uint16_t Core::Item::getItemLevel() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_itemLevel;
|
2017-11-16 00:03:36 -02:00
|
|
|
}
|
|
|
|
|
2017-08-19 16:50:50 -03:00
|
|
|
uint16_t Core::Item::getWeaponDmg() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_weaponDmg;
|
2017-08-19 16:50:50 -03:00
|
|
|
}
|
|
|
|
|
2017-11-16 20:44:37 -02:00
|
|
|
bool Core::Item::isWeapon() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return ( m_weaponDmg != 0 );
|
2017-11-16 20:44:37 -02:00
|
|
|
}
|
|
|
|
|
2017-08-08 13:53:47 +02:00
|
|
|
uint32_t Core::Item::getId() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_id;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setId( uint32_t id )
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
m_id = id;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
uint64_t Core::Item::getUId() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_uId;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setUId( uint64_t id )
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
m_uId = id;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setStackSize( uint32_t size )
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
m_stackSize = std::min< uint32_t >( size, m_maxStackSize );
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t Core::Item::getStackSize() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_stackSize;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2017-11-18 01:25:55 +01:00
|
|
|
void Core::Item::setCategory( Common::ItemUICategory categoryId )
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
m_category = categoryId;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
2017-11-18 01:25:55 +01:00
|
|
|
Core::Common::ItemUICategory Core::Item::getCategory() const
|
2017-08-08 13:53:47 +02:00
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_category;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setModelIds( uint64_t model1, uint64_t model2 )
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
m_model1 = model1;
|
|
|
|
m_model2 = model2;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
uint64_t Core::Item::getModelId1() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_model1;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
uint64_t Core::Item::getModelId2() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_model2;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
bool Core::Item::isHq() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_isHq;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setHq( bool isHq )
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
m_isHq = isHq;
|
2017-08-08 13:53:47 +02:00
|
|
|
}
|
2018-07-24 23:58:08 +02:00
|
|
|
|
|
|
|
uint32_t Core::Item::getMaxStackSize() const
|
|
|
|
{
|
2018-08-29 21:40:59 +02:00
|
|
|
return m_maxStackSize;
|
2018-07-24 23:58:08 +02:00
|
|
|
}
|
2018-08-31 23:25:53 +10:00
|
|
|
|
|
|
|
uint16_t Core::Item::getDurability() const
|
|
|
|
{
|
|
|
|
return m_durability;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setDurability( uint16_t durability )
|
|
|
|
{
|
|
|
|
m_durability = durability;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint16_t Core::Item::getStain() const
|
|
|
|
{
|
|
|
|
return m_stain;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Core::Item::setStain( uint16_t stain )
|
|
|
|
{
|
|
|
|
m_stain = stain;
|
|
|
|
}
|