示例#1
0
        /// <summary>
        /// Checks if the <see cref="g1"/> version (or subset versions) is equivalent to <see cref="g2"/>.
        /// </summary>
        /// <param name="g1">Version (set)</param>
        /// <param name="g2">Individual version</param>
        public static bool Contains(this GameVersion g1, GameVersion g2)
        {
            if (g1 == g2 || g1 == Any)
            {
                return(true);
            }

            switch (g1)
            {
            case RB:
                return(g2 == RD || g2 == BU || g2 == GN);

            case Stadium:
            case EventsGBGen1:
            case VCEvents:
            case RBY:
                return(RB.Contains(g2) || g2 == YW);

            case Gen1:
                return(RBY.Contains(g2) || g2 == Stadium || g2 == EventsGBGen1 || g2 == VCEvents);

            case GS: return(g2 == GD || g2 == SV);

            case Stadium2:
            case EventsGBGen2:
            case GSC:
                return(GS.Contains(g2) || g2 == C);

            case Gen2:
                return(GSC.Contains(g2) || g2 == Stadium2 || g2 == EventsGBGen2);

            case GBCartEraOnly:
                return(g2 == Stadium || g2 == Stadium2 || g2 == EventsGBGen1 || g2 == EventsGBGen2);

            case RS: return(g2 == R || g2 == S);

            case RSE:
                return(RS.Contains(g2) || g2 == E);

            case FRLG: return(g2 == FR || g2 == LG);

            case COLO:
            case XD: return(g2 == CXD);

            case CXD: return(g2 == COLO || g2 == XD);

            case RSBOX: return(RS.Contains(g2) || g2 == E || FRLG.Contains(g2));

            case Gen3:
                return(RSE.Contains(g2) || FRLG.Contains(g2) || CXD.Contains(g2) || g2 == RSBOX);

            case DP: return(g2 == D || g2 == P);

            case HGSS: return(g2 == HG || g2 == SS);

            case DPPt:
                return(DP.Contains(g2) || g2 == Pt);

            case BATREV: return(DP.Contains(g2) || g2 == Pt || HGSS.Contains(g2));

            case Gen4:
                return(DPPt.Contains(g2) || HGSS.Contains(g2) || g2 == BATREV);

            case BW: return(g2 == B || g2 == W);

            case B2W2: return(g2 == B2 || g2 == W2);

            case Gen5:
                return(BW.Contains(g2) || B2W2.Contains(g2));

            case XY: return(g2 == X || g2 == Y);

            case ORAS: return(g2 == OR || g2 == AS);

            case Gen6:
                return(XY.Contains(g2) || ORAS.Contains(g2));

            case SM:
                return(g2 == SN || g2 == MN);

            case USUM:
                return(g2 == US || g2 == UM);

            case GG:
                return(g2 == GP || g2 == GE || g2 == GO);

            case Gen7:
                return(SM.Contains(g2) || USUM.Contains(g2) || GG.Contains(g2));

            default: return(false);
            }
        }