package org.mafagafogigante.dungeon.entity.items;
import org.mafagafogigante.dungeon.entity.Integrity;
import org.mafagafogigante.dungeon.entity.Luminosity;
import org.mafagafogigante.dungeon.entity.Preset;
import org.mafagafogigante.dungeon.entity.TagSet;
import org.mafagafogigante.dungeon.entity.Weight;
import org.mafagafogigante.dungeon.entity.items.Item.Tag;
import org.mafagafogigante.dungeon.game.Id;
import org.mafagafogigante.dungeon.game.Name;
import org.mafagafogigante.dungeon.util.Percentage;
import java.io.Serializable;
/**
* Stores the information about an item that the factory may need to create it.
*/
public final class ItemPreset implements Preset, Serializable {
private static final long serialVersionUID = -3795444867261167258L;
private final TagSet<Tag> tagSet = TagSet.makeEmptyTagSet(Item.Tag.class);
private Id id;
private String type;
private Name name;
private Integrity integrity;
private int damage;
private Percentage hitRate;
private int integrityDecrementOnHit;
private int nutrition;
private int integrityDecrementOnEat;
private Weight weight;
private Percentage visibility;
private Luminosity luminosity = Luminosity.ZERO;
private Id spellId;
private String text;
private long putrefactionPeriod;
private boolean unique;
private int drinkableHealing;
private int drinkableDoses;
private int integrityDecrementPerDose;
public TagSet<Item.Tag> getTagSet() {
return tagSet;
}
public boolean hasTag(Item.Tag tag) {
return getTagSet().hasTag(tag);
}
public void addTag(Item.Tag tag) {
getTagSet().addTag(tag);
}
public Id getId() {
return id;
}
public void setId(Id id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public Integrity getIntegrity() {
return integrity;
}
public void setIntegrity(Integrity integrity) {
this.integrity = integrity;
}
public int getDamage() {
return damage;
}
public void setDamage(int damage) {
this.damage = damage;
}
public Percentage getHitRate() {
return hitRate;
}
public void setHitRate(Percentage hitRate) {
this.hitRate = hitRate;
}
public int getIntegrityDecrementOnHit() {
return integrityDecrementOnHit;
}
public void setIntegrityDecrementOnHit(int integrityDecrementOnHit) {
this.integrityDecrementOnHit = integrityDecrementOnHit;
}
public int getNutrition() {
return nutrition;
}
public void setNutrition(int nutrition) {
this.nutrition = nutrition;
}
public int getIntegrityDecrementOnEat() {
return integrityDecrementOnEat;
}
public void setIntegrityDecrementOnEat(int integrityDecrementOnEat) {
this.integrityDecrementOnEat = integrityDecrementOnEat;
}
@Override
public Weight getWeight() {
return weight;
}
public void setWeight(Weight weight) {
this.weight = weight;
}
@Override
public Percentage getVisibility() {
return visibility;
}
public void setVisibility(Percentage visibility) {
this.visibility = visibility;
}
public Luminosity getLuminosity() {
return luminosity;
}
public void setLuminosity(Luminosity luminosity) {
this.luminosity = luminosity;
}
public Id getSpellId() {
return spellId;
}
public void setSpellId(String spellIdString) {
this.spellId = new Id(spellIdString);
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public long getPutrefactionPeriod() {
return putrefactionPeriod;
}
public void setPutrefactionPeriod(long putrefactionPeriod) {
this.putrefactionPeriod = putrefactionPeriod;
}
public boolean isUnique() {
return unique;
}
public void setUnique(boolean unique) {
this.unique = unique;
}
public int getIntegrityDecrementPerDose() {
return integrityDecrementPerDose;
}
public void setIntegrityDecrementPerDose(int integrityDecrementPerDose) {
this.integrityDecrementPerDose = integrityDecrementPerDose;
}
public int getDrinkableHealing() {
return drinkableHealing;
}
public void setDrinkableHealing(int healing) {
this.drinkableHealing = healing;
}
public int getDrinkableDoses() {
return drinkableDoses;
}
public void setDrinkableDoses(int doses) {
this.drinkableDoses = doses;
}
}