private void CreateSpeciesAndCivilization(Game game, DB_planets planet, DB_starsystems starsystem, Fotiv_Automator.Models.StarMapGenerator.Models.SentientSpecies species) { // Create the Civilization DB_civilization dbCivilization = new DB_civilization(); dbCivilization.game_id = game.ID; dbCivilization.civilization_traits_1_id = RetrieveCivilizationTrait(species.Traits[0].ToString().SpaceUppercaseLetters()).id; dbCivilization.civilization_traits_2_id = RetrieveCivilizationTrait(species.Traits[1].ToString().SpaceUppercaseLetters()).id; dbCivilization.civilization_traits_3_id = RetrieveCivilizationTrait(species.Traits[2].ToString().SpaceUppercaseLetters()).id; dbCivilization.tech_level_id = RetrieveTechLevel($"TL{(int)species.TechLevel} {species.TechLevel.ToString().SpaceUppercaseLetters()}").id; dbCivilization.colour = "#E4D12F"; dbCivilization.name = $"Civilization {game.Random.Next(int.MaxValue)}"; dbCivilization.rp = 0; Database.Session.Save(dbCivilization); DB_species dbSpecies = new DB_species(); dbSpecies.game_id = game.ID; dbSpecies.name = $"Species {game.Random.Next(int.MaxValue)}"; dbSpecies.description = string.Join(",", species.Classifications.Select(x => x.ToString())); Database.Session.Save(dbSpecies); DB_civilization_species dbCivSpecies = new DB_civilization_species(); dbCivSpecies.game_id = game.ID; dbCivSpecies.civilization_id = dbCivilization.id; dbCivSpecies.species_id = dbSpecies.id; Database.Session.Save(dbCivSpecies); var homeworldInfrastructure = RetrieveInfrastructure("Homeworld"); DB_civilization_infrastructure dbInfrastructure = new DB_civilization_infrastructure(); dbInfrastructure.game_id = game.ID; dbInfrastructure.struct_id = homeworldInfrastructure.id; dbInfrastructure.civilization_id = dbCivilization.id; dbInfrastructure.planet_id = planet.id; dbInfrastructure.current_health = homeworldInfrastructure.base_health; dbInfrastructure.experience = 0; dbInfrastructure.name = homeworldInfrastructure.name; dbInfrastructure.can_upgrade = false; dbInfrastructure.is_military = true; Database.Session.Save(dbInfrastructure); DB_visited_starsystems dbVisitedStarSystem = new DB_visited_starsystems(); dbVisitedStarSystem.game_id = game.ID; dbVisitedStarSystem.civilization_id = dbCivilization.id; dbVisitedStarSystem.starsystem_id = starsystem.id; }
private void SaveSector(Game game, DB_sectors dbSector, Fotiv_Automator.Models.StarMapGenerator.Models.StarSector sector) { Debug.WriteLine($"Star Map Controller: Saving Sector to DB"); foreach (var column in sector.Sector) { foreach (var starsystem in column) { DB_starsystems dbStarSystem = new DB_starsystems(); dbStarSystem.game_id = game.ID; dbStarSystem.sector_id = dbSector.id; dbStarSystem.hex_x = starsystem.Coordinate.X; dbStarSystem.hex_y = starsystem.Coordinate.Y; Database.Session.Save(dbStarSystem); foreach (var star in starsystem.Stars) { DB_stars dbStar = new DB_stars(); dbStar.game_id = game.ID; dbStar.starsystem_id = dbStarSystem.id; dbStar.star_type_id = RetrieveStarType(star.Classification.ToString().SpaceUppercaseLetters()).id; dbStar.star_age_id = RetrieveStarAge(star.Age.ToString().SpaceUppercaseLetters()).id; dbStar.radiation_level_id = RetrieveRadiationLevel(star.Radiation.ToString().SpaceUppercaseLetters()).id; dbStar.name = star.Classification.ToString().SpaceUppercaseLetters(); Database.Session.Save(dbStar); foreach (var celestialBody in star.CelestialBodies) { // Create the Planet DB_planets dbPlanet = new DB_planets(); dbPlanet.game_id = game.ID; dbPlanet.star_id = dbStar.id; dbPlanet.planet_tier_id = RetrievePlanetaryTier(celestialBody.TerraformingTier.ToString().SpaceUppercaseLetters()).id; dbPlanet.planet_type_id = RetrievePlanetType(celestialBody.CelestialType.ToString().SpaceUppercaseLetters()).id; dbPlanet.stage_of_life_id = RetrieveStageOfLife(celestialBody.StageOfLife.ToString().SpaceUppercaseLetters()).id; dbPlanet.resources = celestialBody.ResourceValue; dbPlanet.supports_colonies = celestialBody.SupportsColonies; dbPlanet.name = celestialBody.CelestialType.ToString().SpaceUppercaseLetters(); Database.Session.Save(dbPlanet); foreach (var species in celestialBody.Sentients) { CreateSpeciesAndCivilization(game, dbPlanet, dbStarSystem, species); } // And set up the satellites foreach (var satellite in celestialBody.OrbitingSatellites) { DB_planets dbSatellite = new DB_planets(); dbSatellite.game_id = game.ID; dbSatellite.star_id = dbStar.id; dbSatellite.orbiting_planet_id = dbPlanet.id; dbSatellite.planet_tier_id = RetrievePlanetaryTier(satellite.TerraformingTier.ToString().SpaceUppercaseLetters()).id; dbSatellite.planet_type_id = RetrievePlanetType(satellite.CelestialType.ToString().SpaceUppercaseLetters()).id; dbSatellite.stage_of_life_id = RetrieveStageOfLife(satellite.StageOfLife.ToString().SpaceUppercaseLetters()).id; dbSatellite.resources = satellite.ResourceValue; dbSatellite.supports_colonies = satellite.SupportsColonies; dbSatellite.name = satellite.CelestialType.ToString().SpaceUppercaseLetters(); Database.Session.Save(dbSatellite); foreach (var species in satellite.Sentients) { CreateSpeciesAndCivilization(game, dbSatellite, dbStarSystem, species); } } } } } } }
public Starsystem(DB_starsystems system) { Info = system; HexCode = new HexCoordinate(Info.hex_x, Info.hex_y); }