12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
-
- using CommonAI.Zone;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsCommonSkill.Plugin.Buffs;
- using XmdsCommonServer.XLS.Data;
- using CommonAI.Zone.Instance;
- namespace XmdsCommonSkill.Plugin.Skills.Assassin
- {
- /// <summary>
- /// 潜伏: 使隐身的持续时间延长到X秒,且受到伤害时不会取消隐身状态.
- /// </summary>
- public class Assassin_202050 : Assassin_200050
- {
- public static new int ID = 202050;
- public static new int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.YIN_SHEN2;
- public override int SkillID { get { return ID; } }
- protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
- {
- //施放技能监听.
- unit.RegistTryLaunchSkillEvent(OnTryLaunchSkillEventHandle, info, true);
- //技能技能初始化,常用作为修改BUFF能力等等.
- XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
- XmdsBuff_Stealth buff = (XmdsBuff_Stealth)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.Stealth);
- buff.ChangePercent = -GetTargetFormulaValue(info.SkillLevel, Buff_Value);
- BuffTemplate bt = pack.mBuffTemplate;
- bt.IsHarmful = false;
- pack.BindTemplateAndDispose();
- unit.RegistSendBuff(bt);
- //避免多余的监听浪费性能,不再调用父类的onInit方法.
- }
-
- protected override void OnSkillLogicEvent(BattleParams param)
- {
- BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_ID);
- bt.LifeTimeMS = 5000;
- param.Attacker.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
- }
- protected override void OnInitSkillParam()
- {
- base.OnInitSkillParam();
- }
- protected override bool OnTryLaunchSkillEventHandle(GameSkill skillInfo, ref InstanceUnit.SkillState skill,
- XmdsVirtual launcher, ref InstanceUnit.LaunchSkillParam param)
- {
- //只要施放的不是隐身和疾跑技能,其余全部消除.
- if (skill.Data.ID != SkillID
- && (skill.Data.ID != Assassin_200060.ID && skill.Data.ID != Assassin_201060.ID && skill.Data.ID != Assassin_202060.ID))
- {
- launcher.mUnit.removeBuff(Buff_ID);
- }
- return true;
- }
- }
- }
|