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
@@ -3,23 +3,61 @@ package net.fretux.mindmotion.player;
public class SanityCapability implements ISanity {
private float sanity = 80f;
private float insanity = 0f;
private final float maxSanity = 80f;
// Base + bonus so Ascend can modify max
private float baseMaxSanity = 80f;
private float bonusMaxSanity = 0f; // from Ascend willpower etc.
@Override
public float getSanity() { return sanity; }
@Override
public void setSanity(float sanity) { this.sanity = Math.max(0, Math.min(maxSanity, sanity)); }
public float getSanity() {
return sanity;
}
@Override
public float getInsanity() { return insanity; }
@Override
public void setInsanity(float insanity) { this.insanity = Math.max(0, Math.min(maxSanity, insanity)); }
public void setSanity(float sanity) {
float max = getMaxSanity();
this.sanity = Math.max(0, Math.min(max, sanity));
}
@Override
public float getMaxSanity() { return maxSanity; }
public float getInsanity() {
return insanity;
}
@Override
public void addSanity(float amount) { setSanity(this.sanity + amount); }
public void setInsanity(float insanity) {
float max = getMaxSanity();
this.insanity = Math.max(0, Math.min(max, insanity));
}
@Override
public void reduceSanity(float amount) { setSanity(this.sanity - amount); }
}
public float getMaxSanity() {
return baseMaxSanity + bonusMaxSanity;
}
@Override
public void addSanity(float amount) {
setSanity(this.sanity + amount);
}
@Override
public void reduceSanity(float amount) {
setSanity(this.sanity - amount);
}
public void setBaseMaxSanity(float baseMaxSanity) {
this.baseMaxSanity = baseMaxSanity;
setSanity(this.sanity);
setInsanity(this.insanity);
}
public void setBonusMaxSanity(float bonusMaxSanity) {
this.bonusMaxSanity = Math.max(0f, bonusMaxSanity);
setSanity(this.sanity);
setInsanity(this.insanity);
}
public float getBonusMaxSanity() {
return bonusMaxSanity;
}
}