Magic_310500.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. namespace XmdsCommonSkill.Plugin.Skills.Magic
  10. {
  11. /// <summary>
  12. /// 法师五技能 :基类
  13. /// 在自身周围召唤仙剑围绕自身旋转一圈后飞向目标区域,对从上往下对目标区域进行轰炸,
  14. /// 每0.5秒造成100%伤害,持续5秒,期间不可移动,持续施法,可被打断
  15. /// </summary>
  16. public class Magic_310500 : XmdsSkillBase
  17. {
  18. /// 技能ID.
  19. private static readonly int ID = 310500;
  20. public override int SkillID { get { return ID; } }
  21. //伤害:基础值_百分百
  22. public XmdsSkillValue mValueSet1;
  23. //剑气层数初始伤害, 初始法术id, 剑气层数附加伤害1, 替换法术id1,剑气层数附加伤害2, 替换法术id2,剑气层数附加伤害4, 替换法术id4
  24. public XmdsSkillValue mValueSet8;
  25. protected byte mLaunchTalentLv;
  26. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  27. {
  28. unit.RegistSendSpellOverEvent(OnSendSpellOverEvent, this.SkillID, info);
  29. unit.RegistLaunchSkillOver(OnLaunchSkillOver, info, false);
  30. }
  31. //释放技能的时候,清空剑气值和剑气能量
  32. private int OnLaunchSkillOver(GameSkill info, XmdsCommonServer.Plugin.XmdsVirtual launcher, CommonAI.Zone.Instance.InstanceUnit.SkillState skill)
  33. {
  34. PlayerCache_Magic magicCache = launcher.GetPlayerCache() as PlayerCache_Magic;
  35. if(magicCache != null)
  36. {
  37. this.mLaunchTalentLv = launcher.GetPlayerCache().GetTalentLv();
  38. magicCache.ReSet();
  39. }
  40. return 0;
  41. }
  42. private void OnSendSpellOverEvent(LaunchSpell launch, XmdsVirtual launcher, SpellTemplate spell, GameSkill skill, float startX, float startY)
  43. {
  44. if(launcher.GetPlayerCache() == null)
  45. {
  46. return;
  47. }
  48. LaunchSpell launchSpell = ComSpellTemplate.Instance().GetSpellBySpellID(mValueSet8.GetValue(skill.SkillLevel, this.mLaunchTalentLv * 2 + 2));
  49. launcher.mUnit.Parent.unitLaunchSpell(XmdsSkillType.none, launcher.mUnit, launchSpell, startX, startY);
  50. }
  51. protected override void OnSkillDamagePerEvent(BattleParams param)
  52. {
  53. param.SkillDamageAdd = mValueSet1.GetValue(param.GameSkill.SkillLevel);
  54. param.SkillDamagePer = mValueSet1.GetValueExt(param.GameSkill.SkillLevel);
  55. param.SkillDamagePer += mValueSet8.GetValue(param.GameSkill.SkillLevel, this.mLaunchTalentLv * 2 + 1);
  56. }
  57. protected override void OnInitConfig()
  58. {
  59. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  60. InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  61. InitData(data, out mValueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8);
  62. }
  63. }
  64. }