public void DrawFilteredWorldZones(IFilter Filter, Graphics g) { if (Zones == null) { return; } foreach (IZone i in Zones) { if (Filter is DefaultFilter) { DefaultFilter DF = (DefaultFilter)Filter; Zone Zonei = (Zone)i; if (!DF.FilterChance && !DF.FilterFlag && !DF.FilterGroup && !DF.FilterLocation && !DF.FilterNoGroup && !DF.FilterNoLocation && !DF.FilterTerrain) { continue; } if (DF.FilterNoGroup) { if (Zonei.EncounterGroups != null) { if (Zonei.EncounterGroups.Count != 0) { continue; } } } if (DF.FilterNoLocation) { if (Zonei.EncounterLocations != null) { if (Zonei.EncounterLocations.Count > 0) { continue; } } } if (DF.FilterLocation) { if (!Zonei.ContainsLocationWithName(DF.Location)) { continue; } } if (DF.FilterGroup) { if (!Zonei.ContainsGroupWithName(DF.Group)) { continue; } } if (DF.FilterFlag) { if (Zonei.Flags.IndexOf(DF.Flag) == -1) { continue; } } } if (Filter.FilterChance) { if (i.Chance != Filter.Chance) { continue; } } if (Filter.FilterTerrain) { if (i.Terrain != Filter.Terrain) { continue; } } Drawing.DrawZone(g, Drawing.FilteredColor, i.X, i.Y); } }