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()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|