public static bool FactionInScope(IFaction faction, DropdownDefault <string>?scope) { if (faction is null || faction.MapFaction is null || scope is null || scope.SelectedIndex < 0 || scope.SelectedIndex > 2) { return(false); } switch (scope.SelectedIndex) { case 0: break; case 1: if (Clan.PlayerClan.MapFaction is null || !Clan.PlayerClan.MapFaction.IsKingdomFaction || Clan.PlayerClan.MapFaction != faction.MapFaction) { return(false); } break; case 2: if (Clan.PlayerClan.MapFaction is null || !Clan.PlayerClan.MapFaction.IsKingdomFaction || !(faction.MapFaction.IsKingdomFaction && faction.MapFaction.Leader != Hero.MainHero)) { return(false); } break; default: break; } return(true); }
public static bool SubSystemEnabled(SubSystemType subSystem, List <IFaction> factionList) { if (!SubSystemEnabled(subSystem)) { return(false); } DropdownDefault <string>?scope = DetermineSubSystemScope(subSystem); foreach (IFaction faction in factionList) { if (FactionInScope(faction, scope)) { return(true); } } return(false); }