Assassin_201040.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 
  2. using CommonAI.Zone;
  3. using CommonAI.Zone.Instance;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonServer.XLS.Data;
  7. namespace XmdsCommonSkill.Plugin.Skills.Assassin
  8. {
  9. /// <summary>
  10. /// 强化剑刃: 剑刃乱舞的暴击率提高x%.
  11. /// </summary>
  12. public class Assassin_201040 : Assassin_200040
  13. {
  14. /// 技能ID.
  15. public static new int ID = 201040;
  16. /// 暴击率上升.
  17. public static XmdsSkillValue CritAddPer;
  18. public override int SkillID { get { return ID; } }
  19. protected override void OnRegistEvent()
  20. {
  21. this.RegistEvent(EventType.CritRateAdd, OnCritAddEvent);
  22. base.OnRegistEvent();
  23. }
  24. private void OnCritAddEvent(BattleParams param)
  25. {
  26. param.CritAdd = this.GetTargetFormulaValue(param.GameSkill.TalentSkillLevel1, CritAddPer);
  27. }
  28. protected override void OnStateEndEvent(XmdsVirtual owner, InstanceUnit.StateSkill state, GameSkill gs)
  29. {
  30. //技能结束,BUFF结束.
  31. if (state.SkillData.ID == ID)
  32. {
  33. owner.mUnit.removeBuff(TargetBuffID, InstanceUnit.BuffState.EndResult_ByCode);
  34. }
  35. }
  36. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  37. {
  38. //注册技能结束监听.
  39. unit.RegistStateSkillEndEvent(OnStateEndEvent, info, false);
  40. }
  41. protected override void OnInitSkillParam()
  42. {
  43. base.OnInitSkillParam();
  44. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  45. InitData(data, out CritAddPer, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  46. }
  47. }
  48. }