WitchGame/WitchGame/Equipment.java

87 lines
2.7 KiB
Java

package witchGame;
import java.util.ArrayList;
import java.util.List;
public class Equipment extends Item {
// private String name;
// private int cost;
private ArrayList<Condition> constantEffects;
private ArrayList<Condition> abilityEffects;
// private TargetType abilityTarget;
// private int maxAbilityUses;
// private int abilityUses;
@Override
public String toString() {
String toString = "Equipment: " + name + "\nEquipslot: " + equipSlot + "\n";
if (constantEffects.size() > 0) {
toString += "Wearer has: \n";
for (Condition condition : constantEffects) {
toString += condition.toString();
}
}
if (abilityEffects.size() > 0) {
toString += "Ability:\n";
switch (abilityTarget) {
case Self: toString += "Apply to Self\n"; break;
case Enemy: toString += "Apply to Target Enemy\n"; break;
case AllEnemies: toString += "Apply to All Enemies\n"; break;
default: break;
}
for (Condition condition : abilityEffects) {
toString += condition.toString();
}
}
return toString;
}
public Equipment(String name, EquipmentType equipSlot, int cost, ArrayList<Condition> constantEffects,
ArrayList<Condition> abilityEffects, TargetType abilityTarget, int maxAbilityUses) {
super();
this.name = name;
this.equipSlot = equipSlot;
this.cost = cost;
this.constantEffects = constantEffects;
this.abilityEffects = abilityEffects;
this.abilityTarget = abilityTarget;
this.maxAbilityUses = maxAbilityUses;
this.abilityUses = this.maxAbilityUses;
}
public Equipment(String name, EquipmentType equipSlot, int cost, ArrayList<Condition> constantEffects) {
super();
this.name = name;
this.equipSlot = equipSlot;
this.cost = cost;
this.constantEffects = constantEffects;
this.abilityEffects = null;
this.abilityTarget = null;
this.maxAbilityUses = 0;
this.abilityUses = this.maxAbilityUses;
}
public Equipment(String name, EquipmentType equipSlot, int cost, ArrayList<Condition> abilityEffects,
TargetType abilityTarget, int maxAbilityUses) {
super();
this.name = name;
this.equipSlot = equipSlot;
this.cost = cost;
this.constantEffects = null;
this.abilityEffects = abilityEffects;
this.abilityTarget = abilityTarget;
this.maxAbilityUses = maxAbilityUses;
this.abilityUses = this.maxAbilityUses;
}
public static ArrayList<Equipment> equipmentList = new ArrayList<Equipment>();
static {
equipmentList.add(new Equipment("Breastplate", EquipmentType.Chest, 750, new ArrayList<Condition>(List.of(new Condition(ConditionType.ModifierOnAC, 999, 6), new Condition(ConditionType.DisadvantageOnAttacks, 999))))); //
}
}