Hunter_401050_Passive.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using CommonAI.Data;
  2. using CommonAI.Zone.Formula;
  3. using XmdsCommon.Plugin;
  4. using XmdsCommonServer.Plugin;
  5. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  6. using XmdsCommonServer.XLS.Data;
  7. using XmdsCommonSkill.Plugin.Skills;
  8. namespace XmdsCommonSkill.Plugin.PassiveSkills.Hunter
  9. {
  10. /// <summary>
  11. ///隐蔽.使你所有技能对怪物造成的仇恨下降x%,且造成暴击时的伤害增加x%.
  12. /// </summary>
  13. public abstract class Hunter_401050_Passive : XmdsPassiveSkillBase
  14. {
  15. /// <summary>
  16. ///ID.
  17. /// </summary>
  18. public static int ID = 401050;
  19. private int mUUID_1 = 0;
  20. private int mUUID_2 = 0;
  21. private GameSkill skillInfo;
  22. public static XmdsSkillValue mThreatValueReduce;
  23. public static XmdsSkillValue mCritValueAdd;
  24. public override int SkillID
  25. {
  26. get { return ID; }
  27. }
  28. protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
  29. {
  30. this.skillInfo = skillInfo;
  31. mUUID_1 = owner.RegistOnHitOther(OnHandleOnHitDamage, skillInfo, true);
  32. mUUID_2 = owner.RegistCalThreatValue(OnHandleCalThreatValue, skillInfo, true);
  33. }
  34. private float OnHandleOnHitDamage(float damage, XmdsVirtual hitter, XmdsVirtual attacker, AttackSource source,
  35. ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
  36. {
  37. //如果是暴击.
  38. if (source.OutClientState == (int)XmdsVirtual.UnitHitEventState.Crit)
  39. {
  40. float v = this.GetTargetFormulaValue(this.skillInfo.SkillLevel, mCritValueAdd);
  41. v = v / XmdsDamageCalculator.PERER;
  42. //伤害增加.
  43. damage = damage * (1 + v);
  44. }
  45. return damage;
  46. }
  47. private void OnHandleCalThreatValue(XmdsVirtual attacker, XmdsVirtual hitter, AttackSource source, GameSkill gs, ref XmdsVirtual.AtkResult result)
  48. {
  49. //仇恨下降百分比.
  50. result.ThreatValueChangePer = -this.GetTargetFormulaValue(gs.SkillLevel, mThreatValueReduce);
  51. }
  52. protected override void OnDispose(XmdsVirtual owner)
  53. {
  54. owner.UnRegistOnHitDamage(mUUID_1);
  55. owner.UnRegistCalThreatValue(mUUID_2);
  56. }
  57. protected override void OnInitSkillParam()
  58. {
  59. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  60. InitData(data, out mThreatValueReduce, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  61. InitData(data, out mCritValueAdd, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  62. }
  63. }
  64. }