31 lines
1.4 KiB
C#
Executable File
31 lines
1.4 KiB
C#
Executable File
using Cal;
|
|
|
|
namespace ET
|
|
{
|
|
public class SkillOptionLogic_应用Modifier: SkillOptionLogicBase
|
|
{
|
|
public override SkillOptionType skillOptionType => SkillOptionType.应用Modifier;
|
|
public override SkillOptionBase skillOptionBase { get; set; }
|
|
|
|
SkillOption_应用Modifier skillOption;
|
|
|
|
public override void HandleEvent(ISkillSender skillSender)
|
|
{
|
|
skillOption = skillOptionBase.As<SkillOption_应用Modifier>();
|
|
SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, Action);
|
|
}
|
|
|
|
private async ETTask Action(Unit target, ISkillSender skillSender)
|
|
{
|
|
var owner = skillSender.caster;
|
|
SkillMgrComponent skillMgrComponent = owner.GetComponent<SkillMgrComponent>();
|
|
SkillLogic skillLogic = skillMgrComponent.GetSkill(skillSender.skillConfigId/100);
|
|
ModifierContainerComponent modifierComponent = target.GetComponent<ModifierContainerComponent>();
|
|
if (!skillLogic || skillLogic.skillLogicConfig == null || skillLogic.skillLogicConfig.modifierDic == null)
|
|
{
|
|
Log.Error($"{owner.Id} has no skill: skillId is {skillSender.skillConfigId}, 1 {skillLogic} 2 {skillLogic?.skillLogicConfig} 3 {skillLogic?.skillLogicConfig?.modifierDic}");
|
|
}
|
|
modifierComponent.ApplyModifier(skillSender.caster, skillLogic, this.skillOption.modifierId);
|
|
}
|
|
}
|
|
} |