12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
-
- using CommonAI.Zone;
- using CommonAI.Zone.Formula;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsCommonSkill.Plugin.Buffs;
- using XmdsCommonServer.XLS.Data;
- using XmdsCommonSkill.Plugin.Skills.Hunter;
- using XmdsCommonSkill.Plugin.Skills;
- using CommonAI.Zone.Instance;
- namespace XmdsCommonSkill.Plugin.PassiveSkills
- {
- /// <summary>
- /// 强化分裂箭:使分裂箭附带减速效果,使被命中的敌人移动速度降低x%,持续x秒.
- /// 但分裂箭的冷却时间延长为x秒.
- /// </summary>
- public class Hunter_402020 : Hunter_400020
- {
- public static new int ID = 402020;
- public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.JIAN_SU;
- /// BUFF伤害.
- public static XmdsSkillValue Buff_Value;
- /// CD时间.
- public static XmdsSkillValue CD_TimeAdd;
- public override int SkillID
- {
- get { return ID; }
- }
- protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
- {
- base.OnInit(info, unit, ref template);
- XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
- BuffTemplate bt = pack.mBuffTemplate;
- bt.IsHarmful = true;
- pack.BindTemplateAndDispose();
- unit.RegistSendBuff(bt);
- unit.RegistTryLaunchSkillEvent(OnTryLaunchSkillEventHandle, info);
- }
- private bool OnTryLaunchSkillEventHandle(GameSkill skillInfo, ref InstanceUnit.SkillState skill, XmdsVirtual launcher, ref InstanceUnit.LaunchSkillParam param)
- {
- if (skill.ID == this.SkillID)
- {
- //修改这个技能的CD时间.
- int t = this.GetTargetFormulaValue(launcher.SkillHelper.GetGameSkill(SkillID).SkillLevel, CD_TimeAdd);
- skill.SetDecreaseTotalTimeMS(-t);
- }
- return true;
- }
- protected override void OnSkillLogicEvent(BattleParams param)
- {
- XmdsBuff_MoveSpeedDown buff = (XmdsBuff_MoveSpeedDown)param.Attacker.GetRegisBuffVirtual(Buff_ID);
- buff.ChangePercent = -this.GetTargetFormulaValue(param.GameSkill.TalentSkillLevel1, Buff_Value);
- BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_ID);
- bt.LifeTimeMS = 5000;
- param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
- base.OnSkillLogicEvent(param);
- }
- protected override void OnInitSkillParam()
- {
- base.OnInitSkillParam();
- XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
- InitData(data, out Buff_Value, XmdsSkillData.XmdsSkillDataKey.ValueSet);
- InitData(data, out CD_TimeAdd, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
- }
- }
- }
|