|
|
|
|
|
UndefineClass('Berserker') |
|
DefineClass.Berserker = { |
|
__parents = { "Perk" }, |
|
__generated_by_class = "CharacterEffectCompositeDef", |
|
|
|
|
|
object_class = "Perk", |
|
unit_reactions = { |
|
PlaceObj('UnitReaction', { |
|
Event = "OnCalcBaseDamage", |
|
Handler = function (self, target, weapon, attack_target, data) |
|
local wounded = target:GetStatusEffect("Wounded") |
|
if wounded and wounded.stacks > 0 then |
|
local stackCap = self:ResolveValue("stackCap") |
|
local damagePerStack = self:ResolveValue("damageBonus") |
|
local stacks = Min(wounded.stacks, stackCap) |
|
local berserkerMod = damagePerStack*stacks |
|
|
|
data.modifier = data.modifier + berserkerMod |
|
data.breakdown[#data.breakdown + 1] = { name = self.DisplayName, value = berserkerMod } |
|
|
|
if target.team.player_enemy and g_Combat and not table.find(g_Combat.berserkVRsPerRole, target.role) then |
|
PlayVoiceResponse(target, "AIBerserkerPerk") |
|
table.insert(g_Combat.berserkVRsPerRole, target.role) |
|
end |
|
end |
|
end, |
|
}), |
|
}, |
|
DisplayName = T(489115886772, "Rage"), |
|
Description = T(709603782046, "Deal <em><percent(damageBonus)> Damage</em> per <GameTerm('Wound')>.\n\nCapped at <em><Multiply(damageBonus, stackCap)>%</em>."), |
|
Icon = "UI/Icons/Perks/PainManagement", |
|
Tier = "Silver", |
|
Stat = "Health", |
|
StatValue = 80, |
|
} |
|
|
|
|