public override void Parse(AchievementObjectiveRecord objective) { base.m_defaultObjective = objective; var criterions = objective.Criterion.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in criterions) { var match = Regex.Match(item, "(?<name>[a-zA-Z]{2})(?<operator>[<=>]{1})(?<content>.*)"); if (match.Success) { this.m_criterions.Add(this.Parse( AbstractCriterion.GetOperator(match.Groups["operator"].Value[0]), match.Groups["content"].Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))); } else { throw new Exception(); } } }
public override bool Greater(AbstractCriterion left) { return(this.Points > ((AchievementPointsCriterion)left).Points); }
public override bool Greater(AbstractCriterion left) { return(this.Number > ((KillMonsterWithChallengeCriterion)left).Number); }
public override bool Lower(AbstractCriterion left) { return(this.Points < ((ChallengesCriterion)left).Points); }
public override bool Greater(AbstractCriterion left) { return(this.Level > ((LevelCriterion)left).Level); }