6 override void ApplyEffect(notnull IEntity target, notnull IEntity user, IEntity item,
ItemUseParameters animParams)
8 super.ApplyEffect(target, user, item, animParams);
10 ChimeraCharacter
char = ChimeraCharacter.Cast(target);
18 array<HitZone> hitZones = {};
20 damageMgr.GetBandageAnimHitzones(animParams.GetIntParam(), hitZones);
21 if (hitZones.IsEmpty())
23 hzGroup = damageMgr.GetCharMostDOTHitzoneGroup(
EDamageType.BLEEDING);
27 HitZone targetHitZone = hitZones.Get(0);
35 hzGroup = charHitZone.GetHitZoneGroup();
41 damageMgr.RemoveGroupBleeding(hzGroup);
45 override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
47 ChimeraCharacter
char = ChimeraCharacter.Cast(target);
55 return damageMgr.IsDamagedOverTime(
EDamageType.BLEEDING);
59 override bool CanApplyEffectToHZ(notnull IEntity target, notnull IEntity user,
ECharacterHitZoneGroup group, out SCR_EConsumableFailReason failReason = SCR_EConsumableFailReason.NONE)
61 ChimeraCharacter
char = ChimeraCharacter.Cast(target);
66 return damageMgr && damageMgr.GetGroupDamageOverTime(group,
EDamageType.BLEEDING) > 0;
73 ChimeraCharacter
char = ChimeraCharacter.Cast(target);
85 if (!damageMgr.GetGroupIsBeingHealed(group))
86 bodyPartToBandage = damageMgr.FindAssociatedBandagingBodyPart(group);
90 group = damageMgr.GetCharMostDOTHitzoneGroup(
EDamageType.BLEEDING, ignoreIfBeingTreated:
true);
91 array<HitZone> hitzones = {};
92 damageMgr.GetHitZonesOfGroup(group, hitzones);
93 if (!hitzones || hitzones.IsEmpty())
100 bodyPartToBandage = hitzone.GetBodyPartToHeal();
108 params.SetAllowMovementDuringAction(
false);
109 params.SetKeepInHandAfterSuccess(
false);
110 params.SetCommandID(GetApplyToSelfAnimCmnd(target));
111 params.SetCommandIntArg(1);
112 params.SetCommandFloatArg(0.0);
113 params.SetMaxAnimLength(m_fApplyToSelfDuration);
114 params.SetIntParam(bodyPartToBandage);