Browse Source

More junk removal

combat-2
MagicBot 8 months ago
parent
commit
8bf47fb4fe
  1. 2
      src/engine/objects/CharacterItemManager.java
  2. 109
      src/engine/objects/ItemBase.java
  3. 51
      src/engine/objects/ItemTemplate.java

2
src/engine/objects/CharacterItemManager.java

@ -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.

109
src/engine/objects/ItemBase.java

@ -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;
} }

51
src/engine/objects/ItemTemplate.java

@ -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
}
} }

Loading…
Cancel
Save