Esempio n. 1
0
        public void NextTurn()
        {
            List <string> valuesThisTurn = new List <string>();

            values.ForEach(v => valuesThisTurn.Add(v.ToString()));
            valuesThisTurn.Add("gloire:" + glory);
            valuesThisTurn.Add("finances:" + money);
            valuesLog.Add(valuesThisTurn);
            values.FindAll(v => v.Active != false).ForEach(p => p.Propagate());
            values.ForEach(v => v.Update());
            indicators.FindAll(i => i.Active != false && i.GloryAmount != null).ForEach(i => { money += i.MoneyImpacted; glory += i.GloryImpacted; });
            policies.FindAll(p => p.Active != false && p.MoneyAmount < 0).ForEach(p => money -= p.MoneyImpacted);
            policies.FindAll(p => p.Active != false && p.MoneyAmount > 0).ForEach(p => money += p.MoneyImpacted);
            policies.FindAll(p => p.Active != false && p.GloryAmount > 0).ForEach(p => glory += p.GloryImpacted);
            perks.FindAll(p => p.Active == true).ForEach(p => { money += p.MoneyImpacted; glory += p.GloryImpacted; });
            perks.FindAll(p => p.Active == false).ForEach(p => p.CheckActivation());
            crises.FindAll(c => c.Active == true).ForEach(c => { money -= c.MoneyImpacted; glory -= c.GloryImpacted; });
            crises.FindAll(c => c.Active == false).ForEach(c => c.CheckActivation());
            turns++;
            if (turnsLeft > 0)
            {
                turnsLeft--;
            }

            if (crises.Exists(c => c.Result == IndexedValue.ResultType.Lose && c.Active == true) || money < 0)
            {
                GameControler.LoseDialog(crises.Find(c => c.Result == IndexedValue.ResultType.Lose && c.Active == true));
                turnsLeft = 0;
            }
            else if (perks.Exists(p => p.Result == IndexedValue.ResultType.Win && p.Active == true))
            {
                GameControler.WinDialog();
                turnsLeft = 0;
            }
        }
Esempio n. 2
0
 public void DeactivatePolicy(IndexedValue val, out int mCost, out int gCost)
 {
     val.Deactivate(out mCost, out gCost);
     GameControler.DeactivatePolicyDialog(mCost, gCost);
     glory -= Math.Abs(gCost);
 }