private void HandleBounty(UnitCombatResults results) { if (results.Attacker.CurrentHitpoints > 0 && results.Defender.CurrentHitpoints <= 0) { var attackerOwner = UnitPossessionLogic.GetOwnerOfPossession(results.Attacker); float modifier = CivModifiers.GoldBountyPerProduction.GetValueForCiv(attackerOwner); attackerOwner.GoldStockpile += Mathf.RoundToInt(results.Defender.Template.ProductionCost * modifier); } else if (results.Defender.CurrentHitpoints > 0 && results.Attacker.CurrentHitpoints <= 0) { var defenderOwner = UnitPossessionLogic.GetOwnerOfPossession(results.Defender); float modifier = CivModifiers.GoldBountyPerProduction.GetValueForCiv(defenderOwner); defenderOwner.GoldStockpile += Mathf.RoundToInt(results.Attacker.Template.ProductionCost * modifier); } }
public void OnMeleeCombatWithUnit(UnitCombatResults results) { HandleBounty(results); if (results.Defender.Type != UnitType.City) { return; } var attackerOwner = UnitPossessionLogic.GetOwnerOfPossession(results.Attacker); var defenderOwner = UnitPossessionLogic.GetOwnerOfPossession(results.Defender); var goldStolen = Mathf.Min( results.DamageToDefender * results.Attacker.CombatSummary.GoldRaidingPercentage, defenderOwner.GoldStockpile ); defenderOwner.GoldStockpile -= Mathf.FloorToInt(goldStolen); attackerOwner.GoldStockpile += Mathf.FloorToInt(goldStolen); }