Gamelib/src/main/java/uulm/teamname/marvelous/gamelibrary/entities/Stat.java

74 lines
1.6 KiB
Java
Raw Normal View History

2021-04-29 14:45:18 +00:00
package uulm.teamname.marvelous.gamelibrary.entities;
import java.util.Objects;
/** Represents a stat property of a {@link Character}. */
public class Stat {
/** The {@link StatType} of the stat */
public final StatType type;
/** The maximum value of the stat */
2021-05-31 20:54:13 +00:00
private int max;
/** The current value of the stat */
private int value;
/**
* Constructs a new {@link Stat} with the initial value set to the maximum value.
* @param type The {@link StatType} of the stat
* @param max The maximum value of the stat
*/
public Stat(StatType type, int max) {
this.type = type;
this.max = max;
this.value = max;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public void increaseValue(int value) {
this.value += value;
}
public void decreaseValue(int value) {
this.value -= value;
}
2021-05-31 20:54:13 +00:00
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Stat stat = (Stat) o;
2021-05-31 20:54:13 +00:00
return getMax() == stat.getMax() && value == stat.value && type == stat.type;
}
@Override
public int hashCode() {
2021-05-31 20:54:13 +00:00
return Objects.hash(type, getMax(), value);
}
@Override
public String toString() {
return "Stat{" +
"type=" + type +
2021-05-31 20:54:13 +00:00
", max=" + getMax() +
", value=" + value +
'}';
}
}