少年修仙传客户端代码仓库
client_linchunjie
2018-08-20 5e5551e8e7630f816a68c7bbe554a7e0bfa8705f
System/MainInterfacePanel/InGamePushContainer.cs
@@ -1,283 +1,283 @@
//--------------------------------------------------------
//    [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] 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>(); } }
        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();
            CheckPreciousItem();
            CheckBossReborn();
            CheckItemUse();
            CheckItemOverdue();
            ResourcesBackShow();
            CheckEquipDecompose();
            CheckOffLineLack();
            CheckDungeonGuard();
            FirstChargeTrialShow();
            playerPack.RefreshDecomAttrAct += CheckEquipDecompose;
            betterEquipGetModel.showEquipRefreshEvent += CheckBetterEquip;
            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;
        }
        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);
            }
        }
    }
}
//--------------------------------------------------------
//    [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] 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>(); } }
        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();
            CheckPreciousItem();
            CheckBossReborn();
            CheckItemUse();
            CheckItemOverdue();
            ResourcesBackShow();
            CheckEquipDecompose();
            CheckOffLineLack();
            CheckDungeonGuard();
            FirstChargeTrialShow();
            playerPack.RefreshDecomAttrAct += CheckEquipDecompose;
            betterEquipGetModel.showEquipRefreshEvent += CheckBetterEquip;
            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;
        }
        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);
            }
        }
    }
}