Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }