private TrinityPower ToPower(ValidatedSkill s) { var onSelf = !s.Skill.IsDamaging; var power = new TrinityPower { SNOPower = s.Skill.SNOPower, IsCastOnSelf = onSelf, MinimumRange = Math.Max(5f, s.Settings.CastRange), TargetAcdId = onSelf ? s.Target.AcdId : -1, TargetPosition = onSelf ? Player.Position : s.Target.Position, }; return(power); }
private ValidatedSkill ValidateSkill(SkillSettings settings, Predicate <SkillSettings> condition = null) { var skill = settings.Skill; if (skill == null) { return(null); } if (!skill.CanCast()) { return(null); } if (condition != null && !condition(settings)) { return(null); } if (!AllowedToUse(settings, skill)) { return(null); } var target = GetTarget(settings); if (target == null) { return(null); } var result = new ValidatedSkill { Skill = skill, Settings = settings, Target = target, }; return(result); }
private bool TryValidateSkill(SkillSettings skillSettings, out ValidatedSkill validatedSkill) { return((validatedSkill = ValidateSkill(skillSettings)) != null); }