123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
-
- using CommonAI.Zone;
- using CommonAI.Zone.Instance;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsCommonSkill.Plugin.Buffs;
- using XmdsCommonServer.XLS.Data;
- namespace XmdsCommonSkill.Plugin.Skills.Assassin
- {
- /// <summary>
- /// 腿踢: 刺客将敌人踢飞,造成x倍物攻伤害附加x物理伤害,每个连击点数会让总伤害增加x%.
- /// </summary>
- public class Assassin_201020 :XmdsSkillBase
- {
- public static int ID = 201020;
- /// 伤害倍数.
- public static XmdsSkillValue DP_1;
- /// 每个连击点伤害百分比增长.
- public static XmdsSkillValue Damage_up;
- /// 目标BUFFID.
- public static int TargetBuffID = (int)XmdsBuffBase.XmdsBuffList.LIAN_JI_DIAN;
- public override int SkillID { get { return ID; } }
- protected override void OnRegistEvent()
- {
- this.RegistEvent(EventType.SkillDamageAdd, OnSkillDamageAddEvent);
- base.OnRegistEvent();
- }
- protected override void OnSkillDamagePerEvent(BattleParams param)
- {
- int ret = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
- param.SkillDamagePer = ret;
- }
- private void OnSkillDamageAddEvent(BattleParams param)
- {
- //每当有一个连击点,造成总伤害受加成.
- InstanceUnit.BuffState bs = param.Attacker.mUnit.GetBuffByID(TargetBuffID);
- if (bs != null)
- {
- int layer = bs.OverlayLevel + 1;
- int damgeUp = this.GetTargetFormulaValue(param.GameSkill.SkillLevel, Damage_up);
- //param.SkillDamageAdd = damgeUp * layer;
- }
- }
- private void OnStateEndEvent(XmdsVirtual owner, InstanceUnit.StateSkill state, GameSkill gs)
- {
- //技能结束,BUFF结束.
- if (state.SkillData.ID == ID)
- {
- owner.mUnit.removeBuff(TargetBuffID, InstanceUnit.BuffState.EndResult_ByCode);
- }
- }
- protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
- {
- //注册技能结束监听.
- unit.RegistStateSkillEndEvent(OnStateEndEvent, info, false);
- }
- protected override void OnInitSkillParam()
- {
- XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
- InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
- InitData(data, out Damage_up, XmdsSkillData.XmdsSkillDataKey.ValueSet);
- }
- }
- }
|