Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -11,6 +11,9 @@ public static void Init() { // 登记相应的数据体及对应的数据转逻辑类 Register(typeof(HA326_tagMCNPCIDCollectionCntInfo), typeof(DTCA326_tagMCNPCIDCollectionCntInfo)); Register(typeof(HA904_tagGCDogzNPCRefreshTime), typeof(DTCA904_tagGCDogzNPCRefreshTime)); Register(typeof(HA714_tagMCNPCCntList), typeof(DTCA714_tagMCNPCCntList)); Register(typeof(HAA16_tagMCSuperGiftInfo), typeof(DTCAA16_tagMCSuperGiftInfo)); Register(typeof(HAC10_tagGCAllFamilyBossHurtInfoList), typeof(DTCAC10_tagGCAllFamilyBossHurtInfoList)); Register(typeof(HA715_tagMCFamilyBossHurtList), typeof(DTCA715_tagMCFamilyBossHurtList)); Core/GameEngine/Model/Config/DogzDungeonConfig.cs
New file @@ -0,0 +1,52 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, August 21, 2018 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class DogzDungeonConfig : ConfigBase { public int NPCID { get ; private set ; } public int MonsterType { get ; private set ; } public int[] RareItemID; public string PortraitID { get ; private set; } public override string getKey() { return NPCID.ToString(); } public override void Parse() { try { NPCID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; MonsterType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; string[] RareItemIDStringArray = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); RareItemID = new int[RareItemIDStringArray.Length]; for (int i=0;i<RareItemIDStringArray.Length;i++) { int.TryParse(RareItemIDStringArray[i],out RareItemID[i]); } PortraitID = rawContents[3].Trim(); } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/DogzDungeonConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: e3a382a765dc3ce4db610c70a6b30d8f timeCreated: 1534817173 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -185,6 +185,7 @@ AddAsyncTask<AllPeoplePartyAwardConfig>(); AddAsyncTask<OrderInfoConfig>(); AddAsyncTask<TrialExchangeConfig>(); AddAsyncTask<DogzDungeonConfig>(); AddAsyncTask<TrialRewardsConfig>(); AddAsyncTask<DogzEquipPlusConfig>(); AddAsyncTask<FairyGrabBossConfig>(); Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA227_tagCMQueryNPCCntInfo.cs
New file @@ -0,0 +1,29 @@ using UnityEngine; using System.Collections; // A2 27 查询地图NPC数量信息 #tagCMQueryNPCCntInfo public class CA227_tagCMQueryNPCCntInfo : GameNetPackBasic { public uint MapID; // 目标地图ID public ushort LineID; // 线路ID public byte IsNoTimeLimit; //是否没有查询时间限制,默认有限制 public byte NPCIDListLen; public string NPCIDList; // 需要查询的NPCID列表 public CA227_tagCMQueryNPCCntInfo() { combineCmd = (ushort)0x03FE; _cmd = (ushort)0xA227; } public override void WriteToBytes() { WriteBytes(MapID, NetDataType.DWORD); WriteBytes(LineID, NetDataType.WORD); WriteBytes(IsNoTimeLimit, NetDataType.BYTE); WriteBytes(NPCIDListLen, NetDataType.BYTE); WriteBytes(NPCIDList, NetDataType.Chars, NPCIDListLen); } } Core/NetworkPackage/ClientPack/ClientToMapServer/CA2_Interaction/CA227_tagCMQueryNPCCntInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: cd1ae837bd2fb0740a2eebd1bd12e4bf timeCreated: 1534765562 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs
New file @@ -0,0 +1,40 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, August 20, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using Snxxz.UI; public class DTCA326_tagMCNPCIDCollectionCntInfo : DtcBasic { DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var package = vNetPack as HA326_tagMCNPCIDCollectionCntInfo; for (int i = 0; i < package.NPCCollCntList.Length; i++) { var collect = package.NPCCollCntList[i]; if (collect.NPCID == model.bigBoxNpcId) { model.bigBoxCollectCount = collect.CollectionCnt; } if (collect.NPCID == model.smallBoxNpcId) { model.smallBoxCollectCount = collect.CollectionCnt; } } } } Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 9fffd651589b82c46a6274d6209639b8 timeCreated: 1534766485 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3B7_tagMCBOSSAttactCnt.cs
@@ -14,6 +14,7 @@ { WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } } BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } } DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public override void Done(GameNetPackBasic vNetPack) { @@ -32,6 +33,9 @@ case 1: bossHomeModel.wearyValue = info.KillCnt; break; case 2: dogzDungeonModel.wearyValue = info.KillCnt; break; } } } Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs
New file @@ -0,0 +1,28 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, August 20, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using Snxxz.UI; public class DTCA714_tagMCNPCCntList : DtcBasic { DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var package = vNetPack as HA714_tagMCNPCCntList; model.UpdateMonsterSurplusInfo(package); } } Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 3fe7c73d652077745ac6d4ff21662559 timeCreated: 1534765878 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs
New file @@ -0,0 +1,27 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, August 20, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using Snxxz.UI; public class DTCA904_tagGCDogzNPCRefreshTime : DtcBasic { DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var package = vNetPack as HA904_tagGCDogzNPCRefreshTime; model.UpdateBoxOrEliteRefreshTime(package); } } Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 46d9553ef31c5d041a1c7fe24e4101b3 timeCreated: 1534766114 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HA3_Function/HA326_tagMCNPCIDCollectionCntInfo.cs
New file @@ -0,0 +1,34 @@ using UnityEngine; using System.Collections; // A3 26 NPCID已采集次数信息 #tagMCNPCIDCollectionCntInfo public class HA326_tagMCNPCIDCollectionCntInfo : GameNetPackBasic { public byte CollNPCCnt; //采集NPC记录数 public tagMCNPCIDCollectionCnt[] NPCCollCntList = null; // 采集NPC次数记录列表 public HA326_tagMCNPCIDCollectionCntInfo() { _cmd = (ushort)0xA326; } public override void ReadFromBytes(byte[] vBytes) { TransBytes(out CollNPCCnt, vBytes, NetDataType.BYTE); NPCCollCntList = new tagMCNPCIDCollectionCnt[CollNPCCnt]; for (int i = 0; i < CollNPCCnt; i++) { NPCCollCntList[i] = new tagMCNPCIDCollectionCnt(); TransBytes(out NPCCollCntList[i].NPCID, vBytes, NetDataType.DWORD); TransBytes(out NPCCollCntList[i].CollectionCnt, vBytes, NetDataType.BYTE); } } public struct tagMCNPCIDCollectionCnt { public uint NPCID; //NPCID public byte CollectionCnt; //已采集次数 } } Core/NetworkPackage/ServerPack/HA3_Function/HA326_tagMCNPCIDCollectionCntInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 9503ba9edfa7bc648b1a7ceef6d73f09 timeCreated: 1534766369 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HA7_Interaction/HA714_tagMCNPCCntList.cs
New file @@ -0,0 +1,36 @@ using UnityEngine; using System.Collections; // A7 14 通知查询的NPC数量 #tagMCNPCCntList public class HA714_tagMCNPCCntList : GameNetPackBasic { public uint MapID; public byte NPCInfoCnt; public tagMCNPCCntInfo[] NPCInfoList = null; public HA714_tagMCNPCCntList() { _cmd = (ushort)0xA714; } public override void ReadFromBytes(byte[] vBytes) { TransBytes(out MapID, vBytes, NetDataType.DWORD); TransBytes(out NPCInfoCnt, vBytes, NetDataType.BYTE); NPCInfoList = new tagMCNPCCntInfo[NPCInfoCnt]; for (int i = 0; i < NPCInfoCnt; i++) { NPCInfoList[i] = new tagMCNPCCntInfo(); TransBytes(out NPCInfoList[i].NPCID, vBytes, NetDataType.DWORD); TransBytes(out NPCInfoList[i].Cnt, vBytes, NetDataType.DWORD); } } public struct tagMCNPCCntInfo { public uint NPCID; public uint Cnt; } } Core/NetworkPackage/ServerPack/HA7_Interaction/HA714_tagMCNPCCntList.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: bf9b9299398fb9a458800aa77445fc16 timeCreated: 1534765697 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HA9_Function/HA904_tagGCDogzNPCRefreshTime.cs
New file @@ -0,0 +1,34 @@ using UnityEngine; using System.Collections; // A9 04 通知神兽副本NPC刷新时间 #tagGCDogzNPCRefreshTime public class HA904_tagGCDogzNPCRefreshTime : GameNetPackBasic { public byte Cnt; //信息个数 public tagDogzTimeInfoObj[] InfoList = null; //信息列表 public HA904_tagGCDogzNPCRefreshTime() { _cmd = (ushort)0xA904; } public override void ReadFromBytes(byte[] vBytes) { TransBytes(out Cnt, vBytes, NetDataType.BYTE); InfoList = new tagDogzTimeInfoObj[Cnt]; for (int i = 0; i < Cnt; i++) { InfoList[i] = new tagDogzTimeInfoObj(); TransBytes(out InfoList[i].NPCID, vBytes, NetDataType.DWORD); TransBytes(out InfoList[i].RefreshSecond, vBytes, NetDataType.DWORD); } } public struct tagDogzTimeInfoObj { public uint NPCID; // npcid public uint RefreshSecond; // 刷新倒计时, 秒 } } Core/NetworkPackage/ServerPack/HA9_Function/HA904_tagGCDogzNPCRefreshTime.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: a6d61160de2d3074dbcaade643da682c timeCreated: 1534766033 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/DogzDungeon.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 52a985f55841d694dac464804eae545e folderAsset: yes timeCreated: 1534559436 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: System/DogzDungeon/DogzBoxBehaviour.cs
New file @@ -0,0 +1,64 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, August 18, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class DogzBoxBehaviour : MonoBehaviour { [SerializeField] Text m_BigBoxCount; [SerializeField] Text m_SmallBoxCount; [SerializeField] RawImage m_RawImage; DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public void Display() { timer = 0f; UI3DModelExhibition.Instance.BeginShowNPC(model.bigBoxNpcId, Vector3.zero, m_RawImage); DisplayBoxSurplusInfo(); model.boxSurplusChangeEvent += OnBoxInfoUpdate; } public void Dispose() { model.boxSurplusChangeEvent -= OnBoxInfoUpdate; UI3DModelExhibition.Instance.StopShowNPC(); } private void OnBoxInfoUpdate() { DisplayBoxSurplusInfo(); } private void DisplayBoxSurplusInfo() { var boxInfo = model.dogzDungeonBox; m_BigBoxCount.text = boxInfo.bigBoxSurplus.ToString(); m_BigBoxCount.color = UIHelper.GetUIColor(boxInfo.bigBoxSurplus > 0 ? TextColType.White : TextColType.Red); m_SmallBoxCount.text = boxInfo.smallBoxSurplus.ToString(); m_SmallBoxCount.color = UIHelper.GetUIColor(boxInfo.smallBoxSurplus > 0 ? TextColType.White : TextColType.Red); } float timer = 0f; private void LateUpdate() { timer += Time.deltaTime; if (timer > 30) { timer = 0f; model.RequestBoxSurplusInfo(); } } } } System/DogzDungeon/DogzBoxBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 2e487abe9c3d74147b7a132a647f110c timeCreated: 1534563273 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs
New file @@ -0,0 +1,196 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, August 18, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class DogzDungeonBreifInfoBehaviour : FindPreciousBossBriefInfoBehaviour { [SerializeField] Image m_Attention; protected override int selectedBossId { get { return model.selectedBoss; } set { model.selectedBoss = value; } } protected override InteractorableState interactorableState { get { var selected = selectedBossId == bossId; var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId); var dieOrLocked = false; switch (config.MonsterType) { case 1: case 2: dieOrLocked = model.dogzDungeonBox.bigBoxSurplus <= 0; break; case 3: dieOrLocked = model.dogzDungeonElite.eliteSurplus <= 0; break; case 4: dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId); break; } if (!dieOrLocked) { return selected ? InteractorableState.NormalSelected : InteractorableState.NormalUnSelected; } else { return selected ? InteractorableState.DieOrLockedSelected : InteractorableState.DieOrLockedUnSelected; } } set { base.interactorableState = value; } } protected override bool isUnLocked { get { return model.IsBossUnLocked(bossId); } } DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public override void Display(object _data) { base.Display(_data); m_Attention.gameObject.SetActive(findPreciousModel.IsBossSubscribed(bossId)); var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId); var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(bossId); DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.Realm); UpdateBossRebornCoolDown(isUnLocked); UpdateBossPortrait(interactorableState); OnSelected(bossId); model.boxSurplusChangeEvent -= OnGuardInfoUpdate; model.boxSurplusChangeEvent -= OnBoxInfoUpdate; model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange; model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange; switch (config.MonsterType) { case 1: case 2: model.dogzDungeonBox.refreshTimeEvent += OnBoxRefreshTimeChange; model.boxSurplusChangeEvent += OnGuardInfoUpdate; break; case 3: model.dogzDungeonElite.refreshTimeEvent += OnEliteRefreshTimeChange; model.boxSurplusChangeEvent += OnBoxInfoUpdate; break; } model.bossSelectedEvent -= OnSelected; model.bossSelectedEvent += OnSelected; } public override void Dispose() { base.Dispose(); model.bossSelectedEvent -= OnSelected; model.boxSurplusChangeEvent -= OnGuardInfoUpdate; model.boxSurplusChangeEvent -= OnBoxInfoUpdate; model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange; model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange; } protected override void UpdateBossRebornCoolDown(bool _isUnLocked) { if (_isUnLocked) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId); var refreshTime = DateTime.Now; switch (config.MonsterType) { case 1: case 2: refreshTime = model.dogzDungeonBox.refreshTime; break; case 3: refreshTime = model.dogzDungeonElite.refreshTime; break; case 4: FindPreciousModel.BossInfo bossInfo; if (findPreciousModel.TryGetBossInfo(bossId, out bossInfo) && !bossInfo.IsBossAlive()) { refreshTime = bossInfo.refreshTime; } break; } if (refreshTime > DateTime.Now) { m_CoolDown.Begin(refreshTime, OnBossCoolDownCompleted); } else { m_CoolDown.gameObject.SetActive(false); } } else { m_CoolDown.gameObject.SetActive(false); } } private void OnBoxRefreshTimeChange() { UpdateBossRebornCoolDown(isUnLocked); } private void OnEliteRefreshTimeChange() { UpdateBossRebornCoolDown(isUnLocked); } private void OnGuardInfoUpdate() { UpdateBossPortrait(interactorableState); } private void OnBoxInfoUpdate() { UpdateBossPortrait(interactorableState); } private void OnSelected(int _bossId) { UpdateBossNameLevelFont(interactorableState); } protected override void OnSubscribe(int _bossId) { base.OnSubscribe(_bossId); if (bossId != _bossId) { return; } m_Attention.gameObject.SetActive(findPreciousModel.IsBossSubscribed(bossId)); } } } System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 61b922330133f6946a1b5f9b6b6f62a6 timeCreated: 1534559500 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/DogzDungeon/DogzDungeonModel.cs
New file @@ -0,0 +1,407 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using TableConfig; using System; namespace Snxxz.UI { public class DogzDungeonModel : Model { public const int DOGZDUNGEON_REDPOINT = 76009; public const int DATA_MAPID = 21110; int m_SelectedBoss = 0; public int selectedBoss { get { return this.m_SelectedBoss; } set { if (this.m_SelectedBoss != value) { this.m_SelectedBoss = value; if (bossSelectedEvent != null) { bossSelectedEvent(value); } } } } int m_WearyValue = 0; public int wearyValue { get { return m_WearyValue; } set { if (m_WearyValue != value) { m_WearyValue = value; if (bossWearyValueChangeEvent != null) { bossWearyValueChangeEvent(); } } } } int m_BigBoxCollectCount = 0; public int bigBoxCollectCount { get { return m_BigBoxCollectCount; } set { if (m_BigBoxCollectCount != value) { m_BigBoxCollectCount = value; if (bigBoxCollectCountChangeEvent != null) { bigBoxCollectCountChangeEvent(); } } } } int m_SmallBoxCollectCount = 0; public int smallBoxCollectCount { get { return m_SmallBoxCollectCount; } set { m_SmallBoxCollectCount = value; } } public event Action<int> bossSelectedEvent; public event Action bossWearyValueChangeEvent; public event Action bigBoxCollectCountChangeEvent; public event Action boxSurplusChangeEvent; public event Action eliteSurplusChangeEvent; List<int> sortedBossIds = new List<int>(); Dictionary<int, DogzDungeonBossData> bosses = new Dictionary<int, DogzDungeonBossData>(); public DogzDungeonBox dogzDungeonBox = new DogzDungeonBox(); public DogzDungeonElite dogzDungeonElite = new DogzDungeonElite(); Redpoint redpoint = new Redpoint(DOGZDUNGEON_REDPOINT); FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } public int bigBoxNpcId = 0; public int smallBoxNpcId = 0; public List<int> eliteMonsters = new List<int>(); public override void Init() { ParseConfig(); } public override void UnInit() { } public bool TryGetBossData(int _bossId, out DogzDungeonBossData _data) { return bosses.TryGetValue(_bossId, out _data); } public List<int> GetNpcIds() { var npcIds = new List<int>(); npcIds.Add(bigBoxNpcId); npcIds.Add(eliteMonsters[0]); npcIds.AddRange(bosses.Keys); return npcIds; } public List<int> GetBosses() { return new List<int>(bosses.Keys); } public int GetRecommendNpc() { if (bigBoxCollectCount < 2) //未疲劳 { return bigBoxNpcId;//大宝箱npc id } if (wearyValue < GeneralConfig.Instance.bossWearyValues[2]) { var playerLevel = PlayerDatas.Instance.baseData.LV; for (int i = sortedBossIds.Count - 1; i >= 0; i--) { var bossId = sortedBossIds[i]; var dogzConfig = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId); if (dogzConfig.MonsterType == 3 || dogzConfig.MonsterType == 4) { var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(bossId); if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV) { return bossId; } } } return sortedBossIds[0]; } return bigBoxNpcId;//大宝箱 npcid } public int GetRecommendKillElite() { var Elite = dogzDungeonElite.GetAliveElite(); if (Elite == 0) { Elite = eliteMonsters[0]; } return Elite; } public bool IsBossUnLocked(int _bossId) { if (_bossId == bigBoxNpcId || _bossId == smallBoxNpcId) { return true; } if (eliteMonsters.Contains(_bossId)) { return true; } return bosses.ContainsKey(_bossId) && bosses[_bossId].isUnLocked; } public void RequestBoxAndEliteSurplusInfo() { var sendInfo = new CA227_tagCMQueryNPCCntInfo(); sendInfo.MapID = DATA_MAPID; sendInfo.LineID = 0; var stringArray = new string[eliteMonsters.Count + 2]; for (int i = 0; i < eliteMonsters.Count; i++) { stringArray[i] = eliteMonsters[i].ToString(); } stringArray[eliteMonsters.Count] = bigBoxNpcId.ToString(); stringArray[eliteMonsters.Count + 1] = smallBoxNpcId.ToString(); sendInfo.NPCIDList = string.Format("[{0}]", string.Join(",", stringArray)); sendInfo.NPCIDListLen = (byte)sendInfo.NPCIDList.Length; GameNetSystem.Instance.SendInfo(sendInfo); } public void RequestBoxSurplusInfo() { var sendInfo = new CA227_tagCMQueryNPCCntInfo(); sendInfo.MapID = DATA_MAPID; sendInfo.LineID = 0; sendInfo.NPCIDList = string.Format("[{0},{1}]", bigBoxNpcId, smallBoxNpcId); sendInfo.NPCIDListLen = (byte)sendInfo.NPCIDList.Length; GameNetSystem.Instance.SendInfo(sendInfo); } public void RequestEliteSurplusInfo() { var sendInfo = new CA227_tagCMQueryNPCCntInfo(); sendInfo.MapID = DATA_MAPID; sendInfo.LineID = 0; var stringArray = new string[eliteMonsters.Count]; for (int i = 0; i < stringArray.Length; i++) { stringArray[i] = eliteMonsters[i].ToString(); } sendInfo.NPCIDList = string.Format("[{0}]", string.Join(",", stringArray)); sendInfo.NPCIDListLen = (byte)sendInfo.NPCIDList.Length; GameNetSystem.Instance.SendInfo(sendInfo); } public void UpdateMonsterSurplusInfo(HA714_tagMCNPCCntList _npcInfoes) { if (_npcInfoes.MapID != DATA_MAPID) { return; } var updatedBox = false; var updatedElite = false; for (int i = 0; i < _npcInfoes.NPCInfoList.Length; i++) { var npcInfo = _npcInfoes.NPCInfoList[i]; if (npcInfo.NPCID == bigBoxNpcId) { dogzDungeonBox.bigBoxSurplus = (int)npcInfo.Cnt; updatedBox = true; } if (npcInfo.NPCID == smallBoxNpcId) { dogzDungeonBox.smallBoxSurplus = (int)npcInfo.Cnt; updatedBox = true; } if (eliteMonsters.Contains((int)npcInfo.NPCID)) { dogzDungeonElite.UpdateEliteInfo((int)npcInfo.NPCID, (int)npcInfo.Cnt); updatedElite = true; } } if (updatedBox) { if (boxSurplusChangeEvent != null) { boxSurplusChangeEvent(); } } if (updatedElite) { if (eliteSurplusChangeEvent != null) { eliteSurplusChangeEvent(); } } } public void UpdateBoxOrEliteRefreshTime(HA904_tagGCDogzNPCRefreshTime _refreshTimes) { for (int i = 0; i < _refreshTimes.InfoList.Length; i++) { var info = _refreshTimes.InfoList[i]; if (bigBoxNpcId == info.NPCID || smallBoxNpcId == info.NPCID) { dogzDungeonBox.UpdateBoxRefreshTime((int)info.RefreshSecond); RequestBoxSurplusInfo(); } if (eliteMonsters.Contains((int)info.NPCID)) { dogzDungeonElite.UpdateEliteRefreshTime((int)info.RefreshSecond); RequestEliteSurplusInfo(); } } } private void ParseConfig() { var configs = ConfigManager.Instance.GetAllValues<DogzDungeonConfig>(); foreach (var config in configs) { switch (config.MonsterType) { case 1: bigBoxNpcId = config.NPCID; break; case 2: smallBoxNpcId = config.NPCID; break; case 3: eliteMonsters.Add(config.NPCID); break; case 4: bosses[config.NPCID] = new DogzDungeonBossData(config.NPCID); sortedBossIds.Add(config.NPCID); break; } } sortedBossIds.Sort(DogzDungeonBossData.LevelCompare); } } public class DogzDungeonBox { public int bigBoxSurplus; public int smallBoxSurplus; public DateTime refreshTime { get; private set; } public event Action refreshTimeEvent; public void UpdateBoxInfo(int _big, int _small) { bigBoxSurplus = _big; smallBoxSurplus = _small; } public void UpdateBoxRefreshTime(int _seconds) { refreshTime = DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond); DebugEx.Log("宝箱刷新时间:" + refreshTime); if (refreshTimeEvent != null) { refreshTimeEvent(); } } } public class DogzDungeonElite { public Dictionary<int, int> eliteCounts = new Dictionary<int, int>(); public int eliteSurplus { get { var count = 0; foreach (var eliteCount in eliteCounts.Values) { count += eliteCount; } return count; } } public DateTime refreshTime { get; private set; } public event Action refreshTimeEvent; public void UpdateEliteInfo(int _npcId, int _count) { eliteCounts[_npcId] = _count; } public void UpdateEliteRefreshTime(int _seconds) { refreshTime = DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond); if (refreshTimeEvent!=null) { refreshTimeEvent(); } DebugEx.Log("精英刷新时间:" + refreshTime); } public int GetAliveElite() { foreach (var EliteCount in eliteCounts) { if (EliteCount.Key > 0) { return EliteCount.Value; } } return 0; } } public class DogzDungeonBossData { public int id { get; private set; } public bool isUnLocked { get { var config = ConfigManager.Instance.GetTemplate<NPCConfig>(id); return PlayerDatas.Instance.baseData.LV >= config.NPCLV; } } public DogzDungeonBossData(int _id) { this.id = _id; } public static int LevelCompare(int a, int b) { var configA = ConfigManager.Instance.GetTemplate<NPCConfig>(a); var configB = ConfigManager.Instance.GetTemplate<NPCConfig>(b); return configA.NPCLV < configB.NPCLV ? -1 : 1; } } } System/DogzDungeon/DogzDungeonModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 978a73f0055381a48aef1e53492b7407 timeCreated: 1534559596 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/DogzDungeon/DogzDungeonWin.cs
New file @@ -0,0 +1,259 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, August 18, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public class DogzDungeonWin : Window { [SerializeField] CyclicScroll m_Bosses; [SerializeField] DogzBoxBehaviour m_BoxBehaviour; [SerializeField] DogzEliteMonsterBehaviour m_EliteMonsterBehaviour; [SerializeField] BossIntroduceBehaviour m_BossIntroduce; [SerializeField] Button m_Goto; [SerializeField] ImageEx m_ImageGoto; [SerializeField] Button m_KillRecord; [SerializeField] Transform m_SurpassLevel; [SerializeField] ToggleButton m_Subscribe; [SerializeField] RectTransform m_ContainerBoxCollectWeary; [SerializeField] TextEx m_BoxCollectWearyValue; [SerializeField] RectTransform m_ContainerBossKillWeary; [SerializeField] TextEx m_BossKillWearyValue; DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Goto.AddListener(GotoKillBoss); m_KillRecord.AddListener(ShowKillRecords); m_Subscribe.AddListener(SwitchSubscribeBoss); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { model.bossSelectedEvent += OnBossSelected; findPreciousModel.bossSubscribeChangeEvent += OnSubscribeBoss; } protected override void OnPreClose() { model.bossSelectedEvent -= OnBossSelected; findPreciousModel.bossSubscribeChangeEvent -= OnSubscribeBoss; } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); ShowBosses(); model.RequestBoxAndEliteSurplusInfo(); } #endregion private void ShowBosses() { var bosses = model.GetNpcIds(); model.selectedBoss = model.GetRecommendNpc(); m_Bosses.Init(bosses); m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss)); // DisplayItemDropTip(model.selectedBoss); DisplayBossBaseInfo(model.selectedBoss); DisplayWearyValue(model.selectedBoss); } private void ShowKillRecords() { findPreciousModel.ViewKillRecordsBoss = model.selectedBoss; WindowCenter.Instance.Open<KillRecordsWin>(); } private void SwitchSubscribeBoss() { if (findPreciousModel.IsBossSubscribed(model.selectedBoss)) { findPreciousModel.RequestDeSubscribeBoss(model.selectedBoss); } else { findPreciousModel.RequestSubscribeBoss(model.selectedBoss, false); } } private void GotoKillBoss() { if (PlayerDatas.Instance.baseData.MapID == DogzDungeonModel.DATA_MAPID) { WindowCenter.Instance.Close<LootPreciousFrameWin>(); WindowCenter.Instance.Open<MainInterfaceWin>(); } var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss); switch (config.MonsterType) { case 1: case 2: case 3: if (PlayerDatas.Instance.baseData.MapID != DogzDungeonModel.DATA_MAPID) { var map = ConfigManager.Instance.GetTemplate<MapConfig>(DogzDungeonModel.DATA_MAPID); var position = new Vector3(map.BornPoints[0].x, 0, map.BornPoints[0].y); MapTransferUtility.Send_WorldTransfer(DogzDungeonModel.DATA_MAPID, position, MapTransferType.WorldTransport, 0, 0); } break; case 4: MapTransferUtility.Instance.MoveToNPC(model.selectedBoss); break; } } private void OnSubscribeBoss(int _bossId) { m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss); } private void OnBossSelected(int _bossId) { //DisplayItemDropTip(_bossId); DisplayBossBaseInfo(_bossId); DisplayWearyValue(_bossId); } private void DisplayBossBaseInfo(int _bossId) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(_bossId); switch (config.MonsterType) { case 1: case 2: m_KillRecord.gameObject.SetActive(false); m_BossIntroduce.Dispose(); m_BossIntroduce.gameObject.SetActive(false); m_EliteMonsterBehaviour.Dispose(); m_EliteMonsterBehaviour.gameObject.SetActive(false); m_BoxBehaviour.gameObject.SetActive(true); m_BoxBehaviour.Display(); break; case 3: m_KillRecord.gameObject.SetActive(false); m_BossIntroduce.Dispose(); m_BossIntroduce.gameObject.SetActive(false); m_BoxBehaviour.gameObject.SetActive(false); m_BoxBehaviour.Dispose(); m_EliteMonsterBehaviour.gameObject.SetActive(true); m_EliteMonsterBehaviour.Display(); break; case 4: m_KillRecord.gameObject.SetActive(true); m_BoxBehaviour.Dispose(); m_BoxBehaviour.gameObject.SetActive(false); m_EliteMonsterBehaviour.Dispose(); m_EliteMonsterBehaviour.gameObject.SetActive(false); m_BossIntroduce.gameObject.SetActive(true); m_BossIntroduce.Display(_bossId, true); m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId); break; } } private void DisplayItemDropTip(int _bossId) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss); switch (config.MonsterType) { case 1: case 2: case 3: m_SurpassLevel.gameObject.SetActive(false); break; case 4: var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(_bossId); m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV); m_SurpassLevel.gameObject.SetActive(true); break; } } private void DisplayWearyValue(int _bossId) { var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss); switch (config.MonsterType) { case 1: case 2: m_ContainerBoxCollectWeary.gameObject.SetActive(true); m_ContainerBossKillWeary.gameObject.SetActive(false); var bigBoxCollectCountLimit = 2; m_BoxCollectWearyValue.text = StringUtility.Contact(model.bigBoxCollectCount, "/", bigBoxCollectCountLimit); m_BoxCollectWearyValue.colorType = model.bigBoxCollectCount >= bigBoxCollectCountLimit ? TextColType.Red : TextColType.DarkGreen; break; case 3: case 4: m_ContainerBoxCollectWeary.gameObject.SetActive(false); m_ContainerBossKillWeary.gameObject.SetActive(true); var wearyValueLimit = GeneralConfig.Instance.bossWearyValues[2]; m_BossKillWearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit); m_BossKillWearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen; break; } } private void EnterDogzDungeon() { var error = 0; if (TestEnterDungeon(out error)) { MapTransferUtility.Instance.MoveToNPC(model.selectedBoss); } else { ProcessEnterDungeonError(error); } } private bool TestEnterDungeon(out int _error) { _error = 0; return true; } private void ProcessEnterDungeonError(int _error) { } } } System/DogzDungeon/DogzDungeonWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: e5074977b4d949f40b8568222ecfc23b timeCreated: 1534559453 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/DogzDungeon/DogzEliteMonsterBehaviour.cs
New file @@ -0,0 +1,60 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, August 18, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class DogzEliteMonsterBehaviour : MonoBehaviour { [SerializeField] Text m_Elite; [SerializeField] RawImage m_RawImage; DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } public void Display() { timer = 0f; UI3DModelExhibition.Instance.BeginShowNPC(model.eliteMonsters[0], Vector3.zero, m_RawImage); DisplayGuardSurplusInfo(); model.boxSurplusChangeEvent += OnGuardInfoUpdate; } public void Dispose() { model.boxSurplusChangeEvent -= OnGuardInfoUpdate; UI3DModelExhibition.Instance.StopShowNPC(); } private void OnGuardInfoUpdate() { DisplayGuardSurplusInfo(); } private void DisplayGuardSurplusInfo() { var guard = model.dogzDungeonElite; m_Elite.text = guard.eliteSurplus.ToString(); m_Elite.color = UIHelper.GetUIColor(guard.eliteSurplus > 0 ? TextColType.White : TextColType.Red); } float timer = 0f; private void LateUpdate() { timer += Time.deltaTime; if (timer > 30f) { timer = 0f; model.RequestEliteSurplusInfo(); } } } } System/DogzDungeon/DogzEliteMonsterBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: e1cbf382b6be57544a7603a6af20a97f timeCreated: 1534563304 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FindPrecious/BossIntroduceBehaviour.cs
@@ -131,6 +131,9 @@ } unusualRewards = demonJarConfig.RareItemID; break; case FindPreciousType.DogzDungeon: undoubtedlyRewards = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId).RareItemID; break; } if (m_UndoubtedlyRewardGroup != null) System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs
@@ -83,7 +83,7 @@ findPreciousModel.bossInfoUpdateEvent -= OnBossInfoUpdate; } protected void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm) protected virtual void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm) { m_Portrait.SetSprite(_icon); m_Portrait.SetNativeSize(); @@ -134,7 +134,7 @@ m_Portrait.material = isGray ? m_GrayMaterial : m_NormalMaterial; } protected void UpdateBossRebornCoolDown(bool _isUnLocked) protected virtual void UpdateBossRebornCoolDown(bool _isUnLocked) { if (_isUnLocked) { @@ -224,13 +224,16 @@ } } if (isRebornRightNow && !m_RefreshAtOnce.gameObject.activeInHierarchy) if (m_RefreshAtOnce != null) { m_RefreshAtOnce.gameObject.SetActive(true); } else if (!isRebornRightNow && m_RefreshAtOnce.gameObject.activeInHierarchy) { m_RefreshAtOnce.gameObject.SetActive(false); if (isRebornRightNow && !m_RefreshAtOnce.gameObject.activeInHierarchy) { m_RefreshAtOnce.gameObject.SetActive(true); } else if (!isRebornRightNow && m_RefreshAtOnce.gameObject.activeInHierarchy) { m_RefreshAtOnce.gameObject.SetActive(false); } } } System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -27,6 +27,7 @@ DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } } BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } } DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } private void OnEnable() { @@ -45,7 +46,7 @@ if (model.currentBossNotify != 0) { var type = model.GetBossFindPreciousType(model.currentBossNotify); if (type == FindPreciousModel.FindPreciousType.DemonJar) if (type == FindPreciousType.DemonJar) { if (demonJarModel.GetSurplusTimes() <= 0) { @@ -83,19 +84,22 @@ switch (type) { case FindPreciousModel.FindPreciousType.DemonJar: case FindPreciousType.DemonJar: GotoKillDemonJarBoss(bossId); break; case FindPreciousModel.FindPreciousType.WorldBoss: case FindPreciousType.WorldBoss: GotoKillWorldBoss(bossId); break; case FindPreciousModel.FindPreciousType.BossHome: case FindPreciousType.BossHome: GotoKillBossHomeBoss(bossId); break; case FindPreciousModel.FindPreciousType.ElderGodArea: case FindPreciousType.ElderGodArea: GotoKillElderGodAreaBoss(bossId); break; case FindPreciousModel.FindPreciousType.PersonalBoss: case FindPreciousType.PersonalBoss: break; case FindPreciousType.DogzDungeon: GotoKillDogzDungeonBoss(bossId); break; } @@ -244,6 +248,21 @@ } private void GotoKillDogzDungeonBoss(int _bossId) { var mapId = PlayerDatas.Instance.baseData.MapID; var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(mapId); if (mapConfig.MapFBType == (int)MapType.OpenCountry) { MapTransferUtility.Instance.MoveToNPC(_bossId); } else { SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo"); } } private void EnterBossHome(int _floor,int _bossId) { var error = 0; System/FindPrecious/FindPreciousModel.cs
@@ -424,6 +424,10 @@ { return FindPreciousType.PersonalBoss; } else if (ConfigManager.Instance.ContainKey<DogzDungeonConfig>(_bossId)) { return FindPreciousType.DogzDungeon; } return FindPreciousType.None; } @@ -647,16 +651,6 @@ return _lhs.time > _rhs.time ? -1 : 1; } } public enum FindPreciousType { None, WorldBoss, BossHome, PersonalBoss, ElderGodArea, DemonJar, } } System/FindPrecious/LootPreciousFrameWin.cs
@@ -15,6 +15,7 @@ [SerializeField] FunctionButtonGroup m_FunctionGroup; [SerializeField] FunctionButton m_DemonJar; [SerializeField] FunctionButton m_DogzDungeon; [SerializeField] FunctionButton m_FairyGrabBoss; [SerializeField] Button m_Left; @@ -31,8 +32,8 @@ protected override void AddListeners() { m_DemonJar.AddListener(ShowDemonJar); m_DogzDungeon.AddListener(ShowDogzDungeon); m_FairyGrabBoss.AddListener(FairyGrabBoss); m_Left.AddListener(ShowLastFunction); m_Right.AddListener(ShowNextFunction); m_Close.AddListener(CloseClick); @@ -85,9 +86,26 @@ functionOrder = m_FairyGrabBoss.order; } private void ShowDogzDungeon() { CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<DogzDungeonWin>(); } else { WindowCenter.Instance.Open<DogzDungeonWin>(); } functionOrder = m_DogzDungeon.order; } private void CloseSubWindows() { WindowCenter.Instance.CloseImmediately<DemonJarWin>(); WindowCenter.Instance.CloseImmediately<DogzDungeonWin>(); WindowCenter.Instance.CloseImmediately<FairyGrabBossWin>(); } System/FindPrecious/WorldBossWin.cs
@@ -43,8 +43,9 @@ protected override void OnPreOpen() { m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", GeneralConfig.Instance.bossWearyValues[0] + model.extraBossWearyValue); m_WearyValue.colorType = model.wearyValue >= GeneralConfig.Instance.bossWearyValues[0]+model.extraBossWearyValue ? TextColType.Red : TextColType.DarkGreen; var wearyValueLimit = GeneralConfig.Instance.bossWearyValues[0] + model.extraBossWearyValue; m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit); m_WearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen; } protected override void OnAfterOpen() System/GeneralConfig/GeneralConfig.cs
@@ -116,6 +116,7 @@ public List<int> bossHomeNoRebornRemindMaps = null; public List<int> elderGodNoRebornRemindMaps = null; public List<int> demonJarNoRebornRemindMaps = null; public List<int> dogzNoRebornRemindMaps = null; public string[][] ModeDefaultConfig { get; private set; } public int[] RealmGroup { get; private set; } @@ -126,6 +127,7 @@ public int inGameDownLoadHighestLevelPoint { get; private set; } public List<int> dungeonCanUseMoneyIds { get; private set; } public int dogzBoxLimit { get; private set; } public Dictionary<int, int> dungeonRebornClientTimes { get; private set; } public int[] CompareEquipPlaces { get; private set; } @@ -406,6 +408,7 @@ bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2)); elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3)); demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4)); dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5)); if (ModeDefaultConfig == null) { @@ -440,6 +443,7 @@ dungeonCanUseMoneyIds = new List<int>(GetIntArray("FBEnterTickeyAuto", 1)); dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2)); dogzBoxLimit = GetInt("DogzBoxLimit"); fairyGrabBossMapLines = ConfigParse.GetDic<int, int>(GetInputString("MapLine", 2)); var grabBossMaps = fairyGrabBossMapLines.Keys.ToList(); System/MainInterfacePanel/InGamePushContainer.cs
@@ -206,18 +206,20 @@ var mapId = PlayerDatas.Instance.baseData.MapID; switch (findPreciousType) { case FindPreciousModel.FindPreciousType.WorldBoss: case FindPreciousType.WorldBoss: show = !GeneralConfig.Instance.worldBossNoRebornRemindMaps.Contains(mapId); break; case FindPreciousModel.FindPreciousType.BossHome: case FindPreciousType.BossHome: show = !GeneralConfig.Instance.bossHomeNoRebornRemindMaps.Contains(mapId); break; case FindPreciousModel.FindPreciousType.ElderGodArea: case FindPreciousType.ElderGodArea: show = !GeneralConfig.Instance.elderGodNoRebornRemindMaps.Contains(mapId); break; case FindPreciousModel.FindPreciousType.DemonJar: case FindPreciousType.DemonJar: show = !GeneralConfig.Instance.demonJarNoRebornRemindMaps.Contains(mapId); break; case FindPreciousType.DogzDungeon: break; } if (show) System/MainInterfacePanel/MainInterfaceWin.cs
@@ -295,7 +295,16 @@ if (isNeutralMap) { m_BossBriefInfos.gameObject.SetActive(true); m_BossBriefInfos.Display(ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID)); if (PlayerDatas.Instance.baseData.MapID==DogzDungeonModel.DATA_MAPID) { var bosses = ModelCenter.Instance.GetModel<DogzDungeonModel>().GetBosses(); m_BossBriefInfos.Display(bosses); } else { var bosses = ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID); m_BossBriefInfos.Display(bosses); } } else { System/WindowBase/ModelCenter.cs
@@ -187,6 +187,7 @@ RegisterModel<TrialDungeonModel>(); RegisterModel<ActivitiesPushMgr>(); RegisterModel<MultipleRealmPointModel>(); RegisterModel<DogzDungeonModel>(); RegisterModel<DogzModel>(); RegisterModel<TreasureSoulModel>(); RegisterModel<FairyGrabBossModel>(); Utility/EnumHelper.cs
@@ -1116,11 +1116,13 @@ public enum FindPreciousType { WorldBoss, BossHome, PersonalBoss, ElderGodArea, DemonJar, WorldBoss = 0, BossHome = 1, PersonalBoss = 2, ElderGodArea = 3, DemonJar = 4, DogzDungeon = 5, None = 99, } public enum GotServerRewardType