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

45 lines
1.9 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_>();
SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, (target, skillSender) =>
{
if (skillSender is not ModifierSkillSender modifierSkillSender)
{
Log.Error($"skillSender is not modifierSkillSender");
return;
}
//反击时施法者是攻击者
2021-04-11 19:50:39 +08:00
Unit attacker = skillSender.caster;
2021-04-08 20:09:59 +08:00
//反击 发起者
2021-04-11 19:50:39 +08:00
Unit beAtker = modifierSkillSender.target;
2021-04-18 15:54:51 +08:00
if(!beAtker)
return;
2021-04-08 20:09:59 +08:00
int skillId = SkillHotfixHelper.GetNomalSkillId(beAtker);
2021-04-11 19:50:39 +08:00
TargetableUnitComponent targetComponent = beAtker.GetComponent<TargetableUnitComponent>();
Unit oldTarget = targetComponent.currTarget;
2021-04-08 20:09:59 +08:00
//临时改变;
targetComponent.currTarget = attacker;
2021-04-11 19:50:39 +08:00
SkillLogic skillLogic = beAtker.GetComponent<SkillMgrComponent>().GetSkill(skillId);
AttackComponent attackerComponent = beAtker.GetComponent<AttackComponent>();
2021-04-08 20:09:59 +08:00
attackerComponent.isFirstAtk = false;
if (skillLogic == null) return;
skillLogic.HandleEvent(SkillEventCondition., new SkillSender
{
skillLogic = skillLogic,
caster = beAtker,
});
targetComponent.currTarget = oldTarget;
});
}
}
}