示例#1
0
    public float CalculateFuelConsumption()
    {
        float FuelPower = GetFuelPolicyConsumption();

        FuelConsume = (EngineFuelConsumption * FuelPower) + (SectorFuelConsumption * SectorManager.getInstance().getActiveSectorsCount());


        return(FuelConsume);
    }
示例#2
0
 public float CalculateResourceProduced()
 {
     if (resourceManagerRef.checkWaterQuantity() && !(ResourceManager.getInstance().getFoodPercentage() >= 100))
     {
         resourceManagerRef.DecrementWater(RequiredWater);
         float EngDecay = (getEngineerCount() / maximumCapacity) * 2;
         float EngPower = Mathf.Clamp(EngDecay, SectorManager.getInstance().getMinimumResourceProduction(), SectorManager.getInstance().getMaximumResourceProduction());
         return(RequiredWater * EngPower);
     }
     return(0.0f);
 }
示例#3
0
    private void CallCycles()
    {
        SectorManager.getInstance().DecayCycle();
        ResourceManager.getInstance().DecrementFuel(ResourceManager.getInstance().CalculateFuelConsumption());
        SectorManager.getInstance().DeathCycle();
        SectorManager.getInstance().HappinessCycle();

        ResourceManager.getInstance().CalculateTotalHappy();

        CheckIfGameShouldEnd();
    }
示例#4
0
    public float calculateSectorOxygenConsumption()
    {
        float HappyDecay = (1 - HappyLevel) * 2;

        float HappyPower = Mathf.Clamp(HappyDecay, SectorManager.getInstance().getMinimumOxygenSectorConsumption(), SectorManager.getInstance().getMaximumOxygenSectorConsumption());

        float personOxygenUse = SectorManager.getInstance().getPersonOxygenConsumptionFactor() * HappyPower;


        this.currentOxygenConsumption = ((personOxygenUse * PopulationCount));

        return(this.currentOxygenConsumption);
    }
示例#5
0
    public void CheckIfGameShouldEnd()
    {
        if (!ResourceManager.getInstance().CheckIfThereIsFuel() || !SectorManager.getInstance().CheckIfPeopleAreAlive())
        {
            if (Application.platform != RuntimePlatform.WindowsEditor && Application.platform != RuntimePlatform.OSXEditor)
            {
                Application.Quit();
            }
            else
            {
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#endif
            }
        }
    }
示例#6
0
    public float calculateSectorFoodConsumption()
    {
        float popCount = scienceCount + engineerCount + normalCount + militaryCount;

        // varia entre 0.2 e 2
        float militaryPopRatio = 1 - (militaryCount / popCount);

        militaryPopRatio *= 2;
        //se nao houver militares nao fica = 0
        militaryPopRatio = Mathf.Clamp(militaryPopRatio, SectorManager.getInstance().getMinimumFoodSectorConsumption(), SectorManager.getInstance().getMaximumFoodSectorConsumption());

        float convertedFoodPolicy = getActiveFoodPolicyConsumptionFactor();

        float consumptionFactor = ((float)convertedFoodPolicy) * militaryPopRatio;

        this.currentFoodConsumption = ((consumptionFactor * popCount));

        return(this.currentFoodConsumption);
    }
示例#7
0
 public float getActiveFoodPolicyConsumptionFactor()
 {
     return(SectorManager.getInstance().getFoodPolicyConsumption(currentFoodPolicy));
 }
示例#8
0
 private void ActivateSector()
 {
     SectorManager.getInstance().SectorActivated(this);
 }
示例#9
0
 public float CalculateHappyLevelInSector()
 {
     HappyLevel = (calculateSardineLevel() + SectorManager.getInstance().calculateDeathImpact() + SectorManager.getInstance().getFoodPolicyHappyImpact(currentFoodPolicy) + getSectorMilitarization() + GameCoordinator.getInstance().getTimeAwayFromPlanet()) / 5;
     return(HappyLevel);
 }
示例#10
0
    public void calculateDeathProbability()
    {
        float HappinessFactor = (1 - HappyLevel) * 0.05f;
        float SardineFactor   = (1 - SardineLevel) * 0.05f;
        float FoodFactor      = ResourceManager.getInstance().getFoodPercentage() > 0 ? (1 - SectorManager.getInstance().getFoodPolicyHappyImpact(currentFoodPolicy)) * 0.10f : 1;

        float OxygenFactor = ResourceManager.getInstance().getOxygenPercent() > 0 ? 0 : 1;

        float death = SardineFactor + HappinessFactor + FoodFactor + OxygenFactor;

        DeathProbability = (Mathf.Clamp(death, 0.0f, 1.0f)) * 100;
    }
示例#11
0
 // Update is called once per frame
 void Update()
 {
     textRef.text = SectorManager.getInstance().getCurrentDeaths().ToString();
 }
示例#12
0
 // Update is called once per frame
 void Update()
 {
     textRef.text = SectorManager.getInstance().getCurrentPopulation().ToString();
 }
示例#13
0
 public void CalculateSectorsConsumptions()
 {
     SectorManager.getInstance().RecalculateTotalDecayLevels(out FoodConsume, out OxygenConsume);
 }
示例#14
0
 public void CalculateTotalHappy()
 {
     HappyLevel = SectorManager.getInstance().getHappyInAllSectors();
 }