Assassin_202020.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 
  2. using CommonAI.Zone;
  3. using XmdsCommon.Plugin;
  4. using XmdsCommonServer.Plugin;
  5. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  6. using XmdsCommonSkill.Plugin.Buffs;
  7. using XmdsCommonServer.XLS.Data;
  8. namespace XmdsCommonSkill.Plugin.Skills.Assassin
  9. {
  10. /// <summary>
  11. /// 影袭: 进入疯狂杀戮状态,所有技能冷却时间缩短x%,物攻提高x%,持续x秒.
  12. /// </summary>
  13. public class Assassin_202020 : XmdsSkillBase
  14. {
  15. public static int ID = 202020;
  16. public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.YING_XI_ZHUANG_TAI;
  17. /// CD时间.
  18. public static XmdsSkillValue CDChange;
  19. /// 攻击上升.
  20. public static XmdsSkillValue AtkUp;
  21. public override int SkillID { get { return ID; } }
  22. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  23. {
  24. //施放技能监听.
  25. unit.RegistLaunchSkillOver(OnLaunchSkillOver, info,false);
  26. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
  27. BuffTemplate bt = pack.mBuffTemplate;
  28. bt.LifeTimeMS = 5000;
  29. bt.IsHarmful = false;
  30. pack.BindTemplateAndDispose();
  31. unit.RegistSendBuff(bt);
  32. }
  33. //攻击监听.
  34. protected virtual int OnLaunchSkillOver(GameSkill info, XmdsCommonServer.Plugin.XmdsVirtual attacker, CommonAI.Zone.Instance.InstanceUnit.SkillState state)
  35. {
  36. if (state.Data.ID == SkillID)
  37. {
  38. XmdsBuff_ChangeSkillTotalTime buff1 = (XmdsBuff_ChangeSkillTotalTime)attacker.GetRegisBuffVirtual(SkillID, 0);
  39. buff1.ChangeTime = -this.GetTargetFormulaValue(attacker.SkillHelper.GetGameSkill(SkillID).SkillLevel, CDChange);
  40. buff1.IsPercent = true;
  41. XmdsBuff_PropChange buff2 = (XmdsBuff_PropChange)attacker.GetRegisBuffVirtual(SkillID, 1);
  42. buff2.CurentChangeType = XmdsVirtual.UnitAttributeType.Attack;
  43. buff2.CurrentValue = this.GetTargetFormulaValue(attacker.SkillHelper.GetGameSkill(SkillID).SkillLevel, AtkUp);
  44. buff2.IsPercent = true;
  45. attacker.mUnit.AddBuff(Buff_ID, attacker.mUnit);
  46. }
  47. return 0;
  48. }
  49. protected override void OnInitSkillParam()
  50. {
  51. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  52. InitData(data, out CDChange, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  53. InitData(data, out AtkUp, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  54. }
  55. }
  56. }