123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 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
- {
- /// <summary>
- /// 法师三技能 : 3 基类
- /// 闪现到指定点,同时对周围三个方向发射剑气,造成伤害(编辑器配置)
- /// </summary>
- public class Magic_310300 : XmdsSkillBase
- {
- /// 技能ID.
- private static int ID = 310300;
- public override int SkillID { get { return ID; } }
- // 伤害:固定值_百分比
- public XmdsSkillValue mValueSet1;
- //基础命中衰减
- protected XmdsSkillValue mValueSet7;
- protected override void OnSkillDamagePerEvent(BattleParams param)
- {
- param.SkillDamageAdd = mValueSet1.GetValue(param.GameSkill.SkillLevel);
- param.SkillDamagePer = mValueSet1.GetValueExt(param.GameSkill.SkillLevel);
- this.modifySkillDamgage(param);
- //多次命中,伤害递减
- int nNums = Math.Min(mValueSet7.GetValue(param.GameSkill.SkillLevel, 1), param.GameSkill.mHitUnits.Get(param.Hitter.mUnit.ID));
- param.SkillDamagePer = (int)(param.SkillDamagePer * (1 - mValueSet7.GetValue(param.GameSkill.SkillLevel, 2) * nNums * XmdsUnitProp.PER));
- //System.Console.WriteLine("OnSkillDamagePerEvent: " + param.Hitter.mUnit.ID + ", " + param.SkillDamagePer);
- //if(nNums > 0)
- //{
- // param.SkillDamagePer -= mValueSet2.GetValue(param.GameSkill.TalentSkillLevel1) * nNums;
- // if(param.SkillDamagePer < 0)
- // {
- // param.SkillDamagePer = 0;
- // }
- //}
- param.GameSkill.mHitUnits.Put(param.Hitter.mUnit.ID, nNums + 1);
- }
- protected virtual void modifySkillDamgage(BattleParams param)
- {
- }
- protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
- {
- unit.RegistLaunchSkillOver(OnLaunchSkillOver, info);
- }
- private int OnLaunchSkillOver(GameSkill info, XmdsCommonServer.Plugin.XmdsVirtual launcher, CommonAI.Zone.Instance.InstanceUnit.SkillState state)
- {
- info.mHitUnits.Clear();
- return 0;
- }
- protected override void OnInitConfig()
- {
- XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
- InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
- InitData(data, out mValueSet7, XmdsSkillData.XmdsSkillDataKey.ValueSet7);
- }
- }
- }
|