using CommonAI.Zone; using XmdsCommon.Plugin; using CommonAI.Zone.Instance; using XmdsCommonServer.Plugin; using XmdsCommonServer.XLS.Data; namespace XmdsCommonSkill.Plugin.Skills.Assassin { /// /// 暗器精通:使刺客可同时扔出x把暗影之刃,同时攻击多个敌人(后续备注:扇形). /// public class Assassin_201070 : Assassin_200020 { public static new int ID = 201070; /// 武器数量. public static XmdsSkillValue Count; public override int SkillID { get { return ID; } } protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { base.OnInit(info, unit, ref template); unit.RegistTryLaunchSkillEvent(OnTryLaunchSkillEventHandle, info); } private bool OnTryLaunchSkillEventHandle(GameSkill skillInfo, ref InstanceUnit.SkillState skill, XmdsVirtual launcher, ref InstanceUnit.LaunchSkillParam param) { if (skill.ID == SkillID) { //注意该技能和编辑器配置高度耦合,数据变更很容易出错!!!. UnitActionData uad = skill.Data.ActionQueue[0]; if (uad != null) { UnitActionData.KeyFrame kf = uad.KeyFrames[0]; if (kf != null) { LaunchSpell ls = kf.Spell; ls.Count = this.GetTargetFormulaValue(launcher.SkillHelper.GetGameSkill(SkillID).TalentSkillLevel1, Count); // 其它数量按编辑器配置的角度释放. if (ls.Count > 0 && ls.Count <= 10) { ls.Angle = (float)(ls.Count * 0.2); } } } } return true; } protected override void OnInitSkillParam() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); InitData(data, out Count, XmdsSkillData.XmdsSkillDataKey.ValueSet); } } }