RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ViggorasChainmace.java
1package com.osroyale.content.itemaction.impl;
2
3import com.osroyale.content.itemaction.ItemAction;
4import com.osroyale.game.world.entity.mob.player.Player;
5import com.osroyale.game.world.items.Item;
6import com.osroyale.game.world.items.ItemDefinition;
7import com.osroyale.net.packet.out.SendInputAmount;
8import com.osroyale.util.Utility;
9
38
39public class ViggorasChainmace extends ItemAction {
40
41 public static final short VIGGORAS_CHAINMACE_UNCHARGED_ID = 22542;
42 public static final short VIGGORAS_CHAINMACE_CHARGED_ID = 22545;
43 public static final short ETHER_ID = 21820;
44
45 @Override
46 public String name() {
47 return "Viggora's chainmace";
48 }
49
50 @Override
51 public boolean itemOnItem(Player player, Item first, Item second) {
52 System.out.println("?????");
53 if ((first.getId() != VIGGORAS_CHAINMACE_UNCHARGED_ID && second.getId() != VIGGORAS_CHAINMACE_UNCHARGED_ID) && (first.getId() != VIGGORAS_CHAINMACE_CHARGED_ID && second.getId() != VIGGORAS_CHAINMACE_CHARGED_ID)) {
54 System.out.println("dfgdfgdfg");
55 return false;
56 }
57
58 if(first.getId() == ETHER_ID || second.getId() == ETHER_ID) {
59 if (first.getId() == VIGGORAS_CHAINMACE_UNCHARGED_ID || second.getId() == VIGGORAS_CHAINMACE_UNCHARGED_ID) {
60 if(!player.inventory.contains(ETHER_ID, 1000)) {
61 player.message("You need at least 1000 "+ ItemDefinition.get(ETHER_ID).getName() +" to charge the "+name()+".");
62 return true;
63 }
64 player.inventory.remove(ETHER_ID, 1000);
65 player.inventory.remove(VIGGORAS_CHAINMACE_UNCHARGED_ID);
66 player.inventory.add(VIGGORAS_CHAINMACE_CHARGED_ID, 1);
67 player.inventory.refresh();
68 } else {
69 System.out.println("Recharge craws bow");
70 player.send(new SendInputAmount("How many charges would you like add? (0-"+player.inventory.computeAmountForId(ETHER_ID)+")", 10, input -> charge(player, Integer.parseInt(input))));
71 }
72 return true;
73 }
74
75 return false;
76 }
77
78 @Override
79 public boolean inventory(Player player, Item item, int opcode) {
80 if (item.getId() != VIGGORAS_CHAINMACE_CHARGED_ID) {
81 return false;
82 }
83
84 if (opcode == 2) {
85 check(player);
86 return true;
87 }
88
89 return false;
90 }
91
92 @Override
93 public boolean equipment(Player player, Item item, int opcode) {
94 if (item.getId() != VIGGORAS_CHAINMACE_CHARGED_ID) {
95 return false;
96 }
97 if (opcode == 1) {
98 check(player);
99 return true;
100 }
101 return true;
102 }
103
104 @Override
105 public boolean drop(Player player, Item item) {
106 if (item.getId() != VIGGORAS_CHAINMACE_CHARGED_ID) {
107 return false;
108 }
109
110 player.inventory.remove(VIGGORAS_CHAINMACE_CHARGED_ID);
111 player.inventory.add(VIGGORAS_CHAINMACE_UNCHARGED_ID, 1);
112 player.inventory.add(ETHER_ID, 1000 + player.viggorasChainmaceCharges);
113 player.viggorasChainmaceCharges = 0;
114
115 player.message("You uncharge your "+name()+".");
116
117 return true;
118 }
119
120 private void check(Player player) {
121 player.message("You have " + Utility.formatDigits(player.viggorasChainmaceCharges) + " charges in your "+name()+".");
122 }
123
124 private void charge(Player player, int amount) {
125 if (amount > player.inventory.computeAmountForId(ETHER_ID)) {
126 amount = player.inventory.computeAmountForId(ETHER_ID);
127 }
128 if (amount > 0) {
129 player.inventory.remove(ETHER_ID, amount);
130 player.inventory.refresh();
131 player.viggorasChainmaceCharges += amount;
132 player.message("You added " + amount + " charges to your "+name()+"");
133 }
134 }
135
136}
boolean inventory(Player player, Item item, int opcode)