LiveSplit.TZA/LiveSplit.TZA/Splits/LevelUp.cs

38 lines
907 B
C#
Executable File

using LiveSplit.Model;
namespace LiveSplit.TZA.Splits;
internal class LevelUp : ISplit {
private Character Character { get; }
private byte Level { get; }
public LevelUp(Character character, byte level) {
this.Character = character;
this.Level = level;
}
public LogicResult Calculate(TimerPhase phase, GameMemory memory) {
if (phase != TimerPhase.Running) {
return LogicResult.None;
}
var watcher = memory.Levels[this.Character];
if (!watcher.Changed || watcher.Old != this.Level - 1 || watcher.Current != this.Level) {
return LogicResult.None;
}
return LogicResult.Split;
}
public string GetHumanName() => $"When {this.Character} reaches level {this.Level}";
}
internal enum Character {
Vaan = 0,
Ashe = 1,
Fran = 2,
Balthier = 3,
Basch = 4,
Penelo = 5,
}