forked from MagicBane/Server
File reformat.
This commit is contained in:
@@ -34,51 +34,11 @@ public class ItemBase {
|
|||||||
public static HashMap<Integer, ItemBase> _itemBaseByUUID = new HashMap<>();
|
public static HashMap<Integer, ItemBase> _itemBaseByUUID = new HashMap<>();
|
||||||
public static HashMap<engine.Enum.ItemType, HashSet<ItemBase>> ItemBaseTypeMap = new HashMap<>();
|
public static HashMap<engine.Enum.ItemType, HashSet<ItemBase>> ItemBaseTypeMap = new HashMap<>();
|
||||||
// Internal cache
|
// Internal cache
|
||||||
private static HashMap<Integer, Integer> itemHashIDMap = new HashMap<>();
|
private static final HashMap<Integer, Integer> itemHashIDMap = new HashMap<>();
|
||||||
private static HashMap<String, Integer> _IDsByNames = new HashMap<>();
|
private static final HashMap<String, Integer> _IDsByNames = new HashMap<>();
|
||||||
private static ArrayList<ItemBase> _resourceList = new ArrayList<>();
|
private static final ArrayList<ItemBase> _resourceList = new ArrayList<>();
|
||||||
private final int uuid;
|
private final int uuid;
|
||||||
private final String name;
|
private final String name;
|
||||||
private float durability;
|
|
||||||
private int value;
|
|
||||||
private short weight;
|
|
||||||
private short color;
|
|
||||||
private ItemType type;
|
|
||||||
private int vendorType;
|
|
||||||
private int modTable;
|
|
||||||
private int useID;
|
|
||||||
private int hashID;
|
|
||||||
private byte useAmount;
|
|
||||||
// Armor and weapon related values
|
|
||||||
private int equipFlag;
|
|
||||||
private int restrictFlag;
|
|
||||||
private String skillRequired;
|
|
||||||
private short percentRequired;
|
|
||||||
private float slashResist;
|
|
||||||
private float crushResist;
|
|
||||||
private float pierceResist;
|
|
||||||
private float blockMod;
|
|
||||||
private short defense;
|
|
||||||
private float dexPenalty;
|
|
||||||
private float speed;
|
|
||||||
private float range;
|
|
||||||
private short minDamage;
|
|
||||||
private short maxDamage;
|
|
||||||
private String mastery;
|
|
||||||
private engine.Enum.DamageType damageType;
|
|
||||||
private boolean twoHanded;
|
|
||||||
private boolean isConsumable;
|
|
||||||
private boolean isStackable;
|
|
||||||
private int numCharges;
|
|
||||||
// Item stat modifiers
|
|
||||||
private HashMap<Integer, Integer> bakedInStats = new HashMap<>();
|
|
||||||
private HashMap<Integer, Integer> usedStats = new HashMap<>();
|
|
||||||
private float parryBonus;
|
|
||||||
private boolean isStrBased;
|
|
||||||
private ArrayList<Integer> animations = new ArrayList<>();
|
|
||||||
private ArrayList<Integer> offHandAnimations = new ArrayList<>();
|
|
||||||
private boolean autoID = false;
|
|
||||||
|
|
||||||
//requirements/restrictions
|
//requirements/restrictions
|
||||||
public EnumSet<Enum.MonsterType> restrictedRaces;
|
public EnumSet<Enum.MonsterType> restrictedRaces;
|
||||||
public EnumSet<Enum.MonsterType> requiredRaces;
|
public EnumSet<Enum.MonsterType> requiredRaces;
|
||||||
@@ -86,6 +46,45 @@ public class ItemBase {
|
|||||||
public EnumSet<Enum.ClassType> requiredClasses;
|
public EnumSet<Enum.ClassType> requiredClasses;
|
||||||
public EnumSet<Enum.DisciplineType> requiredDiscs;
|
public EnumSet<Enum.DisciplineType> requiredDiscs;
|
||||||
public EnumSet<Enum.DisciplineType> restrictedDiscs;
|
public EnumSet<Enum.DisciplineType> restrictedDiscs;
|
||||||
|
private final float durability;
|
||||||
|
private final int value;
|
||||||
|
private final short weight;
|
||||||
|
private final short color;
|
||||||
|
private final ItemType type;
|
||||||
|
private int vendorType;
|
||||||
|
private final int modTable;
|
||||||
|
private final int useID;
|
||||||
|
private int hashID;
|
||||||
|
private final byte useAmount;
|
||||||
|
// Armor and weapon related values
|
||||||
|
private final int equipFlag;
|
||||||
|
private final int restrictFlag;
|
||||||
|
private final String skillRequired;
|
||||||
|
private final short percentRequired;
|
||||||
|
private final float slashResist;
|
||||||
|
private final float crushResist;
|
||||||
|
private final float pierceResist;
|
||||||
|
private final float blockMod;
|
||||||
|
private final short defense;
|
||||||
|
private final float dexPenalty;
|
||||||
|
private final float speed;
|
||||||
|
private final float range;
|
||||||
|
private final short minDamage;
|
||||||
|
private final short maxDamage;
|
||||||
|
private final String mastery;
|
||||||
|
private final engine.Enum.DamageType damageType;
|
||||||
|
private final boolean twoHanded;
|
||||||
|
private boolean isConsumable;
|
||||||
|
private boolean isStackable;
|
||||||
|
private final int numCharges;
|
||||||
|
// Item stat modifiers
|
||||||
|
private final HashMap<Integer, Integer> bakedInStats = new HashMap<>();
|
||||||
|
private final HashMap<Integer, Integer> usedStats = new HashMap<>();
|
||||||
|
private final float parryBonus;
|
||||||
|
private final boolean isStrBased;
|
||||||
|
private ArrayList<Integer> animations = new ArrayList<>();
|
||||||
|
private ArrayList<Integer> offHandAnimations = new ArrayList<>();
|
||||||
|
private boolean autoID = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ResultSet Constructor
|
* ResultSet Constructor
|
||||||
@@ -324,11 +323,8 @@ public class ItemBase {
|
|||||||
|
|
||||||
public boolean isDiscRune() {
|
public boolean isDiscRune() {
|
||||||
int ID = uuid;
|
int ID = uuid;
|
||||||
if (ID > 2499 && ID < 3050) { //class, discipline runes
|
//class, discipline runes
|
||||||
return true;
|
return ID > 2499 && ID < 3050;
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGlass() {
|
public boolean isGlass() {
|
||||||
@@ -486,7 +482,7 @@ public class ItemBase {
|
|||||||
if (!validForSkills(abstractCharacter.getSkills()))
|
if (!validForSkills(abstractCharacter.getSkills()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(this.canCharacterEquip(abstractCharacter) == false)
|
if (this.canCharacterEquip(abstractCharacter) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return item.getItemBase().value != 0 || Kit.IsNoobGear(item.getItemBase().uuid);
|
return item.getItemBase().value != 0 || Kit.IsNoobGear(item.getItemBase().uuid);
|
||||||
@@ -496,6 +492,7 @@ public class ItemBase {
|
|||||||
|
|
||||||
return true; //Mobiles and NPC's don't need to check equip
|
return true; //Mobiles and NPC's don't need to check equip
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValidSlot() {
|
public int getValidSlot() {
|
||||||
int slotValue = 0;
|
int slotValue = 0;
|
||||||
|
|
||||||
@@ -772,19 +769,19 @@ public class ItemBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isThrowing() {
|
public boolean isThrowing() {
|
||||||
return this.mastery.equals("Throwing") ? true : false;
|
return this.mastery.equals("Throwing");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isStaff() {
|
public boolean isStaff() {
|
||||||
return this.mastery.equals("Staff") ? true : false;
|
return this.mastery.equals("Staff");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isScepter() {
|
public boolean isScepter() {
|
||||||
return this.mastery.equals("Benediction") ? true : false;
|
return this.mastery.equals("Benediction");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isArchery() {
|
public boolean isArchery() {
|
||||||
return this.mastery.equals("Archery") ? true : false;
|
return this.mastery.equals("Archery");
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMelee() {
|
public boolean isMelee() {
|
||||||
@@ -935,66 +932,66 @@ public class ItemBase {
|
|||||||
this.autoID = autoID;
|
this.autoID = autoID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isArmor(){
|
public boolean isArmor() {
|
||||||
|
|
||||||
if(this.isHeavyArmor())
|
if (this.isHeavyArmor())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if(this.isMediumArmor())
|
if (this.isMediumArmor())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if(this.isLightArmor())
|
if (this.isLightArmor())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if(this.isClothArmor())
|
return this.isClothArmor();
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
public Boolean canCharacterEquip(AbstractCharacter character){
|
|
||||||
return ValidRace(character.absRace) && ValidClass(character.absBaseClass,character.absPromotionClass) && ValidDiscipline(character.absDisciplines);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean ValidRace(Enum.MonsterType race){
|
public Boolean canCharacterEquip(AbstractCharacter character) {
|
||||||
if(this.requiredRaces.isEmpty() && this.restrictedRaces.isEmpty())
|
return ValidRace(character.absRace) && ValidClass(character.absBaseClass, character.absPromotionClass) && ValidDiscipline(character.absDisciplines);
|
||||||
return true;
|
|
||||||
|
|
||||||
if(this.requiredRaces.isEmpty() == false && race.elementOf(this.requiredRaces) == true)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if(this.restrictedRaces.isEmpty() == false && race.elementOf(this.restrictedRaces) == false)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean ValidClass(Enum.ClassType base,Enum.ClassType profession){
|
public Boolean ValidRace(Enum.MonsterType race) {
|
||||||
|
|
||||||
|
if (this.requiredRaces.isEmpty() && this.restrictedRaces.isEmpty())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (this.requiredRaces.isEmpty() == false && race.elementOf(this.requiredRaces) == true)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return this.restrictedRaces.isEmpty() == false && race.elementOf(this.restrictedRaces) == false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean ValidClass(Enum.ClassType base, Enum.ClassType profession) {
|
||||||
|
|
||||||
boolean requiredEmpty = this.requiredClasses == null || this.requiredClasses.isEmpty();
|
boolean requiredEmpty = this.requiredClasses == null || this.requiredClasses.isEmpty();
|
||||||
boolean restrictedEmpty = this.restrictedClasses == null || this.restrictedClasses.isEmpty();
|
boolean restrictedEmpty = this.restrictedClasses == null || this.restrictedClasses.isEmpty();
|
||||||
if(requiredEmpty && restrictedEmpty)
|
|
||||||
|
if (requiredEmpty && restrictedEmpty)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if(this.requiredClasses != null && this.requiredClasses.isEmpty() == false)
|
if (this.requiredClasses != null && this.requiredClasses.isEmpty() == false)
|
||||||
if(this.requiredClasses.contains(base) || this.requiredClasses.contains(profession))
|
if (this.requiredClasses.contains(base) || this.requiredClasses.contains(profession))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if(this.restrictedClasses != null && this.restrictedClasses.isEmpty() == false)
|
if (this.restrictedClasses != null && this.restrictedClasses.isEmpty() == false)
|
||||||
if(this.restrictedClasses.contains(base) == false && this.restrictedClasses.contains(profession) == false)
|
return this.restrictedClasses.contains(base) == false && this.restrictedClasses.contains(profession) == false;
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean ValidDiscipline(EnumSet<Enum.DisciplineType> discs){
|
public Boolean ValidDiscipline(EnumSet<Enum.DisciplineType> discs) {
|
||||||
|
|
||||||
boolean requiredEmpty = this.requiredDiscs == null || this.requiredDiscs.isEmpty();
|
boolean requiredEmpty = this.requiredDiscs == null || this.requiredDiscs.isEmpty();
|
||||||
boolean restrictedEmpty = this.restrictedDiscs == null || this.restrictedDiscs.isEmpty();
|
boolean restrictedEmpty = this.restrictedDiscs == null || this.restrictedDiscs.isEmpty();
|
||||||
if(requiredEmpty && restrictedEmpty)
|
|
||||||
|
if (requiredEmpty && restrictedEmpty)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
for(Enum.DisciplineType disc : discs){
|
for (Enum.DisciplineType disc : discs) {
|
||||||
if(this.requiredDiscs.isEmpty() == false && this.requiredDiscs.contains(disc))
|
if (this.requiredDiscs.isEmpty() == false && this.requiredDiscs.contains(disc))
|
||||||
return true;
|
return true;
|
||||||
if(this.restrictedDiscs.isEmpty() == false && this.restrictedDiscs.contains(disc))
|
|
||||||
|
if (this.restrictedDiscs.isEmpty() == false && this.restrictedDiscs.contains(disc))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user