Remedy_510430.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using CommonLang;
  5. using XmdsCommon.Plugin;
  6. using XmdsCommonServer.Plugin;
  7. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  8. using XmdsCommonServer.XLS.Data;
  9. using XmdsCommonSkill.Plugin.Buffs;
  10. namespace XmdsCommonSkill.Plugin.Skills.Remedy
  11. {
  12. /// <summary>
  13. /// 治疗, 四技能4-3 (蔓藤打到的敌人被埋下种子,得到一个T秒的DEBUFF,敌人得到一个T秒的DEBUFF,
  14. /// 友方每次造成伤害恢复自身n%血量,敌人提供总回复量不超过回血上限*奶妈攻击)
  15. /// </summary>
  16. public class Remedy_510430 : Remedy_510420
  17. {
  18. private static readonly int ID = 510430;
  19. private static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.REMEDY_4_3_ATTACKADDHP;
  20. public override int SkillID { get { return ID; } }
  21. //回血上限
  22. public XmdsSkillValue valueSet4;
  23. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  24. {
  25. base.OnInit(info, unit, ref template);
  26. // 种子标记deBuff注册
  27. var pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
  28. var buff = (XmdsBuff_AttackAddHP)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.Attack_AddHP);
  29. buff.totalAddHp = CUtils.CastInt(unit.MirrorProp.MaxAttack * valueSet4.GetValue(info.TalentSkillLevel3, 2));
  30. buff.damageToHp = valueSet4.GetValue(info.TalentSkillLevel3, 1) * XmdsUnitProp.PER;
  31. var bt = pack.mBuffTemplate;
  32. bt.IsHarmful = true;
  33. bt.LifeTimeMS = valueSet4.GetValue(info.TalentSkillLevel3, 3);
  34. pack.BindTemplateAndDispose();
  35. unit.RegistSendBuff(bt);
  36. }
  37. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  38. {
  39. base.OnSkillDataChange(gs, unit);
  40. var buff = unit.GetRegisBuffVirtual(Buff_ID) as XmdsBuff_AttackAddHP;
  41. buff.totalAddHp = CUtils.CastInt(unit.MirrorProp.MaxAttack * valueSet4.GetValue(gs.TalentSkillLevel3, 2));
  42. buff.damageToHp = valueSet4.GetValue(gs.TalentSkillLevel3, 1) * XmdsUnitProp.PER;
  43. var bt = unit.GetRegistBuff(Buff_ID);
  44. bt.LifeTimeMS = valueSet4.GetValue(gs.TalentSkillLevel3, 3);
  45. }
  46. protected override void OnSkillLogicEvent(BattleParams param)
  47. {
  48. base.OnSkillLogicEvent(param);
  49. if (!param.Hitter.IsAllies(param.Attacker, true, true))
  50. {
  51. param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
  52. }
  53. }
  54. protected override void OnInitConfig()
  55. {
  56. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  57. base.InitBaseConfig(data);
  58. InitData(data, out valueSet, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  59. InitData(data, out valueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  60. InitData(data, out valueSet3, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  61. InitData(data, out valueSet4, XmdsSkillData.XmdsSkillDataKey.ValueSet4);
  62. //扩展配置
  63. InitData(data, out valueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  64. InitData(data, out valueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8);
  65. }
  66. }
  67. }