249 lines
6.0 KiB
C++
249 lines
6.0 KiB
C++
#include "stdafx.h"
|
|
#include "SUILazyTooltip.h"
|
|
#include "SUIDisplayInfo.h"
|
|
#include "SkillBase.h"
|
|
#include "SkillBaseFile.h"
|
|
/// 2010.12.17 - prodongi
|
|
#include "Skill\\SUISkillWnd.h" /// 2010.12.02 - prodongi
|
|
#include "Skill\\SUISkillTreeFundWnd.h" /// 2010.12.02 - prodongi
|
|
#include "SStringDB.h"
|
|
#include "SSkillDB.h"
|
|
|
|
using namespace rp;
|
|
|
|
//
|
|
// KLazySkillTooltip
|
|
//
|
|
|
|
KLazySkillTooltip::KLazySkillTooltip(
|
|
SUIDisplayInfo& helper
|
|
, int skillId
|
|
, int skillLv
|
|
, bool showDetail )
|
|
: KLazyTip()
|
|
, m_Helper ( helper )
|
|
, m_SkillID ( skillId )
|
|
, m_SkillLv ( skillLv )
|
|
, m_ShowDetail ( showDetail )
|
|
{
|
|
}
|
|
|
|
void KLazySkillTooltip::createTip( std::string& tip )
|
|
{
|
|
tip = m_Helper.GetSkillTooltipText( m_SkillID, m_SkillLv, m_ShowDetail, false );
|
|
}
|
|
|
|
//
|
|
// KLazyCreatureSkillFundTooltip
|
|
//
|
|
|
|
KLazyCreatureSkillFundTooltip::KLazyCreatureSkillFundTooltip(
|
|
SUIDisplayInfo& helper
|
|
, const SkillTreeEx* skillTree
|
|
, bool isPrecedentSkillSatisfied
|
|
, bool isActive
|
|
, int skillId
|
|
, int skillLv
|
|
, bool showDetail )
|
|
: KLazyTip()
|
|
, m_Helper ( helper )
|
|
, m_SkillTree ( skillTree )
|
|
, m_IsPrecedentSkillSatisfied( isPrecedentSkillSatisfied )
|
|
, m_IsActive ( isActive )
|
|
, m_SkillID ( skillId )
|
|
, m_SkillLv ( skillLv )
|
|
, m_ShowDetail ( showDetail )
|
|
{
|
|
}
|
|
|
|
void KLazyCreatureSkillFundTooltip::createTip( std::string& tip )
|
|
{
|
|
tip = m_Helper.GetSkillTooltipText( m_SkillID, m_SkillLv, m_ShowDetail, true, true );
|
|
if( !m_IsPrecedentSkillSatisfied )
|
|
{
|
|
if( m_IsActive )
|
|
{
|
|
// 엑티브 스킬과 패시브 스킬의 툴팁에 끝부분의 여백이 다르다... -_-;
|
|
tip += "<BR>";
|
|
}
|
|
tip += m_Helper.GetSkillTreeToolTipText( m_SkillTree, true );
|
|
}
|
|
}
|
|
|
|
//
|
|
// KLazyCreatureSkillTooltip
|
|
//
|
|
|
|
KLazyCreatureSkillTooltip::KLazyCreatureSkillTooltip(
|
|
SUIDisplayInfo& helper
|
|
, int skillId
|
|
, int skillLv
|
|
, bool showDetail )
|
|
: KLazyTip()
|
|
, m_Helper ( helper )
|
|
, m_SkillID ( skillId )
|
|
, m_SkillLv ( skillLv )
|
|
, m_ShowDetail ( showDetail )
|
|
{
|
|
}
|
|
|
|
void KLazyCreatureSkillTooltip::createTip( std::string& tip )
|
|
{
|
|
tip = m_Helper.GetSkillTooltipText( m_SkillID, m_SkillLv, m_ShowDetail, false, true );
|
|
}
|
|
|
|
//
|
|
// KLazyItemTooltip
|
|
//
|
|
|
|
/// 2011.03.28 - prodongi
|
|
KLazyItemTooltip::KLazyItemTooltip(
|
|
SUIDisplayInfo& helper
|
|
, SInventorySlot* invenSlot
|
|
, bool showDetail
|
|
, AR_HANDLE hCreature
|
|
, bool isRClick )
|
|
: KLazyTip()
|
|
, m_Helper ( helper )
|
|
, m_InvenSlot ( invenSlot )
|
|
, m_ShowDetail ( showDetail )
|
|
, m_hCreature ( hCreature )
|
|
, m_isRClick ( isRClick )
|
|
{
|
|
}
|
|
|
|
void KLazyItemTooltip::createTip( std::string& tip )
|
|
{
|
|
tip = m_Helper.GetItemTooltipText( m_InvenSlot, m_ShowDetail, m_hCreature, m_isRClick ); /// 2011.03.28 - prodongi
|
|
}
|
|
|
|
//
|
|
// KLazySkillTreeFundTooltip
|
|
//
|
|
|
|
KLazySkillTreeFundTooltip::KLazySkillTreeFundTooltip(
|
|
SUIDisplayInfo& helper
|
|
, const SkillBaseEx& skillInfo
|
|
, const _SkillSlotInfo& skillSlotInfo
|
|
, int jobIndex
|
|
/// 2011.03.09 - prodongi
|
|
, __int64 jobPoint, int tp, int characterLevel )
|
|
: KLazyTip()
|
|
, m_Helper ( helper )
|
|
, m_SkillInfo ( skillInfo )
|
|
, m_SkillSlotInfo ( skillSlotInfo )
|
|
, m_JobIndex ( jobIndex )
|
|
, m_JobPoint ( jobPoint )
|
|
{
|
|
/// 2011.03.09 - prodongi
|
|
m_tp = tp;
|
|
m_characterLevel = characterLevel;
|
|
}
|
|
|
|
void KLazySkillTreeFundTooltip::createTip( std::string& tip )
|
|
{
|
|
if( m_SkillSlotInfo.nCrrLv >= m_SkillSlotInfo.nMaxLv[m_JobIndex] )
|
|
{
|
|
tip = CStringUtil::StringFormat("<size:10><#00FF84>%s<br>", S(7048));
|
|
}
|
|
else
|
|
{
|
|
/// 2011.03.10 - prodongi
|
|
int NeedJp = m_SkillInfo.GetNeedJopPoint( m_SkillSlotInfo.nCrrLv + 1 );
|
|
bool isTrait = (NeedJp < 0) ? true : false;
|
|
int NeedTP = isTrait ? abs(NeedJp) : 0;
|
|
|
|
if( m_SkillSlotInfo.nEnoughJLv )
|
|
{//"잡레벨 #@job_level@#에 배울 수 있습니다."
|
|
tip += "<size:10><#EE0000>";
|
|
tip += S(7045);
|
|
CStringUtil::ReplacePhrase( tip, "#@job_level@#", CStringUtil::StringFormat("%d",m_SkillSlotInfo.nEnoughJLv).c_str() );
|
|
tip += "<br>";
|
|
}
|
|
if (isTrait)
|
|
{
|
|
if (m_tp < NeedTP)
|
|
{
|
|
tip += "<size:10><#EE0000>";
|
|
tip += S(8032);
|
|
CStringUtil::ReplacePhrase( tip, "#@spe_point@#", CStringUtil::StringFormat("%d",NeedTP).c_str() );
|
|
tip += "<br>";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if( m_JobPoint < NeedJp )
|
|
{//"잡포인트 #@job_point@#가 필요합니다."
|
|
tip += "<size:10><#EE0000>";
|
|
tip += S(7046);
|
|
CStringUtil::ReplacePhrase( tip, "#@job_point@#", CStringUtil::StringFormat("%d",NeedJp).c_str() );
|
|
tip += "<br>";
|
|
}
|
|
}
|
|
if( m_SkillSlotInfo.nNeedSkillID )
|
|
{
|
|
SkillBaseEx* s_need_data = GetSkillDB().GetSkillData( m_SkillSlotInfo.nNeedSkillID );
|
|
if( s_need_data )
|
|
{//"#@skill_name@# #@skill_level@#이 필요합니다."
|
|
tip += "<size:10><#EE0000>";
|
|
std::string strSkillName = GetStringDB().GetString(s_need_data->GetNameID());
|
|
tip += SR(7047, "#@skill_name@#", strSkillName.c_str(), "#@skill_level@#", CStringUtil::StringFormat("%d",m_SkillSlotInfo.nNeedSkillLv).c_str());
|
|
tip += "<br>";
|
|
}
|
|
}
|
|
if( tip.empty() )
|
|
{
|
|
tip += "<size:10><#00FFFC>";
|
|
if (isTrait)
|
|
{
|
|
tip += S(8032);
|
|
CStringUtil::ReplacePhrase( tip, "#@spe_point@#", CStringUtil::StringFormat("%d",NeedTP).c_str() );
|
|
}
|
|
else
|
|
{
|
|
tip += S(7046);
|
|
CStringUtil::ReplacePhrase( tip, "#@job_point@#", CStringUtil::StringFormat("%d",NeedJp).c_str() );
|
|
}
|
|
tip += "<br>";
|
|
}
|
|
|
|
/// 2011.04.05 레벨 - prodongi
|
|
setCharacterLevel(tip);
|
|
}
|
|
|
|
if( !tip.empty() ) tip += "<size:5><br>";
|
|
|
|
int nLv = 0;
|
|
bool bShowNext = true;
|
|
if( m_SkillSlotInfo.nCrrLv == 0 )
|
|
{
|
|
nLv = m_SkillSlotInfo.nCrrLv + 1;
|
|
bShowNext = false;
|
|
}
|
|
else if( m_SkillSlotInfo.nCrrLv < m_SkillSlotInfo.nMaxLv[ m_JobIndex ] )
|
|
{
|
|
nLv = m_SkillSlotInfo.nCrrLv;
|
|
bShowNext = true;
|
|
}
|
|
else
|
|
{
|
|
nLv = m_SkillSlotInfo.nCrrLv;
|
|
bShowNext = false;
|
|
}
|
|
tip += m_Helper.GetSkillTooltipText( m_SkillInfo.GetID(), nLv, true, bShowNext );
|
|
}
|
|
|
|
/// 2011.04.05 레벨 - prodongi
|
|
void KLazySkillTreeFundTooltip::setCharacterLevel(std::string &tip)
|
|
{
|
|
if (0 == m_SkillSlotInfo.lv)
|
|
return ;
|
|
|
|
tip += "<size:10>";
|
|
if (m_characterLevel >= m_SkillSlotInfo.lv) tip += "<#00FFFC>";
|
|
else tip += "<#EE0000>";
|
|
|
|
tip += CStringUtil::StringFormat("%s : %d", S(8109), m_SkillSlotInfo.lv);
|
|
tip += "<br>";
|
|
}
|