コード例 #1
0
ファイル: AutoCat.cs プロジェクト: zhaolinxuan/depressurizer
        public static AutoCat LoadACFromXmlElement(XmlElement xElement)
        {
            string type = xElement.Name;

            AutoCat result = null;

            switch (type)
            {
            case AutoCatGenre.TypeIdString:
                result = AutoCatGenre.LoadFromXmlElement(xElement);
                break;

            case AutoCatFlags.TypeIdString:
                result = AutoCatFlags.LoadFromXmlElement(xElement);
                break;

            case AutoCatTags.TypeIdString:
                result = AutoCatTags.LoadFromXmlElement(xElement);
                break;

            case AutoCatYear.TypeIdString:
                result = AutoCatYear.LoadFromXmlElement(xElement);
                break;

            case AutoCatUserScore.TypeIdString:
                result = AutoCatUserScore.LoadFromXmlElement(xElement);
                break;

            default:
                break;
            }
            return(result);
        }
コード例 #2
0
        public static AutoCat LoadACFromXmlElement(XmlElement xElement)
        {
            string type = xElement.Name;

            switch (type)
            {
            case AutoCatGenre.TypeIdString:
                return(AutoCatGenre.LoadFromXmlElement(xElement));

            case AutoCatFlags.TypeIdString:
                return(AutoCatFlags.LoadFromXmlElement(xElement));

            case AutoCatTags.TypeIdString:
                return(AutoCatTags.LoadFromXmlElement(xElement));

            case AutoCatYear.TypeIdString:
                return(AutoCatYear.LoadFromXmlElement(xElement));

            case AutoCatUserScore.TypeIdString:
                return(AutoCatUserScore.LoadFromXmlElement(xElement));

            case AutoCatHltb.TypeIdString:
                return(AutoCatHltb.LoadFromXmlElement(xElement));

            case AutoCatManual.TypeIdString:
                return(AutoCatManual.LoadFromXmlElement(xElement));

            case AutoCatDevPub.TypeIdString:
                return(AutoCatDevPub.LoadFromXmlElement(xElement));

            case AutoCatGroup.TypeIdString:
                return(AutoCatGroup.LoadFromXmlElement(xElement));

            case AutoCatName.TypeIdString:
                return(AutoCatName.LoadFromXmlElement(xElement));

            case AutoCatVrSupport.TypeIdString:
                return(AutoCatVrSupport.LoadFromXmlElement(xElement));

            case AutoCatLanguage.TypeIdString:
                return(AutoCatLanguage.LoadFromXmlElement(xElement));

            case AutoCatCurator.TypeIdString:
                return(LoadFromXmlElement(xElement, typeof(AutoCatCurator)));

            case AutoCatPlatform.TypeIdString:
                return(LoadFromXmlElement(xElement, typeof(AutoCatPlatform)));

            case AutoCatHoursPlayed.TypeIdString:
                return(AutoCatHoursPlayed.LoadFromXmlElement(xElement));

            default:
                return(null);
            }
        }
コード例 #3
0
        public static void GenerateDefaultAutoCatSet(List <AutoCat> list)
        {
            if (list == null)
            {
                list = new List <AutoCat>();
            }

            //By Genre
            list.Add(new AutoCatGenre(GlobalStrings.Profile_DefaultAutoCatName_Genre, null, "(" + GlobalStrings.Name_Genre + ") "));

            //By Year
            list.Add(new AutoCatYear(GlobalStrings.Profile_DefaultAutoCatName_Year, null, "(" + GlobalStrings.Name_Year + ") "));

            //By Score
            AutoCatUserScore ac = new AutoCatUserScore(GlobalStrings.Profile_DefaultAutoCatName_UserScore, null, "(" + GlobalStrings.Name_Score + ") ");

            ac.GenerateSteamRules(ac.Rules);
            list.Add(ac);

            //By Tags
            AutoCatTags act = new AutoCatTags(GlobalStrings.Profile_DefaultAutoCatName_Tags, null, "(" + GlobalStrings.Name_Tags + ") ");

            foreach (KeyValuePair <string, float> tag in Database.CalculateSortedTagList(null, 1, 20, 0, false, false))
            {
                act.IncludedTags.Add(tag.Key);
            }

            list.Add(act);

            //By Flags
            AutoCatFlags acf = new AutoCatFlags(GlobalStrings.Profile_DefaultAutoCatName_Flags, null, "(" + GlobalStrings.Name_Flags + ") ");

            foreach (string flag in Database.AllFlags)
            {
                acf.IncludedFlags.Add(flag);
            }

            list.Add(acf);

            //By HLTB
            AutoCatHltb ach = new AutoCatHltb(GlobalStrings.Profile_DefaultAutoCatName_Hltb, null, "(HLTB) ", false);

            ach.Rules.Add(new HowLongToBeatRule(" 0-5", 0, 5, TimeType.Extras));
            ach.Rules.Add(new HowLongToBeatRule(" 5-10", 5, 10, TimeType.Extras));
            ach.Rules.Add(new HowLongToBeatRule("10-20", 10, 20, TimeType.Extras));
            ach.Rules.Add(new HowLongToBeatRule("20-50", 20, 50, TimeType.Extras));
            ach.Rules.Add(new HowLongToBeatRule("50+", 20, 0, TimeType.Extras));
            list.Add(ach);

            //By Platform
            AutoCatPlatform acPlatform = new AutoCatPlatform(GlobalStrings.Profile_DefaultAutoCatName_Platform, null, "(" + GlobalStrings.AutoCat_Name_Platform + ") ", true, true, true, true);

            list.Add(acPlatform);
        }
コード例 #4
0
        /// <summary>
        /// Generates default autocats and adds them to a list
        /// </summary>
        /// <param name="list">The list where the autocats should be added</param>
        public static void GenerateDefaultAutoCatSet(List <AutoCat> list)
        {
            //By Genre
            list.Add(new AutoCatGenre(GlobalStrings.Profile_DefaultAutoCatName_Genre, null,
                                      "(" + GlobalStrings.Name_Genre + ") "));

            //By Year
            list.Add(new AutoCatYear(GlobalStrings.Profile_DefaultAutoCatName_Year, null,
                                     "(" + GlobalStrings.Name_Year + ") "));

            //By Score
            AutoCatUserScore ac = new AutoCatUserScore(GlobalStrings.Profile_DefaultAutoCatName_UserScore, null,
                                                       "(" + GlobalStrings.Name_Score + ") ");

            ac.GenerateSteamRules(ac.Rules);
            list.Add(ac);

            //By Tags
            AutoCatTags act = new AutoCatTags(GlobalStrings.Profile_DefaultAutoCatName_Tags, null,
                                              "(" + GlobalStrings.Name_Tags + ") ");

            foreach (Tuple <string, float> tag in Program.GameDB.CalculateSortedTagList(null, 1, 20, 0, false, false))
            {
                act.IncludedTags.Add(tag.Item1);
            }
            list.Add(act);

            //By Flags
            AutoCatFlags acf = new AutoCatFlags(GlobalStrings.Profile_DefaultAutoCatName_Flags, null,
                                                "(" + GlobalStrings.Name_Flags + ") ");

            foreach (string flag in Program.GameDB.GetAllStoreFlags())
            {
                acf.IncludedFlags.Add(flag);
            }
            list.Add(acf);

            //By HLTB
            AutoCatHltb ach = new AutoCatHltb(GlobalStrings.Profile_DefaultAutoCatName_Hltb, null, "(HLTB) ", false);

            ach.Rules.Add(new Hltb_Rule(" 0-5", 0, 5, TimeType.Extras));
            ach.Rules.Add(new Hltb_Rule(" 5-10", 5, 10, TimeType.Extras));
            ach.Rules.Add(new Hltb_Rule("10-20", 10, 20, TimeType.Extras));
            ach.Rules.Add(new Hltb_Rule("20-50", 20, 50, TimeType.Extras));
            ach.Rules.Add(new Hltb_Rule("50+", 20, 0, TimeType.Extras));
            list.Add(ach);

            //By Platform
            AutoCatPlatform acPlatform = new AutoCatPlatform(GlobalStrings.Profile_DefaultAutoCatName_Platform, null, "(" + GlobalStrings.AutoCat_Name_Platform + ") ", true, true, true, true);

            list.Add(acPlatform);
        }
コード例 #5
0
        protected AutoCatTags( AutoCatTags other )
            : base( other ) {
            this.Prefix = other.Prefix;
            this.IncludedTags = new HashSet<string>( other.IncludedTags );
            this.MaxTags = other.MaxTags;

            this.ListOwnedOnly = other.ListOwnedOnly;
            this.ListWeightFactor = other.ListWeightFactor;
            this.ListMinScore = other.ListMinScore;
            this.ListTagsPerGame = other.ListTagsPerGame;
            this.ListScoreSort = other.ListScoreSort;
            this.ListExcludeGenres = other.ListExcludeGenres;
        }
コード例 #6
0
        protected AutoCatTags(AutoCatTags other)
            : base(other)
        {
            this.Prefix       = other.Prefix;
            this.IncludedTags = new HashSet <string>(other.IncludedTags);
            this.MaxTags      = other.MaxTags;

            this.ListOwnedOnly     = other.ListOwnedOnly;
            this.ListWeightFactor  = other.ListWeightFactor;
            this.ListMinScore      = other.ListMinScore;
            this.ListTagsPerGame   = other.ListTagsPerGame;
            this.ListScoreSort     = other.ListScoreSort;
            this.ListExcludeGenres = other.ListExcludeGenres;
        }
コード例 #7
0
        public override void LoadFromAutoCat(AutoCat autocat)
        {
            AutoCatTags ac = autocat as AutoCatTags;

            if (ac == null)
            {
                return;
            }
            txtPrefix.Text   = (ac.Prefix == null) ? string.Empty : ac.Prefix;
            numMaxTags.Value = ac.MaxTags;

            list_numMinScore.Value        = ac.ListMinScore;
            list_numTagsPerGame.Value     = ac.ListTagsPerGame;
            list_chkOwnedOnly.Checked     = ac.ListOwnedOnly;
            list_numWeightFactor.Value    = (Decimal)ac.ListWeightFactor;
            list_chkExcludeGenres.Checked = ac.ListExcludeGenres;
            list_chkScoreSort.Checked     = ac.ListScoreSort;

            FillTagsList(ac.IncludedTags);
        }
コード例 #8
0
        public static AutoCatTags LoadFromXmlElement( XmlElement xElement ) {
            string name = XmlUtil.GetStringFromNode( xElement[XmlName_Name], TypeIdString );

            AutoCatTags result = new AutoCatTags( name );

            result.Filter = XmlUtil.GetStringFromNode(xElement[XmlName_Filter], null);

            string prefix;
            if( XmlUtil.TryGetStringFromNode( xElement[XmlName_Prefix], out prefix ) ) result.Prefix = prefix;

            int maxTags;
            if( XmlUtil.TryGetIntFromNode( xElement[XmlName_MaxTags], out maxTags ) ) result.MaxTags = maxTags;

            bool listOwnedOnly;
            if( XmlUtil.TryGetBoolFromNode( xElement[XmlName_ListOwnedOnly], out listOwnedOnly ) ) result.ListOwnedOnly = listOwnedOnly;

            float listWeightFactor;
            if( XmlUtil.TryGetFloatFromNode( xElement[XmlName_ListWeightFactor], out listWeightFactor ) ) result.ListWeightFactor = listWeightFactor;

            int listMinScore;
            if( XmlUtil.TryGetIntFromNode( xElement[XmlName_ListMinScore], out listMinScore ) ) result.ListMinScore = listMinScore;

            int listTagsPerGame;
            if( XmlUtil.TryGetIntFromNode( xElement[XmlName_ListTagsPerGame], out listTagsPerGame ) ) result.ListTagsPerGame = listTagsPerGame;

            bool listScoreSort;
            if( XmlUtil.TryGetBoolFromNode( xElement[XmlName_ListScoreSort], out listScoreSort ) ) result.ListScoreSort = listScoreSort;

            bool listExcludeGenres;
            if( XmlUtil.TryGetBoolFromNode( xElement[XmlName_ListExcludeGenres], out listExcludeGenres ) ) result.ListExcludeGenres = listExcludeGenres;

            List<string> tagList = XmlUtil.GetStringsFromNodeList( xElement.SelectNodes( XmlName_TagList + "/" + XmlName_Tag ) );
            result.IncludedTags = ( tagList == null ) ? new HashSet<string>() : new HashSet<string>( tagList );

            return result;
        }