using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = "GameConfig")] public class GameConfig : ConfigBase { public List LevelSort; public List Levels; public LevelData GetLevelData(int pLevelID) { return pLevelID < Levels.Count ? Levels[pLevelID] : null; } } [Serializable] public class LevelData { public string LevelName;//only for editor display public string LevelColorCode; public int SlotCount; public List Endings; public EndingData GetMatchingEnding(string pEndingStr) { EndingData tData = null; for (int i = 0; i < Endings.Count; i++) { if (Endings[i].IsMatching(pEndingStr)) { tData = Endings[i]; break; } } return tData; } } [Serializable] public class EndingData { public string EndingName;//only for editor display public bool IsGoodEnding; public string EndingCode;//eg: 12X;132; public bool IsMatching(string pEndingStr) { bool tMatching = false; string[] tTemplateEndingStrs = EndingCode.Split(';'); for (int i = 0; i < tTemplateEndingStrs.Length; i++) { if (CompareEndingStr(pEndingStr, tTemplateEndingStrs[i])) { tMatching = true; break; } } return tMatching; } private bool CompareEndingStr(string pRefStr, string pTemplateStr) { bool tMatching = true; for (int i = 0; i < pRefStr.Length; i++) { if (pTemplateStr[i] != 'X' && pRefStr[i] != pTemplateStr[i]) { tMatching = false; break; } } return tMatching; } }