package net.scapeemulator.game.model.player.skills.construction.furniture; import java.util.List; import net.scapeemulator.game.model.player.Item; import net.scapeemulator.game.model.player.requirement.Requirements; import net.scapeemulator.game.model.player.requirement.SkillRequirement; import net.scapeemulator.game.model.player.skills.Skill; import net.scapeemulator.game.model.player.skills.construction.Construction; import net.scapeemulator.game.model.player.skills.construction.room.RoomPlaced; import net.scapeemulator.game.model.player.skills.magic.Rune; import static net.scapeemulator.game.model.player.skills.construction.furniture.Material.*; /** * @author David */ public enum RuneCase implements Furniture { /* @formatter:off */ CASE_1(41, 14, 13507, 8276, TEAK.req(2), GLASS.req(2), new CustomMaterialRequirement("Air, Water, Earth,<br>and Fire runes", 0, Rune.AIR.getItemId(), Rune.WATER.getItemId(), Rune.EARTH.getItemId(), Rune.FIRE.getItemId())), CASE_2(41, 44, 13508, 8277, TEAK.req(2), GLASS.req(2), new CustomMaterialRequirement("Body, Cosmic, Chaos,<br>and Nature runes", 0, Rune.BODY.getItemId(), Rune.COSMIC.getItemId(), Rune.CHAOS.getItemId(), Rune.NATURE.getItemId())), CASE_3(41, 77, 13509, 8278, TEAK.req(2), GLASS.req(2), new CustomMaterialRequirement("Law, Blood, Soul,<br>and Death runes", 0, Rune.LAW.getItemId(), Rune.BLOOD.getItemId(), Rune.SOUL.getItemId(), Rune.DEATH.getItemId())); /* @formatter:on */ private final int conLvl; private final int objectId; private final int itemId; private final Requirements reqs; private final MaterialRequirement[] mats; private RuneCase(int conLvl, int rcLvl, int objectId, int itemId, MaterialRequirement... mats) { this.conLvl = conLvl; this.objectId = objectId; this.itemId = itemId; this.mats = mats; reqs = new Requirements(); reqs.addRequirement(new SkillRequirement(Skill.CONSTRUCTION, conLvl, true, "build that")); reqs.addRequirement(new SkillRequirement(Skill.RUNECRAFTING, rcLvl, true, "build that", 25)); reqs.addRequirements(Construction.HAMMER_REQ, Construction.SAW_REQ); reqs.addRequirements(mats); } @Override public int getLevel() { return conLvl; } @Override public int getObjectId(RoomPlaced room) { return objectId; } @Override public int getItemId() { return itemId; } @Override public Requirements getRequirements() { return reqs; } @Override public MaterialRequirement material(int index) { try { return mats[index]; } catch (IndexOutOfBoundsException e) { return null; } } @Override public double getXp() { double xp = 0; for (MaterialRequirement mat : mats) { xp += mat.getXp(); } return xp; } @Override public List<Item> getReturnedItems() { return null; } }