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.enums.Flag;
import fr.whyt.item.enums.GameType;
import fr.whyt.item.enums.InfusionSlotFlag;
import fr.whyt.item.enums.Rarity;
import fr.whyt.item.enums.Type;
import fr.whyt.item.enums.UpgradeComponentFlag;
import fr.whyt.item.enums.UpgradeComponentType;
import fr.whyt.persona.enums.Restriction;
/**
* H�rite de {@link Item}.<br>
* Repr�sente un objet de type composant d'am�lioration dans le jeu.<br>
* Poss�de un type de composant, des drapeaux de composant, des am�liorations, un suffix,
* des drapeaux d'emplacements d'infusion et des bonus.<br>
* @see UpgradeComponentType
* @see UpgradeComponentFlag
* @see InfusionSlotFlag
* @see InfixUpgrade
* @author WhyT
*/
public class UpgradeComponent extends Item {
private final UpgradeComponentType upgradeComponentType;
private List<UpgradeComponentFlag> upgradeComponentFlags;
private InfixUpgrade infixUpgrade;
private final String suffix;
private List<InfusionSlotFlag> infusionUpgradeFlags;
private List<String> bonuses;
/**
* Cr�e un {@link Item} de type de composants d'am�lioration.<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 upgradeComponentType type du composant d'am�lioration
* @param upgradeComponentFlags drapeaux du composant
* @param infixUpgrade am�liorations
* @param suffix suffixe du composant
* @param infusionUpgradeFlags drapeaux d'emplacements d'infusion
* @param bonuses des bonus
*/
public UpgradeComponent(
// Item fields
Long id, String name, String description, Type type, Integer level, Rarity rarity,
Integer basePrice, Integer blPrice, Long iconFileID, String iconFileSignature,
List<GameType> gameType, List<Flag> flags, List<Restriction> restrictions,
// UpgradeComponent fields
UpgradeComponentType upgradeComponentType, List<UpgradeComponentFlag> upgradeComponentFlags,
InfixUpgrade infixUpgrade, String suffix, List<InfusionSlotFlag> infusionUpgradeFlags,
List<String> bonuses) {
super(id, name, description, type, level, rarity, basePrice, blPrice,
iconFileID, iconFileSignature, gameType, flags, restrictions);
this.upgradeComponentType = upgradeComponentType;
this.upgradeComponentFlags = upgradeComponentFlags;
this.infixUpgrade = infixUpgrade;
this.suffix = suffix;
this.infusionUpgradeFlags = infusionUpgradeFlags;
this.bonuses = bonuses;
}
/* ** Getters ** */
public UpgradeComponentType getUpgradeComponentType() { return upgradeComponentType; }
public List<UpgradeComponentFlag> getUpgradeComponentFlags() { return upgradeComponentFlags; }
public InfixUpgrade getInfixUpgrade() { return infixUpgrade; }
public String getSuffix() { return suffix; }
public List<InfusionSlotFlag> getInfusionUpgradeFlags() { return infusionUpgradeFlags; }
public List<String> getBonuses() { return bonuses; }
/* ** Setters ** */
public void setUpgradeComponentFlags(
List<UpgradeComponentFlag> upgradeComponentFlags) {
this.upgradeComponentFlags = upgradeComponentFlags;
}
public void setInfixUpgrade(InfixUpgrade infixUpgrade) { this.infixUpgrade = infixUpgrade; }
public void setInfusionUpgradeFlags(
List<InfusionSlotFlag> infusionUpgradeFlags) {
this.infusionUpgradeFlags = infusionUpgradeFlags;
}
public void setBonuses(List<String> bonuses) { this.bonuses = bonuses; }
/* ** Overrides ** */
@Override public boolean equals(Object o) { return super.equals(o); }
@Override public String toString() {
return super.toString()
+ "|-----------------------------------"
+ "| " + upgradeComponentType + "\n"
+ "| " + upgradeComponentFlags + "\n"
+ "| " + infixUpgrade + "\n"
+ "| " + suffix + "\n"
+ "| " + infusionUpgradeFlags + "\n"
+ "| " + bonuses + "\n";
}
}