123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using System;
- using Core.Language;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.Mono;
- using Fort23.UTool;
- using UnityEngine;
- using Utility;
- public class ULockManager : Singleton<ULockManager>
- {
- public UnlockConfig[] Configs;
- public bool Nolock;
- public ULockManager()
- {
- Configs = ConfigComponent.Instance.GetAll<UnlockConfig>();
- }
- /// <summary>
- /// 获取解锁表
- /// </summary>
- /// <param name="unLockValue">解锁值(功能ID、表ID)</param>
- /// <param name="isFunction">第一个参是否为功能ID</param>
- /// <returns></returns>
- public UnlockConfig GetULockConfig(int unLockValue, bool isFunction = true)
- {
- for (int i = 0; i < Configs.Length; i++)
- {
- if (isFunction)
- {
- if (Configs[i].ulockFunction == unLockValue)
- {
- return Configs[i];
- }
- }
- else
- {
- if (Configs[i].ID == unLockValue)
- {
- return Configs[i];
- }
- }
- }
- if (isFunction)
- {
- LogTool.Error("功能 ulockFunction 值 配置错误,找不到这样一个功能,请请检查:" + unLockValue);
- }
- else
- {
- LogTool.Error("解锁ID配置错误,找不到这样一个功能,请请检查:" + unLockValue);
- }
- return new UnlockConfig();
- }
- /// <summary>
- /// 刷新解锁状态, 影响解锁的值变化时调用(通关、飞艇升级等)
- /// </summary>
- public void RefreshULock()
- {
- EventManager.Instance.Dispatch(CustomEventType.RefreshULock, null);
- }
- /// <summary>
- /// 解锁功能
- /// </summary>
- /// <param name="config">解锁表</param>
- /// <returns>true表示解锁成功</returns>
- public bool IsULock(UnlockConfig config)
- {
- if (Nolock)
- {
- return true;
- }
- switch (config.ulockCondition)
- {
- case 1:
- return PlayerManager.Instance.myHero.powerUpConfig.ID >= config.ulockValue;
-
- }
- return false;
- }
- public bool IsULock(int functionID)
- {
- if (Nolock)
- {
- return true;
- }
- // if (mGameRuntimeConfig.unLockAll)
- // {
- // return true;
- // }
- if (functionID <= 0)
- {
- return true;
- }
- foreach (var config in Configs)
- {
- if (config.ulockFunction == functionID)
- {
- return IsULock(config);
- }
- }
- return false;
- }
- public string ShowUnlockTips(int unlockConfigId)
- {
- UnlockConfig _config = ConfigComponent.Instance.Get<UnlockConfig>(unlockConfigId);
- if (_config.ID == 0)
- return "";
- int unLockCondition = _config.ulockCondition;
- int unLockValue = _config.ulockValue;
- string tips = String.Empty;
- switch (unLockCondition)
- {
- case 1: //玩家境界
- // LevelBattleConfig levelBattleConfig = ConfigComponent.Instance.Get<LevelBattleConfig>(unLockValue);
- // tips = LanguageManager.Instance.Text(_config.UnlockTipsID, levelBattleConfig.levelName);
- break;
- }
-
- return tips;
- }
- }
|