123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using CommonAI.Zone;
- using CommonAI.Zone.Instance;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
- using XmdsCommonServer.XLS.Data;
- namespace XmdsCommonSkill.Plugin.Skills.Priest
- {
- /// <summary>
- /// 使暗言术的冷却时间缩短<x>秒,但法力消耗提高<x>%.
- /// 我吐槽这技能ID设定,完全不按照规则来 (#‵′)凸.
- /// </summary>
- public class Priest_501070 : Priest_500020
- {
- /// <summary>
- /// 技能ID.
- /// </summary>
- public static new int ID = 501070;
- /// <summary>
- /// 减少时间.
- /// </summary>
- public static XmdsSkillValue TimeValue;
- /// <summary>
- /// MP消耗.
- /// </summary>
- public static XmdsSkillValue MPCost;
- /// <summary>
- /// 获取技能ID.
- /// </summary>
- public override int SkillID
- {
- get
- {
- return ID;
- }
- }
- protected override void OnInitSkillParam()
- {
- base.OnInitSkillParam();
- XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
- InitData(data, out TimeValue, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
- InitData(data, out MPCost, XmdsSkillData.XmdsSkillDataKey.ValueSet);
- }
- protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
- {
- base.OnInit(info, unit, ref template);
- }
- protected override void OnInitOVer(XmdsVirtual unit)
- {
- GameSkill gs = unit.SkillHelper.GetGameSkill(SkillID);
- var state = unit.mUnit.getSkillState(SkillID);
- if (state != null && gs != null)
- {
- ChangeSkillCDtime(gs, ref state);
- }
- base.OnInitOVer(unit);
- }
- //MP消耗增加.
- protected override int GetMPCost(int skillid, int skilllv, XmdsVirtual launcher)
- {
- int cost = base.GetMPCost(skillid, skilllv, launcher);
- int mpUp = this.GetTargetFormulaValue(skilllv, MPCost);
- float c = mpUp / XmdsDamageCalculator.PERER;
- cost = (int)(cost * (1 + c));
- return cost;
- }
- protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit, ref InstanceUnit.SkillState skill)
- {
- ChangeSkillCDtime(gs, ref skill);
- }
- private void ChangeSkillCDtime(GameSkill gs, ref InstanceUnit.SkillState skill)
- {
- int t = this.GetTargetFormulaValue(gs.TalentSkillLevel, TimeValue);
- skill.Data.CoolDownMS = this.GetTargetFormulaValue(gs.SkillLevel, mSkillCD) - t;
- }
- }
- }
|