Code:
package com.rs.game.player.content;
import com.rs.game.Animation;
import com.rs.game.ForceTalk;
import com.rs.game.World;
import com.rs.game.WorldTile;
import com.rs.game.item.Item;
import com.rs.game.npc.NPC;
import com.rs.game.player.Player;
import com.rs.game.tasks.WorldTask;
import com.rs.game.tasks.WorldTasksManager;
import com.rs.utils.Misc;
public class WarriorsGuild {
/*
* 100% crezzy
*/
public static String armUsed;
public static NPC npc;
private static int tokenAmount;
public static int armToSpawn() {
if (armUsed == null)
return 0;
switch (armUsed) {
case "RUNE":
tokenAmount = 30;
return 4284;
case "ADDY":
tokenAmount = 25;
return 4283;
case "MITH":
tokenAmount = 20;
return 4282;
case "BLACK":
tokenAmount = 15;
return 4281;
case "STEEL":
tokenAmount = 10;
return 4280;
default:
return 0;
}
}
/*
* 1 should = a 10% chance of getting a defender
*/
public void cyclopsDeath(Player killer, NPC cyclops) {
if(killer.getInventory().containsItem(20072, 1))
return;
int random = Misc.random(10);
Item defToDrop = (getDefString(killer) == "Dragon" ? new Item(20072)
: new Item(getWhichDef(killer) + 1));
if (random <= 199)
if (inClopsRoom(killer)) {
World.addGroundItem(defToDrop, cyclops.getLastWorldTile(),
killer, false, 1, false);
killer.sm("You have got the "
+ getDefString(killer)
+ " Defender within this drop. Please discard your old defender.");
} else
return;
else
return;
}
private String getDefString(Player p) {
if (p.getInventory().containsItem(8844, 1))
return "Steel";
else if (p.getInventory().containsItem(8846, 1))
return "Black";
else if (p.getInventory().containsItem(8847, 1))
return "Mithril";
else if (p.getInventory().containsItem(8848, 1))
return "Addy";
else if (p.getInventory().containsItem(8849, 1))
return "Rune";
else if (p.getInventory().containsItem(8850, 1)
|| p.getInventory().containsItem(20072, 1))
return "Dragon";
else
return "Iron";
}
private int getWhichDef(Player p) {
switch (getDefString(p)) {
case "Iron":
return 8844;
case "Steel":
return 8845;
case "Black":
return 8846;
case "Mithril":
return 8847;
case "Addy":
return 8848;
case "Rune":
return 8849;
case "dragon":
return 20072;
default:
return 0;
}
}
private static boolean inClopsRoom(Player p) {
return (p.getX() >= 2847 && p.getX() <= 2876 && p.getY() >= 3534
&& p.getY() <= 3556 || p.getX() >= 2838 && p.getX() <= 2847
&& p.getY() >= 3543 && p.getY() <= 3556) ? true : false;
}
private WorldTask CyclopsTask;
private int ticked = 0;
private void armTick(final Player p, final NPC n) {
WorldTasksManager.schedule(new WorldTask() {
@Override
public void run() {
if (!(p.getX() >= 2849 && p.getX() <= 2861 && p.getY() >= 3530 && p
.getY() <= 3541) || !World.getPlayers().contains(p)) {
p.armSpawned = false;
n.sendDeath(n);
this.stop();
} else if (p.getX() >= 2849 && p.getX() <= 2861
&& p.getY() >= 3530 && p.getY() <= 3541 && n.isDead()) {
deleteArmAdd(p, true);
armUsed = null;
this.stop();
}
}
}, 0, 1);
}
private boolean canSpawn(Player p) {
if (p.armSpawned) {
p.sm("You need to kill the current Npc before spawning another!");
return false;
}
if (armUsed == "RUNE" || armUsed == "ADDY" || armUsed == "MITH"
|| armUsed == "BLACK" || armUsed == "STEEL")
return true;
else
return false;
}
public void cyclopDoorEvent(final Player player) {
player.sm(inClopsRoom(player) ? "You left the Cyclops chamber."
: (player.getInventory().compairItemAmount(8851, 100)) ? "You need atleast 100 tokens in your inventory to enter into the Cyclops Chamber!"
: "You enter the Cyclops chamber."
+ (getDefString(player) != "" ? " The Cyclops are currently dropping "
+ getDefString(player) + " Defenders."
: ""));
if (player.getInventory().compairItemAmount(8851, 100)
&& !inClopsRoom(player))
return;
else {
player.setNextWorldTile(new WorldTile(player.getX()
+ (inClopsRoom(player) ? -1 : +2), player.getY(), player
.getPlane()));
if (!inClopsRoom(player))
WorldTasksManager.schedule(new WorldTask() {
@Override
public void run() {
if (!World.getPlayers().contains(player))
this.stop();
player.getInventory().deleteItem(8851, 10);
CyclopsTask = this;
locationCheck(player);
if (!player.getInventory().containsItem(8851, 10)
&& inClopsRoom(player)) {
player.setNextWorldTile(new WorldTile(2843, 3536, 2));
player.sm("All your tokens in your inventory have been used up.");
locationCheck(player);
this.stop();
return;
}
}
}, 0, 10);
}
}
private void deleteAddArm(Player p, int i1, int i2, int i3, boolean adding) {
int[] items = { i1, i2, i3 };
for (int i = 0; i < items.length; i++)
if (!adding)
p.getInventory().deleteItem(items[i], 1);
else {
p.getInventory().addItem(items[i], 1);
p.armSpawned = false;
}
}
private void deleteArmAdd(Player p, boolean adding) {
if (adding)
p.getInventory().addItem(8851, tokenAmount);
if (armUsed != null)
switch (armUsed) {
case "RUNE":
deleteAddArm(p, 1079, 1163, 1127, adding ? true : false);
break;
case "STEEL":
deleteAddArm(p, 1069, 1119, 1157, adding ? true : false);
break;
case "BLACK":
deleteAddArm(p, 1077, 1125, 1165, adding ? true : false);
break;
case "MITH":
deleteAddArm(p, 1071, 1121, 1159, adding ? true : false);
break;
case "ADDY":
deleteAddArm(p, 1073, 1123, 1161, adding ? true : false);
break;
}
}
private boolean hasItems(Player p, int i1, int i2, int i3, String arm) {
if (!p.getInventory().containsItem(i1, 1)
|| !p.getInventory().containsItem(i2, 1)
|| !p.getInventory().containsItem(i3, 1)) {
p.sm("You need all of the pieces of " + arm + " Armour.");
return false;
} else
return true;
}
private void locationCheck(final Player player) {
WorldTasksManager.schedule(new WorldTask() {
@Override
public void run() {
if (!inClopsRoom(player))
if (ticked > 20) {
ticked++;
this.stop();
locationCheck(player);
} else {
CyclopsTask.stop();
this.stop();
}
}
}, 0, 20);
return;
}
public void npcSpawnStuff(NPC n) {
npc = n;
npc.setNextForceTalk(new ForceTalk("I'm Alive!"));
npc.setNextAnimation(new Animation(1056, 1));
npc.setForceMultiArea(false);
}
public void setString(Player p, int itemId) {
if (itemId == 1079 || itemId == 1163 || itemId == 1127)
if (hasItems(p, 1079, 1163, 1127, "Rune"))
armUsed = "RUNE";
else if (itemId == 1069 || itemId == 1119 || itemId == 1157)
if (hasItems(p, 1069, 1119, 1157, "Steel"))
armUsed = "STEEL";
else if (itemId == 1077 || itemId == 1125 || itemId == 1165)
if (hasItems(p, 1077, 1125, 1065, "Black"))
armUsed = "BLACK";
else if (itemId == 1071 || itemId == 1121 || itemId == 1159)
if (hasItems(p, 1071, 1121, 1159, "Mithril"))
armUsed = "MITH";
else if (itemId == 1073 || itemId == 1123
|| itemId == 1161)
if (hasItems(p, 1073, 1123, 1161, "Addy"))
armUsed = "ADDY";
}
public void spawnArm(Player p, int x, int y) {
if (canSpawn(p)) {
World.spawnNPC(armToSpawn(), new WorldTile(x, y, p.getPlane()), -1,
true, true);
p.armSpawned = true;
deleteArmAdd(p, false);
p.addWalkSteps(p.getX() == 2851 ? 2851 : 2857, 3537, 5, true);
npc.setTarget(p);
p.getHintIconsManager().addHintIcon(npc, 0, -1, false);
armTick(p, npc);
}
}
}