Exemplo n.º 1
0
        private BudgetGlobalImpact GenerateGlobalImpact()
        {
            BudgetGlobalImpact globalImpact = new BudgetGlobalImpact();

            foreach (BudgetComponent bc in _budgetComponents)
            {
                BudgetWorldValues impact;
                if (!bc.impacts.Contains(EWorldImpactType.None))
                {
                    foreach (EWorldImpactType e in bc.impacts.ToArray())
                    {
                        impact = _impactsDatabase[e];
                        globalImpact.cleanliness += impact.cleanliness.val + (bc.budget * impact.cleanliness.multiplicator);
                        globalImpact.economy     += impact.economy.val + (bc.budget * impact.economy.multiplicator);
                        globalImpact.forest      += impact.forest.val + (bc.budget * impact.forest.multiplicator);
                        globalImpact.npc         += impact.npc.val + (bc.budget * impact.npc.multiplicator);
                        bc.PassAYear();
                    }
                }
            }
            foreach (KeyValuePair <EWorldImpactType, int> bonus in _bonusValues)
            {
                BudgetWorldValues impact = _impactsDatabase[bonus.Key];
                for (int i = 0; i < bonus.Value; i++)
                {
                    globalImpact.cleanliness += impact.cleanliness.val;
                    globalImpact.economy     += impact.economy.val;
                    globalImpact.forest      += impact.forest.val;
                    globalImpact.npc         += impact.npc.val;
                }
            }
            return(globalImpact);
        }
Exemplo n.º 2
0
        public static void NewYear(BudgetGlobalImpact globalImpact)
        {
            globalImpact.forest      += I_STATE_FOREST;
            globalImpact.cleanliness += I_STATE_CLEANLINESS;
            globalImpact.npc         += I_STATE_NPC;
            globalImpact.economy     += I_STATE_ECONOMY;

            ApplyImpact(globalImpact);
            Events.Instance.Raise(new OnChangeGauges());
        }
Exemplo n.º 3
0
        public static void ApplyImpact(BudgetGlobalImpact values)
        {
            float lForest  = STATE_FOREST;
            float lEconomy = STATE_ECONOMY;
            float lNpc     = STATE_NPC;
            float lClean   = STATE_CLEANLINESS;

            STATE_FOREST      = Mathf.Clamp(values.forest - (lEconomy / 3f), -3f, 3f);
            STATE_CLEANLINESS = Mathf.Clamp(values.cleanliness + ((lForest - lEconomy) / 3f), -3f, 3f);
            STATE_NPC         = Mathf.Clamp(values.npc + (lEconomy / 3f) + (1.5f * Mathf.Log(3.2f + lClean)) - 2f, -3f, 3f);
            STATE_ECONOMY     = Mathf.Clamp(values.economy + (lNpc / 2f), -3f, 3f);
        }
Exemplo n.º 4
0
        public void UpdateBudget()
        {
            BudgetGlobalImpact fullImpact = GenerateGlobalImpact();

            WorldValues.NewYear(fullImpact);
        }