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 static net.scapeemulator.game.model.player.skills.construction.furniture.Material.*;
/**
* @author David Insley
*/
public enum BasicFurniture implements Furniture {
// ========= GARDEN =========
// Centerpiece
EXIT_PORTAL(1, 13405, 8168, IRON.req(10)),
DECORATIVE_ROCK(5, 13406, 8169, LIMESTONE.req(5)),
POND(10, 13407, 8170, CLAY.req(10)),
IMP_STATUE(15, 13408, 8171, LIMESTONE.req(5), CLAY.req(5)),
DUNGEON_ENTRANCE(70, 13409, 8172, MARBLE.req()),
// Garden tree small
DEAD_TREE(5, 13418, 8173, BAGGED_DEAD.req()),
NICE_TREE(10, 13419, 8174, BAGGED_NICE.req()),
OAK_TREE(15, 13420, 8175, BAGGED_OAK.req()),
WILLOW_TREE(30, 13421, 8176, BAGGED_WILLOW.req()),
MAPLE_TREE(45, 13423, 8177, BAGGED_MAPLE.req()),
YEW_TREE(60, 13422, 8178, BAGGED_YEW.req()),
MAGIC_TREE(75, 13424, 8179, BAGGED_MAGIC.req()),
// Garden tree big
DEAD_TREE_BIG(5, 13411, 8173, BAGGED_DEAD.req()),
NICE_TREE_BIG(10, 13412, 8174, BAGGED_NICE.req()),
OAK_TREE_BIG(15, 13413, 8175, BAGGED_OAK.req()),
WILLOW_TREE_BIG(30, 13414, 8176, BAGGED_WILLOW.req()),
MAPLE_TREE_BIG(45, 13415, 8177, BAGGED_MAPLE.req()),
YEW_TREE_BIG(60, 13416, 8178, BAGGED_YEW.req()),
MAGIC_TREE_BIG(75, 13417, 8179, BAGGED_MAGIC.req()),
// Garden small plant 1
PLANT(1, 13431, 8180, PLANT1.req()),
SMALL_FERN(6, 13432, 8181, PLANT2.req()),
FERN(12, 13433, 8182, PLANT3.req()),
// Garden small plant 2
DOCK_LEAF(1, 13434, 8183, PLANT1.req()),
THISTLE(6, 13435, 8184, PLANT2.req()),
REEDS(12, 13436, 8185, PLANT3.req()),
// Garden big plant 1
FERN_BIG(1, 13425, 8186, PLANT1.req()),
BUSH(6, 13426, 8187, PLANT2.req()),
TALL_PLANT(12, 13427, 8188, PLANT3.req()),
// Garden big plant 2
SHORT_PLANT(1, 13428, 8189, PLANT1.req()),
LARGE_LEAF_BUSH(6, 13429, 8190, PLANT2.req()),
HUGE_PLANT(12, 13430, 8191, PLANT3.req()),
// ========= PARLOUR =========
// Chairs
CRUDE_CHAIR(1, 13581, 8309, PLANK.req(2)),
WOODEN_CHAIR(8, 13582, 8310, PLANK.req(3)),
ROCKING_CHAIR(14, 13583, 8311, PLANK.req(3)),
OAK_CHAIR(19, 13584, 8312, OAK.req(2)),
OAK_ARMCHAIR(26, 13585, 8313, OAK.req(3)),
TEAK_ARMCHAIR(35, 13586, 8314, TEAK.req(2)),
MAHOGANY_ARMCHAIR(50, 13587, 8315, MAHOGANY.req(2)),
// Fireplaces
CLAY_FIREPLACE(3, 13609, 8325, CLAY.req(3)),
LIMESTONE_FIREPLACE(33, 13611, 8326, LIMESTONE.req(2)),
MARBLE_FIREPLACE(63, 13613, 8327, MARBLE.req()),
// Bookcases
WOODEN_BOOKCASE(4, 13597, 8319, PLANK.req(4)),
OAK_BOOKCASE(29, 13598, 8320, OAK.req(3)),
MAHOGANY_BOOKCASE(40, 13599, 8321, MAHOGANY.req(3)),
// Curtains
TORN_CURTAINS(2, 13603, 8322, PLANK.req(3), CLOTH.req(3)),
CURTAINS(18, 13604, 8323, OAK.req(3), CLOTH.req(3)),
OPULENT_CURTAINS(40, 13605, 8324, TEAK.req(3), CLOTH.req(3)),
// Rugs
BROWN_RUG_CENTER(2, 13590, 8316, CLOTH.req(2)),
RUG_CENTER(13, 13593, 8317, CLOTH.req(4)),
OPULENT_RUG_CENTER(65, 13596, 8318, CLOTH.req(4), GOLD_LEAF.req()),
BROWN_RUG_CORNER(BROWN_RUG_CENTER, 13588),
RUG_CORNER(RUG_CENTER, 13591),
OPULENT_RUG_CORNER(OPULENT_RUG_CENTER, 13594),
BROWN_RUG_SIDE(BROWN_RUG_CENTER, 13589),
RUG_SIDE(RUG_CENTER, 13592),
OPULENT_RUG_SIDE(OPULENT_RUG_CENTER, 13595),
// ========= KITCHEN =========
// Tables
KITCHEN_TABLE(12, 13577, 8246, PLANK.req(3)),
OAK_KITCHEN_TABLE(32, 13578, 8247, OAK.req(3)),
TEAK_KITCHEN_TABLE(52, 13579, 8248, TEAK.req(3)),
// Pet blankets
CAT_BLANKET(5, 13574, 8236, CLOTH.req()),
CAT_BASKET(19, 13575, 8237, PLANK.req(2)),
CUSHIONED_BASKET(33, 13576, 8238, PLANK.req(2), WOOL.req(2)),
// Stoves
FIREPIT(5, 13528, 8216, STEEL.req(), CLAY.req(2)),
FIREPIT_WITH_HOOK(11, 13529, 8217, STEEL.req(2), CLAY.req(2)),
FIREPIT_WITH_POT(17, 13531, 8218, STEEL.req(3), CLAY.req(2)),
SMALL_OVEN(24, 13533, 8219, STEEL.req(4)),
LARGE_OVEN(29, 13536, 8220, STEEL.req(5)),
STEEL_RANGE(34, 13539, 8221, STEEL.req(6)),
FANCY_RANGE(42, 13542, 8222, STEEL.req(8)),
// Shelves
SHELF(6, 13545, 8223, PLANK.req(3)),
SHELF_2(12, 13546, 8224, PLANK.req(3), CLAY.req(6)),
SHELF_3(23, 13547, 8225, PLANK.req(3), CLAY.req(6)),
OAK_SHELF(34, 13548, 8226, OAK.req(3), CLAY.req(6)),
OAK_SHELF_2(45, 13549, 8227, OAK.req(3), CLAY.req(6)),
TEAK_SHELF(56, 13550, 8228, TEAK.req(2), CLAY.req(6)),
TEAK_SHELF_2(67, 13551, 8229, TEAK.req(3), CLAY.req(6), GOLD_LEAF.req(2)),
SHELF_DISHES(SHELF, 13552),
SHELF_2_DISHES(SHELF_2, 13553),
SHELF_3_DISHES(SHELF_3, 13554),
OAK_SHELF_DISHES(OAK_SHELF, 13555),
OAK_SHELF_2_DISHES(OAK_SHELF_2, 13556),
TEAK_SHELF_DISHES(TEAK_SHELF, 13557),
TEAK_SHELF_2_DISHES(TEAK_SHELF_2, 13558),
// Larders
LARDER(9, 13565, 8233, PLANK.req(8)),
OAK_LARDER(33, 13566, 8234, OAK.req(8)),
TEAK_LARDER(43, 13567, 8235, TEAK.req(8), CLOTH.req(2)),
// Barrels
BEER(7, 13568, 8239, PLANK.req(3)),
CIDER(12, 13569, 8240, PLANK.req(3), Material.CIDER.req(8)),
ASGARNIAN(18, 13570, 8241, OAK.req(3), ASG_ALE.req(8)),
GREENMANS(26, 13571, 8242, OAK.req(3), GREEN_ALE.req(8)),
DRAGON_BITTER(36, 13572, 8243, OAK.req(3), DRAG_BITTER.req(8), STEEL.req(2)),
CHEFS_DELIGHT(48, 13573, 8244, OAK.req(3), CHEF_DELIGH.req(8), STEEL.req(2)),
// Sinks
PUMP_AND_DRAIN(7, 13559, 8230, STEEL.req(5)),
PUMP_AND_TUB(27, 13561, 8231, STEEL.req(10)),
SINK(47, 13563, 8232, STEEL.req(15)),
// ========= Dining room =========
// Dining tables
WOOD_DINE_TABLE(10, 13293, 8115, PLANK.req(4)),
OAK_DINE_TABLE(22, 13294, 8116, OAK.req(4)),
C_OAK_DINE_TABLE(31, 13295, 8117, OAK.req(6)),
TEAK_DINE_TABLE(38, 13296, 8118, TEAK.req(4)),
C_TEAK_DINE_TABLE(45, 13297, 8819, TEAK.req(6), CLOTH.req(4)),
MAHOG_DINE_TABLE(52, 13298, 8120, MAHOGANY.req(6)),
OPULENT_TABLE(72, 13299, 8121, MAHOGANY.req(6), CLOTH.req(4), GOLD_LEAF.req(4), MARBLE.req(2)),
// Seating
WOODEN_BENCH(10, 13300, 8108, PLANK.req(4)),
OAK_BENCH(22, 13301, 8109, OAK.req(4)),
CARVED_OAK_BENCH(31, 13302, 8110, OAK.req(4)),
TEAK_BENCH(38, 13303, 8111, TEAK.req(4)),
CARVED_TEAK_BENCH(44, 13304, 8112, TEAK.req(4)),
MAHOG_BENCH(52, 13305, 8113, MAHOGANY.req(4)),
GILDED_BENCH(61, 13306, 8114, MAHOGANY.req(4), GOLD_LEAF.req(4)),
// Decorations are in crested furniture
// Bell pulls
ROPE_BELL_PULL(26, 13307, 8099, OAK.req(), ROPE.req()),
BELL_PULL(37, 13308, 8100, TEAK.req(), CLOTH.req(2)),
POSH_BELL_PULL(60, 13309, 8101, TEAK.req(), CLOTH.req(2), GOLD_LEAF.req(1)),
// ========= WORKSHOP =========
// ========= BEDROOM =========
// Beds
WOODEN_BED(20, 13148, 8031, PLANK.req(3), CLOTH.req(2)),
OAK_BED(30, 13149, 8032, OAK.req(3), CLOTH.req(2)),
LARGE_OAK_BED(34, 13150, 8033, OAK.req(5), CLOTH.req(2)),
TEAK_BED(40, 13151, 8034, TEAK.req(3), CLOTH.req(2)),
LARGE_TEAK_BED(45, 13152, 8035, TEAK.req(5), CLOTH.req(2)),
FOUR_POSTER(53, 13153, 8036, MAHOGANY.req(3), CLOTH.req(2)),
GILDED_FOUR_POSTER(60, 13154, 8037, MAHOGANY.req(5), CLOTH.req(2), GOLD_LEAF.req(2)),
// Wardrobes
SHOE_BOX(20, 13155, 8038, PLANK.req(2)),
OAK_DRAWERS(27, 13156, 8039, OAK.req(2)),
OAK_WARDROBE(39, 13157, 8040, OAK.req(3)),
TEAK_DRAWERS(51, 13158, 8041, TEAK.req(2)),
TEAK_WARDROBE(63, 13159, 8042, TEAK.req(3)),
MAHOG_WARDROBE(75, 13160, 8043, MAHOGANY.req(3)),
GILDED_WARDROBE(87, 13161, 8044, MAHOGANY.req(3), GOLD_LEAF.req()),
// Dressers
SHAVER(21, 13162, 8045, PLANK.req(), GLASS.req()),
OAK_SHAVER(29, 13163, 8046, OAK.req(), GLASS.req()),
OAK_DRESSER(37, 13164, 8047, OAK.req(2), GLASS.req()),
TEAK_DRESSER(46, 13165, 8048, TEAK.req(2), GLASS.req()),
FANCY_TEAK_DRESSER(56, 13166, 8049, TEAK.req(2), GLASS.req(2)),
MAHOG_DRESSER(64, 13167, 8050, MAHOGANY.req(2), GLASS.req()),
GILDED_DRESSER(74, 13168, 8051, MAHOGANY.req(2), GLASS.req(2), GOLD_LEAF.req()),
// Clocks
OAK_CLOCK(25, 13169, 8052, OAK.req(2), CLOCKWORK.req()),
TEAK_CLOCK(55, 13170, 8053, TEAK.req(2), CLOCKWORK.req()),
GILDED_CLOCK(85, 13171, 8054, MAHOGANY.req(2), CLOCKWORK.req(), GOLD_LEAF.req()),
// ========= SKILL HALL =========
OAK_STAIRCASE(27, 14497, 8249, OAK.req(10), STEEL.req(4)),
OAK_STAIRCASE_DOWN(OAK_STAIRCASE, 13498),
TEAK_STAIRCASE(47, 13499, 8252, TEAK.req(10), STEEL.req(4)),
TEAK_STAIRCASE_DOWN(TEAK_STAIRCASE, 13500),
SPIRAL_STAIRCASE(67, 13503, 8258, TEAK.req(10), LIMESTONE.req(7)),
SPIRAL_STAIRCASE_DOWN(SPIRAL_STAIRCASE, 13504),
MARBLE_STAIRCASE(82, 13501, 8255, MAHOGANY.req(5), MARBLE.req(5)),
MARBLE_STAIRCASE_DOWN(MARBLE_STAIRCASE, 13502),
MARBLE_SPIRAL(97, 13505, 8259, TEAK.req(10), MARBLE.req(7)),
MARBLE_SPIRAL_DOWN(MARBLE_SPIRAL, 13506),
// Head trophies TODO maybe make these a special type, they give
// slayer/combat xp
CRAWLING_HAND(38, 13481, 8260, TEAK.req(2), STUFFED_HAND.req()),
COCKATRICE_HEAD(38, 13482, 8261, TEAK.req(2), STUFFED_COCKATRICE.req()),
BASILISK_HEAD(38, 13483, 8262, TEAK.req(2), STUFFED_BASILISK.req()),
KURASK_HEAD(58, 13484, 8263, MAHOGANY.req(2), STUFFED_KURASK.req()),
ABYSSAL_HEAD(58, 13485, 8264, MAHOGANY.req(2), STUFFED_ABYSSAL.req()),
KBD_HEAD(78, 13486, 8265, MAHOGANY.req(2), GOLD_LEAF.req(2), STUFFED_KBD.req()),
KQ_HEAD(78, 13487, 8266, MAHOGANY.req(2), GOLD_LEAF.req(2), STUFFED_KQ.req()),
// Fishing trophies
MOUNTED_BASS(36, 13488, 8267, OAK.req(2), STUFFED_BASS.req()),
MOUNTED_SWORDFISH(56, 13489, 8268, TEAK.req(2), STUFFED_SWORDFISH.req()),
MOUNTED_SHARK(76, 13490, 8269, MAHOGANY.req(2), STUFFED_SHARK.req()),
// ========= GAMES ROOM =========
// Prize chests
OAK_CHEST(34, 13385, 8149, OAK.req(4)),
TEAK_CHEST(44, 13387, 8150, TEAK.req(4), GOLD_LEAF.req()),
MAHOG_CHEST(54, 13389, 8151, MAHOGANY.req(4), GOLD_LEAF.req()),
// Attack stones
CLAY_STONE(39, 13392, 8153, CLAY.req(10)),
LIMESTONE_STONE(59, 13393, 8154, LIMESTONE.req(10)),
MARBLE_STONE(79, 13394, 8155, MARBLE.req(4)),
// Balances
LESSER_BALANCE(37, 13395, 8156, AIR_RUNE.req(500), WATER_RUNE.req(500), EARTH_RUNE.req(500), FIRE_RUNE.req(500)),
MEDIUM_BALANCE(57, 13396, 8157, AIR_RUNE.req(1000), WATER_RUNE.req(1000), EARTH_RUNE.req(1000), FIRE_RUNE.req(1000)),
GREATER_BALANCE(77, 13397, 8158, AIR_RUNE.req(2000), WATER_RUNE.req(2000), EARTH_RUNE.req(2000), FIRE_RUNE.req(2000)),
// Games
JESTER(39, 13390, 8159, TEAK.req(4)),
TREASURE_HUNT(49, 13379, 8160, TEAK.req(8), STEEL.req(4)),
HANGMAN(59, 13403, 8161, TEAK.req(12), STEEL.req(6)),
// Range games
HOOP_AND_STICK(30, 13398, 8162, OAK.req(2)),
DARTBOARD(54, 13400, 8163, TEAK.req(3), STEEL.req()),
ARCHERY_TARGET(81, 13402, 8164, TEAK.req(6), STEEL.req(3)),
// ========= COMBAT ROOM =========
GLOVE_RACK(34, 13381, 8028, OAK.req(2)),
WEAPON_RACK(44, 13382, 8029, TEAK.req(2)),
EXTRA_RACK(54, 13383, 8030, TEAK.req(4), STEEL.req(4)),
// ========= QUEST HALL =========
// Portraits
ARTHUR(35, 13510, 8285, TEAK.req(2), Material.ARTHUR.req()),
ELENA(35, 13511, 8286, TEAK.req(2), Material.ELENA.req()),
GIANT_DWARF(35, 13512, 8287, TEAK.req(2), Material.GIANT_DWARF.req()),
MISCELLANIANS(55, 13513, 8288, MAHOGANY.req(2), Material.MISCELLANIANS.req()),
// Maps
SMALL_MAP(38, 13525, 8294, TEAK.req(2), Material.SMALL_MAP.req()),
MED_MAP(58, 13526, 8295, MAHOGANY.req(3), Material.MED_MAP.req()),
LARGE_MAP(78, 13527, 8296, MAHOGANY.req(4), Material.LARGE_MAP.req()),
// Landscapes
LUMBRIDGE(44, 13517, 8289, TEAK.req(3), Material.LUMBRIDGE.req()),
DESERT(44, 13514, 8290, TEAK.req(3), Material.DESERT.req()),
MORYTANIA(44, 13518, 8291, TEAK.req(3), Material.MORYTANIA.req()),
KARAMJA(65, 13516, 8292, MAHOGANY.req(3), Material.KARAMJA.req()),
ISAFDAR(65, 13515, 8293, MAHOGANY.req(3), Material.ISAFDAR.req()),
// ========= STUDY =========
// Lecterns
OAK_LECTERN(40, 13642, 8334, OAK.req()),
EAGLE_LECTERN(47, 13643, 8335, OAK.req(2)),
DEMON_LECTERN(47, 13644, 8336, OAK.req(2)),
TEAK_EAGLE(57, 13645, 8337, TEAK.req(2)),
TEAK_DEMON(57, 13646, 8338, TEAK.req(2)),
MAHOG_EAGLE(67, 13647, 8339, MAHOGANY.req(2), GOLD_LEAF.req()),
MAHOG_DEMON(67, 13648, 8340, MAHOGANY.req(2), GOLD_LEAF.req()),
// Globes
GLOBE(41, 13649, 8341, OAK.req(3)),
ORN_GLOBE(50, 13650, 8342, TEAK.req(3)),
LUNAR_GLOBE(59, 13651, 8343, TEAK.req(3), GOLD_LEAF.req()),
CELEST_GLOBE(68, 13652, 8344, TEAK.req(3), GOLD_LEAF.req()),
ARMILLARY(77, 13653, 8345, MAHOGANY.req(2), GOLD_LEAF.req(2), STEEL.req(4)),
SM_ORRERY(86, 13654, 8346, MAHOGANY.req(3), GOLD_LEAF.req(3)),
LG_ORRERY(95, 13655, 8347, MAHOGANY.req(3), GOLD_LEAF.req(3)),
// Crystal balls
CRYSTAL_BALL(42, 13659, 8351, TEAK.req(3), UNP_ORB.req()),
ELE_SPHERE(54, 14660, 8352, TEAK.req(3), UNP_ORB.req(), GOLD_LEAF.req()),
CRYSTAL_OF_POWER(66, 13661, 8353, MAHOGANY.req(2), UNP_ORB.req(), GOLD_LEAF.req(2)),
// Wall charts
ALCH_CHART(43, 13662, 8354, CLOTH.req(2)),
ASTRO_CHART(63, 13663, 8355, CLOTH.req(3)),
INFERN_CHART(83, 13664, 8356, CLOTH.req(4)),
// Telescopes
WOOD_TELESCOPE(44, 13656, 8348, OAK.req(2), GLASS.req()),
TEAK_TELESCOPE(64, 13657, 8349, TEAK.req(2), GLASS.req()),
MAHOG_TELESCOPE(84, 13658, 8350, MAHOGANY.req(2), GLASS.req()),
// ========= COSTUME ROOM =========
// Armour case
OAK_ARMOR_CASE(46, 18778, 9826, OAK.req(3)),
TEAK_ARMOR_CASE(64, 18780, 9827, TEAK.req(3)),
MAHOG_ARMOR_CASE(82, 18782, 9828, MAHOGANY.req(3)),
// Magic wardrobe
MAGIC_OAK_WDROBE(42, 18784, 9829, OAK.req(4)),
MAGIC_C_OAK_WDROBE(51, 18786, 9830, OAK.req(6)),
MAGIC_TEAK_WDROBE(60, 18788, 9831, TEAK.req(4)),
MAGIC_C_TEAK_WDROBE(69, 18790, 9832, TEAK.req(6)),
MAGIC_MAHOG_WDROBE(78, 18792, 9833, MAHOGANY.req(4)),
MAGIC_GILDED_WDROBE(87, 18794, 9834, MAHOGANY.req(4), GOLD_LEAF.req()),
MAGIC_MARBLE_WDROBE(96, 18796, 9835, MARBLE.req()),
// Toy box
OAK_TOY_BOX(50, 18798, 9836, OAK.req(2)),
TEAK_TOY_BOX(68, 18800, 9837, TEAK.req(2)),
MAHOGANY_TOY_BOX(86, 18802, 9838, MAHOGANY.req(2)),
// Treasure chest
OAK_TREASURE_CHEST(48, 18804, 9839, OAK.req(2)),
TEAK_TREASURE_CHEST(66, 18806, 9840, TEAK.req(2)),
MAHOG_TREASURE_CHEST(84, 18808, 9841, MAHOGANY.req(2)),
// Cape rack
OAK_RACK(54, 18766, 9817, OAK.req(4)),
TEAK_RACK(63, 18767, 9818, TEAK.req(4)),
MAHOGANY_RACK(72, 18768, 9819, MAHOGANY.req(4)),
GILDED_RACK(81, 18769, 9820, MAHOGANY.req(4), GOLD_LEAF.req()),
MARBLE_RACK(90, 18770, 9821, MARBLE.req()),
MAGIC_RACK(99, 18771, 9822, MAGIC_STONE.req()),
// Costume box
OAK_COSTUME_BOX(44, 18772, 9823, OAK.req(2)),
TEAK_COSTUME_BOX(62, 18774, 9824, TEAK.req(2)),
MAHOG_COSTUME_BOX(80, 18776, 9825, MAHOGANY.req(2)),
// ========= CHAPEL =========
// Altars/statues/windows are GodFurniture
// Icon
SARA_SYMBOL(48, 13172, 8055, OAK.req(2)),
ZAMO_SYMBOL(48, 13173, 8056, OAK.req(2)),
GUTH_SYMBOL(48, 13174, 8057, OAK.req(2)),
SARA_ICON(59, 13175, 8058, TEAK.req(4), GOLD_LEAF.req(2)),
ZAMO_ICON(59, 13176, 8059, TEAK.req(4), GOLD_LEAF.req(2)),
GUTH_ICON(59, 13177, 8060, TEAK.req(4), GOLD_LEAF.req(2)),
BOB_ICON(71, 13178, 8061, MAHOGANY.req(4), GOLD_LEAF.req(2)),
// Burners
WOOD_TORCH(45, 13200, 8069, PLANK.req(2)),
STEEL_TORCH(49, 13202, 8070, STEEL.req(2)),
STEEL_CNDL(53, 13204, 8071, STEEL.req(6), CANDLE.req(6)),
GOLD_CNDL(57, 13206, 8072, GOLD.req(6), CANDLE.req(6)),
INCENSE_BURNER(61, 13208, 8073, OAK.req(2), STEEL.req(2)),
MAHOG_BURNER(65, 13210, 8074, MAHOGANY.req(4), STEEL.req(2)),
MARBLE_BURNER(69, 13212, 8075, MARBLE.req(2), STEEL.req(2)),
// Instruments
WINDCHIMES(49, 13214, 8079, OAK.req(4), STEEL.req(4)),
BELLS(58, 13215, 8080, TEAK.req(4), STEEL.req(6)),
ORGAN(69, 13216, 8081, MAHOGANY.req(4), STEEL.req(6)),
// =========PORTAL CHAMBER =========
// =========FORMAL GARDEN =========
// Plant
SUNFLOWER(66, 13443, 8213, Material.SUNFLOWER.req()),
SMALL_SUNFLOWER(SUNFLOWER, 13446),
MARIGOLD(71, 13444, 8214, Material.MARIGOLDS.req()),
SMALL_MARIGOLD(MARIGOLD, 13447),
ROSES(76, 13445, 8215, Material.ROSES.req()),
SMALL_ROSES(ROSES, 13448),
// Plant 2
ROSEMARY(66, 13437, 8210, Material.ROSEMARY.req()),
SMALL_ROSEMARY(ROSEMARY, 13440),
DAFFODILS(71, 13438, 8211, Material.DAFFODILS.req()),
SMALL_DAFFODILS(DAFFODILS, 13441),
BLUEBELLS(76, 13439, 8212, Material.BLUEBELLS.req()),
SMALL_BLUEBELLS(BLUEBELLS, 13442),
// Centerpiece
GAZEBO(65, 13477, 8192, MAHOGANY.req(8), STEEL.req(4)),
SMALL_FOUNTAIN(71, 13478, 8193, MARBLE.req()),
LARGE_FOUNTAIN(75, 13479, 8194, MARBLE.req(2)),
POSH_FOUNTAIN(81, 13480, 8195, MARBLE.req(3)),
// Fencing
BOUNDARY_STONES(55, 13449, 8196, CLAY.req(10)),
WOOD_FENCE(59, 13450, 8197, PLANK.req(10)),
STONE_WALL(63, 13451, 8198, LIMESTONE.req(10)),
IRON_RAIL(67, 13452, 8199, IRON.req(10), LIMESTONE.req(6)),
PICKET_FENCE(71, 13453, 8200, OAK.req(10), STEEL.req(2)),
GARDEN_FENCE(75, 13454, 8201, TEAK.req(10), STEEL.req(2)),
MARBLE_WALL(79, 13455, 8202, MARBLE.req(8)),
// Hedges
THORNY_END(56, 8203, 13456, Material.THORNY_HEDGE.req()),
THORNY_CORNER(THORNY_END, 13457),
THORNY_CENTER(THORNY_END, 13458),
NICE_END(60, 8204, 13459, Material.NICE_HEDGE.req()),
NICE_CORNER(NICE_END, 13460),
NICE_CENTER(NICE_END, 13461),
BOX_END(64, 8205, 13462, Material.BOX_HEDGE.req()),
BOX_CORNER(BOX_END, 13463),
BOX_CENTER(BOX_END, 13464),
TOPIARY_END(68, 8206, 13465, Material.TOPIARY_HEDGE.req()),
TOPIARY_CORNER(TOPIARY_END, 13466),
TOPIARY_CENTER(TOPIARY_END, 13467),
FANCY_END(72, 8207, 13468, Material.FANCY_HEDGE.req()),
FANCY_CORNER(FANCY_END, 13469),
FANCY_CENTER(FANCY_END, 13470),
TALL_FANCY_END(76, 8208, 13471, Material.TALL_FANCY_HEDGE.req()),
TALL_FANCY_CORNER(TALL_FANCY_END, 13472),
TALL_FANCY_CENTER(TALL_FANCY_END, 13473),
TALL_BOX_END(80, 8209, 13474, Material.TALL_BOX_HEDGE.req()),
TALL_BOX_CORNER(TALL_BOX_END, 13475),
TALL_BOX_CENTER(TALL_BOX_END, 13476),
// ========= THRONE ROOM =========
// Thrones
OAK_THRONE(60, 13665, 8357, OAK.req(5), MARBLE.req()),
TEAK_THRONE(67, 13666, 8358, TEAK.req(5), MARBLE.req(2)),
MAHOGANY_THRONE(74, 13667, 8359, MAHOGANY.req(5), MARBLE.req(3)),
GILDED_THRONE(81, 13668, 8360, MAHOGANY.req(5), MARBLE.req(2), GOLD_LEAF.req(3)),
SKELETON_THRONE(88, 13669, 8361, MAGIC_STONE.req(5), MARBLE.req(4), BONE.req(5), SKULL.req(2)),
CRYSTAL_THRONE(95, 13670, 8362, MAGIC_STONE.req(15)),
DEMON_THRONE(99, 13671, 8363, MAGIC_STONE.req(25)),
// Levers
OAK_LEVER(68, 13674, 8364, OAK.req(5)),
TEAK_LEVER(78, 13672, 8365, TEAK.req(5)),
MAHOG_LEVER(88, 13673, 8366, MAHOGANY.req(5)),
// Wall decorations are all in CrestedFurniture
// Trapdoors
OAK_TRAPDOOR(68, 13675, 8367, OAK.req(5)),
TEAK_TRAPDOOR(78, 13676, 8368, TEAK.req(5)),
MAHOG_TRAPDOOR(88, 13677, 8369, MAHOGANY.req(5)),
// Floor
// FLOOR_DECORATION (styled furniture)
// STEEL_CAGE(68, 13681, MAHOGANY.req(5), STEEL.req(20)),
// TRAPDOORS (styled furniture)
// MAGIC_CAGE(82, 13682, MAHOGANY.req(4), MAGIC_STONE.req(2)),
// GREATER_MAGIC_CAGE(89, 13683, MAHOGANY.req(5), MAGIC_STONE.req(4)),
// ========= OUBLIETTE =========
// Decoration
DECORATIVE_BLOOD(72, 13312, 8125, RED_DYE.req(4)),
DECORATIVE_PIPE(83, 13311, 8126, STEEL.req(6)),
HANGING_SKELETON(94, 13310, 8127, SKULL.req(2), BONE.req(6)),
// Lighting
LIGHT_CANDLE(72, 13342, 8128, OAK.req(4), LIT_CANDLE.req(4)),
LIGHT_TORCH(84, 13341, 8129, OAK.req(4), LIT_TORCH.req(4)),
SKULL_TORCH(94, 13343, 8130, OAK.req(4), LIT_TORCH.req(4), SKULL.req(4)),
// Cages
OAK_CAGE(65, 13313, 8297, OAK.req(10), STEEL.req(2)),
OAK_CAGE_DOOR(OAK_CAGE, 13314),
OAK_STEEL_CAGE(70, 13316, 8298, OAK.req(10), STEEL.req(10)),
OAK_STEEL_CAGE_DOOR(OAK_STEEL_CAGE, 13317),
STEEL_CAGE(75, 13319, 8299, STEEL.req(20)),
STEEL_CAGE_DOOR(STEEL_CAGE, 13320),
SPIKED_CAGE(80, 13322, 8300, STEEL.req(25)),
SPIKED_CAGE_DOOR(SPIKED_CAGE, 13323),
BONE_CAGE(85, 13325, 8301, OAK.req(10), BONE.req(10)),
BONE_CAGE_DOOR(BONE_CAGE, 13326),
//13373 Rocnar len/width:2/2 solid/impen:false/true anim:3707 opts:[null, null, null, null, Remove]
// Guards
SKELE_GUARD(70, 13366, 8131, new CustomMaterialRequirement("50,000 coins", 223, new Item(995, 50000))),
DOG_GUARD(74, 13367, 8132, new CustomMaterialRequirement("75,000 coins", 273, new Item(995, 75000))),
HOBGOB_GUARD(78, 13368, 8133, new CustomMaterialRequirement("100,000 coins", 316, new Item(995, 100000))),
BABY_DRAG_GUARD(82, 13372, 8134, new CustomMaterialRequirement("150,000 coins", 387, new Item(995, 150000))),
SPIDER_GUARD(86, 13370, 8135, new CustomMaterialRequirement("200,000 coins", 447, new Item(995, 200000))),
TROLL_GUARD(90, 13369, 8136, new CustomMaterialRequirement("1,000,000 coins", 1000, new Item(995, 1000000))),
HELLHOUND_GUARD(94, 2715, 8137, new CustomMaterialRequirement("5,000,000 coins", 2236, new Item(995, 5000000))),
// TREASURE ROOM
// Teasure chest
WOOD_CRATE(75, 13283, 8148, PLANK.req(5)),
MAGIC_CHEST(91, 13291, 8152, MAGIC_STONE.req()),
// Guardian
DEMON(75, 13378, 8138, new CustomMaterialRequirement("500,000 coins", 707, new Item(995, 500000))),
KALPHITE(80, 13374, 8139, new CustomMaterialRequirement("750,000 coins", 866, new Item(995, 750000))),
TOK_XIL(85, 13377, 8140, new CustomMaterialRequirement("5,000,000 coins", 2236, new Item(995, 5000000))),
DAGANNOTH(90, 13376, 8141, new CustomMaterialRequirement("7,500,000 coins", 2738, new Item(995, 7500000))),
STEEL_DRAG(95, 13375, 8142, new CustomMaterialRequirement("10,000,000 coins", 3162, new Item(995, 10000000)));
private final int level;
private final int objectId;
private final int itemId;
private final Requirements reqs;
private final MaterialRequirement[] mats;
private BasicFurniture(BasicFurniture other, int objectId) {
this(other.level, objectId, other.itemId, other.mats);
}
private BasicFurniture(int level, int objectId, int itemId, MaterialRequirement... mats) {
this.level = level;
this.objectId = objectId;
this.itemId = itemId;
this.mats = mats;
reqs = new Requirements();
reqs.addRequirement(new SkillRequirement(Skill.CONSTRUCTION, level, true, "build that"));
reqs.addRequirements(Construction.HAMMER_REQ, Construction.SAW_REQ);
reqs.addRequirements(mats);
}
@Override
public int getLevel() {
return level;
}
@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;
}
}