Files
2022-10-26 12:25:11 +08:00

1567 lines
69 KiB
C++

#include "SunClientPrecompiledHeader.h"
#ifdef _YMS_AUTOBOT_GAME
#include "uiAutobotConditionBattle.h"
#include "uiAutobotMan.h"
#include "uiAutobotConditionSupport.h"
#include "AutomaticInfoParser.h"
#include "AutomaticComboInfoParser.h"
#include "Autobot/Condition/AutobotConditionManager.h"
#include "GameFramework.h"
#include "SceneBase.h"
#include "Map.h"
#include "Hero.h"
#include "MouseHandler.h"
#include "Interface/uiPartyMan/uiPartyMan.h"
#include "GlobalFunc.h"
#include "QuickSlot.h"
#include "SCItemSlot.h"
#include "SCSkillSlot.h"
#include "StyleSlot.h"
#include "SlotKeyGenerator.h"
#include "ItemManager.h"
#include "ItemInfoParser.h"
#include "SkillInfoParser.h"
#include "GlobalData.h"
#include "HeroEquipmentContainer.h"
#include "uiToolTipMan/uiToolTipMan.h"
//------------------------------------------------------------------------------
const DWORD uiAutobotConditionBattle::kDialog_ID = StrToWzID("9510");
const int uiAutobotConditionBattle::kSlotSize = 24;
const int uiAutobotConditionBattle::kDefaultCooltimeSecond = 60;
//------------------------------------------------------------------------------
uiAutobotConditionBattle::uiAutobotConditionBattle(InterfaceManager* ui_man) :
uiAutobotDialog(ui_man),
m_pItemUnitRenderer(NULL)
{
QuickSlotContainer::Init(uiAutobotConditionBattle::kSlotSize, SI_AUTOMATIC_INFO );
RegisterControlPosition(StrToWzID("C001"), kControl_CheckBT_C001);
RegisterControlPosition(StrToWzID("C005"), kControl_CheckBT_C005);
RegisterControlPosition(StrToWzID("C006"), kControl_CheckBT_C006);
RegisterControlPosition(StrToWzID("C007"), kControl_CheckBT_C007);
RegisterControlPosition(StrToWzID("C009"), kControl_CheckBT_C009);
RegisterControlPosition(StrToWzID("C010"), kControl_CheckBT_C010);
RegisterControlPosition(StrToWzID("C011"), kControl_CheckBT_C011);
RegisterControlPosition(StrToWzID("C012"), kControl_CheckBT_C012);
RegisterControlPosition(StrToWzID("C013"), kControl_CheckBT_C013);
RegisterControlPosition(StrToWzID("C014"), kControl_CheckBT_C014);
RegisterControlPosition(StrToWzID("C015"), kControl_CheckBT_C015);
RegisterControlPosition(StrToWzID("C016"), kControl_CheckBT_C016);
RegisterControlPosition(StrToWzID("C017"), kControl_CheckBT_C017);
RegisterControlPosition(StrToWzID("C018"), kControl_CheckBT_C018);
RegisterControlPosition(StrToWzID("C024"), kControl_CheckBT_C024);
RegisterControlPosition(StrToWzID("C025"), kControl_CheckBT_C025);
RegisterControlPosition(StrToWzID("C026"), kControl_CheckBT_C026);
RegisterControlPosition(StrToWzID("C027"), kControl_CheckBT_C027);
RegisterControlPosition(StrToWzID("C030"), kControl_CheckBT_C030);
RegisterControlPosition(StrToWzID("C000"), kControl_CheckBT_C000);
RegisterControlPosition(StrToWzID("B000"), kControl_Button_B000);
RegisterControlPosition(StrToWzID("B999"), kControl_Button_B999);
RegisterControlPosition(StrToWzID("B003"), kControl_Button_B003);
RegisterControlPosition(StrToWzID("B004"), kControl_Button_B004);
RegisterControlPosition(StrToWzID("B005"), kControl_Button_B005);
RegisterControlPosition(StrToWzID("B006"), kControl_Button_B006);
RegisterControlPosition(StrToWzID("B007"), kControl_Button_B007);
RegisterControlPosition(StrToWzID("B008"), kControl_Button_B008);
RegisterControlPosition(StrToWzID("B009"), kControl_Button_B009);
RegisterControlPosition(StrToWzID("B010"), kControl_Button_B010);
RegisterControlPosition(StrToWzID("B011"), kControl_Button_B011);
RegisterControlPosition(StrToWzID("B013"), kControl_Button_B013);
RegisterControlPosition(StrToWzID("B012"), kControl_Button_B012);
RegisterControlPosition(StrToWzID("B015"), kControl_Button_B015);
RegisterControlPosition(StrToWzID("B014"), kControl_Button_B014);
RegisterControlPosition(StrToWzID("B016"), kControl_Button_B016);
RegisterControlPosition(StrToWzID("B017"), kControl_Button_B017);
RegisterControlPosition(StrToWzID("B018"), kControl_Button_B018);
RegisterControlPosition(StrToWzID("B019"), kControl_Button_B019);
RegisterControlPosition(StrToWzID("B020"), kControl_Button_B020);
RegisterControlPosition(StrToWzID("B021"), kControl_Button_B021);
RegisterControlPosition(StrToWzID("B022"), kControl_Button_B022);
RegisterControlPosition(StrToWzID("B023"), kControl_Button_B023);
RegisterControlPosition(StrToWzID("B024"), kControl_Button_B024);
RegisterControlPosition(StrToWzID("B025"), kControl_Button_B025);
RegisterControlPosition(StrToWzID("B026"), kControl_Button_B026);
RegisterControlPosition(StrToWzID("B027"), kControl_Button_B027);
RegisterControlPosition(StrToWzID("B028"), kControl_Button_B028);
RegisterControlPosition(StrToWzID("B029"), kControl_Button_B029);
RegisterControlPosition(StrToWzID("B030"), kControl_Button_B030);
RegisterControlPosition(StrToWzID("B031"), kControl_Button_B031);
RegisterControlPosition(StrToWzID("B032"), kControl_Button_B032);
RegisterControlPosition(StrToWzID("B033"), kControl_Button_B033);
RegisterControlPosition(StrToWzID("T101"), kControl_Text_T101);
RegisterControlPosition(StrToWzID("T999"), kControl_Text_T999);
RegisterControlPosition(StrToWzID("T006"), kControl_Text_T006);
RegisterControlPosition(StrToWzID("S000"), kControl_Text_S000);
RegisterControlPosition(StrToWzID("S001"), kControl_Text_S001);
RegisterControlPosition(StrToWzID("S002"), kControl_Text_S002);
RegisterControlPosition(StrToWzID("S003"), kControl_Text_S003);
RegisterControlPosition(StrToWzID("S004"), kControl_Text_S004);
RegisterControlPosition(StrToWzID("S010"), kControl_Text_S010);
RegisterControlPosition(StrToWzID("S005"), kControl_Text_S005);
RegisterControlPosition(StrToWzID("S006"), kControl_Text_S006);
RegisterControlPosition(StrToWzID("S007"), kControl_Text_S007);
RegisterControlPosition(StrToWzID("S008"), kControl_Text_S008);
RegisterControlPosition(StrToWzID("S009"), kControl_Text_S009);
RegisterControlPosition(StrToWzID("S012"), kControl_Text_S012);
RegisterControlPosition(StrToWzID("S019"), kControl_Text_S019);
RegisterControlPosition(StrToWzID("S020"), kControl_Text_S020);
RegisterControlPosition(StrToWzID("S021"), kControl_Text_S021);
RegisterControlPosition(StrToWzID("S022"), kControl_Text_S022);
RegisterControlPosition(StrToWzID("S025"), kControl_Text_S025);
RegisterControlPosition(StrToWzID("S026"), kControl_Text_S026);
RegisterControlPosition(StrToWzID("S035"), kControl_Text_S035);
RegisterControlPosition(StrToWzID("S047"), kControl_Text_S047);
RegisterControlPosition(StrToWzID("S048"), kControl_Text_S048);
RegisterControlPosition(StrToWzID("S049"), kControl_Text_S049);
RegisterControlPosition(StrToWzID("S050"), kControl_Text_S050);
RegisterControlPosition(StrToWzID("S051"), kControl_Text_S051);
RegisterControlPosition(StrToWzID("S011"), kControl_Text_S011);
RegisterControlPosition(StrToWzID("S013"), kControl_Text_S013);
RegisterControlPosition(StrToWzID("S014"), kControl_Text_S014);
RegisterControlPosition(StrToWzID("S015"), kControl_Text_S015);
RegisterControlPosition(StrToWzID("S016"), kControl_Text_S016);
RegisterControlPosition(StrToWzID("S017"), kControl_Text_S017);
RegisterControlPosition(StrToWzID("S018"), kControl_Text_S018);
RegisterControlPosition(StrToWzID("S023"), kControl_Text_S023);
RegisterControlPosition(StrToWzID("S024"), kControl_Text_S024);
RegisterControlPosition(StrToWzID("S027"), kControl_Text_S027);
RegisterControlPosition(StrToWzID("S028"), kControl_Text_S028);
RegisterControlPosition(StrToWzID("S029"), kControl_Text_S029);
RegisterControlPosition(StrToWzID("S030"), kControl_Text_S030);
RegisterControlPosition(StrToWzID("S031"), kControl_Text_S031);
RegisterControlPosition(StrToWzID("S032"), kControl_Text_S032);
RegisterControlPosition(StrToWzID("T021"), kControl_Text_T021);
RegisterControlPosition(StrToWzID("S036"), kControl_Text_S036);
RegisterControlPosition(StrToWzID("S037"), kControl_Text_S037);
RegisterControlPosition(StrToWzID("S038"), kControl_Text_S038);
RegisterControlPosition(StrToWzID("S039"), kControl_Text_S039);
RegisterControlPosition(StrToWzID("S040"), kControl_Text_S040);
RegisterControlPosition(StrToWzID("S041"), kControl_Text_S041);
RegisterControlPosition(StrToWzID("S042"), kControl_Text_S042);
RegisterControlPosition(StrToWzID("S043"), kControl_Text_S043);
RegisterControlPosition(StrToWzID("S044"), kControl_Text_S044);
RegisterControlPosition(StrToWzID("S045"), kControl_Text_S045);
RegisterControlPosition(StrToWzID("S046"), kControl_Text_S046);
RegisterControlPosition(StrToWzID("S034"), kControl_Text_S034);
RegisterControlPosition(StrToWzID("S033"), kControl_Text_S033);
RegisterControlPosition(StrToWzID("E000"), kControl_Edit_E000);
RegisterControlPosition(StrToWzID("E001"), kControl_Edit_E001);
RegisterControlPosition(StrToWzID("E002"), kControl_Edit_E002);
RegisterControlPosition(StrToWzID("E003"), kControl_Edit_E003);
RegisterControlPosition(StrToWzID("E004"), kControl_Edit_E004);
RegisterControlPosition(StrToWzID("E005"), kControl_Edit_E005);
RegisterControlPosition(StrToWzID("E006"), kControl_Edit_E006);
RegisterControlPosition(StrToWzID("E007"), kControl_Edit_E007);
RegisterControlPosition(StrToWzID("E008"), kControl_Edit_E008);
RegisterControlPosition(StrToWzID("E009"), kControl_Edit_E009);
RegisterControlPosition(StrToWzID("E010"), kControl_Edit_E010);
RegisterControlPosition(StrToWzID("E011"), kControl_Edit_E011);
RegisterControlPosition(StrToWzID("L000"), kControl_List_L000);
RegisterControlPosition(StrToWzID("L001"), kControl_List_L001);
RegisterControlPosition(StrToWzID("L002"), kControl_List_L002);
RegisterControlPosition(StrToWzID("L003"), kControl_List_L003);
RegisterControlPosition(StrToWzID("L004"), kControl_List_L004);
RegisterControlPosition(StrToWzID("L005"), kControl_List_L005);
RegisterControlPosition(StrToWzID("L006"), kControl_List_L006);
RegisterControlPosition(StrToWzID("L007"), kControl_List_L007);
RegisterControlPosition(StrToWzID("P013"), kControl_Picture_P013);
RegisterControlPosition(StrToWzID("P015"), kControl_Picture_P015);
RegisterControlPosition(StrToWzID("P017"), kControl_Picture_P017);
RegisterControlPosition(StrToWzID("P018"), kControl_Picture_P018);
RegisterControlPosition(StrToWzID("P019"), kControl_Picture_P019);
RegisterControlPosition(StrToWzID("P020"), kControl_Picture_P020);
RegisterControlPosition(StrToWzID("P021"), kControl_Picture_P021);
RegisterControlPosition(StrToWzID("P000"), kControl_Picture_P000);
RegisterControlPosition(StrToWzID("P001"), kControl_Picture_P001);
RegisterControlPosition(StrToWzID("P002"), kControl_Picture_P002);
RegisterControlPosition(StrToWzID("P003"), kControl_Picture_P003);
RegisterControlPosition(StrToWzID("P004"), kControl_Picture_P004);
RegisterControlPosition(StrToWzID("P005"), kControl_Picture_P005);
RegisterControlPosition(StrToWzID("P006"), kControl_Picture_P006);
RegisterControlPosition(StrToWzID("P007"), kControl_Picture_P007);
RegisterControlPosition(StrToWzID("P008"), kControl_Picture_P008);
RegisterControlPosition(StrToWzID("P009"), kControl_Picture_P009);
RegisterControlPosition(StrToWzID("P010"), kControl_Picture_P010);
RegisterControlPosition(StrToWzID("P011"), kControl_Picture_P011);
RegisterControlPosition(StrToWzID("P012"), kControl_Picture_P012);
RegisterControlPosition(StrToWzID("P023"), kControl_Picture_P023);
RegisterControlPosition(StrToWzID("P024"), kControl_Picture_P024);
RegisterControlPosition(StrToWzID("P025"), kControl_Picture_P025);
RegisterControlPosition(StrToWzID("P026"), kControl_Picture_P026);
RegisterControlPosition(StrToWzID("P027"), kControl_Picture_P027);
RegisterControlPosition(StrToWzID("P028"), kControl_Picture_P028);
RegisterControlPosition(StrToWzID("P029"), kControl_Picture_P029);
RegisterControlPosition(StrToWzID("P014"), kControl_Picture_P014);
RegisterControlPosition(StrToWzID("P022"), kControl_Picture_P022);
RegisterControlPosition(StrToWzID("P030"), kControl_Picture_P030);
RegisterControlPosition(StrToWzID("P031"), kControl_Picture_P031);
RegisterControlPosition(StrToWzID("P043"), kControl_Picture_P043);
RegisterControlPosition(StrToWzID("P042"), kControl_Picture_P042);
RegisterControlPosition(StrToWzID("P041"), kControl_Picture_P041);
RegisterControlPosition(StrToWzID("P040"), kControl_Picture_P040);
RegisterControlPosition(StrToWzID("P039"), kControl_Picture_P039);
RegisterControlPosition(StrToWzID("P038"), kControl_Picture_P038);
RegisterControlPosition(StrToWzID("P037"), kControl_Picture_P037);
RegisterControlPosition(StrToWzID("P036"), kControl_Picture_P036);
RegisterControlPosition(StrToWzID("P035"), kControl_Picture_P035);
RegisterControlPosition(StrToWzID("P034"), kControl_Picture_P034);
RegisterControlPosition(StrToWzID("P033"), kControl_Picture_P033);
RegisterControlPosition(StrToWzID("P032"), kControl_Picture_P032);
RegisterControlPosition(StrToWzID("PI04"), kControl_Picture_PI04);
RegisterControlPosition(StrToWzID("P044"), kControl_Picture_P044);
RegisterControlPosition(StrToWzID("P045"), kControl_Picture_P045);
RegisterControlPosition(StrToWzID("P046"), kControl_Picture_P046);
RegisterControlPosition(StrToWzID("P047"), kControl_Picture_P047);
RegisterControlPosition(StrToWzID("P048"), kControl_Picture_P048);
RegisterControlPosition(StrToWzID("P050"), kControl_Picture_P050);
RegisterControlPosition(StrToWzID("P052"), kControl_Picture_P052);
RegisterControlPosition(StrToWzID("P053"), kControl_Picture_P053);
//! 그래이(disable) 판
RegisterControlPosition(StrToWzID("P016"), kControl_Picture_P016);
RegisterControlPosition(StrToWzID("P049"), kControl_Picture_P049);
RegisterControlPosition(StrToWzID("P051"), kControl_Picture_P051);
RegisterControlPosition(StrToWzID("P054"), kControl_Picture_P054);
RegisterControlPosition(StrToWzID("P055"), kControl_Picture_P055);
RegisterControlPosition(StrToWzID("TI07"), kControl_TextImage_TI07);
RegisterControlPosition(StrToWzID("TI06"), kControl_TextImage_TI06);
}
//------------------------------------------------------------------------------
uiAutobotConditionBattle::~uiAutobotConditionBattle( void )
{
QuickSlotContainer::Release();
}
//------------------------------------------------------------------------------
SCSlotContainer* uiAutobotConditionBattle::GetSlotContainer()
{
return static_cast<SCSlotContainer *>(this);
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::Init(CDrawBase* drawbase)
{
m_pItemUnitRenderer = new ItemUnitRenderer;
if (m_pItemUnitRenderer)
{
m_pItemUnitRenderer->Init(g_pSunRenderer, GetMaxSlotNum());
m_pItemUnitRenderer->ShowCooldown(TRUE);
}
//------------------------------------------------------------------------------
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C005))->SetCheckState(true);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C005))->SetDiscardMessage(true);
int combo_index = 0;
std::vector<BASE_AutomaticComboInfo*> combo_vector;
//! 범위 지정
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_RANGE_USER)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L006, combo_vector);
//! 회복(hp 물약)
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_CURE_HP)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L002, combo_vector);
//! 회복(mp 물약)
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_CURE_MPSP)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L005, combo_vector);
//! 회복(즉시회복)
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_CURE_INSTANT)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L001, combo_vector);
//! 회복(사료)
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_CURE_PET_FEED)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L004, combo_vector);
//! 휴식 앉기(hp)
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_CURE_SITDOWN_HP)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L000, combo_vector);
//! 휴식 앉기(mp)
combo_vector.clear();
combo_index = AutomaticInfoParser::Instance()->GetAutomaticInfo(eAUTO_CURE_SITDOWN_MP)->combo_index[0];
AutomaticComboInfoParser::Instance()->GetAutomaticComboInfo(combo_vector, combo_index);
InsertItemToDropdown(kControl_List_L003, combo_vector);
// 아 진짜 컨트롤 엑세스하는게 뭐이리 드러워 ㅅㅂ
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E000)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S011)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E001)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S013)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E003)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S015)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E002)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S028)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E004)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S029)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E005)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S030)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E006)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S016)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E007)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S017)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E008)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S018)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E009)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S023)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E010)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S024)));
RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(GetControlID_byPosition(kControl_Edit_E011)),(CCtrlStaticWZ*)GetControlWZ(GetControlID_byPosition(kControl_Text_S027)));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E000")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S011")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E001")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S013")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E003")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S015")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E002")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S028")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E004")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S029")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E005")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S030")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E006")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S016")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E007")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S017")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E008")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S018")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E009")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S023")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E010")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S024")));
//RegisterEditControl( (CCtrlDxEditBox*)GetControlWZ(StrToWzID("E011")),(CCtrlStaticWZ*)GetControlWZ(StrToWzID("S027")));
for( size_t i=0;i!=12;++i)
{
GetEditControlWZ(i)->SetNumberic(true);
GetEditControlWZ(i)->SetStyle(CTRL_ES_LEFT);
GetEditControlWZ(i)->SetColorCaret(0xFFFFFFFF);
}
InitEditStateViewState();
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::Release(void)
{
SAFE_RELEASENDELETE(m_pItemUnitRenderer);
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::OnUpdateSolarDialog()
{
if (m_pItemUnitRenderer)
{
m_pItemUnitRenderer->Update();
}
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::OnRenderSolarDialog()
{
if (m_pItemUnitRenderer)
{
m_pItemUnitRenderer->Render();
}
if( m_MouseOverObject.eMouseOverType == eMOUSE_OVER_SLOT )
{
if (uiToolTipMan* tooltip = GET_DIALOG_MANAGER(uiToolTipMan, UIMAN_TOOLTIP) )
{
tooltip->RegisterSlotInfoTooltip(m_MouseOverObject.pSlot);
tooltip->SetTooltipDialogID(GetDialogKey());
}
}
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::OnShowWindow(BOOL val)
{
if (val == TRUE)
{
//! 파티원 리스트 넣기
GetListControlWZ(GetControlID_byPosition(kControl_List_L007))->DeleteItemAll();
uiPartyMan* party_manager = GET_DIALOG_MANAGER(uiPartyMan, UIMAN_PARTY);
if ((party_manager != NULL) && (party_manager->GetPartyNum() > 1))
{
for (int i = 1; i < party_manager->GetPartyNum(); ++i)
{
InsertItemToDropdown(kControl_List_L007,
(char*)(party_manager->GetParty(i).Get().m_szCharName), NULL);
}
}
InitEditStateViewState();
keyMsg msg;
ZeroMemory(&msg,sizeof(msg));
msg.dwType = eDoType_Dialog_Autobot;
msg.wParam = uiAutobotConditionBattle::kDialog_ID;
msg.DoSomething = GlobalFunc::DoShowWindowEx;
g_KeyQueueManager.PushBack(msg);
}
else
{
g_KeyQueueManager.DeleteMsg(eDoType_Dialog_Autobot);
}
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::NetworkProc(MSG_BASE* msgbase)
{
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::MessageProc(SI_MESSAGE* message)
{
if( ProcessEditControlMessage(message) == true )
return;
switch (message->eResultMsg)
{
case RT_MSG_LBUTTONCLICK:
OnLButtonClick(message);
break;
case RT_MSG_MOUSEOVER:
{
m_MouseOverObject.eMouseOverType = eMOUSE_OVER_MAX;
int mouse_x = Mouse::Instance()->GetMouseX();
int mouse_y = Mouse::Instance()->GetMouseY();
for( size_t i=kControl_Button_B010;i<=kControl_Button_B033;++i)
{
CControlWZ* pControl = GetControlWZ(GetControlID_byPosition(i));
RECT rect = pControl->GetSizeRect();
if (rect.left <= mouse_x && rect.right >= mouse_x)
{
if (rect.top <= mouse_y && rect.bottom >= mouse_y)
{
m_MouseOverObject.eMouseOverType = eMOUSE_OVER_SLOT;
m_MouseOverObject.pSlot = &GetSlot(i-kControl_Button_B010);
break;
}
}
}
}
default:
SolarDialog::MessageProc(message);
break;
}
}
//------------------------------------------------------------------------------
bool uiAutobotConditionBattle::OnLButtonClick(SI_MESSAGE* message)
{
bool result = true;
UIControlPos control_pos = static_cast<UIControlPos>(GetControlPosition_byID(message->dwCtrlID));
switch (control_pos)
{
case kControl_CheckBT_C005:
{
//! 전투 설정
}
break;
case kControl_CheckBT_C006:
{
//! 지원 설정
static_cast<uiAutobotMan*>(GetMan())->ChangeTab(uiAutobotConditionSupport::kDialog_ID);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C006))->SetCheckState(false);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_CheckBT_C001: //!< 전체사냥
{
if (IsChecked(kControl_CheckBT_C001))
{
SetChecked(kControl_CheckBT_C007, false);
SetChecked(kControl_CheckBT_C010, false);
SetEnable(kControl_Button_B003, false);
SetEnable(kControl_Button_B000, false);
}
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_CheckBT_C007: //!< 파티원
{
if (IsChecked(kControl_CheckBT_C007))
{
SetChecked(kControl_CheckBT_C001, false);
SetChecked(kControl_CheckBT_C010, false);
SetEnable(kControl_Button_B003, true);
SetEnable(kControl_Button_B000, false);
}
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_CheckBT_C010: //!< 지정범위
{
if (IsChecked(kControl_CheckBT_C010))
{
SetChecked(kControl_CheckBT_C001, false);
SetChecked(kControl_CheckBT_C007, false);
SetEnable(kControl_Button_B003, false);
SetEnable(kControl_Button_B000, true);
}
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_CheckBT_C009:
{
//! 보스발견시 도망
}
break;
case kControl_CheckBT_C011:
{
//! 아이템 줍기
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C012))->SetCheckState(false);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C013))->SetCheckState(false);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C014))->SetCheckState(false);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C015))->SetCheckState(false);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C016))->SetCheckState(false);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C017))->SetCheckState(false);
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C018))->SetCheckState(false);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_CheckBT_C012:
case kControl_CheckBT_C013:
case kControl_CheckBT_C014:
case kControl_CheckBT_C015:
case kControl_CheckBT_C016:
case kControl_CheckBT_C017:
case kControl_CheckBT_C018:
{
//! 아이템 줍기
if (GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C012))->GetCheckState() ||
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C013))->GetCheckState() ||
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C014))->GetCheckState() ||
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C015))->GetCheckState() ||
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C016))->GetCheckState() ||
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C017))->GetCheckState() ||
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C018))->GetCheckState())
{
GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C011))->SetCheckState(false);
}
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_CheckBT_C024:
case kControl_CheckBT_C025:
case kControl_CheckBT_C026:
case kControl_CheckBT_C027:
case kControl_CheckBT_C030:
case kControl_CheckBT_C000:
{
OnDropdownEnable();
}
break;
case kControl_Button_B999:
{
//닫기버튼(x)
ShowInterface(FALSE);
}
break;
case kControl_Button_B000:
{
//!< 범위
OnDropdownShow(kControl_List_L006, kControl_Picture_P052);
}
break;
case kControl_Button_B003:
{
//!< 파티원
OnDropdownShow(kControl_List_L007, kControl_Picture_P053);
}
break;
case kControl_Button_B004:
{
//!< hp 회복 물약 먹기
OnDropdownShow(kControl_List_L002, kControl_Picture_P045);
}
break;
case kControl_Button_B005:
{
//!< mp 회복 물약 먹기
OnDropdownShow(kControl_List_L005, kControl_Picture_P048);
}
break;
case kControl_Button_B006:
{
//!< 즉시회복
OnDropdownShow(kControl_List_L001, kControl_Picture_P044);
}
break;
case kControl_Button_B007:
{
//!< 사료
OnDropdownShow(kControl_List_L004, kControl_Picture_P047);
}
break;
case kControl_Button_B008:
{
//!< 앉기 휴식 hp
OnDropdownShow(kControl_List_L000, kControl_Picture_PI04);
}
break;
case kControl_Button_B009:
{
//! 앉기 휴식 mp
OnDropdownShow(kControl_List_L003, kControl_Picture_P046);
}
break;
case kControl_Button_B010: //! 슬롯 아이템들
case kControl_Button_B011:
case kControl_Button_B013:
case kControl_Button_B012:
case kControl_Button_B015:
case kControl_Button_B014:
case kControl_Button_B016:
case kControl_Button_B017:
case kControl_Button_B018:
case kControl_Button_B019:
case kControl_Button_B020:
case kControl_Button_B021:
case kControl_Button_B022:
case kControl_Button_B023:
case kControl_Button_B024:
case kControl_Button_B025:
case kControl_Button_B026:
case kControl_Button_B027:
case kControl_Button_B028:
case kControl_Button_B029:
case kControl_Button_B030:
case kControl_Button_B031:
case kControl_Button_B032:
case kControl_Button_B033:
{
MouseHandler::Instance()->ItemTransaction(SI_AUTOMATIC_INFO,
static_cast<POSTYPE>((GetControlPosition_byID(message->dwCtrlID) - kControl_Button_B010)),
&(GetControlWZ(message->dwCtrlID)->GetSizeRect()));
}
break;
case kControl_List_L000:
{
ChangeDropdownItem(control_pos, kControl_Text_S050);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L001:
{
ChangeDropdownItem(control_pos, kControl_Text_S048);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L002:
{
ChangeDropdownItem(control_pos, kControl_Text_S035);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L003:
{
ChangeDropdownItem(control_pos, kControl_Text_S051);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L004:
{
ChangeDropdownItem(control_pos, kControl_Text_S049);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L005:
{
ChangeDropdownItem(control_pos, kControl_Text_S047);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L006:
{
ChangeDropdownItem(control_pos, kControl_Text_S034);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_List_L007:
{
ChangeDropdownItem(control_pos, kControl_Text_S033);
OnDropdownShow(kControl_Size, kControl_Size);
}
break;
case kControl_TextImage_TI07:
{
//! 확인
static_cast<uiAutobotMan*>(GetMan())->UpdateCondition();
ShowInterface(FALSE);
}
break;
case kControl_TextImage_TI06:
{
//! 초기화
DefaultUI();
}
break;
default:
{
}
break;
}
return result;
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::OnDropdownShow(UIControlPos list_index, UIControlPos picture_index)
{
//! 리스트 박스 배경은 다 히든 시킨다.
GetControlWZ(GetControlID_byPosition(kControl_Picture_PI04))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P044))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P045))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P046))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P047))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P048))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P052))->ShowWindowWZ(WZ_HIDE);
GetControlWZ(GetControlID_byPosition(kControl_Picture_P053))->ShowWindowWZ(WZ_HIDE);
for (int i = (int)kControl_List_L000; i <= (int)kControl_List_L007; ++i)
{
if ((static_cast<UIControlPos>(i) == list_index) &&
(GetListControlWZ(GetControlID_byPosition(list_index))->GetState() == WZ_HIDE))
{
GetListControlWZ(GetControlID_byPosition(list_index))->ShowWindowWZ(WZ_SHOW);
GetControlWZ(GetControlID_byPosition(picture_index))->ShowWindowWZ(WZ_SHOW);
}
else
{
GetListControlWZ(GetControlID_byPosition(static_cast<UIControlPos>(i)))->ShowWindowWZ(WZ_HIDE);
}
}
}
//------------------------------------------------------------------------------
int uiAutobotConditionBattle::GetCoolTime(SCSlot* slot)
{
if (slot != NULL)
{
if (slot->GetSlotType() == ST_ITEM)
{
SCItemSlot* item_slot = static_cast<SCItemSlot*>(slot);
BASE_ITEMINFO* item_info = ItemInfoParser::Instance()->GetItemInfo(item_slot->GetCode());
if (item_info != NULL)
{
return item_info->m_dCoolTime / 1000;
}
}
else if (slot->GetSlotType() == ST_SKILL)
{
SCSkillSlot* skill_slot = static_cast<SCSkillSlot*>(slot);
SkillScriptInfo* skill_info = SkillInfoParser::Instance()->GetSkillInfo(skill_slot->GetCode());
if (skill_info != NULL)
{
return skill_info->m_dwCoolTime / 1000;
}
}
}
return kDefaultCooltimeSecond;//!< 최소 10초
}
//------------------------------------------------------------------------------
RC::eSLOT_INSERT_RESULT uiAutobotConditionBattle::InsertSlot(POSTYPE at_pos, SCSlot& slot)
{
//slot_safe_code:안전한 슬롯체크 구문(삽입)
if (ValidPos(at_pos) == false)
{
return RC::RC_INSERT_SLOT_FAILED;
}
if (m_pItemUnitRenderer == NULL)
{
return RC::RC_INSERT_SLOT_FAILED;
}
CControlWZ* button_control = GetControlWZ(GetControlID_byPosition(kControl_Button_B010 + at_pos));
if(!button_control)
{
return RC::RC_INSERT_SLOT_FAILED;
}
DBSERIAL slot_serial = g_SlotKeyGenerator.GetKey();
if (slot_serial <= 0)
{
return RC::RC_INSERT_SLOT_FAILED;
}
RC::eSLOT_INSERT_RESULT slot_result = QuickSlotContainer::InsertSlot(at_pos, slot);
QuickSlot& quick_slot = static_cast<QuickSlot&>(GetSlot(at_pos));
quick_slot.SetOrgSerial(slot_serial);
if(m_pItemUnitRenderer)
{
// 3D 모델링 Render
m_pItemUnitRenderer->AddItemUnit(quick_slot.GetSerial(),
quick_slot.GetOrgCode(),
&(button_control->GetSizeRect()),
&quick_slot,
button_control);
}
if (slot_result == RC::RC_INSERT_SLOT_SUCCESS)
{
//! 시간을 쿨타임보다 크게 한다.
int slot_cool_time = GetCoolTime(quick_slot.GetOrgSlot());
TCHAR str[INTERFACE_STRING_LENGTH] = {NULL, };
GetEditText(at_pos, str, INTERFACE_STRING_LENGTH);
int edit_cool_time = atoi(str);
if (slot_cool_time > edit_cool_time)
{
SetEditText(at_pos, slot_cool_time);
}
}
return slot_result;
}
//------------------------------------------------------------------------------
BOOL uiAutobotConditionBattle::DeleteSlot(POSTYPE at_pos, SCSlot* slotOut)
{
//slot_safe_code:안전한 슬롯체크 구문(삭제)
if ((ValidPos(at_pos) == false) || IsEmpty(at_pos))
{
return FALSE;
}
if (m_pItemUnitRenderer == NULL)
{
return FALSE;
}
QuickSlot& quick_slot = (QuickSlot&)GetSlot(at_pos);
if (quick_slot.GetOrgSerial() > 0)
{
g_SlotKeyGenerator.Restore((DWORD)quick_slot.GetOrgSerial());
m_pItemUnitRenderer->RemoveItemUnit(quick_slot.GetOrgSerial());
}
return QuickSlotContainer::DeleteSlot(at_pos, slotOut);
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::DeleteAllSlots(void)
{
int numSlots = GetMaxSlotNum();
for (int i = 0; i < numSlots; ++i)
{
if (IsEmpty(i) == FALSE)
{
DeleteSlot(i, NULL);
}
}
}
//------------------------------------------------------------------------------
bool uiAutobotConditionBattle::IsAttackSkillSlot(POSTYPE at_pos)
{
return (at_pos >= (uiAutobotConditionBattle::kSlotSize / 2));
}
//------------------------------------------------------------------------------
bool uiAutobotConditionBattle::CanLinkSlot(const SCSlot* slot, POSTYPE to_pos)
{
if (slot == NULL)
{
return false;
}
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {NULL, };
if (ST_QUICK == slot->GetSlotType())
{
eSlotType org_slot_type = ((QuickSlot*)(slot))->GetOrgSlotType();
if (org_slot_type == ST_ITEM)
{
if (IsAttackSkillSlot(to_pos) == true)
{
return false;
}
}
else if (org_slot_type == ST_SKILL)
{
SLOTCODE org_slot_code = ((QuickSlot*)(slot))->GetOrgCode();
SkillType skill_type = GetSkilType(org_slot_code);
if (IsAttackSkillSlot(to_pos) == true)
{
if (skill_type != kSkill_Attack)
{
//! 공격 스킬만 올려 놓을수 있습니다.
return false;
}
}
else
{
if (skill_type != kSkill_Defense)
{
//! 공격 스킬만 올려 놓을수 있습니다.
return false;
}
}
}
return true;
}
else if (ST_ITEM == slot->GetSlotType())
{
if (IsAttackSkillSlot(to_pos) == true)
{
//! 공격 슬롯에는 아이템을 올려 놓을수 없습니다.
return false;
}
bool is_possible = false;
const BASE_ITEMINFO* item_info = ((SCItemSlot*)slot)->GetItemInfo();
if (item_info != NULL)
{
if (item_info->m_wType == eITEMTYPE_WASTE)
{
if ((item_info->m_byWasteType == eITEMWASTE_HPPOTION) ||
(item_info->m_byWasteType == eITEMWASTE_MPPOTION) ||
(item_info->m_byWasteType == eITEMWASTE_FUNCTION) ||
(item_info->m_byWasteType == eITEMWASTE_FUNCTION_HOLDUP_BUFF_POST_DEAD))
{
is_possible = true;
}
}
}
//if (item_info == NULL || item_info->m_byMaterialType != eITEM_MATERIAL_TYPE_CAN_USE)
if (is_possible == false)
{
//// 장착 및 사용 가능한 아이템만 퀵 창에 올릴 수 있다.
//g_InterfaceManager.GetInterfaceString( eST_ITEM_MATERIAL_TYPE_CAN_EQUIP, szMessage, INTERFACE_STRING_LENGTH );
//GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage );
return false;
}
return true;
}
else if (ST_SKILL == slot->GetSlotType())
{
SkillType skill_type = GetSkilType(slot->GetCode());
if (IsAttackSkillSlot(to_pos) == true)
{
if (skill_type != kSkill_Attack)
{
//! 공격 스킬만 올려 놓을수 있습니다.
return false;
}
}
else
{
if (skill_type != kSkill_Defense)
{
//! 방어 스킬만 올려 놓을수 있습니다.
return false;
}
}
return true;
}
return false;
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::DefaultUI()
{
//! 아이템 종류별로 옵션 활성 여부 판대기
SetVisible(kControl_Picture_P016, WZ_HIDE);
SetVisible(kControl_Picture_P049, WZ_HIDE);
SetVisible(kControl_Picture_P051, WZ_HIDE);
SetVisible(kControl_Picture_P054, WZ_HIDE);
SetVisible(kControl_Picture_P055, WZ_HIDE);
//! 기능 별로 check button control 활성화 여부
SLOTCODE item_code = 0;
g_pHero->GetHeroEquipContainer()->IsEquipItem(eITEMTYPE_AUTO_HUNTING, &item_code);
//------------------------------------------------------------------------------
SetEnableByItem(kControl_CheckBT_C001, true, item_code, kControl_Text_T006); // 사냥설정_맵전체
SetEnableByItem(kControl_CheckBT_C009, true, item_code, kControl_Text_S000); // 사냥설정_보스경고
SetEnableByItem(kControl_CheckBT_C007, true, item_code, kControl_Text_S001); // 사냥설정_파티원주변
SetEnableByItem(kControl_CheckBT_C010, true, item_code, kControl_Text_S002); // 사냥설정_특정범위(자신 주변)
SetEnableByItem(kControl_CheckBT_C011, true, item_code, kControl_Text_S003); // 줍기설정_모든아이템
SetEnableByItem(kControl_CheckBT_C012, true, item_code, kControl_Text_S004); // 줍기설정_일반아이템
SetEnableByItem(kControl_CheckBT_C017, true, item_code, kControl_Text_S009); // 줍기설정_퀘스트아이템
SetEnableByItem(kControl_CheckBT_C013, true, item_code, kControl_Text_S005); // 줍기설정_스톤아이템
SetEnableByItem(kControl_CheckBT_C014, true, item_code, kControl_Text_S006); // 줍기설정_무기아이템
SetEnableByItem(kControl_CheckBT_C018, true, item_code, kControl_Text_S010); // 줍기설정_방어구아이템
SetEnableByItem(kControl_CheckBT_C015, true, item_code, kControl_Text_S007); // 줍기설정_AC아이템
SetEnableByItem(kControl_CheckBT_C016, true, item_code, kControl_Text_S008); // 줍기설정_하임
SetEnableByItem(kControl_CheckBT_C024, true, item_code, kControl_Text_S019); // 회복설정_HP
SetEnableByItem(kControl_CheckBT_C026, true, item_code, kControl_Text_S021); // 회복설정_MPSP
SetEnableByItem(kControl_CheckBT_C025, true, item_code, kControl_Text_S020); // 회복설정_즉시회복
SetEnableByItem(kControl_CheckBT_C027, true, item_code, kControl_Text_S022); // 회복설정_사료(동물 먹이)
SetEnableByItem(kControl_CheckBT_C030, true, item_code, kControl_Text_S025); // 회복설정_휴식(앉기, 해당 HP 이하일경우)
SetEnableByItem(kControl_CheckBT_C000, true, item_code, kControl_Text_S014); // 회복설정_휴식(앉기, 해당 MP 이하일경우)
uiPartyMan* party_manager = GET_DIALOG_MANAGER(uiPartyMan, UIMAN_PARTY);
if ((party_manager != NULL) && (party_manager->IsParty()))
{
SetEnableByItem(kControl_CheckBT_C007, true, item_code, kControl_Text_S001); // 사냥설정_파티원주변
}
else
{
SetEnableByItem(kControl_CheckBT_C007, false, item_code, kControl_Text_S001); // 사냥설정_파티원주변
}
if ((GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_FIELD) ||
(GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_CHUNTING) ||
(GameFramework::GetCurrentScene()->GetType() == SCENE_TYPE_MISSION))
{
SetEnableByItem(kControl_CheckBT_C010, true, item_code, kControl_Text_S002);
}
else
{
SetEnableByItem(kControl_CheckBT_C010, false, item_code, kControl_Text_S002);
}
//------------------------------------------------------------------------------
//! 에디트박스에 디폴트값으로 설정
for( size_t i=0;i!=GetEditCount();++i)
{
SetEditText(i, kDefaultCooltimeSecond);
}
//! 콤보박스 첫번째것으로 셋팅
SelectDropdownItem(kControl_List_L000, kControl_Text_S050, 0);
SelectDropdownItem(kControl_List_L001, kControl_Text_S048, 0);
SelectDropdownItem(kControl_List_L002, kControl_Text_S035, 0);
SelectDropdownItem(kControl_List_L003, kControl_Text_S051, 0);
SelectDropdownItem(kControl_List_L004, kControl_Text_S049, 0);
SelectDropdownItem(kControl_List_L005, kControl_Text_S047, 0);
SelectDropdownItem(kControl_List_L006, kControl_Text_S034, 0);
SelectDropdownItem(kControl_List_L007, kControl_Text_S033, 0);
//사냥 설정
SetCheckedByItem(kControl_CheckBT_C001, false, item_code); // 사냥설정_맵전체
SetCheckedByItem(kControl_CheckBT_C009, false, item_code); // 사냥설정_보스경고
SetCheckedByItem(kControl_CheckBT_C007, false, item_code); // 사냥설정_파티원주변
SetCheckedByItem(kControl_CheckBT_C010, false, item_code); // 사냥설정_특정범위(자신 주변)
//! 줍기 옵션
SetCheckedByItem(kControl_CheckBT_C011, false, item_code); // 줍기설정_모든아이템
SetCheckedByItem(kControl_CheckBT_C012, false, item_code); // 줍기설정_일반아이템
SetCheckedByItem(kControl_CheckBT_C017, false, item_code); // 줍기설정_퀘스트아이템
SetCheckedByItem(kControl_CheckBT_C013, false, item_code); // 줍기설정_스톤아이템
SetCheckedByItem(kControl_CheckBT_C014, false, item_code); // 줍기설정_무기아이템
SetCheckedByItem(kControl_CheckBT_C018, false, item_code); // 줍기설정_방어구아이템
SetCheckedByItem(kControl_CheckBT_C015, false, item_code); // 줍기설정_AC아이템
SetCheckedByItem(kControl_CheckBT_C016, false, item_code); // 줍기설정_하임
//! 회복 설정
SetCheckedByItem(kControl_CheckBT_C024, false, item_code); // 회복설정_HP
SetCheckedByItem(kControl_CheckBT_C026, false, item_code); // 회복설정_MPSP
SetCheckedByItem(kControl_CheckBT_C025, false, item_code); // 회복설정_즉시회복
SetCheckedByItem(kControl_CheckBT_C027, false, item_code); // 회복설정_사료(동물 먹이)
SetCheckedByItem(kControl_CheckBT_C030, false, item_code); // 회복설정_휴식(앉기, 해당 HP 이하일경우)
SetCheckedByItem(kControl_CheckBT_C000, false, item_code); // 회복설정_휴식(앉기, 해당 MP 이하일경우)
OnDropdownEnable();
//! 슬롯컨테이너
DeleteAllSlots();
GetDialogWZ()->RequestFocus(NULL);
}
//------------------------------------------------------------------------------
bool uiAutobotConditionBattle::UpdateUI()
{
if (AutobotConditionManager::Instance()->IsLoaded() == false)
{
return false;
}
int option_value = 0;
//------------------------------------------------------------------------------
//사냥 설정
SetChecked(kControl_CheckBT_C009, AutobotConditionManager::Instance()->hunting().IsAvoidMonster(eNPC_BOSS));
SetChecked(kControl_CheckBT_C001, AutobotConditionManager::Instance()->hunting().hunting_type() == AutobotCondition_Hunting::kHuntingType_Free);
SetChecked(kControl_CheckBT_C007, AutobotConditionManager::Instance()->hunting().hunting_type() == AutobotCondition_Hunting::kHuntingType_Party);
SetChecked(kControl_CheckBT_C010, AutobotConditionManager::Instance()->hunting().hunting_type() == AutobotCondition_Hunting::kHuntingType_Area);
uiPartyMan* party_manager = GET_DIALOG_MANAGER(uiPartyMan, UIMAN_PARTY);
if ((party_manager == NULL) || (party_manager->IsParty() == false))
{
SetEnable(kControl_CheckBT_C007, false);
}
if (IsChecked(kControl_CheckBT_C007))
{
option_value = AutobotConditionManager::Instance()->hunting().party_follow_no();
SelectDropdownItem(kControl_List_L007, kControl_Text_S033, option_value);
}
if (IsChecked(kControl_CheckBT_C010))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->hunting().area_range());
SelectDropdownItemByComboValue(kControl_List_L006, kControl_Text_S034, option_value);
}
//------------------------------------------------------------------------------
//! 아이템 줍기
SetChecked(kControl_CheckBT_C011, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_All));
SetChecked(kControl_CheckBT_C012, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_Normal));
SetChecked(kControl_CheckBT_C013, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_Stone));
SetChecked(kControl_CheckBT_C014, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_Weapon));
SetChecked(kControl_CheckBT_C015, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_AC));
SetChecked(kControl_CheckBT_C016, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_Heim));
SetChecked(kControl_CheckBT_C017, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_Quest));
SetChecked(kControl_CheckBT_C018, AutobotConditionManager::Instance()->pickup().HasItemType(AutobotCondition::kItem_Armor));
//------------------------------------------------------------------------------
//! 회복 설정
SetChecked(kControl_CheckBT_C024, AutobotConditionManager::Instance()->recovery().hp_potion_percent() > 0.0f);
SetChecked(kControl_CheckBT_C026, AutobotConditionManager::Instance()->recovery().mp_potion_percent() > 0.0f);
SetChecked(kControl_CheckBT_C025, AutobotConditionManager::Instance()->recovery().immediate_potion_percent() > 0.0f);
SetChecked(kControl_CheckBT_C027, AutobotConditionManager::Instance()->recovery().feed_potion_percent() > 0.0f);
SetChecked(kControl_CheckBT_C030, AutobotConditionManager::Instance()->recovery().relax_hp_percent() > 0.0f);
SetChecked(kControl_CheckBT_C000, AutobotConditionManager::Instance()->recovery().relax_mp_percent() > 0.0f);
if (IsChecked(kControl_CheckBT_C024))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->recovery().hp_potion_percent());
SelectDropdownItemByComboValue(kControl_List_L002, kControl_Text_S035, option_value);
}
if (IsChecked(kControl_CheckBT_C026))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->recovery().mp_potion_percent());
SelectDropdownItemByComboValue(kControl_List_L005, kControl_Text_S047, option_value);
}
if (IsChecked(kControl_CheckBT_C025))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->recovery().immediate_potion_percent());
SelectDropdownItemByComboValue(kControl_List_L001, kControl_Text_S048, option_value);
}
if (IsChecked(kControl_CheckBT_C027))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->recovery().feed_potion_percent());
SelectDropdownItemByComboValue(kControl_List_L004, kControl_Text_S049, option_value);
}
if (IsChecked(kControl_CheckBT_C030))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->recovery().relax_hp_percent());
SelectDropdownItemByComboValue(kControl_List_L000, kControl_Text_S050, option_value);
}
if (IsChecked(kControl_CheckBT_C000))
{
option_value = static_cast<int>(AutobotConditionManager::Instance()->recovery().relax_mp_percent());
SelectDropdownItemByComboValue(kControl_List_L003, kControl_Text_S051, option_value);
}
//------------------------------------------------------------------------------
//! 스킬 등록
int to_pos = 0;
{
AutobotCondition_Skill::ConditionIntervalSkillVector::iterator begin = AutobotConditionManager::Instance()->skill().interval_skill_vector().begin();
AutobotCondition_Skill::ConditionIntervalSkillVector::iterator end = AutobotConditionManager::Instance()->skill().interval_skill_vector().end();
for (; begin != end && to_pos < 12; ++begin, ++to_pos)
{
AutobotCondition_Skill::Slot slot = *begin;
if (slot.slot_type == ST_SKILL)
{
ItemManager::Instance()->AutobotLinkSkill(to_pos, slot.slot_code);
}
else if (slot.slot_type == ST_ITEM)
{
SCItemSlot* item_slot = ItemManager::Instance()->FindFirstItemSlot(slot.container_index, slot.slot_code);
if (item_slot != NULL)
{
ItemManager::Instance()->AutobotLinkItem(slot.container_index,
item_slot->GetPos(),
to_pos,
item_slot->GetCode());
}
}
int second_time = slot.interval_millisecond / 1000;
if (second_time < 1)
{
second_time = 1;
}
SetEditText(to_pos, second_time);
}
}
{
to_pos = 12; //!< 공격용 스킬을 아래부터
AutobotCondition_Skill::ConditionAttackSkillVector::iterator begin = AutobotConditionManager::Instance()->skill().attack_skill_vector().begin();
AutobotCondition_Skill::ConditionAttackSkillVector::iterator end = AutobotConditionManager::Instance()->skill().attack_skill_vector().end();
for (; begin != end && to_pos < 24; ++begin, ++to_pos)
{
AutobotCondition_Skill::Slot slot = *begin;
if (slot.slot_type == ST_SKILL)
{
ItemManager::Instance()->AutobotLinkSkill(to_pos, slot.slot_code);
}
else if (slot.slot_type == ST_ITEM)
{
SCItemSlot* item_slot = ItemManager::Instance()->FindFirstItemSlot(slot.container_index, slot.slot_code);
if (item_slot != NULL)
{
ItemManager::Instance()->AutobotLinkItem(slot.container_index,
item_slot->GetPos(),
to_pos,
item_slot->GetCode());
}
}
}
}
OnDropdownEnable();
return true;
}
//------------------------------------------------------------------------------
bool uiAutobotConditionBattle::UpdateCondition()
{
//------------------------------------------------------------------------------
//! 사냥 설정
//AutobotConditionManager::Instance()->hunting().set_target_range(15.0f);
if (IsChecked(kControl_CheckBT_C001) == true)
{
AutobotConditionManager::Instance()->hunting().set_hunting_type(AutobotCondition_Hunting::kHuntingType_Free);
}
else if (IsChecked(kControl_CheckBT_C007) == true)
{
int party_index = -1;
uiPartyMan* party_manager = GET_DIALOG_MANAGER(uiPartyMan, UIMAN_PARTY);
if (party_manager != NULL)
{
const char* party_name = GetCurDropdownItemText(kControl_List_L007);
if (party_name != NULL)
{
party_index = party_manager->GetPartyIndex((TCHAR*)party_name);
}
}
AutobotConditionManager::Instance()->hunting().set_hunting_type(AutobotCondition_Hunting::kHuntingType_Party);
AutobotConditionManager::Instance()->hunting().set_party_follow_no(party_index);
}
else if (IsChecked(kControl_CheckBT_C010) == true)
{
BASE_AutomaticComboInfo* info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L006));
if (info && g_pHero)
{
AutobotConditionManager::Instance()->hunting().set_hunting_type(AutobotCondition_Hunting::kHuntingType_Area);
AutobotConditionManager::Instance()->hunting().set_area_position(g_pHero->GetPosition());
AutobotConditionManager::Instance()->hunting().set_area_range(static_cast<float>(info->option_value));
}
}
else
{
AutobotConditionManager::Instance()->hunting().set_hunting_type(AutobotCondition_Hunting::kHuntingType_Max);
}
AutobotConditionManager::Instance()->hunting().avoid_monster_set().insert(eNPC_LUCKY_MONSTER);
if (IsChecked(kControl_CheckBT_C009) == true)
{
AutobotConditionManager::Instance()->hunting().avoid_monster_set().insert(eNPC_BOSS);
}
//------------------------------------------------------------------------------
//! 아이템 줍기
if (IsChecked(kControl_CheckBT_C011))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_All);
}
else
{
if (IsChecked(kControl_CheckBT_C012))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_Normal);
}
if (IsChecked(kControl_CheckBT_C013))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_Stone);
}
if (IsChecked(kControl_CheckBT_C014))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_Weapon);
}
if (IsChecked(kControl_CheckBT_C015))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_AC);
}
if (IsChecked(kControl_CheckBT_C016))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_Heim);
}
if (IsChecked(kControl_CheckBT_C017))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_Quest);
}
if (IsChecked(kControl_CheckBT_C018))
{
AutobotConditionManager::Instance()->pickup().Insert(AutobotCondition::kItem_Armor);
}
}
//------------------------------------------------------------------------------
//! 회복 설정
BASE_AutomaticComboInfo* info = NULL;
if (IsChecked(kControl_CheckBT_C024))
{
//! 회복 설정 : HP
info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L002));
AutobotConditionManager::Instance()->recovery().set_hp_potion_percent(static_cast<float>(info->option_value));
}
if (IsChecked(kControl_CheckBT_C026))
{
//! 회복 설정 : MP
info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L005));
AutobotConditionManager::Instance()->recovery().set_mp_potion_percent(static_cast<float>(info->option_value));
}
if (IsChecked(kControl_CheckBT_C025))
{
//! 회복 설정 : 즉시
info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L001));
AutobotConditionManager::Instance()->recovery().set_immediate_potion_percent(static_cast<float>(info->option_value));
}
if (IsChecked(kControl_CheckBT_C027))
{
//! 회복 설정 : 사료
info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L004));
AutobotConditionManager::Instance()->recovery().set_feed_potion_percent(static_cast<float>(info->option_value));
}
if (IsChecked(kControl_CheckBT_C030))
{
//! 회복 설정 : 앉기 mp
info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L000));
AutobotConditionManager::Instance()->recovery().set_relax_hp_percent(static_cast<float>(info->option_value));
}
if (IsChecked(kControl_CheckBT_C000))
{
//! 회복 설정 : 앉기 mp
info = static_cast<BASE_AutomaticComboInfo*>(GetCurDropdownItemData(kControl_List_L003));
AutobotConditionManager::Instance()->recovery().set_relax_mp_percent(static_cast<float>(info->option_value));
}
//! 스킬 등록
int max_slot = GetMaxSlotNum();
for (int i = 0; i < max_slot; ++i)
{
QuickSlot& quick_slot = static_cast<QuickSlot&>(GetSlot(i));
if (quick_slot.IsEmptySlot() == false)
{
if (IsAttackSkillSlot(i) == true)
{
AutobotConditionManager::Instance()->skill().InsertAttackSkill(static_cast<eSlotContainerIndex>(quick_slot.GetOrgSlotIndex()),
quick_slot.GetOrgSlotType(),
quick_slot.GetOrgCode());
}
else
{
std::string text = GetEditText(i);
int second = atoi(text.c_str());
if( second < kDefaultCooltimeSecond )
{
second = kDefaultCooltimeSecond;
}
AutobotConditionManager::Instance()->skill().InsertIntervalSkill(static_cast<eSlotContainerIndex>(quick_slot.GetOrgSlotIndex()),
quick_slot.GetOrgSlotType(),
quick_slot.GetOrgCode(),
second * 1000);
}
}
}
return true;
}
//------------------------------------------------------------------------------
void uiAutobotConditionBattle::OnDropdownEnable()
{
SetEnable(kControl_Button_B004, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C024))->GetCheckState());
SetEnable(kControl_Button_B006, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C025))->GetCheckState());
SetEnable(kControl_Button_B005, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C026))->GetCheckState());
SetEnable(kControl_Button_B007, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C027))->GetCheckState());
SetEnable(kControl_Button_B008, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C030))->GetCheckState());
SetEnable(kControl_Button_B009, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C000))->GetCheckState());
SetEnable(kControl_Button_B003, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C007))->GetCheckState());
SetEnable(kControl_Button_B000, GetCheckButtonControlWZ(GetControlID_byPosition(kControl_CheckBT_C010))->GetCheckState());
OnDropdownShow(kControl_Size, kControl_Size);
}
//------------------------------------------------------------------------------
eAUTO_HUNTING_TYPE uiAutobotConditionBattle::GetHuntingTypeFromControlIndex(DWORD control_index)
{
switch (control_index)
{
case kControl_CheckBT_C001: return eAUTO_RANGE_FIELD;
case kControl_CheckBT_C009: return eAUTO_RANGE_BOSS;
case kControl_CheckBT_C007: return eAUTO_RANGE_PARTY;
case kControl_CheckBT_C010: return eAUTO_RANGE_USER;
case kControl_CheckBT_C011: return eAUTO_PICKUP_ALL;
case kControl_CheckBT_C012: return eAUTO_PICKUP_NORMAL;
case kControl_CheckBT_C017: return eAUTO_PICKUP_QUEST;
case kControl_CheckBT_C013: return eAUTO_PICKUP_STONE;
case kControl_CheckBT_C014: return eAUTO_PICKUP_WEAPON;
case kControl_CheckBT_C018: return eAUTO_PICKUP_ARMOR;
case kControl_CheckBT_C015: return eAUTO_PICKUP_AC;
case kControl_CheckBT_C016: return eAUTO_PICKUP_HEIM;
//case kControl_CheckBT_C001: return eAUTO_PICKUP_ITEMTYPE;
case kControl_CheckBT_C024: return eAUTO_CURE_HP;
case kControl_CheckBT_C026: return eAUTO_CURE_MPSP;
case kControl_CheckBT_C025: return eAUTO_CURE_INSTANT;
case kControl_CheckBT_C027: return eAUTO_CURE_PET_FEED;
case kControl_CheckBT_C030: return eAUTO_CURE_SITDOWN_HP;
case kControl_CheckBT_C000: return eAUTO_CURE_SITDOWN_MP;
}
return eAUTO_TYPE_INVALID;
}
//------------------------------------------------------------------------------
uiAutobotConditionBattle::SkillType uiAutobotConditionBattle::GetSkilType(SLOTCODE skill_code)
{
if (skill_code == eACTION_START_SKILL_CODE)
{
//! 자동공격
return uiAutobotConditionBattle::kSkill_Attack;
}
ROOT_SKILLINFO* root_info = SkillInfoParser::Instance()->GetInfo(skill_code);
if (root_info == NULL || root_info->IsSkill() == false)
{
return uiAutobotConditionBattle::kSkill_Max;
}
SkillScriptInfo* skill_info = static_cast<SkillScriptInfo*>(root_info);
if (skill_info == NULL)
{
return uiAutobotConditionBattle::kSkill_Max;
}
//409 스타일
//11236 근거리물리
//11237 원거리물리
//11238 보조기능
//11239 강화
//11240 약화
//11241 회복
//11242 변신
//11243 소환
//11244 부활
//11245 마법
switch (skill_info->m_wSkillAttribute)
{
case 409: //!<스타일
break;
case 11238: //!<보조기능
case 11239: //!<강화
case 11241: //!<회복
case 11242: //!<변신
case 11243: //!<소환
case 11244: //!<부활
{
BASE_ABILITYINFO* ability_info = NULL;
skill_info->SetFirst();
while (ability_info = skill_info->GetNext())
{
if ((ability_info->m_byRangeType == SKILL_ABILITY_FRIEND) ||
(ability_info->m_byRangeType == SKILL_ABILITY_TARGETAREA_FRIEND) ||
(ability_info->m_byRangeType == SKILL_ABILITY_MYAREA_FRIEND) ||
(ability_info->m_byRangeType == SKILL_ABILITY_ME) ||
(ability_info->m_byRangeType == SKILL_ABILITY_SUMMON))
{
return uiAutobotConditionBattle::kSkill_Defense;
}
}
return uiAutobotConditionBattle::kSkill_Max;
//if ((skill_info->m_byTarget == SKILL_TARGET_FRIEND) ||
// (skill_info->m_byTarget == SKILL_TARGET_ME) ||
// (skill_info->m_byTarget == SKILL_TARGET_REACHABLE_FRIEND) ||
// (skill_info->m_byTarget == SKILL_TARGET_REACHABLE_ME))
//{
// return uiAutobotConditionBattle::kSkill_Defense;
//}
}
break;
case 11240: //!< 약화
case 11236: //!< 근거리물리
case 11237: //!< 원거리물리
case 11245: //!< 마법
{
BASE_ABILITYINFO* ability_info = NULL;
skill_info->SetFirst();
while (ability_info = skill_info->GetNext())
{
if ((ability_info->m_byRangeType == SKILL_ABILITY_ENEMY) ||
(ability_info->m_byRangeType == SKILL_ABILITY_TARGETAREA_ENEMY) ||
(ability_info->m_byRangeType == SKILL_ABILITY_MYAREA_ENEMY) ||
(ability_info->m_byRangeType == SKILL_ABILITY_PLAYER_ENEMY) ||
(ability_info->m_byRangeType == SKILL_ABILITY_MYAREA_CORPSE_ENEMY) ||
(ability_info->m_byRangeType == SKILL_ABILITY_CORPSE_ENEMY))
{
return uiAutobotConditionBattle::kSkill_Attack;
}
}
return uiAutobotConditionBattle::kSkill_Max;
//if ((skill_info->m_byTarget == SKILL_TARGET_ENEMY) ||
// (skill_info->m_byTarget == SKILL_TARGET_AREA) ||
// (skill_info->m_byTarget == SKILL_TARGET_REACHABLE_ENEMY) ||
// (skill_info->m_byTarget == SKILL_TARGET_ENEMY_PLAYER) ||
// (skill_info->m_byTarget == SKILL_TARGET_ENEMY_AND_ME))
//{
// // 어빌리티 체크
// BASE_ABILITYINFO* ability_info = NULL;
// skill_info->SetFirst();
// while (ability_info = skill_info->GetNext())
// {
// if ((ability_info->m_wAbilityID == 0) ||
// (ability_info->m_wAbilityID == eABILITY_TELEPORT) ||
// (ability_info->m_wAbilityID >= eABILITY_MAX))
// {
// return uiAutobotConditionBattle::kSkill_Max;
// }
// }
// return uiAutobotConditionBattle::kSkill_Attack;
//}
}
break;
default:
break;
}
return uiAutobotConditionBattle::kSkill_Max;
}
#endif //_YMS_AUTOBOT_GAME