-- ========== GENERATED BY CharacterEffectCompositeDef Editor DO NOT EDIT MANUALLY! ========== UndefineClass('Bleeding') DefineClass.Bleeding = { __parents = { "StatusEffect" }, __generated_by_class = "CharacterEffectCompositeDef", object_class = "StatusEffect", unit_reactions = { PlaceObj('UnitReaction', { Event = "OnEndTurn", Handler = function (self, target) if not IsInCombat() then return end if target:HasStatusEffect("BeingBandaged") then target:RemoveStatusEffect("Bleeding") return end local value = self:ResolveValue("DamagePerTurn") local floating_text = T{193053798048, " (bleeding)", num = value} local pov_team = GetPoVTeam() local has_visibility = HasVisibilityTo(pov_team, target) local log_msg = T{729241506274, " bleeds for damage", name = target:GetLogName(), num = value} target:TakeDirectDamage(value, has_visibility and floating_text or false, "short", log_msg) end, }), PlaceObj('UnitReaction', { Event = "OnCalcChanceToHit", Handler = function (self, target, attacker, action, attack_target, weapon1, weapon2, data) if target == attacker then ApplyCthModifier_Add(self, data, self:ResolveValue("cth_penalty")) end end, }), PlaceObj('UnitReaction', { Event = "OnCalcCritChance", Handler = function (self, target, attacker, attack_target, action, weapon, data) if target == attack_target and IsKindOf(data.weapon, "GutHookKnife") then data.guaranteed_crit = true end end, }), PlaceObj('UnitReaction', { Event = "OnUnitBandaged", Handler = function (self, target, healer, patient, hp_restored) if target == patient then target:RemoveStatusEffect(self.class) end end, }), }, DisplayName = T(779855732255, --[[CharacterEffectCompositeDef Bleeding DisplayName]] "Bleeding"), Description = T(303094247377, --[[CharacterEffectCompositeDef Bleeding Description]] "This character will take damage each turn until they are bandaged. Maximum AP decreased by ."), AddEffectText = T(902710213609, --[[CharacterEffectCompositeDef Bleeding AddEffectText]] " is bleeding"), OnAdded = function (self, obj) if g_Teams[g_CurrentTeam] == obj.team and not obj:HasStatusEffect("BeingBandaged") then obj:ConsumeAP(-self:ResolveValue("APLoss") * const.Scale.AP) end end, OnRemoved = function (self, obj) if g_Combat and not obj:HasStatusEffect("BeingBandaged") then obj:ConsumeAP(self:ResolveValue("APLoss") * const.Scale.AP) end end, type = "Debuff", Icon = "UI/Hud/Status effects/bleeding", RemoveOnEndCombat = true, Shown = true, HasFloatingText = true, }