Code:
package server.model.players.skills;
import server.Config;
import server.model.players.Client;
public class Fletching {
Client c;
public Fletching(Client c) {
this.c = c;
}
public boolean fletching = false;
int fletchType = 0, amount = 0, log = 0;
public void handleFletchingClick(int clickId) {
for (int j = 0; j < buttons.length; j++) {
if (buttons[j][0] == clickId) {
fletchType = buttons[j][1];
amount = buttons[j][2];
for (int i = 0; i < logType.length; i++)
if (log == logType[i]) {
fletchBow(i);
break;
}
break;
}
}
}
public void fletchBow(int index) {
int toAdd = getItemToAdd(index);
int amountToAdd = getAmountToAdd(toAdd);
int levelReq = getLevel(index);
for (int j = 0; j < amount; j++) {
if (c.getItems().playerHasItem(logType[index], 1)) {
if (c.playerLevel[c.playerFletching] >= levelReq) {
c.getItems().deleteItem(logType[index], c.getItems().getItemSlot(logType[index]), 1);
c.getItems().addItem(toAdd, amountToAdd);
c.getPA().addSkillXP(getExp(index) * Config.XP_RATE, c.playerFletching);
} else {
c.sendMessage("You need a fletching level of " + levelReq + " to fletch this item.");
break;
}
} else {
break;
}
}
}
public int getLevel(int index) {
if (fletchType == 3)
return 1;
else if (fletchType == 1)
return sbReq[index];
else
return lbReq[index];
}
public double getExp(int index) {
if (fletchType == 3)
return 5;
else if (fletchType == 1)
return sbExp[index];
else
return lbExp[index];
}
public int getItemToAdd(int index) {
if (fletchType == 3)
return shaft;
else if (fletchType == 1)
return shortbows[index];
else if (fletchType == 2)
return longbows[index];
return 0;
}
public int getAmountToAdd(int id) {
if (id == 52)
return 15;
else
return 1;
}
public int shaft = 52;
public int[] logType = {1511, 1521, 1519, 1517, 1515, 1513};
public int[] shortbows = {841, 843, 849, 853, 857, 861};
public int[] longbows = {839, 845, 847, 851, 855, 859};
public double[] sbExp = {5, 16.5, 33.25, 50, 67.5, 88.25};
public double[] lbExp = {10, 25, 41.5, 58.25, 75, 91.5};
public int[] sbReq = {5, 20, 35, 50, 65, 80};
public int[] lbReq = {10, 25, 40, 55, 70, 85};
public void handleLog(int item1, int item2) {
if (item1 == 946) {
openFletching(item2);
} else if (item2 == 946){
openFletching(item1);
}
}
public int amt = c.getItems().getItemCount(log);
public int[][] buttons = {
{34185, 1, 1},
{34189,2,1},
{34170, 1, 1},
{34174, 2, 1},
{34193,3,1},
{34173, 2, amt > 5 ? 5 : amt},
{34169, 1, amt > 5 ? 5 : amt},
{34184,1,amt > 5 ? 5 : amt},
{34188,2,amt > 5 ? 5 : amt},
{34193,3,amt > 5 ? 5 : amt},
{34172, 2, amt > 10 ? 10 : amt},
{34168, 1, amt > 10 ? 10 : amt},
{34183, 1, amt > 10 ? 10 : amt},
{34187,2,amt > 10 ? 10 : amt},
{34193,3,amt > 10 ? 10 : amt},
{34182,1,amt > 27 ? 27 : amt},
{34186,2,amt > 27 ? 27 : amt},
{34193,3,amt > 27 ? 27 : amt},
{34167, 1, amt > 27 ? 27 : amt},
{34171, 2, amt > 27 ? 27 : amt}};
public void openFletching(int item) {
switch(item){
case 1511:
c.getPA().sendFrame164(8880);
c.getPA().sendFrame126("What would you like to make?", 8879);
c.getPA().sendFrame246(8884, 250, 839); // middle
c.getPA().sendFrame246(8883, 250, 841); // left picture
c.getPA().sendFrame246(8885, 250, 52); // right pic
c.getPA().sendFrame126("Shortbow", 8889);
c.getPA().sendFrame126("Longbow", 8893);
c.getPA().sendFrame126("Arrow Shafts", 8897);
log = item;
break;
case 1521:
c.getPA().sendFrame164(8866);
c.getPA().sendFrame126("What would you like to make?", 8879);
c.getPA().sendFrame246(8870, 250, 845); // middle
c.getPA().sendFrame246(8869, 250, 843); // left picture
c.getPA().sendFrame126("Oak Shortbow", 8871);
c.getPA().sendFrame126("Oak Longbow", 8878);
log = item;
break;
case 1519:
c.getPA().sendFrame164(8866);
c.getPA().sendFrame126("What would you like to make?", 8879);
c.getPA().sendFrame246(8870, 250, 845); // middle
c.getPA().sendFrame246(8869, 250, 843); // left picture
c.getPA().sendFrame126("Willow Shortbow", 8871);
c.getPA().sendFrame126("Willow Longbow", 8878);
log = item;
break;
case 1517:
c.getPA().sendFrame164(8866);
c.getPA().sendFrame126("What would you like to make?", 8879);
c.getPA().sendFrame246(8870, 250, 845); // middle
c.getPA().sendFrame246(8869, 250, 843); // left picture
c.getPA().sendFrame126("Maple Shortbow", 8871);
c.getPA().sendFrame126("Maple Longbow", 8878);
log = item;
break;
case 1515:
c.getPA().sendFrame164(8866);
c.getPA().sendFrame126("What would you like to make?", 8879);
c.getPA().sendFrame246(8870, 250, 845); // middle
c.getPA().sendFrame246(8869, 250, 843); // left picture
c.getPA().sendFrame126("Yew Shortbow", 8871);
c.getPA().sendFrame126("Yew Longbow", 8878);
log = item;
break;
case 1513:
c.getPA().sendFrame164(8866);
c.getPA().sendFrame126("What would you like to make?", 8879);
c.getPA().sendFrame246(8870, 250, 845); // middle
c.getPA().sendFrame246(8869, 250, 843); // left picture
c.getPA().sendFrame126("Magic Shortbow", 8871);
c.getPA().sendFrame126("Magic Longbow", 8878);
log = item;
break;
}
fletching = true;
}
public boolean isLog(int log) {
for(int i = 0; i < logType.length; i++) {
if(logType[i] == log)
return true;
}
return false;
}
private double[][] stringArray = {
{50, 841, 5, 5}, {48, 839, 10, 10},
{54, 843, 20, 16.5}, {56 ,845, 25, 25},
{60, 849, 35, 33.5}, {58, 847, 40, 41.5},
{64, 853, 50, 50}, {62, 851, 55, 58.25},
{68, 857, 65, 67.5}, {66, 855, 70, 75},
{72, 861, 80, 83.25}, {70, 859, 85, 191.5}
};
public boolean isUnstrung(int unstrung) {
for(int i = 0; i < stringArray.length; i++) {
if(stringArray[i][0] == unstrung)
return true;
}
return false;
}
public void finishBow(int unstrungBow){
for (int j = 0; j < stringArray.length; j++) {
if(stringArray[j][0] == unstrungBow){
if(c.playerLevel[2] == stringArray[j][2]){
c.getItems().deleteItem(unstrungBow, 1);
c.getItems().deleteItem(1777, 1);
c.getItems().addItem((int)stringArray[j][1], 1);
c.sendMessage("s");
c.getPA().addSkillXP(stringArray[j][3], 1);
}
}
}
}
private double[][] dartArray = {
{819, 806, 1, 1.8}, {820, 807, 22, 3.8},
{821, 808, 37, 7.5}, {822, 809, 52, 11.2},
{823, 810, 67, 15}, {824, 811, 81, 18.8}
};
public int dartAmount(int index) {
int tip = c.getItems().getItemCount((int)dartArray[index][0]);
int feather = c.getItems().getItemCount(314);
if (tip > feather && feather < 15)
return feather;
else if (feather > tip && tip < 15)
return tip;
return 15;
}
public void makeDart(int dartTip) {
for (int j = 0; j < dartArray.length; j++) {
//dartTip = (int) dartArray[j][0];
if (dartArray[j][0] == dartTip) {
if(c.playerLevel[2] == dartArray[j][2]){
c.getItems().deleteItem(dartTip, dartAmount(j));
c.getItems().deleteItem(314, dartAmount(j));
c.getItems().addItem((int)dartArray[j][1], dartAmount(j));
c.sendMessage("s");
c.getPA().addSkillXP(dartArray[j][3] * dartAmount(j), 1);
} else {
c.sendMessage("s");
}
}
}
}
public boolean isDartTip(int dartTip) {
for(int i = 0; i < dartArray.length; i++) {
if(dartArray[i][0] == dartTip)
return true;
}
return false;
}
private double[][] arrowData = {
{39, 882, 1, 2.6}, {40, 884, 15, 3.8},
{41, 886, 30, 6.3}, {42, 888, 45, 8.8},
{43, 890, 60, 11.3}, {44, 892, 75, 13.8}
};
private int arrowAmount(int index) {
int shaft = c.getItems().getItemCount(53);
int head = c.getItems().getItemCount((int)arrowData[index][1]);
if (shaft > head && head < 15)
return head;
else if (head > shaft && shaft < 15)
return shaft;
return 15;
}
public void makeArrow(int head) {
for (int j = 0; j < arrowData.length; j++) {
//dartTip = (int) dartArray[j][0];
if (arrowData[j][0] == head) {
if(c.playerLevel[2] == arrowData[j][2]){
c.getItems().deleteItem(head, arrowAmount(j));
c.getItems().deleteItem(53, arrowAmount(j));
c.getItems().addItem((int)arrowData[j][1], arrowAmount(j));
c.sendMessage("s");
c.getPA().addSkillXP(arrowData[j][3] * arrowAmount(j), 1);
}
else {
c.sendMessage("s");
}
}
}
}
public boolean isArrowHead(int arrowHead) {
for(int i = 0; i < arrowData.length; i++) {
if(arrowData[i][0] == arrowHead)
return true;
}
return false;
}
public int headlessAmount() {
int shaft = c.getItems().getItemCount(52);
int feather = c.getItems().getItemCount(314);
if (shaft > feather && feather < 15)
return feather;
else if (feather > shaft && shaft < 15)
return shaft;
return 15;
}
public void makeHeadlessArrow() {
c.getItems().deleteItem(52, headlessAmount());
c.getItems().deleteItem(314, headlessAmount());
c.getItems().addItem(53, headlessAmount());
c.sendMessage("s");
c.getPA().addSkillXP(headlessAmount(), 1);
}
}