using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class RidingPetContentionWin : Window
|
{
|
[SerializeField] Button m_MountsGoToButton;
|
[SerializeField] Text m_MountGotoLabel;
|
[SerializeField] Button m_SpiritPetGoToButton;
|
[SerializeField] Text m_PetGotoLabel;
|
[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;
|
ridingPetBossModel.onBossStateRefresh -= OnBossStateRefresh;
|
}
|
|
protected override void OnPreOpen()
|
{
|
|
m_ContainerMounts.bossIdIndex = 0;
|
m_ContainerSpiritPet.bossIdIndex = 1;
|
|
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;
|
|
ridingPetBossModel.onBossStateRefresh += OnBossStateRefresh;
|
|
UpdateRidingPetBottomTip();
|
}
|
|
private void OnBossStateRefresh()
|
{
|
GetRidingBossDictPackageAction();
|
}
|
|
private void WindowBeforeCloseEvent(Window _window)
|
{
|
if (_window is PetMountTipWin)
|
{
|
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();
|
|
var isMountAlive = ridingPetBossModel.IsBossAlive(m_ContainerMounts.bossIdIndex);
|
var isPetAlive = ridingPetBossModel.IsBossAlive(m_ContainerSpiritPet.bossIdIndex);
|
|
m_MountsGoToButton.SetInteractable(m_MountGotoLabel, isMountAlive);
|
m_SpiritPetGoToButton.SetInteractable(m_PetGotoLabel, isPetAlive);
|
break;
|
default:
|
m_ContainerMounts.DisplayActivityTime();
|
m_ContainerSpiritPet.DisplayActivityTime();
|
m_MountsGoToButton.SetInteractable(m_MountGotoLabel, false);
|
m_SpiritPetGoToButton.SetInteractable(m_PetGotoLabel, 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;
|
}
|
}
|
}
|
}
|