//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, February 08, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System;
|
using TableConfig;
|
|
namespace Snxxz.UI
|
{
|
|
public class InGamePushContainer : MonoBehaviour
|
{
|
[SerializeField] BetterItemGetBehaviour m_BetterEquipPusher;
|
[SerializeField] RealmBetterEquipBehaviour m_RealmBetterEquipPusher;
|
[SerializeField] PreciousItemGetBehaviour m_PreciousItemPusher;
|
[SerializeField] FindPreciousBossRebornBehaviour m_BossRebornPusher;
|
[SerializeField] ItemUseBehaviour m_itemUsePusher;
|
[SerializeField] ItemOverdueBehaviour m_itemOverduePusher;
|
[SerializeField] ResourceBackBehaviour m_ResourceBackBehaviour;
|
[SerializeField] EquipDecomposeBehaviour m_DecomposePusher;
|
[SerializeField] OffLineTimeLackBehaviour m_OffLineTimeLackBehaviour;
|
[SerializeField] DungeonGuardCheckBehaviour m_DungeonGuardBehaviour;
|
[SerializeField] FirstChargeTrialBehaviour m_FirstChargeTrialBehaviour;
|
|
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
BetterEquipGetModel betterEquipGetModel { get { return ModelCenter.Instance.GetModel<BetterEquipGetModel>(); } }
|
RealmBetterEquipModel realmEquipModel { get { return ModelCenter.Instance.GetModel<RealmBetterEquipModel>(); } }
|
PreciousItemGetModel preciousItemGetModel { get { return ModelCenter.Instance.GetModel<PreciousItemGetModel>(); } }
|
ItemUseModel itemUseModel { get { return ModelCenter.Instance.GetModel<ItemUseModel>(); } }
|
ItemOverdueModel itemOverdue { get { return ModelCenter.Instance.GetModel<ItemOverdueModel>(); } }
|
ResourcesBackModel resourcesBack { get { return ModelCenter.Instance.GetModel<ResourcesBackModel>(); } }
|
PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
OffLineTimeLackModel offLineTimeLackModel { get { return ModelCenter.Instance.GetModel<OffLineTimeLackModel>(); } }
|
GuardModel guardModel { get { return ModelCenter.Instance.GetModel<GuardModel>(); } }
|
FirstTimeRechargeModel firstTimeRechargeModel { get { return ModelCenter.Instance.GetModel<FirstTimeRechargeModel>(); } }
|
|
public void Init()
|
{
|
CheckBetterEquip();
|
CheckRealmBetterEquip();
|
CheckPreciousItem();
|
CheckBossReborn();
|
CheckItemUse();
|
CheckItemOverdue();
|
ResourcesBackShow();
|
CheckEquipDecompose();
|
CheckOffLineLack();
|
CheckDungeonGuard();
|
FirstChargeTrialShow();
|
playerPack.RefreshDecomAttrAct += CheckEquipDecompose;
|
betterEquipGetModel.showEquipRefreshEvent += CheckBetterEquip;
|
realmEquipModel.showEquipRefreshEvent += CheckRealmBetterEquip;
|
preciousItemGetModel.showItemRefreshEvent += CheckPreciousItem;
|
findPreciousModel.bossRebornNotifyChangeEvent += CheckBossReborn;
|
itemUseModel.showItemRefreshEvent += CheckItemUse;
|
itemOverdue.showItemRefreshEvent += CheckItemOverdue;
|
NewBieCenter.Instance.guideBeginEvent += OnNewBieGuideBegin;
|
guardModel.onDungeonEquipGuardEvent += CheckDungeonGuard;
|
firstTimeRechargeModel.IsTipShowEvent += FirstChargeTrialShow;
|
}
|
|
public void UnInit()
|
{
|
playerPack.RefreshDecomAttrAct -= CheckEquipDecompose;
|
betterEquipGetModel.showEquipRefreshEvent -= CheckBetterEquip;
|
preciousItemGetModel.showItemRefreshEvent -= CheckPreciousItem;
|
findPreciousModel.bossRebornNotifyChangeEvent -= CheckBossReborn;
|
itemUseModel.showItemRefreshEvent -= CheckItemUse;
|
NewBieCenter.Instance.guideBeginEvent -= OnNewBieGuideBegin;
|
guardModel.onDungeonEquipGuardEvent -= CheckDungeonGuard;
|
firstTimeRechargeModel.IsTipShowEvent -= FirstChargeTrialShow;
|
realmEquipModel.showEquipRefreshEvent -= CheckRealmBetterEquip;
|
}
|
|
|
private void CheckRealmBetterEquip()
|
{
|
if (string.IsNullOrEmpty(realmEquipModel.currentEquipGuid))
|
{
|
m_RealmBetterEquipPusher.gameObject.SetActive(false);
|
}
|
else
|
{
|
if (betterEquipGetModel.ShowBetterEquipAble())
|
{
|
m_RealmBetterEquipPusher.gameObject.SetActive(true);
|
m_RealmBetterEquipPusher.ShowBetterEquip();
|
}
|
else
|
{
|
m_RealmBetterEquipPusher.gameObject.SetActive(false);
|
}
|
}
|
}
|
|
private void CheckBetterEquip()
|
{
|
if (string.IsNullOrEmpty(betterEquipGetModel.currentEquipGuid))
|
{
|
m_BetterEquipPusher.gameObject.SetActive(false);
|
}
|
else
|
{
|
if (betterEquipGetModel.ShowBetterEquipAble())
|
{
|
m_BetterEquipPusher.gameObject.SetActive(true);
|
m_BetterEquipPusher.ShowBetterEquip();
|
}
|
else
|
{
|
m_BetterEquipPusher.gameObject.SetActive(false);
|
}
|
}
|
}
|
|
private void CheckPreciousItem()
|
{
|
if (preciousItemGetModel.currentShowItem == default(PreciousItemGetModel.PreciousItem))
|
{
|
m_PreciousItemPusher.gameObject.SetActive(false);
|
}
|
else
|
{
|
if (preciousItemGetModel.ShowPreciousItemAble())
|
{
|
m_PreciousItemPusher.gameObject.SetActive(true);
|
m_PreciousItemPusher.ShowItem();
|
}
|
else
|
{
|
m_PreciousItemPusher.gameObject.SetActive(false);
|
}
|
}
|
}
|
|
private void CheckItemUse()
|
{
|
if (itemUseModel.currentShowItem == default(ItemUseModel.UseItem))
|
{
|
m_itemUsePusher.gameObject.SetActive(false);
|
}
|
else
|
{
|
if (itemUseModel.ShowUseItemAble())
|
{
|
m_itemUsePusher.gameObject.SetActive(true);
|
m_itemUsePusher.ShowItem();
|
|
}
|
else
|
{
|
m_itemUsePusher.gameObject.SetActive(false);
|
}
|
}
|
}
|
|
private void CheckItemOverdue()
|
{
|
if (itemOverdue.currentShowItem == default(ItemOverdueModel.OverdueItem))
|
{
|
m_itemOverduePusher.gameObject.SetActive(false);
|
}
|
else
|
{
|
if (itemOverdue.ShowUseItemAble())
|
{
|
m_itemOverduePusher.gameObject.SetActive(true);
|
m_itemOverduePusher.ShowItem();
|
}
|
else
|
{
|
m_itemOverduePusher.gameObject.SetActive(false);
|
}
|
}
|
}
|
|
private void CheckEquipDecompose()
|
{
|
if (playerPack.addDecomposeExp > 0
|
&& playerPack.isAutoDecompose)
|
{
|
m_DecomposePusher.gameObject.SetActive(true);
|
}
|
else
|
{
|
m_DecomposePusher.gameObject.SetActive(false);
|
}
|
}
|
|
private void CheckBossReborn()
|
{
|
if (findPreciousModel.currentBossNotify == 0)
|
{
|
m_BossRebornPusher.gameObject.SetActive(false);
|
}
|
else
|
{
|
if (!BossFakeLineUtility.Instance.IsBossVisible(findPreciousModel.currentBossNotify))
|
{
|
var findPreciousType = findPreciousModel.GetBossFindPreciousType(findPreciousModel.currentBossNotify);
|
|
var show = true;
|
var mapId = PlayerDatas.Instance.baseData.MapID;
|
switch (findPreciousType)
|
{
|
case FindPreciousModel.FindPreciousType.WorldBoss:
|
show = !GeneralConfig.Instance.worldBossNoRebornRemindMaps.Contains(mapId);
|
break;
|
case FindPreciousModel.FindPreciousType.BossHome:
|
show = !GeneralConfig.Instance.bossHomeNoRebornRemindMaps.Contains(mapId);
|
break;
|
case FindPreciousModel.FindPreciousType.ElderGodArea:
|
show = !GeneralConfig.Instance.elderGodNoRebornRemindMaps.Contains(mapId);
|
break;
|
case FindPreciousModel.FindPreciousType.DemonJar:
|
show = !GeneralConfig.Instance.demonJarNoRebornRemindMaps.Contains(mapId);
|
break;
|
}
|
|
if (show)
|
{
|
m_BossRebornPusher.DisplayRebornBoss();
|
m_BossRebornPusher.gameObject.SetActive(true);
|
}
|
}
|
else
|
{
|
findPreciousModel.ReportConfirmBossRebornNotify(findPreciousModel.currentBossNotify);
|
}
|
}
|
}
|
|
private void CheckOffLineLack()
|
{
|
if (PlayerDatas.Instance.baseData.LV >= GeneralConfig.Instance.OffLineTimeLackRemendLevelLimit
|
&& !offLineTimeLackModel.hasRemindOffLineTimeLack
|
&& PlayerDatas.Instance.baseData.HappyPoint < 5 * 3600)
|
{
|
m_OffLineTimeLackBehaviour.gameObject.SetActive(true);
|
}
|
else
|
{
|
m_OffLineTimeLackBehaviour.gameObject.SetActive(false);
|
}
|
}
|
|
private void CheckDungeonGuard()
|
{
|
if (guardModel.fairyLandGuard && guardModel.fairyLandItemModel != null)
|
{
|
m_DungeonGuardBehaviour.gameObject.SetActive(true);
|
m_DungeonGuardBehaviour.Display(guardModel.fairyLandItemModel);
|
}
|
else
|
{
|
m_DungeonGuardBehaviour.gameObject.SetActive(false);
|
}
|
}
|
|
private void OnNewBieGuideBegin()
|
{
|
var guideConfig = ConfigManager.Instance.GetTemplate<GuideConfig>(NewBieCenter.Instance.currentGuide);
|
switch ((GuideTriggerType)guideConfig.TriggerType)
|
{
|
case GuideTriggerType.EquipQuality:
|
m_BetterEquipPusher.transform.SetAsLastSibling();
|
break;
|
case GuideTriggerType.Item:
|
m_PreciousItemPusher.transform.SetAsLastSibling();
|
break;
|
default:
|
break;
|
}
|
|
}
|
|
private void ResourcesBackShow()
|
{
|
if (resourcesBack.IsMainGo)
|
{
|
m_ResourceBackBehaviour.gameObject.SetActive(true);
|
}
|
else
|
{
|
m_ResourceBackBehaviour.gameObject.SetActive(false);
|
}
|
}
|
|
private void FirstChargeTrialShow()
|
{
|
if (firstTimeRechargeModel.IsTipShow)
|
{
|
m_FirstChargeTrialBehaviour.gameObject.SetActive(true);
|
}
|
else
|
{
|
m_FirstChargeTrialBehaviour.gameObject.SetActive(false);
|
}
|
|
}
|
}
|
|
}
|
|
|
|