diff --git a/data/mods/Magiclysm/furniture.json b/data/mods/Magiclysm/furniture.json index f00d97b8108e8..ec16f5732a843 100644 --- a/data/mods/Magiclysm/furniture.json +++ b/data/mods/Magiclysm/furniture.json @@ -50,5 +50,141 @@ { "item": "orichalcum_sliver", "count": [ 1, 8 ], "prob": 20 } ] } + }, + { + "type": "furniture", + "id": "f_magic_bench", + "name": "enchanter's workbench", + "looks_like": "f_table", + "description": "An ornate oak cabinet topped by a durable resin countertop resistant to most alchemical spills and burns. It has wired in electrical and gas fittings, and has been decorated with several protection runes - mostly ornamental.", + "symbol": "0", + "bgcolor": "white", + "move_cost_mod": 2, + "coverage": 60, + "required_str": -1, + "flags": [ "TRANSPARENT", "PLACE_ITEM", "MOUNTABLE", "FLAT_SURF" ], + "deconstruct": { + "items": [ + { "item": "pipe", "count": [ 6, 12 ] }, + { "item": "cu_pipe", "count": [ 1, 4 ] }, + { "item": "cable", "charges": [ 1, 4 ] }, + { "item": "plastic_chunk", "count": [ 50, 75 ] }, + { "item": "wood_panel", "count": [ 1, 2 ] }, + { "item": "2x4", "count": [ 3, 4 ] } + ] + }, + "max_volume": "1750 L", + "bash": { + "str_min": 35, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "splinter", "count": [ 2, 8 ] }, + { "item": "2x4", "count": [ 0, 2 ] }, + { "item": "wood_panel", "count": [ 0, 1 ] }, + { "item": "plastic_chunk", "count": [ 30, 50 ] }, + { "item": "pipe", "count": 1 }, + { "item": "cable", "charges": [ 1, 3 ] }, + { "item": "cu_pipe", "count": 1 } + ] + }, + "examine_action": "workbench", + "workbench": { "multiplier": 1.15, "mass": 300000, "volume": "100L" } + }, + { + "type": "furniture", + "id": "f_alembic", + "name": "standing alembic", + "looks_like": "f_still", + "description": "A large glass and copper alembic for distilling alchemical concoctions. It consists of a copper pot with rising spires of twisted glass draining into various removable bottles.", + "symbol": "&", + "color": "light_blue", + "move_cost_mod": -1, + "coverage": 40, + "required_str": -1, + "crafting_pseudo_item": "still_lab", + "flags": [ "TRANSPARENT", "NOITEM" ], + "deconstruct": { + "items": [ + { "item": "pot_copper", "count": 1 }, + { "item": "pipe_glass", "count": [ 1, 4 ] }, + { "item": "glass_tube_small", "charges": [ 5, 10 ] }, + { "item": "stopcock", "count": [ 1, 5 ] }, + { "item": "flask_glass", "count": [ 1, 3 ] } + ] + }, + "max_volume": "1750 L", + "bash": { + "str_min": 4, + "str_max": 10, + "sound": "glass breaking!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap_copper", "count": [ 10, 20 ] }, + { "item": "stopcock", "count": [ 1, 5 ] }, + { "item": "glass_shard", "count": [ 25, 50 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_orrery", + "name": "orrery", + "looks_like": "f_statue", + "description": "This is a beautiful, non-scale model of the solar system. A complex series of gears allows the relative motions of the planets to be studied at the turn of a crank. This more modern version also has bluetooth and could have been controlled with an app, if there was any power anymore.", + "symbol": "@", + "color": "brown", + "move_cost_mod": -1, + "coverage": 40, + "required_str": -1, + "flags": [ "TRANSPARENT", "NOITEM" ], + "deconstruct": { + "items": [ + { "item": "clockworks", "count": [ 10, 30 ] }, + { "item": "scrap", "count": [ 10, 20 ] }, + { "item": "pipe", "charges": 9 }, + { "item": "wire", "count": [ 10, 20 ] }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + }, + "max_volume": "1750 L", + "bash": { + "str_min": 20, + "str_max": 60, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 10, 100 ] }, + { "item": "pipe", "count": [ 1, 5 ] }, + { "item": "wire", "count": [ 3, 10 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_huge_mana_crystal", + "name": "huge mana crystal", + "description": "This is a mana crystal that juts from the ground as if it had sprouted up like a weed. It pulses with a delicate yellow energy, occasionally bursting with flashes of pent-up light.", + "symbol": "]", + "color": "white_yellow", + "move_cost_mod": -1, + "coverage": 75, + "required_str": -1, + "looks_like": "f_boulder_large", + "flags": [ "TRANSPARENT", "EMITTER" ], + "emissions": [ "emit_glimmer" ], + "light_emitted": 12, + "bash": { + "str_min": 25, + "str_max": 35, + "sound": "glass shattering!", + "sound_fail": "mana crackling!", + "items": [ + { "item": "crystallized_mana", "charges": [ 0, 100 ] }, + { "item": "small_mana_crystal", "count": [ 0, 3 ] }, + { "item": "glass_shard", "count": [ 8, 12 ] } + ] + } } ] diff --git a/data/mods/Magiclysm/itemgroups/itemgroups.json b/data/mods/Magiclysm/itemgroups/itemgroups.json index bce0390918afd..7381f4f53346a 100644 --- a/data/mods/Magiclysm/itemgroups/itemgroups.json +++ b/data/mods/Magiclysm/itemgroups/itemgroups.json @@ -151,6 +151,31 @@ { "item": "bulette_pearl", "prob": 8, "count-min": 1, "count-max": 2 } ] }, + { + "type": "item_group", + "id": "magic_tools_and_loot", + "//": "Stuff you would find in an average wizard's workshop or other place where someone stores magical goodies.", + "subtype": "collection", + "items": [ + { "group": "tools_common", "prob": 60 }, + { "group": "jewelry_safe", "prob": 10 }, + { "group": "jewelry_front", "prob": 8 }, + { "group": "potions_common", "prob": 15 }, + { + "distribution": [ + { "group": "enchanted_wands_lesser", "prob": 15 }, + { "group": "spellbook_loot_1", "prob": 35, "count": [ 1, 3 ] }, + { "group": "enchanted_rings_common", "prob": 20 }, + { "group": "enchanted_rings_uncommon", "prob": 5 }, + { "group": "enchanted_combat_items", "prob": 10 }, + { "group": "enchanted_belts", "prob": 2 } + ], + "prob": 15 + }, + { "item": "bone_human", "prob": 60, "count-min": 1, "count-max": 5 }, + [ "toolbox", 10 ] + ] + }, { "id": "demon_spider_lair_treasure", "type": "item_group", diff --git a/data/mods/Magiclysm/items/constructs.json b/data/mods/Magiclysm/items/constructs.json index efc54880b3eb1..910cb33bc7760 100644 --- a/data/mods/Magiclysm/items/constructs.json +++ b/data/mods/Magiclysm/items/constructs.json @@ -6,7 +6,7 @@ "color": "brown", "name": "broken clay golem", "category": "other", - "description": "A broken clay golem, looking like piece of post-modern art. Could be smashed for clay.", + "description": "A broken clay golem, looking like a piece of post-modern art. Could be smashed for clay.", "price": 10000, "material": [ "clay" ], "weight": "122 kg", @@ -16,6 +16,23 @@ "to_hit": -3, "flags": [ "TRADER_AVOID", "NO_REPAIR" ] }, + { + "type": "GENERIC", + "id": "broken_plasticgolem", + "symbol": "x", + "color": "light_gray", + "name": "broken plastic golem", + "category": "other", + "description": "A broken plastic golem, like a giant action figure chewed up by an equally giant puppy. You could smash it up into recycled plastic bits.", + "price": 100, + "material": [ "plastic" ], + "weight": "70 kg", + "volume": "150 L", + "bashing": 4, + "cutting": 4, + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + }, { "type": "GENERIC", "id": "broken_stonegolem", diff --git a/data/mods/Magiclysm/monstergroups.json b/data/mods/Magiclysm/monstergroups.json index ba251b0eba50a..286de2c020d13 100644 --- a/data/mods/Magiclysm/monstergroups.json +++ b/data/mods/Magiclysm/monstergroups.json @@ -102,5 +102,17 @@ { "monster": "mon_lizardfolk_shaman", "freq": 10, "cost_multiplier": 30 }, { "monster": "mon_lizardfolk_chieftan", "freq": 10, "cost_multiplier": 50 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_TOWER_GOLEM", + "default": "mon_plasticgolem", + "//": "Cheap golems used to defend the average wizard's tower.", + "monsters": [ + { "monster": "mon_plasticgolem", "freq": 60, "cost_multiplier": 1 }, + { "monster": "mon_claygolem", "freq": 20, "cost_multiplier": 1 }, + { "monster": "mon_stonegolem", "freq": 10, "cost_multiplier": 1 }, + { "monster": "mon_irongolem", "freq": 5, "cost_multiplier": 1 } + ] } ] diff --git a/data/mods/Magiclysm/monsters/golems.json b/data/mods/Magiclysm/monsters/golems.json new file mode 100644 index 0000000000000..0c53045d0999c --- /dev/null +++ b/data/mods/Magiclysm/monsters/golems.json @@ -0,0 +1,126 @@ +[ + { + "id": "mon_claygolem", + "type": "MONSTER", + "name": "clay golem", + "description": "A large, humanoid golem made from clay. Its proportions are off and it seems fragile.", + "default_faction": "robot", + "bodytype": "human", + "species": [ "ROBOT" ], + "diff": 2, + "volume": "120 L", + "weight": "122 kg", + "hp": 100, + "speed": 80, + "material": [ "clay" ], + "symbol": "X", + "color": "brown", + "aggression": 10, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 10, + "melee_cut": 5, + "armor_bash": 10, + "armor_cut": 10, + "dodge": 0, + "vision_day": 40, + "vision_night": 40, + "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], + "death_function": [ "BROKEN" ], + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] + }, + { + "id": "mon_plasticgolem", + "type": "MONSTER", + "name": { "str": "plastic golem" }, + "description": "Traditionally, making a golem is a months-long process involving hand tools and precision craftsmanship. A stone golem is as much a work of art as it is a magical device. The advent of 3D printing made it easy to get into the golem-making hobby, and plastic golems have soared in popularity.", + "default_faction": "factionless", + "volume": "150 L", + "weight": "70 kg", + "hp": 120, + "speed": 90, + "material": [ "plastic" ], + "symbol": "G", + "color": "light_gray", + "aggression": 30, + "morale": 100, + "armor_bash": 18, + "armor_cut": 6, + "melee_skill": 5, + "melee_dice": 3, + "melee_dice_sides": 6, + "melee_cut": 3, + "vision_day": 30, + "vision_night": 30, + "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], + "regenerates": 10, + "death_drops": { "item": "plastic_chunk", "prob": 100, "count": [ 5, 10 ] }, + "death_function": [ "BROKEN" ], + "flags": [ "SEES", "HEARS", "NO_BREATHE", "LOUDMOVES" ] + }, + { + "id": "mon_stonegolem", + "type": "MONSTER", + "name": "stone golem", + "description": "A large, humanoid golem made from stone. Its fists look similar to rockets.", + "default_faction": "robot", + "bodytype": "human", + "species": [ "ROBOT" ], + "diff": 2, + "volume": "120 L", + "weight": "162 kg", + "hp": 250, + "speed": 60, + "material": [ "stone" ], + "symbol": "X", + "color": "light_gray", + "aggression": 10, + "morale": 100, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_cut": 6, + "armor_bash": 20, + "armor_cut": 20, + "dodge": 0, + "vision_day": 40, + "vision_night": 40, + "special_attacks": [ { "type": "spell", "spell_id": "rocket_punch", "spell_level": 5, "cooldown": 10 } ], + "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], + "death_function": [ "BROKEN" ], + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] + }, + { + "id": "mon_irongolem", + "type": "MONSTER", + "name": "iron golem", + "description": "A large, humanoid golem made from iron. Some sort of noxious gas seems to be seeping from its mouth.", + "default_faction": "robot", + "bodytype": "human", + "species": [ "ROBOT" ], + "diff": 2, + "volume": "120 L", + "weight": "945 kg", + "hp": 400, + "speed": 50, + "material": [ "iron" ], + "symbol": "X", + "color": "dark_gray", + "aggression": 10, + "morale": 100, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 10, + "melee_cut": 7, + "armor_bash": 32, + "armor_cut": 32, + "dodge": 0, + "vision_day": 40, + "vision_night": 40, + "special_attacks": [ { "type": "spell", "spell_id": "gas_attack", "spell_level": 5, "cooldown": 60 } ], + "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], + "death_function": [ "BROKEN" ], + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] + } +] diff --git a/data/mods/Magiclysm/monsters/monsters.json b/data/mods/Magiclysm/monsters/monsters.json index 7fc8d45db5cf3..f9076f9f62f0f 100644 --- a/data/mods/Magiclysm/monsters/monsters.json +++ b/data/mods/Magiclysm/monsters/monsters.json @@ -330,100 +330,5 @@ "death_function": [ "NORMAL" ], "regenerates": 1, "flags": [ "SEES", "SMELLS", "HEARS", "STUMBLES", "PATH_AVOID_FIRE", "REVIVES" ] - }, - { - "id": "mon_claygolem", - "type": "MONSTER", - "name": "clay golem", - "description": "A large, humanoid golem made from clay. Its proportions are off and it seems fragile.", - "default_faction": "robot", - "bodytype": "human", - "species": [ "ROBOT" ], - "diff": 2, - "volume": "120 L", - "weight": "122 kg", - "hp": 100, - "speed": 80, - "material": [ "clay" ], - "symbol": "X", - "color": "brown", - "aggression": 10, - "morale": 100, - "melee_skill": 6, - "melee_dice": 2, - "melee_dice_sides": 10, - "melee_cut": 5, - "armor_bash": 10, - "armor_cut": 10, - "dodge": 0, - "vision_day": 40, - "vision_night": 40, - "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] - }, - { - "id": "mon_stonegolem", - "type": "MONSTER", - "name": "stone golem", - "description": "A large, humanoid golem made from stone. Its fists look similar to rockets.", - "default_faction": "robot", - "bodytype": "human", - "species": [ "ROBOT" ], - "diff": 2, - "volume": "120 L", - "weight": "162 kg", - "hp": 250, - "speed": 60, - "material": [ "stone" ], - "symbol": "X", - "color": "light_gray", - "aggression": 10, - "morale": 100, - "melee_skill": 6, - "melee_dice": 3, - "melee_dice_sides": 8, - "melee_cut": 6, - "armor_bash": 20, - "armor_cut": 20, - "dodge": 0, - "vision_day": 40, - "vision_night": 40, - "special_attacks": [ { "type": "spell", "spell_id": "rocket_punch", "spell_level": 5, "cooldown": 10 } ], - "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] - }, - { - "id": "mon_irongolem", - "type": "MONSTER", - "name": "iron golem", - "description": "A large, humanoid golem made from iron. Some sort of noxious gas seems to be seeping from its mouth.", - "default_faction": "robot", - "bodytype": "human", - "species": [ "ROBOT" ], - "diff": 2, - "volume": "120 L", - "weight": "945 kg", - "hp": 400, - "speed": 50, - "material": [ "iron" ], - "symbol": "X", - "color": "dark_gray", - "aggression": 10, - "morale": 100, - "melee_skill": 6, - "melee_dice": 3, - "melee_dice_sides": 10, - "melee_cut": 7, - "armor_bash": 32, - "armor_cut": 32, - "dodge": 0, - "vision_day": 40, - "vision_night": 40, - "special_attacks": [ { "type": "spell", "spell_id": "gas_attack", "spell_level": 5, "cooldown": 60 } ], - "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] } ] diff --git a/data/mods/Magiclysm/worldgen/multitile_city_buildings.json b/data/mods/Magiclysm/worldgen/multitile_city_buildings.json index b7e298e61e7f2..86da87aa931b2 100644 --- a/data/mods/Magiclysm/worldgen/multitile_city_buildings.json +++ b/data/mods/Magiclysm/worldgen/multitile_city_buildings.json @@ -8,5 +8,29 @@ { "point": [ 0, 0, 1 ], "overmap": "magic_shop_2ndfloor_north" }, { "point": [ 0, 0, 2 ], "overmap": "magic_shop_roof_north" } ] + }, + { + "type": "city_building", + "id": "wizard_tower_1", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "wizardtower1_ground_north" }, + { "point": [ 0, 0, 1 ], "overmap": "wizardtower1_living_north" }, + { "point": [ 0, 0, 2 ], "overmap": "wizardtower1_golems_north" }, + { "point": [ 0, 0, 3 ], "overmap": "wizardtower1_study_north" }, + { "point": [ 0, 0, 4 ], "overmap": "wizardtower1_roof_north" } + ] + }, + { + "type": "city_building", + "id": "wizard_tower_2", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "wizardtower2_ground_north" }, + { "point": [ 0, 0, 1 ], "overmap": "wizardtower2_stairs1_north" }, + { "point": [ 0, 0, 2 ], "overmap": "wizardtower2_stairs2_north" }, + { "point": [ 0, 0, 3 ], "overmap": "wizardtower2_study_north" }, + { "point": [ 0, 0, 4 ], "overmap": "wizardtower2_roof_north" } + ] } ] diff --git a/data/mods/Magiclysm/worldgen/overmap_terrain.json b/data/mods/Magiclysm/worldgen/overmap_terrain.json index 00f559ab37660..3047ecc6e4180 100644 --- a/data/mods/Magiclysm/worldgen/overmap_terrain.json +++ b/data/mods/Magiclysm/worldgen/overmap_terrain.json @@ -299,5 +299,58 @@ "sym": ".", "color": "blue", "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_ground", + "copy-from": "generic_city_building", + "sym": "W", + "color": "light_blue", + "name": "wizard tower" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_living", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_golems", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_study", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower1_roof", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_ground", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_stairs1", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_stairs2", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_study", + "copy-from": "wizardtower1_ground" + }, + { + "type": "overmap_terrain", + "id": "wizardtower2_roof", + "copy-from": "wizardtower1_ground" } ] diff --git a/data/mods/Magiclysm/worldgen/regional_overlay.json b/data/mods/Magiclysm/worldgen/regional_overlay.json index 8c97d44c8d64a..38ed843f0d729 100644 --- a/data/mods/Magiclysm/worldgen/regional_overlay.json +++ b/data/mods/Magiclysm/worldgen/regional_overlay.json @@ -2,7 +2,11 @@ { "type": "region_overlay", "regions": [ "all" ], - "city": { "shops": { "magic_shop": 100, "used_bookstore": 225 }, "basements": { "magic_basement": 50 } }, + "city": { + "houses": { "wizard_tower_1": 10, "wizard_tower_2": 20 }, + "shops": { "magic_shop": 100, "used_bookstore": 225 }, + "basements": { "magic_basement": 50 } + }, "field_coverage": { "other": { "f_boulder_large": 0.6667, "f_glow_boulder": 0.3333 } } } ] diff --git a/data/mods/Magiclysm/worldgen/wizard-towers.json b/data/mods/Magiclysm/worldgen/wizard-towers.json new file mode 100644 index 0000000000000..c48c0156f8e7a --- /dev/null +++ b/data/mods/Magiclysm/worldgen/wizard-towers.json @@ -0,0 +1,188 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "wizardtower1_ground", "wizardtower1_living", "wizardtower1_golems", "wizardtower1_study", "wizardtower1_roof" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "!!!!!!!!!!!!!!!!!!!#####...................;;;;;........................................................................", + "!,,,,,,,,,,,,,,,,,,[[[[#...................;;;;;........................................................................", + "!,^,,,,,,######,,,,[[[[#.........#wwww#....;;;;;.........!!!!!!.........................................................", + "!,,,,,,###EBB|###,,[[[,!.......###EBBE###..............!!!!!!!!!!.......................................................", + "!,,,,#w#aa BB|BB#w#[[[,!.....###aa BB dd###..........!!!!!!!!!!!!!!.....................................................", + "!,,,##Ad | ##[[,!....##bb Adb##........!!!!!!!!!!!!!!!!....................................................", + "!,,,w bbb|aEb #[[,!....#b b#........!!!!!###ww#!!!!!.............#wwww#..................!!!!!!.........", + "!,,##||||+||||||||+##[,!...##||||||HH ||+||##......!!!!!##|V ##!!!!!...........##mm ##................!!!!!!!!........", + "!,,#< =[,!...#> <|||+|a uuw......!!!!##>|V 8##!!!!..........##mh F##..............!!!!!!!!!!.......", + "!,##< hTTh hhh##!!..##> | uu##....!!!!## |V 08##!!!!........## y c c##............!!!!!!!!!!!!......", + "!##|||+| hTTh 123cw,,.;w||||| |& ||#....!!!!#U |V mw!!!!........w 9cL w............!!!!!!!!!!!!......", + ",#WD|& | hTTh ow,,.;wH A|A ## |CsC +t#....!!!!#U |## hmw!!!!........w 9##cc w............!!!!!!!!!!!!......", + ",# + | hTTh 5w,,.;wH b||| ##+||||+||#....!!!!##M#### mw!!!!........wd 9## w............!!!!!!!!!!!!......", + ",#fx|st| 4w,,.;wH + |u t| U#....!!!!#0 # mw!!!!........wdA 99 w............!!!!!!!!!!!!......", + ",######## &F##,,.;##H A| |u | U##....!!!!##0 # 0##!!!!........## O ##............!!!!!!!!!!!!......", + ",#UUU& + |67| ||#,,,.;;#HHHbb| |u CsC|cc#......!!!!##0 # <##!!!!..........## >##..............!!!!!!!!!!.......", + ",# # |||| #,,,.;;##|||||+||+|||||##......!!!!!##0 M ##!!!!!...........## ##................!!!!!!!!........", + ",# # ||HHHH w,,,.;;;#E + Adw;.......!!!!!######!!!!!.............#wwww#..................!!!!!!.........", + ",# # + #,,,.;;;##E|b d##;.......!!!!!!!!!!!!!!!!....................................................", + ",# #||+|b b#,,,.;;;;###b BB #w#;;........!!!!!!!!!!!!!!.....................................................", + ",# #A |H bw,,,.;;;;;;###EBBE###;;;;..........!!!!!!!!!!.......................................................", + ",#MMMMMM#R |H r#,,,.;;;;;;;;#wwww#;;;;;;............!!!!!!.........................................................", + ",*______## Y|H A##,,,........;;;;;;;;;;;;;...........................................................................", + ",*______*#=##ww#ww##,,,,.........;;;;;;;;;;;............................................................................" + ], + "palettes": [ "wizardtower1_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "wizardtower2_ground", "wizardtower2_stairs1", "wizardtower2_stairs2", "wizardtower2_study", "wizardtower2_roof" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + ",,,,,,,,,,,,,,,[[,,,,,,,................................................................................................", + ",,,,,,,,,,,,,,^[[,,,,,,,................................................................................................", + ",,,,,,,[[[[[[[[[[,,,,,,,................................................................................................", + ",,,,,,,[[[[[[[[[[,,,,,,,................................................................................................", + ",,,,,*#==#w#w#w#w#,,,,,,......!!!!!!!!!!!!..............................................................................", + ",,,,*## ##,,,,,.....!!!!!!!!!!!!!!....................................::::::::::..............!!!!!!!!!!.......", + ",,,,## bHHHHb ##,,,,....!!!!!!!!!!!!!!!!..................................:: ::............!!!!!!!!!!!!......", + ",,,,w ###### w,,,,....!!!!!##ww##!!!!!.............##ww##..............:: ##ww## ::..........!!!!!!!!!!!!!!.....", + ",,,,w ## ## w,,,,....!!!!## ##!!!!............## << ##.............: ##0>>0## :..........!!!!!!!!!!!!!!.....", + ",,,,#++## ##+##,,,,....!!!## 0##!!!...........##0 ##............: ##9 9## :..........!!!!!!!!!!!!!!.....", + ",,,,# # # s#,,,,....!!!# #!!!...........# #............: #9 9# :..........!!!!!!!!!!!!!!.....", + ",,,,w + << # t#,,,,....!!!w >> w!!!...........w ## w............: + cc + :..........!!!!!!!!!!!!!!.....", + ",,,,w + ## # &#,,,,....!!!w ## w!!!...........w ## w............: + cL + :..........!!!!!!!!!!!!!!.....", + ",,,,# # # ~#,,,,....!!!# #!!!...........# #............: #y y# :..........!!!!!!!!!!!!!!.....", + ",,,,##### ##+##,,,,....!!!##0 ##!!!...........## 0##............: ##9 h 9## :..........!!!!!!!!!!!!!!.....", + ",,,,#BBE## ## w,,,,....!!!!## << ##!!!!............## >> ##.............: ##mmmm## :..........!!!!!!!!!!!!!!.....", + ",,,,wBB #+#+## hw,,,,....!!!!!##ww##!!!!!.............##ww##..............:: ##ww## ::..........!!!!!!!!!!!!!!.....", + ",,,,## h # b##,,,,....!!!!!!!!!!!!!!!!..................................:: ::............!!!!!!!!!!!!......", + ",,,,*##dd #BBEBB##*,,,,.....!!!!!!!!!!!!!!....................................::::::::::..............!!!!!!!!!!.......", + ",,,,,*#ww###ww#ww#*,,,,,......!!!!!!!!!!!!..............................................................................", + ",,,,,,,,,,,,,,,,,,,,,,,,................................................................................................", + ",,,,,,,,,,,,,,,,,,,,,,,,................................................................................................", + ",,,,,,,,,,,,,,,,,,,,,,,,................................................................................................", + ",,,,,,,,,,,,,,,,,,,,,,,,................................................................................................" + ], + "palettes": [ "wizardtower1_palette" ], + "terrain": { + ",": [ [ "t_region_groundcover_urban", 50 ], [ "t_region_groundcover_forest", 5 ], "t_region_shrub", "t_region_tree" ] + } + } + }, + { + "type": "palette", + "id": "wizardtower1_palette", + "terrain": { + ",": "t_region_groundcover_urban", + ".": "t_open_air", + "*": "t_region_shrub_decorative", + "_": "t_pavement", + ";": "t_tile_flat_roof", + "^": "t_region_tree_fruit", + "[": "t_sidewalk", + "!": "t_privacy_fence", + "#": "t_rock_wall", + "|": "t_wall_w", + ":": "t_railing", + "M": "t_door_metal_locked", + "+": "t_door_c", + "=": "t_door_locked", + "w": "t_window_domestic", + ">": "t_stairs_down", + "<": "t_stairs_up" + }, + "furniture": { + "&": "f_trashcan", + "a": "f_wardrobe", + "A": "f_armchair", + "b": "f_bookcase", + "B": "f_bed", + "c": "f_cupboard", + "C": "f_counter", + "d": "f_desk", + "D": "f_dryer", + "e": "f_water_heater", + "E": "f_dresser", + "f": "f_home_furnace", + "F": "f_fridge", + "h": "f_chair", + "H": "f_sofa", + "i": "f_filing_cabinet", + "I": "f_dishwasher", + "L": "f_alembic", + "m": "f_magic_bench", + "o": "f_oven", + "O": "f_orrery", + "r": "f_rack", + "R": "f_rack", + "s": "f_sink", + "t": "f_toilet", + "T": "f_table", + "u": "f_bathtub", + "U": "f_utility_shelf", + "V": "f_utility_shelf", + "~": "f_shower", + "W": "f_washer", + "x": "f_water_heater", + "y": "f_huge_mana_crystal", + "Y": "f_rack_coat", + "1": "f_cupboard", + "2": "f_cupboard", + "3": "f_cupboard", + "4": "f_cupboard", + "5": "f_sink", + "6": "f_cupboard", + "7": "f_cupboard", + "8": "f_bookcase", + "9": "f_bookcase" + }, + "items": { + "&": { "item": "trash", "chance": 50, "repeat": [ 1, 2 ] }, + "a": [ + { "item": "dresser", "chance": 50, "repeat": [ 1, 8 ] }, + { "item": "allclothes", "chance": 10, "repeat": [ 1, 3 ] }, + { "item": "enchanted_misc", "chance": 5 } + ], + "b": [ { "item": "novels", "chance": 50, "repeat": [ 1, 15 ] }, { "item": "homebooks", "chance": 25, "repeat": [ 1, 5 ] } ], + "B": { "item": "bed", "chance": 20 }, + "c": { "item": "kitchen_counters", "chance": 5, "repeat": [ 1, 3 ] }, + "C": { "item": "snacks", "chance": 10, "repeat": [ 1, 2 ] }, + "d": { "item": "SUS_office_desk", "chance": 25 }, + "D": { "item": "snacks", "chance": 10, "repeat": [ 1, 2 ] }, + "E": { "item": "dresser", "chance": 50, "repeat": [ 1, 5 ] }, + "f": [ { "item": "SUS_fridge", "chance": 95 }, { "item": "potions_common", "chance": 5, "repeat": [ 1, 3 ] } ], + "i": [ { "item": "SUS_office_filing_cabinet", "chance": 30 }, { "item": "office", "chance": 50, "repeat": [ 1, 4 ] } ], + "I": { "item": "SUS_dishwasher", "chance": 50 }, + "m": { "item": "magic_tools_and_loot", "chance": 25 }, + "o": { "item": "SUS_oven", "chance": 70 }, + "r": { "item": "a_television", "chance": 100 }, + "R": { "item": "shoes", "chance": 20, "repeat": [ 1, 4 ] }, + "U": [ { "item": "tools_common", "chance": 40, "repeat": [ 1, 3 ] }, { "item": "mischw", "chance": 10 } ], + "V": [ + { "item": "tools_general", "chance": 60, "repeat": [ 1, 3 ] }, + { "item": "mischw", "chance": 10 }, + { "item": "magic_tools_and_loot", "chance": 5 } + ], + "Y": [ { "item": "coat_rack", "chance": 70 }, { "item": "magic_shop_clothes", "chance": 30 } ], + "1": [ { "item": "SUS_dishes", "chance": 100 }, { "item": "SUS_silverware", "chance": 100 } ], + "2": [ { "item": "SUS_cookware", "chance": 100 }, { "item": "SUS_spice_collection", "chance": 50 } ], + "3": [ { "item": "SUS_utensils", "chance": 100 }, { "item": "SUS_knife_drawer", "chance": 100 } ], + "4": [ { "item": "SUS_junk_drawer", "chance": 100 }, { "item": "SUS_appliances_cupboard", "chance": 100 } ], + "5": { "item": "SUS_kitchen_sink", "chance": 100 }, + "6": { "item": "SUS_pantry", "chance": 100 }, + "7": [ { "item": "SUS_breakfast_cupboard", "chance": 50 }, { "item": "SUS_coffee_cupboard", "chance": 50 } ], + "8": [ { "item": "homebooks", "chance": 45, "repeat": [ 1, 5 ] }, { "item": "spellbook_loot_1", "chance": 5 } ], + "9": [ + { "item": "homebooks", "chance": 45, "repeat": [ 1, 5 ] }, + { "item": "spellbook_loot_1", "chance": 15 }, + { "item": "spellbook_loot_2", "chance": 1 } + ] + }, + "monsters": { "0": { "monster": "GROUP_TOWER_GOLEM" } } + } +]