38 lines
907 B
C#
Executable File
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,
|
|
}
|