using CommonAI.Zone; using CommonAI.Zone.Formula; using CommonAI.Zone.Helper; using CommonAI.Zone.Instance; using XmdsCommon.Plugin; using XmdsCommonServer.Plugin; using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator; using XmdsCommonServer.XLS.Data; using XmdsCommonSkill.Plugin.Buffs; namespace XmdsCommonSkill.Plugin.Skills.Remedy { /// /// 治疗, 五技能 5-1(造成的伤害,一定百分比系数给奶妈和友军恢复血量。) /// public class Remedy_510510 : Remedy_510500 { private static readonly int ID = 510510; private static readonly int Buff_ID1 = (int)XmdsBuffBase.XmdsBuffList.AttackRoundAddHP; public override int SkillID { get { return ID; } } //伤害系数转换成治疗系数 public XmdsSkillValue valueSet2; protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { base.OnInit(info, unit, ref template); var pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID1); var bt = pack.mBuffTemplate; bt.IsHarmful = false; bt.LifeTimeMS = valueSet5.GetValue(info.SkillLevel, 4); pack.BindTemplateAndDispose(); unit.RegistSendBuff(bt); } protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit) { base.OnSkillDataChange(gs, unit); var bt = unit.GetRegistBuff(Buff_ID1); bt.LifeTimeMS = valueSet5.GetValue(gs.SkillLevel, 4); } protected override int OnLaunchSkillOver(GameSkill info, XmdsCommonServer.Plugin.XmdsVirtual launcher, CommonAI.Zone.Instance.InstanceUnit.SkillState state) { base.OnLaunchSkillOver(info, launcher, state); var buff = launcher.GetRegisBuffVirtual(Buff_ID1, 0) as XmdsBuff_AttackRoundAddHP; if (buff != null) { buff.damageToHp = valueSet2.GetValue(info.TalentSkillLevel1)/XmdsDamageCalculator.PERER; launcher.mUnit.AddBuff(Buff_ID1); } return 0; } protected override void OnInitConfig() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); base.InitBaseConfig(data); InitData(data, out valueSet, XmdsSkillData.XmdsSkillDataKey.ValueSet); InitData(data, out valueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2); // 扩展配置 InitData(data, out valueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5); InitData(data, out valueSet7, XmdsSkillData.XmdsSkillDataKey.ValueSet7); } } }