public void PerformIncome()
        {
            var yield = YieldLogic.GetYieldOfCivilization(this);

            GoldStockpile    += Mathf.FloorToInt(yield[YieldType.Gold]);
            CultureStockpile += Mathf.FloorToInt(yield[YieldType.Culture]);

            LastScienceYield = Mathf.FloorToInt(yield[YieldType.Science]);

            GreatPersonCanon.AddPointsTowardsTypeForCiv(
                GreatPersonType.GreatArtist, this, yield[YieldType.GreatArtist]
                );

            GreatPersonCanon.AddPointsTowardsTypeForCiv(
                GreatPersonType.GreatEngineer, this, yield[YieldType.GreatEngineer]
                );

            GreatPersonCanon.AddPointsTowardsTypeForCiv(
                GreatPersonType.GreatMerchant, this, yield[YieldType.GreatMerchant]
                );

            GreatPersonCanon.AddPointsTowardsTypeForCiv(
                GreatPersonType.GreatScientist, this, yield[YieldType.GreatScientist]
                );
        }
Beispiel #2
0
        private void OnUnitGainedExperience(Tuple <IUnit, int> data)
        {
            var unit             = data.Item1;
            int experienceGained = data.Item2;

            var unitOwner = UnitPossessionCanon.GetOwnerOfPossession(unit);

            float modifier = CivModifiers.GreatMilitaryGainSpeed.GetValueForCiv(unitOwner);

            if (unit.Type == UnitType.NavalMelee || unit.Type == UnitType.NavalRanged)
            {
                GreatPersonCanon.AddPointsTowardsTypeForCiv(
                    GreatPersonType.GreatAdmiral, unitOwner,
                    experienceGained * CivConfig.ExperienceToGreatPersonPointRatio * modifier
                    );
            }
            else if (unit.Type != UnitType.Civilian && unit.Type != UnitType.City)
            {
                GreatPersonCanon.AddPointsTowardsTypeForCiv(
                    GreatPersonType.GreatGeneral, unitOwner,
                    experienceGained * CivConfig.ExperienceToGreatPersonPointRatio * modifier
                    );
            }
        }