zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/SkillSystem/NewSkill/Component/SkillOptions/SkillOptionLogic_反伤.cs

39 lines
1.5 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
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_>();
2023-09-07 00:06:37 +08:00
SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, Action);
}
private async ETTask Action(Unit target, ISkillSender skillSender)
{
if (skillSender is not ModifierSkillSender modifierSkillSender)
2021-04-08 20:09:59 +08:00
{
2023-09-07 00:06:37 +08:00
Log.Error($"skillSender is not modifierSkillSender");
return;
}
//反伤伤害 受击者
Unit attacker = skillSender.caster;
//反伤伤害 发起者
Unit beAtker = modifierSkillSender.target;
if (!beAtker)
return;
AttackComponent attackComponent = attacker.GetComponent<AttackComponent>();
attackComponent.isFirstAtk = false;
BallisticData damageData = attackComponent.GetAttackData();
if (!SkillHelper.GetParam(this.skillOption.param, skillSender.skillConfigId, out float value))
return;
damageData.ChangeValue(damageData.value * value / 100);
beAtker.GetComponent<AttackComponent>().AttackTarget(attacker, damageData, skillSender, false);
2021-04-08 20:09:59 +08:00
}
}
}