コード例 #1
0
        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;
        }
コード例 #2
0
        public ActionResult NewPlanet(PlanetForm form)
        {
            Debug.WriteLine($"POST: Planet Controller: New Planet- starID={form.StarID}");
            var game = GameState.Game;

            DB_planets planet = new DB_planets();

            planet.game_id = game.ID;
            planet.star_id = form.StarID;

            planet.orbiting_planet_id = (form.OrbitingPlanetID == -1) ? null : form.OrbitingPlanetID;
            planet.planet_tier_id     = (form.SelectedPlanetTier == -1) ? null : form.SelectedPlanetTier;
            planet.planet_type_id     = (form.SelectedPlanetType == -1) ? null : form.SelectedPlanetType;
            planet.stage_of_life_id   = (form.SelectedStageOfLife == -1) ? null : form.SelectedStageOfLife;

            planet.name              = form.Name;
            planet.resources         = form.Resources;
            planet.supports_colonies = form.SupportsColonies;
            planet.gmnotes           = form.GMNotes;
            Database.Session.Save(planet);

            Database.Session.Flush();
            return(RedirectToRoute("StarMap"));
        }
コード例 #3
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #4
0
 public Planet(DB_planets planet)
 {
     Info           = planet;
     Satellites     = new List <Planet>();
     Infrastructure = new List <Models.Game.CivilizationInfrastructure>();
 }