public override bool Execute(SkillArgs Args) { var Master = Args.Master; if (Master == null) { return(false); } var TargetList = FilterHelper.Find(Args.LockRule, new FilterArgs() { Master = Master, Team = Master.Team, Position = Master.Position, Radius = Args.Skill.Radius, Rotation = Master.Rotation, Shape = Args.Skill.Shape }); if (TargetList.Count > 0) { var Damage = CombatManager.Calculator.Calc(Master.CalcFinalAttr(NpcAttrIndex.Damage), 1); BulletManager.AddArrowBullet( new ArrowBulletDescriptor( new BaseBulletDescriptor(Args.Skill.Name, Args.Master.Position, Args.Master.Team, Damage), TargetList[0].Position, 1000, new Color(0.5f, 0.3f, 0.4f))); } return(false); }
public override bool Execute(SkillArgs Args) { var Level = Args.Master.Skill.GetSkillLevel(Args.Skill.SkillID); TimerManager.AddTimer(0.05f, () => { var Pos = Args.Position + MathHelper.RandCircle(Args.Skill.Radius); BulletManager.AddArrowBullet( new ArrowBulletDescriptor( new BaseBulletDescriptor(Args.Skill.Name, Args.Master.Position, Args.Master.Team, Level), Pos, 1000, new Color(0.5f, 0.3f, 0.4f))); }, 5.0f); return(true); }