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] ); }
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 ); } }