package fr.whyt.item.extend;
import java.util.List;
import fr.whyt.item.Item;
import fr.whyt.item.components.Currency;
import fr.whyt.item.components.InfixUpgrade;
import fr.whyt.item.components.InfusionSlot;
import fr.whyt.item.enums.ArmorType;
import fr.whyt.item.enums.Flag;
import fr.whyt.item.enums.GameType;
import fr.whyt.item.enums.Rarity;
import fr.whyt.item.enums.Type;
import fr.whyt.item.enums.WeightType;
import fr.whyt.persona.enums.Restriction;
/**
* H�rite de {@link Item}.<br>
* Repr�sente un objet de type armure dans le jeu.<br>
* Poss�de un type d'armure, une classe de poids, une valeur d�fensive, des emplacements d'infusions
* et des am�liorations.<br>
* @see ArmorType
* @see WeightType
* @see InfusionSlot
* @see InfixUpgrade
* @author WhyT
*/
public class Armor extends Item {
private final ArmorType armorType;
private final WeightType weightClass;
private final Long defense;
private List<InfusionSlot> infusionSlots;
private InfixUpgrade infixUpgrade;
/**
* Cr�e un {@link Item} de type armure.<br>
* @param id identifiant unique de l'item
* @param name nom de l'item
* @param description description de l'item
* @param type type de l'item ({@link Type})
* @param rarity raret� de l'item ({@link Rarity})
* @param level niveau de l'item
* @param basePrice prix de l'item � l'achat/vente chez un marchand ({@link Currency})
* @param blPrice prix de l'item � l'achat/vente au lion noir ({@link Currency})
* @param iconFileID id de l'image de l'item
* @param iconFileSignature signature de l'image de l'item
* @param gameType type de jeu de l'item ({@link GameType})
* @param flags drapeaux de l'item ({@link Flag})
* @param restrictions restrictions de personnages de l'item ({@link Restriction})
* @param armorType type de l'armure ({@link ArmorType})
* @param weightClass classe de poids de l'armure ({@link WeightType})
* @param defense valeur d�fensive de l'armure
* @param infusionSlots emplacements d'infusions ({@link InfusionSlot})
* @param infixUpgrade am�liorations de l'armure ({@link InfixUpgrade})
*/
public Armor(
// Item fields
Long id, String name, String description, Type type, Integer level, Rarity rarity,
Integer base_price, Integer bl_price, Long icon_file_if, String icon_file_signature,
List<GameType> game_type, List<Flag> flags, List<Restriction> restrictions,
// Armor fields
ArmorType armorType, WeightType weightClass, Long defense, List<InfusionSlot> infusionSlots,
InfixUpgrade infixUpgrade) {
super(id, name, description, type, level, rarity, base_price, bl_price,
icon_file_if, icon_file_signature, game_type, flags,
restrictions);
this.armorType = armorType;
this.weightClass = weightClass;
this.defense = defense;
this.infusionSlots = infusionSlots;
this.infixUpgrade = infixUpgrade;
}
/* ** Getters ** */
public ArmorType getArmorType() { return armorType; }
public WeightType getWeightClass() { return weightClass; }
public Long getDefense() { return defense; }
public List<InfusionSlot> getInfusionSlots() { return infusionSlots; }
public InfixUpgrade getInfixUpgrade() { return infixUpgrade; }
/* ** Setters ** */
public void setInfusionSlots(List<InfusionSlot> infusionSlots) { this.infusionSlots = infusionSlots; }
public void setInfixUpgrade(InfixUpgrade infixUpgrade) { this.infixUpgrade = infixUpgrade; }
/* ** Overrides ** */
@Override public boolean equals(Object o) { return super.equals(o); }
@Override public String toString() {
return super.toString()
+ "|-----------------------------------"
+ "| " + armorType + "\n"
+ "| " + weightClass + "\n"
+ "| " + defense + "\n"
+ "| " + infusionSlots + "\n"
+ "| " + infixUpgrade + "\n";
}
}