public string GetFileName(Galaxy galaxy) { var faction1 = galaxy.GetPlanet(PlanetIDs[0]).FactionName; var faction2 = galaxy.GetPlanet(PlanetIDs[1]).FactionName; var offensiveFaction = galaxy.OffensiveFaction.Name; return GetFileName(galaxy, faction1, faction2, offensiveFaction); }
public LinkImageGenerator(Size mapSize, Galaxy galaxy, string path, ImageFormat imageFormat) { MapSize = mapSize; Galaxy = galaxy; ImagePath = path; Directory.CreateDirectory(ImagePath); ImageFormat = imageFormat; Padding = 10; }
public void SetUp() { galaxy = new Galaxy(); galaxy.Planets.Add(new Planet(0, 0, 0, "barack", "Arm")); galaxy.Planets.Add(new Planet(1, 0, 0, "john", "Core")); galaxy.Planets.Add(new Planet(2, 0, 0)); galaxy.Planets.Add(new Planet(3, 0, 0)); galaxy.Factions.Add(new Faction("Arm", Color.Blue)); }
public string GetFileName(Galaxy galaxy, string faction1, string faction2, string offensiveFaction) { return String.Format("{0}_{1}_{2}_{3}_{4}.png", PlanetIDs[0], PlanetIDs[1], faction1??"neutral", faction2??"neutral", faction1 != faction2 && faction1 != null && faction2 != null ? offensiveFaction : String.Empty); }
public LinkImageGenerator(Size mapSize, Galaxy galaxy, string path) : this(mapSize, galaxy, path, ImageFormat.Png) {}
/// <summary> /// Loads galaxy from server /// </summary> /// <param name="all">should get all maps</param> /// <param name="worker">should report to background worker</param> /// <param name="loadedGalaxy">use this galaxy state</param> public static void LoadGalaxy(bool all, BackgroundWorker worker, Galaxy loadedGalaxy) { if (all && worker == null) { throw new ApplicationException("All needs worker"); } Directory.CreateDirectory(Program.CachePath); Directory.CreateDirectory(Program.MapInfoCache); Directory.CreateDirectory(Program.MetalmapCache); Directory.CreateDirectory(Program.HeightmapCache); Directory.CreateDirectory(Program.MinimapCache); GalaxyMap.Instance = null; if (worker != null) { worker.ReportProgress(0, new[] {"Connecting"}); } bool done = Program.AuthInfo != null; do { if (!done) { var loginForm = new LoginForm(); if (DialogResult.OK != loginForm.ShowDialog()) { Application.Exit(); } Program.AuthInfo = loginForm.AuthInfo; } Program.LastUpdate = DateTime.Now; GalaxyMap.Instance.Galaxy = loadedGalaxy ?? Program.Server.GetGalaxyMap(Program.AuthInfo); // either use loadedgalaxy or get new one done = GalaxyMap.Instance.Galaxy != null; if (!done) { MessageBox.Show("Invalid username or password."); } } while (!done); var galaxyMap = GalaxyMap.Instance; var galaxy = galaxyMap.Galaxy; galaxy.Planets.ForEach(p => galaxyMap.PlanetDrawings.Add(new PlanetDrawing(p))); var q = (from f in galaxy.Factions from p in galaxy.GetAttackOptions(f) select new {p.ID, f}); galaxyMap.AttackablePlanetIDs = q.ToDictionary(t => t.ID, t => t.f); galaxyMap.ClaimablePlanetIDs = galaxy.GetClaimablePlanets().Select(p => p.ID).ToArray(); var neededMaps = all ? galaxy.MapNames.Except(galaxyMap.Maps.Select(m => m.Name)) : galaxy.Planets.Select(p => p.MapName).Where(n => n != null); var mapsToDownload = neededMaps.Where(n => !File.Exists(Program.MapInfoCache.Combine(n + ".dat"))).ToArray(); int maxProgress = mapsToDownload.Length*4; WebClient Client = new WebClient(); int progress = 0; if (worker != null) { Action<string, string> MapReport = (message, mapName) => worker.ReportProgress(progress++*100/maxProgress, new[] {message + Map.GetHumanName(mapName), mapName}); #if false foreach (var mapName in mapsToDownload) { MapReport("Downloading Map Info", mapName); Client.DownloadFile(Program.MapInfoUrl + "/" + mapName + ".dat", Program.MapInfoCache.Combine(mapName + ".dat")); MapReport("Downloading Minimap", mapName); Client.DownloadFile(Program.MinimapUrl + "/" + mapName + ".jpg", Program.MinimapCache.Combine(mapName + ".jpg")); MapReport("Downloading Heightmap", mapName); Client.DownloadFile( Program.HeightmapUrl + "/" + mapName + ".jpg", Program.HeightmapCache.Combine(mapName + ".jpg")); MapReport("Downloading Metalmap", mapName); Client.DownloadFile(Program.MetalmapUrl + "/" + mapName + ".png", Program.MetalmapCache.Combine(mapName + ".png")); worker.ReportProgress(progress*100/maxProgress, mapName); } #endif } }
public ICollection<UpgradeDef> GetAvailableUpgrades(Galaxy galaxy, string playerName) { return s.GetAvailableUpgrades(galaxy, playerName); }
public ICollection<UpgradeDef> GetAvailableUpgrades(Galaxy galaxy, string playerName) { var player = Galaxy.GetPlayer(playerName); var availableUpgrades = new List<UpgradeDef>(); var allUpgrades = new Upgrades().UpgradeDefs; foreach (var upgradeDef in allUpgrades) { if (upgradeDef.Cost <= player.MetalAvail && upgradeDef.FactionName == player.FactionName) { List<UpgradeDef> upgrades; if (!UpgradeData.TryGetValue(playerName, out upgrades)) { upgrades = new List<UpgradeDef>(); } var lesserUpgrade = allUpgrades.Where( x => x.FactionName == upgradeDef.FactionName && x.Branch == upgradeDef.Branch && x.Division == upgradeDef.Division && x.Level == upgradeDef.Level - 1).SingleOrDefault(); var hasLesserUpgrade = lesserUpgrade == null || upgrades.Where(x => x.ID == lesserUpgrade.ID).Any(); if (hasLesserUpgrade) { availableUpgrades.Add(upgradeDef); } } } return availableUpgrades; }
public Server(Galaxy galaxy) { Galaxy = galaxy; }