Exemplo n.º 1
0
    public MapManager()
    {
        ClimateManager  = new ClimateManager();
        RandomGenerator = new RandomGenerator(0);
        Statistics      = new Statistics();

        Observer           = new Observer();
        Orgs.PlayerCompany = new Company("Green Inc.", CompanyType.GENERIC, 20_000);
        Orgs.Companies.Add(new Company("Energy Inc.", CompanyType.ELECTRICAL, 50_000));
        Orgs.Companies.Add(new Company("Food Inc.", CompanyType.FOOD, 10_000));
    }
Exemplo n.º 2
0
    public void LoadCircuitsFromDatabase(List <DatabaseEntry> locationData, ClimateManager climateManager)
    {
        Debug.Assert(this.mCircuits.Count == 0, "Loading from database when content is already loaded; this will work but indicates that the game is loading in a strange unintended way.");
        this.mCircuits.Clear();

        for (int index = 0; index < locationData.Count; ++index)
        {
            DatabaseEntry databaseEntry = locationData[index];
            Circuit       circuit       = new Circuit();
            this.mCircuits.Add(circuit);
            circuit.circuitID                   = databaseEntry.GetIntValue("Circuit ID");
            circuit.locationName                = databaseEntry.GetStringValue("Location");
            circuit.travelCost                  = (long)((double)databaseEntry.GetFloatValue("Travel Cost") * (double)GameStatsConstants.millionScalar);
            circuit.locationNameID              = databaseEntry.GetStringValue("Location ID");
            circuit.nationalityKey              = databaseEntry.GetStringValue("Country");
            circuit.countryNameID               = databaseEntry.GetStringValue("Country ID");
            circuit.spriteName                  = databaseEntry.GetStringValue("Sprite Name");
            circuit.trackRubberModifier         = databaseEntry.GetFloatValue("Track Rubber Modifier");
            circuit.safetyCarFlagProbability    = databaseEntry.GetFloatValue("Safety Car Flag Chance");
            circuit.virtualSafetyCarProbability = databaseEntry.GetFloatValue("Virtual Safety Car Chance");
            circuit.minimapRotation             = databaseEntry.GetIntValue("Minimap Rotation");
            circuit.minimapAxisX                = databaseEntry.GetStringValue("Minimap Axis") == "x";
            circuit.trackStatsCharacteristics.SetStat(CarStats.StatType.TopSpeed, databaseEntry.GetFloatValue("TS"));
            circuit.trackStatsCharacteristics.SetStat(CarStats.StatType.Acceleration, databaseEntry.GetFloatValue("ACC"));
            circuit.trackStatsCharacteristics.SetStat(CarStats.StatType.Braking, databaseEntry.GetFloatValue("DEC"));
            circuit.trackStatsCharacteristics.SetStat(CarStats.StatType.HighSpeedCorners, databaseEntry.GetFloatValue("HSC"));
            circuit.trackStatsCharacteristics.SetStat(CarStats.StatType.MediumSpeedCorners, databaseEntry.GetFloatValue("MSC"));
            circuit.trackStatsCharacteristics.SetStat(CarStats.StatType.LowSpeedCorners, databaseEntry.GetFloatValue("LSC"));
            circuit.isInNorthHemisphere = databaseEntry.GetStringValue("Hemisphere") == "North";
            circuit.trackLayout         = CircuitManager.GetTrackLayoutFromString(databaseEntry.GetStringValue("Track Layout"));
            circuit.trackLengthMiles    = databaseEntry.GetFloatValue("Track Length");
            circuit.firstTyreOption     = (TyreSet.Compound)Enum.Parse(typeof(TyreSet.Compound), databaseEntry.GetStringValue("First Tyre Option"));
            circuit.secondTyreOption    = (TyreSet.Compound)Enum.Parse(typeof(TyreSet.Compound), databaseEntry.GetStringValue("Second Tyre Option"));
            circuit.thirdTyreOption     = (TyreSet.Compound)Enum.Parse(typeof(TyreSet.Compound), databaseEntry.GetStringValue("Third Tyre Option"));
            circuit.tyreWearRate        = (Circuit.Rate)Enum.Parse(typeof(Circuit.Rate), databaseEntry.GetStringValue("Tyre Wear Rate"));
            circuit.fuelBurnRate        = (Circuit.Rate)Enum.Parse(typeof(Circuit.Rate), databaseEntry.GetStringValue("Fuel Burn Rate"));
            float num1       = 120f;
            float num2       = 90f;
            float inMinutes1 = (float)((double)circuit.trackLengthMiles / (double)num1 * 60.0);
            float inMinutes2 = (float)((double)circuit.trackLengthMiles / (double)num2 * 60.0);
            circuit.bestPossibleLapTime  = GameUtility.MinutesToSeconds(inMinutes1);
            circuit.worstPossibleLapTime = GameUtility.MinutesToSeconds(inMinutes2);
            circuit.scene = databaseEntry.GetStringValue("Scene");

            circuit.climate     = CircuitManager.GetClimateFromString(databaseEntry.GetStringValue("Climate"), climateManager);
            circuit.driverStats = Game.instance.driverStatsProgressionManager.GetDriverStatsProgression(circuit.locationName);
        }
    }
Exemplo n.º 3
0
 void Awake()
 {
     if (gameMan == null)
     {
         gameMan       = this;
         resourceMan   = this.gameObject.GetComponent <ResourcesManager>();
         controlMan    = this.gameObject.GetComponent <ControlManager>();
         buildingsMan  = this.gameObject.GetComponent <BuildingsManager>();
         simMan        = this.gameObject.GetComponent <SimulationManager>();
         climateMan    = this.gameObject.GetComponent <ClimateManager>();
         populationMan = this.gameObject.GetComponentInChildren <PopulationManager>();
         uiMan         = this.gameObject.GetComponentInChildren <UIManager>();
         econMan       = this.gameObject.GetComponent <EconomyManager>();
     }
     else
     {
         Destroy(this.gameObject);
     }
 }
Exemplo n.º 4
0
    public ClimateManager()
    {
        Instance = this;

        try
        {
            var uri = new Uri("pack://application:,,,/Assets/Climate.txt");
            System.Windows.Resources.StreamResourceInfo resourceStream = Application.GetResourceStream(uri);

            using (var reader = new StreamReader(resourceStream.Stream))
            {
                string traitsText           = reader.ReadToEnd();
                List <DatabaseEntry> result = DatabaseReader.LoadFromText(traitsText);

                LoadClimatesFromDatabase(result);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            //throw;
        }
    }
Exemplo n.º 5
0
    private static Climate GetClimateFromString(string climateType, ClimateManager climateManager)
    {
        Climate climate = climateManager.GetClimate(0);

        switch (climateType)
        {
        case "Moderate":
            climate = climateManager.GetClimate(1);
            break;

        case "Warm":
            climate = climateManager.GetClimate(2);
            break;

        case "Tropical":
            climate = climateManager.GetClimate(3);
            break;

        case "Dry":
            climate = climateManager.GetClimate(4);
            break;
        }
        return(climate);
    }