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<MapModel>(); } }
|
RidingPetBossModel ridingPetBossModel { get { return ModelCenter.Instance.GetModel<RidingPetBossModel>(); } }
|
DungeonModel dungeondel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
|
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;
|
}
|
}
|
}
|
}
|