@Override
        public boolean equals(Object o) {
            if (o == this) return true;
            if (!(o instanceof OptionalAmount)) return false;
            final OptionalAmount other = (OptionalAmount) o;
            return Double.compare(this.base, other.base) == 0 && Double.compare(this.chance, other.chance) == 0 && this.inner.equals(other.inner);
        }
Represents a variable amount which has a base and a chance of varying.
This wraps another {@link VariableAmount} which it refers to if the
chance succeeds.
helper/src/main/java/me/lucko/helper/random/VariableAmount.java