Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ruseps.shops.impl;
- import java.sql.ResultSet;
- import java.util.HashMap;
- import com.ruseps.Server;
- import com.ruseps.model.Item;
- import com.ruseps.model.definitions.ItemDefinition;
- import com.ruseps.shops.Shop;
- import com.ruseps.world.content.dialogue.Dialogue;
- import com.ruseps.world.content.dialogue.DialogueExpression;
- import com.ruseps.world.content.dialogue.DialogueManager;
- import com.ruseps.world.content.dialogue.DialogueType;
- import com.ruseps.world.entity.impl.player.JsonPlayerSaving;
- import com.ruseps.world.entity.impl.player.Player;
- public abstract class PointsShop extends Shop {
- public void sendShopName(Player player) {
- player.getPA().sendFrame126(this.getPointsName() + ": (@red@" + this.getPointsAmount(player) + "@lre@)", SHOP_NAME_STRING_ID);
- }
- protected HashMap<Integer, Integer> prices = new HashMap<Integer, Integer>();
- public PointsShop(int id, String name) {
- super(id, name, false);
- try {
- loadPrices();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * Loads the prices for all items
- *
- * @throws Exception
- */
- private void loadPrices() throws Exception {
- if (getPointsName() == "Dungoneering tokens") {
- prices.put(18361, 250000); //ahrim set
- prices.put(18349, 250000); //karil set
- prices.put(18353, 250000); //bolt racks
- prices.put(18357, 250000); //overloads
- prices.put(18355, 250000); //ahrim set
- prices.put(18359, 250000); //karil set
- prices.put(18361, 250000); //bolt racks
- prices.put(18363, 250000); //overloads
- prices.put(16955, 1500000); //overloads
- prices.put(18335, 75000); //ahrim set
- prices.put(16425, 1500000); //karil set
- prices.put(16909, 1500000); //bolt racks
- prices.put(6500, 500000); //overloads
- prices.put(18346, 80000); //overloads
- prices.put(18782, 30000); //overloads
- prices.put(18337, 75000); //overloads
- prices.put(19669, 200000); //overloads
- prices.put(6924, 350); //overloads
- }
- if (getPointsName() == "Bossing points") {
- prices.put(2572, 3); //ahrim set
- prices.put(19713, 20); //karil set
- prices.put(19714, 20); //bolt racks
- prices.put(19715, 20); //overloads
- prices.put(52003, 1800); //ahrim set
- prices.put(51733, 1950); //karil set
- prices.put(11846, 15); //bolt racks
- prices.put(11848, 15); //overloads
- prices.put(11850, 13); //overloads
- prices.put(11854, 13); //ahrim set
- prices.put(11856, 12); //karil set
- prices.put(18830, 1); //bolt racks
- prices.put(15220, 10); //overloads
- prices.put(15018, 10); //overloads
- prices.put(15020, 10); //overloads
- prices.put(15019, 10); //overloads
- prices.put(11716, 13); //overloads
- prices.put(19335, 12); //overloads
- prices.put(15273, 1); //overloads
- prices.put(989, 3); //overloads
- prices.put(985, 1); //ahrim set
- prices.put(987, 1); //karil set
- prices.put(18337, 20); //bolt racks
- prices.put(11730, 25); //overloads
- prices.put(15486, 30); //overloads
- prices.put(15241, 30); //overloads
- prices.put(6500, 25); //overloads
- prices.put(12790, 15); //overloads
- prices.put(10025, 3); //overloads
- prices.put(15501, 45); //overloads
- prices.put(6199, 15); //overloads
- prices.put(12926, 600); //ahrim set
- prices.put(12927, 900); //karil set
- prices.put(19723, 200); //bolt racks
- prices.put(19724, 200); //overloads
- prices.put(19725, 200); //overloads
- prices.put(6831, 1500); //overloads
- prices.put(6832, 2000); //overloads
- prices.put(6830, 3000); //overloads
- }
- if (getPointsName() == "Prestige points") {
- prices.put(15501, 11); //ahrim set
- prices.put(19335, 6); //karil set
- prices.put(15220, 3); //bolt racks
- prices.put(15020, 3); //overloads
- prices.put(15019, 3); //ahrim set
- prices.put(15018, 3); //karil set
- prices.put(20000, 10); //bolt racks
- prices.put(20001, 10); //overloads
- prices.put(20002, 10); //overloads
- prices.put(13855, 6); //ahrim set
- prices.put(13848, 6); //karil set
- prices.put(13857, 6); //bolt racks
- prices.put(13856, 6); //overloads
- prices.put(13854, 6); //overloads
- prices.put(13853, 6); //overloads
- prices.put(13852, 6); //overloads
- prices.put(13851, 6); //overloads
- prices.put(13850, 6); //overloads
- prices.put(13849, 10); //overloads
- prices.put(10400, 8); //ahrim set
- prices.put(10402, 10); //karil set
- prices.put(10418, 8); //bolt racks
- prices.put(10408, 12); //overloads
- prices.put(10410, 10); //overloads
- prices.put(10412, 12); //overloads
- prices.put(10414, 10); //overloads
- prices.put(10406, 8); //overloads
- prices.put(14595, 55); //overloads
- prices.put(14603, 40); //overloads
- prices.put(14602, 20); //overloads
- prices.put(14605, 20); //overloads
- }
- if (getPointsName() == "Donator Points") {
- prices.put(1038, 25); //ahrim set
- prices.put(1042, 25); //karil set
- prices.put(1044, 25); //bolt racks
- prices.put(1046, 25); //overloads
- prices.put(1048, 25); //ahrim set
- prices.put(1053, 25); //karil set
- prices.put(1055, 25); //bolt racks
- prices.put(1057, 25); //overloads
- prices.put(11288, 25); //overloads
- prices.put(14049, 25); //ahrim set
- prices.put(14050, 25); //karil set
- prices.put(14051, 25); //bolt racks
- prices.put(14052, 25); //overloads
- prices.put(1050, 25); //overloads
- prices.put(14044, 25); //overloads
- prices.put(14045, 25); //overloads
- prices.put(14046, 25); //overloads
- prices.put(14047, 25); //overloads
- prices.put(14048, 25); //overloads
- prices.put(13658, 30); //ahrim set
- prices.put(13360, 30); //karil set
- prices.put(13662, 30); //bolt racks
- prices.put(13664, 30); //overloads
- prices.put(13665, 30); //ahrim set
- prices.put(13666, 30); //karil set
- prices.put(13667, 30); //bolt racks
- prices.put(13668, 30); //overloads
- prices.put(13669, 30); //overloads
- prices.put(13670, 30); //ahrim set
- prices.put(13671, 30); //karil set
- prices.put(13672, 30); //bolt racks
- prices.put(13673, 30); //overloads
- prices.put(13674, 30); //overloads
- prices.put(13675, 30); //overloads
- prices.put(13676, 30); //overloads
- prices.put(13690, 30); //overloads
- prices.put(13678, 30); //overloads
- prices.put(13679, 30); //overloads
- prices.put(13680, 30); //overloads
- }
- if (getPointsName() == "Vote Points") {
- prices.put(14004, 32); //ahrim set
- prices.put(14005, 24); //karil set
- prices.put(14006, 40); //bolt racks
- prices.put(14007, 16); //overloads
- prices.put(11350, 90); //ahrim set
- prices.put(11352, 100); //karil set
- prices.put(11353, 124); //bolt racks
- prices.put(11354, 72); //overloads
- prices.put(11351, 116); //overloads
- prices.put(13045, 56); //ahrim set
- prices.put(50463, 1); //karil set
- prices.put(15018, 16); //bolt racks
- prices.put(15019, 16); //overloads
- prices.put(15020, 16); //overloads
- prices.put(15220, 8); //overloads
- prices.put(6570, 8); //overloads
- prices.put(19111, 16); //overloads
- prices.put(14000, 40); //overloads
- prices.put(14001, 48); //ahrim set
- prices.put(14002, 64); //karil set
- prices.put(14003, 72); //bolt racks
- prices.put(2581, 16); //overloads
- prices.put(2577, 16); //ahrim set
- prices.put(6585, 4); //karil set
- prices.put(19335, 16); //bolt racks
- prices.put(15332, 2); //overloads
- prices.put(6500, 40); //overloads
- prices.put(19336, 96); //ahrim set
- prices.put(19337, 112); //karil set
- prices.put(19338, 104); //bolt racks
- prices.put(19339, 104); //overloads
- prices.put(19340, 96); //overloads
- prices.put(20072, 16); //overloads
- prices.put(9813, 88); //overloads
- prices.put(11614, 480); //overloads
- prices.put(10025, 2); //overloads
- prices.put(4151, 32); //ahrim set
- prices.put(13754, 88); //karil set
- prices.put(6199, 8); //bolt racks
- prices.put(15501, 48); //overloads
- prices.put(10942, 148); //ahrim set
- prices.put(42608, 10); //karil set
- prices.put(42637, 10); //bolt racks
- prices.put(42638, 10); //overloads
- prices.put(42639, 10); //overloads
- prices.put(42795, 10); //ahrim set
- prices.put(19713, 25); //karil set
- prices.put(19714, 16); //bolt racks
- prices.put(19715, 16); //overloads
- prices.put(4031, 16); //overloads
- }
- if (getPointsName() == "Trivia points") {
- prices.put(18782, 10); //ahrim set
- prices.put(7956, 2); //karil set
- prices.put(989, 2); //bolt racks
- prices.put(2572, 3); //overloads
- prices.put(15332, 2); //ahrim set
- prices.put(15273, 1); //karil set
- prices.put(537, 1); //bolt racks
- prices.put(6500, 20); //overloads
- prices.put(6199, 10); //overloads
- prices.put(3486, 140); //ahrim set
- prices.put(3481, 210); //karil set
- prices.put(3483, 190); //bolt racks
- prices.put(3485, 190); //overloads
- prices.put(3488, 200); //overloads
- prices.put(11906, 650); //overloads
- prices.put(11884, 470); //overloads
- prices.put(19422, 40); //overloads
- prices.put(19413, 60); //overloads
- prices.put(19416, 60); //overloads
- prices.put(19425, 55); //overloads
- prices.put(19437, 40); //ahrim set
- prices.put(19428, 60); //karil set
- prices.put(19431, 60); //bolt racks
- prices.put(19440, 55); //overloads
- prices.put(14000, 100); //overloads
- prices.put(14001, 160); //overloads
- prices.put(14002, 190); //overloads
- prices.put(14003, 200); //overloads
- prices.put(11716, 50); //overloads
- prices.put(10025, 2); //overloads
- }
- if (getPointsName() == "Slayer Points") {
- prices.put(13263, 250); //ahrim set
- prices.put(13281, 1); //karil set
- prices.put(15403, 40); //bolt racks
- prices.put(11730, 50); //overloads
- prices.put(10887, 65); //ahrim set
- prices.put(11235, 70); //karil set
- prices.put(4151, 60); //bolt racks
- prices.put(15486, 40); //overloads
- prices.put(15241, 65); //overloads
- prices.put(15243, 1); //ahrim set
- prices.put(10551, 15); //karil set
- prices.put(2572, 20); //bolt racks
- prices.put(2581, 35); //overloads
- prices.put(2577, 30); //overloads
- prices.put(6585, 15); //overloads
- prices.put(11716, 20); //overloads
- prices.put(18337, 10); //overloads
- prices.put(11732, 25); //overloads
- prices.put(15220, 40); //overloads
- prices.put(15020, 40); //overloads
- prices.put(15019, 40); //overloads
- prices.put(15018, 40); //overloads
- }
- }
- @Override
- public void sellToShop(Player player, Item item) {
- player.sendMessage("You can't sell to this shop.");
- }
- @Override
- public void buyFromShop(Player player, Item item) {
- int price = item.getCount() * getPrice(item.getId());
- final PointsShop shop = this;
- if (getPointsAmount(player) >= price) {
- DialogueManager.start(player, new Dialogue() {
- @Override
- public int id() {
- return 1;
- }
- @Override
- public DialogueType type() {
- return DialogueType.ITEM_STATEMENT;
- }
- @Override
- public String[] item() {
- return new String[] {
- ""+item.getId()+"",
- "180",
- ""+item.getDefinition().getName()+""
- };
- }
- @Override
- public boolean closeInterface() {
- return false;
- }
- @Override
- public String[] dialogue() {
- return new String[] { "Are you sure you want to buy "+item.getAmount()+"x of this item?",
- "Price: "+price+" "+shop.getPointsName()+""};
- }
- @Override
- public Dialogue nextDialogue() {
- return new Dialogue() {
- @Override
- public int id() {
- return 1;
- }
- @Override
- public DialogueType type() {
- return DialogueType.OPTION;
- }
- @Override
- public DialogueExpression animation() {
- return null;
- }
- @Override
- public String[] dialogue() {
- return new String[] { "Yes, purchase item.",
- "No, cancel."};
- }
- @Override
- public boolean closeInterface() {
- return false;
- }
- @Override
- public boolean action(int option) {
- switch(option) {
- case 1:
- shop.buyItem(player, item, price);
- player.getPacketSender().closeDialogueOnly();
- break;
- case 2:
- player.getPacketSender().closeDialogueOnly();
- break;
- }
- return true;
- }
- };
- }
- });
- update();
- } else {
- player.sendMessage("You don't have enough " + getPointsName() + " to buy this item.");
- }
- }
- public void buyItem(Player player, Item item, int price) {
- if (getPointsAmount(player) >= price) {
- if (!this.contains(item.getId())) {
- player.sendMessage("This shop doesn't seem to carry this anymore.");
- return;
- }
- if (price == 0) {
- if (item.getAmount() == 0) {
- player.sendMessage("You don't have enough inventory space to buy this item");
- return;
- }
- player.sendMessage("Please contact a staff member about this issue.");
- return;
- }
- setPointsAmount(player, getPointsAmount(player) - price);
- player.getPA().sendFrame126(getPointsName() + ": (@red@" + this.getPointsAmount(player) + "@lre@)", 3901);
- //System.out.println("Adding item: " + item.getId());
- player.getInventory().add(item.getId(), item.getAmount(), "Buy from points shop");
- JsonPlayerSaving.save(player);
- player.getPacketSender().sendItemContainer(player.getInventory(), 3823);
- player.getPacketSender().closeDialogueOnly();
- } else {
- player.sendMessage("You don't have enough " + getPointsName() + " to buy this item.");
- }
- }
- @Override
- public void valueSellItem(Player player, Item item) {
- player.sendMessage("You can't sell to this shop.");
- }
- @Override
- public void process() {
- update();
- }
- public abstract String getPointsName();
- @Override
- public int getPrice(int itemId) {
- if (prices.containsKey(itemId)) {
- return prices.get(itemId);
- }
- return 0;
- }
- @Override
- public void valueBuyItem(Player player, Item item) {
- //System.out.println("Value buy: " + item.getId());
- int price = getPrice(item.getId());
- String message = "The shop will sell a " + item.getDefinition().getName() + " for @dre@" + price + "</col> " + getPointsName() + ".";
- if (price == 1) {
- message = message.replace("points", "point").replace("Points", "Point");
- }
- player.sendMessage(message);
- }
- public void setPrice(int itemId, int price) {
- prices.put(itemId, price);
- }
- protected abstract int getPointsAmount(Player player);
- protected abstract void setPointsAmount(Player player, int value);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement