Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b63826a7b7 | ||
|
|
2774d8a510 | ||
|
|
9a10574e59 | ||
|
|
d197f62c1f | ||
|
|
dc4a9ee08a | ||
|
|
b8ac8cce3e | ||
|
|
6825f94f1e | ||
|
|
c774746736 | ||
|
|
3e087bd1ac | ||
|
|
765cb9edb6 | ||
|
|
4765e7993f |
No files matched your search
@@ -325,7 +325,7 @@ public class dbItemHandler extends dbHandlerBase {
|
|||||||
|
|
||||||
for (Item item : inventory) {
|
for (Item item : inventory) {
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
try (Connection connection = DbManager.getConnection();
|
try (Connection connection = DbManager.getConnection();
|
||||||
@@ -474,7 +474,7 @@ public class dbItemHandler extends dbHandlerBase {
|
|||||||
*/
|
*/
|
||||||
public boolean UPDATE_GOLD(final Item item, int newValue, int oldValue) {
|
public boolean UPDATE_GOLD(final Item item, int newValue, int oldValue) {
|
||||||
|
|
||||||
if (!item.template.item_type.equals(ItemType.GOLD))
|
if (!item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
try (Connection connection = DbManager.getConnection();
|
try (Connection connection = DbManager.getConnection();
|
||||||
@@ -554,7 +554,7 @@ public class dbItemHandler extends dbHandlerBase {
|
|||||||
|
|
||||||
// Write 0 if we will not modify the value from template
|
// Write 0 if we will not modify the value from template
|
||||||
|
|
||||||
if (value == item.template.item_value)
|
if (value == item.template.cacheTemplate.getItemValue())
|
||||||
value = 0;
|
value = 0;
|
||||||
|
|
||||||
try (Connection connection = DbManager.getConnection();
|
try (Connection connection = DbManager.getConnection();
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class CreateItemCmd extends AbstractDevCmd {
|
|||||||
|
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
|
|
||||||
if (!playerCharacter.charItemManager.hasRoomInventory(template.item_wt)) {
|
if (!playerCharacter.charItemManager.hasRoomInventory(template.cacheTemplate.getItemWt())) {
|
||||||
ChatManager.chatSystemInfo(playerCharacter, "You are encumbered!.");
|
ChatManager.chatSystemInfo(playerCharacter, "You are encumbered!.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -509,15 +509,15 @@ public class InfoCmd extends AbstractDevCmd {
|
|||||||
Item item = (Item) target;
|
Item item = (Item) target;
|
||||||
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
||||||
output += StringUtils.addWS("Template: " + template.template_id, 20);
|
output += StringUtils.addWS("Template: " + template.template_id, 20);
|
||||||
output += "Weight: " + template.item_wt;
|
output += "Weight: " + template.cacheTemplate.getItemWt();
|
||||||
output += newline;
|
output += newline;
|
||||||
DecimalFormat df = new DecimalFormat("###,###,###,###,##0");
|
DecimalFormat df = new DecimalFormat("###,###,###,###,##0");
|
||||||
output += StringUtils.addWS("Qty: "
|
output += StringUtils.addWS("Qty: "
|
||||||
+ df.format(item.getNumOfItems()), 20);
|
+ df.format(item.getNumOfItems()), 20);
|
||||||
output += "Charges: " + (byte) item.chargesRemaining
|
output += "Charges: " + (byte) item.chargesRemaining
|
||||||
+ '/' + item.template.item_initial_charges;
|
+ '/' + item.template.cacheTemplate.getItemInitialCharges();
|
||||||
output += newline;
|
output += newline;
|
||||||
output += "Name: " + template.item_base_name;
|
output += "Name: " + template.cacheTemplate.getItemBaseName();
|
||||||
output += newline;
|
output += newline;
|
||||||
output += item.getContainerInfo();
|
output += item.getContainerInfo();
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public class MakeItemCmd extends AbstractDevCmd {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (template.item_type == ItemType.GOLD) {
|
if (template.cacheTemplate.getItemType() == ItemType.GOLD) {
|
||||||
this.throwbackInfo(pc, "use /addgold to add gold.");
|
this.throwbackInfo(pc, "use /addgold to add gold.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -139,8 +139,8 @@ public class MakeItemCmd extends AbstractDevCmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((numItems > 1)
|
if ((numItems > 1)
|
||||||
&& (template.item_type.equals(ItemType.RESOURCE) == false)
|
&& (template.cacheTemplate.getItemType().equals(ItemType.RESOURCE) == false)
|
||||||
&& (template.item_type.equals(ItemType.OFFERING)) == false)
|
&& (template.cacheTemplate.getItemType().equals(ItemType.OFFERING)) == false)
|
||||||
numItems = 1;
|
numItems = 1;
|
||||||
|
|
||||||
CharacterItemManager cim = pc.charItemManager;
|
CharacterItemManager cim = pc.charItemManager;
|
||||||
@@ -154,7 +154,7 @@ public class MakeItemCmd extends AbstractDevCmd {
|
|||||||
|
|
||||||
for (int i = 0; i < quantity; i++) {
|
for (int i = 0; i < quantity; i++) {
|
||||||
|
|
||||||
int weight = template.item_wt;
|
int weight = template.cacheTemplate.getItemWt();
|
||||||
|
|
||||||
if (!cim.hasRoomInventory(weight)) {
|
if (!cim.hasRoomInventory(weight)) {
|
||||||
throwbackError(pc, "Not enough room in inventory for any more of this item. " + i + " produced.");
|
throwbackError(pc, "Not enough room in inventory for any more of this item. " + i + " produced.");
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class PrintBankCmd extends AbstractDevCmd {
|
|||||||
|
|
||||||
for (Item item : list) {
|
for (Item item : list) {
|
||||||
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
||||||
throwbackInfo(pc, " " + template.item_base_name + ", count: " + item.getNumOfItems());
|
throwbackInfo(pc, " " + template.cacheTemplate.getItemBaseName() + ", count: " + item.getNumOfItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
Item gold = cim.getGoldBank();
|
Item gold = cim.getGoldBank();
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class PrintBonusesCmd extends AbstractDevCmd {
|
|||||||
type = "Item";
|
type = "Item";
|
||||||
tar = (Item) target;
|
tar = (Item) target;
|
||||||
ItemTemplate template = ItemTemplate.templates.get(((Item) tar).templateID);
|
ItemTemplate template = ItemTemplate.templates.get(((Item) tar).templateID);
|
||||||
name = template.item_base_name;
|
name = template.cacheTemplate.getItemBaseName();
|
||||||
} else if (target instanceof AbstractCharacter) {
|
} else if (target instanceof AbstractCharacter) {
|
||||||
tar = (AbstractCharacter) target;
|
tar = (AbstractCharacter) target;
|
||||||
name = ((AbstractCharacter) tar).getFirstName();
|
name = ((AbstractCharacter) tar).getFirstName();
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class PrintEquipCmd extends AbstractDevCmd {
|
|||||||
throwbackInfo(pc, "Equip for " + type + ' ' + name + " (" + tar.getObjectUUID() + ')');
|
throwbackInfo(pc, "Equip for " + type + ' ' + name + " (" + tar.getObjectUUID() + ')');
|
||||||
for (mbEnums.EquipSlotType slot : tarMob.charItemManager.equipped.keySet()) {
|
for (mbEnums.EquipSlotType slot : tarMob.charItemManager.equipped.keySet()) {
|
||||||
Item equip = tarMob.charItemManager.equipped.get(slot);
|
Item equip = tarMob.charItemManager.equipped.get(slot);
|
||||||
throwbackInfo(pc, equip.templateID + " : " + equip.template.item_base_name + ", slot: " + slot);
|
throwbackInfo(pc, equip.templateID + " : " + equip.template.cacheTemplate.getItemBaseName() + ", slot: " + slot);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ public class PrintEquipCmd extends AbstractDevCmd {
|
|||||||
throwbackInfo(pc, "Equip for " + type + ' ' + name + " (" + tar.getObjectUUID() + ')');
|
throwbackInfo(pc, "Equip for " + type + ' ' + name + " (" + tar.getObjectUUID() + ')');
|
||||||
for (mbEnums.EquipSlotType slot : tarMob.charItemManager.equipped.keySet()) {
|
for (mbEnums.EquipSlotType slot : tarMob.charItemManager.equipped.keySet()) {
|
||||||
Item equip = tarMob.charItemManager.equipped.get(slot);
|
Item equip = tarMob.charItemManager.equipped.get(slot);
|
||||||
throwbackInfo(pc, equip.templateID + " : " + equip.template.item_base_name + ", slot: " + slot);
|
throwbackInfo(pc, equip.templateID + " : " + equip.template.cacheTemplate.getItemBaseName() + ", slot: " + slot);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ public class PrintEquipCmd extends AbstractDevCmd {
|
|||||||
|
|
||||||
for (mbEnums.EquipSlotType slot : list.keySet()) {
|
for (mbEnums.EquipSlotType slot : list.keySet()) {
|
||||||
Item item = list.get(slot);
|
Item item = list.get(slot);
|
||||||
throwbackInfo(pc, " " + item.template.item_base_name + ", slot: " + slot);
|
throwbackInfo(pc, " " + item.template.cacheTemplate.getItemBaseName() + ", slot: " + slot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,16 +77,16 @@ public class PrintInventoryCmd extends AbstractDevCmd {
|
|||||||
for (Item item : inventory) {
|
for (Item item : inventory) {
|
||||||
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.GOLD) == false) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD) == false) {
|
||||||
|
|
||||||
String chargeInfo = "";
|
String chargeInfo = "";
|
||||||
int chargeMax = template.item_initial_charges;
|
int chargeMax = template.cacheTemplate.getItemInitialCharges();
|
||||||
|
|
||||||
if (chargeMax > 0) {
|
if (chargeMax > 0) {
|
||||||
int charges = item.chargesRemaining;
|
int charges = item.chargesRemaining;
|
||||||
chargeInfo = " charges: " + charges + '/' + chargeMax;
|
chargeInfo = " charges: " + charges + '/' + chargeMax;
|
||||||
}
|
}
|
||||||
throwbackInfo(pc, " " + template.item_base_name + ", count: " + item.getNumOfItems() + chargeInfo);
|
throwbackInfo(pc, " " + template.cacheTemplate.getItemBaseName() + ", count: " + item.getNumOfItems() + chargeInfo);
|
||||||
} else
|
} else
|
||||||
goldCount += item.getNumOfItems();
|
goldCount += item.getNumOfItems();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class PrintVaultCmd extends AbstractDevCmd {
|
|||||||
throwbackInfo(pc, "Vault for " + type + ' ' + name + " (" + tar.getObjectUUID() + ')');
|
throwbackInfo(pc, "Vault for " + type + ' ' + name + " (" + tar.getObjectUUID() + ')');
|
||||||
for (Item item : list) {
|
for (Item item : list) {
|
||||||
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
||||||
throwbackInfo(pc, " " + template.item_base_name + ", count: " + item.getNumOfItems());
|
throwbackInfo(pc, " " + template.cacheTemplate.getItemBaseName() + ", count: " + item.getNumOfItems());
|
||||||
}
|
}
|
||||||
Item gold = cim.getGoldVault();
|
Item gold = cim.getGoldVault();
|
||||||
if (gold != null)
|
if (gold != null)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class SimulateBootyCmd extends AbstractDevCmd {
|
|||||||
ItemTemplate template = ItemTemplate.templates.get(entry.templateID);
|
ItemTemplate template = ItemTemplate.templates.get(entry.templateID);
|
||||||
|
|
||||||
if (template != null)
|
if (template != null)
|
||||||
output += "[" + entry.bootyType + "] " + template.item_base_name + " [Chance] " + entry.dropChance + newline;
|
output += "[" + entry.bootyType + "] " + template.cacheTemplate.getItemBaseName() + " [Chance] " + entry.dropChance + newline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ public class SimulateBootyCmd extends AbstractDevCmd {
|
|||||||
try {
|
try {
|
||||||
mob.loadInventory();
|
mob.loadInventory();
|
||||||
for (Item lootItem : mob.charItemManager.getInventory()) {
|
for (Item lootItem : mob.charItemManager.getInventory()) {
|
||||||
switch (lootItem.template.item_type) {
|
switch (lootItem.template.cacheTemplate.getItemType()) {
|
||||||
case EMPLOYMENTCONTRACT: //CONTRACT
|
case EMPLOYMENTCONTRACT: //CONTRACT
|
||||||
Contracts.add(lootItem);
|
Contracts.add(lootItem);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ public enum BuildingManager {
|
|||||||
|
|
||||||
ItemTemplate template = ItemTemplate.templates.get(1705032); // Elan Stone
|
ItemTemplate template = ItemTemplate.templates.get(1705032); // Elan Stone
|
||||||
|
|
||||||
if (!player.charItemManager.hasRoomInventory(template.item_wt))
|
if (!player.charItemManager.hasRoomInventory(template.cacheTemplate.getItemWt()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!ItemManager.MakeItemForPlayer(template.template_id, player, amount))
|
if (!ItemManager.MakeItemForPlayer(template.template_id, player, amount))
|
||||||
@@ -223,7 +223,7 @@ public enum BuildingManager {
|
|||||||
if (resourceTemplate == null)
|
if (resourceTemplate == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!player.charItemManager.hasRoomInventory(resourceTemplate.item_wt)) {
|
if (!player.charItemManager.hasRoomInventory(resourceTemplate.cacheTemplate.getItemWt())) {
|
||||||
ChatManager.chatSystemInfo(player, "You can not carry any more of that item.");
|
ChatManager.chatSystemInfo(player, "You can not carry any more of that item.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -535,12 +535,12 @@ public enum ChatManager {
|
|||||||
if (item != null) //Steal
|
if (item != null) //Steal
|
||||||
if (success) {
|
if (success) {
|
||||||
String name = "";
|
String name = "";
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD))
|
||||||
name = amount + " gold ";
|
name = amount + " gold ";
|
||||||
else {
|
else {
|
||||||
String vowels = "aeiou";
|
String vowels = "aeiou";
|
||||||
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
ItemTemplate template = ItemTemplate.templates.get(item.templateID);
|
||||||
String iName = template.item_base_name;
|
String iName = template.cacheTemplate.getItemBaseName();
|
||||||
if (iName.length() > 0)
|
if (iName.length() > 0)
|
||||||
if (vowels.indexOf(iName.substring(0, 1).toLowerCase()) >= 0)
|
if (vowels.indexOf(iName.substring(0, 1).toLowerCase()) >= 0)
|
||||||
name = "an " + iName + ' ';
|
name = "an " + iName + ' ';
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import engine.net.client.msg.PowerProjectileMsg;
|
|||||||
import engine.net.client.msg.TargetedActionMsg;
|
import engine.net.client.msg.TargetedActionMsg;
|
||||||
import engine.net.client.msg.UpdateStateMsg;
|
import engine.net.client.msg.UpdateStateMsg;
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
|
import engine.parsers.objects.RuneTemplate;
|
||||||
import engine.powers.DamageShield;
|
import engine.powers.DamageShield;
|
||||||
import engine.powers.effectmodifiers.AbstractEffectModifier;
|
import engine.powers.effectmodifiers.AbstractEffectModifier;
|
||||||
import engine.powers.effectmodifiers.WeaponProcEffectModifier;
|
import engine.powers.effectmodifiers.WeaponProcEffectModifier;
|
||||||
@@ -270,13 +271,13 @@ public enum CombatManager {
|
|||||||
if (weapon != null && !attacker.getObjectType().equals(mbEnums.GameObjectType.Mob)) {
|
if (weapon != null && !attacker.getObjectType().equals(mbEnums.GameObjectType.Mob)) {
|
||||||
//check if Out of Stamina
|
//check if Out of Stamina
|
||||||
if (attacker.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter)) {
|
if (attacker.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter)) {
|
||||||
if (attacker.getStamina() < (weapon.template.item_wt / 3f)) {
|
if (attacker.getStamina() < (weapon.template.cacheTemplate.getItemWt() / 3f)) {
|
||||||
//set auto attack job
|
//set auto attack job
|
||||||
setAutoAttackJob(attacker, slot, delay);
|
setAutoAttackJob(attacker, slot, delay);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
float stam = weapon.template.item_wt / 3f;
|
float stam = weapon.template.cacheTemplate.getItemWt() / 3f;
|
||||||
stam = (stam < 1) ? 1 : stam;
|
stam = (stam < 1) ? 1 : stam;
|
||||||
attacker.modifyStamina(-(stam), attacker, true);
|
attacker.modifyStamina(-(stam), attacker, true);
|
||||||
} else
|
} else
|
||||||
@@ -713,7 +714,7 @@ public enum CombatManager {
|
|||||||
// Mobs use their mobbase rune, players use their race rune.
|
// Mobs use their mobbase rune, players use their race rune.
|
||||||
|
|
||||||
int runeID;
|
int runeID;
|
||||||
ItemTemplate rune;
|
RuneTemplate rune;
|
||||||
int hand = slot.equals(mbEnums.EquipSlotType.LHELD) ? 2 : 1;
|
int hand = slot.equals(mbEnums.EquipSlotType.LHELD) ? 2 : 1;
|
||||||
|
|
||||||
switch (attacker.getObjectType()) {
|
switch (attacker.getObjectType()) {
|
||||||
@@ -727,18 +728,18 @@ public enum CombatManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
rune = ItemTemplate.templates.get(runeID);
|
rune = RuneTemplate._runes.get(runeID);
|
||||||
|
|
||||||
if (rune == null || rune.rune_natural_attacks.isEmpty())
|
if (rune == null || rune.rune_naturalattacks.isEmpty())
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
for (float[] attack : rune.rune_natural_attacks)
|
for (float[] attack : rune.rune_naturalattacks)
|
||||||
if (attack.length > 3 && (int) attack[3] == hand)
|
if (attack.length > 3 && (int) attack[3] == hand)
|
||||||
return attack;
|
return attack;
|
||||||
|
|
||||||
// No entry for this hand, fall back to the first natural attack
|
// No entry for this hand, fall back to the first natural attack
|
||||||
|
|
||||||
return rune.rune_natural_attacks.get(0);
|
return rune.rune_naturalattacks.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int calculatePetDamage(AbstractCharacter agent) {
|
public static int calculatePetDamage(AbstractCharacter agent) {
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ public enum ForgeManager implements Runnable {
|
|||||||
|
|
||||||
// Add gold and resource costs from template
|
// Add gold and resource costs from template
|
||||||
|
|
||||||
production_cost.put(mbEnums.ResourceType.GOLD, template.item_value);
|
production_cost.put(mbEnums.ResourceType.GOLD, template.cacheTemplate.getItemValue());
|
||||||
production_cost.putAll(template.item_resource_cost);
|
production_cost.putAll(template.item_resource_cost);
|
||||||
|
|
||||||
// Calculate cost of prefix and suffix
|
// Calculate cost of prefix and suffix
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ public enum GroupManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.template.item_type.equals(mbEnums.ItemType.GOLD)) //only split goldItem
|
if (!item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD)) //only split goldItem
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Group group = getGroup(pc);
|
Group group = getGroup(pc);
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ public enum ItemManager {
|
|||||||
|
|
||||||
public static boolean isTwoHanded(Item item) {
|
public static boolean isTwoHanded(Item item) {
|
||||||
|
|
||||||
if (!item.template.item_type.equals(mbEnums.ItemType.WEAPON))
|
if (!item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.WEAPON))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return item.template.item_eq_slots_and.contains(EnumSet.of(mbEnums.EquipSlotType.LHELD, mbEnums.EquipSlotType.RHELD));
|
return item.template.item_eq_slots_and.contains(EnumSet.of(mbEnums.EquipSlotType.LHELD, mbEnums.EquipSlotType.RHELD));
|
||||||
@@ -120,7 +120,7 @@ public enum ItemManager {
|
|||||||
|
|
||||||
public static boolean isTwoHanded(ItemTemplate template) {
|
public static boolean isTwoHanded(ItemTemplate template) {
|
||||||
|
|
||||||
if (!template.item_type.equals(mbEnums.ItemType.WEAPON))
|
if (!template.cacheTemplate.getItemType().equals(mbEnums.ItemType.WEAPON))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return template.item_eq_slots_and.contains(EnumSet.of(mbEnums.EquipSlotType.LHELD, mbEnums.EquipSlotType.RHELD));
|
return template.item_eq_slots_and.contains(EnumSet.of(mbEnums.EquipSlotType.LHELD, mbEnums.EquipSlotType.RHELD));
|
||||||
@@ -165,7 +165,7 @@ public enum ItemManager {
|
|||||||
(slot == mbEnums.EquipSlotType.RHELD && equipped.get(mbEnums.EquipSlotType.LHELD) != null)))
|
(slot == mbEnums.EquipSlotType.RHELD && equipped.get(mbEnums.EquipSlotType.LHELD) != null)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.WEAPON))
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.WEAPON))
|
||||||
if (equipped.get(slot) != null && equipped.get(slot).equals(item) == false)
|
if (equipped.get(slot) != null && equipped.get(slot).equals(item) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ public enum ItemManager {
|
|||||||
|
|
||||||
//players can't wear 0 value items.
|
//players can't wear 0 value items.
|
||||||
|
|
||||||
return item.template.item_value != 0 || Kit.IsNoobGear(item.templateID);
|
return item.template.cacheTemplate.getItemValue() != 0 || Kit.IsNoobGear(item.templateID);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ public enum LootManager {
|
|||||||
//lastly, check mobs inventory for godly or disc runes to send a server announcement
|
//lastly, check mobs inventory for godly or disc runes to send a server announcement
|
||||||
for (Item item : mob.getInventory()) {
|
for (Item item : mob.getInventory()) {
|
||||||
|
|
||||||
if ((item.templateID > 2499 && item.templateID <= 3050) || item.template.item_base_name.toLowerCase().contains("of the gods")) {
|
if ((item.templateID > 2499 && item.templateID <= 3050) || item.template.cacheTemplate.getItemBaseName().toLowerCase().contains("of the gods")) {
|
||||||
ChatSystemMsg chatMsg = new ChatSystemMsg(null, mob.getName() + " in " + mob.getParentZone().zoneName + " has found the " + item.template.item_base_name + ". Are you tough enough to take it?");
|
ChatSystemMsg chatMsg = new ChatSystemMsg(null, mob.getName() + " in " + mob.getParentZone().zoneName + " has found the " + item.template.cacheTemplate.getItemBaseName() + ". Are you tough enough to take it?");
|
||||||
chatMsg.setMessageType(10);
|
chatMsg.setMessageType(10);
|
||||||
chatMsg.setChannel(mbEnums.ChatChannelType.SYSTEM.getChannelID());
|
chatMsg.setChannel(mbEnums.ChatChannelType.SYSTEM.getChannelID());
|
||||||
DispatchManager.dispatchMsgToAll(chatMsg);
|
DispatchManager.dispatchMsgToAll(chatMsg);
|
||||||
@@ -179,7 +179,7 @@ public enum LootManager {
|
|||||||
if (itemUUID == 0)
|
if (itemUUID == 0)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (ItemTemplate.templates.get(itemUUID).item_type.equals(mbEnums.ItemType.RESOURCE)) {
|
if (ItemTemplate.templates.get(itemUUID).cacheTemplate.getItemType().equals(mbEnums.ItemType.RESOURCE)) {
|
||||||
int amount = ThreadLocalRandom.current().nextInt(tableRow.minSpawn, tableRow.maxSpawn + 1);
|
int amount = ThreadLocalRandom.current().nextInt(tableRow.minSpawn, tableRow.maxSpawn + 1);
|
||||||
return new MobLoot(mob, ItemTemplate.templates.get(itemUUID), amount, false);
|
return new MobLoot(mob, ItemTemplate.templates.get(itemUUID), amount, false);
|
||||||
}
|
}
|
||||||
@@ -429,7 +429,7 @@ public enum LootManager {
|
|||||||
|
|
||||||
//early exit if the inventory of the player will not old the item
|
//early exit if the inventory of the player will not old the item
|
||||||
|
|
||||||
if (itemMan.hasRoomInventory(winnings.template.item_wt) == false) {
|
if (itemMan.hasRoomInventory(winnings.template.cacheTemplate.getItemWt()) == false) {
|
||||||
ErrorPopupMsg.sendErrorPopup(playerCharacter, 21);
|
ErrorPopupMsg.sendErrorPopup(playerCharacter, 21);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ public enum NPCManager {
|
|||||||
//has main hand weapon
|
//has main hand weapon
|
||||||
Item weapon = guard.charItemManager.equipped.get(mbEnums.EquipSlotType.RHELD);
|
Item weapon = guard.charItemManager.equipped.get(mbEnums.EquipSlotType.RHELD);
|
||||||
|
|
||||||
if (weapon.template.item_primary_attr.equals(mbEnums.AttributeType.Strength))
|
if (engine.parsers.objects.ItemTemplate._items.get(weapon.templateID).item_primary_attr == mbEnums.AttributeType.Strength)
|
||||||
primaryStat = guard.getStatStrCurrent();
|
primaryStat = guard.getStatStrCurrent();
|
||||||
else
|
else
|
||||||
primaryStat = guard.getStatDexCurrent();
|
primaryStat = guard.getStatDexCurrent();
|
||||||
@@ -327,7 +327,7 @@ public enum NPCManager {
|
|||||||
} else if (guard.charItemManager.equipped.containsKey(mbEnums.EquipSlotType.LHELD) && !ItemManager.isShield(guard.charItemManager.equipped.get(mbEnums.EquipSlotType.LHELD).template)) {
|
} else if (guard.charItemManager.equipped.containsKey(mbEnums.EquipSlotType.LHELD) && !ItemManager.isShield(guard.charItemManager.equipped.get(mbEnums.EquipSlotType.LHELD).template)) {
|
||||||
//has off hand weapon
|
//has off hand weapon
|
||||||
Item weapon = guard.charItemManager.equipped.get(mbEnums.EquipSlotType.LHELD);
|
Item weapon = guard.charItemManager.equipped.get(mbEnums.EquipSlotType.LHELD);
|
||||||
if (weapon.template.item_primary_attr.equals(mbEnums.AttributeType.Strength))
|
if (engine.parsers.objects.ItemTemplate._items.get(weapon.templateID).item_primary_attr == mbEnums.AttributeType.Strength)
|
||||||
primaryStat = guard.getStatStrCurrent();
|
primaryStat = guard.getStatStrCurrent();
|
||||||
else
|
else
|
||||||
primaryStat = guard.getStatDexCurrent();
|
primaryStat = guard.getStatDexCurrent();
|
||||||
@@ -352,8 +352,8 @@ public enum NPCManager {
|
|||||||
int baseDef = guard.mobBase.getDefenseRating();
|
int baseDef = guard.mobBase.getDefenseRating();
|
||||||
int armorDefense = 0;
|
int armorDefense = 0;
|
||||||
for (Item equipped : guard.charItemManager.equipped.values())
|
for (Item equipped : guard.charItemManager.equipped.values())
|
||||||
if (equipped.template.item_type.equals(mbEnums.ItemType.ARMOR) || ItemManager.isShield(equipped.template))
|
if (equipped.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.ARMOR) || ItemManager.isShield(equipped.template))
|
||||||
armorDefense += equipped.template.item_defense_rating;
|
armorDefense += engine.parsers.objects.ItemTemplate._items.get(equipped.templateID).item_defense_rating;
|
||||||
guard.defenseRating = dexterity + baseDef + armorDefense;
|
guard.defenseRating = dexterity + baseDef + armorDefense;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -442,7 +442,7 @@ public enum NPCManager {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (Item equipped : mob.charItemManager.equipped.values()) {
|
for (Item equipped : mob.charItemManager.equipped.values()) {
|
||||||
if (equipped.template.item_type.equals(mbEnums.ItemType.ARMOR)) {
|
if (equipped.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.ARMOR)) {
|
||||||
mob.resists.setResist(mbEnums.DamageType.SLASHING, mob.resists.getResist(mbEnums.DamageType.SLASHING, 0) + equipped.template.combat_attack_resist.get("SLASHING"));
|
mob.resists.setResist(mbEnums.DamageType.SLASHING, mob.resists.getResist(mbEnums.DamageType.SLASHING, 0) + equipped.template.combat_attack_resist.get("SLASHING"));
|
||||||
mob.resists.setResist(mbEnums.DamageType.CRUSHING, mob.resists.getResist(mbEnums.DamageType.CRUSHING, 0) + equipped.template.combat_attack_resist.get("CRUSHING"));
|
mob.resists.setResist(mbEnums.DamageType.CRUSHING, mob.resists.getResist(mbEnums.DamageType.CRUSHING, 0) + equipped.template.combat_attack_resist.get("CRUSHING"));
|
||||||
mob.resists.setResist(mbEnums.DamageType.PIERCING, mob.resists.getResist(mbEnums.DamageType.PIERCING, 0) + equipped.template.combat_attack_resist.get("PIERCING"));
|
mob.resists.setResist(mbEnums.DamageType.PIERCING, mob.resists.getResist(mbEnums.DamageType.PIERCING, 0) + equipped.template.combat_attack_resist.get("PIERCING"));
|
||||||
@@ -547,8 +547,8 @@ public enum NPCManager {
|
|||||||
if (template == null)
|
if (template == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (template.item_bane_rank > 0)
|
if (template.cacheTemplate.getItemBaneRank() > 0)
|
||||||
return (long) (template.item_bane_rank * 60 * 60 * 3 * 1000 * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue()));
|
return (long) (template.cacheTemplate.getItemBaneRank() * 60 * 60 * 3 * 1000 * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue()));
|
||||||
|
|
||||||
if (vendor.building == null)
|
if (vendor.building == null)
|
||||||
return 600;
|
return 600;
|
||||||
|
|||||||
@@ -2255,12 +2255,12 @@ public enum PowersManager {
|
|||||||
if (pb.targetItem())
|
if (pb.targetItem())
|
||||||
return true;
|
return true;
|
||||||
// TODO add these checks later
|
// TODO add these checks later
|
||||||
else if (pb.targetArmor() && item.template.item_type.equals(ItemType.ARMOR))
|
else if (pb.targetArmor() && item.template.cacheTemplate.getItemType().equals(ItemType.ARMOR))
|
||||||
return true;
|
return true;
|
||||||
else if (pb.targetJewelry() && item.template.item_type.equals(ItemType.JEWELRY))
|
else if (pb.targetJewelry() && item.template.cacheTemplate.getItemType().equals(ItemType.JEWELRY))
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return pb.targetWeapon() && item.template.item_type.equals(ItemType.WEAPON);
|
return pb.targetWeapon() && item.template.cacheTemplate.getItemType().equals(ItemType.WEAPON);
|
||||||
} // How did we get here? all valid targets have been covered
|
} // How did we get here? all valid targets have been covered
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public class WorkOrder implements Delayed {
|
|||||||
if (workOrder.vendor.getBuilding() == null)
|
if (workOrder.vendor.getBuilding() == null)
|
||||||
return 58; //58: The formula is beyond the means of this facility
|
return 58; //58: The formula is beyond the means of this facility
|
||||||
|
|
||||||
if (!workOrder.vendor.charItemManager.hasRoomInventory(template.item_wt))
|
if (!workOrder.vendor.charItemManager.hasRoomInventory(template.cacheTemplate.getItemWt()))
|
||||||
return 30; //30: That person cannot carry that item
|
return 30; //30: That person cannot carry that item
|
||||||
|
|
||||||
if ((workOrder.prefixToken != 0 || workOrder.suffixToken != 0) &&
|
if ((workOrder.prefixToken != 0 || workOrder.suffixToken != 0) &&
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler {
|
|||||||
// Filter hirelings by slot type
|
// Filter hirelings by slot type
|
||||||
|
|
||||||
for (Item hirelings : player.getInventory()) {
|
for (Item hirelings : player.getInventory()) {
|
||||||
if (hirelings.template.item_type.equals(ItemType.EMPLOYMENTCONTRACT)) {
|
if (hirelings.template.cacheTemplate.getItemType().equals(ItemType.EMPLOYMENTCONTRACT)) {
|
||||||
|
|
||||||
contract = DbManager.ContractQueries.GET_CONTRACT(hirelings.templateID);
|
contract = DbManager.ContractQueries.GET_CONTRACT(hirelings.templateID);
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class AddItemToTradeWindowMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (!item.validForInventory(source.getClientConnection(), source, source.charItemManager))
|
if (!item.validForInventory(source.getClientConnection(), source, source.charItemManager))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!tradingWith.hasRoomTrade(item.template.item_wt)) {
|
if (!tradingWith.hasRoomTrade(item.template.cacheTemplate.getItemWt())) {
|
||||||
dispatch = Dispatch.borrow(source, msg);
|
dispatch = Dispatch.borrow(source, msg);
|
||||||
DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.PRIMARY);
|
DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.PRIMARY);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import engine.net.client.msg.guild.GuildInfoMsg;
|
|||||||
import engine.objects.Guild;
|
import engine.objects.Guild;
|
||||||
import engine.objects.Item;
|
import engine.objects.Item;
|
||||||
import engine.objects.PlayerCharacter;
|
import engine.objects.PlayerCharacter;
|
||||||
|
import engine.parsers.objects.DeedTemplate;
|
||||||
import engine.util.StringUtils;
|
import engine.util.StringUtils;
|
||||||
|
|
||||||
public class GuildCreationFinalizeHandler extends AbstractClientMsgHandler {
|
public class GuildCreationFinalizeHandler extends AbstractClientMsgHandler {
|
||||||
@@ -42,6 +43,7 @@ public class GuildCreationFinalizeHandler extends AbstractClientMsgHandler {
|
|||||||
Guild playerGuild;
|
Guild playerGuild;
|
||||||
|
|
||||||
Item charter;
|
Item charter;
|
||||||
|
DeedTemplate charterDeed;
|
||||||
Dispatch dispatch;
|
Dispatch dispatch;
|
||||||
|
|
||||||
msg = (GuildCreationFinalizeMsg) baseMsg;
|
msg = (GuildCreationFinalizeMsg) baseMsg;
|
||||||
@@ -65,7 +67,9 @@ public class GuildCreationFinalizeHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
// Item must be a valid charterType (type 10 in db)
|
// Item must be a valid charterType (type 10 in db)
|
||||||
|
|
||||||
if (charter == null || (charter.template.item_type.equals(ItemType.CHARTER) == false)) {
|
charterDeed = DeedTemplate._deeds.get(charter.templateID);
|
||||||
|
|
||||||
|
if (charterDeed == null || (charterDeed.item_type.equals(ItemType.CHARTER) == false)) {
|
||||||
ErrorPopupMsg.sendErrorPopup(player, GuildManager.NO_CHARTER_FOUND);
|
ErrorPopupMsg.sendErrorPopup(player, GuildManager.NO_CHARTER_FOUND);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -238,10 +238,10 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (targetItem == null)
|
if (targetItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (targetItem.template.item_type.equals(ItemType.GOLD))
|
if (targetItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!vendor.charItemManager.hasRoomInventory(targetItem.template.item_wt)) {
|
if (!vendor.charItemManager.hasRoomInventory(targetItem.template.cacheTemplate.getItemWt())) {
|
||||||
ErrorPopupMsg.sendErrorPopup(player, 21);
|
ErrorPopupMsg.sendErrorPopup(player, 21);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -319,7 +319,7 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (targetItem == null)
|
if (targetItem == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (targetItem.template.item_type.equals(ItemType.GOLD))
|
if (targetItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!vendor.charItemManager.doesCharOwnThisItem(targetItem.getObjectUUID()))
|
if (!vendor.charItemManager.doesCharOwnThisItem(targetItem.getObjectUUID()))
|
||||||
@@ -328,14 +328,14 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (!vendor.charItemManager.inventoryContains(targetItem))
|
if (!vendor.charItemManager.inventoryContains(targetItem))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
itemValue = targetItem.template.item_value;
|
itemValue = targetItem.template.cacheTemplate.getItemValue();
|
||||||
|
|
||||||
if (vendor.getBuilding().getStrongboxValue() + itemValue > vendor.getBuilding().getMaxGold()) {
|
if (vendor.getBuilding().getStrongboxValue() + itemValue > vendor.getBuilding().getMaxGold()) {
|
||||||
ErrorPopupMsg.sendErrorPopup(player, 201);
|
ErrorPopupMsg.sendErrorPopup(player, 201);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (targetItem.template.item_type) {
|
switch (targetItem.template.cacheTemplate.getItemType()) {
|
||||||
case EMPLOYMENTCONTRACT:
|
case EMPLOYMENTCONTRACT:
|
||||||
case CHARTER:
|
case CHARTER:
|
||||||
case DEED:
|
case DEED:
|
||||||
@@ -465,13 +465,13 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (targetItem == null)
|
if (targetItem == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (targetItem.template.item_type.equals(ItemType.GOLD))
|
if (targetItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!vendor.charItemManager.inventoryContains(targetItem))
|
if (!vendor.charItemManager.inventoryContains(targetItem))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!player.charItemManager.hasRoomInventory(targetItem.template.item_wt))
|
if (!player.charItemManager.hasRoomInventory(targetItem.template.cacheTemplate.getItemWt()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
player.charItemManager.buyFromNPC(targetItem, vendor);
|
player.charItemManager.buyFromNPC(targetItem, vendor);
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ public class LootMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (itemRet == null)
|
if (itemRet == null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD)) {
|
||||||
// this is done to prevent the temporary goldItem item
|
// this is done to prevent the temporary goldItem item
|
||||||
// (from the mob) from appearing in player's inventory.
|
// (from the mob) from appearing in player's inventory.
|
||||||
// It also updates the goldItem quantity display
|
// It also updates the goldItem quantity display
|
||||||
@@ -187,7 +187,7 @@ public class LootMsgHandler extends AbstractClientMsgHandler {
|
|||||||
//TODO send group loot message if player is grouped and visible
|
//TODO send group loot message if player is grouped and visible
|
||||||
Group group = GroupManager.getGroup(player);
|
Group group = GroupManager.getGroup(player);
|
||||||
|
|
||||||
if (group != null && group.getSplitGold() && (item.template.item_type.equals(mbEnums.ItemType.GOLD) == false)) {
|
if (group != null && group.getSplitGold() && (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD) == false)) {
|
||||||
String name = item.getName();
|
String name = item.getName();
|
||||||
String text = player.getFirstName() + " has looted " + name + '.';
|
String text = player.getFirstName() + " has looted " + name + '.';
|
||||||
ChatManager.chatGroupInfoCanSee(player, text);
|
ChatManager.chatGroupInfoCanSee(player, text);
|
||||||
@@ -202,7 +202,7 @@ public class LootMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (itemRet == null)
|
if (itemRet == null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD)) {
|
||||||
// this is done to prevent the temporary goldItem item
|
// this is done to prevent the temporary goldItem item
|
||||||
// (from the mob) from appearing in player's inventory.
|
// (from the mob) from appearing in player's inventory.
|
||||||
// It also updates the goldItem quantity display
|
// It also updates the goldItem quantity display
|
||||||
@@ -241,7 +241,7 @@ public class LootMsgHandler extends AbstractClientMsgHandler {
|
|||||||
//TODO send group loot message if player is grouped and visible
|
//TODO send group loot message if player is grouped and visible
|
||||||
Group group = GroupManager.getGroup(player);
|
Group group = GroupManager.getGroup(player);
|
||||||
|
|
||||||
if (group != null && group.getSplitGold() && (item.template.item_type.equals(mbEnums.ItemType.GOLD) == false)) {
|
if (group != null && group.getSplitGold() && (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD) == false)) {
|
||||||
String name = item.getName();
|
String name = item.getName();
|
||||||
String text = player.getFirstName() + " has looted " + name + '.';
|
String text = player.getFirstName() + " has looted " + name + '.';
|
||||||
ChatManager.chatGroupInfoCanSee(player, text);
|
ChatManager.chatGroupInfoCanSee(player, text);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import engine.net.Dispatch;
|
|||||||
import engine.net.client.ClientConnection;
|
import engine.net.client.ClientConnection;
|
||||||
import engine.net.client.msg.*;
|
import engine.net.client.msg.*;
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
|
import engine.parsers.objects.DeedTemplate;
|
||||||
import engine.powers.PowersBase;
|
import engine.powers.PowersBase;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -78,7 +79,7 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
int uuid = item.templateID;
|
int uuid = item.templateID;
|
||||||
|
|
||||||
switch (item.template.item_type) {
|
switch (item.template.cacheTemplate.getItemType()) {
|
||||||
|
|
||||||
case DEED: //buildings
|
case DEED: //buildings
|
||||||
//Call add building screen here, ib.getUseID() get's building ID
|
//Call add building screen here, ib.getUseID() get's building ID
|
||||||
@@ -99,7 +100,7 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
pam.setX(loc.getX() + 64); //offset grid from tol
|
pam.setX(loc.getX() + 64); //offset grid from tol
|
||||||
pam.setY(loc.getY());
|
pam.setY(loc.getY());
|
||||||
pam.setZ(loc.getZ() + 64); //offset grid from tol
|
pam.setZ(loc.getZ() + 64); //offset grid from tol
|
||||||
pam.addPlacementInfo(item.template.deed_structure_id);
|
pam.addPlacementInfo(DeedTemplate._deeds.get(item.templateID).deed_structure_id);
|
||||||
|
|
||||||
dispatch = Dispatch.borrow(player, pam);
|
dispatch = Dispatch.borrow(player, pam);
|
||||||
DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);
|
DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);
|
||||||
@@ -187,14 +188,14 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (uuid > 680069 && uuid < 680074) //Handle Charter, Deed, Petition, Warrant here
|
if (uuid > 680069 && uuid < 680074) //Handle Charter, Deed, Petition, Warrant here
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (item.template.item_bane_rank > 0) {
|
if (item.template.cacheTemplate.getItemBaneRank() > 0) {
|
||||||
|
|
||||||
// Only one banestone at a time
|
// Only one banestone at a time
|
||||||
|
|
||||||
lock.writeLock().lock();
|
lock.writeLock().lock();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (Bane.summonBanestone(player, origin, item.template.item_bane_rank) == true)
|
if (Bane.summonBanestone(player, origin, item.template.cacheTemplate.getItemBaneRank()) == true)
|
||||||
itemMan.consume(item);
|
itemMan.consume(item);
|
||||||
} finally {
|
} finally {
|
||||||
lock.writeLock().unlock();
|
lock.writeLock().unlock();
|
||||||
@@ -225,7 +226,7 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
// Bypass for waterbuckets
|
// Bypass for waterbuckets
|
||||||
|
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.BUCKET)) {
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.BUCKET)) {
|
||||||
|
|
||||||
// test for valid target type
|
// test for valid target type
|
||||||
if (target.getObjectType() == mbEnums.GameObjectType.PlayerCharacter)
|
if (target.getObjectType() == mbEnums.GameObjectType.PlayerCharacter)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import engine.net.client.msg.ErrorPopupMsg;
|
|||||||
import engine.net.client.msg.PlaceAssetMsg;
|
import engine.net.client.msg.PlaceAssetMsg;
|
||||||
import engine.net.client.msg.PlaceAssetMsg.PlacementInfo;
|
import engine.net.client.msg.PlaceAssetMsg.PlacementInfo;
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
|
import engine.parsers.objects.DeedTemplate;
|
||||||
import engine.server.MBServerStatics;
|
import engine.server.MBServerStatics;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
@@ -356,8 +357,8 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
|||||||
Item contract = null;
|
Item contract = null;
|
||||||
|
|
||||||
for (Item inventoryItem : playerCharacter.getInventory()) {
|
for (Item inventoryItem : playerCharacter.getInventory()) {
|
||||||
if (inventoryItem.template.item_type.equals(ItemType.DEED) &&
|
if (inventoryItem.template.cacheTemplate.getItemType().equals(ItemType.DEED) &&
|
||||||
inventoryItem.template.deed_structure_id == buildingList.getBlueprintUUID()) {
|
DeedTemplate._deeds.get(inventoryItem.templateID).deed_structure_id == buildingList.getBlueprintUUID()) {
|
||||||
contract = inventoryItem;
|
contract = inventoryItem;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public class RepairMsgHandler extends AbstractClientMsgHandler {
|
|||||||
//make sure item is damaged and not destroyed
|
//make sure item is damaged and not destroyed
|
||||||
|
|
||||||
short dur = (short) toRepair.combat_health_current;
|
short dur = (short) toRepair.combat_health_current;
|
||||||
short max = (short) toRepair.template.combat_health_full;
|
short max = (short) toRepair.template.cacheTemplate.getCombatHealthFull();
|
||||||
|
|
||||||
//account for durability modifications
|
//account for durability modifications
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public class TransferItemFromBankMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return true;
|
return true;
|
||||||
;
|
;
|
||||||
|
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD)) {
|
||||||
|
|
||||||
if (!itemManager.moveGoldToInventory(item, msg.getNumItems()))
|
if (!itemManager.moveGoldToInventory(item, msg.getNumItems()))
|
||||||
return true;
|
return true;
|
||||||
@@ -85,7 +85,7 @@ public class TransferItemFromBankMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
// Not gold, process update here
|
// Not gold, process update here
|
||||||
|
|
||||||
if (!itemManager.hasRoomInventory(item.template.item_wt))
|
if (!itemManager.hasRoomInventory(item.template.cacheTemplate.getItemWt()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (itemManager.moveItemToInventory(item) == false)
|
if (itemManager.moveItemToInventory(item) == false)
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class TransferItemToBankMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (item.containerType == mbEnums.ItemContainerType.INVENTORY && itemManager.isBankOpen())
|
if (item.containerType == mbEnums.ItemContainerType.INVENTORY && itemManager.isBankOpen())
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD)) {
|
||||||
if (!itemManager.moveGoldToBank(item, msg.getNumItems()))
|
if (!itemManager.moveGoldToBank(item, msg.getNumItems()))
|
||||||
return true;
|
return true;
|
||||||
UpdateGoldMsg goldMes = new UpdateGoldMsg(player);
|
UpdateGoldMsg goldMes = new UpdateGoldMsg(player);
|
||||||
@@ -76,7 +76,7 @@ public class TransferItemToBankMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (!itemManager.hasRoomBank(item.template.item_wt))
|
if (!itemManager.hasRoomBank(item.template.cacheTemplate.getItemWt()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!itemManager.moveItemToBank(item))
|
if (!itemManager.moveItemToBank(item))
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class VendorBuyMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (me.objectUUID == vendorBuyMsg.getItemID()) {
|
if (me.objectUUID == vendorBuyMsg.getItemID()) {
|
||||||
|
|
||||||
//test room available for item
|
//test room available for item
|
||||||
if (!itemMan.hasRoomInventory(me.template.item_wt))
|
if (!itemMan.hasRoomInventory(me.template.cacheTemplate.getItemWt()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
int cost = me.getValue();
|
int cost = me.getValue();
|
||||||
@@ -148,10 +148,10 @@ public class VendorBuyMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
//test room available for item
|
//test room available for item
|
||||||
|
|
||||||
if (!itemMan.hasRoomInventory(vendorItem.template.item_wt))
|
if (!itemMan.hasRoomInventory(vendorItem.template.cacheTemplate.getItemWt()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
int cost = vendorItem.template.item_value;
|
int cost = vendorItem.template.cacheTemplate.getItemValue();
|
||||||
|
|
||||||
if (vendorItem.flags.contains(mbEnums.ItemFlags.Identified) || vendorItem.isCustomValue())
|
if (vendorItem.flags.contains(mbEnums.ItemFlags.Identified) || vendorItem.isCustomValue())
|
||||||
cost = vendorItem.magicValue;
|
cost = vendorItem.magicValue;
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public class VendorSellMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (npc.getParentZone() != null && npc.getParentZone().playerCityUUID != 0)
|
if (npc.getParentZone() != null && npc.getParentZone().playerCityUUID != 0)
|
||||||
if (!npc.charItemManager.hasRoomInventory(sell.template.item_wt)) {
|
if (!npc.charItemManager.hasRoomInventory(sell.template.cacheTemplate.getItemWt())) {
|
||||||
ErrorPopupMsg.sendErrorPopup(player, 21);
|
ErrorPopupMsg.sendErrorPopup(player, 21);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ public class VendorSellMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
//get goldItem cost to sell
|
//get goldItem cost to sell
|
||||||
|
|
||||||
cost = (int) (sell.template.item_value * (sell.combat_health_current / sell.template.combat_health_full));
|
cost = (int) (sell.template.cacheTemplate.getItemValue() * (sell.combat_health_current / sell.template.cacheTemplate.getCombatHealthFull()));
|
||||||
|
|
||||||
float bargain = player.getBargain();
|
float bargain = player.getBargain();
|
||||||
float profit = npc.getBuyPercent(player) + bargain;
|
float profit = npc.getBuyPercent(player) + bargain;
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ public class ManageNPCMsg extends ClientNetMsg {
|
|||||||
writer.put((byte) 1);
|
writer.put((byte) 1);
|
||||||
writer.putInt(0);
|
writer.putInt(0);
|
||||||
writer.putInt(templateID); //itemID
|
writer.putInt(templateID); //itemID
|
||||||
writer.putInt(template.item_value);
|
writer.putInt(template.cacheTemplate.getItemValue());
|
||||||
writer.putInt(600);
|
writer.putInt(600);
|
||||||
writer.put((byte) 1);
|
writer.put((byte) 1);
|
||||||
writer.put((byte) template.modTable);
|
writer.put((byte) template.modTable);
|
||||||
@@ -444,7 +444,7 @@ public class ManageNPCMsg extends ClientNetMsg {
|
|||||||
|
|
||||||
writer.putInt(0);
|
writer.putInt(0);
|
||||||
writer.putInt(item.templateID);
|
writer.putInt(item.templateID);
|
||||||
writer.putInt(item.template.item_value);
|
writer.putInt(item.template.cacheTemplate.getItemValue());
|
||||||
|
|
||||||
long timeLife = item.getDateToUpgrade() - System.currentTimeMillis();
|
long timeLife = item.getDateToUpgrade() - System.currentTimeMillis();
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class UpdateInventoryMsg extends ClientNetMsg {
|
|||||||
|
|
||||||
|
|
||||||
for (Item item : list) {
|
for (Item item : list) {
|
||||||
if (item.template.item_type.equals(ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
if (item.getNumOfItems() == 0)
|
if (item.getNumOfItems() == 0)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import engine.net.ByteBufferWriter;
|
|||||||
import engine.net.Protocol;
|
import engine.net.Protocol;
|
||||||
import engine.objects.Item;
|
import engine.objects.Item;
|
||||||
import engine.objects.PlayerCharacter;
|
import engine.objects.PlayerCharacter;
|
||||||
|
import engine.parsers.objects.DeedTemplate;
|
||||||
|
|
||||||
|
|
||||||
public class UseCharterMsg extends ClientNetMsg {
|
public class UseCharterMsg extends ClientNetMsg {
|
||||||
@@ -61,9 +62,13 @@ public class UseCharterMsg extends ClientNetMsg {
|
|||||||
|
|
||||||
public void configure() {
|
public void configure() {
|
||||||
|
|
||||||
|
DeedTemplate charterDeed;
|
||||||
|
|
||||||
if (close) {
|
if (close) {
|
||||||
for (Item i : player.getInventory()) {
|
for (Item i : player.getInventory()) {
|
||||||
if (i.template.item_type.equals(ItemType.CHARTER)) {
|
charterDeed = DeedTemplate._deeds.get(i.templateID);
|
||||||
|
|
||||||
|
if (charterDeed != null && charterDeed.item_type.equals(ItemType.CHARTER)) {
|
||||||
charterUUID = i.getObjectUUID();
|
charterUUID = i.getObjectUUID();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ public class VendorBuyWindowMsg extends ClientNetMsg {
|
|||||||
for (Item item : inventory) {
|
for (Item item : inventory) {
|
||||||
if (item.getOwnerID() != ownerID)
|
if (item.getOwnerID() != ownerID)
|
||||||
continue;
|
continue;
|
||||||
if (item.template.item_type.equals(ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
if (item.getNumOfItems() == 0)
|
if (item.getNumOfItems() == 0)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import engine.net.Dispatch;
|
|||||||
import engine.net.client.ClientConnection;
|
import engine.net.client.ClientConnection;
|
||||||
import engine.net.client.msg.ApplyRuneMsg;
|
import engine.net.client.msg.ApplyRuneMsg;
|
||||||
import engine.net.client.msg.UpdateStateMsg;
|
import engine.net.client.msg.UpdateStateMsg;
|
||||||
|
import engine.parsers.objects.RuneTemplate;
|
||||||
import engine.powers.EffectsBase;
|
import engine.powers.EffectsBase;
|
||||||
import engine.powers.PowersBase;
|
import engine.powers.PowersBase;
|
||||||
import engine.powers.effectmodifiers.AbstractEffectModifier;
|
import engine.powers.effectmodifiers.AbstractEffectModifier;
|
||||||
@@ -656,7 +657,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
|||||||
AssignDamageAtrForPlayers(abstractCharacter, equipped.get(EquipSlotType.LHELD), false, equipped.get(EquipSlotType.LHELD));
|
AssignDamageAtrForPlayers(abstractCharacter, equipped.get(EquipSlotType.LHELD), false, equipped.get(EquipSlotType.LHELD));
|
||||||
if (abstractCharacter.getObjectType().equals(GameObjectType.Mob)) {
|
if (abstractCharacter.getObjectType().equals(GameObjectType.Mob)) {
|
||||||
Mob mob = (Mob) abstractCharacter;
|
Mob mob = (Mob) abstractCharacter;
|
||||||
ItemTemplate rune = ItemTemplate.templates.get(mob.loadID);
|
RuneTemplate rune = RuneTemplate._runes.get(mob.loadID);
|
||||||
float minDamage = mob.mobBase.getDamageMin();
|
float minDamage = mob.mobBase.getDamageMin();
|
||||||
float maxDamage = mob.mobBase.getDamageMax();
|
float maxDamage = mob.mobBase.getDamageMax();
|
||||||
int attackRating = mob.mobBase.getAttackRating();
|
int attackRating = mob.mobBase.getAttackRating();
|
||||||
@@ -700,7 +701,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
|||||||
|
|
||||||
if (itemTemplate == null)
|
if (itemTemplate == null)
|
||||||
noWeapon = true;
|
noWeapon = true;
|
||||||
else if (!weapon.template.item_type.equals(ItemType.WEAPON)) {
|
else if (!weapon.template.cacheTemplate.getItemType().equals(ItemType.WEAPON)) {
|
||||||
defaultAtrAndDamage(abstractCharacter, mainHand);
|
defaultAtrAndDamage(abstractCharacter, mainHand);
|
||||||
return;
|
return;
|
||||||
} else
|
} else
|
||||||
@@ -717,7 +718,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
|||||||
if (noWeapon) {
|
if (noWeapon) {
|
||||||
if (mainHand) {
|
if (mainHand) {
|
||||||
Item off = abstractCharacter.charItemManager.getEquipped().get(EquipSlotType.LHELD);
|
Item off = abstractCharacter.charItemManager.getEquipped().get(EquipSlotType.LHELD);
|
||||||
if (off != null && off.template != null && off.template.item_type.equals(ItemType.WEAPON))
|
if (off != null && off.template != null && off.template.cacheTemplate.getItemType().equals(ItemType.WEAPON))
|
||||||
abstractCharacter.rangeHandOne = 10 * (1 + (abstractCharacter.statStrBase / 600)); // Set
|
abstractCharacter.rangeHandOne = 10 * (1 + (abstractCharacter.statStrBase / 600)); // Set
|
||||||
// to
|
// to
|
||||||
// no
|
// no
|
||||||
@@ -777,7 +778,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
|||||||
min = damages[0];
|
min = damages[0];
|
||||||
max = damages[1];
|
max = damages[1];
|
||||||
|
|
||||||
strBased = weaponTemplate.item_primary_attr.equals(AttributeType.Strength);
|
strBased = engine.parsers.objects.ItemTemplate._items.get(weapon.templateID).item_primary_attr == AttributeType.Strength;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (abstractCharacter.effects != null && abstractCharacter.effects.containsKey("DeathShroud"))
|
if (abstractCharacter.effects != null && abstractCharacter.effects.containsKey("DeathShroud"))
|
||||||
@@ -969,7 +970,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
|||||||
} else
|
} else
|
||||||
skillMod = blockSkill.getModifiedAmount();
|
skillMod = blockSkill.getModifiedAmount();
|
||||||
|
|
||||||
float def = template.item_defense_rating;
|
float def = engine.parsers.objects.ItemTemplate._items.get(shield.templateID).item_defense_rating;
|
||||||
|
|
||||||
//apply item defense bonuses
|
//apply item defense bonuses
|
||||||
|
|
||||||
@@ -996,24 +997,24 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
|||||||
if (template == null)
|
if (template == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!armor.template.item_type.equals(ItemType.ARMOR))
|
if (!armor.template.cacheTemplate.getItemType().equals(ItemType.ARMOR))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (armor.template.item_skill_used.isEmpty())
|
if (armor.template.item_skill_used.isEmpty())
|
||||||
return template.item_defense_rating;
|
return engine.parsers.objects.ItemTemplate._items.get(armor.templateID).item_defense_rating;
|
||||||
|
|
||||||
CharacterSkill armorSkill = abstractCharacter.skills.get(armor.template.item_skill_used);
|
CharacterSkill armorSkill = abstractCharacter.skills.get(armor.template.item_skill_used);
|
||||||
|
|
||||||
if (abstractCharacter.getObjectType().equals(GameObjectType.PlayerCharacter) && armorSkill == null) {
|
if (abstractCharacter.getObjectType().equals(GameObjectType.PlayerCharacter) && armorSkill == null) {
|
||||||
Logger.error("Player " + abstractCharacter.getObjectUUID()
|
Logger.error("Player " + abstractCharacter.getObjectUUID()
|
||||||
+ " has armor equipped without the nescessary skill to equip it");
|
+ " has armor equipped without the nescessary skill to equip it");
|
||||||
return template.item_defense_rating;
|
return engine.parsers.objects.ItemTemplate._items.get(armor.templateID).item_defense_rating;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (armorSkill == null)
|
if (armorSkill == null)
|
||||||
return template.item_defense_rating; // Mobiles do not have armor skills @TODO
|
return engine.parsers.objects.ItemTemplate._items.get(armor.templateID).item_defense_rating; // Mobiles do not have armor skills @TODO
|
||||||
|
|
||||||
float def = template.item_defense_rating;
|
float def = engine.parsers.objects.ItemTemplate._items.get(armor.templateID).item_defense_rating;
|
||||||
|
|
||||||
//apply item defense bonuses
|
//apply item defense bonuses
|
||||||
|
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ public class Account extends AbstractGameObject {
|
|||||||
this.vault = DbManager.ItemQueries.GET_ITEMS_FOR_ACCOUNT(this.getObjectUUID());
|
this.vault = DbManager.ItemQueries.GET_ITEMS_FOR_ACCOUNT(this.getObjectUUID());
|
||||||
|
|
||||||
for (Item item : this.vault) {
|
for (Item item : this.vault) {
|
||||||
if (item.template.item_type.equals(mbEnums.ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD)) {
|
||||||
this.vaultGold = item;
|
this.vaultGold = item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -216,7 +216,7 @@ public class Account extends AbstractGameObject {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (item.containerType == mbEnums.ItemContainerType.INVENTORY && player.charItemManager.isVaultOpen()) {
|
if (item.containerType == mbEnums.ItemContainerType.INVENTORY && player.charItemManager.isVaultOpen()) {
|
||||||
if (!player.charItemManager.hasRoomVault(item.template.item_wt)) {
|
if (!player.charItemManager.hasRoomVault(item.template.cacheTemplate.getItemWt())) {
|
||||||
ItemToVaultMsgHandler.forceTransferFromVaultToInventory(msg, origin, "There is no room in your vault.");
|
ItemToVaultMsgHandler.forceTransferFromVaultToInventory(msg, origin, "There is no room in your vault.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -262,7 +262,7 @@ public class Account extends AbstractGameObject {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (item.containerType == mbEnums.ItemContainerType.VAULT && itemManager.isVaultOpen()) {
|
if (item.containerType == mbEnums.ItemContainerType.VAULT && itemManager.isVaultOpen()) {
|
||||||
if (!itemManager.hasRoomInventory(item.template.item_wt)) {
|
if (!itemManager.hasRoomInventory(item.template.cacheTemplate.getItemWt())) {
|
||||||
ItemFromVaultMsgHandler.forceTransferFromInventoryToVault(msg, origin, "There is no room in your inventory.");
|
ItemFromVaultMsgHandler.forceTransferFromInventoryToVault(msg, origin, "There is no room in your inventory.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,19 +130,19 @@ public class CharacterItemManager {
|
|||||||
this.equipped.put(i.equipSlot, i);
|
this.equipped.put(i.equipSlot, i);
|
||||||
break;
|
break;
|
||||||
case BANK:
|
case BANK:
|
||||||
if (i.template.item_type.equals(ItemType.GOLD))
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
this.goldBank = i;
|
this.goldBank = i;
|
||||||
else if (this.bank.contains(i) == false)
|
else if (this.bank.contains(i) == false)
|
||||||
this.bank.add(i);
|
this.bank.add(i);
|
||||||
break;
|
break;
|
||||||
case INVENTORY:
|
case INVENTORY:
|
||||||
if (i.template.item_type.equals(ItemType.GOLD))
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
this.goldInventory = i;
|
this.goldInventory = i;
|
||||||
else if (this.inventory.contains(i) == false)
|
else if (this.inventory.contains(i) == false)
|
||||||
this.inventory.add(i);
|
this.inventory.add(i);
|
||||||
break;
|
break;
|
||||||
case VAULT:
|
case VAULT:
|
||||||
if (i.template.item_type.equals(ItemType.GOLD))
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
this.goldVault = i;
|
this.goldVault = i;
|
||||||
else if (this.vault.contains(i) == false)
|
else if (this.vault.contains(i) == false)
|
||||||
this.vault.add(i);
|
this.vault.add(i);
|
||||||
@@ -175,13 +175,13 @@ public class CharacterItemManager {
|
|||||||
this.equipped.put(i.equipSlot, i);
|
this.equipped.put(i.equipSlot, i);
|
||||||
break;
|
break;
|
||||||
case BANK:
|
case BANK:
|
||||||
if (i.template.item_type.equals(ItemType.GOLD))
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
this.goldBank = i;
|
this.goldBank = i;
|
||||||
else if (this.bank.contains(i) == false)
|
else if (this.bank.contains(i) == false)
|
||||||
this.bank.add(i);
|
this.bank.add(i);
|
||||||
break;
|
break;
|
||||||
case INVENTORY:
|
case INVENTORY:
|
||||||
if (i.template.item_type.equals(ItemType.GOLD))
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
this.goldInventory = i;
|
this.goldInventory = i;
|
||||||
else if (this.inventory.contains(i) == false)
|
else if (this.inventory.contains(i) == false)
|
||||||
this.inventory.add(i);
|
this.inventory.add(i);
|
||||||
@@ -511,7 +511,7 @@ public class CharacterItemManager {
|
|||||||
if (i == null)
|
if (i == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (i.template.item_type.equals(ItemType.GOLD)) {
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
if (this.getGoldInventory() != null) {
|
if (this.getGoldInventory() != null) {
|
||||||
if (i.getObjectUUID() == this.getGoldInventory().getObjectUUID())
|
if (i.getObjectUUID() == this.getGoldInventory().getObjectUUID())
|
||||||
this.goldInventory = null;
|
this.goldInventory = null;
|
||||||
@@ -541,7 +541,7 @@ public class CharacterItemManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private synchronized boolean junk(Item i, boolean updateInventory) {
|
private synchronized boolean junk(Item i, boolean updateInventory) {
|
||||||
if (i.template.item_type.equals(ItemType.GOLD)) {
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
if (this.getGoldInventory().getObjectUUID() == i.getObjectUUID())
|
if (this.getGoldInventory().getObjectUUID() == i.getObjectUUID())
|
||||||
if (DbManager.ItemQueries.UPDATE_GOLD(i, 0)) {
|
if (DbManager.ItemQueries.UPDATE_GOLD(i, 0)) {
|
||||||
this.getGoldInventory().setNumOfItems(0);
|
this.getGoldInventory().setNumOfItems(0);
|
||||||
@@ -596,7 +596,7 @@ public class CharacterItemManager {
|
|||||||
|
|
||||||
if (equippedContains(item)) {
|
if (equippedContains(item)) {
|
||||||
fromEquip = true;
|
fromEquip = true;
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
this.absCharacter.cancelOnUnEquip();
|
this.absCharacter.cancelOnUnEquip();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -814,7 +814,7 @@ public class CharacterItemManager {
|
|||||||
|
|
||||||
// This removes ingame item from inventory for loot.
|
// This removes ingame item from inventory for loot.
|
||||||
private synchronized boolean removeItemFromInventory(Item i) {
|
private synchronized boolean removeItemFromInventory(Item i) {
|
||||||
if (i.template.item_type.equals(ItemType.GOLD)) {
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
if (i.getObjectUUID() != this.getGoldInventory().getObjectUUID())
|
if (i.getObjectUUID() != this.getGoldInventory().getObjectUUID())
|
||||||
return false;
|
return false;
|
||||||
if (!DbManager.ItemQueries.UPDATE_GOLD(this.goldInventory, 0)) {
|
if (!DbManager.ItemQueries.UPDATE_GOLD(this.goldInventory, 0)) {
|
||||||
@@ -837,7 +837,7 @@ public class CharacterItemManager {
|
|||||||
|
|
||||||
// This adds item to inventory for loot. Validity checks already handled
|
// This adds item to inventory for loot. Validity checks already handled
|
||||||
public synchronized boolean addItemToInventory(Item i) {
|
public synchronized boolean addItemToInventory(Item i) {
|
||||||
if (i.template.item_type.equals(ItemType.GOLD))
|
if (i.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
if (this.absCharacter.getObjectType() == GameObjectType.Mob) {
|
if (this.absCharacter.getObjectType() == GameObjectType.Mob) {
|
||||||
if (this.goldInventory == null)
|
if (this.goldInventory == null)
|
||||||
loadGoldItems();
|
loadGoldItems();
|
||||||
@@ -856,7 +856,7 @@ public class CharacterItemManager {
|
|||||||
this.itemIDtoType.put(i.getObjectUUID(), i.getObjectType().ordinal());
|
this.itemIDtoType.put(i.getObjectUUID(), i.getObjectType().ordinal());
|
||||||
|
|
||||||
if (i.template != null)
|
if (i.template != null)
|
||||||
this.inventoryWeight += i.template.item_wt;
|
this.inventoryWeight += i.template.cacheTemplate.getItemWt();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1041,7 +1041,7 @@ public class CharacterItemManager {
|
|||||||
if (npc.getContractID() >= 1900 && npc.getContractID() <= 1906)
|
if (npc.getContractID() >= 1900 && npc.getContractID() <= 1906)
|
||||||
eatItem = true;
|
eatItem = true;
|
||||||
|
|
||||||
if (itemToSell.template.item_type.equals(ItemType.POTION))
|
if (itemToSell.template.cacheTemplate.getItemType().equals(ItemType.POTION))
|
||||||
eatItem = true;
|
eatItem = true;
|
||||||
|
|
||||||
if (eatItem) {
|
if (eatItem) {
|
||||||
@@ -1092,7 +1092,7 @@ public class CharacterItemManager {
|
|||||||
|
|
||||||
//test inventory is not full
|
//test inventory is not full
|
||||||
|
|
||||||
if (!hasRoomInventory(template.item_wt))
|
if (!hasRoomInventory(template.cacheTemplate.getItemWt()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!itemMan.inventory.contains(purchasedItem))
|
if (!itemMan.inventory.contains(purchasedItem))
|
||||||
@@ -1105,8 +1105,8 @@ public class CharacterItemManager {
|
|||||||
|
|
||||||
// Reset value
|
// Reset value
|
||||||
|
|
||||||
purchasedItem.value = (int) (purchasedItem.template.item_value * (purchasedItem.combat_health_current / purchasedItem.template.combat_health_full));
|
purchasedItem.value = (int) (purchasedItem.template.cacheTemplate.getItemValue() * (purchasedItem.combat_health_current / purchasedItem.template.cacheTemplate.getCombatHealthFull()));
|
||||||
purchasedItem.magicValue = purchasedItem.template.item_value + purchasedItem.calcMagicValue();
|
purchasedItem.magicValue = purchasedItem.template.cacheTemplate.getItemValue() + purchasedItem.calcMagicValue();
|
||||||
|
|
||||||
// db transfer successfully, remove from this character
|
// db transfer successfully, remove from this character
|
||||||
// skip this check if this is a mobLoot item (which is not in any inventory)
|
// skip this check if this is a mobLoot item (which is not in any inventory)
|
||||||
@@ -1184,9 +1184,9 @@ public class CharacterItemManager {
|
|||||||
synchronized (lockFirst) {
|
synchronized (lockFirst) {
|
||||||
synchronized (lockSecond) {
|
synchronized (lockSecond) {
|
||||||
// make sure current player has item in inventory
|
// make sure current player has item in inventory
|
||||||
if (lootItem.template.item_type.equals(ItemType.GOLD) && lootItem.getObjectUUID() != this.getGoldInventory().getObjectUUID() && !(this.absCharacter.getObjectType().equals(GameObjectType.Mob)))
|
if (lootItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD) && lootItem.getObjectUUID() != this.getGoldInventory().getObjectUUID() && !(this.absCharacter.getObjectType().equals(GameObjectType.Mob)))
|
||||||
return null;
|
return null;
|
||||||
else if (!this.inventory.contains(lootItem) && !this.equipped.containsValue(lootItem) && !lootItem.template.item_type.equals(ItemType.GOLD))
|
else if (!this.inventory.contains(lootItem) && !this.equipped.containsValue(lootItem) && !lootItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
// get weight of item
|
// get weight of item
|
||||||
@@ -1194,13 +1194,13 @@ public class CharacterItemManager {
|
|||||||
if (lootItem.template == null)
|
if (lootItem.template == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
int weight = lootItem.template.item_wt;
|
int weight = lootItem.template.cacheTemplate.getItemWt();
|
||||||
|
|
||||||
// make sure lootingPlayer has room for item
|
// make sure lootingPlayer has room for item
|
||||||
if (!lootItem.template.item_type.equals(ItemType.GOLD) && !looterItems.hasRoomInventory(weight))
|
if (!lootItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD) && !looterItems.hasRoomInventory(weight))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (lootItem.template.item_type.equals(ItemType.GOLD))
|
if (lootItem.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
if (amount != -1) { //from steal
|
if (amount != -1) { //from steal
|
||||||
int total = lootItem.getNumOfItems();
|
int total = lootItem.getNumOfItems();
|
||||||
amount = (amount > total) ? total : amount;
|
amount = (amount > total) ? total : amount;
|
||||||
@@ -1263,19 +1263,19 @@ public class CharacterItemManager {
|
|||||||
* Delegates
|
* Delegates
|
||||||
*/
|
*/
|
||||||
public synchronized boolean bankContains(Item item) {
|
public synchronized boolean bankContains(Item item) {
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return (this.getGoldBank() != null && this.goldBank.getObjectUUID() == item.getObjectUUID());
|
return (this.getGoldBank() != null && this.goldBank.getObjectUUID() == item.getObjectUUID());
|
||||||
return bank.contains(item);
|
return bank.contains(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized boolean inventoryContains(Item item) {
|
public synchronized boolean inventoryContains(Item item) {
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return (this.getGoldInventory() != null && this.goldInventory.getObjectUUID() == item.getObjectUUID());
|
return (this.getGoldInventory() != null && this.goldInventory.getObjectUUID() == item.getObjectUUID());
|
||||||
return inventory.contains(item);
|
return inventory.contains(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized boolean vaultContains(Item item) {
|
public synchronized boolean vaultContains(Item item) {
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return (this.getGoldVault() != null && this.goldVault.getObjectUUID() == item.getObjectUUID());
|
return (this.getGoldVault() != null && this.goldVault.getObjectUUID() == item.getObjectUUID());
|
||||||
return this.account.getVault().contains(item);
|
return this.account.getVault().contains(item);
|
||||||
}
|
}
|
||||||
@@ -1518,13 +1518,13 @@ public class CharacterItemManager {
|
|||||||
item.zeroItem();
|
item.zeroItem();
|
||||||
item.containerType = mbEnums.ItemContainerType.INVENTORY;
|
item.containerType = mbEnums.ItemContainerType.INVENTORY;
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
//only add gold item once
|
//only add gold item once
|
||||||
if (!corpse.hasGold())
|
if (!corpse.hasGold())
|
||||||
corpse.setHasGold(true);
|
corpse.setHasGold(true);
|
||||||
newInventory.add(item);
|
newInventory.add(item);
|
||||||
} else //item
|
} else //item
|
||||||
if (item.template.item_type.equals(ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
int amt = item.getNumOfItems();
|
int amt = item.getNumOfItems();
|
||||||
item.setNumOfItems(0);
|
item.setNumOfItems(0);
|
||||||
MobLoot ml = new MobLoot(this.absCharacter, amt);
|
MobLoot ml = new MobLoot(this.absCharacter, amt);
|
||||||
@@ -1676,7 +1676,7 @@ public class CharacterItemManager {
|
|||||||
if (item == null)
|
if (item == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
weight += item.template.item_wt;
|
weight += item.template.cacheTemplate.getItemWt();
|
||||||
}
|
}
|
||||||
return weight;
|
return weight;
|
||||||
}
|
}
|
||||||
@@ -1696,7 +1696,7 @@ public class CharacterItemManager {
|
|||||||
this.bankWeight = 0;
|
this.bankWeight = 0;
|
||||||
for (Item item : this.bank) {
|
for (Item item : this.bank) {
|
||||||
if (item.template != null)
|
if (item.template != null)
|
||||||
this.bankWeight += item.template.item_wt;
|
this.bankWeight += item.template.cacheTemplate.getItemWt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1707,7 +1707,7 @@ public class CharacterItemManager {
|
|||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
Item item = it.next();
|
Item item = it.next();
|
||||||
if (item.template != null)
|
if (item.template != null)
|
||||||
this.equipWeight += item.template.item_wt;
|
this.equipWeight += item.template.cacheTemplate.getItemWt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1715,7 +1715,7 @@ public class CharacterItemManager {
|
|||||||
this.inventoryWeight = 0;
|
this.inventoryWeight = 0;
|
||||||
for (Item item : this.inventory) {
|
for (Item item : this.inventory) {
|
||||||
if (item.template != null)
|
if (item.template != null)
|
||||||
this.inventoryWeight += item.template.item_wt;
|
this.inventoryWeight += item.template.cacheTemplate.getItemWt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1723,7 +1723,7 @@ public class CharacterItemManager {
|
|||||||
this.vaultWeight = 0;
|
this.vaultWeight = 0;
|
||||||
for (Item item : this.vault) {
|
for (Item item : this.vault) {
|
||||||
if (item.template != null)
|
if (item.template != null)
|
||||||
this.vaultWeight += item.template.item_wt;
|
this.vaultWeight += item.template.cacheTemplate.getItemWt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1932,7 +1932,7 @@ public class CharacterItemManager {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
//don't damage noob gear, hair or beards.
|
//don't damage noob gear, hair or beards.
|
||||||
if (item.template.combat_health_full == 0)
|
if (item.template.cacheTemplate.getCombatHealthFull() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!item.isCanDestroy())
|
if (!item.isCanDestroy())
|
||||||
|
|||||||
@@ -296,14 +296,14 @@ public class Corpse extends AbstractWorldObject {
|
|||||||
|
|
||||||
//get weight of item
|
//get weight of item
|
||||||
|
|
||||||
int weight = item.template.item_wt;
|
int weight = item.template.cacheTemplate.getItemWt();
|
||||||
|
|
||||||
//make sure looter has room for item
|
//make sure looter has room for item
|
||||||
if (item.template.item_type.equals(ItemType.GOLD) == false && !looterItems.hasRoomInventory(weight))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD) == false && !looterItems.hasRoomInventory(weight))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
//attempt to transfer item in db
|
//attempt to transfer item in db
|
||||||
if (item.template.item_type.equals(ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
if (!looterItems.moveGoldToInventory(item, item.getNumOfItems()))
|
if (!looterItems.moveGoldToInventory(item, item.getNumOfItems()))
|
||||||
return null;
|
return null;
|
||||||
} else if (!item.moveItemToInventory(looter))
|
} else if (!item.moveItemToInventory(looter))
|
||||||
|
|||||||
@@ -69,13 +69,13 @@ public class Item extends AbstractWorldObject {
|
|||||||
super();
|
super();
|
||||||
this.templateID = templateID;
|
this.templateID = templateID;
|
||||||
this.template = ItemTemplate.templates.get(templateID);
|
this.template = ItemTemplate.templates.get(templateID);
|
||||||
this.chargesRemaining = this.template.item_initial_charges;
|
this.chargesRemaining = this.template.cacheTemplate.getItemInitialCharges();
|
||||||
this.combat_health_current = this.template.combat_health_full;
|
this.combat_health_current = this.template.cacheTemplate.getCombatHealthFull();
|
||||||
this.equipSlot = EquipSlotType.NONE;
|
this.equipSlot = EquipSlotType.NONE;
|
||||||
this.containerType = ItemContainerType.NONE;
|
this.containerType = ItemContainerType.NONE;
|
||||||
this.numberOfItems = 1;
|
this.numberOfItems = 1;
|
||||||
this.flags.addAll(this.template.item_flags);
|
this.flags.addAll(this.template.cacheTemplate.getItemFlags());
|
||||||
this.value = this.template.item_value;
|
this.value = this.template.cacheTemplate.getItemValue();
|
||||||
this.magicValue = this.value + calcMagicValue();
|
this.magicValue = this.value + calcMagicValue();
|
||||||
loadTemplateEnchantments();
|
loadTemplateEnchantments();
|
||||||
}
|
}
|
||||||
@@ -166,7 +166,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
this.value = rs.getInt("value");
|
this.value = rs.getInt("value");
|
||||||
|
|
||||||
if (this.value == 0) {
|
if (this.value == 0) {
|
||||||
this.value = this.template.item_value;
|
this.value = this.template.cacheTemplate.getItemValue();
|
||||||
this.magicValue = this.value + calcMagicValue();
|
this.magicValue = this.value + calcMagicValue();
|
||||||
} else
|
} else
|
||||||
this.magicValue = this.value; // Value was overridden in vendor inventory
|
this.magicValue = this.value; // Value was overridden in vendor inventory
|
||||||
@@ -238,7 +238,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
writer.putString(item.name); // Unknown. pad?
|
writer.putString(item.name); // Unknown. pad?
|
||||||
writer.put((byte) 1); // End Datablock byte
|
writer.put((byte) 1); // End Datablock byte
|
||||||
|
|
||||||
writer.putFloat(item.template.combat_health_full);
|
writer.putFloat(item.template.cacheTemplate.getCombatHealthFull());
|
||||||
writer.putFloat((float) item.combat_health_current);
|
writer.putFloat((float) item.combat_health_current);
|
||||||
|
|
||||||
writer.put((byte) 1); // End Datablock byte
|
writer.put((byte) 1); // End Datablock byte
|
||||||
@@ -255,7 +255,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
} else
|
} else
|
||||||
writer.putInt(item.numberOfItems); // Amount of gold
|
writer.putInt(item.numberOfItems); // Amount of gold
|
||||||
} else
|
} else
|
||||||
writer.putInt(item.template.item_value);
|
writer.putInt(item.template.cacheTemplate.getItemValue());
|
||||||
|
|
||||||
writer.putInt(item.getValue());
|
writer.putInt(item.getValue());
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
writer.put((byte) 0);
|
writer.put((byte) 0);
|
||||||
|
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.EMPLOYMENTCONTRACT) == false) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.EMPLOYMENTCONTRACT) == false) {
|
||||||
writer.putShort((short) 0);
|
writer.putShort((short) 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -463,7 +463,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
int serialized = 0;
|
int serialized = 0;
|
||||||
for (Item item : list) {
|
for (Item item : list) {
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
if (item.numberOfItems == 0)
|
if (item.numberOfItems == 0)
|
||||||
continue;
|
continue;
|
||||||
try {
|
try {
|
||||||
@@ -497,7 +497,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
int serialized = 0;
|
int serialized = 0;
|
||||||
for (Item item : list) {
|
for (Item item : list) {
|
||||||
|
|
||||||
if (item.template.item_type.equals(ItemType.GOLD))
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
if (item.numberOfItems == 0)
|
if (item.numberOfItems == 0)
|
||||||
continue;
|
continue;
|
||||||
try {
|
try {
|
||||||
@@ -955,7 +955,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
// No enchantments for negative id items in the db. Early exit.
|
// No enchantments for negative id items in the db. Early exit.
|
||||||
|
|
||||||
if (this.objectUUID < 0) {
|
if (this.objectUUID < 0) {
|
||||||
this.magicValue = this.template.item_value + calcMagicValue();
|
this.magicValue = this.template.cacheTemplate.getItemValue() + calcMagicValue();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -971,8 +971,8 @@ public class Item extends AbstractWorldObject {
|
|||||||
|
|
||||||
// Value is overridden the db
|
// Value is overridden the db
|
||||||
|
|
||||||
if (this.value == this.template.item_value)
|
if (this.value == this.template.cacheTemplate.getItemValue())
|
||||||
this.magicValue = this.template.item_value + calcMagicValue();
|
this.magicValue = this.template.cacheTemplate.getItemValue() + calcMagicValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addPermanentEnchantment(String enchantID, int rank) {
|
public void addPermanentEnchantment(String enchantID, int rank) {
|
||||||
@@ -1116,11 +1116,11 @@ public class Item extends AbstractWorldObject {
|
|||||||
else
|
else
|
||||||
modifiedValue = this.value;
|
modifiedValue = this.value;
|
||||||
|
|
||||||
if (this.template.item_initial_charges > 0)
|
if (this.template.cacheTemplate.getItemInitialCharges() > 0)
|
||||||
modifiedValue = modifiedValue * (this.chargesRemaining / this.template.item_initial_charges);
|
modifiedValue = modifiedValue * (this.chargesRemaining / this.template.cacheTemplate.getItemInitialCharges());
|
||||||
|
|
||||||
if (this.template.combat_health_full > 0)
|
if (this.template.cacheTemplate.getCombatHealthFull() > 0)
|
||||||
modifiedValue = (int) (modifiedValue * (this.combat_health_current / this.template.combat_health_full));
|
modifiedValue = (int) (modifiedValue * (this.combat_health_current / this.template.cacheTemplate.getCombatHealthFull()));
|
||||||
|
|
||||||
return modifiedValue;
|
return modifiedValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ package engine.objects;
|
|||||||
|
|
||||||
import engine.math.Vector3fImmutable;
|
import engine.math.Vector3fImmutable;
|
||||||
import engine.mbEnums;
|
import engine.mbEnums;
|
||||||
|
import engine.parsers.objects.CObjectTemplate;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
@@ -157,6 +158,9 @@ public class ItemTemplate {
|
|||||||
public final ArrayList<Integer> rune_helper_monster_types = new ArrayList<>();
|
public final ArrayList<Integer> rune_helper_monster_types = new ArrayList<>();
|
||||||
public int item_bane_rank;
|
public int item_bane_rank;
|
||||||
|
|
||||||
|
// Cache JSON counterpart, so consumers can move to the new templates one field at a time.
|
||||||
|
public CObjectTemplate cacheTemplate;
|
||||||
|
|
||||||
public ItemTemplate(JSONObject jsonObject) {
|
public ItemTemplate(JSONObject jsonObject) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -646,4 +650,22 @@ public class ItemTemplate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Run after CObjectIndex.build(); the DB templates load before the cache parsers.
|
||||||
|
|
||||||
|
public static void linkCacheTemplates() {
|
||||||
|
|
||||||
|
int missingCount = 0;
|
||||||
|
|
||||||
|
for (ItemTemplate template : templates.values()) {
|
||||||
|
template.cacheTemplate = CObjectTemplate.lookup(template.template_id);
|
||||||
|
|
||||||
|
if (template.cacheTemplate == null) {
|
||||||
|
missingCount++;
|
||||||
|
Logger.warn(template.template_id + ": " + template.obj_name + " has no cache template");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.info("Linked " + (templates.size() - missingCount) + " of " + templates.size() + " item templates to cache templates");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@ public final class MobLoot extends Item {
|
|||||||
this.ownerID = mob.getObjectUUID();
|
this.ownerID = mob.getObjectUUID();
|
||||||
this.objectUUID = generateId();
|
this.objectUUID = generateId();
|
||||||
|
|
||||||
if (quantity == 0 && template.item_type == ItemType.RESOURCE)
|
if (quantity == 0 && template.cacheTemplate.getItemType() == ItemType.RESOURCE)
|
||||||
quantity = 1;
|
quantity = 1;
|
||||||
|
|
||||||
if (quantity > 0)
|
if (quantity > 0)
|
||||||
@@ -105,7 +105,7 @@ public final class MobLoot extends Item {
|
|||||||
if (isDeleted)
|
if (isDeleted)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (this.template.item_type.equals(ItemType.GOLD))
|
if (this.template.cacheTemplate.getItemType().equals(ItemType.GOLD))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
Item item = this;
|
Item item = this;
|
||||||
|
|||||||
@@ -969,7 +969,7 @@ public class NPC extends AbstractCharacter {
|
|||||||
if (itemTemplate.item_skill_required.values().iterator().hasNext())
|
if (itemTemplate.item_skill_required.values().iterator().hasNext())
|
||||||
skillRequired = itemTemplate.item_skill_required.values().iterator().next();
|
skillRequired = itemTemplate.item_skill_required.values().iterator().next();
|
||||||
|
|
||||||
boolean exclude = skillRequired == 0 && ItemTemplate.templates.get(itemID).item_type.equals(ItemType.WEAPON);
|
boolean exclude = skillRequired == 0 && ItemTemplate.templates.get(itemID).cacheTemplate.getItemType().equals(ItemType.WEAPON);
|
||||||
if (skillRequired <= maxSkill && !exclude)
|
if (skillRequired <= maxSkill && !exclude)
|
||||||
filteredItemList.add(itemID);
|
filteredItemList.add(itemID);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1356,7 +1356,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
|||||||
ItemTemplate ab = armor.template;
|
ItemTemplate ab = armor.template;
|
||||||
if (ab == null)
|
if (ab == null)
|
||||||
return 0f;
|
return 0f;
|
||||||
return ab.item_bulk_factor;
|
return engine.parsers.objects.ItemTemplate._items.get(armor.templateID).item_bulk_factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void InitializeSkillsOnLoad(PlayerCharacter pc) {
|
public static void InitializeSkillsOnLoad(PlayerCharacter pc) {
|
||||||
@@ -2819,11 +2819,11 @@ public class PlayerCharacter extends AbstractCharacter {
|
|||||||
ItemTemplate ib = item.template;
|
ItemTemplate ib = item.template;
|
||||||
if (ib != null) {
|
if (ib != null) {
|
||||||
|
|
||||||
if ((item.template.item_type.equals(ItemType.WEAPON))
|
if ((item.template.cacheTemplate.getItemType().equals(ItemType.WEAPON))
|
||||||
&& (item.template.item_skill_used.equals(type) || ib.item_skill_mastery_used.equals(type)))
|
&& (item.template.item_skill_used.equals(type) || ib.item_skill_mastery_used.equals(type)))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return (item.template.item_type.equals(ItemType.ARMOR))
|
return (item.template.cacheTemplate.getItemType().equals(ItemType.ARMOR))
|
||||||
&& (item.template.item_skill_used.equals(type));
|
&& (item.template.item_skill_used.equals(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ public class Resists {
|
|||||||
if (armor == null)
|
if (armor == null)
|
||||||
return phys;
|
return phys;
|
||||||
|
|
||||||
if (armor.template.item_type.equals(mbEnums.ItemType.ARMOR)) {
|
if (armor.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.ARMOR)) {
|
||||||
phys[0] += armor.template.combat_attack_resist.get("SLASHING");
|
phys[0] += armor.template.combat_attack_resist.get("SLASHING");
|
||||||
phys[1] += armor.template.combat_attack_resist.get("CRUSHING");
|
phys[1] += armor.template.combat_attack_resist.get("CRUSHING");
|
||||||
phys[2] += armor.template.combat_attack_resist.get("PIERCING");
|
phys[2] += armor.template.combat_attack_resist.get("PIERCING");
|
||||||
|
|||||||
@@ -256,13 +256,13 @@ public class Shrine extends AbstractWorldObject implements Comparable<Shrine> {
|
|||||||
if (!boonOwner.charItemManager.doesCharOwnThisItem(boonItem.getObjectUUID()))
|
if (!boonOwner.charItemManager.doesCharOwnThisItem(boonItem.getObjectUUID()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
for (ShrineType boonShrineType : boonItem.template.item_offering_info.keySet()) {
|
for (ShrineType boonShrineType : boonItem.template.cacheTemplate.getItemOfferingInfo().keySet()) {
|
||||||
|
|
||||||
if (boonShrineType != shrineType)
|
if (boonShrineType != shrineType)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
//Same Shrine Type, add favors and stop loop.
|
//Same Shrine Type, add favors and stop loop.
|
||||||
int amount = boonItem.template.item_offering_info.get(boonShrineType) * boonItem.getNumOfItems();
|
int amount = boonItem.template.cacheTemplate.getItemOfferingInfo().get(boonShrineType) * boonItem.getNumOfItems();
|
||||||
int oldAmount = this.favors;
|
int oldAmount = this.favors;
|
||||||
|
|
||||||
if (!DbManager.ShrineQueries.updateFavors(this, this.favors + amount, oldAmount)) {
|
if (!DbManager.ShrineQueries.updateFavors(this, this.favors + amount, oldAmount)) {
|
||||||
|
|||||||
@@ -304,10 +304,10 @@ public class Warehouse {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resource.template.item_type.equals(mbEnums.ItemType.GOLD))
|
if (resource.template.cacheTemplate.getItemType().equals(mbEnums.ItemType.GOLD))
|
||||||
resourceType = mbEnums.ResourceType.GOLD;
|
resourceType = mbEnums.ResourceType.GOLD;
|
||||||
else
|
else
|
||||||
resourceType = mbEnums.ResourceType.valueOf(ItemTemplate.templates.get(resource.templateID).item_base_name.toUpperCase());
|
resourceType = mbEnums.ResourceType.valueOf(ItemTemplate.templates.get(resource.templateID).cacheTemplate.getItemBaseName().toUpperCase());
|
||||||
|
|
||||||
if (transaction)
|
if (transaction)
|
||||||
AddTransactionToWarehouse(warehouse, playerCharacter.getObjectType(), playerCharacter.getObjectUUID(), mbEnums.TransactionType.DEPOSIT, resourceType, amount);
|
AddTransactionToWarehouse(warehouse, playerCharacter.getObjectType(), playerCharacter.getObjectUUID(), mbEnums.TransactionType.DEPOSIT, resourceType, amount);
|
||||||
@@ -432,7 +432,7 @@ public class Warehouse {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (addToInventory)
|
if (addToInventory)
|
||||||
if (!itemMan.hasRoomInventory(template.item_wt)) {
|
if (!itemMan.hasRoomInventory(template.cacheTemplate.getItemWt())) {
|
||||||
ChatManager.chatSystemInfo(playerCharacter, "You can not carry any more of that item.");
|
ChatManager.chatSystemInfo(playerCharacter, "You can not carry any more of that item.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -517,7 +517,7 @@ public class Warehouse {
|
|||||||
if (itemMan == null)
|
if (itemMan == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!itemMan.hasRoomInventory(template.item_wt)) {
|
if (!itemMan.hasRoomInventory(template.cacheTemplate.getItemWt())) {
|
||||||
ChatManager.chatSystemInfo(playerCharacter, "You can not carry any more of that item.");
|
ChatManager.chatSystemInfo(playerCharacter, "You can not carry any more of that item.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
+16
@@ -13,6 +13,7 @@ import engine.gameManager.DbManager;
|
|||||||
import engine.mbEnums;
|
import engine.mbEnums;
|
||||||
import engine.objects.AbstractGameObject;
|
import engine.objects.AbstractGameObject;
|
||||||
import engine.objects.BaseClass;
|
import engine.objects.BaseClass;
|
||||||
|
import engine.objects.ItemTemplate;
|
||||||
import engine.parsers.objects.RuneTemplate;
|
import engine.parsers.objects.RuneTemplate;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
|
|
||||||
@@ -36,6 +37,7 @@ public class ParityCheck {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
register("static_rune_baseclass", ParityCheck::compareBaseClasses);
|
register("static_rune_baseclass", ParityCheck::compareBaseClasses);
|
||||||
|
register("static_item_templates", ParityCheck::compareItemTemplates);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ParityCheck(String table) {
|
private ParityCheck(String table) {
|
||||||
@@ -115,4 +117,18 @@ public class ParityCheck {
|
|||||||
check.compareField(baseClass.getObjectUUID(), "name", baseClass.getName(), rune.obj_name);
|
check.compareField(baseClass.getObjectUUID(), "name", baseClass.getName(), rune.obj_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A wrong item_type means the bridge picked the wrong folder for an id found in more than one.
|
||||||
|
|
||||||
|
private static void compareItemTemplates(ParityCheck check) {
|
||||||
|
|
||||||
|
for (ItemTemplate template : ItemTemplate.templates.values()) {
|
||||||
|
|
||||||
|
if (!check.compareRow(template.template_id, template.cacheTemplate))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
check.compareField(template.template_id, "obj_name", template.obj_name, template.cacheTemplate.getObjName());
|
||||||
|
check.compareField(template.template_id, "item_type", template.item_type, template.cacheTemplate.getItemType());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -8,8 +8,92 @@
|
|||||||
|
|
||||||
package engine.parsers.objects;
|
package engine.parsers.objects;
|
||||||
|
|
||||||
|
import engine.math.Vector3fImmutable;
|
||||||
|
import engine.mbEnums;
|
||||||
|
import engine.parsers.cache.CObjectIndex;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.EnumMap;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
// Common type for ITEM, DEED and RUNE cache templates, which share one id space.
|
// Common type for ITEM, DEED and RUNE cache templates, which share one id space.
|
||||||
// Shared obj_/combat_/item_ getters arrive with JSON-Refactor-Plan Task 1.1.
|
// Getters cover only the obj_/combat_/item_ fields all three define (JSON-Refactor-Plan D1).
|
||||||
|
// Returned collections are the template's own; never modify them.
|
||||||
|
|
||||||
public interface CObjectTemplate {
|
public interface CObjectTemplate {
|
||||||
|
|
||||||
|
static CObjectTemplate lookup(int templateId) {
|
||||||
|
return CObjectIndex.lookup(templateId);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getTemplateId();
|
||||||
|
String getObjName();
|
||||||
|
boolean getObjPickable();
|
||||||
|
float getObjGravity();
|
||||||
|
float getObjCullDistance();
|
||||||
|
Vector3fImmutable getObjScale();
|
||||||
|
int getObjRenderObject();
|
||||||
|
boolean getObjDoubleFusion();
|
||||||
|
Vector3fImmutable getObjForwardVector();
|
||||||
|
String getObjTrackingName();
|
||||||
|
float getObjMaxTrackingDistance();
|
||||||
|
int getObjIcon();
|
||||||
|
float getObjGravityF();
|
||||||
|
LinkedHashMap<String, Integer> getObjSoundEvents();
|
||||||
|
JSONArray getObjArcHardpointList();
|
||||||
|
HashMap<String, String> getObjSparseData();
|
||||||
|
int getObjRenderObjectLowDetail();
|
||||||
|
Vector3fImmutable getObjDefaultAlignment();
|
||||||
|
String getObjSoundTable();
|
||||||
|
|
||||||
|
float getCombatHealthCurrent();
|
||||||
|
float getCombatHealthFull();
|
||||||
|
EnumMap<mbEnums.DamageType, Float> getCombatAttackResist();
|
||||||
|
JSONArray getCombatPowers();
|
||||||
|
|
||||||
|
mbEnums.ItemType getItemType();
|
||||||
|
int getItemEqSlotsValue();
|
||||||
|
boolean getItemEqSlotsType();
|
||||||
|
EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr();
|
||||||
|
EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd();
|
||||||
|
boolean getItemTakeable();
|
||||||
|
int getItemValue();
|
||||||
|
int getItemWt();
|
||||||
|
float getItemPassiveDefenseMod();
|
||||||
|
String getItemBaseName();
|
||||||
|
String getItemDsc();
|
||||||
|
int getItemRenderObjectFemale();
|
||||||
|
float getItemHealthFull();
|
||||||
|
String getItemSkillUsed();
|
||||||
|
String getItemSkillMasteryUsed();
|
||||||
|
int getItemParryAnimId();
|
||||||
|
EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo();
|
||||||
|
EnumSet<mbEnums.ItemFlags> getItemFlags();
|
||||||
|
EnumSet<mbEnums.ItemUseFlags> getItemUseFlags();
|
||||||
|
int getItemPostItemId();
|
||||||
|
int getItemInitialCharges();
|
||||||
|
int getItemBookArcana();
|
||||||
|
LinkedHashMap<String, Integer> getItemSkillReq();
|
||||||
|
boolean getItemRaceReqRestrict();
|
||||||
|
EnumSet<mbEnums.MonsterType> getItemRaceReq();
|
||||||
|
boolean getItemClassReqRestrict();
|
||||||
|
EnumSet<mbEnums.ClassType> getItemClassReq();
|
||||||
|
boolean getItemDiscReqRestrict();
|
||||||
|
EnumSet<mbEnums.DisciplineType> getItemDiscReq();
|
||||||
|
EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq();
|
||||||
|
int getItemLevelReq();
|
||||||
|
int getItemRankReq();
|
||||||
|
mbEnums.SexType getItemSexReq();
|
||||||
|
ArrayList<UserPowerAction> getItemUserPowerAction();
|
||||||
|
ArrayList<PowerGrant> getItemPowerGrant();
|
||||||
|
LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction();
|
||||||
|
boolean getItemSheathable();
|
||||||
|
boolean getItemHasStub();
|
||||||
|
EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments();
|
||||||
|
EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts();
|
||||||
|
int getItemBaneRank();
|
||||||
|
boolean getItemIgnoreSavedActions();
|
||||||
}
|
}
|
||||||
@@ -119,4 +119,329 @@ public class DeedTemplate implements CObjectTemplate {
|
|||||||
public float deed_namelookup_val;
|
public float deed_namelookup_val;
|
||||||
public boolean deed_custom_city;
|
public boolean deed_custom_city;
|
||||||
public int deed_structure_id;
|
public int deed_structure_id;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTemplateId() {
|
||||||
|
return template_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjName() {
|
||||||
|
return obj_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getObjPickable() {
|
||||||
|
return obj_pickable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjGravity() {
|
||||||
|
return obj_gravity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjCullDistance() {
|
||||||
|
return obj_cull_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjScale() {
|
||||||
|
return obj_scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjRenderObject() {
|
||||||
|
return obj_render_object;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getObjDoubleFusion() {
|
||||||
|
return obj_double_fusion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjForwardVector() {
|
||||||
|
return obj_forward_vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjTrackingName() {
|
||||||
|
return obj_tracking_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjMaxTrackingDistance() {
|
||||||
|
return obj_max_tracking_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjIcon() {
|
||||||
|
return obj_icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjGravityF() {
|
||||||
|
return obj_gravity_f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, Integer> getObjSoundEvents() {
|
||||||
|
return obj_sound_events;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getObjArcHardpointList() {
|
||||||
|
return obj_arc_hardpoint_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HashMap<String, String> getObjSparseData() {
|
||||||
|
return obj_sparse_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjRenderObjectLowDetail() {
|
||||||
|
return obj_render_object_low_detail;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjDefaultAlignment() {
|
||||||
|
return obj_default_alignment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjSoundTable() {
|
||||||
|
return obj_sound_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getCombatHealthCurrent() {
|
||||||
|
return combat_health_current;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getCombatHealthFull() {
|
||||||
|
return combat_health_full;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.DamageType, Float> getCombatAttackResist() {
|
||||||
|
return combat_attack_resist;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getCombatPowers() {
|
||||||
|
return combat_powers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public mbEnums.ItemType getItemType() {
|
||||||
|
return item_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemEqSlotsValue() {
|
||||||
|
return item_eq_slots_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemEqSlotsType() {
|
||||||
|
return item_eq_slots_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr() {
|
||||||
|
return item_eq_slots_or;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd() {
|
||||||
|
return item_eq_slots_and;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemTakeable() {
|
||||||
|
return item_takeable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemValue() {
|
||||||
|
return item_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemWt() {
|
||||||
|
return item_wt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getItemPassiveDefenseMod() {
|
||||||
|
return item_passive_defense_mod;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemBaseName() {
|
||||||
|
return item_base_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemDsc() {
|
||||||
|
return item_dsc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemRenderObjectFemale() {
|
||||||
|
return item_render_object_female;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getItemHealthFull() {
|
||||||
|
return item_health_full;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemSkillUsed() {
|
||||||
|
return item_skill_used;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemSkillMasteryUsed() {
|
||||||
|
return item_skill_mastery_used;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemParryAnimId() {
|
||||||
|
return item_parry_anim_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo() {
|
||||||
|
return item_offering_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ItemFlags> getItemFlags() {
|
||||||
|
return item_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ItemUseFlags> getItemUseFlags() {
|
||||||
|
return item_use_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemPostItemId() {
|
||||||
|
return item_post_item_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemInitialCharges() {
|
||||||
|
return item_initial_charges;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemBookArcana() {
|
||||||
|
return item_book_arcana;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, Integer> getItemSkillReq() {
|
||||||
|
return item_skill_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemRaceReqRestrict() {
|
||||||
|
return item_race_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.MonsterType> getItemRaceReq() {
|
||||||
|
return item_race_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemClassReqRestrict() {
|
||||||
|
return item_class_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ClassType> getItemClassReq() {
|
||||||
|
return item_class_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemDiscReqRestrict() {
|
||||||
|
return item_disc_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.DisciplineType> getItemDiscReq() {
|
||||||
|
return item_disc_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq() {
|
||||||
|
return item_attr_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemLevelReq() {
|
||||||
|
return item_level_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemRankReq() {
|
||||||
|
return item_rank_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public mbEnums.SexType getItemSexReq() {
|
||||||
|
return item_sex_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<UserPowerAction> getItemUserPowerAction() {
|
||||||
|
return item_user_power_action;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<PowerGrant> getItemPowerGrant() {
|
||||||
|
return item_power_grant;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction() {
|
||||||
|
return item_power_action;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemSheathable() {
|
||||||
|
return item_sheathable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemHasStub() {
|
||||||
|
return item_has_stub;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments() {
|
||||||
|
return item_offering_adjustments;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts() {
|
||||||
|
return item_resource_costs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemBaneRank() {
|
||||||
|
return item_bane_rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemIgnoreSavedActions() {
|
||||||
|
return item_ignore_saved_actions;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -138,6 +138,331 @@ public class ItemTemplate implements CObjectTemplate {
|
|||||||
public int item_bane_rank;
|
public int item_bane_rank;
|
||||||
public boolean item_ignore_saved_actions;
|
public boolean item_ignore_saved_actions;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTemplateId() {
|
||||||
|
return template_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjName() {
|
||||||
|
return obj_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getObjPickable() {
|
||||||
|
return obj_pickable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjGravity() {
|
||||||
|
return obj_gravity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjCullDistance() {
|
||||||
|
return obj_cull_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjScale() {
|
||||||
|
return obj_scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjRenderObject() {
|
||||||
|
return obj_render_object;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getObjDoubleFusion() {
|
||||||
|
return obj_double_fusion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjForwardVector() {
|
||||||
|
return obj_forward_vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjTrackingName() {
|
||||||
|
return obj_tracking_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjMaxTrackingDistance() {
|
||||||
|
return obj_max_tracking_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjIcon() {
|
||||||
|
return obj_icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjGravityF() {
|
||||||
|
return obj_gravity_f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, Integer> getObjSoundEvents() {
|
||||||
|
return obj_sound_events;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getObjArcHardpointList() {
|
||||||
|
return obj_arc_hardpoint_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HashMap<String, String> getObjSparseData() {
|
||||||
|
return obj_sparse_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjRenderObjectLowDetail() {
|
||||||
|
return obj_render_object_low_detail;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjDefaultAlignment() {
|
||||||
|
return obj_default_alignment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjSoundTable() {
|
||||||
|
return obj_sound_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getCombatHealthCurrent() {
|
||||||
|
return combat_health_current;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getCombatHealthFull() {
|
||||||
|
return combat_health_full;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.DamageType, Float> getCombatAttackResist() {
|
||||||
|
return combat_attack_resist;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getCombatPowers() {
|
||||||
|
return combat_powers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public mbEnums.ItemType getItemType() {
|
||||||
|
return item_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemEqSlotsValue() {
|
||||||
|
return item_eq_slots_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemEqSlotsType() {
|
||||||
|
return item_eq_slots_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr() {
|
||||||
|
return item_eq_slots_or;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd() {
|
||||||
|
return item_eq_slots_and;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemTakeable() {
|
||||||
|
return item_takeable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemValue() {
|
||||||
|
return item_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemWt() {
|
||||||
|
return item_wt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getItemPassiveDefenseMod() {
|
||||||
|
return item_passive_defense_mod;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemBaseName() {
|
||||||
|
return item_base_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemDsc() {
|
||||||
|
return item_dsc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemRenderObjectFemale() {
|
||||||
|
return item_render_object_female;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getItemHealthFull() {
|
||||||
|
return item_health_full;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemSkillUsed() {
|
||||||
|
return item_skill_used;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemSkillMasteryUsed() {
|
||||||
|
return item_skill_mastery_used;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemParryAnimId() {
|
||||||
|
return item_parry_anim_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo() {
|
||||||
|
return item_offering_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ItemFlags> getItemFlags() {
|
||||||
|
return item_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ItemUseFlags> getItemUseFlags() {
|
||||||
|
return item_use_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemPostItemId() {
|
||||||
|
return item_post_item_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemInitialCharges() {
|
||||||
|
return item_initial_charges;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemBookArcana() {
|
||||||
|
return item_book_arcana;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, Integer> getItemSkillReq() {
|
||||||
|
return item_skill_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemRaceReqRestrict() {
|
||||||
|
return item_race_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.MonsterType> getItemRaceReq() {
|
||||||
|
return item_race_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemClassReqRestrict() {
|
||||||
|
return item_class_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ClassType> getItemClassReq() {
|
||||||
|
return item_class_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemDiscReqRestrict() {
|
||||||
|
return item_disc_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.DisciplineType> getItemDiscReq() {
|
||||||
|
return item_disc_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq() {
|
||||||
|
return item_attr_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemLevelReq() {
|
||||||
|
return item_level_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemRankReq() {
|
||||||
|
return item_rank_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public mbEnums.SexType getItemSexReq() {
|
||||||
|
return item_sex_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<UserPowerAction> getItemUserPowerAction() {
|
||||||
|
return item_user_power_action;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<PowerGrant> getItemPowerGrant() {
|
||||||
|
return item_power_grant;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction() {
|
||||||
|
return item_power_action;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemSheathable() {
|
||||||
|
return item_sheathable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemHasStub() {
|
||||||
|
return item_has_stub;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments() {
|
||||||
|
return item_offering_adjustments;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts() {
|
||||||
|
return item_resource_costs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemBaneRank() {
|
||||||
|
return item_bane_rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemIgnoreSavedActions() {
|
||||||
|
return item_ignore_saved_actions;
|
||||||
|
}
|
||||||
|
|
||||||
// item_weapon (ArcAttackInfo_LoadWeapon, sb.exe 0x61FA60).
|
// item_weapon (ArcAttackInfo_LoadWeapon, sb.exe 0x61FA60).
|
||||||
|
|
||||||
public static class Weapon {
|
public static class Weapon {
|
||||||
|
|||||||
@@ -191,6 +191,331 @@ public class RuneTemplate implements CObjectTemplate {
|
|||||||
public int rune_natural_power_attack;
|
public int rune_natural_power_attack;
|
||||||
public final HashMap<String, String> rune_sparse_data = new HashMap<>();
|
public final HashMap<String, String> rune_sparse_data = new HashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTemplateId() {
|
||||||
|
return template_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjName() {
|
||||||
|
return obj_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getObjPickable() {
|
||||||
|
return obj_pickable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjGravity() {
|
||||||
|
return obj_gravity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjCullDistance() {
|
||||||
|
return obj_cull_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjScale() {
|
||||||
|
return obj_scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjRenderObject() {
|
||||||
|
return obj_render_object;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getObjDoubleFusion() {
|
||||||
|
return obj_double_fusion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjForwardVector() {
|
||||||
|
return obj_forward_vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjTrackingName() {
|
||||||
|
return obj_tracking_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjMaxTrackingDistance() {
|
||||||
|
return obj_max_tracking_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjIcon() {
|
||||||
|
return obj_icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getObjGravityF() {
|
||||||
|
return obj_gravity_f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, Integer> getObjSoundEvents() {
|
||||||
|
return obj_sound_events;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getObjArcHardpointList() {
|
||||||
|
return obj_arc_hardpoint_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HashMap<String, String> getObjSparseData() {
|
||||||
|
return obj_sparse_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getObjRenderObjectLowDetail() {
|
||||||
|
return obj_render_object_low_detail;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vector3fImmutable getObjDefaultAlignment() {
|
||||||
|
return obj_default_alignment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getObjSoundTable() {
|
||||||
|
return obj_sound_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getCombatHealthCurrent() {
|
||||||
|
return combat_health_current;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getCombatHealthFull() {
|
||||||
|
return combat_health_full;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.DamageType, Float> getCombatAttackResist() {
|
||||||
|
return combat_attack_resist;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getCombatPowers() {
|
||||||
|
return combat_powers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public mbEnums.ItemType getItemType() {
|
||||||
|
return item_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemEqSlotsValue() {
|
||||||
|
return item_eq_slots_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemEqSlotsType() {
|
||||||
|
return item_eq_slots_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsOr() {
|
||||||
|
return item_eq_slots_or;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.EquipSlotType> getItemEqSlotsAnd() {
|
||||||
|
return item_eq_slots_and;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemTakeable() {
|
||||||
|
return item_takeable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemValue() {
|
||||||
|
return item_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemWt() {
|
||||||
|
return item_wt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getItemPassiveDefenseMod() {
|
||||||
|
return item_passive_defense_mod;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemBaseName() {
|
||||||
|
return item_base_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemDsc() {
|
||||||
|
return item_dsc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemRenderObjectFemale() {
|
||||||
|
return item_render_object_female;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getItemHealthFull() {
|
||||||
|
return item_health_full;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemSkillUsed() {
|
||||||
|
return item_skill_used;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemSkillMasteryUsed() {
|
||||||
|
return item_skill_mastery_used;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemParryAnimId() {
|
||||||
|
return item_parry_anim_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingInfo() {
|
||||||
|
return item_offering_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ItemFlags> getItemFlags() {
|
||||||
|
return item_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ItemUseFlags> getItemUseFlags() {
|
||||||
|
return item_use_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemPostItemId() {
|
||||||
|
return item_post_item_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemInitialCharges() {
|
||||||
|
return item_initial_charges;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemBookArcana() {
|
||||||
|
return item_book_arcana;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, Integer> getItemSkillReq() {
|
||||||
|
return item_skill_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemRaceReqRestrict() {
|
||||||
|
return item_race_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.MonsterType> getItemRaceReq() {
|
||||||
|
return item_race_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemClassReqRestrict() {
|
||||||
|
return item_class_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.ClassType> getItemClassReq() {
|
||||||
|
return item_class_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemDiscReqRestrict() {
|
||||||
|
return item_disc_req_restrict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<mbEnums.DisciplineType> getItemDiscReq() {
|
||||||
|
return item_disc_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.AttributeType, Integer> getItemAttrReq() {
|
||||||
|
return item_attr_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemLevelReq() {
|
||||||
|
return item_level_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemRankReq() {
|
||||||
|
return item_rank_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public mbEnums.SexType getItemSexReq() {
|
||||||
|
return item_sex_req;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<UserPowerAction> getItemUserPowerAction() {
|
||||||
|
return item_user_power_action;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<PowerGrant> getItemPowerGrant() {
|
||||||
|
return item_power_grant;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, ArrayList<int[]>> getItemPowerAction() {
|
||||||
|
return item_power_action;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemSheathable() {
|
||||||
|
return item_sheathable;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemHasStub() {
|
||||||
|
return item_has_stub;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ShrineType, Integer> getItemOfferingAdjustments() {
|
||||||
|
return item_offering_adjustments;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumMap<mbEnums.ResourceType, Integer> getItemResourceCosts() {
|
||||||
|
return item_resource_costs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemBaneRank() {
|
||||||
|
return item_bane_rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getItemIgnoreSavedActions() {
|
||||||
|
return item_ignore_saved_actions;
|
||||||
|
}
|
||||||
|
|
||||||
// One entry of rune_skill_grant; same layout as PowerGrant.
|
// One entry of rune_skill_grant; same layout as PowerGrant.
|
||||||
// skill_monster_types is empty in every RUNE file, so it is kept as raw JSON.
|
// skill_monster_types is empty in every RUNE file, so it is kept as raw JSON.
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class StealPowerAction extends AbstractPowerAction {
|
|||||||
|
|
||||||
//called to get amount of gold to steal between 0 and max gold
|
//called to get amount of gold to steal between 0 and max gold
|
||||||
protected static int getAmountToSteal(Item item) {
|
protected static int getAmountToSteal(Item item) {
|
||||||
if (item.template.item_type.equals(ItemType.GOLD)) {
|
if (item.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
|
|
||||||
int amount = item.getNumOfItems();
|
int amount = item.getNumOfItems();
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ public class StealPowerAction extends AbstractPowerAction {
|
|||||||
if (myCIM == null || ownerCIM == null)
|
if (myCIM == null || ownerCIM == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (tar.template.item_type.equals(ItemType.GOLD)) {
|
if (tar.template.cacheTemplate.getItemType().equals(ItemType.GOLD)) {
|
||||||
//stealing gold
|
//stealing gold
|
||||||
if (!myCIM.transferGoldToMyInventory((AbstractCharacter) owner, amount))
|
if (!myCIM.transferGoldToMyInventory((AbstractCharacter) owner, amount))
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -318,6 +318,9 @@ public class LoginServer {
|
|||||||
Logger.info("Indexing Cache Templates");
|
Logger.info("Indexing Cache Templates");
|
||||||
CObjectIndex.build();
|
CObjectIndex.build();
|
||||||
|
|
||||||
|
Logger.info("Linking Item Templates to Cache Templates");
|
||||||
|
ItemTemplate.linkCacheTemplates();
|
||||||
|
|
||||||
Logger.info("Initializing Network");
|
Logger.info("Initializing Network");
|
||||||
Network.init();
|
Network.init();
|
||||||
|
|
||||||
|
|||||||
@@ -338,6 +338,9 @@ public class WorldServer {
|
|||||||
Logger.info("Indexing Cache Templates");
|
Logger.info("Indexing Cache Templates");
|
||||||
CObjectIndex.build();
|
CObjectIndex.build();
|
||||||
|
|
||||||
|
Logger.info("Linking Item Templates to Cache Templates");
|
||||||
|
ItemTemplate.linkCacheTemplates();
|
||||||
|
|
||||||
Logger.info("Loading PromotionClasses");
|
Logger.info("Loading PromotionClasses");
|
||||||
DbManager.PromotionQueries.GET_ALL_PROMOTIONS();
|
DbManager.PromotionQueries.GET_ALL_PROMOTIONS();
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user