123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
-
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
- using XmdsCommonServer.XLS.Data;
- namespace XmdsCommonSkill.Plugin.Skills.Priest
- {
- /// <summary>
- /// 群体驱散: 驱散附近20米以内的魔法,如果是己方队友驱散x个负面魔法,如果是敌人则驱散y个增益魔法.
- /// </summary>
- public class Priest_502060 : XmdsSkillBase
- {
- /// <summary>
- /// 技能ID.
- /// </summary>
- public static int ID = 502060;
- /// <summary>
- /// 伤害类型.
- /// </summary>
- public static XmdsVirtual.AttackType AtkType_1 = XmdsVirtual.AttackType.magAtk;
- /// <summary>
- /// 己方队友驱散最大个数.
- /// </summary>
- public static XmdsSkillValue maxCount_f;
- /// <summary>
- /// 敌人驱散最大个数.
- /// </summary>
- public static XmdsSkillValue maxCount_e;
- /// <summary>
- /// 仇恨系数.
- /// </summary>
- public static XmdsSkillValue ThreatValue;
- /// <summary>
- /// 获取技能ID.
- /// </summary>
- public override int SkillID
- {
- get
- {
- return ID;
- }
- }
- protected override void OnRegistEvent()
- {
- this.RegistEvent(EventType.UseFormluaType, OnUseFormluaTypeEvent);
- // 命中率.
- this.RegistEvent(EventType.HitRateAdd, OnHitRateAddEvent);
- base.OnRegistEvent();
- }
- private void OnHitRateAddEvent(BattleParams param)
- {
- //命中率提升10000为必中.
- param.HitAdd = (int)XmdsDamageCalculator.PERER;
- }
- private void OnUseFormluaTypeEvent(BattleParams param)
- {
- param.UseFormulaType = BattleParams.FormulaType.None;
- }
- protected override void OnAttackTypeEvent(BattleParams param)
- {
- param.AttackType = AtkType_1;
- }
- protected override void OnThreatValueEvent(BattleParams param)
- {
- param.ThreatValue = this.GetTargetFormulaValue(param.GameSkill.SkillLevel, ThreatValue);
- }
- protected override void OnSkillLogicEvent(BattleParams param)
- {
- // 是自己人,驱散debuff.
- if (param.Attacker.IsAllies(param.Hitter))
- {
- int maxCount = this.GetTargetFormulaValue(param.GameSkill.SkillLevel, maxCount_f);
- if (maxCount > 0) {
- param.Hitter.RemoveBuff(maxCount, true);
- }
- }
- // 不是自己人,驱散buff.
- else
- {
- int maxCount = this.GetTargetFormulaValue(param.GameSkill.SkillLevel, maxCount_e);
- if (maxCount > 0)
- {
- param.Hitter.RemoveBuff(maxCount, false);
- }
- }
- }
- protected override void OnInitSkillParam()
- {
- XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
- AtkType_1 = data.GetAtkType();
- InitData(data, out maxCount_f, XmdsSkillData.XmdsSkillDataKey.ValueSet);
- InitData(data, out maxCount_e, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
- InitData(data, out ThreatValue, XmdsSkillData.XmdsSkillDataKey.HateRate);
- }
- }
- }
|