diff --git a/data/mods/Magiclysm/Spells/monsterspells.json b/data/mods/Magiclysm/Spells/monsterspells.json index 57ed6b4ab110c..901133e0e29bc 100644 --- a/data/mods/Magiclysm/Spells/monsterspells.json +++ b/data/mods/Magiclysm/Spells/monsterspells.json @@ -282,5 +282,49 @@ "max_duration": 36000, "duration_increment": 1000, "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + }, + { + "id": "monster_ranged_gas_attack", + "type": "SPELL", + "name": "Gas Attack Ranged", + "description": "Spreads toxic gas around at range.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_PROJECTILE" ], + "damage_type": "biological", + "min_damage": 1, + "max_damage": 1, + "max_level": 10, + "min_range": 3, + "max_range": 13, + "range_increment": 1, + "effect": "emit", + "effect_str": "emit_toxic_stream", + "shape": "blast", + "field_id": "fd_toxic_gas", + "field_chance": 1, + "min_field_intensity": 1, + "max_field_intensity": 1, + "min_aoe": 1, + "max_aoe": 5, + "aoe_increment": 0.5 + }, + { + "type": "SPELL", + "id": "mon_bloodlust_spell", + "name": { "str": "Bloodlust" }, + "description": "Speeds up an ally.", + "valid_targets": [ "ally" ], + "effect": "attack", + "shape": "blast", + "effect_str": "frenzy", + "max_level": 1, + "min_range": 10, + "max_range": 10, + "min_damage": 0, + "max_damage": 0, + "min_duration": 6000, + "max_duration": 12000, + "base_casting_time": 200, + "flags": [ "NO_EXPLOSION_SFX", "RANDOM_DURATION" ] } ] diff --git a/data/mods/Magiclysm/monstergroups.json b/data/mods/Magiclysm/monstergroups.json index c83b89fcf0320..f82d0549f27d9 100644 --- a/data/mods/Magiclysm/monstergroups.json +++ b/data/mods/Magiclysm/monstergroups.json @@ -10,10 +10,11 @@ "name": "GROUP_FOREST", "is_animal": true, "monsters": [ - { "monster": "mon_null", "weight": 880 }, + { "monster": "mon_null", "weight": 860 }, { "monster": "mon_owlbear", "weight": 10, "cost_multiplier": 10 }, { "monster": "mon_wisp", "weight": 3, "cost_multiplier": 10, "conditions": [ "NIGHT" ] }, { "monster": "mon_troll", "weight": 3, "cost_multiplier": 10, "conditions": [ "DAY" ] }, + { "monster": "mon_wolf_goblin", "weight": 10, "cost_multiplier": 4 }, { "monster": "mon_claygolem", "weight": 8, "cost_multiplier": 3 }, { "monster": "mon_stonegolem", "weight": 4, "cost_multiplier": 5 }, { "monster": "mon_yulecat", "weight": 2, "cost_multiplier": 7 }, @@ -29,6 +30,21 @@ }, { "monster": "mon_were_zolf", "weight": 4, "cost_multiplier": 5, "pack_size": [ 1, 2 ], "starts": 800 }, { "monster": "mon_winter_wolf", "weight": 4, "cost_multiplier": 5, "pack_size": [ 1, 3 ], "starts": 750 }, + { + "monster": "mon_goblin_warrior", + "weight": 10, + "cost_multiplier": 5, + "pack_size": [ 2, 6 ], + "conditions": [ "NIGHT" ] + }, + { + "monster": "mon_goblin_bugbear", + "weight": 5, + "cost_multiplier": 5, + "pack_size": [ 2, 4 ], + "starts": "15 days", + "conditions": [ "NIGHT" ] + }, { "monster": "mon_irongolem", "weight": 2, "cost_multiplier": 8 }, { "monster": "mon_demon_spiderling", "weight": 15, "cost_multiplier": 5, "pack_size": [ 3, 7 ] }, { "monster": "mon_owlbear_zombie", "weight": 7, "cost_multiplier": 10, "starts": "15 days" }, @@ -255,6 +271,38 @@ { "monster": "mon_gray_frog", "weight": 100, "pack_size": [ 1, 4 ] } ] }, + { + "type": "monstergroup", + "name": "GROUP_ALL_GOBLINS", + "monsters": [ + { "monster": "mon_goblin_warrior", "weight": 335 }, + { "monster": "mon_feral_goblin", "weight": 50 }, + { "monster": "mon_wolf_goblin", "weight": 75 }, + { "monster": "mon_wolf_goblin", "weight": 15, "pack_size": [ 2, 4 ] }, + { "monster": "mon_goblin_warrior", "weight": 100, "ends": "7 days" }, + { "monster": "mon_goblin_warrior", "weight": 125, "ends": "28 days" }, + { "monster": "mon_goblin_warrior", "weight": 150, "ends": "90 days" }, + { "monster": "mon_goblin_mage_poison", "weight": 25 }, + { "monster": "mon_goblin_warrior", "weight": 35, "pack_size": [ 2, 4 ] }, + { "monster": "mon_goblin_slinger", "weight": 65, "pack_size": [ 2, 4 ] }, + { "monster": "mon_troll_goblin_tamed", "weight": 15 }, + { "group": "GROUP_GOBLIN_MUTANTS", "weight": 100, "starts": "7 days" }, + { "group": "GROUP_GOBLIN_MUTANTS", "weight": 125, "starts": "28 days" }, + { "group": "GROUP_GOBLIN_MUTANTS", "weight": 150, "starts": "90 days" } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GOBLIN_MUTANTS", + "monsters": [ + { "monster": "mon_orc_warrior", "weight": 400 }, + { "monster": "mon_orc_archer", "weight": 150 }, + { "monster": "mon_orc_blood_warrior", "weight": 100 }, + { "monster": "mon_orc_mage_blood", "weight": 25 }, + { "monster": "mon_goblin_bugbear", "weight": 250 }, + { "monster": "mon_goblin_bugbear_stalker", "weight": 75 } + ] + }, { "type": "monstergroup", "name": "GROUP_GOBLIN_STANDARD", diff --git a/data/mods/Magiclysm/monsters/feral_fantasy_species.json b/data/mods/Magiclysm/monsters/feral_fantasy_species.json index 5620c60d7c8d1..3b9abe90fcc23 100644 --- a/data/mods/Magiclysm/monsters/feral_fantasy_species.json +++ b/data/mods/Magiclysm/monsters/feral_fantasy_species.json @@ -25,7 +25,7 @@ "name": { "str": "feral elf", "str_pl": "feral elves" }, "description": "Fair folk no longer, this elf's pupils are dilated and what can be seen of the iris and sclera are bloodshot. They clutch a pipe in one delicate hand as they gracefully walk unbothered amidst the zombies.", "symbol": "E", - "proportional": { "hp": 0.75, "speed": 1.03, "weight": 0.85 }, + "proportional": { "hp": 0.82, "speed": 1.03, "weight": 0.85 }, "dodge": 3, "vision_night": 8, "harvest": "demihuman", @@ -89,7 +89,7 @@ "name": { "str": "feral elf", "str_pl": "feral elves" }, "description": "Fair folk no longer, this elf's pupils are dilated and what can be seen of the iris and sclera are bloodshot. They clutch a crowbar in one delicate hand as they gracefully walk unbothered amidst the zombies.", "symbol": "E", - "proportional": { "hp": 0.75, "speed": 1.03, "weight": 0.85 }, + "proportional": { "hp": 0.82, "speed": 1.03, "weight": 0.85 }, "dodge": 3, "vision_night": 8, "harvest": "demihuman", @@ -134,7 +134,7 @@ "name": { "str": "feral axe-elf", "str_pl": "feral axe-elves" }, "description": "Dragging a large axe along the ground, this elf's expression is one of twisted glee. Their movements are more fluid than those of the feral humans, but no less unsettling.", "symbol": "E", - "proportional": { "hp": 0.75, "speed": 1.03, "weight": 0.85 }, + "proportional": { "hp": 0.82, "speed": 1.03, "weight": 0.85 }, "dodge": 3, "vision_night": 8, "harvest": "demihuman", diff --git a/data/mods/Magiclysm/monsters/goblin.json b/data/mods/Magiclysm/monsters/goblin.json index 831a366458208..8887f11b4cc39 100644 --- a/data/mods/Magiclysm/monsters/goblin.json +++ b/data/mods/Magiclysm/monsters/goblin.json @@ -3,52 +3,74 @@ "id": "mon_goblin_warrior", "type": "MONSTER", "name": { "str": "goblin warrior" }, - "description": "This short humanoid is covered in filth and shouts slurs at you as it brandishes a cudgel.", + "description": "A goblin, but like something out of history. Over the dirty, tattered remnants of their street clothes, they're wearing improvised armor and carrying a heavy club. They look at you like a wolf seeing a particularly juicy hunk of lamb.", "default_faction": "goblin", "bodytype": "human", "species": [ "GOBLIN" ], "volume": "32 L", "weight": "42 kg", "hp": 40, - "speed": 105, + "speed": 90, "material": [ "flesh" ], "symbol": "g", "color": "brown", "aggression": 100, "morale": 100, - "melee_skill": 4, - "melee_dice": 2, + "melee_skill": 3, + "melee_dice": 1, "melee_dice_sides": 4, - "dodge": 5, + "dodge": 4, "harvest": "demihuman", "families": [ "prof_wp_demihuman" ], "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], - "vision_day": 30, - "vision_night": 8, + "vision_day": 8, + "vision_night": 25, "path_settings": { "avoid_traps": true, "avoid_sharp": true }, + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "goblin_cudgel_attack", + "cooldown": 1, + "move_cost": 80, + "accuracy": 5, + "damage_max_instance": [ { "damage_type": "bash", "amount": 10 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "effects": [ { "id": "stunned", "duration": 2, "chance": 5 } ], + "hit_dmg_u": "%1$s hits your %2$s with a cudgel!", + "hit_dmg_npc": "%1$s hits 's %2$s with a cudgel!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + } + ], "death_drops": { "subtype": "collection", "items": [ - { "item": "helmet_scrap", "prob": 40 }, - { "item": "legguard_scrap", "prob": 40 }, - { "item": "boots_scrap", "prob": 40 }, - { "item": "armguard_scrap", "prob": 40 }, - { "item": "cuirass_scrap", "prob": 40 }, + { "group": "feral_goblin_death_drops", "prob": 100 }, + { "item": "helmet_scrap_xs", "prob": 40 }, + { "item": "xs_legguard_scrap", "prob": 40 }, + { "item": "xs_boots_scrap", "prob": 40 }, + { "item": "xs_armguard_scrap", "prob": 40 }, + { "item": "xs_cuirass_scrap", "prob": 40 }, { "item": "cudgel", "prob": 95 } ] }, - "flags": [ "SEES", "HEARS", "HAS_MIND", "WARM", "BASHES", "FILTHY", "PATH_AVOID_DANGER_1", "WIELDED_WEAPON" ] + "armor": { "bash": 12, "cut": 12, "bullet": 4 }, + "flags": [ "SEES", "HEARS", "HAS_MIND", "WARM", "BASHES", "PATH_AVOID_DANGER_1", "GROUP_MORALE", "WIELDED_WEAPON" ] }, { "type": "MONSTER", "id": "mon_goblin_slinger", "name": { "str": "goblin slinger" }, - "description": "An ugly creature that slings rocks almost as well as it slings insults.", + "description": "A goblin, but like something out of history. Over the dirty, tattered remnants of their street clothes, they're wearing improvised armor and carrying a sling with a pouch for extra stones. They look at you like a wolf seeing a particularly juicy hunk of lamb.", "copy-from": "mon_goblin_warrior", "melee_skill": 2, "death_drops": { "subtype": "collection", "items": [ + { "group": "feral_goblin_death_drops", "prob": 100 }, { "item": "helmet_scrap", "prob": 40 }, { "item": "legguard_scrap", "prob": 40 }, { "item": "boots_scrap", "prob": 40 }, @@ -82,31 +104,290 @@ "id": "mon_goblin_chieftain", "type": "MONSTER", "copy-from": "mon_goblin_warrior", - "name": { "str": "goblin chieftain" }, - "description": "An ugly creature that was promoted to chieftain because it figured out which end of the weapon is pointy.", - "hp": 135, - "dodge": 6, - "melee_dice_sides": 8, - "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "name": { "str": "goblin leader" }, + "description": "A goblin, slightly larger than the others and bearing a weapon with more craftsmanship. The goblins around them scurry to obey their orders.", + "hp": 80, + "dodge": 3, + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "goblin_boss_attack", + "cooldown": 1, + "move_cost": 110, + "accuracy": 4, + "range": 2, + "//": "attack based on knife spear", + "damage_max_instance": [ { "damage_type": "stab", "amount": 26 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "hit_dmg_u": "%1$s hits your %2$s with their spear!", + "hit_dmg_npc": "%1$s hits 's %2$s with their spear!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + } + ], "death_drops": { "subtype": "collection", "items": [ + { "group": "feral_goblin_death_drops", "prob": 100 }, { "item": "helmet_scrap", "prob": 40 }, { "item": "legguard_scrap", "prob": 40 }, { "item": "boots_scrap", "prob": 40 }, { "item": "armguard_scrap", "prob": 40 }, { "item": "cuirass_scrap", "prob": 40 }, { - "distribution": [ { "group": "survivor_melee", "prob": 90 }, { "group": "enchanted_melee_weapons_plus1", "prob": 10 } ], + "distribution": [ + { "group": "survivor_stabbing", "prob": 96 }, + { "item": "spear_steel_plus_one", "prob": 3 }, + { "item": "rune_biomancer_weapon", "prob": 1 } + ], "prob": 100 } ] } }, + { + "type": "MONSTER", + "id": "mon_goblin_mage_poison", + "name": { "str": "goblin thornweaver" }, + "description": "A goblin in tattered clothing, muttering to themselves. Occasionally, they wave a hand and an eldritch viridian glow trails after it.", + "copy-from": "mon_goblin_warrior", + "color": "light_green", + "melee_skill": 4, + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "mon_goblin_mage_poison_thorn_spell", + "cooldown": 15, + "move_cost": 100, + "range": 7, + "damage_max_instance": [ { "damage_type": "cut", "amount": 10, "armor_penetration": 10 } ], + "effects": [ { "id": "poison", "duration": 60, "chance": 33, "affect_hit_bp": false } ], + "uncanny_dodgeable": true, + "dodgeable": false, + "blockable": false, + "hit_dmg_u": "%1$s chatters words of magic and your %2$s is surrounded by a cloud of scratching thorns!", + "hit_dmg_npc": "%1$s chatters words of magic and 's %2$s is surrounded by a cloud of scratching thorns!", + "miss_msg_u": "%1$s chatters words of magic and you narrowly avoid a cloud of scratching thorns!", + "miss_msg_npc": "%1$s chatters words of magic and narrowly avoids a cloud of scratching thorns!", + "no_dmg_msg_u": "%1$s chatters words of magic and your %2$s is surrounded by a cloud of scratching thorns, but they do no damage.", + "no_dmg_msg_npc": "%1$s chatters words of magic and 's %2$s is surrounded by a cloud of scratching thorns, but they do no damage." + }, + { + "id": "mon_goblin_mage_poison_veggrasp_spell", + "type": "spell", + "spell_data": { "id": "druid_veggrasp", "min_level": 5 }, + "cooldown": 20, + "monster_message": "%1$s waves their hands and roots burst from the ground around you!" + }, + { + "id": "mon_goblin_mage_poison_gas_spell", + "type": "spell", + "spell_data": { "id": "monster_ranged_gas_attack", "min_level": 5 }, + "cooldown": 30, + "monster_message": "%1$s waves their hands and %1$s is surrounded in greenish vapors." + } + ], + "death_drops": { + "subtype": "collection", + "items": [ + { "group": "feral_goblin_death_drops", "prob": 100 }, + { "group": "potions_common", "prob": 30, "count": [ 1, 2 ] }, + { "group": "enchanted_rings_common", "prob": 10 }, + { "group": "enchanted_wands_disposable_combat", "prob": 10 } + ] + }, + "extend": { "armor": { "poison": 25 } } + }, { "id": "mon_troll_goblin_tamed", "type": "MONSTER", "copy-from": "mon_troll", "default_faction": "goblin" + }, + { + "id": "mon_wolf_goblin", + "type": "MONSTER", + "name": { "str": "warg" }, + "description": "An enormous wolf, a meter and a half high at the shoulder, as large as a young horse. Tamed wargs were common as pets before the Cataclysm, but this one looks anything but tame.", + "default_faction": "goblin", + "bodytype": "dog", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "volume": "200000 ml", + "weight": "200000 g", + "hp": 175, + "speed": 140, + "material": [ "flesh" ], + "symbol": "W", + "color": "light_gray", + "looks_like": "mon_wolf_mutant_huge", + "scents_tracked": [ "sc_human", "sc_fetid" ], + "aggression": 20, + "morale": 70, + "melee_skill": 7, + "melee_dice": 2, + "melee_dice_sides": 10, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 2, + "bleed_rate": 60, + "vision_day": 50, + "vision_night": 5, + "stomach_size": 800, + "harvest": "mammal_large_fur", + "dissect": "dissect_lupine_sample_large", + "families": [ "prof_intro_biology", "prof_physiology" ], + "path_settings": { "max_dist": 10 }, + "special_attacks": [ + { + "type": "bite", + "cooldown": 5, + "damage_max_instance": [ { "damage_type": "stab", "amount": 15, "armor_penetration": 10 } ] + }, + [ "SHRIEK", 12 ], + [ "EAT_FOOD", 60 ] + ], + "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "PLAYER_CLOSE" ], + "zombify_into": "mon_zombie_dog_fungus", + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "EATS" ], + "armor": { "bash": 8, "cut": 10, "electric": 1 } + }, + { + "id": "mon_goblin_bugbear", + "type": "MONSTER", + "name": { "str": "bugbear" }, + "description": "An enormous gray-green humanoid, over two meters tall with thick fur at their joints and long, tufted ears, this creature no longer has much resemblance to a goblin other than the color. Despite their size, they move in almost complete silence and hold a long bladed weapon in their hand.", + "default_faction": "goblin", + "bodytype": "human", + "species": [ "GOBLIN" ], + "volume": "60 L", + "weight": "70 kg", + "hp": 125, + "speed": 105, + "material": [ "flesh" ], + "symbol": "G", + "color": "green", + "aggression": 75, + "morale": 100, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 7 } ], + "dodge": 4, + "harvest": "orc", + "families": [ "prof_wp_demihuman" ], + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor" ], + "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK" ], + "vision_day": 8, + "vision_night": 25, + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "bugbear_combat_machete", + "cooldown": 1, + "move_cost": 110, + "accuracy": 6, + "//": "attack based on combat machete", + "damage_max_instance": [ { "damage_type": "cut", "amount": 23 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "hit_dmg_u": "%1$s hits your %2$s with their blade!", + "hit_dmg_npc": "%1$s hits 's %2$s with their blade!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "bugbear_combat_machete_rapid_strike", + "cooldown": 12, + "move_cost": 45, + "accuracy": 6, + "//": "attack based on combat machete + rapid strike", + "damage_max_instance": [ { "damage_type": "cut", "amount": 16 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "hit_dmg_u": "%1$s hits your %2$s with their blade!", + "hit_dmg_npc": "%1$s hits 's %2$s with their blade!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + } + ], + "path_settings": { "avoid_traps": true, "avoid_sharp": true }, + "death_drops": { + "subtype": "collection", + "items": [ + { "item": "xl_helmet_larmor", "prob": 20 }, + { "item": "xl_gauntlets_larmor", "prob": 20 }, + { "item": "xl_boots_larmor", "prob": 20 }, + { "item": "xl_armguard_larmor", "prob": 20 }, + { "item": "xl_armor_larmor_chest", "prob": 10 }, + { "item": "loincloth_fur", "prob": 10 }, + { "item": "footrags_fur", "prob": 10 }, + { "item": "gloves_wraps_fur", "prob": 10 }, + { "item": "bellywrap_fur", "prob": 5 }, + { "item": "chestwrap_fur", "prob": 5 }, + { + "distribution": [ { "item": "survivor_machete", "prob": 98 }, { "item": "broadsword_plus_one", "prob": 2 } ], + "prob": 100 + } + ] + }, + "armor": { "bash": 4, "cut": 12, "bullet": 8 }, + "flags": [ "SEES", "HEARS", "HAS_MIND", "WARM", "BASHES", "PATH_AVOID_DANGER_1", "SWARMS", "GROUP_MORALE", "WIELDED_WEAPON" ] + }, + { + "id": "mon_goblin_bugbear_stalker", + "type": "MONSTER", + "copy-from": "mon_goblin_bugbear", + "name": { "str": "bugbear stalker" }, + "description": "An enormous gray-green humanoid, over two meters tall with thick fur at their joints and long, tufted ears, this creature no longer has much resemblance to a goblin other than the color. Despite their size, they move in almost complete silence and hold a long spear in their hand. Strangely, you can only see them when you're looking directly at them; when in the corner of your vision they simply fade from sight.", + "color": "dark_gray", + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "bugbear_stalker_attack", + "cooldown": 1, + "move_cost": 110, + "accuracy": 6, + "range": 2, + "//": "attack based on knife spear", + "damage_max_instance": [ { "damage_type": "stab", "amount": 26 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "hit_dmg_u": "%1$s hits your %2$s with their spear!", + "hit_dmg_npc": "%1$s hits 's %2$s with their spear!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + } + ], + "death_drops": { + "subtype": "collection", + "items": [ + { "item": "xl_helmet_larmor", "prob": 20 }, + { "item": "xl_gauntlets_larmor", "prob": 20 }, + { "item": "xl_boots_larmor", "prob": 20 }, + { "item": "xl_armguard_larmor", "prob": 20 }, + { "item": "xl_armor_larmor_chest", "prob": 10 }, + { "item": "loincloth_fur", "prob": 10 }, + { "item": "footrags_fur", "prob": 10 }, + { "item": "gloves_wraps_fur", "prob": 10 }, + { "item": "bellywrap_fur", "prob": 5 }, + { "item": "chestwrap_fur", "prob": 5 }, + { + "distribution": [ { "group": "survivor_stabbing", "prob": 97 }, { "item": "spear_steel_plus_one", "prob": 3 } ], + "prob": 100 + } + ] + }, + "extend": { "flags": [ "CAMOUFLAGE" ] } } ] diff --git a/data/mods/Magiclysm/monsters/orcs.json b/data/mods/Magiclysm/monsters/orcs.json index 75f4c7763172f..f8670e46a8fe5 100644 --- a/data/mods/Magiclysm/monsters/orcs.json +++ b/data/mods/Magiclysm/monsters/orcs.json @@ -9,30 +9,66 @@ "id": "mon_orc_warrior", "type": "MONSTER", "name": { "str": "orc warrior" }, - "description": "This green brute is an orc warrior. It stares at you menacingly, sword in hand.", - "default_faction": "orcs", + "description": "Like a goblin, but stretched and exaggerated until they're as tall as a human but much more heavily muscled, wearing improvised armor and carrying a spear.", + "default_faction": "goblin", "bodytype": "human", - "species": [ "ORC" ], + "species": [ "GOBLIN", "ORC" ], "volume": "60 L", "weight": "70 kg", "hp": 92, - "speed": 110, + "speed": 90, "material": [ "flesh" ], - "symbol": "o", + "symbol": "G", "color": "green", "aggression": 75, "morale": 100, - "melee_skill": 5, - "melee_dice": 6, - "melee_dice_sides": 4, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 7 } ], - "dodge": 7, + "dodge": 3, "harvest": "orc", "families": [ "prof_wp_demihuman" ], "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK" ], - "vision_day": 13, - "vision_night": 5, + "vision_day": 20, + "vision_night": 25, + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "orc_combat_machete", + "cooldown": 1, + "move_cost": 91, + "range": 1, + "//": "attack based on combat machete", + "damage_max_instance": [ { "damage_type": "cut", "amount": 23 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "hit_dmg_u": "%1$s hits your %2$s with their blade!", + "hit_dmg_npc": "%1$s hits 's %2$s with their blade!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "orc_combat_machete_rapid_strike", + "cooldown": 12, + "move_cost": 45, + "range": 1, + "//": "attack based on combat machete + rapid strike", + "damage_max_instance": [ { "damage_type": "cut", "amount": 16 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "hit_dmg_u": "%1$s hits your %2$s with their blade!", + "hit_dmg_npc": "%1$s hits 's %2$s with their blade!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + } + ], "path_settings": { "avoid_traps": true, "avoid_sharp": true }, "zombify_into": "mon_zorc", "death_drops": { @@ -48,27 +84,23 @@ { "item": "gloves_wraps_fur", "prob": 10 }, { "item": "bellywrap_fur", "prob": 5 }, { "item": "chestwrap_fur", "prob": 5 }, - { "item": "longsword", "prob": 100 } + { + "distribution": [ + { "item": "survivor_machete", "prob": 96 }, + { "item": "arming_sword_plus_one", "prob": 2 }, + { "item": "broadsword_plus_one", "prob": 2 } + ], + "prob": 100 + } ] }, - "flags": [ - "SEES", - "HEARS", - "HAS_MIND", - "WARM", - "BASHES", - "FILTHY", - "PATH_AVOID_DANGER_1", - "SWARMS", - "GROUP_MORALE", - "WIELDED_WEAPON" - ] + "flags": [ "SEES", "HEARS", "HAS_MIND", "WARM", "BASHES", "PATH_AVOID_DANGER_1", "SWARMS", "GROUP_MORALE", "WIELDED_WEAPON" ] }, { "type": "MONSTER", "id": "mon_orc_archer", "name": { "str": "orc archer" }, - "description": "This green brute is an orc archer. It looks at you with a bow in hand and smiles silently as it aims at you.", + "description": "Like a goblin, but stretched and exaggerated until they're as tall as a human but much more heavily muscled, wearing improvised armor and carrying a bow. They smile silently, baring a set of sharp teeth, as they aim at you.", "copy-from": "mon_orc_warrior", "melee_skill": 2, "death_drops": { @@ -116,13 +148,33 @@ "type": "MONSTER", "copy-from": "mon_orc_warrior", "name": { "str": "blood orc" }, - "description": "This bloody red brute is an orc warrior. He stares at you menacingly, weapon in hand; this one seems to have bathed himself in the blood of his enemies.", + "description": "Like a goblin, but stretched and exaggerated until they're as tall as a human but much more heavily muscled, wearing improvised armor and carrying an enormous metallic club. There are red streaks all over their skin, like they had bathed themselves in blood.", "hp": 97, "dodge": 3, "aggression": 100, + "melee_skill": 5, "color": "red", - "melee_dice_sides": 8, - "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "orc_blood_pipe_attack", + "cooldown": 1, + "move_cost": 129, + "accuracy": 4, + "range": 1, + "//": "attack based on great pipe mace", + "damage_max_instance": [ { "damage_type": "bash", "amount": 30 } ], + "condition": { "and": [ { "not": { "u_has_effect": "maimed_arm" } }, { "not": { "u_has_effect": "disarmed" } } ] }, + "effects": [ { "id": "stunned", "duration": 2, "chance": 5 }, { "id": "downed", "duration": 1, "chance": 3 } ], + "hit_dmg_u": "%1$s hits your %2$s with their mace!", + "hit_dmg_npc": "%1$s hits 's %2$s with their mace!", + "miss_msg_u": "%1$s tries to hit you, but you dodge!", + "miss_msg_npc": "%1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "%1$s hits your %2$s without penetrating your armor.", + "no_dmg_msg_npc": "%1$s hits 's %2$s without penetrating their armor." + } + ], "death_drops": { "subtype": "collection", "items": [ @@ -136,7 +188,70 @@ { "item": "gloves_wraps_fur", "prob": 10 }, { "item": "bellywrap_fur", "prob": 5 }, { "item": "chestwrap_fur", "prob": 5 }, - { "item": "warhammer", "prob": 100 } + { + "distribution": [ + { "item": "mace_pipe_large", "prob": 96 }, + { "item": "mace_plus_one", "prob": 2 }, + { "item": "warhammer_plus_one", "prob": 2 } + ], + "prob": 100 + } + ] + } + }, + { + "id": "mon_orc_mage_blood", + "type": "MONSTER", + "copy-from": "mon_orc_warrior", + "name": { "str": "orc blood-mage" }, + "//": "Not the blood mage attunement, just magic themed around bleeding", + "description": "Like a goblin, but stretched and exaggerated until they're as tall as a human but much more heavily muscled, wearing improvised armor. There are red streaks all over their skin, like they had bathed themselves in blood, and their hands glow faintly red.", + "hp": 97, + "dodge": 3, + "aggression": 100, + "melee_skill": 5, + "color": "red", + "special_attacks": [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "mon_orc_mage_blood_bleeding_spell", + "cooldown": 10, + "move_cost": 100, + "range": 8, + "damage_max_instance": [ { "damage_type": "necrotic", "amount": 10 } ], + "effects": [ { "id": "bleed", "duration": 60, "chance": 33, "intensity": 3, "affect_hit_bp": true } ], + "dodgeable": true, + "blockable": false, + "hit_dmg_u": "%1$s growls words of magic and your %2$s is impacted by a bolt of carmine energy!", + "hit_dmg_npc": "%1$s growls words of magic and 's %2$s is impacted by a bolt of carmine energy!", + "miss_msg_u": "%1$s growls words of magic and you narrowly avoid a bolt of carmine energy!", + "miss_msg_npc": "%1$s growls words of magic and narrowly avoids a bolt of carmine energy!", + "no_dmg_msg_u": "%1$s growls words of magic and your %2$s is surrounded by a cloud of scratching thorns, but they do no damage.", + "no_dmg_msg_npc": "%1$s growls words of magic and 's %2$s is surrounded by a cloud of scratching thorns, but they do no damage." + }, + { + "id": "mon_orc_mage_bloodlust_spell", + "type": "spell", + "spell_data": { "id": "mon_bloodlust_spell" }, + "cooldown": 20, + "monster_message": "%1$s makes a frenzied cry and as they point, %3$s is surrounded by a red glow." + } + ], + "death_drops": { + "subtype": "collection", + "items": [ + { "item": "helmet_scrap", "prob": 20 }, + { "item": "legguard_scrap", "prob": 10 }, + { "item": "boots_scrap", "prob": 10 }, + { "item": "cuirass_scrap", "prob": 20 }, + { "item": "loincloth_fur", "prob": 10 }, + { "item": "footrags_fur", "prob": 10 }, + { "item": "gloves_wraps_fur", "prob": 10 }, + { "item": "bellywrap_fur", "prob": 5 }, + { "item": "chestwrap_fur", "prob": 5 }, + { "group": "magic_plants_common", "prob": 10 }, + { "group": "magic_plants_uncommon", "prob": 1 } ] } } diff --git a/data/mods/Magiclysm/worldgen/goblin_encampment.json b/data/mods/Magiclysm/worldgen/goblin_locations/goblin_encampment.json similarity index 65% rename from data/mods/Magiclysm/worldgen/goblin_encampment.json rename to data/mods/Magiclysm/worldgen/goblin_locations/goblin_encampment.json index 95468a631d71f..ca0eb67403188 100644 --- a/data/mods/Magiclysm/worldgen/goblin_encampment.json +++ b/data/mods/Magiclysm/worldgen/goblin_locations/goblin_encampment.json @@ -16,39 +16,39 @@ " ", " & ", " #####################################||3333333||#################################################### ", - " #1.....1.............1......1.......# & #1......1.........1........1................1......# ", - " #...................................# % #..................................................# ", - " #...................................# #..................................................# ", - " #...................................# % #..................................................# ", - " #...................................# #..................................................# ", - " #1....##########################.#### ##############################################.....# ", - " #.....#l l #1....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #1....# ", - " #1....# #.....# ", - " #.....# #.....# ", - " #.....# ......# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# l#.....# ", - " #.....# #.....# ", - " #1....# #1....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #1....# #1....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #.....# #.....# ", - " #1....# #1....# ", - " #.....# #.....# ", + " #1.....1.............1......1.......# ,,___,,& #1......1.........1........1................1......# ", + " #...................................# ,,___,,% #..................................................# ", + " #...................................# ,,___,, #..................................................# ", + " #...................................# ,,___,, #..................................................# ", + " #...................................# ,,___,, #..................................................# ", + " #1....##########################.#### ,,___,, ##############################################.....# ", + " #.....#l ,,___,, l#1....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #1....# ", + " #1....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, ......# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, l#.....# ", + " #.....# ,,___,, #.....# ", + " #1....# ,,___,, #1....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #.....# ,,___,, #.....# ", + " #1....# ,,___,, #1....# ", + " #.....# ,,,@_@,,, #.....# ", + " #.....# ,,,_____,,, #.....# ", + " #.....# ,,@___O___@,, #.....# ", + " #.....# ,,,__OOO__,,, #.....# ", + " #.....# ,,@___O___@,, #.....# ", + " #.....# ,,,______,,, #.....# ", + " #1....# ,,,@__@,,, #1....# ", + " #.....# ,,,,,, #.....# ", " #.....# #.....# ", " #.....# #.....# ", " #.....# #.....# ", @@ -62,7 +62,7 @@ " #.....# #.....# ", " #.....# #1....# ", " #1....#l TTT Y #.....# ", - " #.....# Y #.....# ", + " #.....# #.....# ", " #.....# === = #.....# ", " #.....# ====== #.....# ", " #.....# c === #.....# ", @@ -91,16 +91,24 @@ "%": { "item": "trash", "chance": 40, "repeat": [ 1, 2 ] } }, "place_nested": [ - { "chunks": [ "goblin_center_nest" ], "x": 25, "y": 25 }, - { "chunks": [ "goblin_center_nest" ], "x": 49, "y": 25 }, - { "chunks": [ "goblin_center_nest" ], "x": 73, "y": 25 } + { "chunks": [ "goblin_north_nest" ], "x": 25, "y": 11 }, + { "chunks": [ "goblin_north_nest" ], "x": 58, "y": 11 }, + { "chunks": [ "goblin_north_nest" ], "x": 72, "y": 11 }, + { "chunks": [ "goblin_north_nest" ], "x": 84, "y": 11 }, + { "chunks": [ "goblin_center_nest_west" ], "x": 25, "y": 24 }, + { "chunks": [ "goblin_center_nest_east" ], "x": 58, "y": 24 }, + { "chunks": [ "goblin_center_nest_east" ], "x": 72, "y": 24 }, + { "chunks": [ "goblin_center_nest_east" ], "x": 84, "y": 24 }, + { "chunks": [ "goblin_center_nest_west" ], "x": 25, "y": 36 }, + { "chunks": [ "goblin_center_nest_east" ], "x": 58, "y": 36 }, + { "chunks": [ "goblin_center_nest_east" ], "x": 72, "y": 36 }, + { "chunks": [ "goblin_center_nest_east" ], "x": 84, "y": 36 }, + { "chunks": [ "goblin_south_nest" ], "x": 36, "y": 48 }, + { "chunks": [ "goblin_south_nest" ], "x": 58, "y": 48 }, + { "chunks": [ "goblin_south_nest" ], "x": 81, "y": 48 } ], "nested": { "1": { "chunks": [ [ "null", 20 ], [ "goblin_campfire", 80 ] ] } }, - "place_monsters": [ - { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 24, 47 ], "y": [ 24, 46 ], "density": 0.1, "repeat": [ 1, 3 ] }, - { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 48, 71 ], "y": [ 24, 46 ], "density": 0.1, "repeat": [ 1, 3 ] }, - { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 72, 95 ], "y": [ 24, 46 ], "density": 0.1, "repeat": [ 1, 3 ] } - ] + "place_monster": [ { "monster": "mon_wolf_goblin", "x": [ 24, 47 ], "y": [ 24, 46 ], "chance": 50, "repeat": [ 3, 6 ] } ] } }, { @@ -113,11 +121,17 @@ "t": "t_wall_wattle", "W": "t_wall_wattle_half", "w": "t_wall_wattle_broken", - " ": "t_region_groundcover_urban", + " ": "t_region_groundcover", "T": "t_trunk", "&": "t_palisade_pulley", + ",": [ [ "t_region_groundcover", 1 ], [ "t_dirt", 1 ] ], + "_": "t_dirt", + "@": "t_dirt", + "O": "t_dirt", "|": "t_palisade", + "R": "t_dirtfloor_thatchroof", ".": "t_dirtfloor", + "c": "t_dirtfloor", "h": "t_dirtfloor", "!": "t_dirtfloor", "~": "t_dirtfloor", @@ -127,8 +141,11 @@ }, "furniture": { "h": "f_straw_bed", + "b": "f_bench_wooden", "@": "f_logstool", "c": "f_firering", + "O": "f_firering", + "R": "f_rack_wood", "Y": [ [ "f_boulder_small", 5 ], "f_boulder_medium", "f_boulder_large" ] }, "items": { @@ -140,274 +157,6 @@ "~": { "item": "midden_heap", "chance": 40, "repeat": [ 1, 2 ] } } }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "goblin_center_nest", - "object": { - "mapgensize": [ 23, 23 ], - "rotation": [ 0, 3 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " tttttt %%%%% ", - " th~.G+ g %%% ", - " t!~~.t %%% ", - " tttttt % %%% ", - " @ c %%% ", - " %% ", - " %%% g @ c ", - " %% @ ", - " %% g ", - " %% ", - " %%%% ", - " %%% tt+t ", - " %%% t~Gt ", - " %% t~ht ", - " t!.t ", - " tttt ", - " ", - " " - ], - "palettes": [ "goblin_palette" ], - "terrain": { "G": "t_dirtfloor" }, - "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "goblin_center_nest", - "object": { - "mapgensize": [ 23, 23 ], - "rotation": [ 0, 3 ], - "rows": [ - " ", - " %%%% ", - " % ", - " %%%% % ", - " %% ", - " % %% ", - " % ", - " ", - " ttttt+tttttt ", - " t!T.......!t ", - " t!........!t ", - " t!........!t ", - " tGGGggggGGGt ", - " thhhhhhhhhht ", - " tttttttttttt ", - " %%%%% ", - " % %%% ", - " %% % ", - " ", - " c c ", - " ", - " ", - " " - ], - "palettes": [ "goblin_palette" ], - "terrain": { "G": "t_dirtfloor", "g": "t_dirtfloor" }, - "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "goblin_center_nest", - "object": { - "mapgensize": [ 23, 23 ], - "rotation": [ 0, 3 ], - "rows": [ - " ", - " ", - " ", - " ", - " % %% ", - " %%%% %% ", - " g % % ", - " % ", - " c c %% ", - " % h G c ", - " %% %% G g % g ", - " % % h c %$%% ", - " % % % ", - " % c c h ", - " G h ", - " G ", - " %%% ", - " %% ", - " ", - " %%% % ", - " %% %%% ", - " %% %%% ", - " " - ], - "palettes": [ "goblin_palette" ], - "terrain": { "h": "t_region_groundcover_urban", "G": "t_region_groundcover_urban", "g": "t_region_groundcover_urban" }, - "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "goblin_center_nest", - "object": { - "mapgensize": [ 23, 23 ], - "rotation": [ 0, 3 ], - "rows": [ - " ", - " ", - " ", - " G ", - " g ", - " %%%% g ", - " %% %%% ", - " %% %%%% ", - " T % T %% ", - " %%%%%% %%% ", - " T%%%%%% ", - " %%%%%%%% T g ", - " %% %%%%%%%%%% ", - " T%%%% %%% ", - " %%%%% T g ", - " %%%% ", - " %%%% ", - " ", - " g G ", - " ", - " ", - " ", - " " - ], - "palettes": [ "goblin_palette" ], - "terrain": { "G": "t_region_groundcover_urban", "g": "t_region_groundcover_urban" }, - "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "monster": "mon_goblin_slinger" } } - } - }, - { - "type": "mapgen", - "method": "json", - "//": "goblin campfire", - "nested_mapgen_id": "goblin_campfire", - "object": { - "mapgensize": [ 5, 5 ], - "rotation": [ 0, 3 ], - "rows": [ - "h ", - " ", - " ~~c ", - " h", - " " - ], - "palettes": [ "goblin_palette" ], - "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, - "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "//": "goblin campfire", - "nested_mapgen_id": "goblin_campfire", - "object": { - "mapgensize": [ 5, 5 ], - "rotation": [ 0, 3 ], - "rows": [ - "h ", - "h ", - " ~~ ", - " h ~h", - " h " - ], - "palettes": [ "goblin_palette" ], - "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, - "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "//": "goblin campfire", - "nested_mapgen_id": "goblin_campfire", - "object": { - "mapgensize": [ 5, 5 ], - "rotation": [ 0, 3 ], - "rows": [ - "~ ", - " ", - " ", - " c", - " ~" - ], - "palettes": [ "goblin_palette" ], - "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, - "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "//": "goblin campfire", - "nested_mapgen_id": "goblin_campfire", - "object": { - "mapgensize": [ 5, 5 ], - "rotation": [ 0, 3 ], - "rows": [ - "~ ", - " ~~~ ", - " c~~~", - " ~h", - " ~" - ], - "palettes": [ "goblin_palette" ], - "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, - "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "//": "goblin campfire", - "nested_mapgen_id": "goblin_campfire", - "object": { - "mapgensize": [ 5, 5 ], - "rotation": [ 0, 3 ], - "rows": [ - "~ ~", - "h ~~", - "h ~~", - "h ~~", - "h ~" - ], - "palettes": [ "goblin_palette" ], - "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, - "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "//": "goblin campfire", - "nested_mapgen_id": "goblin_campfire", - "object": { - "mapgensize": [ 5, 5 ], - "rotation": [ 0, 3 ], - "rows": [ - " ", - " c ~ ", - " h~ ", - " ", - " ~" - ], - "palettes": [ "goblin_palette" ], - "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, - "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] - } - }, { "type": "overmap_special", "id": "goblin_encampment", @@ -443,10 +192,10 @@ { "point": [ 4, 2, 0 ], "overmap": "goblin_5C_north" }, { "point": [ 4, 2, 1 ], "overmap": "goblin_5C_roof_north" } ], - "locations": [ "wilderness" ], + "locations": [ "forest_center" ], "city_distance": [ 30, -1 ], "city_sizes": [ 0, 20 ], - "occurrences": [ 0, 2 ] + "occurrences": [ 0, 1 ] }, { "type": "overmap_terrain", diff --git a/data/mods/Magiclysm/worldgen/goblin_locations/goblin_nested.json b/data/mods/Magiclysm/worldgen/goblin_locations/goblin_nested.json new file mode 100644 index 0000000000000..a5eab79d177ed --- /dev/null +++ b/data/mods/Magiclysm/worldgen/goblin_locations/goblin_nested.json @@ -0,0 +1,821 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_north_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ttttt ", + " th.ht ", + " t.c.t ", + " t...t ", + " tt+tt ", + " ,_, ttttt ", + " , th.ht ", + " t.c.t ", + " t...t ", + " tt+tt ", + " ,_, " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { "G": "t_dirtfloor_thatchroof", "g": "t_dirtfloor_thatchroof", "c": "t_dirtfloor", ".": "t_dirtfloor_thatchroof" }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_north_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " tttttttt ", + " tRRRRRRt ", + " tR....Rt ", + " tR....Rt ", + " ttt+tttt ", + " ", + " @ ", + " ,,, ", + " @,O,@ ", + " ,,, ", + " @ " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_storage", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_north_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " ,,,, ", + " ,,___,, ", + " ,,_L___, ", + " ,,___L,, ", + " ,,,_L___, ", + ",,_L_ ___, ", + " ,,,,, ", + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { "L": "t_dirt" }, + "furniture": { "L": "f_log_stack_mid" }, + "items": { "R": { "item": "orc_village_storage", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_north_nest", + "weight": 750, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " LLLL ", + " LL__LL ", + " LL_G__LL ", + " L______L ", + " L______L ", + " LL__G_LL ", + " LL__LL ", + " LLLL ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "L": "t_trunk", "G": "t_dirt" }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 3 ] } ], + "monster": { "G": { "monster": "mon_goblin_chieftain" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_north_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " L X XL ", + " L X X L ", + " L X X L ", + " L XL ", + " L X L ", + " L X L ", + " L X L ", + " LLLLGLLLL ", + " ", + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "X": "t_dirt", "L": "t_splitrail_fence", "G": "t_splitrail_fencegate_c" }, + "nested": { "X": { "chunks": [ [ "human_gore", 2 ], [ "null", 1 ] ] } }, + "place_monster": [ + { "monster": "mon_wolf_goblin", "x": [ 4, 7 ], "y": [ 0, 6 ], "repeat": [ 2, 5 ] }, + { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 8, 11 ], "repeat": [ 1, 2 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_north_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " % % ", + " %% % ", + " %%%% ", + " %%%%% ", + " %%%%%% ", + " %%%%%%% ", + " %%%%% ", + " %%%%% ", + " %% ", + " % ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_west", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ttttttt ", + " th....t ", + " th..ggt ", + " t..hggt,,", + " %t.....+_,", + " %tG.c. +_,", + " %%tR...bt,,", + " %%tR.h.bt ", + " tbb..ht ", + " ttttttt ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { + "G": "t_dirtfloor_thatchroof", + "g": "t_dirtfloor_thatchroof", + "b": "t_dirtfloor_thatchroof", + "R": "t_dirtfloor_thatchroof", + "c": "t_dirtfloor", + ".": "t_dirtfloor_thatchroof" + }, + "items": { "R": { "item": "magic_tools_and_loot", "chance": 50, "repeat": [ 1, 3 ] } }, + "monster": { "G": { "monster": "mon_goblin_mage_poison" }, "g": { "group": "GROUP_ALL_GOBLINS" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_west", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " tttttttttt ", + " t.h....h.t ", + " t.....h..t ", + " tR.h.....t ", + " tR...c...+ ", + " tRh..c...+ ", + " t.....h..t ", + " t..h.....t ", + " t.......ht ", + " t.h..h...t ", + " tttttttttt " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_foodstuffs", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 4, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_west", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " tttttttttt ", + " t.h....h.t ", + " t.....h..t ", + " tR.h.....t ", + " tR...c...+ ", + " tRh..c...+ ", + " t.....h..t ", + " t..h.....t ", + " t.......ht ", + " t.h..h...t ", + " tttttttttt " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": [ [ "t_dirtfloor", 1 ], [ "t_dirt", 1 ] ], "t": [ [ "t_wall_wattle_broken", 2 ], [ "t_wall_wattle", 1 ] ] }, + "furniture": { "h": [ [ "f_straw_bed", 1 ], [ "f_rubble_landfill", 3 ] ], "R": [ [ "f_rack_wood", 1 ], [ "f_rubble_landfill", 6 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_west", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ttttt ", + " tR.ht, ", + " th..+_, ", + " t...t, ", + " t.h.t ", + " ttttt ", + " ,@, ", + " ,___, ", + " @_O_@ ", + " ,___, ", + " ,@, " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "h": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_foodstuffs", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 3 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_west", + "weight": 750, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " LLLL ", + " LL__LL ", + " LL_G__LL ", + " L______L ", + " L______L ", + " LL__G_LL ", + " LL__LL ", + " LLLL ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "L": "t_trunk", "G": "t_dirt" }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 3 ] } ], + "monster": { "G": { "monster": "mon_goblin_chieftain" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_west", + "weight": 750, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " % % ", + " %% % ", + " %%%% ", + " %%%%% ", + " %%%%%% ", + " %%%%%%% ", + " %%%%% ", + " %%%%% ", + " %% ", + " % ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " tttttttttt ", + " t.h....h.t ", + " t..h.....t ", + " t.....h.Rt ", + "_+...c...Rt ", + "_+...c..hRt ", + " t..h.....t ", + " t.....h..t ", + " th.......t ", + " t...h..h.t ", + " tttttttttt " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_foodstuffs", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 4, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "weight": 750, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ttttttt ", + " t.h.bbt %", + " tb...Rt%% ", + ",,tb...Rt%% ", + ",_+..c.Gt% ", + ",_+....ht% ", + ",,tgg...t ", + " tgg...t ", + " t...hht ", + " ttttttt ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { + "G": "t_dirtfloor_thatchroof", + "g": "t_dirtfloor_thatchroof", + "b": "t_dirtfloor_thatchroof", + "R": "t_dirtfloor_thatchroof", + "c": "t_dirtfloor", + ".": "t_dirtfloor_thatchroof" + }, + "items": { "R": { "item": "magic_tools_and_loot", "chance": 50, "repeat": [ 1, 3 ] } }, + "monster": { "G": { "monster": "mon_goblin_mage_poison" }, "g": { "group": "GROUP_ALL_GOBLINS" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "weight": 750, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ,@, ", + " @,,,,, ", + " ,,@, ", + " ,,____,@ ", + " @___@_,, ", + " ,,_____,, ", + " ,,___@ ", + " @,,,,,,,, ", + " @ ", + " @ ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { + "G": "t_dirtfloor_thatchroof", + "g": "t_dirtfloor_thatchroof", + "b": "t_dirtfloor_thatchroof", + "R": "t_dirtfloor_thatchroof", + "c": "t_dirtfloor", + ".": "t_dirtfloor_thatchroof" + }, + "items": { "R": { "item": "magic_tools_and_loot", "chance": 50, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 6 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " tttttttttt ", + " t.h....h.t ", + " t..h.....t ", + " t.....h.Rt ", + "_+...c...Rt ", + "_+...c..hRt ", + " t..h.....t ", + " t.....h..t ", + " th.......t ", + " t...h..h.t ", + " tttttttttt " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "R": "t_dirtfloor_thatchroof", "h": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_foodstuffs", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 4, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " tttttttttt ", + " t.h....h.t ", + " t..h.....t ", + " t.....h.Rt ", + " +...c...Rt ", + " +...c..hRt ", + " t..h.....t ", + " t.....h..t ", + " th.......t ", + " t...h..h.t ", + " tttttttttt " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": [ [ "t_dirtfloor", 1 ], [ "t_dirt", 1 ] ], "t": [ [ "t_wall_wattle_broken", 2 ], [ "t_wall_wattle", 1 ] ] }, + "furniture": { "h": [ [ "f_straw_bed", 1 ], [ "f_null", 3 ] ], "R": [ [ "f_rack_wood", 1 ], [ "f_null", 6 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "weight": 750, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " LLLL ", + " LL__LL ", + " LL_G__LL ", + " L______L ", + " L______L ", + " LL__G_LL ", + " LL__LL ", + " LLLL ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "L": "t_trunk", "G": "t_dirt" }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 3 ] } ], + "monster": { "G": { "monster": "mon_goblin_chieftain" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_center_nest_east", + "weight": 650, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " % % ", + " %% % ", + " %%%% ", + " %%%%% ", + " %%%%%% ", + " %%%%%%% ", + " %%%%% ", + " %%%%% ", + " %% ", + " % ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_south_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ,__, ", + " tttt++tttt ", + " t.....bb.t ", + " t.hgg....t ", + " t.h..c..ht ", + " t..g..g.bt ", + " thhGggGgbt ", + " tttttttttt ", + " %%%% ", + " %% ", + " % ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { + "G": "t_dirtfloor_thatchroof", + "g": "t_dirtfloor_thatchroof", + "b": "t_dirtfloor_thatchroof", + "c": "t_dirtfloor", + ".": "t_dirtfloor_thatchroof" + }, + "monster": { "G": { "monster": "mon_goblin_chieftain" }, "g": { "group": "GROUP_ALL_GOBLINS" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_south_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " @ ", + " ,,, ", + " @,O,@ ", + " ,,, ", + " @ ", + " ", + " tttt+ttt ", + " tR....Rt ", + " tR.R..Rt ", + " tR.RRRRt ", + " tttttttt ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_storage", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_south_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " LLLL ", + " LL__LL ", + " LL_G__LL ", + " L______L ", + " L______L ", + " LL__G_LL ", + " LL__LL ", + " LLLL ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof", "L": "t_trunk", "G": "t_dirt" }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 3 ] } ], + "monster": { "G": { "monster": "mon_goblin_chieftain" } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_south_nest", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ,___, ", + " %%,___, ", + " ttt+tttt ", + " %t.R...Rt%", + " tR.....t ", + " % t....R.t ", + " t..R...t ", + " % t.R..R.t%", + " t.R..R.t ", + " %tRRRRRRt ", + " tttttttt ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "terrain": { ".": "t_dirtfloor_thatchroof" }, + "items": { "R": { "item": "orc_village_foodstuffs", "chance": 70, "repeat": [ 1, 3 ] } }, + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 1 ], "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "goblin_south_nest", + "weight": 450, + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " % % ", + " %% % ", + " %%%% ", + " %%%%% ", + " %%%%%% ", + " %%%%%%% ", + " %%%%% ", + " %%%%% ", + " %% ", + " % ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "goblin_palette" ], + "place_monster": [ { "group": "GROUP_ALL_GOBLINS", "x": [ 0, 11 ], "y": [ 0, 11 ], "repeat": [ 1, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "h ", + " ", + " ~~c ", + " h", + " " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "h ", + "h ", + " ~~ ", + " h ~h", + " h " + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "~ ", + " ", + " ", + " c", + " ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "~ ", + " ~~~ ", + " c~~~", + " ~h", + " ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "~ ~", + "h ~~", + "h ~~", + "h ~~", + "h ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "goblin campfire", + "nested_mapgen_id": "goblin_campfire", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " c ~ ", + " h~ ", + " ", + " ~" + ], + "palettes": [ "goblin_palette" ], + "terrain": { "c": "t_dirtfloor", "~": "t_dirtfloor", "h": "t_dirtfloor", " ": "t_dirtfloor" }, + "place_monsters": [ { "monster": "GROUP_GOBLIN_STANDARD", "x": [ 1, 3 ], "y": [ 1, 3 ], "chance": 100 } ] + } + } +] diff --git a/data/mods/Magiclysm/worldgen/orc_village.json b/data/mods/Magiclysm/worldgen/goblin_locations/orc_village.json similarity index 70% rename from data/mods/Magiclysm/worldgen/orc_village.json rename to data/mods/Magiclysm/worldgen/goblin_locations/orc_village.json index 362f8151463b3..4e39681668403 100644 --- a/data/mods/Magiclysm/worldgen/orc_village.json +++ b/data/mods/Magiclysm/worldgen/goblin_locations/orc_village.json @@ -6,13 +6,13 @@ "3": "t_door_makeshift_c", "1": "t_palisade", "!": "t_pit_spiked", - "-": "t_rock_wall", - "|": "t_rock_wall", + "-": "t_wall_wattle", + "|": "t_wall_wattle", "#": "t_dirtfloor_thatchroof", "o": "t_dirtfloor_thatchroof", "B": "t_dirtfloor_thatchroof", "=": "t_dirtfloor_thatchroof", - "I": "t_rock_wall_half", + "I": "t_wall_log_half", ".": "t_dirt" }, "items": { @@ -30,7 +30,7 @@ }, { "id": "orc_village_foodstuffs", - "//": "stuff the orcs 'eat', mostly there for flavor, pun intended", + "//": "stuff the goblins 'eat', mostly there for flavor, pun intended", "type": "item_group", "subtype": "collection", "on_overflow": "spill", @@ -41,13 +41,17 @@ { "item": "bone_human", "prob": 20 }, { "item": "human_lard", "prob": 15 }, { "item": "wastebread", "count-max": 8, "prob": 70 }, + { "item": "dry_fruit", "count-max": 8, "prob": 70 }, + { "item": "dry_veggy", "count-max": 8, "prob": 70 }, { "item": "meat_salted", "count-max": 3, "custom-flags": "CANNIBALISM", "prob": 50 }, - { "item": "meat_smoked", "count-max": 3, "custom-flags": "CANNIBALISM", "prob": 70 } + { "item": "meat_salted", "count-max": 8, "prob": 50 }, + { "item": "meat_smoked", "count-max": 3, "custom-flags": "CANNIBALISM", "prob": 70 }, + { "item": "meat_smoked", "count-max": 8, "prob": 50 } ] }, { "id": "orc_village_storage", - "//": "stuff the orcs are storing in their racks, weapons, utils and such", + "//": "stuff the goblins are storing in their racks, weapons, utils and such", "type": "item_group", "subtype": "distribution", "entries": [ @@ -68,7 +72,7 @@ "type": "mapgen", "method": "json", "nested_mapgen_id": "human_gore", - "//": "lore: brutally slaughtered human, only scraps of it remain. the orcs have taken everything they need from it and left the rest there to frighten every human that comes close to their village. can be reused for other purposes, such as humans eaten by animals.", + "//": "lore: brutally slaughtered human, only scraps of it remain. the goblins have taken everything they need from it and left the rest there to frighten every human that comes close to their outpost. can be reused for other purposes, such as humans eaten by animals.", "object": { "mapgensize": [ 1, 1 ], "place_fields": [ @@ -91,18 +95,18 @@ "1.......|===|...|==|...1", "1.-----.|###|.|-|##|-|.1", "1.|BBB|.......|==####|.1", - "1.|BoB|.......3###BBB|.1", - "1.|##=|.......|BoBBoB|.1", - "1.--3--.......|BBBBBB|.1", + "1.|BoB|.......3#####B|.1", + "1.|##=|.......|Bo##oB|.1", + "1.--3--.......|BBB#BB|.1", "1.............|------|.1", "1......................1", - "1......................1", - "1.........ttt..........1", - "1.........tOt...|----|.1", - "1...............|=BBB|.1", - "1..............U|=BoB|.1", - "1..............-|=BBB|.1", - "1..............|=#BBB|.1", + "1.-----................1", + "1.|BBB|...ttt..........1", + "1.|Bo#3...tOt...|----|.1", + "1.|#==|.........|=B##|.1", + "1.-----........U|=#oB|.1", + "1..............-|=B#B|.1", + "1..............|=#B##|.1", "1UU............|=#BoB|.1", "1U.............|=#BBB|.1", "1H.............3###==|.1", @@ -113,23 +117,24 @@ "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "orc_palette" ], "nested": { "X": { "chunks": [ [ "human_gore", 9 ], [ "null", 1 ] ] } }, - "place_monsters": [ { "monster": "GROUP_ORC", "x": [ 3, 21 ], "y": [ 4, 19 ], "density": 0.6, "repeat": [ 3, 6 ] } ] + "place_monsters": [ { "monster": "GROUP_ALL_GOBLINS", "x": [ 3, 21 ], "y": [ 4, 19 ], "density": 0.3, "repeat": [ 3, 6 ] } ] } }, { "type": "overmap_special", "id": "orc_village", "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "orc_village_north" } ], - "locations": [ "wilderness" ], - "city_distance": [ 20, -5 ], - "city_sizes": [ 0, 13 ], - "occurrences": [ 0, 6 ] + "locations": [ "forest_without_trail" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, -1 ], + "occurrences": [ 0, 2 ], + "spawns": { "group": "GROUP_ALL_GOBLINS", "population": [ 10, 30 ], "radius": [ 1, 10 ] } }, { "type": "overmap_terrain", "id": [ "orc_village" ], - "name": "orc village", - "sym": "o", + "name": "goblin outpost", + "sym": "G", "color": "green", "see_cost": 6, "flags": [ "RISK_HIGH" ] diff --git a/data/mods/Magiclysm/worldgen/overmap_specials.json b/data/mods/Magiclysm/worldgen/overmap_specials.json index 584ddf0b2d77a..f5d6e757de683 100644 --- a/data/mods/Magiclysm/worldgen/overmap_specials.json +++ b/data/mods/Magiclysm/worldgen/overmap_specials.json @@ -292,6 +292,6 @@ "city_sizes": [ 0, 20 ], "occurrences": [ 0, 2 ], "spawns": { "group": "GROUP_OGRE", "population": [ 1, 10 ], "radius": [ 1, 6 ] }, - "flags": [ "WILDERNESS" ] + "flags": [ "WILDERNESS", "RISK_HIGH" ] } ]