PetGiveSkillBase.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonServer.XLS.Data;
  7. using XmdsCommonSkill.Plugin.Buffs;
  8. using XmdsCommonSkill.Plugin.Interface;
  9. using static CommonAI.Zone.Instance.InstanceUnit;
  10. namespace XmdsCommonSkill.Plugin.Skills.PetSkill
  11. {
  12. /// <summary>
  13. /// 宠物 - 防御(提高5%防御和10%移动速度,持续3秒,cd50秒)
  14. /// </summary>
  15. public abstract class PetGiveSkillBase : XmdsSkillBase
  16. {
  17. protected void initBindSkill(XmdsSkillData data, ref int BindPetSkillID)
  18. {
  19. XmdsSkillValue skillInfo;
  20. InitData(data, out skillInfo, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  21. BindPetSkillID = skillInfo.GetValue();
  22. }
  23. protected void PlayerLauncherSkillOver(XmdsCommonServer.Plugin.XmdsVirtual launcher)
  24. {
  25. //如果释放单位是人物, 找他的宠物,并释放一个技能特效
  26. XmdsVirtual_Player player = launcher as XmdsVirtual_Player;
  27. if (player != null && GetBindSkillID() > 0)
  28. {
  29. //人物释放技能时,宠物放特效
  30. XmdsVirtual_Pet pet = player.GetPet();
  31. if (pet != null)
  32. {
  33. pet.mUnit.launchSkill(GetBindSkillID(), new InstanceUnit.LaunchSkillParam());
  34. }
  35. }
  36. }
  37. protected void PlayerLauncherSkillOverExt(XmdsCommonServer.Plugin.XmdsVirtual launcher, ComSpellTemplate.XmdsSpellID spellID)
  38. {
  39. LaunchSpell launchSpell = ComSpellTemplate.Instance().GetSpellByID(spellID);
  40. if(launchSpell != null)
  41. {
  42. //如果释放单位是人物, 找他的宠物,并释放一个技能特效
  43. launcher.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, launcher.mUnit,
  44. launchSpell, launcher.mUnit.X, launcher.mUnit.Y, launcher.mUnit.ID);
  45. }
  46. else
  47. {
  48. log.Warn("PlayerLauncherSkillOverExt not found spell: " + spellID);
  49. }
  50. }
  51. protected virtual int GetBindSkillID() {return 0; }
  52. }
  53. }