public TimeReplacer(Th09Converter parent) { this.evaluator = new MatchEvaluator(match => { return(parent.allScoreData.PlayStatus.TotalRunningTime.ToLongString()); }); }
public ClearReplacer(Th09Converter parent) { this.evaluator = new MatchEvaluator(match => { var level = LevelParser.Parse(match.Groups[1].Value); var chara = CharaParser.Parse(match.Groups[2].Value); var type = int.Parse(match.Groups[3].Value, CultureInfo.InvariantCulture); var count = parent.allScoreData.PlayStatus.ClearCounts[chara].Counts[level]; if (type == 1) { return(Utils.ToNumberString(count)); } else { if (count > 0) { return("Cleared"); } else { var score = parent.allScoreData.Rankings[new CharaLevelPair(chara, level)][0]; var date = Encoding.Default.GetString(score.Date).TrimEnd('\0'); return((date != "--/--") ? "Not Cleared" : "-------"); } } }); }
public ScoreReplacer(Th09Converter parent) { this.evaluator = new MatchEvaluator(match => { var level = LevelParser.Parse(match.Groups[1].Value); var chara = CharaParser.Parse(match.Groups[2].Value); var rank = Utils.ToZeroBased( int.Parse(match.Groups[3].Value, CultureInfo.InvariantCulture)); var type = int.Parse(match.Groups[4].Value, CultureInfo.InvariantCulture); var score = parent.allScoreData.Rankings[new CharaLevelPair(chara, level)][rank]; var date = string.Empty; switch (type) { case 1: // name return(Encoding.Default.GetString(score.Name).Split('\0')[0]); case 2: // score return(Utils.ToNumberString((score.Score * 10) + score.ContinueCount)); case 3: // date date = Encoding.Default.GetString(score.Date).Split('\0')[0]; return((date != "--/--") ? date : "--/--/--"); default: // unreachable return(match.ToString()); } }); }