public static int GetPrizeToCreateColony(Settlement.SettlementType type) { int i = 1; if (type == Settlement.SettlementType.COMMUNITY) i = 500; else if (type == Settlement.SettlementType.INHABITED) i = 400; else if (type == Settlement.SettlementType.MILITARY) i = 150; return i; }
/// <summary> /// Metodo che crea gli imperi /// </summary> private static void CreateEmpires() { Random rnd = new Random(); // Terrascore minimo definito a partire dal numero degli imperi da creare int terrascore = 24; int empireNumber = GameParams.empireNumber; if (empireNumber < 150) terrascore = 27; else if (empireNumber < 125) terrascore = 30; int empireCount = 0; foreach(SolarSystem ss in solarSystems) { foreach(Planet p in ss.Planets) { // Se il terrascore va bene e non si sono creati abbastanza imperi, creane uno if(p.Terrascore >= terrascore && empireCount < empireNumber) { Empire empire = new Empire(ss); int money = rnd.Next(10000, 100000); // Soldi e abitanti random int inhabitants = rnd.Next(10000, 1000000); // Definisci potenza di attacco e difese a seconda della religione int minD = 300; int minO = 10; if (empire.EmpireReligion == Religion.ReligionType.ATOM || empire.EmpireReligion == Religion.ReligionType.BLESS) minD = 1000; else if (empire.EmpireReligion == Religion.ReligionType.CURSER) minO = 100; int defense = rnd.Next(minD, 10000); int offense = rnd.Next(minO, 200); // Crea insediamento Settlement settlement = new Settlement(Settlement.SettlementType.CAPITAL, money, inhabitants, defense, offense, empire.EmpireReligion); p.CreateSettlement(settlement); empire.SetEmpireCapital(p); // Aggiungilo agli imperi empires.Add(empire); empireCount++; break; } } // Se si sono creati tutti gli imperi, esci da for if (empireCount > empireNumber) break; } }
static bool CreateSettlement() { bool result = false; foreach(Button b in ChoiceButtons) { if(b.WasPressed()) { if(b.Type == "YesButton") { Settlement.SettlementType type = Settlement.GetSettlementTypeFromString(settlementType); Settlement capitalSett = GameManager.PlayerCapital.PlanetSettlement; Settlement s = new Settlement(type, prize / 2, capitalSett.Inhabitants / 16, capitalSett.DefensiveArmy, capitalSett.OffensiveArmy, capitalSett.InhaGrowthRate, capitalSett.ScienceLevel, capitalSett.ScienceGrowthRate, capitalSett.CommerceLevel, capitalSett.CommerceGrowthRate, capitalSett.TecnoLevel, capitalSett.TecnoGrowthRate); GameSystemDesigner.ActualPlanet.CreateSettlement(s); GameManager.SetActualSystemOwner(GameManager.PlayerEmpire); PlayerShip.Money -= prize; state = PanelState.WAIT; settlementType = ""; prize = int.MaxValue; return true; } else if(b.Type == "CancelButton") { state = PanelState.WAIT; settlementType = ""; prize = int.MaxValue; return false; } } } return result; }
public void CreateSettlement(Settlement settlement) { planetSettlement = settlement; }
static void SaveSettlement(XmlWriter xw, Settlement s) { xw.WriteStartElement("SETTLEMENT"); xw.WriteAttributeString("TYPE", s.Type.ToString()); xw.WriteAttributeString("MONEY", s.Money.ToString()); xw.WriteAttributeString("INHABITANTS", s.Inhabitants.ToString()); xw.WriteAttributeString("INHARATE", s.InhaGrowthRate.ToString()); xw.WriteAttributeString("SCIENCE", s.ScienceLevel.ToString()); xw.WriteAttributeString("SCIENCERATE", s.ScienceGrowthRate.ToString()); xw.WriteAttributeString("COMMERCE", s.CommerceLevel.ToString()); xw.WriteAttributeString("COMMERCERATE", s.CommerceGrowthRate.ToString()); xw.WriteAttributeString("TECNO", s.TecnoLevel.ToString()); xw.WriteAttributeString("TECNORATE", s.TecnoGrowthRate.ToString()); xw.WriteAttributeString("OFFENSIVE", s.OffensiveArmy.ToString()); xw.WriteAttributeString("DEFENSIVE", s.DefensiveArmy.ToString()); //Inserisci i prodotti dell'insediamento SaveProducts(xw, s.Products); xw.WriteEndElement();//Di SETTLEMENT }
public void CreatePlanets(bool playerStartingSystem = false) { planets = new List<Planet>(); for (int i = 1; i < 10; i++) { if (rnd.Next(0, 3) != 0) // non si crea il pianeta continue; bool habitable = i < 4 || i > 6 ? false : true; //Se i è tra 4 e 6 il pianeta è abitabile int score = habitable ? rnd.Next(0, 32) : 0; //e gli si da un terrascore Vector3 startPosition = systemPosition; startPosition.X += i * 60; //posizione iniziale del pianeta string type; if (i <= 6) type = "Type" + rnd.Next(1, 10); //Tipo del pianeta, se in posizione fino a 6 è roccioso, altrimenti gassoso else type = "Gas" + rnd.Next(1, 9); Planet p = new Planet(habitable, score, startPosition, systemPosition, type, i * 60);//Crea il pianeta planets.Add(p); //ed aggiungilo alla lista } if(playerStartingSystem) { bool created = false; foreach(Planet p in planets) if(p.IsHabitable) { p.Terrascore = 32; Settlement settlement = new Settlement(Settlement.SettlementType.CAPITAL, GameParams.religionType); p.CreateSettlement(settlement); created = true; break; } if(!created) { Vector3 startPosition = systemPosition; startPosition.X += rnd.Next(4,7) * 60; //posizione iniziale del pianeta string type = "Type" + rnd.Next(1, 10); //Tipo del pianeta, se in posizione fino a 6 è roccioso, altrimenti gassoso Planet p = new Planet(true, 32, startPosition, systemPosition, type, startPosition.X - systemPosition.X);//Crea il pianeta Settlement settlement = new Settlement(Settlement.SettlementType.CAPITAL, GameParams.religionType); p.CreateSettlement(settlement); planets.Add(p); //ed aggiungilo alla lista } } }
static int ReturnLevelTypeForPowerUp(PlayerPowerUp.PowerUpType type, Settlement settlement) { int commerce = LevelManager.ActualLevel(settlement.CommerceLevel); int tecno = LevelManager.ActualLevel(settlement.TecnoLevel); int science = LevelManager.ActualLevel(settlement.ScienceLevel); int level = 1; switch (type) { case PlayerPowerUp.PowerUpType.CARGO: case PlayerPowerUp.PowerUpType.SHIELD: level = commerce; break; case PlayerPowerUp.PowerUpType.ENGINE: case PlayerPowerUp.PowerUpType.TERRAFORMER: level = science; break; case PlayerPowerUp.PowerUpType.LASER: case PlayerPowerUp.PowerUpType.ROCKET: level = tecno; break; } return level; }