using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RidingPetContentionWin : Window { [SerializeField] Button m_MountsGoToButton; [SerializeField] Button m_SpiritPetGoToButton; [SerializeField] ContainerRidingPet m_ContainerMounts; [SerializeField] ContainerRidingPet m_ContainerSpiritPet; [SerializeField] RidingPetBottomTip m_RidingPetBottomTip; MapModel mapModel { get { return ModelCenter.Instance.GetModel(); } } RidingPetBossModel ridingPetBossModel { get { return ModelCenter.Instance.GetModel(); } } DungeonModel dungeondel { get { return ModelCenter.Instance.GetModel(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } private float m_Timer = 0; protected override void AddListeners() { m_MountsGoToButton.AddListener(GoToKillMountsBoss); m_SpiritPetGoToButton.AddListener(GoToKillSpiritPetBoss); } protected override void BindController() { } protected override void OnAfterClose() { m_ContainerMounts.StopShowBossRawImage(); m_ContainerSpiritPet.StopShowAnotherBossImage(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { ridingPetBossModel.GetRidingPetBossLineDictAction -= GetRidingBossDictPackageAction; } protected override void OnPreOpen() { m_ContainerMounts.DisplayBossName(); m_ContainerSpiritPet.DisplayBossName(); ridingPetBossModel.GetRidingPetBossLineDictAction += GetRidingBossDictPackageAction; mapModel.RequestQueryMapLineState(RidingPetBossModel.RIDINGPETBOSS_MAP); GetRidingBossDictPackageAction(); m_ContainerMounts.DisplayBossRawImage(); m_ContainerSpiritPet.DisplayAnotherBossRawImage(); m_ContainerMounts.DisplayRewardItem(); m_ContainerSpiritPet.DisplayRewardItem(); WindowCenter.Instance.windowBeforeCloseEvent += WindowBeforeCloseEvent; } private void WindowBeforeCloseEvent(Window _window) { if (_window is PetMatInfoWin) { m_ContainerMounts.DisplayBossRawImage(); m_ContainerSpiritPet.DisplayAnotherBossRawImage(); } } private void GoToKillMountsBoss() { dungeondel.SingleChallenge(RidingPetBossModel.RIDINGPETBOSS_MAP, m_ContainerMounts.bossIdIndex); } private void GoToKillSpiritPetBoss() { dungeondel.SingleChallenge(RidingPetBossModel.RIDINGPETBOSS_MAP, m_ContainerSpiritPet.bossIdIndex); } protected override void LateUpdate() { m_Timer += Time.deltaTime; if (m_Timer > 5) { mapModel.RequestQueryMapLineState(RidingPetBossModel.RIDINGPETBOSS_MAP); m_Timer -= 5; } if (m_Timer > 1) { UpdateRidingPetBottomTip(); m_Timer -= 1; } } public void GetRidingBossDictPackageAction() { switch (dailyQuestModel.GetQuestState((int)DailyQuestType.RidingPetActivity)) { case DailyQuestModel.DailyQuestState.Completed: case DailyQuestModel.DailyQuestState.Normal: m_ContainerMounts.DisplaySpiritPetHP(); m_ContainerSpiritPet.DisplaySpiritPetHP(); m_MountsGoToButton.interactable = true; m_SpiritPetGoToButton.interactable = true; break; default: m_ContainerMounts.DisplayActivityTime(); m_ContainerSpiritPet.DisplayActivityTime(); m_MountsGoToButton.interactable = false; m_SpiritPetGoToButton.interactable = false; break; } } public void UpdateRidingPetBottomTip() { switch (dailyQuestModel.GetQuestState((int)DailyQuestType.RidingPetActivity)) { case DailyQuestModel.DailyQuestState.Completed: case DailyQuestModel.DailyQuestState.Normal: m_RidingPetBottomTip.DisplayBottomRemainTimeTip(); break; default: m_RidingPetBottomTip.DisplayBottomStartTip(); break; } } } }