using UI.CommonGame;
using System.Collections.Generic;
using FairyGUI;
namespace GFGGame
{
///
/// 获取途径
///
public class ApproachOfItemView : BaseWindow
{
private UI_ApproachOfItemUI _ui;
private List _approachDatas;
private int _itemId;
private object[] _fromeViewDatas;
protected override void OnInit()
{
base.OnInit();
_ui = UI_ApproachOfItemUI.Create();
this.viewCom = _ui.target;
this.viewCom.Center();
this.modal = true;
viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
_ui.m_listApproach.itemRenderer = ListApproachItemRenderer;
_ui.m_listApproach.onClickItem.Add(OnClickListApproachItem);
}
protected override void OnShown()
{
base.OnShown();
object[] temp = viewData as object[];
_itemId = (int)temp[0];
_fromeViewDatas = temp[1] as object[];
ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
_ui.m_txtName.text = itemCfg.name;
_ui.m_listApproach.RemoveChildrenToPool();
if (itemCfg.approach.Length > 0)
{
_ui.m_txtNone.visible = false;
string[] approachStrs = itemCfg.approach.Split(';');
_approachDatas = new List();
foreach (string approachStr in approachStrs)
{
if (approachStr.Length > 0)
{
string[] infos = approachStr.Split('=');
_approachDatas.Add(infos);
}
}
_ui.m_listApproach.numItems = _approachDatas.Count;
// _ui.m_listApproach.ResizeToFit();
}
else
{
_ui.m_txtNone.visible = true;
// _ui.m_listApproach.height = 162;
}
}
protected override void OnHide()
{
base.OnHide();
_fromeViewDatas = null;
}
private void ListApproachItemRenderer(int index, GObject item)
{
UI_ButtonApproach listItem = UI_ButtonApproach.Proxy(item);
string[] infos = _approachDatas[index];
string functionId = infos[0];
GameFunctionCfg gameFunctionCfg = GameFunctionCfgArray.Instance.GetCfg(functionId);
if (functionId == ConstFunctionId.JU_QING_GUAN_QIA)
{
string value = infos[1];
var levelCfgId = int.Parse(value);
var levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId);
if (levelCfg.type == ConstInstanceZonesType.Story)
{
var chapterCfg = StoryChapterCfgArray.Instance.GetCfg(levelCfg.chapterId);
string chapter = NumberUtil.GetChiniseNumberText(chapterCfg.order);
string level = NumberUtil.GetChiniseNumberText(levelCfg.order);
listItem.target.text = string.Format(gameFunctionCfg.name, chapter, level);
}
else if (levelCfg.type == ConstInstanceZonesType.Studio)
{
var studioCfg = StudioCfgArray.Instance.GetCfg(levelCfg.chapterId);
listItem.target.text = studioCfg.name;
}
}
else
{
listItem.target.text = gameFunctionCfg.name;
}
listItem.target.data = infos;
}
private void OnClickListApproachItem(EventContext context)
{
GObject listItem = context.data as GObject;
string[] infos = listItem.data as string[];
string functionId = infos[0];
switch (functionId)
{
case ConstFunctionId.FU_ZHUANG_DIAN:
this.Hide();
object[] temp = viewData as object[];
int count = temp.Length > 2 ? (int)temp[2] : 1;
ViewManager.Show(ViewName.CLOTHING_SHOP_VIEW, new object[] { null, null, _itemId, count }, _fromeViewDatas, true, true);
break;
case ConstFunctionId.JU_QING_GUAN_QIA:
string value = infos[1];
var levelCfgId = int.Parse(value);
var levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId);
if (!MainStoryDataManager.CheckLevelUnlock(levelCfgId))
{
PromptController.Instance.ShowFloatTextPrompt("关卡未开启");
break;
}
if (levelCfg.type == ConstInstanceZonesType.Story)
{
if ((string)_fromeViewDatas[0] == ViewName.DRESS_UP_FIGHT_VIEW)
{
//从战斗换装必需品来源跳转到剧情界面,在剧情界面点返回后直接返回章节界面,无需返回换装界面
_fromeViewDatas = null;
}
ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, levelCfg.chapterId, _fromeViewDatas, true);
}
else if (levelCfg.type == ConstInstanceZonesType.Studio)
{
//TO DO
}
StoryController.ShowLevelView(levelCfgId);
break;
case ConstFunctionId.FU_ZHUANG_HE_CHENG:
int suitId = SuitCfgManager.Instance.GetItemSuitId(_itemId);
if (suitId > 0)
{
this.Hide();
ViewManager.Show(ViewName.CLOTHING_SYNTHETIC_VIEW, new object[] { suitId, _itemId }, _fromeViewDatas);
}
break;
case ConstFunctionId.ZHAI_XING:
this.Hide();
ViewManager.Show(ViewName.LUCKY_BOX_VIEW, null, _fromeViewDatas);
break;
case ConstFunctionId.TAO_ZHUANG_TU_JIAN:
if (ViewManager.isViewOpen(ViewName.SUIT_GUIDE_VIEW))
{
this.Hide();
return;
}
this.Hide();
ViewManager.Show(ViewName.SUIT_GUIDE_VIEW, null, _fromeViewDatas);
break;
case ConstFunctionId.TAO_ZHUANG_HE_CHENG:
this.Hide();
ViewManager.Show(ViewName.SUIT_SYNTHETIC_LIST_VIEW);
break;
}
}
protected override void UpdateToCheckGuide(object param)
{
if (!ViewManager.CheckIsTopView(this.viewCom)) return;
if (_approachDatas == null) return;
int index = 0;
for (int i = 0; i < _approachDatas.Count; i++)
{
if (_approachDatas[i][0] == ConstFunctionId.FU_ZHUANG_DIAN)
{
index = i;
break;
}
}
GuideController.TryGuide(_ui.m_listApproach, ConstGuideId.BUY_CLOTHING, 2, "该物品可以在服装店购买,点开服装店看看", index, true, (int)(this.viewCom.y + this.viewCom.height + 10));
}
}
}