1package com.osroyale.game.world.items.containers.bank;
3import com.osroyale.game.world.entity.mob.player.Player;
4import com.osroyale.game.world.entity.mob.player.PlayerRight;
5import com.osroyale.game.world.items.Item;
6import com.osroyale.net.packet.out.SendItemOnInterface;
7import com.osroyale.net.packet.out.SendMessage;
8import com.osroyale.net.packet.out.SendString;
9import com.osroyale.util.MessageColor;
10import com.osroyale.util.Utility;
12import static com.osroyale.game.world.items.containers.bank.VaultCurrency.BLOOD_MONEY;
13import static com.osroyale.game.world.items.containers.bank.VaultCurrency.COINS;
61 private final Player player;
63 public long coinsContainer;
64 public long bloodMoneyContainer;
73 long coins = getContainer(COINS);
74 long bloodMoney = getContainer(BLOOD_MONEY);
77 player.send(
new SendItemOnInterface(56314,
new Item(995, coins),
new Item(13307, bloodMoney)));
78 player.interfaceManager.
open(56300);
81 private long getContainer(VaultCurrency currency) {
82 return currency == COINS ? coinsContainer : bloodMoneyContainer;
87 long container = getContainer(currency);
93 return getContainer(currency) >= amount;
98 return add(currency, amount,
false);
103 long container = getContainer(currency);
105 if (player.right ==
PlayerRight.ULTIMATE_IRONMAN) {
106 player.inventory.addOrDrop(
new Item(currency.id, (
int) amount));
110 if (container + amount >= Long.MAX_VALUE) {
114 if (currency == COINS) {
115 coinsContainer += amount;
116 }
else if (currency == BLOOD_MONEY) {
117 bloodMoneyContainer += amount;
128 if (currency == COINS) {
129 coinsContainer -= amount;
130 }
else if (currency == BLOOD_MONEY) {
131 bloodMoneyContainer -= amount;
137 long container = getContainer(currency);
139 if (Long.MAX_VALUE == container) {
140 player.send(
new SendMessage(
"Your vault is currently full and can no longer hold any more " + currency.name +
"!",
MessageColor.RED));
144 if (Long.MAX_VALUE - container < amount) {
145 amount = (int) (Long.MAX_VALUE - container);
148 int invAmount = player.inventory.computeAmountForId(currency.id);
151 if (invAmount < amount) {
152 bankAmount = player.bank.computeAmountForId(currency.id);
153 if (invAmount + bankAmount <= 0) {
159 if (invAmount > amount) {
163 if (bankAmount > amount - invAmount) {
164 bankAmount = amount - invAmount;
167 amount = invAmount + bankAmount;
170 player.inventory.remove(currency.id, invAmount);
172 player.bank.remove(currency.id, bankAmount);
174 add(currency, amount);
175 player.bank.refresh();
178 if (player.interfaceManager.isInterfaceOpen(56300)) {
179 long coins = getContainer(COINS);
180 long bloodMoney = getContainer(BLOOD_MONEY);
183 player.send(
new SendItemOnInterface(56314,
new Item(995, coins),
new Item(13307, bloodMoney)));
189 long container = getContainer(currency);
193 if (container == 0) {
197 if (amount > Integer.MAX_VALUE) {
201 if (amount > container) {
204 int contain = player.inventory.computeAmountForId(currency.id);
205 if (contain + amount > Integer.MAX_VALUE) {
206 amount = contain - amount;
208 if (player.inventory.add(
new Item(currency.id, (
int) amount))) {
209 remove(currency, (int) amount);
211 player.bank.refresh();
213 if (player.interfaceManager.isInterfaceOpen(56300)) {
214 long coins = getContainer(COINS);
215 long bloodMoney = getContainer(BLOOD_MONEY);
218 player.send(
new SendItemOnInterface(56314,
new Item(995, (
int) coins),
new Item(13307, (
int) bloodMoney)));
void open(int identification)
boolean add(VaultCurrency currency, long amount, boolean message)
boolean add(VaultCurrency currency, long amount)
void deposit(VaultCurrency currency, int amount)
void value(VaultCurrency currency)
void withdraw(VaultCurrency currency, long amount)
boolean contains(VaultCurrency currency, int amount)
static String formatDigits(final int amount)
static String formatPrice(final long amount)