Implement Ascend Compat, Irons spellbooks compat, And rehauled most things.

This commit is contained in:
2025-11-17 11:15:17 +01:00
parent 0f79150c19
commit ccfecb4317
11 changed files with 242 additions and 147 deletions
@@ -2,7 +2,11 @@ package net.fretux.mindmotion.player;
public class TempoCapability implements ITempo {
private int tempo = 0;
private final int maxTempo = 120;
private int baseMaxTempo = 120;
private float bonusMaxTempo = 0f; // from Ascend willpower
private int ventCooldown = 0;
@Override
public int getTempo() {
@@ -11,12 +15,12 @@ public class TempoCapability implements ITempo {
@Override
public void setTempo(int tempo) {
this.tempo = Math.max(0, Math.min(maxTempo, tempo));
this.tempo = Math.max(0, Math.min(getMaxTempo(), tempo));
}
@Override
public int getMaxTempo() {
return maxTempo;
return Math.max(0, Math.round(baseMaxTempo + bonusMaxTempo));
}
@Override
@@ -29,8 +33,6 @@ public class TempoCapability implements ITempo {
setTempo(this.tempo - amount);
}
private int ventCooldown = 0;
@Override
public int getVentCooldown() {
return ventCooldown;
@@ -38,6 +40,20 @@ public class TempoCapability implements ITempo {
@Override
public void setVentCooldown(int ticks) {
ventCooldown = ticks;
ventCooldown = Math.max(0, ticks);
}
}
public void setBaseMaxTempo(int baseMaxTempo) {
this.baseMaxTempo = baseMaxTempo;
setTempo(this.tempo);
}
public void setBonusMaxTempo(float bonusMaxTempo) {
this.bonusMaxTempo = Math.max(0f, bonusMaxTempo);
setTempo(this.tempo);
}
public float getBonusMaxTempo() {
return bonusMaxTempo;
}
}