//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, January 24, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
namespace Snxxz.UI {
|
|
public class DogzActiveWin : Window
|
{
|
[SerializeField] ScrollerController m_Controller;
|
[SerializeField] List<DogzSkillData> m_DogzSkills;
|
[SerializeField] List<DogzEquip> m_DogzEquips;
|
[SerializeField] List<Button> m_DogzUnEquipBtns;
|
[SerializeField] List<Text> m_PropertyTypes;
|
[SerializeField] List<Text> m_PropertyValues;
|
[SerializeField] Image m_DogzHeadIcon;
|
[SerializeField] Text m_DogzAssistCnt;
|
[SerializeField] Button m_AddAssistBtn;
|
[SerializeField] Button m_TakeOffEquipBtn;
|
[SerializeField] Button m_EquipPackBtn;
|
[SerializeField] Button m_CallBackBtn;
|
[SerializeField] Text m_CallBackBtnTxt;
|
DogzModel m_Model;
|
DogzModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DogzModel>());
|
}
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_AddAssistBtn.onClick.AddListener(AddAssist);
|
m_TakeOffEquipBtn.onClick.AddListener(TakeOffEquip);
|
m_EquipPackBtn.onClick.AddListener(OpenEquipPack);
|
m_CallBackBtn.onClick.AddListener(CallBackDogz);
|
for (int i = 0; i < m_DogzUnEquipBtns.Count; i++)
|
{
|
var _index = i;
|
m_DogzUnEquipBtns[i].onClick.AddListener(() =>
|
{
|
OpenDogzEquip(_index);
|
});
|
}
|
}
|
|
protected override void OnPreOpen()
|
{
|
SelectDecide();
|
GenerateDogz();
|
UpdateSelectDogzEvent();
|
UpdateDogzAssistCnt();
|
model.UpdateSelectDogzEvent += UpdateSelectDogzEvent;
|
model.UpdateAssistDogzEvent += UpdateDogzAssistCnt;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void SelectDecide()
|
{
|
var configs = ConfigManager.Instance.GetAllValues<DogzConfig>();
|
model.presentSelectDogz = configs[0].ID;
|
}
|
|
void GenerateDogz()
|
{
|
if (m_Controller.GetNumberOfCells(m_Controller.m_Scorller) == 0)
|
{
|
var _dogzCfgs = ConfigManager.Instance.GetAllValues<DogzConfig>();
|
m_Controller.Refresh();
|
for (int i = 0; i < _dogzCfgs.Count; i++)
|
{
|
m_Controller.AddCell(ScrollerDataType.Header, _dogzCfgs[i].ID);
|
}
|
m_Controller.Restart();
|
}
|
}
|
private void UpdateSelectDogzEvent()
|
{
|
m_Controller.m_Scorller.RefreshActiveCellViews();
|
UpdateDogzSkill();
|
UpdateDogzEquip();
|
UpdateDogzProperty();
|
UpdateDogzBtn();
|
|
var _dogzEquips = model.GetDogzEquips(model.presentSelectDogz);
|
m_TakeOffEquipBtn.gameObject.SetActive(_dogzEquips != null && _dogzEquips.Count > 0);
|
}
|
private void UpdateDogzSkill()
|
{
|
var _dogzCfg = ConfigManager.Instance.GetTemplate<DogzConfig>(model.presentSelectDogz);
|
if (_dogzCfg != null)
|
{
|
for (int i = 0; i < m_DogzSkills.Count; i++)
|
{
|
if (_dogzCfg.HelpBattleSkills == null || _dogzCfg.HelpBattleSkills.Length == 0
|
|| i >= _dogzCfg.HelpBattleSkills.Length)
|
{
|
m_DogzSkills[i].SetEnable(false);
|
}
|
else
|
{
|
m_DogzSkills[i].SetEnable(true);
|
var _skillCfg = ConfigManager.Instance.GetTemplate<SkillConfig>(_dogzCfg.HelpBattleSkills[i]);
|
m_DogzSkills[i].Icon.SetSprite(_skillCfg.IconName);
|
m_DogzSkills[i].Lv.text = Language.Get("Z1024", _skillCfg.SkillLV);
|
}
|
}
|
}
|
}
|
private void UpdateDogzEquip()
|
{
|
var _dogzCfg = ConfigManager.Instance.GetTemplate<DogzConfig>(model.presentSelectDogz);
|
m_DogzHeadIcon.SetSprite(_dogzCfg.HeadIcon);
|
m_DogzHeadIcon.SetNativeSize();
|
for (int i = 0; i < m_DogzEquips.Count; i++)
|
{
|
ItemModel _data;
|
bool _equiped = model.TryGetDogzEquip(model.presentSelectDogz, i, out _data);
|
m_DogzUnEquipBtns[i].gameObject.SetActive(!_equiped);
|
m_DogzEquips[i].gameObject.SetActive(_equiped);
|
if (_equiped)
|
{
|
m_DogzEquips[i].Display(_data.itemId);
|
}
|
}
|
}
|
private void UpdateDogzProperty()
|
{
|
var _dogzCfg = ConfigManager.Instance.GetTemplate<DogzConfig>(model.presentSelectDogz);
|
for (int i = 0; i < m_PropertyTypes.Count; i++)
|
{
|
m_PropertyTypes[i].gameObject.SetActive(i < _dogzCfg.BaseAttrTypes.Length);
|
m_PropertyValues[i].gameObject.SetActive(i < _dogzCfg.BaseAttrTypes.Length);
|
if (i < _dogzCfg.BaseAttrTypes.Length)
|
{
|
var _propertyCfg = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(_dogzCfg.BaseAttrTypes[i]);
|
m_PropertyTypes[i].text = _propertyCfg.Name;
|
m_PropertyValues[i].text = StringUtility.Contact(UIHelper.ReplacePercentage(_dogzCfg.BaseAttrValues[i], _propertyCfg.ISPercentage)
|
, _propertyCfg.ISPercentage == 1 ? "%" : string.Empty);
|
}
|
}
|
}
|
private void UpdateDogzAssistCnt()
|
{
|
m_Controller.m_Scorller.RefreshActiveCellViews();
|
m_DogzAssistCnt.text = StringUtility.Contact(model.GetAssistDogzCount(), "/", model.DogzAssistDefaultCnt);
|
UpdateDogzBtn();
|
}
|
private void UpdateDogzBtn()
|
{
|
m_CallBackBtnTxt.text = model.TryGetAssistDogzState(model.presentSelectDogz) ? "召回" : "助战";
|
}
|
|
private void AddAssist()
|
{
|
var _itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(model.AddAssistItem);
|
ConfirmCancel.ShowItemConfirm(string.Format("消耗{0}X{1}永久增加1个助战神兽", _itemConfig.ItemName, model.GetAssistItemCnt()),
|
model.AddAssistItem, model.GetAssistItemCnt(), () =>
|
{
|
|
});
|
}
|
private void TakeOffEquip()
|
{
|
}
|
private void OpenEquipPack()
|
{
|
WindowCenter.Instance.Open<DogzPackWin>();
|
}
|
private void CallBackDogz()
|
{
|
}
|
private void OpenDogzEquip(int index)
|
{
|
WindowCenter.Instance.Open<DogzPackWin>();
|
}
|
[Serializable]
|
public class DogzSkillData
|
{
|
[SerializeField] RectTransform m_SkillContainer;
|
public void SetEnable(bool _enable)
|
{
|
m_SkillContainer.gameObject.SetActive(_enable);
|
}
|
[SerializeField] Image m_SkillIcon;
|
public Image Icon { get { return m_SkillIcon; } }
|
[SerializeField] Text m_SkillLv;
|
public Text Lv { get { return m_SkillLv; } }
|
}
|
}
|
}
|
|
|
|
|