1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
-
- using CommonAI.Zone;
- using XmdsCommon.Plugin;
- using CommonAI.Zone.Instance;
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.XLS.Data;
- namespace XmdsCommonSkill.Plugin.Skills.Assassin
- {
- /// <summary>
- /// 暗器精通:使刺客可同时扔出x把暗影之刃,同时攻击多个敌人(后续备注:扇形).
- /// </summary>
- 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);
- }
- }
- }
|