public HeroesIcons(bool logger) { Logger = logger; try { HeroesXml = HeroesXml.Initialize("Heroes.xml", "Heroes", Logger, null); HeroBuildsXmlLatest = HeroBuildsXmlHolder = HeroBuildsXml = HeroBuildsXml.Initialize("_AllHeroes.xml", "HeroBuilds", HeroesXml, Logger); // load in all three EarliestHeroesBuild = HeroBuildsXml.EarliestHeroesBuild; LatestHeroesBuild = HeroBuildsXml.LatestHeroesBuild; ListHeroBuilds = HeroBuildsXml.Builds; MatchAwardsXml = MatchAwardsXml.Initialize("_AllMatchAwards.xml", "MatchAwards", LatestHeroesBuild, logger); MapBackgroundsXml = MapBackgroundsXml.Initialize("_AllMapBackgrounds.xml", "MapBackgrounds", LatestHeroesBuild, logger); HomeScreensXml = HomeScreensXml.Initialize("HomeScreens.xml", "HomeScreens", LatestHeroesBuild, logger); } catch (Exception ex) { if (logger) { LogErrors($"Error on HeroIcons initializing{Environment.NewLine}{ex}"); } throw; } SetNonSupportHeroesWithSupportStat(); SetPartyIcons(); SetRoleIcons(); SetFranchiseIcons(); SetOtherIcons(); }
/// <summary> /// Load a specific build, other than the latest one. Use LoadLatestHeroesBuild to load latest build. /// </summary> /// <param name="replayBuild">The replay build to load</param> /// <returns></returns> public void LoadHeroesBuild(int?build) { if (build == null) { return; } else if (build < EarliestHeroesBuild) { build = EarliestHeroesBuild; } else if (build > LatestHeroesBuild) { build = LatestHeroesBuild; } try { // only load the build if it's not in memory already or in the in xmlHolder if (build != HeroBuildsXml.CurrentLoadedHeroesBuild) { if (build != HeroBuildsXmlHolder.CurrentLoadedHeroesBuild) { HeroBuildsXml = HeroBuildsXml.Initialize("_AllHeroes.xml", "HeroBuilds", HeroesXml, Logger, build); } else { HeroBuildsXml = HeroBuildsXmlHolder; } } } catch (Exception ex) { throw new ParseXmlException($"Error on loading heroes build {build}{Environment.NewLine}{ex}"); } }
public void LoadLatestHeroesBuild() { if (HeroBuildsXml.CurrentLoadedHeroesBuild != HeroBuildsXmlLatest.CurrentLoadedHeroesBuild) { HeroBuildsXmlHolder = HeroBuildsXml; // hold the current HeroBuildsXml = HeroBuildsXmlLatest; // switch to latest } }