package net.scapeemulator.game.model.player.skills.ranged; import static net.scapeemulator.game.model.player.skills.ranged.Bolt.*; public enum Crossbow { CROSSBOW(837, OPAL_E), BRONZE(9174, OPAL_E), BLURITE(9176, JADE_E), IRON(9177, PEARL_E), DORGESHUUN(8880, PEARL_E), STEEL(9179, TOPAZ_E), BLACK_CB(13081, BLACK), MITHRIL(9181, EMERALD_E), ADAMANT(9183, DIAMOND_E), RUNE(9185, ONYX_E), KARILS(4734, BOLT_RACK); private final int itemId; private final Bolt maxBolt; private Crossbow(int itemId, Bolt maxBolt) { this.itemId = itemId; this.maxBolt = maxBolt; } public static Crossbow forId(int itemId) { if(itemId >= 4934 && itemId <= 4937) { return KARILS; } for(Crossbow crossbow : values()) { if(crossbow.itemId == itemId) { return crossbow; } } return null; } public boolean validAmmo(Bolt bolt) { if(bolt == null) { return false; } if(this == KARILS) { return bolt == BOLT_RACK; } return bolt.ordinal() <= maxBolt.ordinal(); } }