All pastes #2055792 Raw Edit

Something

public text v1 · immutable
#2055792 ·published 2011-05-09 15:48 UTC
rendered paste body
new AryanLineTwoWayObject(SLAYERTOWER_AGILITY_SHORTCUT_1_IN, SLAYERTOWER_AGILITY_SHORTCUT_1_OUT, new int[] { 9319, -10, 10, -10, 10, 0, 327, 1, 1, 0 }, new int[] { 9320, -10, 10, -10,
						10, 0, 327, 1, 1, 0 }, "Climb-up", "Climb-down") {
					final ItemCondition slayerHelmet_or_nosePeg = new ItemContainsAny(new String[] { "Slayer helmet", "Nose peg" });
					final ItemRequirement[] req = new ItemRequirement[] { new ItemRequirement(slayerHelmet_or_nosePeg, 1) };

					public boolean doActionForAToB(ColorSkeltonScriptable cs) throws InterruptedException, AryanWebReCalc, AryanWebChanged, AryanWebHalt {
						//String helmet = null;
						if (cs.theTabs.Statistics.getStatBottom(Skill.AGILITY) < 61) {
							while (true) {
								if (cs.theTabs.Equipment.isWearing(slayerHelmet_or_nosePeg)) {
									break;
								} else if (cs.theTabs.Inventory.count(slayerHelmet_or_nosePeg) > 0) {
									Pattern wear = Pattern.compile(".*Wear.*|.*Wield.*", Pattern.CASE_INSENSITIVE);
									//helmet = cs.theTabs.Equipment.getHelm();
									cs.theTabs.Inventory.doActionP(slayerHelmet_or_nosePeg, wear, 1, true);
									for (Timer t = new Timer(3500); t.isNotUp();) {
										if (cs.theTabs.Equipment.isWearing(slayerHelmet_or_nosePeg)) {
											break;
										}
										cs.sleep(100);
									}
								} else {
									cs.warn("[REQUIREMENT] > Missing > " + slayerHelmet_or_nosePeg.toString());
									return false;
								}
							}
						}
						return super.doActionForAToB(cs);
					}

					@Override
					public boolean hasActionFromAToB() {
						return true;
					}

					public boolean doActionForBToA(ColorSkeltonScriptable cs) throws InterruptedException, AryanWebReCalc, AryanWebChanged, AryanWebHalt {
						//String helmet = null;
						if (cs.theTabs.Statistics.getStatBottom(Skill.AGILITY) < 61) {
							while (true) {
								if (cs.theTabs.Equipment.isWearing(slayerHelmet_or_nosePeg)) {
									break;
								} else if (cs.theTabs.Inventory.count(slayerHelmet_or_nosePeg) > 0) {
									Pattern wear = Pattern.compile(".*Wear.*|.*Wield.*", Pattern.CASE_INSENSITIVE);
									//helmet = cs.theTabs.Equipment.getHelm();
									cs.theTabs.Inventory.doActionP(slayerHelmet_or_nosePeg, wear, 1, true);
									for (Timer t = new Timer(3500); t.isNotUp();) {
										if (cs.theTabs.Equipment.isWearing(slayerHelmet_or_nosePeg)) {
											break;
										}
										cs.sleep(100);
									}
								} else {
									cs.warn("[REQUIREMENT] > Missing > " + slayerHelmet_or_nosePeg.toString());
									return false;
								}
							}
						}
						return super.doActionForBToA(cs);
					}

					@Override
					public boolean hasActionFromBToA() {
						return true;
					}

					public ItemRequirement[] getItemRequirementsFromAToB(CachedInformation info) {
						if (info.SkillLevels[Skill.AGILITY.index] > 60) {
							return null;
						}
						return req;
					}

					public ItemRequirement[] getItemRequirementsFromBToA(CachedInformation info) {
						if (info.SkillLevels[Skill.AGILITY.index] > 60) {
							return null;
						}
						return req;
					}

					@Override
					public int getDistanceFromBToA(ColorSkeltonScriptable cs, CachedInformation info) throws InterruptedException {
						if (info.SkillLevels[Skill.AGILITY.index] < 61) {
							//not possible
							return -1;
						}
						if ((info.hasItemInInventory(slayerHelmet_or_nosePeg) || info.isWearing(slayerHelmet_or_nosePeg))) {
							return super.getDistanceFromBToA(cs, info);
						} else {
							return 20000;
						}
					}

					@Override
					public int getDistanceFromAToB(ColorSkeltonScriptable cs, CachedInformation info) throws InterruptedException {
						if (info.SkillLevels[Skill.AGILITY.index] < 61) {
							//not possible
							return -1;
						}
						if ((info.hasItemInInventory(slayerHelmet_or_nosePeg) || info.isWearing(slayerHelmet_or_nosePeg))) {
							return super.getDistanceFromBToA(cs, info);
						} else {
							//get from bank
							return 20000;
						}
					}
				},