|
|
|
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|
|
|
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
|
|
|
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
|
|
|
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
|
|
|
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
|
|
|
// Magicbane Emulator Project © 2013 - 2022
|
|
|
|
// www.magicbane.com
|
|
|
|
|
|
|
|
|
|
|
|
package engine.objects;
|
|
|
|
|
|
|
|
import ch.claude_martin.enumbitset.EnumBitSet;
|
|
|
|
import engine.Enum;
|
|
|
|
import engine.Enum.*;
|
|
|
|
import engine.gameManager.BuildingManager;
|
|
|
|
import engine.gameManager.ChatManager;
|
|
|
|
import engine.gameManager.DbManager;
|
|
|
|
import engine.net.Dispatch;
|
|
|
|
import engine.net.DispatchMessage;
|
|
|
|
import engine.net.client.ClientConnection;
|
|
|
|
import engine.net.client.msg.*;
|
|
|
|
import engine.server.MBServerStatics;
|
|
|
|
import org.joda.time.DateTime;
|
|
|
|
import org.pmw.tinylog.Logger;
|
|
|
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
|
|
public class Warehouse extends AbstractWorldObject {
|
|
|
|
|
|
|
|
|
|
|
|
public static ItemBase goldIB = ItemBase.getItemBase(7);
|
|
|
|
public static ItemBase stoneIB = ItemBase.getItemBase(1580000);
|
|
|
|
public static ItemBase truesteelIB = ItemBase.getItemBase(1580001);
|
|
|
|
public static ItemBase ironIB = ItemBase.getItemBase(1580002);
|
|
|
|
public static ItemBase adamantIB = ItemBase.getItemBase(1580003);
|
|
|
|
public static ItemBase lumberIB = ItemBase.getItemBase(1580004);
|
|
|
|
public static ItemBase oakIB = ItemBase.getItemBase(1580005);
|
|
|
|
public static ItemBase bronzewoodIB = ItemBase.getItemBase(1580006);
|
|
|
|
public static ItemBase mandrakeIB = ItemBase.getItemBase(1580007);
|
|
|
|
public static ItemBase coalIB = ItemBase.getItemBase(1580008);
|
|
|
|
public static ItemBase agateIB = ItemBase.getItemBase(1580009);
|
|
|
|
public static ItemBase diamondIB = ItemBase.getItemBase(1580010);
|
|
|
|
public static ItemBase onyxIB = ItemBase.getItemBase(1580011);
|
|
|
|
public static ItemBase azothIB = ItemBase.getItemBase(1580012);
|
|
|
|
public static ItemBase orichalkIB = ItemBase.getItemBase(1580013);
|
|
|
|
public static ItemBase antimonyIB = ItemBase.getItemBase(1580014);
|
|
|
|
public static ItemBase sulferIB = ItemBase.getItemBase(1580015);
|
|
|
|
public static ItemBase quicksilverIB = ItemBase.getItemBase(1580016);
|
|
|
|
public static ItemBase galvorIB = ItemBase.getItemBase(1580017);
|
|
|
|
public static ItemBase wormwoodIB = ItemBase.getItemBase(1580018);
|
|
|
|
public static ItemBase obsidianIB = ItemBase.getItemBase(1580019);
|
|
|
|
public static ItemBase bloodstoneIB = ItemBase.getItemBase(1580020);
|
|
|
|
public static ItemBase mithrilIB = ItemBase.getItemBase(1580021);
|
|
|
|
public static ConcurrentHashMap<Integer, Integer> maxResources = new ConcurrentHashMap<>();
|
|
|
|
public static ConcurrentHashMap<Integer, Warehouse> warehouseByBuildingUUID = new ConcurrentHashMap<>();
|
|
|
|
public EnumBitSet<Enum.ResourceType> lockedResourceTypes;
|
|
|
|
private int UID;
|
|
|
|
private int buildingUID;
|
|
|
|
private ArrayList<Transaction> transactions = new ArrayList<>();
|
|
|
|
private ConcurrentHashMap<ItemBase, Integer> resources = new ConcurrentHashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ResultSet Constructor
|
|
|
|
*/
|
|
|
|
public Warehouse(ResultSet rs) throws SQLException {
|
|
|
|
super(rs);
|
|
|
|
this.UID = rs.getInt("UID");
|
|
|
|
this.resources.put(stoneIB, rs.getInt("warehouse_stone"));
|
|
|
|
this.resources.put(truesteelIB, rs.getInt("warehouse_truesteel"));
|
|
|
|
this.resources.put(ironIB, rs.getInt("warehouse_iron"));
|
|
|
|
this.resources.put(adamantIB, rs.getInt("warehouse_adamant"));
|
|
|
|
this.resources.put(lumberIB, rs.getInt("warehouse_lumber"));
|
|
|
|
this.resources.put(oakIB, rs.getInt("warehouse_oak"));
|
|
|
|
this.resources.put(bronzewoodIB, rs.getInt("warehouse_bronzewood"));
|
|
|
|
this.resources.put(mandrakeIB, rs.getInt("warehouse_mandrake"));
|
|
|
|
this.resources.put(coalIB, rs.getInt("warehouse_coal"));
|
|
|
|
this.resources.put(agateIB, rs.getInt("warehouse_agate"));
|
|
|
|
this.resources.put(diamondIB, rs.getInt("warehouse_diamond"));
|
|
|
|
this.resources.put(onyxIB, rs.getInt("warehouse_onyx"));
|
|
|
|
this.resources.put(azothIB, rs.getInt("warehouse_azoth"));
|
|
|
|
this.resources.put(orichalkIB, rs.getInt("warehouse_orichalk"));
|
|
|
|
this.resources.put(antimonyIB, rs.getInt("warehouse_antimony"));
|
|
|
|
this.resources.put(sulferIB, rs.getInt("warehouse_sulfur"));
|
|
|
|
this.resources.put(quicksilverIB, rs.getInt("warehouse_quicksilver"));
|
|
|
|
this.resources.put(galvorIB, rs.getInt("warehouse_galvor"));
|
|
|
|
this.resources.put(wormwoodIB, rs.getInt("warehouse_wormwood"));
|
|
|
|
this.resources.put(obsidianIB, rs.getInt("warehouse_obsidian"));
|
|
|
|
this.resources.put(bloodstoneIB, rs.getInt("warehouse_bloodstone"));
|
|
|
|
this.resources.put(mithrilIB, rs.getInt("warehouse_mithril"));
|
|
|
|
this.resources.put(goldIB, rs.getInt("warehouse_gold"));
|
|
|
|
this.lockedResourceTypes = EnumBitSet.asEnumBitSet(rs.getLong("warehouse_locks"), Enum.ResourceType.class);
|
|
|
|
this.buildingUID = rs.getInt("parent");
|
|
|
|
Warehouse.warehouseByBuildingUUID.put(this.buildingUID, this);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static ConcurrentHashMap<Integer, Integer> getMaxResources() {
|
|
|
|
if (maxResources.size() != 23) {
|
|
|
|
maxResources.put(7, 100000000);
|
|
|
|
maxResources.put(1580000, 10000);
|
|
|
|
maxResources.put(1580001, 2000);
|
|
|
|
maxResources.put(1580002, 2000);
|
|
|
|
maxResources.put(1580003, 1000);
|
|
|
|
maxResources.put(1580004, 10000);
|
|
|
|
maxResources.put(1580005, 3000);
|
|
|
|
maxResources.put(1580006, 3000);
|
|
|
|
maxResources.put(1580007, 1000);
|
|
|
|
maxResources.put(1580008, 3000);
|
|
|
|
maxResources.put(1580009, 2000);
|
|
|
|
maxResources.put(1580010, 2000);
|
|
|
|
maxResources.put(1580011, 1000);
|
|
|
|
maxResources.put(1580012, 2000);
|
|
|
|
maxResources.put(1580013, 3000);
|
|
|
|
maxResources.put(1580014, 1000);
|
|
|
|
maxResources.put(1580015, 1000);
|
|
|
|
maxResources.put(1580016, 1000);
|
|
|
|
maxResources.put(1580017, 500);
|
|
|
|
maxResources.put(1580018, 500);
|
|
|
|
maxResources.put(1580019, 500);
|
|
|
|
maxResources.put(1580020, 500);
|
|
|
|
maxResources.put(1580021, 500);
|
|
|
|
}
|
|
|
|
|
|
|
|
return maxResources;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void warehouseDeposit(MerchantMsg msg, PlayerCharacter player, NPC npc, ClientConnection origin) {
|
|
|
|
|
|
|
|
Building warehouseBuilding = npc.getBuilding();
|
|
|
|
if (warehouseBuilding == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
player.getTimestamps().put("lastDepositWarehouse", System.currentTimeMillis());
|
|
|
|
player.depositingWarehouse = true;
|
|
|
|
player.warehouseBuilding = warehouseBuilding;
|
|
|
|
player.getCharItemManager().updateLock = true;
|
|
|
|
Item resource = Item.getFromCache(msg.getItemID());
|
|
|
|
|
|
|
|
if (resource == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
int depositAmount = msg.getAmount();
|
|
|
|
CharacterItemManager itemMan = player.getCharItemManager();
|
|
|
|
|
|
|
|
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID())) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
Warehouse warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
|
|
|
if (warehouse == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!warehouse.deposit(player, resource, depositAmount, true, true)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
//ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
|
|
//vrm.setGuild(player.getGuild());
|
|
|
|
//vrm.setWarehouseBuilding(warehouseBuilding);
|
|
|
|
//vrm.configure();
|
|
|
|
//Dispatch dispatch = Dispatch.borrow(player, vrm);
|
|
|
|
//DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void warehouseWithdraw(MerchantMsg msg, PlayerCharacter player, NPC npc, ClientConnection origin) {
|
|
|
|
|
|
|
|
int withdrawAmount;
|
|
|
|
Building warehouseBuilding;
|
|
|
|
Warehouse warehouse;
|
|
|
|
Dispatch dispatch;
|
|
|
|
|
|
|
|
withdrawAmount = msg.getAmount();
|
|
|
|
warehouseBuilding = npc.getBuilding();
|
|
|
|
|
|
|
|
if (warehouseBuilding == null)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (player.getGuild() != warehouseBuilding.getGuild() || GuildStatusController.isInnerCouncil(player.getGuildStatus()) == false)
|
|
|
|
return;
|
|
|
|
|
|
|
|
warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
|
|
|
|
|
|
|
if (warehouse == null)
|
|
|
|
return;
|
|
|
|
|
|
|
|
int hashID = msg.getHashID();
|
|
|
|
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
|
|
|
|
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
|
|
|
|
|
|
|
if (ib == null) {
|
|
|
|
Logger.debug("Failed to find Resource ItemBaseID with Hash ID = " + hashID);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (warehouse.isResourceLocked(ib) == true) {
|
|
|
|
ChatManager.chatSystemInfo(player, "You cannot withdrawl a locked resource.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (!warehouse.withdraw(player, ib, withdrawAmount, true, true)) {
|
|
|
|
ChatManager.chatGuildError(player, "Failed to withdrawl " + ib.getName() + '.');
|
|
|
|
Logger.debug(player.getName() + " Failed to withdrawl =" + ib.getName() + " from Warehouse With ID = " + warehouseBuilding.getObjectUUID());
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
|
|
vrm.setGuild(player.getGuild());
|
|
|
|
vrm.setWarehouseBuilding(warehouseBuilding);
|
|
|
|
vrm.configure();
|
|
|
|
dispatch = Dispatch.borrow(player, vrm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void warehouseLock(MerchantMsg msg, PlayerCharacter player, NPC npc, ClientConnection origin) {
|
|
|
|
Building warehouse;
|
|
|
|
int hashID;
|
|
|
|
Dispatch dispatch;
|
|
|
|
|
|
|
|
hashID = msg.getHashID();
|
|
|
|
warehouse = npc.getBuilding();
|
|
|
|
|
|
|
|
if (warehouse == null)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (player.getGuild() != warehouse.getGuild() || GuildStatusController.isInnerCouncil(player.getGuildStatus()) == false)
|
|
|
|
return;
|
|
|
|
|
|
|
|
Warehouse wh = warehouseByBuildingUUID.get(warehouse.getObjectUUID());
|
|
|
|
|
|
|
|
if (wh == null)
|
|
|
|
return;
|
|
|
|
|
|
|
|
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
|
|
|
|
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (wh.isResourceLocked(ib) == true) {
|
|
|
|
boolean worked = false;
|
|
|
|
EnumBitSet<ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), ResourceType.class);
|
|
|
|
|
|
|
|
bitSet.remove(ResourceType.resourceLookup.get(itemBaseID));
|
|
|
|
|
|
|
|
worked = DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong());
|
|
|
|
|
|
|
|
if (worked) {
|
|
|
|
wh.lockedResourceTypes.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
|
|
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
|
|
vrm.setGuild(player.getGuild());
|
|
|
|
vrm.setWarehouseBuilding(warehouse);
|
|
|
|
vrm.configure();
|
|
|
|
dispatch = Dispatch.borrow(player, vrm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
EnumBitSet<ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), ResourceType.class);
|
|
|
|
|
|
|
|
bitSet.add(ResourceType.resourceLookup.get(itemBaseID));
|
|
|
|
|
|
|
|
if (DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong()) == false)
|
|
|
|
return;
|
|
|
|
|
|
|
|
wh.lockedResourceTypes.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
|
|
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
|
|
vrm.setGuild(player.getGuild());
|
|
|
|
vrm.setWarehouseBuilding(warehouse);
|
|
|
|
vrm.configure();
|
|
|
|
dispatch = Dispatch.borrow(player, vrm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public ConcurrentHashMap<ItemBase, Integer> getResources() {
|
|
|
|
return resources;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getUID() {
|
|
|
|
return UID;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setUID(int uID) {
|
|
|
|
UID = uID;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean deposit(PlayerCharacter pc, Item resource, int amount, boolean removeFromInventory, boolean transaction) {
|
|
|
|
|
|
|
|
ClientConnection origin = pc.getClientConnection();
|
|
|
|
if (origin == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (amount < 0) {
|
|
|
|
Logger.info(pc.getFirstName() + " Attempting to Dupe!!!!!!");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
ItemBase ib = resource.getItemBase();
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
CharacterItemManager itemMan = pc.getCharItemManager();
|
|
|
|
|
|
|
|
if (itemMan == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
if (itemMan.getGoldTrading() > 0) {
|
|
|
|
ErrorPopupMsg.sendErrorPopup(pc, 195);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID()))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (!resource.validForInventory(origin, pc, itemMan))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (resource.getNumOfItems() < amount)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int oldAmount = resources.get(ib);
|
|
|
|
|
|
|
|
int newAmount = oldAmount + amount;
|
|
|
|
|
|
|
|
if (newAmount > Warehouse.getMaxResources().get(ib.getUUID())) {
|
|
|
|
//ChatManager.chatSystemInfo(pc, "The Warehouse is at it's maximum for this type of resource.");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (removeFromInventory) {
|
|
|
|
if (ib.getUUID() == 7) {
|
|
|
|
|
|
|
|
if (itemMan.getGoldInventory().getNumOfItems() - amount < 0)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (itemMan.getGoldInventory().getNumOfItems() - amount > MBServerStatics.PLAYER_GOLD_LIMIT)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (!itemMan.modifyInventoryGold(-amount)) {
|
|
|
|
//ChatManager.chatSystemError(pc, "You do not have this Gold.");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
|
|
ugm.configure();
|
|
|
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY);
|
|
|
|
|
|
|
|
itemMan.updateInventory();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
itemMan.delete(resource);
|
|
|
|
itemMan.updateInventory();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
itemMan.updateInventory();
|
|
|
|
int itemID = ib.getUUID();
|
|
|
|
boolean worked = false;
|
|
|
|
switch (itemID) {
|
|
|
|
case 7:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580000:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580001:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580002:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580003:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580004:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580005:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580006:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580007:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580008:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580009:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580010:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580011:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580012:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580013:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580014:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580015:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580016:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580017:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580018:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580019:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580020:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580021:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!worked)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
resources.put(ib, newAmount);
|
|
|
|
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (resource.getItemBase().getType().equals(engine.Enum.ItemType.GOLD))
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(resource.getItemBase().getName().toUpperCase());
|
|
|
|
|
|
|
|
if (transaction)
|
|
|
|
this.AddTransactionToWarehouse(pc.getObjectType(), pc.getObjectUUID(), TransactionType.DEPOSIT, resourceType, amount);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private boolean removeFromInventory(CharacterItemManager itemMan, ItemBase ib, int amount, PlayerCharacter pc) {
|
|
|
|
if (ib.getUUID() == 7) {
|
|
|
|
if (!itemMan.modifyInventoryGold(-amount)) {
|
|
|
|
// ChatManager.chatSystemError(pc, "You do not have this Gold.");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
|
|
ugm.configure();
|
|
|
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY);
|
|
|
|
} else {
|
|
|
|
Item resource = itemMan.getItemByUUID(ib.getUUID());
|
|
|
|
if (resource == null) return false;
|
|
|
|
itemMan.delete(resource);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private boolean updateDatabase(int itemID, int newAmount) {
|
|
|
|
switch (itemID) {
|
|
|
|
case 7: return DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
case 1580000: return DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
case 1580001: return DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
case 1580002: return DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
case 1580003: return DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
case 1580004: return DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
case 1580005: return DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
case 1580006: return DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
case 1580007: return DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
case 1580008: return DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
case 1580009: return DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
case 1580010: return DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
case 1580011: return DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
case 1580012: return DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
case 1580013: return DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
case 1580014: return DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
case 1580015: return DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
case 1580016: return DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
case 1580017: return DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
case 1580018: return DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
case 1580019: return DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
case 1580020: return DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
case 1580021: return DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
default: return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private Resource getResourceType(Item resource) {
|
|
|
|
return resource.getItemBase().getType().equals(engine.Enum.ItemType.GOLD)
|
|
|
|
? Resource.GOLD
|
|
|
|
: Resource.valueOf(resource.getItemBase().getName().toUpperCase());
|
|
|
|
}
|
|
|
|
|
|
|
|
//for mine deposit
|
|
|
|
public synchronized boolean depositFromMine(Mine mine, ItemBase resource, int amount) {
|
|
|
|
|
|
|
|
if (resource == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(resource) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int oldAmount = resources.get(resource);
|
|
|
|
int newAmount = oldAmount + amount;
|
|
|
|
|
|
|
|
if (newAmount > Warehouse.getMaxResources().get(resource.getUUID()))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int itemID = resource.getUUID();
|
|
|
|
boolean worked = false;
|
|
|
|
|
|
|
|
switch (itemID) {
|
|
|
|
case 7:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580000:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580001:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580002:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580003:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580004:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580005:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580006:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580007:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580008:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580009:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580010:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580011:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580012:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580013:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580014:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580015:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580016:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580017:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580018:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580019:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580020:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580021:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (!worked)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
this.resources.put(resource, newAmount);
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (resource.getUUID() == 7)
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(resource.getName().toUpperCase());
|
|
|
|
|
|
|
|
if (mine != null)
|
|
|
|
this.AddTransactionToWarehouse(GameObjectType.Building, mine.getBuildingID(), TransactionType.MINE, resourceType, amount);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean depositRealmTaxes(PlayerCharacter taxer, ItemBase ib, int amount) {
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int oldAmount = resources.get(ib);
|
|
|
|
int newAmount = oldAmount + amount;
|
|
|
|
|
|
|
|
if (newAmount > Warehouse.getMaxResources().get(ib.getUUID()))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int itemID = ib.getUUID();
|
|
|
|
boolean worked = false;
|
|
|
|
|
|
|
|
switch (itemID) {
|
|
|
|
case 7:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580000:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580001:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580002:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580003:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580004:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580005:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580006:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580007:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580008:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580009:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580010:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580011:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580012:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580013:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580014:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580015:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580016:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580017:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580018:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580019:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580020:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580021:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!worked)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
this.resources.put(ib, newAmount);
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (ib.getUUID() == 7)
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
|
|
|
|
|
|
this.AddTransactionToWarehouse(taxer.getObjectType(), taxer.getObjectUUID(), TransactionType.TAXRESOURCEDEPOSIT, resourceType, amount);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean depositProfitTax(ItemBase ib, int amount, Building building) {
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int oldAmount = resources.get(ib);
|
|
|
|
int newAmount = oldAmount + amount;
|
|
|
|
|
|
|
|
if (newAmount > Warehouse.getMaxResources().get(ib.getUUID()))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int itemID = ib.getUUID();
|
|
|
|
boolean worked = false;
|
|
|
|
|
|
|
|
switch (itemID) {
|
|
|
|
case 7:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580000:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580001:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580002:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580003:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580004:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580005:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580006:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580007:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580008:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580009:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580010:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580011:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580012:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580013:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580014:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580015:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580016:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580017:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580018:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580019:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580020:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1580021:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!worked)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
this.resources.put(ib, newAmount);
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (ib.getUUID() == 7)
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
|
|
|
|
|
|
if (building != null)
|
|
|
|
this.AddTransactionToWarehouse(GameObjectType.Building, building.getObjectUUID(), TransactionType.DEPOSIT, resourceType, amount);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean withdraw(PlayerCharacter pc, ItemBase ib, int amount, boolean addToInventory, boolean transaction) {
|
|
|
|
|
|
|
|
if (pc == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (amount <= 0)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
CharacterItemManager itemMan = pc.getCharItemManager();
|
|
|
|
|
|
|
|
if (itemMan == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (addToInventory)
|
|
|
|
if (!itemMan.hasRoomInventory(ib.getWeight())) {
|
|
|
|
ChatManager.chatSystemInfo(pc, "You can not carry any more of that item.");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (addToInventory && ib.getUUID() == ItemBase.GOLD_BASE_ID) {
|
|
|
|
if (pc.getCharItemManager().getGoldInventory().getNumOfItems() + amount > MBServerStatics.PLAYER_GOLD_LIMIT) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (pc.getCharItemManager().getGoldInventory().getNumOfItems() + amount < 0)
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
int oldAmount = this.resources.get(ib);
|
|
|
|
|
|
|
|
if (oldAmount < amount)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int hashID = ib.getHashID();
|
|
|
|
int newAmount = oldAmount - amount;
|
|
|
|
|
|
|
|
boolean worked = false;
|
|
|
|
|
|
|
|
switch (hashID) {
|
|
|
|
case 2308551:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 74856115:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -317484979:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2504297:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1741189964:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1603256692:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 74767:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1334770447:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1191391799:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2559427:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 75173057:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1730704107:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2977263:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 78329697:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -2036290524:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 452320058:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1586349421:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -472884509:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1596311545:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1532478436:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -697973233:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1569826353:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1761257186:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (!worked)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
this.resources.put(ib, newAmount);
|
|
|
|
|
|
|
|
if (addToInventory) {
|
|
|
|
if (ib.getUUID() == 7) {
|
|
|
|
|
|
|
|
itemMan.addGoldToInventory(amount, false);
|
|
|
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
|
|
ugm.configure();
|
|
|
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
|
|
|
|
|
|
itemMan.updateInventory();
|
|
|
|
} else {
|
|
|
|
boolean itemWorked = false;
|
|
|
|
Item item = new Item(ib, pc.getObjectUUID(), OwnerType.PlayerCharacter, (byte) 0, (byte) 0,
|
|
|
|
(short) 1, (short) 1, true, false, ItemContainerType.INVENTORY, (byte) 0,
|
|
|
|
new ArrayList<>(), "");
|
|
|
|
item.setNumOfItems(amount);
|
|
|
|
item.containerType = Enum.ItemContainerType.INVENTORY;
|
|
|
|
|
|
|
|
try {
|
|
|
|
item = DbManager.ItemQueries.ADD_ITEM(item);
|
|
|
|
itemWorked = true;
|
|
|
|
} catch (Exception e) {
|
|
|
|
Logger.error(e);
|
|
|
|
}
|
|
|
|
if (itemWorked) {
|
|
|
|
itemMan.addItemToInventory(item);
|
|
|
|
itemMan.updateInventory();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (ib.getUUID() == 7)
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
|
|
|
|
|
|
if (transaction)
|
|
|
|
this.AddTransactionToWarehouse(pc.getObjectType(), pc.getObjectUUID(), TransactionType.WITHDRAWL, resourceType, amount);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean withdraw(NPC npc, ItemBase ib, int amount, boolean addToInventory, boolean transaction) {
|
|
|
|
|
|
|
|
if (npc == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (amount <= 0)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int oldAmount = this.resources.get(ib);
|
|
|
|
|
|
|
|
if (oldAmount < amount)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int hashID = ib.getHashID();
|
|
|
|
int newAmount = oldAmount - amount;
|
|
|
|
boolean worked = false;
|
|
|
|
|
|
|
|
switch (hashID) {
|
|
|
|
case 2308551:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 74856115:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -317484979:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2504297:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1741189964:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1603256692:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 74767:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1334770447:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1191391799:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2559427:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 75173057:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1730704107:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2977263:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 78329697:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -2036290524:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 452320058:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1586349421:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -472884509:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1596311545:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1532478436:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -697973233:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1569826353:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1761257186:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!worked)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
this.resources.put(ib, newAmount);
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (ib.getUUID() == 7)
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
|
|
|
|
|
|
if (transaction)
|
|
|
|
this.AddTransactionToWarehouse(npc.getObjectType(), npc.getObjectUUID(), TransactionType.WITHDRAWL, resourceType, amount);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean transferResources(PlayerCharacter taxer, TaxResourcesMsg msg, ArrayList<Integer> realmResources, float taxPercent, Warehouse toWarehouse) {
|
|
|
|
|
|
|
|
for (int ibID : realmResources) {
|
|
|
|
|
|
|
|
ItemBase ib = ItemBase.getItemBase(ibID);
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int amount = (int) (this.resources.get(ib) * taxPercent);
|
|
|
|
|
|
|
|
if (amount <= 0) {
|
|
|
|
msg.getResources().put(ib.getHashID(), 0);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
int oldAmount = this.resources.get(ib);
|
|
|
|
|
|
|
|
if (oldAmount < amount)
|
|
|
|
amount = oldAmount;
|
|
|
|
|
|
|
|
int hashID = ib.getHashID();
|
|
|
|
int newAmount = oldAmount - amount;
|
|
|
|
|
|
|
|
if (newAmount < amount)
|
|
|
|
continue;
|
|
|
|
|
|
|
|
boolean worked = false;
|
|
|
|
|
|
|
|
switch (hashID) {
|
|
|
|
case 2308551:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGold(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 74856115:
|
|
|
|
worked = DbManager.WarehouseQueries.updateStone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -317484979:
|
|
|
|
worked = DbManager.WarehouseQueries.updateTruesteel(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2504297:
|
|
|
|
worked = DbManager.WarehouseQueries.updateIron(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1741189964:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAdamant(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1603256692:
|
|
|
|
worked = DbManager.WarehouseQueries.updateLumber(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 74767:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOak(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1334770447:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBronzewood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1191391799:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMandrake(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2559427:
|
|
|
|
worked = DbManager.WarehouseQueries.updateCoal(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 75173057:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAgate(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1730704107:
|
|
|
|
worked = DbManager.WarehouseQueries.updateDiamond(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 2977263:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOnyx(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 78329697:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAzoth(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -2036290524:
|
|
|
|
worked = DbManager.WarehouseQueries.updateOrichalk(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 452320058:
|
|
|
|
worked = DbManager.WarehouseQueries.updateAntimony(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1586349421:
|
|
|
|
worked = DbManager.WarehouseQueries.updateSulfur(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -472884509:
|
|
|
|
worked = DbManager.WarehouseQueries.updateQuicksilver(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1596311545:
|
|
|
|
worked = DbManager.WarehouseQueries.updateGalvor(this, newAmount);
|
|
|
|
break;
|
|
|
|
case 1532478436:
|
|
|
|
worked = DbManager.WarehouseQueries.updateWormwood(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -697973233:
|
|
|
|
worked = DbManager.WarehouseQueries.updateObsidian(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1569826353:
|
|
|
|
worked = DbManager.WarehouseQueries.updateBloodstone(this, newAmount);
|
|
|
|
break;
|
|
|
|
case -1761257186:
|
|
|
|
worked = DbManager.WarehouseQueries.updateMithril(this, newAmount);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!worked) {
|
|
|
|
msg.getResources().put(ib.getHashID(), 0);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
msg.getResources().put(ib.getHashID(), amount);
|
|
|
|
|
|
|
|
this.resources.put(ib, newAmount);
|
|
|
|
toWarehouse.depositRealmTaxes(taxer, ib, amount);
|
|
|
|
Resource resourceType;
|
|
|
|
|
|
|
|
if (ib.getUUID() == 7)
|
|
|
|
resourceType = Resource.GOLD;
|
|
|
|
else
|
|
|
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
|
|
|
|
|
|
this.AddTransactionToWarehouse(taxer.getObjectType(), taxer.getObjectUUID(), TransactionType.TAXRESOURCE, resourceType, amount);
|
|
|
|
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized boolean loot(PlayerCharacter pc, ItemBase ib, int amount, boolean addToInventory) {
|
|
|
|
|
|
|
|
if (pc == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (ib == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (this.resources.get(ib) == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (amount <= 0)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
CharacterItemManager itemMan = pc.getCharItemManager();
|
|
|
|
|
|
|
|
if (itemMan == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (!itemMan.hasRoomInventory(ib.getWeight())) {
|
|
|
|
ChatManager.chatSystemInfo(pc, "You can not carry any more of that item.");
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
int oldAmount = this.resources.get(ib);
|
|
|
|
|
|
|
|
if (oldAmount < amount)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
int newAmount = oldAmount - amount;
|
|
|
|
|
|
|
|
this.resources.put(ib, newAmount);
|
|
|
|
|
|
|
|
if (addToInventory) {
|
|
|
|
if (ib.getUUID() == 7) {
|
|
|
|
|
|
|
|
itemMan.addGoldToInventory(amount, false);
|
|
|
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
|
|
ugm.configure();
|
|
|
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
|
|
|
|
|
|
itemMan.updateInventory();
|
|
|
|
} else {
|
|
|
|
boolean itemWorked = false;
|
|
|
|
Item item = new Item(ib, pc.getObjectUUID(), OwnerType.PlayerCharacter, (byte) 0, (byte) 0,
|
|
|
|
(short) 1, (short) 1, true, false, ItemContainerType.INVENTORY, (byte) 0,
|
|
|
|
new ArrayList<>(), "");
|
|
|
|
item.setNumOfItems(amount);
|
|
|
|
item.containerType = Enum.ItemContainerType.INVENTORY;
|
|
|
|
|
|
|
|
try {
|
|
|
|
item = DbManager.ItemQueries.ADD_ITEM(item);
|
|
|
|
itemWorked = true;
|
|
|
|
} catch (Exception e) {
|
|
|
|
Logger.error(e);
|
|
|
|
}
|
|
|
|
if (itemWorked) {
|
|
|
|
itemMan.addItemToInventory(item);
|
|
|
|
itemMan.updateInventory();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void updateDatabase() {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void runAfterLoad() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
Building warehouseBuilding = BuildingManager.getBuilding(this.buildingUID);
|
|
|
|
Logger.info("configuring warehouse " + UID + " for city " + warehouseBuilding.getCity().getCityName() + " structure UUID " + this.buildingUID);
|
|
|
|
|
|
|
|
//Building is gone, but Warehouse still in DB?? Should never happen, sanity check anyway.
|
|
|
|
if (warehouseBuilding == null) {
|
|
|
|
Logger.error("Failed to load Building for Warehouse");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
Zone cityZone = warehouseBuilding.getParentZone();
|
|
|
|
|
|
|
|
if (cityZone == null) {
|
|
|
|
Logger.error("Failed to load Zone for Warehouse with UUID " + this.getObjectUUID());
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
City city = City.getCity(cityZone.getPlayerCityUUID());
|
|
|
|
|
|
|
|
if (city == null) {
|
|
|
|
Logger.error("Failed to load City for Warehouse with UUID " + this.getObjectUUID());
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
warehouseByBuildingUUID.put(this.buildingUID, this);
|
|
|
|
city.setWarehouseBuildingID(this.buildingUID);
|
|
|
|
} catch (Exception E) {
|
|
|
|
Logger.info(this.getObjectUUID() + " failed");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isEmpty() {
|
|
|
|
int amount = 0;
|
|
|
|
for (ItemBase ib : ItemBase.getResourceList()) {
|
|
|
|
if (amount > 0)
|
|
|
|
return false;
|
|
|
|
amount += resources.get(ib);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getBuildingUID() {
|
|
|
|
return buildingUID;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void loadAllTransactions() {
|
|
|
|
this.transactions = DbManager.WarehouseQueries.GET_TRANSACTIONS_FOR_WAREHOUSE(this.buildingUID);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean AddTransactionToWarehouse(GameObjectType targetType, int targetUUID, TransactionType transactionType, Resource resource, int amount) {
|
|
|
|
|
|
|
|
|
|
|
|
if (!DbManager.WarehouseQueries.CREATE_TRANSACTION(this.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now()))
|
|
|
|
return false;
|
|
|
|
|
|
|
|
Transaction transaction = new Transaction(this.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now());
|
|
|
|
this.transactions.add(transaction);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ArrayList<Transaction> getTransactions() {
|
|
|
|
return transactions;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isAboveCap(ItemBase ib, int deposit) {
|
|
|
|
int newAmount = this.resources.get(ib) + deposit;
|
|
|
|
return newAmount > Warehouse.getMaxResources().get(ib.getUUID());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isResourceLocked(ItemBase itemBase) {
|
|
|
|
|
|
|
|
Enum.ResourceType resourceType;
|
|
|
|
|
|
|
|
resourceType = Enum.ResourceType.resourceLookup.get(itemBase.getUUID());
|
|
|
|
|
|
|
|
return resourceType.elementOf(this.lockedResourceTypes);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static int getCostForResource(int id){
|
|
|
|
int newCost = 0;
|
|
|
|
switch(id){
|
|
|
|
case 1580000://stone
|
|
|
|
newCost = 3000;
|
|
|
|
break;
|
|
|
|
case 1580001://truesteel
|
|
|
|
newCost = 50000;
|
|
|
|
break;
|
|
|
|
case 1580002://iron
|
|
|
|
newCost = 50000;
|
|
|
|
break;
|
|
|
|
case 1580003://adamant
|
|
|
|
newCost = 100000;
|
|
|
|
break;
|
|
|
|
case 1580004://lumber
|
|
|
|
newCost = 3000;
|
|
|
|
break;
|
|
|
|
case 1580005://oak
|
|
|
|
newCost = 30000;
|
|
|
|
break;
|
|
|
|
case 1580006://bronzewood
|
|
|
|
newCost = 30000;
|
|
|
|
break;
|
|
|
|
case 1580007://mandrake
|
|
|
|
newCost = 100000;
|
|
|
|
break;
|
|
|
|
case 1580008://coal
|
|
|
|
newCost = 30000;
|
|
|
|
break;
|
|
|
|
case 1580009://agate
|
|
|
|
newCost = 50000;
|
|
|
|
break;
|
|
|
|
case 1580010://diamond
|
|
|
|
newCost = 50000;
|
|
|
|
break;
|
|
|
|
case 1580011://onyx
|
|
|
|
newCost = 100000;
|
|
|
|
break;
|
|
|
|
case 1580012://azoth
|
|
|
|
newCost = 50000;
|
|
|
|
break;
|
|
|
|
case 1580013://orichalk
|
|
|
|
newCost = 30000;
|
|
|
|
break;
|
|
|
|
case 1580014://antimony
|
|
|
|
newCost = 100000;
|
|
|
|
break;
|
|
|
|
case 1580015://sulfur
|
|
|
|
newCost = 100000;
|
|
|
|
break;
|
|
|
|
case 1580016://quicksilver
|
|
|
|
newCost = 100000;
|
|
|
|
break;
|
|
|
|
case 1580017://galvor
|
|
|
|
newCost = 300000;
|
|
|
|
break;
|
|
|
|
case 1580018://wormwood
|
|
|
|
newCost = 300000;
|
|
|
|
break;
|
|
|
|
case 1580019://obsidian
|
|
|
|
newCost = 200000;
|
|
|
|
break;
|
|
|
|
case 1580020://bloodstone
|
|
|
|
newCost = 200000;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return newCost;
|
|
|
|
}
|
|
|
|
}
|