|
|
|
|
|
PlaceObj('CharacterEffectCompositeDef', { |
|
'Group', "Strength", |
|
'Id', "CollateralDamage", |
|
'SortKey', 7, |
|
'Parameters', { |
|
PlaceObj('PresetParamPercent', { |
|
'Name', "enemyDamageMod", |
|
'Value', 15, |
|
'Tag', "<enemyDamageMod>%", |
|
}), |
|
PlaceObj('PresetParamPercent', { |
|
'Name', "objectDamageMod", |
|
'Value', 30, |
|
'Tag', "<objectDamageMod>%", |
|
}), |
|
}, |
|
'object_class', "Perk", |
|
'unit_reactions', { |
|
PlaceObj('UnitReaction', { |
|
Event = "OnCalcDamageAndEffects", |
|
Handler = function (self, target, attacker, attack_target, action, weapon, attack_args, hit, data) |
|
if attacker ~= target then return end |
|
|
|
if not IsKindOf(attack_target, "CombatObject") or not IsKindOfClasses(weapon, "HeavyWeapon", "MachineGun") then |
|
return |
|
end |
|
|
|
if IsKindOf(attack_target,"Unit") then |
|
if GetCoversAt(attack_target:GetPos()) then |
|
local damageBonus = self:ResolveValue("enemyDamageMod") |
|
data.base_damage = MulDivRound(data.base_damage, 100 + damageBonus, 100) |
|
data.breakdown[#data.breakdown + 1] = { name = self.DisplayName, value = damageBonus } |
|
end |
|
else |
|
local damageBonus = self:ResolveValue("objectDamageMod") |
|
data.base_damage = MulDivRound(data.base_damage, 100 + damageBonus, 100) |
|
data.breakdown[#data.breakdown + 1] = { name = self.DisplayName, value = damageBonus } |
|
end |
|
end, |
|
}), |
|
}, |
|
'DisplayName', T(462837297109, "Collateral Damage"), |
|
'Description', T(247186377267, "Deal <em><percent(enemyDamageMod)></em> extra <em>Damage</em> to enemies behind cover with <em>Heavy</em> <em>Weapons</em> and <em>Machine Guns</em>.\n\nDeal <em><percent(objectDamageMod)> Damage</em> to objects with <em>Heavy</em> <em>Weapons</em> and <em>Machine Guns</em>."), |
|
'Icon', "UI/Icons/Perks/CollateralDamage", |
|
'Tier', "Gold", |
|
'Stat', "Strength", |
|
'StatValue', 90, |
|
}) |
|
|
|
|