using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using System; using System.Text.RegularExpressions; using System.Linq; public class GeneralDefine { public static Dictionary MoneyDisplayModel { get; private set; } public static int expDisplayId { get; private set; } //参数int,int ,string 分别表示职业,转生等级,icon static Dictionary> jobHeadPortrait = new Dictionary>(); static Dictionary> otherjobHeadPortrait = new Dictionary>(); public static int rechargeRedpointLv { get; private set; } public static int rechargeRedpointMinLv { get; private set; } public static List inGameDownLoadLevelCheckPoints = null; public static List inGameDownLoadTaskCheckPoints = null; public static int inGameDownLoadHighLevel { get; private set; } public static Dictionary> itemPutInPackDict { get; private set; } public static Dictionary itemMoneyCountDict { get; private set; } //背包中用于展示货币数量的物品 public static int UISpringDecorate { get; private set; } public static Dictionary> skillAttrIDDict { get; private set; } public static int acutionItemHour { get; private set; } public static float blockRatio; public static Dictionary itemIconDict { get; private set; } public static int mainRightFuncOpenFuncID { get; private set; } public static void Init() { try { MoneyDisplayModel = ConfigParse.ParseIntDict(GetInputString("MoneyDisplayModel", 1)); var config = FuncConfigConfig.Get("PutInItemPack"); JsonData itemPutInData = JsonMapper.ToObject(config.Numerical1); itemPutInPackDict = new Dictionary>(); foreach (var _key in itemPutInData.Keys) { var itemTypeData = itemPutInData[_key]; int packType = int.Parse(_key); List itemTypes = new List(); itemPutInPackDict.Add(packType, itemTypes); if (itemTypeData.IsArray) { for (int i = 0; i < itemTypeData.Count; i++) { int itemType = int.Parse(itemTypeData[i].ToString()); itemTypes.Add(itemType); } } } itemMoneyCountDict = ConfigParse.ParseIntDict(config.Numerical2); config = FuncConfigConfig.Get("ParryCfg"); blockRatio = float.Parse(config.Numerical3); config = FuncConfigConfig.Get("Item"); var tmpDict = JsonMapper.ToObject>(config.Numerical1); itemIconDict = new Dictionary(); foreach (var key in tmpDict.Keys) { int itemType = int.Parse(key); string icon = tmpDict[key]; itemIconDict.Add(itemType, icon); } config = FuncConfigConfig.Get("MainRightFunc"); mainRightFuncOpenFuncID = int.Parse(config.Numerical1); } catch (Exception ex) { Debug.LogError(ex); } } public static string GetJobHeadPortrait(int _job, int _ReincarnationLv) { if (jobHeadPortrait.ContainsKey(_job) && jobHeadPortrait[_job].ContainsKey(_ReincarnationLv)) { return jobHeadPortrait[_job][_ReincarnationLv]; } else { return string.Empty; } } public static List GetAttrIdsBySkill(int _skillId) { if (skillAttrIDDict.ContainsKey(_skillId)) { return skillAttrIDDict[_skillId]; } return null; } public static string GetOtherJobHeadPortrait(int _job, int _ReincarnationLv) { if (otherjobHeadPortrait.ContainsKey(_job) && otherjobHeadPortrait[_job].ContainsKey(_ReincarnationLv)) { return otherjobHeadPortrait[_job][_ReincarnationLv]; } else { return string.Empty; } } public static PackType GetPackTypeByItemType(int itemType) { foreach (var key in itemPutInPackDict.Keys) { var types = itemPutInPackDict[key]; if (types.Contains(itemType)) { return (PackType)key; } } return PackType.Item; } public static int GetInt(string _key, int _index = 1) { var result = 0; int.TryParse(GetInputString(_key, _index), out result); return result; } public static float GetFloat(string _key, int _index = 1) { var result = 0f; float.TryParse(GetInputString(_key, _index), out result); return result; } public static bool GetBool(string _key, int _index = 1) { var result = false; bool.TryParse(GetInputString(_key, _index), out result); return result; } public static int[] GetIntArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new int[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { int.TryParse(stringArray[i], out result[i]); } return result; } public static string[] GetStringArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new string[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { result[i] = stringArray[i]; } return result; } public static float[] GetFloatArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new float[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { float.TryParse(stringArray[i], out result[i]); } return result; } public static bool[] GetBoolArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new bool[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { bool.TryParse(stringArray[i], out result[i]); } return result; } public static List GetTimeArray(string _key, int _index = 1) { var configContent = GetInputString(_key, _index); var stringArray = configContent.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); var timeList = new List(); for (int i = 0; i < stringArray.Length; i++) { var input = stringArray[i]; var matches = Regex.Matches(input, "[0-9]{1,2}"); var hour = matches.Count > 0 ? int.Parse(matches[0].Value) : 0; var minute = matches.Count > 1 ? int.Parse(matches[1].Value) : 0; timeList.Add(hour * 60 + minute); } return timeList; } public static string GetInputString(string _key, int _index = 1) { var config = FuncConfigConfig.Get(_key); var inputString = string.Empty; switch (_index) { case 1: inputString = config.Numerical1; break; case 2: inputString = config.Numerical2; break; case 3: inputString = config.Numerical3; break; case 4: inputString = config.Numerical4; break; case 5: inputString = config.Numerical5; break; } return inputString; } public static long GetFactValue(uint value, uint valueEx) { return (long)valueEx * (long)Constants.ExpPointValue +(long)value; } }