コード例 #1
0
        private Texture2D DifficultyRankToTexture(DifficultyRank rank)
        {
            if (rank == DifficultyRank.NONE)
            {
                return(null);
            }

            return(rankTextures[(int)rank - 1]);
        }
コード例 #2
0
 public GameSessionInfo(
     GameSessionType sessionType,
     long uniqueId,
     string missionInternalName = "",
     int sideIndex             = -1,
     DifficultyRank difficulty = DifficultyRank.NONE,
     Dictionary <int, bool> globalFlagValues = null,
     bool isCheatSession = false)
 {
     SessionType         = sessionType;
     UniqueId            = uniqueId;
     MissionInternalName = missionInternalName;
     SideIndex           = sideIndex;
     Difficulty          = difficulty;
     GlobalFlagValues    = globalFlagValues;
     IsCheatSession      = isCheatSession;
 }
コード例 #3
0
        public static string DifficultyRankToName(DifficultyRank difficultyRank)
        {
            switch (difficultyRank)
            {
            case DifficultyRank.EASY:
                return("Easy");

            case DifficultyRank.NORMAL:
                return("Normal");

            case DifficultyRank.HARD:
                return("Hard");

            default:
                return("Unknown Difficulty");
            }
        }
コード例 #4
0
        public static GameSessionInfo ParseFromFile(string path)
        {
            if (File.Exists(path))
            {
                byte[] data = File.ReadAllBytes(path);
                for (int i = 0; i < data.Length; i++)
                {
                    data[i] = (byte)~data[i];
                }

                string   dataAsString = Encoding.UTF8.GetString(data);
                string[] parts        = dataAsString.Split(',');
                if (parts.Length < MIN_EXPECTED_FIELD_COUNT || parts.Length > EXPECTED_FIELD_COUNT)
                {
                    Logger.Log("Unexpected saved game meta file format in file " + path + ": " + dataAsString);
                    return(null);
                }

                GameSessionType sessionType = GameSessionType.UNKNOWN;

                int gameSessionTypeInt = Conversions.IntFromString(parts[0], -1);
                if (gameSessionTypeInt > -1 && gameSessionTypeInt <= (int)GameSessionType.SESSION_TYPE_MAX)
                {
                    sessionType = (GameSessionType)gameSessionTypeInt;
                }

                if (!long.TryParse(parts[1], out long uniqueId))
                {
                    Logger.Log("FAILED to parse unique ID in saved game meta file " + path + ": " + dataAsString);
                    return(null);
                }

                string         missionInternalName = parts[3];
                int            sideIndex           = Conversions.IntFromString(parts[4], -1);
                int            difficultyInt       = Conversions.IntFromString(parts[5], 0);
                DifficultyRank difficulty          = (difficultyInt <0 || difficultyInt> (int) DifficultyRank.HARD) ? DifficultyRank.NONE : (DifficultyRank)difficultyInt;

                Dictionary <int, bool> globalFlagsDictionary = null;
                if (parts.Length >= 7 && parts[6] != GLOBAL_FLAGS_NONE)
                {
                    string[] globalFlagParts = parts[6].Split('|');
                    globalFlagsDictionary = new Dictionary <int, bool>();

                    foreach (string gflagInfo in globalFlagParts)
                    {
                        string[] globalIndexAndState = gflagInfo.Split(':');
                        if (globalIndexAndState.Length != 2)
                        {
                            Logger.Log("FAILED to parse global flag index and state from game session info: " + gflagInfo + ", complete string: " + parts[6]);
                            continue;
                        }

                        int  globalIndex = int.Parse(globalIndexAndState[0], CultureInfo.InvariantCulture);
                        bool globalState = globalIndexAndState[1] == "1";

                        globalFlagsDictionary.Add(globalIndex, globalState);
                    }
                }

                bool isCheatSession = false;
                if (parts.Length >= 8)
                {
                    isCheatSession = parts[7] == "1";
                }

                return(new GameSessionInfo(sessionType, uniqueId, missionInternalName, sideIndex, difficulty, globalFlagsDictionary, isCheatSession));
            }

            return(null);
        }