zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/SkillSystem/NewSkill/Component/SkillOptions/SkillOptionLogic_修改Modifier...

41 lines
1.7 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using Cal;
2023-09-07 00:06:37 +08:00
2021-04-08 20:09:59 +08:00
namespace ET
{
2023-09-07 00:06:37 +08:00
public class SkillOptionLogic_Modifier: SkillOptionLogicBase
2021-04-08 20:09:59 +08:00
{
public override SkillOptionType skillOptionType => SkillOptionType.Modifier;
public override SkillOptionBase skillOptionBase { get; set; }
SkillOption_Modifier skillOption;
2023-09-07 00:06:37 +08:00
2021-04-08 20:09:59 +08:00
public override void HandleEvent(ISkillSender skillSender)
{
skillOption = skillOptionBase.As<SkillOption_Modifier>();
2023-09-07 00:06:37 +08:00
SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, Action);
}
private async ETTask Action(Unit target, ISkillSender skillSender)
{
skillOption = skillOptionBase.As<SkillOption_Modifier>();
NumericComponent num = target.GetComponent<NumericComponent>();
ModifierContainerComponent modifierContainer = target.GetComponent<ModifierContainerComponent>();
2021-04-11 19:50:39 +08:00
ModifierLogic logic = modifierContainer.GetModifierLogic(skillOption.modifierId);
2023-09-07 00:06:37 +08:00
if (logic == null)
2021-04-08 20:09:59 +08:00
{
2023-09-07 00:06:37 +08:00
Log.Error($"logic is null where tagertId is:{target.Id} and ownerId is {skillSender.caster.Id}");
return;
2021-04-08 20:09:59 +08:00
}
2023-09-07 00:06:37 +08:00
modifierContainer.RemoveModifier(logic);
logic.dataX10000 = (1 - (float) num.GetAsInt(NumericType.Hp) / num.GetAsInt(NumericType.MaxHp)) / 0.1f;
SkillMgrComponent skillMgrComponent = logic.owner.GetComponent<SkillMgrComponent>();
SkillLogic skillLogic = skillMgrComponent.GetSkill(skillSender.skillConfigId / 100);
modifierContainer.ApplyModifier(logic.owner, skillLogic, skillOption.modifierId);
2021-04-08 20:09:59 +08:00
}
public override void Clear()
{
}
}
}