コード例 #1
0
        private static void ParseMaps(IndentHelper iD, STUGUID mapBinding)
        {
            if (mapBinding == null)
            {
                return;
            }
            try {
                var map = GetInstance <STUMapDataBinding>(mapBinding);
                if (map?.MapMetadatas == null)
                {
                    return;
                }

                var mapNames = new List <string>();
                foreach (var guid in map.MapMetadatas)
                {
                    var mapMeta = GetInstance <STUMap>(guid);
                    if (mapMeta == null)
                    {
                        continue;
                    }

                    var mapName = GetString(mapMeta.DisplayName);
                    mapNames.Add(mapName);
                }

                Log($"{iD}Maps: {String.Join(", ", mapNames)}");
            } catch { }
        }
コード例 #2
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            writer.WriteStartObject();

            writer.WritePropertyName("Key");
            ulong   key  = 0;
            STUGUID guid = value as STUGUID;

            if (guid != null)
            {
                key = guid;
            }
            else
            {
                key = (ulong)value;
            }
            writer.WriteValue($"{key:X16}");

            writer.WritePropertyName("String");
            writer.WriteValue($"{GUID.LongKey(key):X12}.{GUID.Type(key):X3}");

            writer.WriteEndObject();
        }
コード例 #3
0
        private static void ParseGamemodeData(IndentHelper iD, STUGUID guid)
        {
            if (guid == null)
            {
                return;
            }


            var gamemodeData = GetInstance <STUGamemode>(guid);

            Log($"{iD}Gamemode Data (Can be overriden by Team Config):");
            Log($"{iD+1}Type: {GetString(gamemodeData.DisplayName) ?? "N/A"}");

            if (gamemodeData.Teams != null)
            {
                Log($"{iD+1}Teams:");
                foreach (var team in gamemodeData.Teams)
                {
                    Log($"{iD+2}{team.TeamType}: {team.MaxPlayers}/{team.MaxPlayers} (Min/Max)");
                    if (team.AllowedHeroes != null)
                    {
                        var allowedHeroes = new List <string>();
                        foreach (var heroguid in ((STUGamemodeHeroCollection)team.AllowedHeroes).Heroes)
                        {
                            var hero = GetInstance <STUHero>(heroguid);
                            if (hero == null)
                            {
                                continue;
                            }
                            allowedHeroes.Add(GetString(hero.Name));
                        }

                        Log($"{iD + 3}Allowed Heroes: {String.Join(", ", allowedHeroes)}");
                    }
                }
            }
        }