From a2f60684672fa50c8793e9f548ccf57e23fc15e5 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期五, 12 四月 2019 14:15:22 +0800
Subject: [PATCH] 6490 【2.0】【前端】打宝界面和境界压制调整
---
Core/GameEngine/Model/TelPartialConfig/PartialLoadingBackGroundConfig.cs | 0
System/DogzDungeon/DogzDungeonWin.cs | 29 +++-
Lua/Gen/SnxxzUIWorldBossModelWrap.cs | 2
System/FindPrecious/PersonalBossWin.cs | 26 +++
System/FindPrecious/BossHomeWin.cs | 30 +++
System/FindPrecious/WorldBossModel.cs | 67 +++++++-
System/FindPrecious/WorldBossBreifInfoBehaviour.cs | 39 +++++
System/CrossServerBoss/CrossServerBossWin.cs | 33 +++-
Core/GameEngine/Model/Config/MapConfig.cs | 27 ++-
Core/GameEngine/Model/Config/MapConfig.cs.meta | 2
Core/GameEngine/Model/TelPartialConfig/PartialLoadingBackGroundConfig.cs.meta | 0
System/FindPrecious/WorldBossWin.cs | 36 +++-
System/FindPrecious/DemonJarWin.cs | 40 ++++-
System/FindPrecious/ElderGodAreaWin.cs | 25 +++
System/WorldMap/WorldMapUnLockTip.cs | 34 +++-
15 files changed, 302 insertions(+), 88 deletions(-)
diff --git a/Core/GameEngine/Model/Config/MapConfig.cs b/Core/GameEngine/Model/Config/MapConfig.cs
index 87188a5..e8847e4 100644
--- a/Core/GameEngine/Model/Config/MapConfig.cs
+++ b/Core/GameEngine/Model/Config/MapConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: Fish
-// [ Date ]: Thursday, February 14, 2019
+// [ Date ]: Friday, April 12, 2019
//--------------------------------------------------------
using System.Collections.Generic;
@@ -16,6 +16,7 @@
public readonly int MapID;
public readonly string Name;
public readonly int LV;
+ public readonly int realmLevel;
public readonly int MapFBType;
public readonly int LocalReborn;
public readonly int SkillReborn;
@@ -44,32 +45,34 @@
int.TryParse(tables[2],out LV);
- int.TryParse(tables[3],out MapFBType);
+ int.TryParse(tables[3],out realmLevel);
- int.TryParse(tables[4],out LocalReborn);
+ int.TryParse(tables[4],out MapFBType);
- int.TryParse(tables[5],out SkillReborn);
+ int.TryParse(tables[5],out LocalReborn);
- int.TryParse(tables[6],out CanRide);
+ int.TryParse(tables[6],out SkillReborn);
- int.TryParse(tables[7],out CanOutPet);
+ int.TryParse(tables[7],out CanRide);
- int.TryParse(tables[8],out TeamLimit);
+ int.TryParse(tables[8],out CanOutPet);
- string[] BornPointsStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ int.TryParse(tables[9],out TeamLimit);
+
+ string[] BornPointsStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
BornPoints = new Vector3[BornPointsStringArray.Length];
for (int i=0;i<BornPointsStringArray.Length;i++)
{
BornPoints[i]=BornPointsStringArray[i].Vector3Parse();
}
- int.TryParse(tables[10],out MainTaskID);
+ int.TryParse(tables[11],out MainTaskID);
- MapTaskText = tables[11];
+ MapTaskText = tables[12];
- int.TryParse(tables[12],out Camp);
+ int.TryParse(tables[13],out Camp);
- int.TryParse(tables[13],out AtkType);
+ int.TryParse(tables[14],out AtkType);
}
catch (Exception ex)
{
diff --git a/Core/GameEngine/Model/Config/MapConfig.cs.meta b/Core/GameEngine/Model/Config/MapConfig.cs.meta
index b9ef1ba..2f274ca 100644
--- a/Core/GameEngine/Model/Config/MapConfig.cs.meta
+++ b/Core/GameEngine/Model/Config/MapConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: db9da28a811a0af4db68188db3a20863
-timeCreated: 1550121374
+timeCreated: 1555048178
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/Core/GameEngine/Model/TelPartialConfig/ParticalLoadingBackGroundConfig.cs b/Core/GameEngine/Model/TelPartialConfig/PartialLoadingBackGroundConfig.cs
similarity index 100%
rename from Core/GameEngine/Model/TelPartialConfig/ParticalLoadingBackGroundConfig.cs
rename to Core/GameEngine/Model/TelPartialConfig/PartialLoadingBackGroundConfig.cs
diff --git a/Core/GameEngine/Model/TelPartialConfig/ParticalLoadingBackGroundConfig.cs.meta b/Core/GameEngine/Model/TelPartialConfig/PartialLoadingBackGroundConfig.cs.meta
similarity index 100%
rename from Core/GameEngine/Model/TelPartialConfig/ParticalLoadingBackGroundConfig.cs.meta
rename to Core/GameEngine/Model/TelPartialConfig/PartialLoadingBackGroundConfig.cs.meta
diff --git a/Lua/Gen/SnxxzUIWorldBossModelWrap.cs b/Lua/Gen/SnxxzUIWorldBossModelWrap.cs
index 436cff0..1ace9fc 100644
--- a/Lua/Gen/SnxxzUIWorldBossModelWrap.cs
+++ b/Lua/Gen/SnxxzUIWorldBossModelWrap.cs
@@ -260,7 +260,7 @@
{
- int gen_ret = gen_to_be_invoked.GetLatestUnLockBoss( );
+ int gen_ret = gen_to_be_invoked.GetRecommendBoss( );
LuaAPI.xlua_pushinteger(L, gen_ret);
diff --git a/System/CrossServerBoss/CrossServerBossWin.cs b/System/CrossServerBoss/CrossServerBossWin.cs
index 4e929c2..cfcb6d2 100644
--- a/System/CrossServerBoss/CrossServerBossWin.cs
+++ b/System/CrossServerBoss/CrossServerBossWin.cs
@@ -24,6 +24,7 @@
[SerializeField] ImageEx m_ImageGoto;
[SerializeField] Button m_KillRecord;
[SerializeField] Transform m_SurpassLevel;
+ [SerializeField] RectTransform m_NoDamageTip;
[SerializeField] ToggleButton m_Subscribe;
[SerializeField] RectTransform m_ContainerBoxCollectWeary;
@@ -33,8 +34,6 @@
CrossServerBossModel model { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
- DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
- BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
#region Built-in
protected override void BindController()
@@ -85,7 +84,7 @@
DisplayItemDropTip(model.selectedBoss);
DisplayBossBaseInfo(model.selectedBoss);
- DisplayWearyValue(model.selectedBoss);
+ DisplayTimes(model.selectedBoss);
}
private void ShowKillRecords()
@@ -149,7 +148,7 @@
{
DisplayItemDropTip(_bossId);
DisplayBossBaseInfo(_bossId);
- DisplayWearyValue(_bossId);
+ DisplayTimes(_bossId);
}
private void DisplayBossBaseInfo(int _bossId)
@@ -191,26 +190,40 @@
}
}
- private void DisplayItemDropTip(int _bossId)
+ private void DisplayItemDropTip(int bossId)
{
- var config = CrossServerBossConfig.Get(model.selectedBoss);
+ var config = CrossServerBossConfig.Get(bossId);
switch (config.MonsterType)
{
case 1:
case 2:
case 3:
+ m_NoDamageTip.gameObject.SetActive(true);
m_SurpassLevel.gameObject.SetActive(false);
break;
case 4:
- var npcDropConfig = NPCDropItemConfig.Get(_bossId);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var npcConfig = NPCConfig.Get(bossId);
+
+ if (npcConfig.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ m_SurpassLevel.gameObject.SetActive(false);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ var dropConfig = NPCDropItemConfig.Get(bossId);
+ var noDrop = dropConfig == null || (dropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > dropConfig.MaxLV);
+ m_SurpassLevel.gameObject.SetActive(noDrop);
+ }
break;
}
}
- private void DisplayWearyValue(int _bossId)
+ private void DisplayTimes(int bossId)
{
- var config = CrossServerBossConfig.Get(model.selectedBoss);
+ var config = CrossServerBossConfig.Get(bossId);
switch (config.MonsterType)
{
case 1:
diff --git a/System/DogzDungeon/DogzDungeonWin.cs b/System/DogzDungeon/DogzDungeonWin.cs
index a6c3823..e60a260 100644
--- a/System/DogzDungeon/DogzDungeonWin.cs
+++ b/System/DogzDungeon/DogzDungeonWin.cs
@@ -24,6 +24,7 @@
[SerializeField] ImageEx m_ImageGoto;
[SerializeField] Button m_KillRecord;
[SerializeField] Transform m_SurpassLevel;
+ [SerializeField] RectTransform m_NoDamageTip;
[SerializeField] ToggleButton m_Subscribe;
[SerializeField] RectTransform m_ContainerBoxCollectWeary;
@@ -85,7 +86,7 @@
DisplayItemDropTip(model.selectedBoss);
DisplayBossBaseInfo(model.selectedBoss);
- DisplayWearyValue(model.selectedBoss);
+ DisplaySkillTimes(model.selectedBoss);
}
private void ShowKillRecords()
@@ -232,7 +233,7 @@
{
DisplayItemDropTip(_bossId);
DisplayBossBaseInfo(_bossId);
- DisplayWearyValue(_bossId);
+ DisplaySkillTimes(_bossId);
}
private void DisplayBossBaseInfo(int _bossId)
@@ -274,24 +275,38 @@
}
}
- private void DisplayItemDropTip(int _bossId)
+ private void DisplayItemDropTip(int bossId)
{
- var config = DogzDungeonConfig.Get(model.selectedBoss);
+ var config = DogzDungeonConfig.Get(bossId);
switch (config.MonsterType)
{
case 1:
case 2:
case 3:
+ m_NoDamageTip.gameObject.SetActive(true);
m_SurpassLevel.gameObject.SetActive(false);
break;
case 4:
- var npcDropConfig = NPCDropItemConfig.Get(_bossId);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var npcConfig = NPCConfig.Get(bossId);
+
+ if (npcConfig.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ m_SurpassLevel.gameObject.SetActive(false);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ var dropConfig = NPCDropItemConfig.Get(bossId);
+ var noDrop = dropConfig == null || (dropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > dropConfig.MaxLV);
+ m_SurpassLevel.gameObject.SetActive(noDrop);
+ }
break;
}
}
- private void DisplayWearyValue(int _bossId)
+ private void DisplaySkillTimes(int _bossId)
{
var config = DogzDungeonConfig.Get(model.selectedBoss);
switch (config.MonsterType)
diff --git a/System/FindPrecious/BossHomeWin.cs b/System/FindPrecious/BossHomeWin.cs
index 4562285..d1821c0 100644
--- a/System/FindPrecious/BossHomeWin.cs
+++ b/System/FindPrecious/BossHomeWin.cs
@@ -26,12 +26,12 @@
[SerializeField] Button m_Goto;
[SerializeField] Button m_KillRecord;
[SerializeField] Transform m_SurpassLevel;
+ [SerializeField] RectTransform m_NoDamageTip;
[SerializeField] ToggleButton m_Subscribe;
BossHomeModel model { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
- VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
#region Built-in
protected override void BindController()
@@ -111,8 +111,8 @@
break;
}
- var npcDropConfig = NPCDropItemConfig.Get(model.selectedBoss);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+ DisplayTip(model.selectedBoss);
+
}
}
@@ -191,8 +191,8 @@
yield return WaitingForSecondConst.WaitMS300;
var bossId = model.selectedBoss;
var config = BossHomeConfig.Get(bossId);
- var npcDropConfig = NPCDropItemConfig.Get(bossId);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+
+ DisplayTip(model.selectedBoss);
switch (config.MonsterType)
{
@@ -350,10 +350,28 @@
}
}
+ private void DisplayTip(int bossId)
+ {
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var config = NPCConfig.Get(bossId);
+
+ if (config.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ m_SurpassLevel.gameObject.SetActive(false);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ var dropConfig = NPCDropItemConfig.Get(bossId);
+ var noDrop = dropConfig == null || (dropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > dropConfig.MaxLV);
+ m_SurpassLevel.gameObject.SetActive(noDrop);
+ }
+ }
+
}
}
-
diff --git a/System/FindPrecious/DemonJarWin.cs b/System/FindPrecious/DemonJarWin.cs
index 0baf954..dc93d1d 100644
--- a/System/FindPrecious/DemonJarWin.cs
+++ b/System/FindPrecious/DemonJarWin.cs
@@ -25,6 +25,7 @@
[SerializeField] TimerBehaviour m_CountRemainTime;
[SerializeField] Button m_Goto;
[SerializeField] Transform m_SurpassLevel;
+ [SerializeField] RectTransform m_NoDamageTip;
[SerializeField] ToggleButton m_Subscribe;
[SerializeField] RectTransform m_ContainerDouble;
@@ -134,13 +135,13 @@
DemonJarBossData bossData;
model.TryGetBossData(model.selectedBoss, out bossData);
- var npcDropConfig = NPCDropItemConfig.Get(bossData.id);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
m_BossIntroduce.Display(model.selectedBoss, true);
m_Bosses.Init(bosses);
m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
+
+ DisplayTip(model.selectedBoss);
}
private void ShowSkillRecord()
@@ -378,19 +379,18 @@
return true;
}
- private void OnBossSelected(int _bossId)
+ private void OnBossSelected(int bossId)
{
- m_BossIntroduce.Display(_bossId, false);
- m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId);
+ m_BossIntroduce.Display(bossId, false);
+ m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
DemonJarBossData bossData;
- model.TryGetBossData(_bossId, out bossData);
- var npcDropConfig = NPCDropItemConfig.Get(bossData.id);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+ model.TryGetBossData(bossId, out bossData);
- var demonJarConfig = DemonJarConfig.Get(model.selectedBoss);
- m_RewardDescription.text = Language.Get(demonJarConfig.RewardDescription);
+ var config = DemonJarConfig.Get(model.selectedBoss);
+ m_RewardDescription.text = Language.Get(config.RewardDescription);
+ DisplayTip(bossId);
DisplayAutoAndDoubleTitle();
}
@@ -434,6 +434,26 @@
}
}
+ private void DisplayTip(int bossId)
+ {
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var config = NPCConfig.Get(bossId);
+
+ if (config.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ m_SurpassLevel.gameObject.SetActive(false);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ var dropConfig = NPCDropItemConfig.Get(bossId);
+ var noDrop = dropConfig == null || (dropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > dropConfig.MaxLV);
+ m_SurpassLevel.gameObject.SetActive(noDrop);
+ }
+ }
+
+
}
}
diff --git a/System/FindPrecious/ElderGodAreaWin.cs b/System/FindPrecious/ElderGodAreaWin.cs
index b5cdfff..0cf358f 100644
--- a/System/FindPrecious/ElderGodAreaWin.cs
+++ b/System/FindPrecious/ElderGodAreaWin.cs
@@ -22,6 +22,7 @@
[SerializeField] Button m_Goto;
[SerializeField] Button m_KillRecord;
[SerializeField] ToggleButton m_Subscribe;
+ [SerializeField] RectTransform m_NoDamageTip;
ElderGodAreaModel model { get { return ModelCenter.Instance.GetModel<ElderGodAreaModel>(); } }
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -82,6 +83,8 @@
m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
m_Bosses.Init(bosses);
m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
+
+ DisplayTip(model.selectedBoss);
}
private void ShowKillRecords()
@@ -163,11 +166,13 @@
m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
}
- private void OnBossSelected(int _bossId)
+ private void OnBossSelected(int bossId)
{
StopCoroutine("Co_DelayDisplayNpcBaseInfo");
StartCoroutine("Co_DelayDisplayNpcBaseInfo");
- m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId);
+ m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
+
+ DisplayTip(bossId);
}
private void DisplayNpcBaseInfo(bool immediately)
@@ -213,6 +218,22 @@
}
}
}
+
+ private void DisplayTip(int bossId)
+ {
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var config = NPCConfig.Get(bossId);
+
+ if (config.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ }
+ }
+
}
}
diff --git a/System/FindPrecious/PersonalBossWin.cs b/System/FindPrecious/PersonalBossWin.cs
index cc20e4f..6670f46 100644
--- a/System/FindPrecious/PersonalBossWin.cs
+++ b/System/FindPrecious/PersonalBossWin.cs
@@ -19,6 +19,7 @@
[SerializeField] BossIntroduceBehaviour m_BossIntroduce;
[SerializeField] Text m_Times;
[SerializeField] Button m_Goto;
+ [SerializeField] RectTransform m_NoDamageTip;
PersonalBossModel model { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
@@ -39,7 +40,7 @@
{
totalTimes = dungeonModel.GetTotalTimes(PersonalBossModel.PERSONALBOSS_MAPID);
enterTimes = dungeonModel.GetEnterTimes(PersonalBossModel.PERSONALBOSS_MAPID);
- m_Times.text = Language.Get("WorldBoss_Endurance0", totalTimes - enterTimes);
+ m_Times.text = Language.Get("WorldBoss_Endurance0", totalTimes - enterTimes);
m_Times.color = UIHelper.GetUIColor((totalTimes - enterTimes) > 0 ? TextColType.Green : TextColType.Red, true);
}
@@ -73,6 +74,8 @@
m_BossIntroduce.Display(model.selectedBoss, true);
m_Bosses.Init(bosses);
m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
+
+ DisplayTip(model.selectedBoss);
}
private void GotoKillBoss()
@@ -136,10 +139,27 @@
return true;
}
- private void OnBossSelected(int _bossId)
+ private void OnBossSelected(int bossId)
{
- m_BossIntroduce.Display(_bossId, false);
+ m_BossIntroduce.Display(bossId, false);
+ DisplayTip(bossId);
}
+
+ private void DisplayTip(int bossId)
+ {
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var config = NPCConfig.Get(bossId);
+
+ if (config.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ }
+ }
+
}
}
diff --git a/System/FindPrecious/WorldBossBreifInfoBehaviour.cs b/System/FindPrecious/WorldBossBreifInfoBehaviour.cs
index 3b2ee6f..4d2b463 100644
--- a/System/FindPrecious/WorldBossBreifInfoBehaviour.cs
+++ b/System/FindPrecious/WorldBossBreifInfoBehaviour.cs
@@ -14,6 +14,8 @@
public class WorldBossBreifInfoBehaviour : FindPreciousBossBriefInfoBehaviour
{
[SerializeField] Image m_Attention;
+ [SerializeField] RectTransform m_UnLockCondition;
+ [SerializeField] Image m_UnLockRealm;
protected override int selectedBossId {
get {
@@ -90,6 +92,43 @@
m_Attention.gameObject.SetActive(findPreciousModel.IsBossSubscribed(bossId));
}
+ protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
+ {
+ m_Portrait.SetSprite(icon);
+ m_Portrait.SetNativeSize();
+ m_BossName.text = name;
+ m_BossLevel.text = Language.Get("Z1024", level);
+
+ m_RealmContainer.gameObject.SetActive(isUnLocked);
+ m_UnLockCondition.gameObject.SetActive(!isUnLocked);
+ if (!isUnLocked)
+ {
+ var unLockRealm = model.GetBossUnLockRealm(bossId);
+ var config = RealmConfig.Get(unLockRealm);
+ m_UnLockRealm.SetSprite(config.Img);
+ }
+ else
+ {
+ if (m_Realm != null && m_RealmContainer != null)
+ {
+ if (RealmConfig.Has(realm))
+ {
+ m_RealmContainer.gameObject.SetActive(true);
+ var realmConfig = RealmConfig.Get(realm);
+ if (realmConfig != null)
+ {
+ m_Realm.SetSprite(realmConfig.Img);
+ }
+ }
+ else
+ {
+ m_RealmContainer.gameObject.SetActive(false);
+ }
+ }
+ }
+
+ }
+
}
}
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;
}
}
diff --git a/System/FindPrecious/WorldBossWin.cs b/System/FindPrecious/WorldBossWin.cs
index e8f0d0d..cfb8116 100644
--- a/System/FindPrecious/WorldBossWin.cs
+++ b/System/FindPrecious/WorldBossWin.cs
@@ -21,10 +21,10 @@
[SerializeField] Button m_Goto;
[SerializeField] Button m_KillRecord;
[SerializeField] Transform m_SurpassLevel;
+ [SerializeField] RectTransform m_NoDamageTip;
[SerializeField] ToggleButton m_Subscribe;
WorldBossModel model { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
- MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
@@ -78,16 +78,14 @@
var bosses = new List<int>();
bosses.AddRange(model.GetWorldBosses());
- model.selectedBoss = model.GetLatestUnLockBoss();
+ model.selectedBoss = model.GetRecommendBoss();
m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
m_BossIntroduce.Display(model.selectedBoss, true);
m_Bosses.Init(bosses);
m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
- var config = NPCConfig.Get(model.selectedBoss);
- var npcDropConfig = NPCDropItemConfig.Get(model.selectedBoss);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+ DisplayTip(model.selectedBoss);
}
private void ShowKillRecords()
@@ -128,12 +126,11 @@
m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
}
- private void OnBossSelected(int _bossId)
+ private void OnBossSelected(int bossId)
{
- m_BossIntroduce.Display(_bossId, false);
- m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId);
- var npcDropConfig = NPCDropItemConfig.Get(model.selectedBoss);
- m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
+ m_BossIntroduce.Display(bossId, false);
+ m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
+ DisplayTip(bossId);
}
private void OnBossWearyValue()
@@ -221,6 +218,25 @@
}
}
+ private void DisplayTip(int bossId)
+ {
+ var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
+ var config = NPCConfig.Get(bossId);
+
+ if (config.Realm > realmLevel)
+ {
+ m_NoDamageTip.gameObject.SetActive(true);
+ m_SurpassLevel.gameObject.SetActive(false);
+ }
+ else
+ {
+ m_NoDamageTip.gameObject.SetActive(false);
+ var dropConfig = NPCDropItemConfig.Get(bossId);
+ var noDrop = dropConfig == null || (dropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > dropConfig.MaxLV);
+ m_SurpassLevel.gameObject.SetActive(noDrop);
+ }
+ }
+
}
}
diff --git a/System/WorldMap/WorldMapUnLockTip.cs b/System/WorldMap/WorldMapUnLockTip.cs
index 97a6cf0..25c93ee 100644
--- a/System/WorldMap/WorldMapUnLockTip.cs
+++ b/System/WorldMap/WorldMapUnLockTip.cs
@@ -12,28 +12,36 @@
public class WorldMapUnLockTip : MonoBehaviour
{
- [SerializeField] Image m_LevelConditionSign;
- [SerializeField] Image m_TreasureConditionSign;
- [SerializeField] Text m_LevelCondtion;
- [SerializeField] Text m_TreasureCondition;
-
- TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
+ [SerializeField] Image m_ConditionSign1;
+ [SerializeField] Image m_ConditionSign2;
+ [SerializeField] Text m_Condtion1;
+ [SerializeField] Text m_Condition2;
public void Display(int _mapId)
{
var config = MapConfig.Get(_mapId);
- m_LevelCondtion.text = Language.Get("WorldMap_LV", config.LV);
- m_LevelCondtion.color = PlayerDatas.Instance.baseData.LV >= config.LV ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
- if (string.IsNullOrEmpty(config.MapTaskText))
+ if (config.realmLevel > 0)
{
- m_TreasureConditionSign.gameObject.SetActive(false);
- m_TreasureCondition.text = "";
+ var realmConfig = RealmConfig.Get(config.realmLevel);
+ m_Condtion1.text = Language.Get("WorldMap_Realm", realmConfig.Name);
+ m_Condtion1.color = UIHelper.GetUIColor(PlayerDatas.Instance.baseData.realmLevel >= config.realmLevel ? TextColType.Green : TextColType.Red);
}
else
{
- m_TreasureConditionSign.gameObject.SetActive(true);
- m_TreasureCondition.text = config.MapTaskText;
+ m_Condtion1.text = Language.Get("WorldMap_LV", config.LV);
+ m_Condtion1.color = UIHelper.GetUIColor(PlayerDatas.Instance.baseData.LV >= config.LV ? TextColType.Green : TextColType.Red);
+ }
+
+ if (string.IsNullOrEmpty(config.MapTaskText))
+ {
+ m_ConditionSign2.gameObject.SetActive(false);
+ m_Condition2.text = "";
+ }
+ else
+ {
+ m_ConditionSign2.gameObject.SetActive(true);
+ m_Condition2.text = config.MapTaskText;
}
}
--
Gitblit v1.8.0