599 lines
22 KiB
C#
599 lines
22 KiB
C#
using UnityEngine;
|
||
using System.Collections;
|
||
using UnityEngine.UI;
|
||
using System.Collections.Generic;
|
||
using GCGame.Table;
|
||
using Games.Item;
|
||
|
||
|
||
// 是否可进阶判断 ??
|
||
public class AdvanceCanadvanceCtr
|
||
{
|
||
public static AdvanceCanadvanceCtr Instance;
|
||
public static AdvanceCanadvanceCtr GetInstance()
|
||
{
|
||
if (Instance == null)
|
||
Instance = new AdvanceCanadvanceCtr();
|
||
return Instance;
|
||
}
|
||
|
||
public bool IsAdvanceFuncOpen(int type)
|
||
{
|
||
switch (type)
|
||
{
|
||
case (int)AdvanceBase.AdvanceType.Ride:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.RideLevel == 0 || !CheckFuncOpen(8))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
case (int)AdvanceBase.AdvanceType.Piano:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.GodWeaponLevel == 0 || !CheckFuncOpen(9))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
case (int)AdvanceBase.AdvanceType.Wing:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.WingLevel == 0 || !CheckFuncOpen(10))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
case (int)AdvanceBase.AdvanceType.Qilinbi:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.WishLevel == 0 || !CheckFuncOpen(11))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
case (int)AdvanceBase.AdvanceType.Soul:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.SealLevel == 0 || !CheckFuncOpen(12))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
case (int)AdvanceBase.AdvanceType.Mask:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.MaskLevel == 0 || !CheckFuncOpen(13))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
case (int)AdvanceBase.AdvanceType.Huopao:
|
||
if (GameManager.gameManager.PlayerDataPool.m_AdvanceData.CrownLevel == 0 || !CheckFuncOpen(14))
|
||
{
|
||
return false;
|
||
}
|
||
break;
|
||
}
|
||
return true;
|
||
}
|
||
|
||
private bool CheckFuncOpen(int id)
|
||
{
|
||
Tab_FunctionOpen table = TableManager.GetFunctionOpenByID(id);
|
||
if (table != null)
|
||
{
|
||
//return table.OpenServerDay <= GlobalData.OpenServerDays && table.OpenVipLv <= GameManager.gameManager.PlayerDataPool.VipCost
|
||
// && table.OpenLevel <= GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level;
|
||
if (table.OpenServerDay > GlobalData.OpenServerDays)
|
||
{
|
||
var str = StrDictionary.GetClientDictionaryString("#{6450}", table.OpenServerDay, table.Name );
|
||
GUIData.AddNotifyData(str);
|
||
return false;
|
||
}
|
||
if (table.OpenLevel > GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level)
|
||
{
|
||
var str = StrDictionary.GetClientDictionaryString("#{6451}", table.OpenLevel.ToString(), table.Name );
|
||
GUIData.AddNotifyData(str);
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//判断可以进阶的类型显示对应的Icon 背包更新的时候判断
|
||
public void JudgeShowCanAdvanceIcon()
|
||
{
|
||
if(canAdvanceItemDic.Count == 0)
|
||
{
|
||
GetCanAdvanceitemfunc(); //获取可以用来进阶的物品ID
|
||
}
|
||
|
||
GameItemContainer Container = GameManager.gameManager.PlayerDataPool.GetItemContainer(GameItemContainer.Type.TYPE_BACKPACK);
|
||
var itemList = Container.GetList();
|
||
var backPack = GameManager.gameManager.PlayerDataPool.BackPack;
|
||
List<int> needShowCanAdvanceList = new List<int>();
|
||
for (int index = 0; index < itemList.Count; index++)
|
||
{
|
||
GameItem item = itemList[index];
|
||
//根据ID获取道具对应的功能
|
||
if (item.DataID != -1 && canAdvanceItemDic.ContainsKey(item.DataID) && !IsCleanWish(canAdvanceItemDic[item.DataID].advanceType))
|
||
{
|
||
//对应的进阶已经激活
|
||
if (GetAdvanceLevel(canAdvanceItemDic[item.DataID].advanceType) > 0)
|
||
{
|
||
if (IsItemEnough(canAdvanceItemDic[item.DataID].advanceType))
|
||
{
|
||
needShowCanAdvanceList.Add((int)canAdvanceItemDic[item.DataID].advanceType);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (ExtraFunTipRoot.Instance())
|
||
{
|
||
ExtraFunTipRoot.Instance().ShowOrHideTypeIcon(needShowCanAdvanceList);
|
||
}
|
||
}
|
||
|
||
private Dictionary<int, AdvanceItemFunc> canAdvanceItemDic = new Dictionary<int, AdvanceItemFunc>();
|
||
public struct AdvanceItemFunc
|
||
{
|
||
public AdvanceBase.AdvanceType advanceType; //对应的进阶类型
|
||
public bool isClean;
|
||
public AdvanceItemFunc(AdvanceBase.AdvanceType _AdvanceType, bool _isClean)
|
||
{
|
||
advanceType = _AdvanceType;
|
||
isClean = _isClean;
|
||
}
|
||
}
|
||
|
||
public bool IsCleanWish(AdvanceBase.AdvanceType type)
|
||
{
|
||
int advanceBaseId = ((int)type + 1) * 1000 + GetAdvanceLevel(type);
|
||
var advanceBase = TableManager.GetAdvanceBaseByID(advanceBaseId, 0);
|
||
if(advanceBase != null)
|
||
{
|
||
return advanceBase.DayDecWishValuePercent > 0 ? true : false;
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//获取跟进阶有关的Item的信息
|
||
public void GetCanAdvanceitemfunc()
|
||
{
|
||
var baseTabDic = TableManager.GetAdvanceBase();
|
||
foreach(var tab in baseTabDic.Values)
|
||
{
|
||
if(!canAdvanceItemDic.ContainsKey(tab.AdvanceCostItemId) && tab.AdvanceCostItemId != -1)
|
||
{
|
||
AdvanceBase.AdvanceType advanceType = (AdvanceBase.AdvanceType)((tab.Id - tab.Level) / 1000 - 1);
|
||
AdvanceItemFunc func = new AdvanceItemFunc(advanceType, tab.DayDecWishValuePercent > 0 ? true : false);
|
||
canAdvanceItemDic.Add(tab.AdvanceCostItemId, func);
|
||
}
|
||
}
|
||
}
|
||
|
||
public bool IsItemEnough(AdvanceBase.AdvanceType type)
|
||
{ //是否会被清空 数量是否足够
|
||
int advanceBaseId = -1;
|
||
if (GetAdvanceLevel(type) != -1)
|
||
advanceBaseId = ((int)type + 1) * 1000 + GetAdvanceLevel(type) + 1; //消耗判断的是下一个ID的
|
||
Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(advanceBaseId, 0);
|
||
if (advanceBase != null)
|
||
{
|
||
int needCostItemId = advanceBase.AdvanceCostItemId;
|
||
return advanceBase.AdvanceCostItemNum <= GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(needCostItemId) ? true : false;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public int GetAdvanceLevel(AdvanceBase.AdvanceType type)
|
||
{
|
||
switch(type)
|
||
{
|
||
case AdvanceBase.AdvanceType.Wing:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.WingLevel;
|
||
case AdvanceBase.AdvanceType.Ride:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.RideLevel ;
|
||
case AdvanceBase.AdvanceType.Piano:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.GodWeaponLevel;
|
||
case AdvanceBase.AdvanceType.Qilinbi:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.WishLevel;
|
||
case AdvanceBase.AdvanceType.Soul:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.SealLevel;
|
||
case AdvanceBase.AdvanceType.Mask:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.MaskLevel;
|
||
case AdvanceBase.AdvanceType.Huopao:
|
||
return GameManager.gameManager.PlayerDataPool.m_AdvanceData.CrownLevel;
|
||
default:
|
||
return -1;
|
||
}
|
||
}
|
||
}
|
||
|
||
public class AdvanceInfo
|
||
{
|
||
public int baseId; // 对应表ID
|
||
public int type = -1; // 进阶类型
|
||
public int level = 0; // 等级
|
||
public int wish = 0; // 祝福值
|
||
public int SoulDan = 0; // 进阶之魂使用数量
|
||
public int SpiritDan = 0; // 进阶之灵使用数量
|
||
public int combatValue = 0; // 总战力
|
||
public List<int> skillId; // 技能id
|
||
public int _RemainAdvanceItemCount; //剩余进阶道具数量
|
||
|
||
public AdvanceInfo() { }
|
||
public AdvanceInfo(int baseId, int type, int level, int wish, int SoulDan, int SpiritDan, int combatValue, List<int> skillList, int remainAdvanceItemCount)
|
||
{
|
||
this.baseId = baseId;
|
||
this.type = type;
|
||
this.level = level;
|
||
this.wish = wish;
|
||
this.SoulDan = SoulDan;
|
||
this.SpiritDan = SpiritDan;
|
||
this.combatValue = combatValue;
|
||
_RemainAdvanceItemCount = remainAdvanceItemCount;
|
||
skillId = new List<int>();
|
||
skillId.AddRange(skillList);
|
||
}
|
||
|
||
public void AddSkill(int skillID)
|
||
{
|
||
Tab_AdvanceSkill tab_AdvanceSkill = TableManager.GetAdvanceSkillByID(skillID, 0);
|
||
if (tab_AdvanceSkill == null)
|
||
return;
|
||
for(int i=0;i< skillId.Count;i++)
|
||
{
|
||
Tab_AdvanceSkill tabAdvanceSkill = TableManager.GetAdvanceSkillByID(skillId[i], 0);
|
||
if (tabAdvanceSkill != null && tabAdvanceSkill.Type == tab_AdvanceSkill.Type && tabAdvanceSkill.Index == tab_AdvanceSkill.Index)
|
||
{
|
||
skillId[i] = skillID;
|
||
}
|
||
}
|
||
}
|
||
|
||
public void InitSkill(int advanceType)
|
||
{
|
||
if (skillId != null)
|
||
skillId.Clear();
|
||
else
|
||
skillId = new List<int>();
|
||
|
||
Dictionary<int, Tab_AdvanceSkill> tab_AdvanceSkills = TableManager.GetAdvanceSkill();
|
||
foreach(var skill in tab_AdvanceSkills)
|
||
{
|
||
if(skill.Value.Type == advanceType && skill.Value.SkillLevel == 0 && GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession == skill.Value.NeedCareer)
|
||
{
|
||
skillId.Add(skill.Key);
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
//进阶返回
|
||
public class AdvanceRetInfo
|
||
{
|
||
public int type;
|
||
public int level;
|
||
public int wish;
|
||
public bool isCrit; //是否暴击
|
||
public int incWish; //增长的祝福值,大于0就是成功。
|
||
public int remainAdvanceItemCount;
|
||
public AdvanceRetInfo() { }
|
||
public AdvanceRetInfo(int type, int level, int wish, int isCrit, int incWish, int remainAdvanceItemCount) {
|
||
this.type = type;
|
||
this.level = level;
|
||
this.wish = wish;
|
||
this.isCrit = isCrit == 1 ? true : false;
|
||
this.incWish = incWish;
|
||
this.remainAdvanceItemCount = remainAdvanceItemCount;
|
||
}
|
||
}
|
||
|
||
|
||
public class AdvanceBase : MonoBehaviour {
|
||
|
||
public static AdvanceBase Instance;
|
||
private void Awake()
|
||
{
|
||
Instance = this;
|
||
}
|
||
|
||
private void OnDestroy()
|
||
{
|
||
Instance = null;
|
||
}
|
||
|
||
protected int m_BaseId; // 当前对应的模型索引ID(用于读取对应的描述,需要自己计算)
|
||
protected int m_level; // 当前对应的等级((进阶类型+1)*1000 + 等级 == curBaseId)
|
||
protected int m_WishValue; // 当前祝福值
|
||
protected int m_InjectionSoulItemUsedCount; // 进阶之魂使用的数量
|
||
protected int m_InjectionSpiritualItemUsedCount; // 进阶之灵使用过的数量
|
||
protected int m_TotalCombatValue; // 总战力
|
||
protected int m_AdvanceGrage; // 当前进阶等阶
|
||
protected List<int> m_SkillList = new List<int>();
|
||
|
||
public List<GameObject> pagePanels; // 三个界面预设数组
|
||
public bool hasOpenUI = false; // 是否有打开的界面,信息、进阶、幻化的其中一个
|
||
|
||
public AdvanceType m_AdvanceType; // 当前进阶界面类型
|
||
public AdvanceMenuItemPanelCtr menuItemPanelCtr; // 右侧菜单栏
|
||
|
||
public AdvanceShowPanelCtr showPanel; // 信息界面
|
||
public AdvancePanelCtr advancePanel; // 进阶界面
|
||
public AdvanceFashionPanelCtr fashionPanel; // 幻化界面
|
||
|
||
public enum AdvanceType
|
||
{
|
||
Invalid = -1,
|
||
Ride = 0, // 坐骑
|
||
Piano = 1, // 竖琴
|
||
Wing = 2, // 翅膀
|
||
Qilinbi = 3, //麒麟臂
|
||
Soul = 4, // 魂器
|
||
Mask = 5, // 面具
|
||
Huopao = 6, //火炮
|
||
}
|
||
|
||
public enum ReqType
|
||
{
|
||
ADVANCE_OPTION = 1, // 进阶(参数1:goodId不是-1代表自动购买该道具, 参数2:需要购买的数量)
|
||
CHANGE_USEID = 2, // 幻化(参数1:目标id,进阶的id为等级)
|
||
REQ_INFO = 3, // 请求进阶信息(参数1:0进阶信息,1时装信息)
|
||
USE_DAN = 4, // 使用进阶丹(参数1:0进阶之魂,1进阶之灵)
|
||
SKILL_OPTION = 5, // 学习或升级技能(参数1:目标技能id)
|
||
}
|
||
|
||
public enum Advance_req_infotype
|
||
{
|
||
AdvanceInfo = 0,
|
||
FashionInfo = 1,
|
||
}
|
||
|
||
// 菜单按钮点击回调
|
||
public void OnMenuItemClick(AdvanceMenuItemPanelCtr.MenuItemOptType type)
|
||
{
|
||
hasOpenUI = true;
|
||
ShowMarkIcon(type);
|
||
CG_REQ_ADVANCE req = (CG_REQ_ADVANCE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_ADVANCE);
|
||
req.SetOptionType((int)ReqType.REQ_INFO);
|
||
req.SetType((int)m_AdvanceType);
|
||
req.SetParam2(-1);
|
||
switch (type) //请求对应页面的信息
|
||
{
|
||
case AdvanceMenuItemPanelCtr.MenuItemOptType.Show:
|
||
case AdvanceMenuItemPanelCtr.MenuItemOptType.Advance:
|
||
//请求当前进阶信息
|
||
req.SetParam1((int)Advance_req_infotype.AdvanceInfo);
|
||
break;
|
||
case AdvanceMenuItemPanelCtr.MenuItemOptType.Fashion:
|
||
//请求当前进阶信息
|
||
req.SetParam1((int)Advance_req_infotype.FashionInfo);
|
||
break;
|
||
}
|
||
req.SendPacket();
|
||
}
|
||
|
||
// 激活和目前MenuItem一致的Panel
|
||
public void ShowMarkIcon(AdvanceMenuItemPanelCtr.MenuItemOptType type)
|
||
{
|
||
for (int index = 0; index < pagePanels.Count; index++)
|
||
{
|
||
pagePanels[index].gameObject.SetActive(index == (int)type ? true : false);
|
||
}
|
||
|
||
//显示对应的按钮高亮
|
||
menuItemPanelCtr.ShowMenuItemMaskBG(type);
|
||
}
|
||
|
||
// 请求所有进阶数据信息
|
||
public void ReqAllAdvanceInfo()
|
||
{
|
||
CG_REQ_ADVANCE req = (CG_REQ_ADVANCE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_ADVANCE);
|
||
req.SetOptionType((int)AdvanceBase.ReqType.REQ_INFO);
|
||
req.SetType((int)m_AdvanceType);
|
||
req.SetParam2(-1);
|
||
req.SendPacket();
|
||
}
|
||
|
||
// 进阶信息
|
||
public AdvanceInfo m_advanceInfo;
|
||
|
||
// 接收返回的信息
|
||
public virtual void OnAdvanceInfoReceive(AdvanceInfo packet)
|
||
{
|
||
m_level = packet.level;
|
||
m_WishValue = packet.wish;
|
||
m_InjectionSoulItemUsedCount = packet.SoulDan;
|
||
m_InjectionSpiritualItemUsedCount = packet.SpiritDan;
|
||
m_TotalCombatValue = packet.combatValue;
|
||
m_SkillList = new List<int>();
|
||
m_SkillList.AddRange(packet.skillId);
|
||
|
||
// 计算对应的BaseId(进阶类型+1)*1000 + 等级 == curBaseId
|
||
m_BaseId = (packet.type + 1) * 1000 + packet.level;
|
||
|
||
// 获取当前进阶的等级
|
||
Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(m_BaseId, 0);
|
||
if (advanceBase != null)
|
||
{
|
||
m_AdvanceGrage = advanceBase.Grade;
|
||
}
|
||
|
||
m_advanceInfo = new AdvanceInfo(m_BaseId, packet.type, packet.level, packet.wish, packet.SoulDan, packet.SpiritDan, packet.combatValue, packet.skillId, packet._RemainAdvanceItemCount);
|
||
SetCurAdvanceInfo(m_BaseId);
|
||
InitAdvanceInfo();
|
||
|
||
UpdateRedPoint();
|
||
}
|
||
|
||
private int lastBaseId = -1; // 上一次显示的阶级ID
|
||
|
||
// 保存当前显示的进阶数据到玩家信息库
|
||
public void SetCurAdvanceInfo(int baseId)
|
||
{
|
||
if(lastBaseId == baseId)
|
||
{
|
||
return;
|
||
}
|
||
lastBaseId = baseId;
|
||
|
||
Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(baseId, 0);
|
||
if(advanceBase == null)
|
||
{
|
||
return;
|
||
}
|
||
|
||
int type = (advanceBase.Id - advanceBase.Level) / 1000 - 1;
|
||
|
||
switch(type)
|
||
{
|
||
case (int)AdvanceType.Ride:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.RideGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.RideLevel = advanceBase.Level;
|
||
break;
|
||
case (int)AdvanceType.Wing:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.WingGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.WingLevel = advanceBase.Level;
|
||
break;
|
||
case (int)AdvanceType.Piano:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.GodWeaponGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.GodWeaponLevel = advanceBase.Level;
|
||
break;
|
||
case (int)AdvanceType.Qilinbi:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.WishGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.WishLevel = advanceBase.Level;
|
||
break;
|
||
case (int)AdvanceType.Soul:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.SealGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.SealLevel = advanceBase.Level;
|
||
break;
|
||
case (int)AdvanceType.Mask:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.MaskGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.MaskLevel = advanceBase.Level;
|
||
break;
|
||
case (int)AdvanceType.Huopao:
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.CrownGrade = advanceBase.Grade;
|
||
GameManager.gameManager.PlayerDataPool.m_AdvanceData.CrownLevel = advanceBase.Level;
|
||
break;
|
||
}
|
||
|
||
//是否要显示可以进阶的Icon(刷新物品的时候也要显示)
|
||
if (AdvanceCanadvanceCtr.GetInstance() != null)
|
||
{
|
||
AdvanceCanadvanceCtr.GetInstance().JudgeShowCanAdvanceIcon();
|
||
}
|
||
}
|
||
|
||
#region 红点更新相关
|
||
|
||
public void UpdateRedPoint()
|
||
{
|
||
UpdateShowRedPoint();
|
||
UpdateAdvanceRedPoint();
|
||
}
|
||
|
||
public void UpdateShowRedPoint()
|
||
{
|
||
menuItemPanelCtr.UpdateRedPoint(0, showPanel.hasRedPoint());
|
||
}
|
||
|
||
public void UpdateAdvanceRedPoint()
|
||
{
|
||
menuItemPanelCtr.UpdateRedPoint(1, advancePanel.hasRedPoint());
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新红点
|
||
/// </summary>
|
||
/// <param name="adType">进阶类型</param>
|
||
public static void UpdateRedPoint(AdvanceType adType)
|
||
{
|
||
if (IsCanActiveRedIcon(adType) && (AdvanceShowPanelCtr.HasRedPoint(adType)
|
||
|| AdvancePanelCtr.HasRedPoint(adType)))
|
||
{
|
||
RedTipPoint.SetAdvanceRedTipState(adType, true);
|
||
}
|
||
else
|
||
{
|
||
RedTipPoint.SetAdvanceRedTipState(adType, false);
|
||
}
|
||
}
|
||
|
||
public static bool IsCanActiveRedIcon(AdvanceType type)
|
||
{
|
||
var functionOpenId = (int)type + 8; //0 --》 8
|
||
var functionOpenTab = TableManager.GetFunctionOpenByID(functionOpenId, 0);
|
||
if (functionOpenTab == null)
|
||
return false;
|
||
|
||
if(functionOpenTab.OpenLevel != 0)
|
||
{
|
||
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level >= functionOpenTab.OpenLevel
|
||
&& (GameManager.gameManager.PlayerDataPool.FunctionOpenState.ContainsKey(functionOpenId)
|
||
&& GameManager.gameManager.PlayerDataPool.FunctionOpenState[functionOpenId]))
|
||
{
|
||
return true;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if(Guide.Instance._FinishGuideID >= functionOpenTab.ShowGUIDId
|
||
&& (GameManager.gameManager.PlayerDataPool.FunctionOpenState.ContainsKey(functionOpenId)
|
||
&& GameManager.gameManager.PlayerDataPool.FunctionOpenState[functionOpenId]))
|
||
{
|
||
return true;
|
||
}
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
public static void UpdateAllRedPoint()
|
||
{
|
||
for (int i = 0; i <= (int)AdvanceType.Huopao; ++i)
|
||
{
|
||
UpdateRedPoint((AdvanceType)i);
|
||
}
|
||
|
||
if (AdvanceMountPanelCtr.Instance && AdvanceMountPanelCtr.Instance.gameObject.activeInHierarchy)
|
||
{
|
||
AdvanceMountPanelCtr.Instance.showPanel.ShowEquipRedIcon();
|
||
AdvanceMountPanelCtr.Instance.showPanel.ShowInjectRedIcon();
|
||
AdvanceMountPanelCtr.Instance.UpdateRedPoint();
|
||
}
|
||
|
||
}
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 初始化进阶界面数据:显示面板以及进阶面板
|
||
/// </summary>
|
||
public void InitAdvanceInfo()
|
||
{
|
||
showPanel.InitShowPanel(m_advanceInfo);
|
||
advancePanel.InitAdvancePanel(m_advanceInfo);
|
||
}
|
||
|
||
public void OnDisable()
|
||
{
|
||
hasOpenUI = false;
|
||
UIManager.CloseUI(UIInfo.MoneyInfoPanel);
|
||
}
|
||
|
||
|
||
// 刷新进阶界面的数据
|
||
public virtual void RefreshAdvancePanel(AdvanceRetInfo info)
|
||
{
|
||
showPanel.RefreshShowInfo(info);
|
||
advancePanel.RefreshAdvancePanelInfo(info);
|
||
}
|
||
|
||
public virtual void RefreshItemPanel()
|
||
{
|
||
advancePanel.itemPanel.RefreshOwnItemInfo();
|
||
}
|
||
|
||
public virtual void RefreshOwnValue()
|
||
{
|
||
|
||
}
|
||
|
||
public virtual void OnCloseBtnClick() { }
|
||
}
|