Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }