Example #1
0
        protected override IEnumerable <RunStatus> Execute(object context)
        {
            RoutineContext ctx = context as RoutineContext;

            if (ctx != null)
            {
                if (ctx.SkillNames.Contains(SpellName))
                {
                    Gw2Skill spell = ctx.GetSpell(SpellName);
                    if (spell != null)
                    {
                        bool currentCondition = Condition == null || Condition(ctx);
                        if (currentCondition)
                        {
                            if (spell.IsReady && BuddyGw.IsVisible(Object))
                            {
                                Logger.WriteVerbose("Casting {0} on position {1}.", spell.Name, Object.Position);
                                SpellManager.Cast(spell.Name, Object);
                                return(new List <RunStatus>()
                                {
                                    RunStatus.Success
                                });
                            }
                        }
                    }
                }
            }
            return(new List <RunStatus>()
            {
                RunStatus.Failure
            });
        }
Example #2
0
 public static List <Gw2Object> GetAllWeight()
 {
     return(BuddyGw.Objects.GetObjectsOfType <Gw2Character>().Where(o =>
                                                                    BuddyGw.Objects.IsValid(o) &&
                                                                    !Blacklist.Contains(o.AgentId) &&
                                                                    o.IsAlive &&
                                                                    !o.IsCritter &&
                                                                    o.Distance < CharacterSettings.Instance.PullRange &&
                                                                    (o.IsHostile || o.IsIndifferent || o.IsFriendly) &&
                                                                    BuddyGw.IsVisible(o))
            .Select(o => new { Unit = o, Weight = o.IsFriendly ? Calculations.CalculateFriendlyWeight(o) : Calculations.CalculateEnemyWeight(o) })
            .OrderByDescending(o => o.Weight)
            .Select(o => o.Unit)
            .Cast <Gw2Object>()
            .ToList());
 }
Example #3
0
 internal int CountViableFriendlies(float radius)
 {
     return(FriendlyPositions.CachedPositions.Where(u => BuddyGw.IsVisible(u.Position) && Calculations.Distance(CurrentPlayerPosition, u.Position) < radius).Count());
 }