using CommonAI.Data; using CommonAI.Zone; using CommonAI.Zone.Helper; using CommonAI.Zone.Instance; using System; using XmdsCommon.Plugin; using XmdsCommonServer.Plugin; using XmdsCommonServer.XLS.Data; using XmdsCommonSkill.Plugin.Buffs; namespace XmdsCommonSkill.Plugin.Skills.Magic { /// /// 五技能 5-4(持续时间提高1秒) /// public class Magic_310540 : Magic_310500 { private static readonly int ID = 310540; public override int SkillID { get { return ID; } } private static readonly int BUFF_SPEED_DOWN = (int)XmdsBuffBase.XmdsBuffList.FS_SPEEDDOWN_5_3; //5-4剑雨伤害间隔, 范围减速值,范围减速时间 public XmdsSkillValue mValueSet2; //伤害多久触发一次 protected int mHitInterval = 500; protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { base.OnInit(info, unit, ref template); unit.RegistTrySendSpellEvent(OnTrySendSpell, info); this.mHitInterval = Math.Max(200, mValueSet2.GetValue(info.TalentSkillLevel1)); //Buff2修改 var pack2 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(BUFF_SPEED_DOWN); var buff2 = pack2.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.MoveSpeedDown) as XmdsBuff_MoveSpeedDown; buff2.ChangePercent = -mValueSet2.GetValue(info.TalentSkillLevel1, 2); var bt2 = pack2.mBuffTemplate; bt2.LifeTimeMS = mValueSet2.GetValue(info.TalentSkillLevel1, 3); bt2.IsHarmful = true; pack2.BindTemplateAndDispose(); unit.RegistSendBuff(bt2); } protected override void OnSkillLogicEvent(BattleParams param) { base.OnSkillLogicEvent(param); //增加减速buff param.Hitter.mUnit.AddBuff(BUFF_SPEED_DOWN, param.Attacker.mUnit); } protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit) { base.OnSkillDataChange(gs, unit); this.mHitInterval = Math.Max(200, mValueSet2.GetValue(gs.TalentSkillLevel1)); var buff = unit.GetRegisBuffVirtual(BUFF_SPEED_DOWN) as XmdsBuff_MoveSpeedDown; buff.ChangePercent = -mValueSet2.GetValue(gs.TalentSkillLevel1, 2); var bt = unit.GetRegistBuff(BUFF_SPEED_DOWN); bt.LifeTimeMS = mValueSet2.GetValue(gs.TalentSkillLevel1, 3); } private void OnTrySendSpell(GameSkill skill, XmdsVirtual launcher, LaunchSpell launch, ref SpellTemplate spell, ref JSGCreateSpellData createData, ref float startX, ref float startY) { spell.HitIntervalMS = this.mHitInterval; } protected override void OnInitConfig() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet); InitData(data, out mValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2); InitData(data, out mValueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8); } } }