From 37fe958376a003a36154bf9e4b456397f5c254b1 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 12 四月 2019 19:46:18 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/FindPrecious/WorldBossModel.cs | 67 +++++++++++++++++++++++++++------
1 files changed, 54 insertions(+), 13 deletions(-)
diff --git a/System/FindPrecious/WorldBossModel.cs b/System/FindPrecious/WorldBossModel.cs
index f71a9fa..6a5c0c6 100644
--- a/System/FindPrecious/WorldBossModel.cs
+++ b/System/FindPrecious/WorldBossModel.cs
@@ -3,13 +3,11 @@
using UnityEngine;
using System;
-
namespace Snxxz.UI
{
[XLua.LuaCallCSharp]
- public class WorldBossModel : Model
+ public class WorldBossModel : Model
{
-
public const int WORLDBOSS_REDPOINT = 76001;
int m_SelectedBoss = 0;
@@ -64,6 +62,7 @@
public Redpoint worldBossRedPoint = new Redpoint(FindPreciousModel.FINDPRECIOUS_REDPOINTID, WORLDBOSS_REDPOINT);
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
+ RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
public override void Init()
{
@@ -82,13 +81,10 @@
public List<int> GetWorldBosses()
{
var activedBossIds = new List<int>();
- var mapModel = ModelCenter.Instance.GetModel<MapModel>();
for (int i = 0; i < sortedBossIds.Count; i++)
{
var bossId = sortedBossIds[i];
- var config = WorldBossConfig.Get(bossId);
- var mapId = config.MapID;
- if (mapModel.IsMapUnlocked(mapId))
+ if (IsBossUnLockedOrUnlockSoon(bossId))
{
activedBossIds.Add(bossId);
}
@@ -100,7 +96,6 @@
public List<int> GetWorldBosses(int _mapId)
{
var bosses = new List<int>();
- var mapModel = ModelCenter.Instance.GetModel<MapModel>();
for (int i = 0; i < sortedBossIds.Count; i++)
{
var bossId = sortedBossIds[i];
@@ -120,7 +115,7 @@
return worldBosses.ContainsKey(_bossId) && worldBosses[_bossId].isUnLocked;
}
- public int GetLatestUnLockBoss()
+ public int GetRecommendBoss()
{
var playerLevel = PlayerDatas.Instance.baseData.LV;
for (int i = sortedBossIds.Count - 1; i >= 0; i--)
@@ -136,6 +131,47 @@
return sortedBossIds[0];
}
+ public int GetBossUnLockRealm(int bossId)
+ {
+ if (!worldBosses.ContainsKey(bossId))
+ {
+ return 0;
+ }
+
+ var config = NPCConfig.Get(bossId);
+ var realmStage = realmModel.GetRealmStage(config.Realm);
+ var realms = new List<int>();
+ if (realmModel.TryGetRealmStages(realmStage, out realms))
+ {
+ return realms[0];
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ private bool IsBossUnLockedOrUnlockSoon(int bossId)
+ {
+ var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var myRealmStage = realmModel.GetRealmStage(myRealmLevel);
+
+ var config = NPCConfig.Get(bossId);
+ var bossRealmStage = realmModel.GetRealmStage(config.Realm);
+
+ if (myRealmStage >= bossRealmStage)
+ {
+ return true;
+ }
+
+ if (myRealmStage + 1 >= bossRealmStage)
+ {
+ return true;
+ }
+
+ return false;
+ }
+
private void ParseConfig()
{
var worldBossConfigs = WorldBossConfig.GetValues();
@@ -147,18 +183,23 @@
sortedBossIds.AddRange(worldBosses.Keys);
sortedBossIds.Sort(WorldBossData.LevelCompare);
}
+
}
public class WorldBossData
{
- MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
+ RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
public int id { get; private set; }
public bool isUnLocked {
get {
- var config = WorldBossConfig.Get(id);
- var mapUnLocked = mapModel.IsMapUnlocked(config.MapID);
- return mapUnLocked;
+ var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var myRealmStage = realmModel.GetRealmStage(myRealmLevel);
+
+ var config = NPCConfig.Get(id);
+ var bossRealmStage = realmModel.GetRealmStage(config.Realm);
+
+ return myRealmStage >= bossRealmStage;
}
}
--
Gitblit v1.8.0