From 41a6e87783d042bf3e0ecebfa772443f2b5ed95d Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 06 六月 2019 17:22:55 +0800
Subject: [PATCH] 7132 【2.0】【开发】打宝界面优化2
---
System/FindPrecious/BossHomeModel.cs | 73 +++++++++++++++++++++++++++++++-----
1 files changed, 63 insertions(+), 10 deletions(-)
diff --git a/System/FindPrecious/BossHomeModel.cs b/System/FindPrecious/BossHomeModel.cs
index ba3235b..602e7c7 100644
--- a/System/FindPrecious/BossHomeModel.cs
+++ b/System/FindPrecious/BossHomeModel.cs
@@ -7,9 +7,10 @@
namespace Snxxz.UI
{
[XLua.LuaCallCSharp]
- public class BossHomeModel : Model, IMapInitOk
+ public class BossHomeModel : Model, IMapInitOk
{
public const int BOSSHOME_MAPID = 31020;
+ public const int BOSSHOME_REDPOINT = 76002;
int m_SelectedFloor = 0;
public int selectedFloor {
@@ -45,9 +46,24 @@
}
}
+ int m_WearyValue = 0;
+ public int wearyValue {
+ get { return m_WearyValue; }
+ set {
+ m_WearyValue = value;
+ UpdateRedpoint();
+ if (bossWearyValueChangeEvent != null)
+ {
+ bossWearyValueChangeEvent();
+ }
+ }
+ }
+
public event Action<int> bossHomeFloorSelectedEvent;
public event Action<int> bossSelectedEvent;
+ public event Action bossWearyValueChangeEvent;
+ public Redpoint bossHomeRedpoint = new Redpoint(FindPreciousModel.FINDPRECIOUS_REDPOINTID, BOSSHOME_REDPOINT);
Dictionary<int, BossHomeData> bossHomes = new Dictionary<int, BossHomeData>();
Dictionary<int, int> vipLackFloorCost = new Dictionary<int, int>();
List<int> sortedBosses = new List<int>();
@@ -56,10 +72,12 @@
public override void Init()
{
ParseConfig();
+ PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataChange;
}
public override void UnInit()
{
+ PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataChange;
}
public bool TryGetBossHomeData(int _layer, out BossHomeData _data)
@@ -127,6 +145,21 @@
{
return 0;
}
+ }
+
+ private void OnPlayerDataChange(PlayerDataType _type)
+ {
+ if (_type == PlayerDataType.VIPLv)
+ {
+ UpdateRedpoint();
+ }
+ }
+
+ private void UpdateRedpoint()
+ {
+ var count = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit) - m_WearyValue;
+ bossHomeRedpoint.count = count;
+ bossHomeRedpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
}
private void ParseConfig()
@@ -200,7 +233,7 @@
public void OnMapInitOk()
{
- var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
+ var dataMapId = MapUtility.GetDataMapId(PlayerDatas.Instance.baseData.MapID);
if (dataMapId == BOSSHOME_MAPID)
{
MapTransferUtility.Instance.MoveToNPC(selectedBoss);
@@ -213,29 +246,49 @@
public int id { get; private set; }
public List<int> bossIds = new List<int>();
+ FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
+
public BossHomeData(int _id)
{
this.id = _id;
}
+ public List<int> GetShowBosses()
+ {
+ var bosses = new List<int>();
+ for (var i = 0; i < bossIds.Count; i++)
+ {
+ var bossId = bossIds[i];
+ if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
+ {
+ bosses.Add(bossId);
+ }
+ }
+
+ if (bosses.Count == 0)
+ {
+ bosses.Add(bossIds[0]);
+ }
+
+ return bosses;
+ }
+
public int GetRecommendNpc()
{
- var playerLevel = PlayerDatas.Instance.baseData.LV;
- var recommendNpc = bossIds[bossIds.Count - 1];
-
- for (int i = 0; i < bossIds.Count; i++)
+ var recommendNpc = bossIds[0];
+ for (var i = bossIds.Count - 1; i >= 0; i--)
{
- var bossHomeConfig = BossHomeConfig.Get(bossIds[i]);
- var npcConfig = NPCConfig.Get(bossIds[i]);
- if (bossHomeConfig.MonsterType == 2 && playerLevel < npcConfig.NPCLV)
+ var bossId = bossIds[i];
+ var bossHomeConfig = BossHomeConfig.Get(bossId);
+ if (bossHomeConfig.MonsterType == 2 && findPreciousModel.IsBossUnlock(bossId))
{
recommendNpc = bossIds[i];
break;
}
}
+
return recommendNpc;
}
-
}
}
--
Gitblit v1.8.0