//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, April 16, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class PetMountTipWin : Window { [SerializeField] RectTransform m_Pivot; [SerializeField] ImageEx m_Label; [SerializeField] Text m_ItemName; [SerializeField] TipBasePropertyWidget m_BaseProperty; [SerializeField] Image Line; [SerializeField] TipPetMountSkillWidget m_PetMountSkill; [SerializeField] TipAuctionTipWidget m_AuctionWidget; [SerializeField] TipPetMountDescriptionWidget m_DescriptionWidget; [SerializeField] TipBuyItemWidget m_BuyItemWidget; [SerializeField] TipGetWayEntranceWidget m_GetWayEntranceWidget; [SerializeField] TipGetWaysWidget m_GetWaysWidget; [SerializeField] TipModelWidget m_Model; [SerializeField] TipOperateButton[] m_OperateButtons; [SerializeField] Button m_Close; MountModel mountModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.SetListener(() => { WindowCenter.Instance.Close(); }); } protected override void OnPreOpen() { m_Pivot.localScale = Vector3.zero; } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_BuyItemWidget.Dispose(); } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); StartCoroutine("Co_DelayDisplay"); } #endregion private void DisplayBaseInfo() { var baseInfo = ItemTipUtility.mainTipData.baseInfo; var config = ItemConfig.Get(baseInfo.itemId); m_ItemName.text = config.ItemName; m_ItemName.color = UIHelper.GetUIColor(config.ItemColor); m_Label.SetActive(false); //if (baseInfo.isAuction) //{ // m_Label.SetActive(true); // m_Label.SetSprite("Item_Auction_2"); // m_Label.gray = baseInfo.auctionSurplusTime <= 0; //} //else //{ // m_Label.SetActive(false); //} } private void DisplayBaseProperty() { m_BaseProperty.Display(ItemTipUtility.mainTipData.petMountBaseProperty); } private void DisplaySkills() { var baseInfo = ItemTipUtility.mainTipData.baseInfo; var config = ItemConfig.Get(baseInfo.itemId); switch (config.Type) { case 26: m_PetMountSkill.Display(ShowType.Pet, baseInfo.itemId); m_PetMountSkill.SetActive(true); Line.SetActive(true); break; case 41: case 42: m_PetMountSkill.SetActive(false); Line.SetActive(false); //m_PetMountSkill.Display(ShowType.Mount, baseInfo.itemId); break; } } private void DisplayAuctionInfo() { m_AuctionWidget.SetActive(false); //var baseInfo = ItemTipUtility.mainTipData.baseInfo; //m_AuctionWidget.SetActive(baseInfo.isAuction); //if (baseInfo.isAuction) //{ // var overdueTime = TimeUtility.ServerNow.AddSeconds((double)baseInfo.auctionSurplusTime); // m_AuctionWidget.Display(overdueTime); //} } private void DisplayDescription() { var baseInfo = ItemTipUtility.mainTipData.baseInfo; m_DescriptionWidget.SetActive(!baseInfo.isAuction); if (!baseInfo.isAuction) { m_DescriptionWidget.Display(baseInfo.itemId); } } private void DisplayBuyItem() { m_BuyItemWidget.SetActive(ItemTipUtility.mainTipData.goodId > 0); if (ItemTipUtility.mainTipData.goodId > 0) { m_BuyItemWidget.Display(ItemTipUtility.mainTipData.goodId); } } private void DisplayModel() { var baseInfo = ItemTipUtility.mainTipData.baseInfo; var config = ItemConfig.Get(baseInfo.itemId); m_Model.SetActive(config.Type == 26 || config.Type == 41 || config.Type == 42); switch (config.Type) { case 26: var petId = PetInfoConfig.GetItemUnLockPet(baseInfo.itemId); var petConfig = PetInfoConfig.Get(petId); m_Model.Display(petId, ModelShowType.Pet, petConfig.ShowFightPower); break; case 41: case 42: var horseId = HorseConfig.GetItemUnLockHorse(baseInfo.itemId); var horseConfig = HorseConfig.Get(horseId); m_Model.Display(horseConfig.Model, ModelShowType.Mount, mountModel.GetMountSkinFightPower(horseId)); break; } } private void DisplayOperateButton() { var operates = ItemTipUtility.mainTipData.operates; var guid = ItemTipUtility.mainTipData.guid; if (operates.IsNullOrEmpty()) { for (int i = 0; i < m_OperateButtons.Length; i++) { var button = m_OperateButtons[i]; button.SetActive(false); } } else { for (int i = 0; i < m_OperateButtons.Length; i++) { var button = m_OperateButtons[i]; if (i < operates.Count) { button.SetActive(true); button.Bind("PetMountTipWin", operates[i], guid); } else { button.SetActive(false); } } } } private void DisplayGetWays() { var getWay = ItemTipUtility.mainTipData.getWay; var hasGetWay = !getWay.ways.IsNullOrEmpty(); m_GetWayEntranceWidget.SetActive(hasGetWay); m_GetWaysWidget.SetActive(false); if (hasGetWay) { m_GetWayEntranceWidget.SetListener(() => { if (!m_GetWaysWidget.gameObject.activeSelf) { m_GetWaysWidget.Display(getWay); m_GetWaysWidget.Bind("PetMountTipWin"); } else { m_GetWaysWidget.Hide(); } }); if (getWay.defaultUnfold) { m_GetWaysWidget.Display(getWay); m_GetWaysWidget.Bind("PetMountTipWin"); } } } IEnumerator Co_DelayDisplay() { yield return null; yield return null; m_Pivot.localScale = Vector3.one; DisplayBaseInfo(); DisplayBaseProperty(); DisplaySkills(); DisplayAuctionInfo(); DisplayDescription(); DisplayBuyItem(); DisplayGetWays(); DisplayModel(); DisplayOperateButton(); } public enum ShowType { None, Pet, Mount, //后续IL开发添加预设 default1, default2, default3, default4, default5, } } }