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); }
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); } }
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); }
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); } }