Exemplo n.º 1
0
        public static XW_FACTION getFactionByString(string input)
        {
            input = input.ToUpper();

            XW_FACTION output = XW_FACTION.ALL;

            switch (input)
            {
            case "IMPERIAL":
                output = XW_FACTION.IMPERIAL;
                break;

            case "REBEL":
                output = XW_FACTION.REBEL;
                break;

            case "SCUM":
                output = XW_FACTION.SCUM;
                break;

            case "ALL":
                output = XW_FACTION.ALL;
                break;

            default:
                output = XW_FACTION.ALL;
                break;
            }

            return(output);
        }
Exemplo n.º 2
0
        public static XW_RESTRICTION getRestrictionLimitedByFactionType(XW_FACTION faction)
        {
            switch (faction)
            {
            case XW_FACTION.SCUM:
                return(XW_RESTRICTION.SCUM_ONLY_LIMITED);

            default:
                return(XW_RESTRICTION.NONE);
            }
        }
Exemplo n.º 3
0
        public static XWSearchResult search(
            string verb,
            string noun,
            List <Upgrade> upgrades,
            List <Pilot> pilots,
            XW_FACTION faction = XW_FACTION.ALL)
        {
            XWSearchResult searchResult = new XWSearchResult();

            // upgrades w/ search
            List <Upgrade> upgradesWithVerb = upgrades.FindAll(u => u.ability.IndexOf(verb,
                                                                                      StringComparison.OrdinalIgnoreCase) >= 0);
            List <Upgrade> upgradesWithVerbAndNoun = upgradesWithVerb.FindAll(u => u.ability.IndexOf(noun,
                                                                                                     StringComparison.OrdinalIgnoreCase) >= 0);

            // pilot w/ search
            List <Pilot> pilotsWithVerb = pilots.FindAll(p => p.pilotAbility.IndexOf(verb,
                                                                                     StringComparison.OrdinalIgnoreCase) >= 0);
            List <Pilot> pilotsWithVerbAndNoun = pilotsWithVerb.FindAll(p => p.pilotAbility.IndexOf(noun,
                                                                                                    StringComparison.OrdinalIgnoreCase) >= 0);

            // faction specific
            if (faction != XW_FACTION.ALL)
            {
                XW_RESTRICTION noRestriction             = XW_RESTRICTION.NONE;
                XW_RESTRICTION limitedRestriction        = XW_RESTRICTION.LIMITED;
                XW_RESTRICTION factionRestriction        = xwDictionary.getRestrictionByFactionType(faction);
                XW_RESTRICTION factionLimitedRestriction = xwDictionary.getRestrictionLimitedByFactionType(faction);

                if (factionLimitedRestriction != XW_RESTRICTION.NONE)
                {
                    // only pull upgrades that are everything except the restriction
                    upgradesWithVerbAndNoun = upgradesWithVerbAndNoun.FindAll(u => u.restriction == noRestriction ||
                                                                              u.restriction == limitedRestriction ||
                                                                              u.restriction == factionRestriction ||
                                                                              u.restriction == factionLimitedRestriction);
                }
                else
                {
                    // no limitations (except limited)
                    upgradesWithVerbAndNoun = upgradesWithVerbAndNoun.FindAll(u => u.restriction == noRestriction ||
                                                                              u.restriction == limitedRestriction ||
                                                                              u.restriction == factionRestriction);
                }

                // filter down pilots by faction
                pilotsWithVerbAndNoun = pilotsWithVerbAndNoun.FindAll(p => p.faction == faction);
            }

            searchResult.upgrades = upgradesWithVerbAndNoun;
            searchResult.pilots   = pilotsWithVerbAndNoun;

            return(searchResult);
        }
Exemplo n.º 4
0
        public static XW_RESTRICTION getRestrictionByFactionType(XW_FACTION faction)
        {
            switch (faction)
            {
            case XW_FACTION.IMPERIAL:
                return(XW_RESTRICTION.IMPERIAL_ONLY);

            case XW_FACTION.REBEL:
                return(XW_RESTRICTION.REBEL_ONLY);

            case XW_FACTION.SCUM:
                return(XW_RESTRICTION.SCUM_ONLY);

            default:
                return(XW_RESTRICTION.NONE);
            }
        }