8 文件已复制
22个文件已删除
40个文件已修改
1 文件已重命名
| | |
| | | public class DTCA326_tagMCNPCIDCollectionCntInfo : DtcBasic |
| | | { |
| | | |
| | | DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } |
| | | CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } } |
| | | CrossServerBossModel model { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } } |
| | | |
| | | public override void Done(GameNetPackBasic vNetPack) |
| | | { |
| | |
| | | for (int i = 0; i < package.NPCCollCntList.Length; i++) |
| | | { |
| | | var collect = package.NPCCollCntList[i]; |
| | | if (collect.NPCID == model.bigBoxNpcId || collect.NPCID == crossServerBossModel.bigBoxNpcId) |
| | | if (collect.NPCID == model.bigBoxNpcId) |
| | | { |
| | | bigBoxCollectCount += collect.CollectionCnt; |
| | | } |
| | | |
| | | if (collect.NPCID == model.smallBoxNpcId || collect.NPCID == crossServerBossModel.smallBoxNpcId) |
| | | if (collect.NPCID == model.smallBoxNpcId) |
| | | { |
| | | smallBoxCollectCount += collect.CollectionCnt; |
| | | } |
| | | |
| | | }
|
| | |
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().UpdateDungeonCollectNpcInfo(package); |
| | |
| | | { |
| | | WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } } |
| | | BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } } |
| | | DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } |
| | | CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } } |
| | | |
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | |
| | | worldBossModel.wearyValue = (int)info.KillCnt;
|
| | | worldBossModel.extraBossWearyValue = (int)info.ItemAddCnt;
|
| | | break;
|
| | | case 1:
|
| | | bossHomeModel.wearyValue = (int)info.KillCnt;
|
| | | break;
|
| | | case 2:
|
| | | dogzDungeonModel.wearyValue = (int)info.KillCnt;
|
| | | crossServerBossModel.wearyValue = (int)info.KillCnt;
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | |
| | | public class DTCA714_tagMCNPCCntList : DtcBasic { |
| | | |
| | | DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } |
| | | CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } } |
| | | |
| | | public override void Done(GameNetPackBasic vNetPack) |
| | |
| | | base.Done(vNetPack); |
| | | var package = vNetPack as HA714_tagMCNPCCntList; |
| | | |
| | | model.UpdateMonsterSurplusInfo(package); |
| | | crossServerBossModel.UpdateMonsterSurplusInfo(package); |
| | | ModelCenter.Instance.GetModel<HazyGrassModel>().ReceivePackage(package); |
| | | } |
| | |
| | | |
| | | public class DTCA904_tagGCDogzNPCRefreshTime : DtcBasic |
| | | { |
| | | |
| | | DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } |
| | | CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } } |
| | | |
| | | public override void Done(GameNetPackBasic vNetPack) |
| | | { |
| | | base.Done(vNetPack); |
| | | var package = vNetPack as HA904_tagGCDogzNPCRefreshTime; |
| | | model.UpdateBoxOrEliteRefreshTime(package); |
| | | crossServerBossModel.UpdateBoxOrEliteRefreshTime(package); |
| | | } |
| | | |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: 3e05761d690b75440a6be79207d0fb01 |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: 1d70ccd06161e0443b7a802ad94292f8 |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| File was renamed from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: 71e878ac60c49ad4f964dd2dbc725739 |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: eed34091b0568664b9fb42f0634496c1 |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: 32ceb8b7faf99f84a8b73ce53c5e3e4d |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/ServerPack/HAE_Truck.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: 77f69c2b862d1704299a32d0d8eeb71e |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/ServerPack/HAF_Merge.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: fa14960fa44b0d1439bab471a764e34f |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
copy from System/DogzDungeon.meta
copy to Core/NetworkPackage/ServerPack/HB0_Event.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: d914565b65f8e8145988734c4d915834 |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1547643019 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | |
| | | GActor _npc = null;
|
| | | // 加入判断是否世界BOSS判断
|
| | | var isWorldBoss = WorldBossConfig.Has(npcID);
|
| | | var isDogzBoss = DogzDungeonConfig.Has(npcID);
|
| | | var isCrossServerBoss = CrossServerBossConfig.Has(npcID);
|
| | |
|
| | | if (_findLocation)
|
| | | {
|
| | | var _mapConfig = MapConfig.Get(_npcLocation.mapId);
|
| | | // 中立地图
|
| | | if (_mapConfig.Camp == 5 && (isWorldBoss || isDogzBoss || isCrossServerBoss))
|
| | | if (_mapConfig.Camp == 5 && (isWorldBoss || isCrossServerBoss))
|
| | | {
|
| | | if (_npcLocation.mapId == PlayerDatas.Instance.baseData.MapID)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | bool _isBoss = isWorldBoss || isDogzBoss || isCrossServerBoss;
|
| | | bool _isBoss = isWorldBoss || isCrossServerBoss;
|
| | | if (_isBoss && _findLocation)
|
| | | {
|
| | | // Debug.LogFormat("目标是boss");
|
| | |
| | | #endif |
| | | } |
| | | |
| | | public Snxxz.UI.DogzDungeonModel __Gen_Delegate_Imp30(object p0) |
| | | { |
| | | #if THREAD_SAFE || HOTFIX_ENABLE |
| | | lock (luaEnv.luaEnvLock) |
| | | { |
| | | #endif |
| | | RealStatePtr L = luaEnv.rawL; |
| | | int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference); |
| | | ObjectTranslator translator = luaEnv.translator; |
| | | translator.PushAny(L, p0); |
| | | |
| | | PCall(L, 1, 1, errFunc); |
| | | |
| | | |
| | | Snxxz.UI.DogzDungeonModel __gen_ret = (Snxxz.UI.DogzDungeonModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.DogzDungeonModel)); |
| | | LuaAPI.lua_settop(L, errFunc - 1); |
| | | return __gen_ret; |
| | | #if THREAD_SAFE || HOTFIX_ENABLE |
| | | } |
| | | #endif |
| | | } |
| | | |
| | | public Snxxz.UI.TeamModel __Gen_Delegate_Imp31(object p0) |
| | | { |
| | | #if THREAD_SAFE || HOTFIX_ENABLE |
| | |
| | | |
| | | Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJar", FindPreciousType.DemonJar); |
| | | |
| | | Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DogzDungeon", FindPreciousType.DogzDungeon); |
| | | |
| | | Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossServerBoss", FindPreciousType.CrossServerBoss); |
| | | |
| | | Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JadeDynastyBoss", FindPreciousType.JadeDynastyBoss); |
| | |
| | | else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJar")) |
| | | { |
| | | translator.PushFindPreciousType(L, FindPreciousType.DemonJar); |
| | | } |
| | | else if (LuaAPI.xlua_is_eq_str(L, 1, "DogzDungeon")) |
| | | { |
| | | translator.PushFindPreciousType(L, FindPreciousType.DogzDungeon); |
| | | } |
| | | else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossServerBoss")) |
| | | { |
copy from System/DogzDungeon.meta
copy to Lua/Gen/Resources.meta
| File was copied from System/DogzDungeon.meta |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 52a985f55841d694dac464804eae545e |
| | | guid: 2a460c5e1b7a1b74cab84494289095f0 |
| | | folderAsset: yes |
| | | timeCreated: 1534559436 |
| | | timeCreated: 1558410732 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | |
| | | |
| | | { |
| | | |
| | | System.Collections.Generic.List<int> gen_ret = gen_to_be_invoked.GetBosses( ); |
| | | System.Collections.Generic.List<int> gen_ret = gen_to_be_invoked.GetShowBosses( ); |
| | | translator.Push(L, gen_ret); |
| | | |
| | | |
| | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1); |
| | | translator.Push(L, gen_to_be_invoked.dogzDungeonBox); |
| | | translator.Push(L, gen_to_be_invoked.boxInfo); |
| | | } catch(System.Exception gen_e) { |
| | | return LuaAPI.luaL_error(L, "c# exception:" + gen_e); |
| | | } |
| | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1); |
| | | translator.Push(L, gen_to_be_invoked.dogzDungeonElite); |
| | | translator.Push(L, gen_to_be_invoked.eliteInfo); |
| | | } catch(System.Exception gen_e) { |
| | | return LuaAPI.luaL_error(L, "c# exception:" + gen_e); |
| | | } |
| | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1); |
| | | gen_to_be_invoked.dogzDungeonBox = (Snxxz.UI.DogzDungeonBox)translator.GetObject(L, 2, typeof(Snxxz.UI.DogzDungeonBox)); |
| | | gen_to_be_invoked.boxInfo = (Snxxz.UI.CrossServerBossBox)translator.GetObject(L, 2, typeof(Snxxz.UI.CrossServerBossBox)); |
| | | |
| | | } catch(System.Exception gen_e) { |
| | | return LuaAPI.luaL_error(L, "c# exception:" + gen_e); |
| | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1); |
| | | gen_to_be_invoked.dogzDungeonElite = (Snxxz.UI.DogzDungeonElite)translator.GetObject(L, 2, typeof(Snxxz.UI.DogzDungeonElite)); |
| | | gen_to_be_invoked.eliteInfo = (Snxxz.UI.CrossServerBossElite)translator.GetObject(L, 2, typeof(Snxxz.UI.CrossServerBossElite)); |
| | | |
| | | } catch(System.Exception gen_e) { |
| | | return LuaAPI.luaL_error(L, "c# exception:" + gen_e); |
| | |
| | | |
| | | |
| | | { |
| | | int __bossId = LuaAPI.xlua_tointeger(L, 2); |
| | | |
| | | bool gen_ret = gen_to_be_invoked.IsBossUnLocked( __bossId ); |
| | | LuaAPI.lua_pushboolean(L, gen_ret); |
| | | |
| | | |
| | | |
| | | return 1; |
| | | } |
| | |
| | | static int _m_GetBossUnLockRealm(RealStatePtr L) |
| | | { |
| | | try { |
| | | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | |
| | | Snxxz.UI.WorldBossModel gen_to_be_invoked = (Snxxz.UI.WorldBossModel)translator.FastGetCSObj(L, 1); |
| | | |
| | | |
| | | |
| | | { |
| | | int _bossId = LuaAPI.xlua_tointeger(L, 2); |
| | | |
| | | int gen_ret = gen_to_be_invoked.GetBossUnLockRealm( _bossId ); |
| | | LuaAPI.xlua_pushinteger(L, gen_ret); |
| | | |
| | | |
| | | |
| | | return 1; |
| | | } |
| | | |
| | |
| | | translator.DelayWrapLoader(typeof(DogzConfig), DogzConfigWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(DogzDungeonConfig), DogzDungeonConfigWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(DogzEquipPlusConfig), DogzEquipPlusConfigWrap.__Register); |
| | | |
| | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.DogzPackModel), SnxxzUIDogzPackModelWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.DogzDungeonModel), SnxxzUIDogzDungeonModelWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.DungeonAssistModel), SnxxzUIDungeonAssistModelWrap.__Register); |
| | | |
| | | |
| | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.BossHomeModel), SnxxzUIBossHomeModelWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.DemonJarModel), SnxxzUIDemonJarModelWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.ElderGodAreaModel), SnxxzUIElderGodAreaModelWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.FindPreciousModel), SnxxzUIFindPreciousModelWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.FindPreciousTimer), SnxxzUIFindPreciousTimerWrap.__Register); |
| | | |
| | | |
| | | translator.DelayWrapLoader(typeof(Snxxz.UI.PersonalBossModel), SnxxzUIPersonalBossModelWrap.__Register); |
| | | |
| | | } |
| | | |
| | |
| | | DemonJarBossData bossData = null;
|
| | | if (demonJarModel.TryGetBossData(npcId, out bossData))
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel)
|
| | | if (findPreciousModel.IsBossUnlock(npcId))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
|
| | | }
|
| | |
| | | DemonJarBossData bossData = null;
|
| | | if (demonJarModel.TryGetBossData(bossId, out bossData))
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel)
|
| | | if (findPreciousModel.IsBossUnlock(bossId))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
|
| | | }
|
| | |
| | | |
| | | private void DisplayBoxSurplusInfo() |
| | | { |
| | | var boxInfo = model.dogzDungeonBox; |
| | | var boxInfo = model.boxInfo; |
| | | m_BigBoxCount.text = boxInfo.bigBoxSurplus.ToString(); |
| | | m_BigBoxCount.color = UIHelper.GetUIColor(boxInfo.bigBoxSurplus > 0 ? TextColType.White : TextColType.Red); |
| | | m_SmallBoxCount.text = boxInfo.smallBoxSurplus.ToString(); |
| | |
| | | { |
| | | case 1: |
| | | case 2: |
| | | dieOrLocked = model.dogzDungeonBox.bigBoxSurplus <= 0; |
| | | dieOrLocked = model.boxInfo.bigBoxSurplus <= 0; |
| | | break; |
| | | case 3: |
| | | dieOrLocked = model.dogzDungeonElite.eliteSurplus <= 0; |
| | | dieOrLocked = model.eliteInfo.eliteSurplus <= 0; |
| | | break; |
| | | case 4: |
| | | dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId); |
| | |
| | | |
| | | model.boxSurplusChangeEvent -= OnBoxInfoUpdate; |
| | | model.eliteSurplusChangeEvent -= OnGuardInfoUpdate; |
| | | model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange; |
| | | model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange; |
| | | model.boxInfo.refreshTimeEvent -= OnBoxRefreshTimeChange; |
| | | model.eliteInfo.refreshTimeEvent -= OnEliteRefreshTimeChange; |
| | | |
| | | switch (config.MonsterType) |
| | | { |
| | | case 1: |
| | | case 2: |
| | | model.dogzDungeonBox.refreshTimeEvent += OnBoxRefreshTimeChange; |
| | | model.boxInfo.refreshTimeEvent += OnBoxRefreshTimeChange; |
| | | model.boxSurplusChangeEvent += OnBoxInfoUpdate; |
| | | break; |
| | | case 3: |
| | | model.dogzDungeonElite.refreshTimeEvent += OnEliteRefreshTimeChange; |
| | | model.eliteInfo.refreshTimeEvent += OnEliteRefreshTimeChange; |
| | | model.eliteSurplusChangeEvent += OnGuardInfoUpdate; |
| | | break; |
| | | } |
| | |
| | | model.bossSelectedEvent -= OnSelected; |
| | | model.boxSurplusChangeEvent -= OnBoxInfoUpdate; |
| | | model.eliteSurplusChangeEvent -= OnGuardInfoUpdate; |
| | | model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange; |
| | | model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange; |
| | | model.boxInfo.refreshTimeEvent -= OnBoxRefreshTimeChange; |
| | | model.eliteInfo.refreshTimeEvent -= OnEliteRefreshTimeChange; |
| | | } |
| | | |
| | | protected override void UpdateBossRebornCoolDown(bool _isUnLocked) |
| | |
| | | { |
| | | case 1: |
| | | case 2: |
| | | refreshTime = model.dogzDungeonBox.refreshTime; |
| | | refreshTime = model.boxInfo.refreshTime; |
| | | break; |
| | | case 3: |
| | | refreshTime = model.dogzDungeonElite.refreshTime; |
| | | refreshTime = model.eliteInfo.refreshTime; |
| | | break; |
| | | case 4: |
| | | FindPreciousModel.BossInfo bossInfo; |
| | |
| | | UpdateBossPortrait(interactorableState); |
| | | } |
| | | |
| | | |
| | | protected override void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm) |
| | | protected override void DrawBossBaseInfo(string icon, string name, int level, int realm) |
| | | { |
| | | var config = CrossServerBossConfig.Get(bossId); |
| | | switch (config.MonsterType) |
| | |
| | | m_BossLevel.text = string.Empty; |
| | | break; |
| | | case 4: |
| | | m_BossName.text = _name; |
| | | m_BossLevel.text = Language.Get("Z1024", _level); |
| | | m_BossName.text = name; |
| | | m_BossLevel.text = Language.Get("Z1024", level); |
| | | break; |
| | | } |
| | | |
| | | m_Portrait.SetSprite(_icon); |
| | | m_Portrait.SetSprite(icon); |
| | | m_Portrait.SetNativeSize(); |
| | | |
| | | m_RealmContainer.gameObject.SetActive(isUnLocked); |
| | | m_UnLockCondition.gameObject.SetActive(!isUnLocked); |
| | | if (!isUnLocked) |
| | | { |
| | | var unLockRealm = findPreciousModel.GetBossUnLockRealm(bossId); |
| | | var realmConfig = RealmConfig.Get(unLockRealm); |
| | | m_UnLockRealm.SetSprite(realmConfig.Img); |
| | | } |
| | | else |
| | | { |
| | | if (m_Realm != null && m_RealmContainer != null) |
| | | { |
| | | if (_realm > 0 && RealmConfig.Has(_realm)) |
| | | if (realm > 0 && RealmConfig.Has(realm)) |
| | | { |
| | | m_RealmContainer.gameObject.SetActive(true); |
| | | var realmConfig = RealmConfig.Get(_realm); |
| | | var realmConfig = RealmConfig.Get(realm); |
| | | if (realmConfig != null) |
| | | { |
| | | m_Realm.SetSprite(realmConfig.Img); |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void OnSelected(int _bossId) |
| | | { |
| | |
| | | |
| | | private void DisplayGuardSurplusInfo() |
| | | { |
| | | var guard = model.dogzDungeonElite; |
| | | var guard = model.eliteInfo; |
| | | m_Elite.text = guard.eliteSurplus.ToString(); |
| | | m_Elite.color = UIHelper.GetUIColor(guard.eliteSurplus > 0 ? TextColType.White : TextColType.Red); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public int bigBoxCollectCount { |
| | | get { return dogzDungeonModel.bigBoxCollectCount; } |
| | | } |
| | | |
| | | public int smallBoxCollectCount { |
| | | get { return dogzDungeonModel.smallBoxCollectCount; } |
| | | } |
| | | |
| | | int m_WearyValue = 0; |
| | | public int wearyValue { |
| | | get { |
| | | return dogzDungeonModel.wearyValue; |
| | | get { return m_WearyValue; } |
| | | set { |
| | | if (m_WearyValue != value) |
| | | { |
| | | m_WearyValue = value; |
| | | UpdateRedpoint(); |
| | | if (bossWearyValueChangeEvent != null) |
| | | { |
| | | bossWearyValueChangeEvent(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | int m_BigBoxCollectCount = 0; |
| | | public int bigBoxCollectCount { |
| | | get { return m_BigBoxCollectCount; } |
| | | set { |
| | | if (m_BigBoxCollectCount != value) |
| | | { |
| | | m_BigBoxCollectCount = value; |
| | | UpdateRedpoint(); |
| | | if (bigBoxCollectCountChangeEvent != null) |
| | | { |
| | | bigBoxCollectCountChangeEvent(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | int m_SmallBoxCollectCount = 0; |
| | | public int smallBoxCollectCount { |
| | | get { return m_SmallBoxCollectCount; } |
| | | set { m_SmallBoxCollectCount = value; } |
| | | } |
| | | |
| | | public event Action bossWearyValueChangeEvent; |
| | | public event Action<int> bossSelectedEvent; |
| | | public event Action bigBoxCollectCountChangeEvent; |
| | | public event Action boxSurplusChangeEvent; |
| | | public event Action eliteSurplusChangeEvent; |
| | | |
| | | public DogzDungeonBox dogzDungeonBox = new DogzDungeonBox(); |
| | | public DogzDungeonElite dogzDungeonElite = new DogzDungeonElite(); |
| | | public CrossServerBossBox boxInfo = new CrossServerBossBox(); |
| | | public CrossServerBossElite eliteInfo = new CrossServerBossElite(); |
| | | public Redpoint redpoint = new Redpoint(FindPreciousModel.LOOTPRECIOUs_REDPOINTID, REDPOINT); |
| | | |
| | | FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } |
| | | DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } } |
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } |
| | | TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } } |
| | | |
| | | public override void Init() |
| | |
| | | return false; |
| | | } |
| | | |
| | | var config = CrossServerBossConfig.Get(selectedBoss); |
| | | if (config.MonsterType == 4 && !findPreciousModel.IsRealmEnoughToKillBoss(selectedBoss)) |
| | | { |
| | | error = 6; |
| | | return false; |
| | | } |
| | | |
| | | error = 0; |
| | | return true; |
| | | } |
| | |
| | | case 5: |
| | | SysNotifyMgr.Instance.ShowTip("CrossMap4"); |
| | | break; |
| | | case 6: |
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(selectedBoss).Realm); |
| | | break; |
| | | } |
| | | } |
| | | |
| | |
| | | var npcIds = new List<int>(); |
| | | npcIds.Add(bigBoxNpcId); |
| | | npcIds.Add(eliteMonsters[0]); |
| | | npcIds.AddRange(bosses.Keys); |
| | | |
| | | foreach (var bossId in bosses.Keys) |
| | | { |
| | | if (findPreciousModel.IsBossUnlock(bossId)) |
| | | { |
| | | npcIds.Add(bossId); |
| | | } |
| | | } |
| | | |
| | | return npcIds; |
| | | } |
| | | |
| | | public List<int> GetBosses() |
| | | public List<int> GetShowBosses() |
| | | { |
| | | return new List<int>(bosses.Keys); |
| | | var showBosses = new List<int>(); |
| | | foreach (var bossId in bosses.Keys) |
| | | { |
| | | if (findPreciousModel.IsBossUnlock(bossId)) |
| | | { |
| | | showBosses.Add(bossId); |
| | | } |
| | | } |
| | | |
| | | return showBosses; |
| | | } |
| | | |
| | | public int GetRecommendNpc() |
| | |
| | | |
| | | if (wearyValue < GeneralDefine.bossWearyValues[2]) |
| | | { |
| | | var playerLevel = PlayerDatas.Instance.baseData.LV; |
| | | for (int i = sortedBossIds.Count - 1; i >= 0; i--) |
| | | { |
| | | var bossId = sortedBossIds[i]; |
| | | var npcConfig = NPCConfig.Get(bossId); |
| | | if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV) |
| | | if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId)) |
| | | { |
| | | return bossId; |
| | | } |
| | |
| | | |
| | | public int GetRecommendKillElite() |
| | | { |
| | | var Elite = dogzDungeonElite.GetAliveElite(); |
| | | var Elite = eliteInfo.GetAliveElite(); |
| | | if (Elite == 0) |
| | | { |
| | | Elite = eliteMonsters[0]; |
| | |
| | | return Elite; |
| | | } |
| | | |
| | | public bool IsBossUnLocked(int _bossId) |
| | | public bool IsBossUnLocked(int bossId) |
| | | { |
| | | if (_bossId == bigBoxNpcId || _bossId == smallBoxNpcId) |
| | | if (bossId == bigBoxNpcId || bossId == smallBoxNpcId) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | if (eliteMonsters.Contains(_bossId)) |
| | | if (eliteMonsters.Contains(bossId)) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | return bosses.ContainsKey(_bossId) && bosses[_bossId].isUnLocked; |
| | | return bosses.ContainsKey(bossId) && findPreciousModel.IsBossUnlock(bossId); |
| | | } |
| | | |
| | | public void RequestBoxAndEliteSurplusInfo() |
| | |
| | | var npcInfo = _npcInfoes.NPCInfoList[i]; |
| | | if (npcInfo.NPCID == bigBoxNpcId) |
| | | { |
| | | dogzDungeonBox.bigBoxSurplus = (int)npcInfo.Cnt; |
| | | boxInfo.bigBoxSurplus = (int)npcInfo.Cnt; |
| | | updatedBigBox = true; |
| | | } |
| | | |
| | | if (npcInfo.NPCID == smallBoxNpcId) |
| | | { |
| | | dogzDungeonBox.smallBoxSurplus = (int)npcInfo.Cnt; |
| | | boxInfo.smallBoxSurplus = (int)npcInfo.Cnt; |
| | | updatedSmallBox = true; |
| | | } |
| | | |
| | | if (eliteMonsters.Contains((int)npcInfo.NPCID)) |
| | | { |
| | | dogzDungeonElite.UpdateEliteInfo((int)npcInfo.NPCID, (int)npcInfo.Cnt); |
| | | eliteInfo.UpdateEliteInfo((int)npcInfo.NPCID, (int)npcInfo.Cnt); |
| | | updatedEliteNpcIds.Add((int)npcInfo.NPCID); |
| | | } |
| | | } |
| | | |
| | | if (!updatedBigBox) |
| | | { |
| | | dogzDungeonBox.bigBoxSurplus = 0; |
| | | boxInfo.bigBoxSurplus = 0; |
| | | } |
| | | |
| | | if (!updatedSmallBox) |
| | | { |
| | | dogzDungeonBox.smallBoxSurplus = 0; |
| | | boxInfo.smallBoxSurplus = 0; |
| | | } |
| | | |
| | | if (boxSurplusChangeEvent != null) |
| | |
| | | { |
| | | if (!updatedEliteNpcIds.Contains(item)) |
| | | { |
| | | dogzDungeonElite.UpdateEliteInfo(item, 0); |
| | | eliteInfo.UpdateEliteInfo(item, 0); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | if (containBox) |
| | | { |
| | | dogzDungeonBox.UpdateBoxRefreshTime(boxRefreshSecond); |
| | | boxInfo.UpdateBoxRefreshTime(boxRefreshSecond); |
| | | } |
| | | |
| | | if (containElite) |
| | | { |
| | | dogzDungeonElite.UpdateEliteRefreshTime(eliteRefreshSecond); |
| | | eliteInfo.UpdateEliteRefreshTime(eliteRefreshSecond); |
| | | } |
| | | |
| | | if (WindowCenter.Instance.IsOpen("CrossServerBossWin")) |
| | |
| | | public class CrossServerBossData |
| | | { |
| | | public int id { get; private set; } |
| | | public bool isUnLocked { |
| | | get { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | public CrossServerBossData(int _id) |
| | | { |
| | | this.id = _id; |
| | |
| | | [SerializeField] BossIntroduceBehaviour m_BossIntroduce; |
| | | |
| | | [SerializeField] Button m_Goto; |
| | | [SerializeField] ImageEx m_ImageGoto; |
| | | [SerializeField] Button m_KillRecord; |
| | | [SerializeField] Transform m_SurpassLevel; |
| | | [SerializeField] RectTransform m_NoDamageTip; |
| | |
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId); |
| | | break; |
| | | } |
| | | |
| | | DisplayGotoKillButton(model.selectedBoss); |
| | | DisplaySubscribe(model.selectedBoss); |
| | | } |
| | | |
| | | private void DisplayItemDropTip(int bossId) |
| | |
| | | case 1: |
| | | case 2: |
| | | case 3: |
| | | m_NoDamageTip.gameObject.SetActive(true); |
| | | m_NoDamageTip.gameObject.SetActive(false); |
| | | m_SurpassLevel.gameObject.SetActive(false); |
| | | break; |
| | | case 4: |
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel; |
| | | var npcConfig = NPCConfig.Get(bossId); |
| | | |
| | | if (npcConfig.Realm > realmLevel) |
| | | if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId)) |
| | | { |
| | | m_NoDamageTip.gameObject.SetActive(true); |
| | | m_SurpassLevel.gameObject.SetActive(false); |
| | |
| | | } |
| | | } |
| | | |
| | | private void DisplayGotoKillButton(int bossId) |
| | | { |
| | | var config = CrossServerBossConfig.Get(model.selectedBoss); |
| | | var isUnlock = config.MonsterType != 4 || findPreciousModel.IsBossUnlock(model.selectedBoss); |
| | | m_Goto.gameObject.SetActive(isUnlock); |
| | | } |
| | | |
| | | private void DisplaySubscribe(int bossId) |
| | | { |
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId); |
| | | m_Subscribe.gameObject.SetActive(isUnLocked); |
| | | if (isUnLocked) |
| | | { |
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | using System.Collections;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | using System;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | |
| | | get {
|
| | | var config = BossHomeConfig.Get(bossId);
|
| | | var selected = selectedBossId == bossId;
|
| | | var dieOrLocked = config.MonsterType == 2 && !findPreciousModel.IsBossAlive(bossId);
|
| | | var dieOrLocked = config.MonsterType == 2 &&
|
| | | (!findPreciousModel.IsBossAlive(bossId) || !findPreciousModel.IsBossUnlock(bossId));
|
| | |
|
| | | if (!dieOrLocked)
|
| | | {
|
| | |
| | | var npcConfig = NPCConfig.Get(bossId);
|
| | | DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV,npcConfig.ClientRealm);
|
| | | UpdateBossPortrait(interactorableState);
|
| | | UpdateBossRebornCoolDown(true);
|
| | | UpdateBossRebornCoolDown(isUnLocked);
|
| | | OnSelected(bossId);
|
| | |
|
| | | model.bossSelectedEvent -= OnSelected;
|
| | |
| | | UpdateBossNameLevelFont(interactorableState);
|
| | | }
|
| | |
|
| | | protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
|
| | | {
|
| | | var bossHomeConfig = BossHomeConfig.Get(bossId);
|
| | | switch (bossHomeConfig.MonsterType)
|
| | | {
|
| | | case 1:
|
| | | m_Portrait.SetSprite(icon);
|
| | | m_Portrait.SetNativeSize();
|
| | | m_BossName.text = name;
|
| | | m_BossLevel.text = string.Empty;
|
| | | m_RealmContainer.gameObject.SetActive(false);
|
| | | m_UnLockCondition.gameObject.SetActive(false);
|
| | | break;
|
| | | case 2:
|
| | | base.DrawBossBaseInfo(icon, name, level, realm);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnSubscribe(int _bossId)
|
| | | {
|
| | | base.OnSubscribe(_bossId);
|
| | |
| | | public class BossHomeModel : Model, IMapInitOk
|
| | | {
|
| | | public const int BOSSHOME_MAPID = 31020;
|
| | | public const int BOSSHOME_REDPOINT = 76002;
|
| | |
|
| | | int m_SelectedFloor = 0;
|
| | | public int selectedFloor {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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>();
|
| | |
| | | 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)
|
| | |
| | | {
|
| | | 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()
|
| | |
| | |
|
| | | 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);
|
| | |
| | | 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;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | [SerializeField] Transform m_SurpassLevel;
|
| | | [SerializeField] RectTransform m_NoDamageTip;
|
| | | [SerializeField] ToggleButton m_Subscribe;
|
| | | [SerializeField] RectTransform m_WearyContainer;
|
| | | [SerializeField] TextEx m_WearyValue;
|
| | |
|
| | | 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()
|
| | |
| | | model.selectedFloor = model.GetRecommendFloor();
|
| | | m_FloorGroup.Init();
|
| | | m_Vip.text = StringUtility.Contact("V", model.GetFloorVipRequirement(model.selectedFloor));
|
| | |
|
| | | var wearyValueLimit = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit);
|
| | | m_WearyContainer.gameObject.SetActive(wearyValueLimit > 0);
|
| | | if (wearyValueLimit > 0)
|
| | | {
|
| | | m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit);
|
| | | m_WearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen;
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | | if (model.TryGetBossHomeData(model.selectedFloor, out bossHomeData))
|
| | | {
|
| | | var bosses = new List<int>();
|
| | | bosses.AddRange(bossHomeData.bossIds);
|
| | | bosses.AddRange(bossHomeData.GetShowBosses());
|
| | | model.selectedBoss = bossHomeData.GetRecommendNpc();
|
| | | m_Bosses.Init(bosses);
|
| | | m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
|
| | |
| | | }
|
| | |
|
| | | DisplayTip(model.selectedBoss);
|
| | |
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplaySubscribe(model.selectedBoss);
|
| | | }
|
| | | }
|
| | |
|
| | | private void ShowKillRecords()
|
| | | {
|
| | | ModelCenter.Instance.GetModel<FindPreciousModel>().ViewKillRecordsBoss = model.selectedBoss;
|
| | | findPreciousModel.ViewKillRecordsBoss = model.selectedBoss;
|
| | | WindowCenter.Instance.Open<KillRecordsWin>();
|
| | | }
|
| | |
|
| | |
| | |
|
| | | private void GotoKillBoss()
|
| | | {
|
| | | var config = BossHomeConfig.Get(model.selectedBoss);
|
| | | if (config.MonsterType == 2 && !findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
|
| | | return;
|
| | | }
|
| | |
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId != BossHomeModel.BOSSHOME_MAPID)
|
| | | {
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | var config = BossHomeConfig.Get(model.selectedBoss);
|
| | | if (PlayerDatas.Instance.baseData.dungeonLineId + 1 == config.FloorNum)
|
| | | {
|
| | | WindowCenter.Instance.Close<FindPreciousFrameWin>();
|
| | |
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
|
| | | }
|
| | |
|
| | | private void OnBossSelected(int _bossId)
|
| | | private void OnBossSelected(int bossId)
|
| | | {
|
| | | StopCoroutine("Co_DelayDisplayNpcBaseInfo");
|
| | | StartCoroutine("Co_DelayDisplayNpcBaseInfo");
|
| | |
| | | var config = BossHomeConfig.Get(bossId);
|
| | |
|
| | | DisplayTip(model.selectedBoss);
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplaySubscribe(model.selectedBoss);
|
| | |
|
| | | switch (config.MonsterType)
|
| | | {
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = MapUtility.GetDataMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID
|
| | | && PlayerDatas.Instance.baseData.dungeonLineId == model.selectedFloor - 1)
|
| | | {
|
| | |
| | |
|
| | | private void DisplayTip(int bossId)
|
| | | {
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var config = NPCConfig.Get(bossId);
|
| | |
|
| | | if (config.Realm > realmLevel)
|
| | | if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId))
|
| | | {
|
| | | m_NoDamageTip.gameObject.SetActive(true);
|
| | | m_SurpassLevel.gameObject.SetActive(false);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void DisplayGotoKillButton(int bossId)
|
| | | {
|
| | | var config = BossHomeConfig.Get(model.selectedBoss);
|
| | | var isUnlock = config.MonsterType == 1 || findPreciousModel.IsBossUnlock(model.selectedBoss);
|
| | | m_Goto.gameObject.SetActive(isUnlock);
|
| | | }
|
| | |
|
| | | private void DisplaySubscribe(int bossId)
|
| | | {
|
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
|
| | | m_Subscribe.gameObject.SetActive(isUnLocked);
|
| | | if (isUnLocked)
|
| | | {
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
| | |
|
| | | newRewards = demonJarConfig.NewItemIds;
|
| | | break;
|
| | | case FindPreciousType.DogzDungeon:
|
| | | undoubtedlyRewards = DogzDungeonConfig.Get(bossId).RareItemID;
|
| | | newRewards = DogzDungeonConfig.Get(bossId).NewItemIds;
|
| | | break;
|
| | | case FindPreciousType.CrossServerBoss:
|
| | | undoubtedlyRewards = CrossServerBossConfig.Get(bossId).RareItemID;
|
| | | newRewards = CrossServerBossConfig.Get(bossId).NewItemIds;
|
| | |
| | | protected override InteractorableState interactorableState {
|
| | | get {
|
| | | var selected = selectedBossId == bossId;
|
| | | var dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
|
| | | var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId);
|
| | |
|
| | | if (!dieOrLocked)
|
| | | {
|
| | |
| | |
|
| | | protected override bool isRebornRightNow {
|
| | | get {
|
| | | return model.IsBossUnLocked(bossId) && base.isRebornRightNow;
|
| | | }
|
| | | }
|
| | |
|
| | | protected override bool isUnLocked {
|
| | | get {
|
| | | return model.IsBossUnLocked(bossId);
|
| | | return findPreciousModel.IsBossUnlock(bossId) && base.isRebornRightNow;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | protected override void OnBossInfoUpdate(int _bossId)
|
| | | {
|
| | | base.OnBossInfoUpdate(_bossId);
|
| | | var unLocked = model.IsBossUnLocked(bossId);
|
| | | m_Participant.gameObject.SetActive(unLocked && findPreciousModel.IsBossAlive(bossId));
|
| | | m_Participant.gameObject.SetActive(isUnLocked && findPreciousModel.IsBossAlive(bossId));
|
| | | }
|
| | |
|
| | | private void UpdateBossParticipant(int _bossId)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | int demonJarSoulBuf = 0;
|
| | | public int demonJarSoulIncreaseDelta { get; set; }
|
| | |
|
| | | public event Action<int> bossSelectedEvent;
|
| | |
| | |
|
| | | FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | | TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | |
| | | continue;
|
| | | }
|
| | |
|
| | | if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
|
| | | {
|
| | | bosses.Add(bossId);
|
| | | }
|
| | | }
|
| | |
|
| | | return new List<int>(bosses);
|
| | | return bosses;
|
| | | }
|
| | |
|
| | | public int GetBossIdByLine(int _line)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public bool IsBossUnLocked(int _bossId)
|
| | | {
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | | return demonBosses.ContainsKey(_bossId) && playerLevel >= demonBosses[_bossId].unLockLevel;
|
| | | }
|
| | |
|
| | | public int GetLatestUnLockBoss()
|
| | | {
|
| | | if (FuncOpen.Instance.IsFuncOpen(76))
|
| | |
| | | for (int i = sortedBossIds.Count - 1; i >= 0; i--)
|
| | | {
|
| | | var bossId = sortedBossIds[i];
|
| | | if (demonBosses[bossId].unLockLevel <= PlayerDatas.Instance.baseData.LV)
|
| | | if (findPreciousModel.IsBossUnlock(bossId))
|
| | | {
|
| | | latestBossId = bossId;
|
| | | break;
|
| | |
| | | return new List<AutoChallengeLog>(autoChallengeLogs);
|
| | | }
|
| | |
|
| | | public void UpdateDemonJarSoul()
|
| | | {
|
| | | //demonJarSoulIncreaseDelta = demonJarSoul - demonJarSoulBuf;
|
| | | //demonJarSoulBuf = demonJarSoul;
|
| | | }
|
| | |
|
| | | private void OnPlayerLevelUp(PlayerDataType _type)
|
| | | {
|
| | | switch (_type)
|
| | | {
|
| | | case PlayerDataType.LV:
|
| | | case PlayerDataType.RealmLevel:
|
| | | if (FuncOpen.Instance.IsFuncOpen(76))
|
| | | {
|
| | | var bossId = GetLatestUnLockBoss();
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void AutoSubscribeLastUnLockBoss(int _bossId)
|
| | | private void AutoSubscribeLastUnLockBoss(int bossId)
|
| | | {
|
| | | if (_bossId == 0)
|
| | | if (bossId == 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | foreach (var boss in demonBosses.Values)
|
| | | {
|
| | | if (this.findPreciousModel.IsBossAutoSubscribe(boss.id) && boss.id != _bossId)
|
| | | if (this.findPreciousModel.IsBossAutoSubscribe(boss.id) && boss.id != bossId)
|
| | | {
|
| | | this.findPreciousModel.RequestDeSubscribeBoss(boss.id);
|
| | | }
|
| | | }
|
| | |
|
| | | if (_bossId != 0 && this.findPreciousModel.IsBossNeverSubscribe((int)_bossId))
|
| | | if (bossId != 0 && this.findPreciousModel.IsBossNeverSubscribe(bossId))
|
| | | {
|
| | | var npcConfig = NPCConfig.Get((int)_bossId);
|
| | | if (PlayerDatas.Instance.baseData.LV >= npcConfig.NPCLV)
|
| | | if (findPreciousModel.IsBossUnlock(bossId))
|
| | | {
|
| | | var config = DemonJarConfig.Get((int)_bossId);
|
| | | var config = DemonJarConfig.Get(bossId);
|
| | | if (config.AutoAttention == 1)
|
| | | {
|
| | | this.findPreciousModel.RequestSubscribeBoss((int)_bossId, true);
|
| | | this.findPreciousModel.RequestSubscribeBoss(bossId, true);
|
| | | var model = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var grade = model.GetGrade(new Dungeon(DATA_MAPID, config.LineID));
|
| | | if ((config.CanEnterTimes == 0 || grade == 0) && this.findPreciousModel.IsBossAlive((int)_bossId))
|
| | | if ((config.CanEnterTimes == 0 || grade == 0) && this.findPreciousModel.IsBossAlive(bossId))
|
| | | {
|
| | | this.findPreciousModel.AddOneBossRebornNotify(_bossId);
|
| | | this.findPreciousModel.AddOneBossRebornNotify(bossId);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | [SerializeField] RectTransform m_ContainerDouble;
|
| | | [SerializeField] Button m_BtnAutoAndDouble;
|
| | | [SerializeField] Text m_AutoAndDoubleTitle;
|
| | |
|
| | | DemonJarModel model { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
|
| | | FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
| | |
| | | dungeonModel.dungeonRecordChangeEvent += OnRemaintimeUpdate;
|
| | | dungeonModel.countRemainTimeChangeEvent += OnRemaintimeUpdate;
|
| | | dungeonModel.updateDungeonBuyCnt += OnBuyTimesOk;
|
| | | model.doubleAwardChangeEvent += OnDoubleAwardChange;
|
| | | model.autoChallengeChangeEvent += OnAutoChallengeChange;
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | |
| | | dungeonModel.dungeonRecordChangeEvent -= OnRemaintimeUpdate;
|
| | | dungeonModel.countRemainTimeChangeEvent -= OnRemaintimeUpdate;
|
| | | dungeonModel.updateDungeonBuyCnt -= OnBuyTimesOk;
|
| | | model.doubleAwardChangeEvent -= OnDoubleAwardChange;
|
| | | model.autoChallengeChangeEvent -= OnAutoChallengeChange;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | |
| | | ShowBosses();
|
| | | model.lockSelectedBoss = false;
|
| | |
|
| | | DisplayAutoAndDoubleTitle();
|
| | | CheckTaskGuide();
|
| | | CheckAchievementGuideByTimes();
|
| | | CheckAchievementGuideKillBoss();
|
| | |
| | | if (!model.lockSelectedBoss)
|
| | | {
|
| | | var targetBoss = model.GetLatestUnLockBoss();
|
| | | if (!findPreciousModel.IsBossAlive(targetBoss))
|
| | | {
|
| | | var priorConfig = NPCConfig.Get(targetBoss);
|
| | | if (priorConfig.NPCLV <= GeneralDefine.demonJarLevelLimit)
|
| | | {
|
| | | targetBoss = bosses[0];
|
| | | for (int i = bosses.Count - 1; i >= 0; i--)
|
| | | {
|
| | | var bossId = bosses[i];
|
| | | var npcConfig = NPCConfig.Get(bossId);
|
| | | if (npcConfig.NPCLV <= priorConfig.NPCLV && findPreciousModel.IsBossAlive(bossId))
|
| | | {
|
| | | targetBoss = bossId;
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | model.selectedBoss = targetBoss;
|
| | | }
|
| | |
|
| | | DemonJarBossData bossData;
|
| | | model.TryGetBossData(model.selectedBoss, out bossData);
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
|
| | |
|
| | | m_BossIntroduce.Display(model.selectedBoss, true);
|
| | | m_Bosses.Init(bosses);
|
| | | m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
|
| | |
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplaySubscribe(model.selectedBoss);
|
| | | DisplayTip(model.selectedBoss);
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void OnDoubleAwardChange()
|
| | | {
|
| | | DisplayAutoAndDoubleTitle();
|
| | | }
|
| | |
|
| | | private void OnAutoChallengeChange()
|
| | | {
|
| | | DisplayAutoAndDoubleTitle();
|
| | | }
|
| | |
|
| | | private void DisplayAutoAndDoubleTitle()
|
| | | {
|
| | | var config = DemonJarConfig.Get(model.selectedBoss);
|
| | | var doubleAllow = config.CanEnterTimes == 0;
|
| | | var doubleString = UIHelper.AppendColor(model.isDoubleAward && doubleAllow ? TextColType.Green : TextColType.NavyBrown, Language.Get("DemonJarDoubleWord"), true);
|
| | | var autoString = UIHelper.AppendColor(model.autoChallenge ? TextColType.Green : TextColType.NavyBrown, Language.Get("DemonJarAutoWord"), true);
|
| | |
|
| | | m_AutoAndDoubleTitle.text = StringUtility.Contact(autoString, "/", doubleString);
|
| | | }
|
| | |
|
| | | private void GotoKillBoss()
|
| | | {
|
| | | var error = 0;
|
| | |
| | | DemonJarBossData bossData = null;
|
| | | if (model.TryGetBossData(model.selectedBoss, out bossData))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("DemonJarLvChallenge", bossData.unLockLevel);
|
| | | var config = NPCConfig.Get(model.selectedBoss);
|
| | | var realmConfig = RealmConfig.Get(config.Realm);
|
| | | SysNotifyMgr.Instance.ShowTip("DemonJarLvChallenge", realmConfig.Name);
|
| | | }
|
| | | break;
|
| | | case 2:
|
| | |
| | | model.doubleToKillLowerBossHint = false;
|
| | | }
|
| | | });
|
| | | break;
|
| | | case 6:
|
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | private bool TestEnterDungeon(out int _error)
|
| | | {
|
| | | if (findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
|
| | | {
|
| | | _error = 6;
|
| | | return false;
|
| | | }
|
| | |
|
| | | DemonJarBossData bossData = null;
|
| | | if (model.TryGetBossData(model.selectedBoss, out bossData))
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel)
|
| | | if (findPreciousModel.IsBossUnlock(model.selectedBoss))
|
| | | {
|
| | | _error = 1;
|
| | | return false;
|
| | |
| | | private void OnBossSelected(int bossId)
|
| | | {
|
| | | m_BossIntroduce.Display(bossId, false);
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
|
| | |
|
| | | DemonJarBossData bossData;
|
| | | model.TryGetBossData(bossId, out bossData);
|
| | |
| | | var config = DemonJarConfig.Get(model.selectedBoss);
|
| | | m_RewardDescription.text = Language.Get(config.RewardDescription);
|
| | |
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplaySubscribe(model.selectedBoss);
|
| | | DisplayTip(bossId);
|
| | | DisplayAutoAndDoubleTitle();
|
| | | }
|
| | |
|
| | | private void CheckAchievementGuideByTimes()
|
| | |
| | |
|
| | | private void DisplayTip(int bossId)
|
| | | {
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var config = NPCConfig.Get(bossId);
|
| | |
|
| | | if (config.Realm > realmLevel)
|
| | | if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId))
|
| | | {
|
| | | m_NoDamageTip.gameObject.SetActive(true);
|
| | | m_SurpassLevel.gameObject.SetActive(false);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void DisplayGotoKillButton(int bossId)
|
| | | {
|
| | | var isUnlock = findPreciousModel.IsBossUnlock(model.selectedBoss);
|
| | | m_Goto.gameObject.SetActive(isUnlock);
|
| | | }
|
| | |
|
| | | private void DisplaySubscribe(int bossId)
|
| | | {
|
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
|
| | | m_Subscribe.gameObject.SetActive(isUnLocked);
|
| | | if (isUnLocked)
|
| | | {
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public bool IsBossUnLocked(int _bossId)
|
| | | {
|
| | | var config = ElderGodAreaConfig.Get(_bossId);
|
| | | if (config == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | if (config.MonsterType == 1)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | else
|
| | | {
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | | return elderGodBosses.ContainsKey(_bossId) && playerLevel >= elderGodBosses[_bossId].unLockLevel;
|
| | | }
|
| | | }
|
| | |
|
| | | public List<int> GetElderGodNpces()
|
| | | {
|
| | | var bosses = new List<int>();
|
| | | bosses.Add(sortedElites[0]);
|
| | | bosses.AddRange(sortedBossIds);
|
| | | for (int i = 0; i < sortedBossIds.Count; i++)
|
| | | {
|
| | | bosses.Add(sortedBossIds[i]);
|
| | | }
|
| | |
|
| | | return bosses;
|
| | | }
|
| | |
|
| | | public List<int> GetElderGodBosses()
|
| | | {
|
| | | var bosses = new List<int>();
|
| | | bosses.AddRange(sortedBossIds);
|
| | | for (int i = 0; i < sortedBossIds.Count; i++)
|
| | | {
|
| | | bosses.Add(sortedBossIds[i]);
|
| | | }
|
| | | return bosses;
|
| | | }
|
| | |
|
| | | public int GetRecommendNpc()
|
| | | {
|
| | | foreach (var item in sortedBossIds)
|
| | | for (var i = sortedBossIds.Count - 1; i >= 0; i--)
|
| | | {
|
| | | if (findPreciousModel.IsBossAlive(item))
|
| | | var bossId = sortedBossIds[i];
|
| | | if (findPreciousModel.IsBossUnlock(bossId) && findPreciousModel.IsBossAlive(bossId))
|
| | | {
|
| | | return item;
|
| | | return bossId;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | var bosses = new List<int>();
|
| | | bosses.AddRange(model.GetElderGodNpces());
|
| | |
|
| | | model.selectedBoss = model.GetRecommendNpc();
|
| | | DisplayNpcBaseInfo(true);
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
|
| | |
|
| | | m_Bosses.Init(bosses);
|
| | | m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
|
| | |
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplaySubscribe(model.selectedBoss);
|
| | | DisplayNpcBaseInfo(true);
|
| | | DisplayTip(model.selectedBoss);
|
| | | }
|
| | |
|
| | |
| | | case 3:
|
| | | SysNotifyMgr.Instance.ShowTip("DungeonNoGO");
|
| | | break;
|
| | | case 4:
|
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private bool TestEnterDungeon(out int _error)
|
| | | {
|
| | | var config = ElderGodAreaConfig.Get(model.selectedBoss);
|
| | | if (config.MonsterType == 2 && !findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
|
| | | {
|
| | | _error = 4;
|
| | | return false;
|
| | | }
|
| | |
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
|
| | | {
|
| | |
| | | {
|
| | | StopCoroutine("Co_DelayDisplayNpcBaseInfo");
|
| | | StartCoroutine("Co_DelayDisplayNpcBaseInfo");
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
|
| | |
|
| | | DisplayTip(bossId);
|
| | | }
|
| | |
|
| | | private void DisplayNpcBaseInfo(bool immediately)
|
| | |
| | | IEnumerator Co_DelayDisplayNpcBaseInfo()
|
| | | {
|
| | | yield return WaitingForSecondConst.WaitMS300;
|
| | | DisplayNpcBaseInfo(false);
|
| | |
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplaySubscribe(model.selectedBoss);
|
| | | DisplayTip(model.selectedBoss);
|
| | | DisplayNpcBaseInfo(true);
|
| | | }
|
| | |
|
| | | private void CheckAchievementGuide()
|
| | |
| | |
|
| | | private void DisplayTip(int bossId)
|
| | | {
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var config = NPCConfig.Get(bossId);
|
| | |
|
| | | if (config.Realm > realmLevel)
|
| | | if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId))
|
| | | {
|
| | | m_NoDamageTip.gameObject.SetActive(true);
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void DisplayGotoKillButton(int bossId)
|
| | | {
|
| | | var config = ElderGodAreaConfig.Get(model.selectedBoss);
|
| | | var isUnlock = config.MonsterType == 1 || findPreciousModel.IsBossUnlock(model.selectedBoss);
|
| | | m_Goto.gameObject.SetActive(isUnlock);
|
| | | }
|
| | |
|
| | | private void DisplaySubscribe(int bossId)
|
| | | {
|
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
|
| | | m_Subscribe.gameObject.SetActive(isUnLocked);
|
| | | if (isUnLocked)
|
| | | {
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | get {
|
| | | var selected = selectedBossId == bossId;
|
| | | var config = ElderGodAreaConfig.Get(bossId);
|
| | | var dieOrLocked = config.MonsterType == 2 && (!model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId));
|
| | | var dieOrLocked = config.MonsterType == 2 |
| | | && (!findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId));
|
| | |
|
| | | if (!dieOrLocked)
|
| | | {
|
| | |
| | | var npcConfig = NPCConfig.Get(bossId);
|
| | | DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.ClientRealm);
|
| | | UpdateBossPortrait(interactorableState);
|
| | | UpdateBossRebornCoolDown(true);
|
| | | UpdateBossRebornCoolDown(isUnLocked);
|
| | | OnSelected(bossId);
|
| | |
|
| | | model.bossSelectedEvent -= OnSelected;
|
| | |
| | | UpdateBossNameLevelFont(interactorableState);
|
| | | }
|
| | |
|
| | | protected override void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm)
|
| | | protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
|
| | | {
|
| | | var config = ElderGodAreaConfig.Get(bossId);
|
| | | m_Portrait.SetSprite(_icon);
|
| | | m_Portrait.SetNativeSize();
|
| | |
|
| | | switch (config.MonsterType)
|
| | | {
|
| | | case 1:
|
| | | m_Portrait.SetSprite(icon);
|
| | | m_Portrait.SetNativeSize();
|
| | | m_BossName.text = Language.Get("ElderGodMonster");
|
| | | m_BossLevel.text = string.Empty;
|
| | | m_RealmContainer.gameObject.SetActive(false);
|
| | | m_UnLockCondition.gameObject.SetActive(false);
|
| | | break;
|
| | | case 2:
|
| | | m_BossName.text = _name;
|
| | | m_BossLevel.text = Language.Get("Z1024", _level);
|
| | | if (m_Realm != null && m_RealmContainer != null)
|
| | | {
|
| | | if (_realm > 0 && 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);
|
| | | }
|
| | | }
|
| | | base.DrawBossBaseInfo(icon, name, level, realm);
|
| | | break;
|
| | | default:
|
| | | break;
|
| | |
| | | [SerializeField] protected TextEx m_BossLevel;
|
| | | [SerializeField] protected RectTransform m_RealmContainer;
|
| | | [SerializeField] protected Image m_Realm;
|
| | | [SerializeField] protected RectTransform m_UnLockCondition;
|
| | | [SerializeField] protected Image m_UnLockRealm;
|
| | | [SerializeField] protected TimerBehaviour m_CoolDown;
|
| | | [SerializeField] protected Transform m_RefreshAtOnce;
|
| | | [SerializeField] protected Material m_NormalMaterial;
|
| | |
| | |
|
| | | protected virtual bool isRebornRightNow {
|
| | | get {
|
| | | FindPreciousModel.BossInfo bossInfo = null;
|
| | | if (findPreciousModel.TryGetBossInfo(bossId, out bossInfo))
|
| | | {
|
| | | return !findPreciousModel.IsBossAlive(bossId) && TimeUtility.ServerNow > bossInfo.refreshTime;
|
| | | }
|
| | | else
|
| | | if (!findPreciousModel.IsBossUnlock(bossId))
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | FindPreciousModel.BossInfo bossInfo = null;
|
| | | if (!findPreciousModel.TryGetBossInfo(bossId, out bossInfo))
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | return !findPreciousModel.IsBossAlive(bossId) && TimeUtility.ServerNow > bossInfo.refreshTime;
|
| | | }
|
| | | }
|
| | |
|
| | | protected virtual bool isUnLocked {
|
| | | get { return true; }
|
| | | get { return findPreciousModel.IsBossUnlock(bossId); }
|
| | | }
|
| | |
|
| | | protected FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
| | |
| | | findPreciousModel.bossInfoUpdateEvent -= OnBossInfoUpdate;
|
| | | }
|
| | |
|
| | | protected virtual 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.SetSprite(icon);
|
| | | m_Portrait.SetNativeSize();
|
| | | m_BossName.text = _name;
|
| | | m_BossLevel.text = Language.Get("Z1024", _level);
|
| | | this.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 = findPreciousModel.GetBossUnLockRealm(bossId);
|
| | | var config = RealmConfig.Get(unLockRealm);
|
| | | m_UnLockRealm.SetSprite(config.Img);
|
| | | }
|
| | | else
|
| | | {
|
| | | if (m_Realm != null && m_RealmContainer != null)
|
| | | {
|
| | | if (_realm > 0 && RealmConfig.Has(_realm))
|
| | | if (realm > 0 && RealmConfig.Has(realm))
|
| | | {
|
| | | m_RealmContainer.gameObject.SetActive(true);
|
| | | var realmConfig = RealmConfig.Get(_realm);
|
| | | var realmConfig = RealmConfig.Get(realm);
|
| | | if (realmConfig != null)
|
| | | {
|
| | | m_Realm.SetSprite(realmConfig.Img);
|
| | |
| | | else
|
| | | {
|
| | | m_RealmContainer.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | m_Selected.gameObject.SetActive(selected);
|
| | | //m_BackGround.SetSprite(selected ? "DemonJarSelectFrame" : "DemonJarNormalFrame");
|
| | |
|
| | | var fontPattern = string.Empty;
|
| | | switch (_state)
|
| | |
| | | break;
|
| | | case FindPreciousType.PersonalBoss:
|
| | | break;
|
| | | case FindPreciousType.DogzDungeon:
|
| | | GotoKillDogzDungeonBoss(bossId);
|
| | | break;
|
| | | case FindPreciousType.CrossServerBoss:
|
| | | GotoKillCrossServerBoss(bossId);
|
| | | break;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void GotoKillDogzDungeonBoss(int _bossId)
|
| | | {
|
| | | if (CrossServerUtility.IsCrossServer())
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("CrossMap10");
|
| | | return;
|
| | | }
|
| | |
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var mapConfig = MapConfig.Get(mapId);
|
| | |
|
| | | if (mapConfig.MapFBType == (int)MapType.OpenCountry)
|
| | | {
|
| | | MapTransferUtility.Instance.MoveToNPC(_bossId);
|
| | | }
|
| | | else
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
|
| | | }
|
| | | }
|
| | |
|
| | | private void GotoKillCrossServerBoss(int _bossId)
|
| | |
| | | WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
|
| | | BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
|
| | | PersonalBossModel personalBossModel { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
|
| | | DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
|
| | | JadeDynastyBossModel jadeDynastyBossModel { get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); } }
|
| | | RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | |
| | | return bossInfos.TryGetValue(_bossId, out _bossInfo);
|
| | | }
|
| | |
|
| | | public bool IsBossUnlock(int bossId)
|
| | | {
|
| | | var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var myRealmStage = realmModel.GetRealmStage(myRealmLevel);
|
| | |
|
| | | var config = NPCConfig.Get(bossId);
|
| | | var bossRealmStage = realmModel.GetRealmStage(config.Realm);
|
| | |
|
| | | return myRealmStage >= bossRealmStage;
|
| | | }
|
| | |
|
| | | public bool IsBossUnlockOrUnlockSoon(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;
|
| | | }
|
| | |
|
| | | public bool IsRealmEnoughToKillBoss(int bossId)
|
| | | {
|
| | | var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var config = NPCConfig.Get(bossId);
|
| | | return myRealmLevel >= config.Realm;
|
| | | }
|
| | |
|
| | | public int GetBossUnLockRealm(int bossId)
|
| | | {
|
| | | 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;
|
| | | }
|
| | | }
|
| | |
|
| | | public bool IsBossAlive(int _bossId)
|
| | | {
|
| | | if (demonJarModel.IsPersonalBoss(_bossId))
|
| | |
| | | findPreciousRedpoint.count = totalCount;
|
| | | }
|
| | |
|
| | | if (_redpointId == DogzDungeonModel.DOGZDUNGEON_REDPOINT ||
|
| | | _redpointId == JadeDynastyBossModel.JADEDYNASTY_REDPOINTID)
|
| | | if (_redpointId == JadeDynastyBossModel.JADEDYNASTY_REDPOINTID)
|
| | | {
|
| | | var dogzDungeonRedpointCount = dogzDungeonModel.redpoint.count;
|
| | | var jadeDynastyBossRedpointCount = jadeDynastyBossModel.redpoint.count;
|
| | | var totalCount = dogzDungeonRedpointCount + jadeDynastyBossRedpointCount;
|
| | | var totalCount = jadeDynastyBossRedpointCount;
|
| | |
|
| | | lootPreciousRedpoint.count = totalCount;
|
| | | lootPreciousRedpoint.state = totalCount > 0 ? RedPointState.Quantity : RedPointState.None;
|
| | |
| | | else if (PersonalBossConfig.Has(_bossId))
|
| | | {
|
| | | return FindPreciousType.PersonalBoss;
|
| | | }
|
| | | else if (DogzDungeonConfig.Has(_bossId))
|
| | | {
|
| | | return FindPreciousType.DogzDungeon;
|
| | | }
|
| | | else if (CrossServerBossConfig.Has(_bossId))
|
| | | {
|
| | |
| | | protected override InteractorableState interactorableState {
|
| | | get {
|
| | | var selected = selectedBossId == bossId;
|
| | | var dieOrLocked = !model.IsBossUnLocked(bossId);
|
| | | var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossUnlock(bossId);
|
| | |
|
| | | if (!dieOrLocked)
|
| | | {
|
| | |
| | | var npcConfig = NPCConfig.Get(bossId);
|
| | | DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.ClientRealm);
|
| | | UpdateBossPortrait(interactorableState);
|
| | | UpdateBossRebornCoolDown(true);
|
| | | UpdateBossRebornCoolDown(isUnLocked);
|
| | | OnSelected(bossId);
|
| | |
|
| | | model.bossSelectedEvent -= OnSelected;
|
| | |
| | | private void OnSelected(int _bossId)
|
| | | {
|
| | | UpdateBossNameLevelFont(interactorableState);
|
| | | }
|
| | |
|
| | | protected override void UpdateBossPortrait(InteractorableState _state)
|
| | | {
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | playerPack.refreshItemCountEvent += RefreshItemCount;
|
| | | PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataChange;
|
| | | dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordChange;
|
| | |
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | |
| | |
|
| | | public List<int> GetPersonalBosses()
|
| | | {
|
| | | return new List<int>(sortedBossIds);
|
| | | var bosses = new List<int>();
|
| | | for (int i = 0; i < sortedBossIds.Count; i++)
|
| | | {
|
| | | var bossId = sortedBossIds[i];
|
| | | if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
|
| | | {
|
| | | bosses.Add(bossId);
|
| | | }
|
| | | }
|
| | |
|
| | | public bool IsBossUnLocked(int _bossId)
|
| | | {
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | | return personalBosses.ContainsKey(_bossId) && playerLevel >= personalBosses[_bossId].challengableLevel;
|
| | | return bosses;
|
| | | }
|
| | |
|
| | | public int GetLatestUnLockBoss()
|
| | |
| | | for (int i = sortedBossIds.Count - 1; i >= 0; i--)
|
| | | {
|
| | | var bossId = sortedBossIds[i];
|
| | | if (IsBossUnLocked(bossId))
|
| | | if (findPreciousModel.IsBossUnlock(bossId))
|
| | | {
|
| | | return bossId;
|
| | | }
|
| | |
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | public class PersonalBossWin : Window
|
| | | {
|
| | | [SerializeField] CyclicScroll m_Bosses;
|
| | |
| | | [SerializeField] RectTransform m_NoDamageTip;
|
| | |
|
| | | PersonalBossModel model { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
|
| | | FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | |
|
| | | int enterTimes = 0;
|
| | |
| | | bosses.AddRange(model.GetPersonalBosses());
|
| | |
|
| | | model.selectedBoss = model.GetLatestUnLockBoss();
|
| | |
|
| | | m_BossIntroduce.Display(model.selectedBoss, true);
|
| | | m_Bosses.Init(bosses);
|
| | | m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
|
| | |
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplayTip(model.selectedBoss);
|
| | | }
|
| | |
|
| | |
| | | WindowCenter.Instance.Open<PersonalBossVipLackWin>();
|
| | | break;
|
| | | case 3:
|
| | | var config = PersonalBossConfig.Get(model.selectedBoss);
|
| | | var dungeonId = dungeonModel.GetDungeonId(PersonalBossModel.PERSONALBOSS_MAPID, config.lineId);
|
| | | var dungeonConfig = DungeonConfig.Get(dungeonId);
|
| | | SysNotifyMgr.Instance.ShowTip("PersonalBoss_LevelLimit", dungeonConfig.LVLimitMin);
|
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
|
| | | break;
|
| | | case 4:
|
| | | SysNotifyMgr.Instance.ShowTip("DungeonNoGO");
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | if (!model.IsBossUnLocked(model.selectedBoss))
|
| | | if (!findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
|
| | | {
|
| | | _error = 3;
|
| | | return false;
|
| | |
| | | private void OnBossSelected(int bossId)
|
| | | {
|
| | | m_BossIntroduce.Display(bossId, false);
|
| | | DisplayGotoKillButton(model.selectedBoss);
|
| | | DisplayTip(bossId);
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void DisplayGotoKillButton(int bossId)
|
| | | {
|
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
|
| | | m_Goto.gameObject.SetActive(isUnLocked);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | public class WorldBossBreifInfoBehaviour : FindPreciousBossBriefInfoBehaviour
|
| | | {
|
| | | [SerializeField] Image m_Attention;
|
| | | [SerializeField] RectTransform m_UnLockCondition;
|
| | | [SerializeField] Image m_UnLockRealm;
|
| | |
|
| | | protected override int selectedBossId {
|
| | | get {
|
| | |
| | | protected override InteractorableState interactorableState {
|
| | | get {
|
| | | var selected = selectedBossId == bossId;
|
| | | var dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
|
| | | var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId);
|
| | |
|
| | | if (!dieOrLocked)
|
| | | {
|
| | |
| | |
|
| | | protected override bool isUnLocked {
|
| | | get {
|
| | | return model.IsBossUnLocked(bossId);
|
| | | return findPreciousModel.IsBossUnlock(bossId);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | |
|
| | | 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 (realm > 0 && 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);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | for (int i = 0; i < sortedBossIds.Count; i++)
|
| | | {
|
| | | var bossId = sortedBossIds[i];
|
| | | if (IsBossUnLockedOrUnlockSoon(bossId))
|
| | | if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
|
| | | {
|
| | | activedBossIds.Add(bossId);
|
| | | }
|
| | |
| | | return bosses;
|
| | | }
|
| | |
|
| | | public bool IsBossUnLocked(int _bossId)
|
| | | {
|
| | | return worldBosses.ContainsKey(_bossId) && worldBosses[_bossId].isUnLocked;
|
| | | }
|
| | |
|
| | | public int GetRecommendBoss()
|
| | | {
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | |
| | | {
|
| | | var bossId = sortedBossIds[i];
|
| | | var npcConfig = NPCConfig.Get(bossId);
|
| | | if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV)
|
| | | if (findPreciousModel.IsBossUnlock(bossId) |
| | | && findPreciousModel.IsBossAlive(bossId) |
| | | && playerLevel >= npcConfig.NPCLV)
|
| | | {
|
| | | return bossId;
|
| | | }
|
| | | }
|
| | |
|
| | | 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 OnFunctionChange(int id)
|
| | |
| | |
|
| | | public class WorldBossData
|
| | | {
|
| | | RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
|
| | |
|
| | | public int id { get; private set; }
|
| | | public bool isUnLocked {
|
| | | get {
|
| | | 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;
|
| | | }
|
| | | }
|
| | |
|
| | | public WorldBossData(int _id)
|
| | | {
|
| | | this.id = _id;
|
| | |
| | |
|
| | | private bool TestGotoKillBoss(out int _error)
|
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(mapId);
|
| | | if (findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
|
| | | {
|
| | | _error = 4;
|
| | | return false;
|
| | | }
|
| | |
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var dataMapId = MapUtility.GetDataMapId(mapId);
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID || dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
|
| | | {
|
| | | _error = 1;
|
| | |
| | | case 3:
|
| | | SysNotifyMgr.Instance.ShowTip("CrossMap10");
|
| | | break;
|
| | | case 4:
|
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | private void DisplayGotoKillButton(int bossId)
|
| | | {
|
| | | var isUnLocked = model.IsBossUnLocked(bossId);
|
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
|
| | | m_Goto.gameObject.SetActive(isUnLocked);
|
| | | }
|
| | |
|
| | | private void DisplaySubscribe(int bossId)
|
| | | {
|
| | | var isUnLocked = model.IsBossUnLocked(bossId);
|
| | | var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
|
| | | m_Subscribe.gameObject.SetActive(isUnLocked);
|
| | | if (isUnLocked)
|
| | | {
|
| | |
| | |
|
| | | private void DisplayTip(int bossId)
|
| | | {
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var config = NPCConfig.Get(bossId);
|
| | |
|
| | | if (config.Realm > realmLevel)
|
| | | if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId))
|
| | | {
|
| | | m_NoDamageTip.gameObject.SetActive(true);
|
| | | m_SurpassLevel.gameObject.SetActive(false);
|
| | |
| | | Dictionary<IInGamePush, Transform> m_InGamePushTrans = new Dictionary<IInGamePush, Transform>();
|
| | |
|
| | | WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
|
| | | DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
|
| | | BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
|
| | | CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
|
| | | VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
|
| | |
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | | FBHelpPointExchageModel exchageModel { get { return ModelCenter.Instance.GetModel<FBHelpPointExchageModel>(); } }
|
| | |
| | | show = !GeneralDefine.worldBossNoRebornRemindMaps.Contains(mapId);
|
| | | break;
|
| | | case FindPreciousType.BossHome:
|
| | | killable = true;
|
| | | killable = bossHomeModel.wearyValue < vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit);
|
| | | show = !GeneralDefine.bossHomeNoRebornRemindMaps.Contains(mapId);
|
| | | break;
|
| | | case FindPreciousType.ElderGodArea:
|
| | |
| | | killable = totalTimes > enterTimes;
|
| | | show = !GeneralDefine.demonJarNoRebornRemindMaps.Contains(mapId);
|
| | | }
|
| | | break;
|
| | | case FindPreciousType.DogzDungeon:
|
| | | killable = dogzDungeonModel.wearyValue < GeneralDefine.bossWearyValues[2];
|
| | | show = !GeneralDefine.dogzNoRebornRemindMaps.Contains(mapId);
|
| | | break;
|
| | | case FindPreciousType.CrossServerBoss:
|
| | | killable = crossServerBossModel.wearyValue < GeneralDefine.bossWearyValues[2];
|
| | |
| | | if (isNeutralMap && !AdventureStage.Instance.IsInAdventureStage)
|
| | | {
|
| | | m_BossBriefInfos.gameObject.SetActive(true);
|
| | | if (PlayerDatas.Instance.baseData.MapID == DogzDungeonModel.DATA_MAPID)
|
| | | if (PlayerDatas.Instance.baseData.MapID == CrossServerBossModel.DATA_MAPID)
|
| | | {
|
| | | var bosses = ModelCenter.Instance.GetModel<DogzDungeonModel>().GetBosses();
|
| | | m_BossBriefInfos.Display(bosses);
|
| | | }
|
| | | else if (PlayerDatas.Instance.baseData.MapID == CrossServerBossModel.DATA_MAPID)
|
| | | {
|
| | | var bosses = ModelCenter.Instance.GetModel<CrossServerBossModel>().GetBosses();
|
| | | var bosses = ModelCenter.Instance.GetModel<CrossServerBossModel>().GetShowBosses();
|
| | | m_BossBriefInfos.Display(bosses);
|
| | | }
|
| | | else
|
| | |
| | | RegisterModel<TrialDungeonModel>();
|
| | | RegisterModel<ActivitiesPushModel>();
|
| | | RegisterModel<MultipleRealmPointModel>();
|
| | | RegisterModel<DogzDungeonModel>();
|
| | | RegisterModel<DogzModel>();
|
| | | RegisterModel<GodBeastModel>();
|
| | | RegisterModel<FeatureNoticeModel>();
|
| | |
| | | normalTasks.Add(new ConfigInitTask("DienstgradConfig", () => { DienstgradConfig.Init(); }, () => { return DienstgradConfig.inited; })); |
| | | normalTasks.Add(new ConfigInitTask("DirtyNameConfig", () => { DirtyNameConfig.Init(); }, () => { return DirtyNameConfig.inited; })); |
| | | normalTasks.Add(new ConfigInitTask("DogzConfig", () => { DogzConfig.Init(); }, () => { return DogzConfig.inited; })); |
| | | normalTasks.Add(new ConfigInitTask("DogzDungeonConfig", () => { DogzDungeonConfig.Init(); }, () => { return DogzDungeonConfig.inited; })); |
| | | normalTasks.Add(new ConfigInitTask("DogzEquipPlusConfig", () => { DogzEquipPlusConfig.Init(); }, () => { return DogzEquipPlusConfig.inited; })); |
| | | normalTasks.Add(new ConfigInitTask("DungeonHelpBattleConfig", () => { DungeonHelpBattleConfig.Init(); }, () => { return DungeonHelpBattleConfig.inited; })); |
| | | normalTasks.Add(new ConfigInitTask("DungeonHintConfig", () => { DungeonHintConfig.Init(); }, () => { return DungeonHintConfig.inited; })); |
| | |
| | | FairyDaimondGift = 23,
|
| | | MarketPutawayPwd = 24,
|
| | | DemonJar = 25,
|
| | | BossHomeAwardLimit = 27,
|
| | | DemonJarDouble = 28,
|
| | | BindJadeWheel = 30,
|
| | | PrayForDrug = 31,
|
| | |
| | | PersonalBoss = 2,
|
| | | ElderGodArea = 3,
|
| | | DemonJar = 4,
|
| | | DogzDungeon = 5,
|
| | | CrossServerBoss = 6,
|
| | | JadeDynastyBoss = 7,
|
| | | None = 99,
|