forked from MagicBane/Server
More junk removal
This commit is contained in:
@@ -1283,7 +1283,7 @@ public class CharacterItemManager {
|
|||||||
// make sure player can equip item
|
// make sure player can equip item
|
||||||
if (i.getItemBase() == null)
|
if (i.getItemBase() == null)
|
||||||
return false;
|
return false;
|
||||||
if (!i.getItemBase().canEquip(slot, this, absCharacter, i) && this.absCharacter.getObjectType() != GameObjectType.Mob)
|
if (!ItemTemplate.canEquip(slot, this, absCharacter, i) && this.absCharacter.getObjectType() != GameObjectType.Mob)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// check to see if item is already there.
|
// check to see if item is already there.
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
package engine.objects;
|
package engine.objects;
|
||||||
|
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.Enum.GameObjectType;
|
|
||||||
import engine.Enum.ItemType;
|
import engine.Enum.ItemType;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
@@ -19,7 +18,6 @@ import java.sql.ResultSet;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public class ItemBase {
|
public class ItemBase {
|
||||||
|
|
||||||
@@ -27,11 +25,10 @@ public class ItemBase {
|
|||||||
public static int GOLD_BASE_ID = 7;
|
public static int GOLD_BASE_ID = 7;
|
||||||
public static ArrayList<Integer> AnniversaryGifts = new ArrayList<>();
|
public static ArrayList<Integer> AnniversaryGifts = new ArrayList<>();
|
||||||
public static HashMap<Integer, ItemBase> _itemBaseByUUID = new HashMap<>();
|
public static HashMap<Integer, ItemBase> _itemBaseByUUID = new HashMap<>();
|
||||||
// Internal cache
|
|
||||||
private static final HashMap<Integer, Integer> itemHashIDMap = new HashMap<>();
|
private static final HashMap<Integer, Integer> itemHashIDMap = new HashMap<>();
|
||||||
private static final HashMap<String, Integer> _IDsByNames = new HashMap<>();
|
private static final HashMap<String, Integer> _IDsByNames = new HashMap<>();
|
||||||
private static final ArrayList<ItemBase> _resourceList = new ArrayList<>();
|
private static final ArrayList<ItemBase> _resourceList = new ArrayList<>();
|
||||||
private final int uuid;
|
public final int uuid;
|
||||||
|
|
||||||
//requirements/restrictions
|
//requirements/restrictions
|
||||||
private final ItemType type;
|
private final ItemType type;
|
||||||
@@ -44,7 +41,6 @@ public class ItemBase {
|
|||||||
// Armor and weapon related values
|
// Armor and weapon related values
|
||||||
private final String skillRequired;
|
private final String skillRequired;
|
||||||
private final short percentRequired;
|
private final short percentRequired;
|
||||||
private final float blockMod;
|
|
||||||
private final short defense;
|
private final short defense;
|
||||||
private final float dexPenalty;
|
private final float dexPenalty;
|
||||||
private final float speed;
|
private final float speed;
|
||||||
@@ -59,14 +55,10 @@ public class ItemBase {
|
|||||||
// Item stat modifiers
|
// Item stat modifiers
|
||||||
private final HashMap<Integer, Integer> bakedInStats = new HashMap<>();
|
private final HashMap<Integer, Integer> bakedInStats = new HashMap<>();
|
||||||
private final HashMap<Integer, Integer> usedStats = new HashMap<>();
|
private final HashMap<Integer, Integer> usedStats = new HashMap<>();
|
||||||
private final float parryBonus;
|
|
||||||
private final boolean isStrBased;
|
private final boolean isStrBased;
|
||||||
private ArrayList<Integer> animations = new ArrayList<>();
|
private ArrayList<Integer> animations = new ArrayList<>();
|
||||||
private ArrayList<Integer> offHandAnimations = new ArrayList<>();
|
private ArrayList<Integer> offHandAnimations = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
|
||||||
* ResultSet Constructor
|
|
||||||
*/
|
|
||||||
public ItemBase(ResultSet rs) throws SQLException {
|
public ItemBase(ResultSet rs) throws SQLException {
|
||||||
|
|
||||||
this.uuid = rs.getInt("ID");
|
this.uuid = rs.getInt("ID");
|
||||||
@@ -81,10 +73,8 @@ public class ItemBase {
|
|||||||
this.isConsumable = false;
|
this.isConsumable = false;
|
||||||
this.skillRequired = rs.getString("skillRequired");
|
this.skillRequired = rs.getString("skillRequired");
|
||||||
this.percentRequired = rs.getShort("percentRequired");
|
this.percentRequired = rs.getShort("percentRequired");
|
||||||
this.blockMod = rs.getFloat("blockMod");
|
|
||||||
this.defense = rs.getShort("defense");
|
this.defense = rs.getShort("defense");
|
||||||
this.dexPenalty = rs.getFloat("dexPenalty");
|
this.dexPenalty = rs.getFloat("dexPenalty");
|
||||||
this.parryBonus = rs.getFloat("parryBonus");
|
|
||||||
this.isStrBased = (rs.getInt("isStrBased") == 1);
|
this.isStrBased = (rs.getInt("isStrBased") == 1);
|
||||||
this.speed = rs.getFloat("speed");
|
this.speed = rs.getFloat("speed");
|
||||||
this.range = rs.getFloat("range");
|
this.range = rs.getFloat("range");
|
||||||
@@ -145,19 +135,11 @@ public class ItemBase {
|
|||||||
return itemHashIDMap;
|
return itemHashIDMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Database
|
|
||||||
*/
|
|
||||||
public static ItemBase getItemBase(int uuid) {
|
public static ItemBase getItemBase(int uuid) {
|
||||||
|
|
||||||
return _itemBaseByUUID.get(uuid);
|
return _itemBaseByUUID.get(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the ItemBase instance for Gold.
|
|
||||||
*
|
|
||||||
* @return ItemBase for Gold
|
|
||||||
*/
|
|
||||||
public static ItemBase getGoldItemBase() {
|
public static ItemBase getGoldItemBase() {
|
||||||
if (ItemBase.GOLD_ITEM_BASE == null)
|
if (ItemBase.GOLD_ITEM_BASE == null)
|
||||||
ItemBase.GOLD_ITEM_BASE = getItemBase(7);
|
ItemBase.GOLD_ITEM_BASE = getItemBase(7);
|
||||||
@@ -170,16 +152,10 @@ public class ItemBase {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the _itemBaseByUUID
|
|
||||||
*/
|
|
||||||
public static HashMap<Integer, ItemBase> getUUIDCache() {
|
public static HashMap<Integer, ItemBase> getUUIDCache() {
|
||||||
return _itemBaseByUUID;
|
return _itemBaseByUUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the _resourceList
|
|
||||||
*/
|
|
||||||
public static ArrayList<ItemBase> getResourceList() {
|
public static ArrayList<ItemBase> getResourceList() {
|
||||||
return _resourceList;
|
return _resourceList;
|
||||||
}
|
}
|
||||||
@@ -271,59 +247,6 @@ public class ItemBase {
|
|||||||
return hashID;
|
return hashID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canEquip(Enum.EquipSlotType slot, CharacterItemManager itemManager, AbstractCharacter abstractCharacter, Item item) {
|
|
||||||
|
|
||||||
if (itemManager == null || abstractCharacter == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (abstractCharacter.getObjectType().equals(GameObjectType.PlayerCharacter)) {
|
|
||||||
|
|
||||||
if (!validForSlot(slot, itemManager.getEquipped(), item))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!ItemTemplate.validForSkills(item, abstractCharacter.getSkills()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (ItemTemplate.canCharacterEquip(item, abstractCharacter) == false)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return item.template.item_value != 0 || Kit.IsNoobGear(item.getItemBase().uuid);
|
|
||||||
//players can't wear 0 value items.
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return true; //Mobiles and NPC's don't need to check equip
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean validForSlot(Enum.EquipSlotType slot, ConcurrentHashMap<Enum.EquipSlotType, Item> equipped, Item item) {
|
|
||||||
|
|
||||||
boolean validSlot = false;
|
|
||||||
|
|
||||||
if (equipped == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Slot is taken
|
|
||||||
|
|
||||||
if (equipped.get(slot) != null && equipped.get(slot).equals(item) == false)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Two handed weapons take up two slots
|
|
||||||
|
|
||||||
if ((ItemTemplate.isTwoHanded(item)) &&
|
|
||||||
((slot == Enum.EquipSlotType.LHELD && equipped.get(Enum.EquipSlotType.RHELD) != null) ||
|
|
||||||
(slot == Enum.EquipSlotType.RHELD && equipped.get(Enum.EquipSlotType.LHELD) != null)))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.WEAPON))
|
|
||||||
if (equipped.get(slot) != null && equipped.get(slot).equals(item) == false)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the uuid
|
|
||||||
*/
|
|
||||||
public final int getUUID() {
|
public final int getUUID() {
|
||||||
return uuid;
|
return uuid;
|
||||||
}
|
}
|
||||||
@@ -332,72 +255,42 @@ public class ItemBase {
|
|||||||
return this.twoHanded;
|
return this.twoHanded;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the skillRequired
|
|
||||||
*/
|
|
||||||
public String getSkillRequired() {
|
public String getSkillRequired() {
|
||||||
return skillRequired;
|
return skillRequired;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the mastery
|
|
||||||
*/
|
|
||||||
public String getMastery() {
|
public String getMastery() {
|
||||||
return mastery;
|
return mastery;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the defense
|
|
||||||
*/
|
|
||||||
public short getDefense() {
|
public short getDefense() {
|
||||||
return defense;
|
return defense;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the dexPenalty
|
|
||||||
*/
|
|
||||||
public float getDexPenalty() {
|
public float getDexPenalty() {
|
||||||
return dexPenalty;
|
return dexPenalty;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the speed
|
|
||||||
*/
|
|
||||||
public float getSpeed() {
|
public float getSpeed() {
|
||||||
return speed;
|
return speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the range
|
|
||||||
*/
|
|
||||||
public float getRange() {
|
public float getRange() {
|
||||||
return range;
|
return range;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the isStrBased
|
|
||||||
*/
|
|
||||||
public boolean isStrBased() {
|
public boolean isStrBased() {
|
||||||
return isStrBased;
|
return isStrBased;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the maxDamage
|
|
||||||
*/
|
|
||||||
public short getMaxDamage() {
|
public short getMaxDamage() {
|
||||||
return maxDamage;
|
return maxDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the minDamage
|
|
||||||
*/
|
|
||||||
public short getMinDamage() {
|
public short getMinDamage() {
|
||||||
return minDamage;
|
return minDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the damageType
|
|
||||||
*/
|
|
||||||
public Enum.SourceType getDamageType() {
|
public Enum.SourceType getDamageType() {
|
||||||
return damageType;
|
return damageType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -482,4 +482,55 @@ public class ItemTemplate {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean validForSlot(Enum.EquipSlotType slot, ConcurrentHashMap<Enum.EquipSlotType, Item> equipped, Item item) {
|
||||||
|
|
||||||
|
boolean validSlot = false;
|
||||||
|
|
||||||
|
if (equipped == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Slot is taken
|
||||||
|
|
||||||
|
if (equipped.get(slot) != null && equipped.get(slot).equals(item) == false)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Two handed weapons take up two slots
|
||||||
|
|
||||||
|
if ((isTwoHanded(item)) &&
|
||||||
|
((slot == Enum.EquipSlotType.LHELD && equipped.get(Enum.EquipSlotType.RHELD) != null) ||
|
||||||
|
(slot == Enum.EquipSlotType.RHELD && equipped.get(Enum.EquipSlotType.LHELD) != null)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (item.template.item_type.equals(Enum.ItemType.WEAPON))
|
||||||
|
if (equipped.get(slot) != null && equipped.get(slot).equals(item) == false)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean canEquip(Enum.EquipSlotType slot, CharacterItemManager itemManager, AbstractCharacter abstractCharacter, Item item) {
|
||||||
|
|
||||||
|
if (itemManager == null || abstractCharacter == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (abstractCharacter.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) {
|
||||||
|
|
||||||
|
if (!validForSlot(slot, itemManager.getEquipped(), item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!validForSkills(item, abstractCharacter.getSkills()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (canCharacterEquip(item, abstractCharacter) == false)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//players can't wear 0 value items.
|
||||||
|
|
||||||
|
return item.template.item_value != 0 || Kit.IsNoobGear(item.getItemBase().uuid);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true; //Mobiles and NPC's don't need to check equip
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user