Implement Ascend Compat, Irons spellbooks compat, And rehauled most things.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user