| System/Realm/RealmAnimationBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmLevelUpBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Realm/RealmAnimationBehaviour.cs
@@ -16,6 +16,7 @@ [SerializeField] UIEffect[] m_EffectLines; [SerializeField] UIEffect m_EffectLevelUp; [SerializeField] UIEffect m_EffectBoss; [SerializeField] UIEffect m_EffectBase; [SerializeField, Header("小境界升级特效时长")] float m_NormalLevelUpEffectTime = 1.5f; [SerializeField, Header("大境界升级特效时长")] float m_SpecialLevelUpEffectTime = 4.5f; @@ -98,7 +99,19 @@ yield break; } if (m_EffectBoss.IsPlaying) { if (m_EffectBase.target != null) { var obj = m_EffectBase.target.transform.Find("GameObject/b/b (3)"); if (obj != null) { obj.gameObject.SetActive(true); } } } m_EffectBoss.StopImediatly(); m_EffectLevelUp.StopImediatly(); var config = RealmConfig.Get(model.displayRealmLevel - 1); @@ -138,6 +151,15 @@ animator = m_EffectBoss.target.GetAnimator(); animator.Play("Effect_JingJieBJ_02", 0, 0); } if (m_EffectBase.target != null) { var obj = m_EffectBase.target.transform.Find("GameObject/b/b (3)"); if (obj != null) { obj.gameObject.SetActive(false); } } } if (onLevelUpComplete != null) System/Realm/RealmLevelUpBehaviour.cs
@@ -69,7 +69,7 @@ private void OnLevelUp() { var error = 0; if (TryLevelUp(out error)) if (model.TryLevelUp(out error)) { CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp(); GameNetSystem.Instance.SendInfo(pak); @@ -78,37 +78,6 @@ { DisplayErrorTip(error); } } bool TryLevelUp(out int error) { error = 0; if (PlayerDatas.Instance.baseData.realmLevel >= realmLevel) { error = 100; return false; } var config = RealmConfig.Get(realmLevel - 1); if (PlayerDatas.Instance.baseData.LV < config.NeedLV) { error = 1; return false; } if (config.BossID != 0 && !model.isBossPass) { error = 2; return false; } if (config.NeedGood != 0) { var count = packModel.GetItemCountByID(PackType.Item, config.NeedGood); if (count < config.NeedNum) { error = 3; return false; } } return true; } void DisplayErrorTip(int error) System/Realm/RealmModel.cs
@@ -40,6 +40,8 @@ int cacheMapId = 0; bool redpointDirty = false; public List<int> displayRealms = new List<int>(); public int displayRealmLevel @@ -57,10 +59,14 @@ public event Action selectRealmRefresh; EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } public override void Init() { StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent; GlobalTimeEvent.Instance.secondEvent += PerSecond; packModel.refreshItemCountEvent += RefreshItemCountEvent; ParseConfig(); } @@ -71,11 +77,24 @@ public void OnPlayerLoginOk() { redpointDirty = true; } public override void UnInit() { StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent; packModel.refreshItemCountEvent -= RefreshItemCountEvent; GlobalTimeEvent.Instance.secondEvent -= PerSecond; } private void PerSecond() { if (redpointDirty) { RefreshRedpoint(); redpointDirty = false; } } void ParseConfig() @@ -151,6 +170,38 @@ return m_RealmPreviewEquips[level].TryGetValue(job, out equips); } return false; } public bool TryLevelUp(out int error) { error = 0; var realmLevel = PlayerDatas.Instance.baseData.realmLevel; if (realmLevel >= realmMaxLevel) { error = 100; return false; } var config = RealmConfig.Get(realmLevel); if (PlayerDatas.Instance.baseData.LV < config.NeedLV) { error = 1; return false; } if (config.BossID != 0 && !isBossPass) { error = 2; return false; } if (config.NeedGood != 0) { var count = packModel.GetItemCountByID(PackType.Item, config.NeedGood); if (count < config.NeedNum) { error = 3; return false; } } return true; } public bool IsUnlockEquipRealm(int realmLevel, out int level) @@ -241,6 +292,7 @@ public void ReceivePackage(HA311_tagMCSyncRealmInfo package) { isBossPass = package.IsPass == 1; RefreshRedpoint(); } private void OnStageLoadFinish() @@ -261,6 +313,28 @@ } } cacheMapId = mapId; } } private void PlayerDataRefreshEvent(PlayerDataType dataType) { if (dataType == PlayerDataType.RealmLevel || dataType == PlayerDataType.LV || dataType == PlayerDataType.FightPoint) { redpointDirty = true; } } private void RefreshItemCountEvent(PackType packType, int arg2, int itemId) { if (packType == PackType.Item) { var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel); if (config != null && config.NeedGood == itemId) { redpointDirty = true; } } } @@ -287,5 +361,33 @@ } WindowCenter.Instance.Open<RealmWin>(); } void RefreshRedpoint() { var levelUpable = false; var challengeable = false; if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Realm)) { var realmLevel = PlayerDatas.Instance.baseData.realmLevel; if (realmLevel < realmMaxLevel) { var config = RealmConfig.Get(realmLevel); if (config.BossID != 0 && !isBossPass) { challengeable = PlayerDatas.Instance.baseData.FightPoint >= config.FightPower; } var error = 0; if (TryLevelUp(out error)) { levelUpable = true; } } } levelUpRedpoint.state = levelUpable ? RedPointState.Simple : RedPointState.None; challengeRedpoint.state = challengeable ? RedPointState.Simple : RedPointState.None; } } } System/Realm/RealmWin.cs
@@ -31,6 +31,7 @@ [SerializeField] PositionTween m_RealmLevelUpTween; [SerializeField] UIEffect m_EffectCover; [SerializeField] UIEffect m_EffectBoss; [SerializeField] UIEffect m_EffectBase; int cacheRealmLevel = 0; @@ -295,10 +296,12 @@ void DisplayEffectBoss() { bool requireBossEffect = false; m_EffectBoss.StopImediatly(); var config = RealmConfig.Get(model.displayRealmLevel); if (config.BossID != 0 && !model.isBossPass) { requireBossEffect = true; m_EffectBoss.Play(); Animator animator = null; if (m_EffectBoss.target != null) @@ -307,6 +310,16 @@ animator.Play("Effect_JingJieBJ_021", 0, 1); } } if (m_EffectBase.target != null) { var obj = m_EffectBase.target.transform.Find("GameObject/b/b (3)"); if (obj != null) { obj.gameObject.SetActive(!requireBossEffect); } } } private void PlayerDataRefreshEvent(PlayerDataType dataType) @@ -334,6 +347,8 @@ model.displayRealms.Clear(); model.selectRealm = PlayerDatas.Instance.baseData.realmLevel + 1; DisplayRealmStages(); DisplayCover(); DisplayEffectBoss(); } else {