38 lines
1.7 KiB
C#
Executable File
38 lines
1.7 KiB
C#
Executable File
using Cal;
|
|
namespace ET
|
|
{
|
|
public class SkillOptionLogic_改变伤害倍率 : SkillOptionLogicBase
|
|
{
|
|
public override SkillOptionType skillOptionType => SkillOptionType.改变伤害倍率;
|
|
public override SkillOptionBase skillOptionBase { get; set; }
|
|
|
|
SkillOption_改变伤害倍率 skillOption;
|
|
public override void HandleEvent(ISkillSender skillSender)
|
|
{
|
|
skillOption = skillOptionBase.As<SkillOption_改变伤害倍率>();
|
|
SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, Action);
|
|
}
|
|
|
|
private async ETTask Action(Unit target, ISkillSender skillSender)
|
|
{
|
|
AttackComponent attacker = target.GetComponent<AttackComponent>();
|
|
if (!SkillHelper.GetParam(this.skillOption.param, skillSender.skillConfigId, out float value))
|
|
return;
|
|
if (!(skillSender is ModifierSkillSender modifierSkillSender))
|
|
{
|
|
Log.Error($"skillSender = {skillSender} is not ModifierSkillSender");
|
|
return;
|
|
}
|
|
|
|
// ModifierContainerComponent modifierContainerComponent = target.GetComponent<ModifierContainerComponent>();
|
|
// ModifierLogic modifierLogic =modifierContainerComponent.GetModifierLogic(modifierSkillSender.modifierId);
|
|
ModifierLogic modifierLogic = modifierSkillSender.modifierLogic;
|
|
if (modifierLogic == null)
|
|
return;
|
|
float valueInt = value;
|
|
modifierLogic.multiDamageX10000 = valueInt - attacker.multipleDamageX10000;
|
|
// logic.SetMultipleDamage(valueInt);
|
|
attacker.multipleDamageX10000 = valueInt;
|
|
}
|
|
}
|
|
} |