//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, September 06, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
using UnityEngine.EventSystems;
|
using Snxxz.UI;
|
|
namespace Snxxz.UI {
|
|
public class RoleEquipWin : Window
|
{
|
#region 成员变量
|
[SerializeField]
|
private GameObject _beastArea; //灵守
|
[SerializeField]
|
private GameObject _helmetArea; //头盔
|
[SerializeField]
|
private GameObject _clothArea; //胸甲
|
[SerializeField]
|
private GameObject _pantsArea; //护腿
|
[SerializeField]
|
private GameObject _shoesArea; //鞋子
|
[SerializeField]
|
private GameObject _weaponArea; //武器
|
[SerializeField]
|
private GameObject _retWeapon2; //副手
|
[SerializeField]
|
private GameObject _fairy01Area; //圣器1
|
[SerializeField]
|
private GameObject _fairy02Area; //圣器2`
|
[SerializeField]
|
private GameObject _necklaceArea; //项链
|
[SerializeField]
|
private GameObject _beltArea; //腰带
|
[SerializeField]
|
private GameObject _wingsArea; //翅膀
|
[SerializeField] RawImage RoleShowBG;
|
[SerializeField]
|
private Button _starCountBtn;
|
[SerializeField]
|
private Button _equipIntensifyBtn;
|
[SerializeField]
|
private Button _oneKeySellBtn;
|
[SerializeField]
|
private Button _sortBtn; //整理
|
[SerializeField]
|
private Image _sortImage;
|
[SerializeField]
|
private Text _moneyCount;
|
[SerializeField]
|
private Text _bindDiamondCount;
|
[SerializeField]
|
private Text _flowDiamondCount;
|
[SerializeField]
|
private Text _timeDown;
|
[SerializeField] UIEffect STREffect;
|
[SerializeField] UIEffect StarsEffect;
|
#endregion
|
|
PlayerPackModel _playerPack;
|
PlayerPackModel playerPack
|
{
|
get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
|
}
|
|
private FuncConfigConfig _equipPlaceModel;
|
private List<string> _equipCodelist;
|
private List<string> _equipNamelist;
|
private RoleEquipType _equipType;
|
private BagWin bagWin;
|
private Dictionary<int,ItemModel> _roleEquipDict = new Dictionary<int,ItemModel>();
|
private Dictionary<RoleEquipType ,GameObject> equipArealist = new Dictionary<RoleEquipType, GameObject>();
|
|
ItemTipsModel _itemTipsModel;
|
ItemTipsModel itemTipsModel
|
{
|
get
|
{
|
return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>());
|
}
|
}
|
|
|
PackModelInterface _modelInterface;
|
PackModelInterface modelInterface
|
{
|
get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
|
}
|
|
protected override void BindController()
|
{
|
|
equipArealist.Add(RoleEquipType.retWeapon, _weaponArea);
|
equipArealist.Add(RoleEquipType.retClothes, _clothArea);
|
equipArealist.Add(RoleEquipType.retHat, _helmetArea);
|
equipArealist.Add(RoleEquipType.retTrousers, _pantsArea);
|
equipArealist.Add(RoleEquipType.retShoes, _shoesArea);
|
equipArealist.Add(RoleEquipType.retNeck, _necklaceArea);
|
equipArealist.Add(RoleEquipType.retWeapon2, _retWeapon2);
|
equipArealist.Add(RoleEquipType.retFairyCan, _fairy01Area);
|
equipArealist.Add(RoleEquipType.retFairyCan2, _fairy02Area);
|
equipArealist.Add(RoleEquipType.retBelt, _beltArea);
|
equipArealist.Add(RoleEquipType.retWing, _wingsArea);
|
equipArealist.Add(RoleEquipType.retSpiritAnimal, _beastArea);
|
_oneKeySellBtn.onClick.AddListener(OnClickOneKeySell);
|
_sortBtn.onClick.AddListener(() => { OnClickSortBtn(); });
|
}
|
|
protected override void AddListeners()
|
{
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
UI3DModelExhibition.Instance.BeginShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job);
|
playerPack.RefreshAttrActiveAct += ControlEffect;
|
playerPack.ItemCntAddAct += PutOnEquip;
|
playerPack.ItemCntReduceAct += PutOffEquip;
|
PlayerDatas.Instance.RefreshPlayerInfoEvent += OnFrenshBagInfo;
|
WindowCenter.Instance.windowBeforeCloseEvent += BeforeWindowClose;
|
|
TimeDownMgr.CoolTimeData data;
|
if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.BagSort, out data))
|
{
|
data.func = RefreshTime;
|
_sortImage.SetSprite("BlackBtn");
|
_timeDown.text = Language.Get("BagWin_SortCDbtn_Text_1", Mathf.CeilToInt(data.duration - data.time));
|
_sortBtn.enabled = false;
|
}
|
else
|
{
|
_sortImage.SetSprite("SecondBtn1");
|
_timeDown.text = Language.Get("BagWin_Sortbtn_Text_1");
|
_sortBtn.enabled = true;
|
}
|
|
UIEventTrigger.Get(_starCountBtn.gameObject).OnDown = OnClickStarBtn;
|
UIEventTrigger.Get(_equipIntensifyBtn.gameObject).OnDown = OnClickEquipIntensify;
|
foreach (var go in equipArealist.Values)
|
{
|
GameObject itemCell = go.transform.Find("ItemCell").gameObject;
|
itemCell.gameObject.SetActive(false);
|
}
|
|
OnFrenshBagInfo();
|
}
|
|
private void BeforeWindowClose(Window window)
|
{
|
if (typeof(PetMatInfoWin).Name != window.name && typeof(ItemInfoWin).Name != window.name) return;
|
|
UI3DModelExhibition.Instance.BeginShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptEquip);
|
if(singlePack != null)
|
{
|
Dictionary<int,ItemModel> itemPlaceDict = singlePack.GetPackModelIndexDict();
|
foreach (var model in itemPlaceDict.Values)
|
{
|
PutOnEquip(model.packType,model.itemInfo.ItemPlace,model.itemInfo.ItemID);
|
}
|
}
|
|
SuccessConfig successConfig = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
|
if(successConfig != null && successConfig.Type == 95)
|
{
|
playerPack.SetJumpToOneKeySell(_oneKeySellBtn.transform);
|
}
|
|
//if(playerPack.IsActiveSTRAttr())
|
//{
|
// ControlEffect(0,true);
|
//}
|
|
if(playerPack.IsActiveStarAttr())
|
{
|
ControlEffect(1,true);
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
playerPack.ItemCntAddAct -= PutOnEquip;
|
playerPack.ItemCntReduceAct -= PutOffEquip;
|
PlayerDatas.Instance.RefreshPlayerInfoEvent -= OnFrenshBagInfo;
|
WindowCenter.Instance.windowBeforeCloseEvent -= BeforeWindowClose;
|
UI3DModelExhibition.Instance.StopShow();
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
|
private void ControlEffect(int type, bool isActive)
|
{
|
if (type == 0)
|
{
|
if (isActive)
|
{
|
STREffect.Play();
|
}
|
else
|
{
|
STREffect.Stop();
|
}
|
}
|
|
if (type == 1)
|
{
|
if (isActive)
|
{
|
StarsEffect.Play();
|
}
|
else
|
{
|
StarsEffect.Stop();
|
}
|
}
|
}
|
|
public void PutOnEquip(PackType type,int index, int Id)
|
{
|
//临时条件判断
|
if (type != PackType.rptEquip || !equipArealist.ContainsKey((RoleEquipType)index)) return;
|
|
ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip,index);
|
ItemCell itemCell = equipArealist[(RoleEquipType)index].transform.Find("ItemCell").GetComponent<ItemCell>();
|
itemCell.gameObject.SetActive(true);
|
itemCell.Init(itemModel);
|
itemCell.cellBtn.onClick.RemoveAllListeners();
|
itemCell.cellBtn.onClick.AddListener(()=> {
|
itemTipsModel.SetItemTipsModel(PackType.rptEquip, itemModel.itemInfo.ItemGUID,false);
|
itemTipsModel.SetPutOnTipsBtn(itemTipsModel.curAttrData);
|
itemTipsModel.ShowUICtrl();
|
|
});
|
|
if (_roleEquipDict.ContainsKey(itemModel.itemInfo.ItemPlace))
|
{
|
_roleEquipDict[itemModel.itemInfo.ItemPlace] = itemModel;
|
}
|
else
|
{
|
_roleEquipDict.Add(itemModel.itemInfo.ItemPlace,itemModel);
|
}
|
UI3DModelExhibition.Instance.BeginShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job);
|
|
}
|
|
public void PutOffEquip(PackType type, int place,int id)
|
{
|
if (type != PackType.rptEquip) return;
|
|
ClearEquipInfo(place);
|
equipArealist[(RoleEquipType)place].transform.Find("ItemCell").gameObject.SetActive(false);
|
UI3DModelExhibition.Instance.BeginShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job);
|
}
|
|
private void OnClickEquipIntensify(GameObject go)
|
{
|
WindowCenter.Instance.Open<PlayerStrengtheningLVWin>();
|
}
|
|
private void OnClickStarBtn(GameObject go)
|
{
|
WindowCenter.Instance.Open<PlayerStarNumWin>();
|
}
|
|
public void ClearEquipInfo(int place)
|
{
|
if (_roleEquipDict.ContainsKey(place))
|
{
|
_roleEquipDict.Remove(place);
|
}
|
}
|
|
public bool CheckEquipIfPutOn(int equipPlace)
|
{
|
|
if (_roleEquipDict.ContainsKey(equipPlace))
|
return true;
|
return false;
|
}
|
|
|
private List<string> GetToolsList(string tools, List<string> toolslist)
|
{
|
toolslist = new List<string>();
|
string[] toolsArray = tools.Split('|');
|
for (int i = 0; i < toolsArray.Length; i++)
|
{
|
toolslist.Add(toolsArray[i]);
|
}
|
return toolslist;
|
}
|
|
public void OnClickSortBtn()
|
{
|
modelInterface.SendPackResetQuest(PackType.rptItem);
|
TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BagSort, 5.0f, RefreshTime);
|
_timeDown.text = Language.Get("BagWin_SortCDbtn_Text_1", 5);
|
_sortImage.SetSprite("BlackBtn");
|
_sortBtn.enabled = false;
|
|
}
|
|
|
private void RefreshTime(float time)
|
{
|
|
if (time <= 0)
|
{
|
_sortImage.SetSprite("SecondBtn1");
|
_timeDown.text = Language.Get("BagWin_Sortbtn_Text_1");
|
_sortBtn.enabled = true;
|
}
|
else
|
{
|
_timeDown.text = Language.Get("BagWin_SortCDbtn_Text_1", time);
|
_sortBtn.enabled = false;
|
}
|
|
}
|
public void OnFrenshBagInfo()
|
{
|
if (PlayerDatas.Instance.baseData != null)
|
{
|
_moneyCount.text = PlayerDatas.Instance.baseData.Gold.ToString();
|
_bindDiamondCount.text = PlayerDatas.Instance.baseData.GoldPaper.ToString();
|
_flowDiamondCount.text = modelInterface.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.allSliver);
|
}
|
else
|
{
|
_moneyCount.text = "0";
|
_bindDiamondCount.text = "0";
|
_flowDiamondCount.text = "0";
|
}
|
|
}
|
|
private void OnClickOneKeySell()
|
{
|
|
if (modelInterface.GetSellItemList().Count > 0)
|
{
|
WindowCenter.Instance.Open<OneKeySellWin>();
|
}
|
else
|
{
|
MessageWin.Inst.ShowFixedTip(Language.Get("KnapS129"));
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|