zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/SkillSystem/NewSkill/Component/SkillOptions/SkillOptionLogic_应用Modifier.cs

31 lines
1.4 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
{
2023-09-07 00:06:37 +08:00
public override SkillOptionType skillOptionType => SkillOptionType.Modifier;
2021-04-08 20:09:59 +08:00
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)
{
2023-09-07 00:06:37 +08:00
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)
2021-04-08 20:09:59 +08:00
{
2023-09-07 00:06:37 +08:00
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);
2021-04-08 20:09:59 +08:00
}
}
}