├── .gitattributes ├── 0_terrain_furniture ├── barrels and chests.json ├── construction groups.json ├── construction.json ├── furniture.json ├── furniture_flora.json ├── terrain_trees.json ├── terrains │ ├── terrains.json │ └── veins.json └── transformations.json ├── README.md ├── blacklists ├── item blacklist.txt ├── portal_storm_effect_on_condition.json ├── recipe_blacklists.json ├── recipe_conversion.json ├── roads to dirt patch.json ├── skill blacklist.json ├── special_migration.json ├── terrain_conversions.json └── vehicle_blacklist.json ├── city stuff ├── aquatic.json ├── blacksmiths │ ├── blacksmith with apprentice │ │ ├── blacksmith apprentice npc.json │ │ ├── blacksmith master npc.json │ │ └── blacksmith shop2.json │ ├── blacksmith with family │ │ ├── blacksmith npc husband.json │ │ ├── blacksmith npc kid.json │ │ ├── blacksmith npc's wife.json │ │ └── blacksmith shop3.json │ ├── blacksmith_shop_item_group.json │ └── lone blacksmith │ │ └── blacksmith shop1.json ├── city_building_palette.json ├── city_buildings_ids.json ├── governmental.json ├── homes │ ├── homes.json │ └── nested_extras.json ├── industry.json ├── item_groups.json ├── market │ ├── city_market.json │ └── stalls.json ├── nested.json ├── overmap_terrain_ids.json ├── rangen buildings │ ├── rangen_template.json │ └── rooms.json ├── roads │ └── roads.json ├── taverns │ └── Buildings │ │ ├── mapgen.json │ │ ├── oms.json │ │ └── omt.json └── walls │ └── walls.json ├── emit.json ├── fields.json ├── item groups ├── books.json ├── flora harvest.json ├── item_groups.json ├── magic_items.json └── spell_scrolls.json ├── items ├── 1-rune_eff.json ├── 1-rune_ench.json ├── 1-rune_spells.json ├── 2-item_spells.json ├── alchemy │ ├── earth_potions.json │ ├── fire_potions.json │ ├── otherworldly_potions.json │ └── water_potions.json ├── ammo.json ├── coinage.json ├── comestibles.json ├── corpses.json ├── cult items.json ├── enchanted │ ├── divine │ │ ├── divine weapons.json │ │ ├── divine_wands.json │ │ ├── divine_weapons_plus1.json │ │ ├── divine_weapons_plus2.json │ │ ├── divine_weapons_plus3.json │ │ ├── divine_weapons_plus4.json │ │ └── magic_amulets.json │ ├── enchanted armor │ │ ├── armor_plus1.json │ │ ├── badges.json │ │ ├── enchanted tattoos.json │ │ ├── magic_feet.json │ │ ├── magic_head.json │ │ ├── magic_neck.json │ │ ├── magic_rings.json │ │ ├── magic_torso.json │ │ └── storage.json │ ├── enchanted trinkets │ │ ├── enchanted_trinkets.json │ │ ├── magic_trinkets.json │ │ └── miscellaneous.json │ ├── enchanted weapons │ │ ├── ranged_plus1.json │ │ ├── ranged_plus2.json │ │ ├── ranged_plus3.json │ │ ├── ranged_plus4.json │ │ ├── ranged_plus5.json │ │ ├── ranged_plus5.txt │ │ ├── runed weapons │ │ │ ├── electric runes │ │ │ │ ├── electric_rune.json │ │ │ │ ├── electric_rune_plus1.json │ │ │ │ ├── electric_rune_plus2.json │ │ │ │ ├── electric_rune_plus3.json │ │ │ │ └── electric_rune_plus4.json │ │ │ ├── flame runes │ │ │ │ ├── flame_rune.json │ │ │ │ ├── flame_rune_plus1.json │ │ │ │ ├── flame_rune_plus2.json │ │ │ │ ├── flame_rune_plus3.json │ │ │ │ └── flame_rune_plus4.json │ │ │ ├── frost runes │ │ │ │ ├── weapons_frost.json │ │ │ │ ├── weapons_frost_plus1.json │ │ │ │ ├── weapons_frost_plus2.json │ │ │ │ ├── weapons_frost_plus3.json │ │ │ │ └── weapons_frost_plus4.json │ │ │ └── weapon_rune.json │ │ ├── wands │ │ │ ├── druid.json │ │ │ ├── staves.json │ │ │ └── wands.json │ │ ├── weapon_plus1.json │ │ ├── weapon_plus2.json │ │ ├── weapon_plus3.json │ │ ├── weapon_plus4.json │ │ └── weapon_plus5.json │ ├── occult │ │ ├── misc_magic_items.json │ │ ├── summoning_items.json │ │ └── wands.json │ ├── summoning_items.json │ ├── templates.json │ └── trap_sigils.json ├── ethereal.json ├── fake.json ├── fluff.json ├── ink-related items.json ├── item_cat.json ├── maps.json ├── materials │ ├── incense.json │ ├── ores.json │ └── wood.json ├── old and broken weapons.json ├── plants │ ├── plants.json │ └── seed.json ├── qualities.json ├── recipe_books.json ├── rune.json ├── rune_matec.json ├── shields.json ├── tools │ └── tools.json ├── torso_stroage.json ├── trophies and patches.json └── weapon.json ├── locations ├── bandit_camp.json ├── caves │ ├── crystal caverns │ │ ├── crystal_cave_base.json │ │ └── crystal_cave_nested.json │ ├── demon ruins │ │ ├── blank demon ruins.json │ │ └── nested demon ruins.json │ ├── dwarven city │ │ ├── home rooms.json │ │ ├── subterranean administrative.json │ │ └── subterranean homes.json │ ├── enterances │ │ └── cave_enter.json │ ├── flooded cave │ │ ├── flooded_cave_base.json │ │ └── flooded_cave_nested.json │ ├── mushroom forest │ │ ├── mforest_blank.json │ │ └── mforest_nested.json │ ├── ruined citadel │ │ ├── nested.json │ │ └── ruined citadel.json │ ├── settlement ruins │ │ ├── nested buildings.json │ │ ├── roads.json │ │ └── ruined settlement.json │ ├── underground caves │ │ ├── cave_base.json │ │ └── cave_nested.json │ └── underground swamp │ │ ├── uswamp_base.json │ │ ├── uswamp_blank.json │ │ └── uswamp_nested.json ├── cults │ ├── demon_cult.json │ ├── eldritch_cult.json │ └── hexbound_cult.json ├── dragon lair │ ├── dragon_lair.json │ └── nested.json ├── druid_circle.json ├── eldritch_cult.json ├── farms.json ├── farms │ ├── farms.json │ └── ranch.json ├── goblin camp │ ├── goblin_camp.json │ └── rangen.json ├── guild hall.json ├── hobgoblin camp │ └── hobgoblin_camp.json ├── lake specials │ ├── kraken_lair.json │ └── water_temple.json ├── map extras │ ├── extra_ids.json │ └── mapgen.json ├── mine │ ├── blank_shaft.json │ ├── mine_surface.json │ └── ore_veins.json ├── mineral_pond.json ├── mtc cathedral │ └── mtc_cathedral.json ├── old_catacombs.json ├── palletes.json ├── ruined city │ ├── city_ruins.json │ └── nested.json ├── watchtower.json ├── waystation.json ├── werebeast_lair.json ├── wizard academy │ ├── nested.json │ ├── trial_maze.json │ └── wizard_academy.json └── wizard_study.json ├── modinfo.json ├── monsters ├── 1-effects.json ├── 2-fields.json ├── 3-spells.json ├── Constructs │ ├── animated_objects.json │ ├── elementals.json │ └── golems.json ├── Demons │ ├── mon_imp.json │ └── mon_shyleggah.json ├── Dragons │ ├── effect.json │ ├── field.json │ ├── mons.json │ └── spells.json ├── Undead │ ├── Ghosts.json │ ├── Skely.json │ └── Zed.json ├── Wildlife │ ├── fish.json │ ├── gastropods.json │ └── insects.json ├── drops.json ├── harvest.json ├── mon_bugbear.json ├── mon_hobgoblin.json ├── monammogun.json ├── mons.json ├── monstergroups.json ├── speech.json └── werebeasts.json ├── mutations ├── item_mutations.json ├── mutagen.json ├── recycled_mutations.json └── the_blood.json ├── npc stuff ├── NPC fantasy demographics patch.json ├── NPC worn and wield overrides.json ├── backgrounds │ ├── BG_acolyte.json │ ├── BG_anthropologist.json │ ├── BG_archaeologist.json │ ├── BG_charlatan.json │ ├── BG_city_watch.json │ ├── BG_delta_farmer.json │ ├── BG_dwarven_craftsman.json │ ├── BG_traits.json │ ├── Backstory_trait_groups.json │ ├── background_missions.json │ ├── backgrounds_intro_table.json │ └── player_backgrounds.json ├── bandits │ └── bandits.json ├── blacksmiths │ ├── blacksmith_missions.json │ └── lone │ │ ├── TALK_NPC_LONE_BLACKSMITH.json │ │ └── lone blacksmith npc.json ├── citizens │ ├── TALK_CARRIAGE_MAKER.json │ ├── TALK_CHILD.json │ ├── TALK_DRY_DOCK_MANAGER.json │ ├── TALK_GAMBLER.json │ ├── TALK_INFIRMARY_HEAD.json │ ├── TALK_LOGGER.json │ ├── TALK_NPC_GENERIC_CITIZEN.json │ ├── TALK_PRIEST.json │ ├── TALK_SHOPKEEPERS.json │ ├── TALK_STABLEMASTER.json │ ├── TALK_TELLER.json │ ├── TALK_WORSHIPER.json │ ├── females │ │ └── generic female citizen.json │ ├── generic │ │ └── npcs.json │ ├── males │ │ └── generic male citizen.json │ └── missions.json ├── classes.json ├── combat │ ├── dragonslayers │ │ ├── TALK_NPC_RETIRED_DRAGONSLAYER.json │ │ ├── missions.json │ │ └── retired dragonslayer npc.json │ ├── knights │ │ ├── TALK_NPC_STATIONED_KNIGHT.json │ │ └── stationed knight.json │ ├── mercenaries │ │ ├── TALK_MERCENARY_FRIENDLY.json │ │ └── mercenaries.json │ └── rogues │ │ ├── TALK_NPC_GAMBLING_ROGUE.json │ │ ├── TALK_NPC_NAUGHTY_ROGUE.json │ │ ├── gambling rogue.json │ │ └── naughty rogue.json ├── cultists │ ├── MISSION_OFFER.json │ ├── TALK_CULT_PROSPECT.json │ ├── cultists.json │ ├── elder cultists │ │ ├── TALK_CAPTAIN.json │ │ ├── TALK_DEFENDER.json │ │ ├── TALK_ELDER.json │ │ ├── TALK_HOMAGE.json │ │ ├── TALK_LOREVESSEL.json │ │ ├── TALK_MEMBER.json │ │ ├── TALK_ONOCTI.json │ │ ├── TALK_RECRUITER.json │ │ └── missions.json │ └── fiend cultists │ │ ├── TALK_FIEND_LEADER.json │ │ ├── TALK_FIEND_MAGICIAN.json │ │ ├── TALK_FIEND_SACRIFICER.json │ │ └── missions.json ├── erotic │ └── dancers │ │ ├── TALK_NPC_EXCITED_DANCER.json │ │ ├── TALK_NPC_NERVOUS_DANCER.json │ │ ├── TALK_NPC_TEASING_DANCER.json │ │ ├── excited dancer.json │ │ ├── nervous dancer.json │ │ └── teasing dancer.json ├── factions.json ├── generic_missions.json ├── guards │ ├── TALK_NPC_BOUNCER.json │ ├── TALK_NPC_CITY_GUARD.json │ ├── TALK_NPC_DRUNK_GUARD.json │ ├── TALK_NPC_GUARD_CAPTAIN.json │ ├── TALK_NPC_HORSE_GUARD.json │ ├── bouncer npc.json │ ├── city guard npc.json │ ├── drunk city guard npc.json │ ├── horse guard npc.json │ └── missions.json ├── guild masters │ ├── TALK_GUILD_MASTER.json │ ├── guild masters.json │ └── missions.json ├── menial and common │ ├── farmers │ │ ├── NPC_FARMERS.json │ │ ├── TALK_FARMERS.json │ │ ├── TALK_FARMHAND.json │ │ ├── TALK_RANCHAND.json │ │ ├── TALK_RANCHERS.json │ │ ├── farmers.json │ │ └── missions.json │ ├── fishers │ │ ├── TALK_NPC_GENERIC_FISHER.json │ │ ├── generic fisher npc.json │ │ └── missions.json │ ├── kitchenstaff │ │ ├── TALK_NPC_GENERIC_KITCHEN.json │ │ └── generic kitchen npc.json │ ├── maids │ │ ├── TALK_NPC_GENERIC_MAID.json │ │ └── generic maid npc.json │ ├── miners │ │ ├── TALK_MINE_BOSS.json │ │ └── miners.json │ ├── stall vendors │ │ ├── NPC_STALL_VENDORS.json │ │ └── generic_stall_vendors.json │ └── wenches │ │ ├── TALK_NPC_GENERIC_WENCH.json │ │ └── generic wench npc.json ├── religious │ ├── TALK_ACOLYTE.json │ ├── TALK_CLERIC.json │ ├── TALK_HOLY_SCROLLKEEPER.json │ ├── acolytes.json │ └── missions.json ├── snippets.json ├── tavernkeeps │ └── generic │ │ ├── TALK_NPC_GENERIC_TAVERNKEEP.json │ │ ├── generic tavernkeep npc.json │ │ └── missions.json └── wizards │ ├── TALK_APPRENTICE.json │ ├── academy │ ├── TALK_ACADEMY_APPRENTICE.json │ ├── TALK_ACADEMY_INFUSIONIST.json │ ├── TALK_ACADEMY_LIBRARIAN.json │ ├── TALK_ACADEMY_TATOO_ARTIST.json │ ├── TALK_ALCHEMY_INSTRUCTOR.json │ ├── TALK_DEAN.json │ ├── TALK_FIRST_YEAR_INSTRUCTOR.json │ ├── TALK_FOURTH_YEAR_INSTRUCTOR.json │ ├── TALK_INFUSION_INSTRUCTOR.json │ ├── TALK_RECEPTIONIST.json │ ├── TALK_SECOND_YEAR_INSTRUCTOR.json │ └── TALK_THIRD_YEAR_INSTRUCTOR.json │ ├── apprentices.json │ ├── druids │ ├── TALK_DRUID_MASTER.json │ ├── druids.json │ └── missions.json │ ├── mage_snippets.json │ └── missions.json ├── overmaps ├── overmap_special.json └── overmap_terrain.json ├── recipies ├── chemicals.json ├── cult │ ├── armor.json │ └── spellbooks.json ├── deconstruct │ ├── deconstruct.json │ └── magic weapons.json ├── magic items │ ├── armor │ │ ├── armor_plus1.json │ │ ├── divine │ │ │ └── amulets.json │ │ └── tatoos.json │ ├── armor_plus1.json │ ├── divine │ │ ├── amulets.json │ │ ├── divine_weapons.json │ │ ├── divine_weapons_plus1.json │ │ ├── divine_weapons_plus2.json │ │ ├── divine_weapons_plus3.json │ │ └── divine_weapons_plus4.json │ ├── enchanted weapons │ │ ├── electric │ │ │ ├── electric_rune.json │ │ │ ├── electric_rune_plus1.json │ │ │ ├── electric_rune_plus2.json │ │ │ ├── electric_rune_plus3.json │ │ │ └── electric_rune_plus4.json │ │ ├── flame │ │ │ ├── flame_rune.json │ │ │ ├── flame_rune_plus1.json │ │ │ ├── flame_rune_plus2.json │ │ │ ├── flame_rune_plus3.json │ │ │ └── flame_rune_plus4.json │ │ ├── frost │ │ │ ├── ice_rune.json │ │ │ ├── ice_rune_plus1.json │ │ │ ├── ice_rune_plus2.json │ │ │ ├── ice_rune_plus3.json │ │ │ └── ice_rune_plus4.json │ │ ├── weapon_plus1.json │ │ ├── weapon_plus2.json │ │ ├── weapon_plus3.json │ │ └── weapon_plus4.json │ ├── magic_chemicals.json │ ├── magic_tools.json │ ├── materials.json │ ├── misc │ │ ├── enchanted_trinkets.json │ │ └── materials.json │ ├── potions │ │ ├── concentrated.json │ │ └── potions.json │ ├── summoning_objects.json │ ├── traps.json │ └── wands.json ├── metals.json ├── misc.json ├── proficiencies.json ├── tools.json └── weapons, armor, and ammo │ ├── shields.json │ └── weapons.json ├── regional.json ├── requirements ├── alchemy.json └── magic.json ├── skills.json ├── snippets ├── epilouges.json └── personal epilouges.json ├── spellbooks ├── spell scrolls │ ├── cleric scrolls │ │ ├── cleric_cantrips.json │ │ ├── life_scrolls.json │ │ ├── light_scrolls.json │ │ ├── twighlight_scrolls.json │ │ └── war_scrolls.json │ ├── druid scrolls │ │ └── druid_scrolls.json │ ├── mage scrolls │ │ └── mage_scrolls.json │ └── warlock scrolls │ │ ├── eldritch_scrolls.json │ │ ├── fiend_scrolls.json │ │ ├── hexbound_scrolls.json │ │ └── warlock_cantrips.json └── spellbooks.json ├── spells_effects_misc ├── classes │ ├── clerics.json │ ├── druids.json │ ├── warlocks.json │ └── wizards.json ├── cleric │ ├── cleric.json │ ├── life │ │ └── life_domain.json │ ├── light │ │ └── light_domain.json │ ├── twighlight │ │ └── twighight_domain.json │ └── war │ │ ├── animated weapons │ │ └── weapon_effect.json │ │ └── war_domain.json ├── druid │ └── druid_spells.json ├── effects_misc.json ├── items │ ├── item_effects.json │ ├── potion_effects.json │ ├── regen_effects.json │ ├── sigil_effects.json │ └── summoning_effects.json ├── mage │ ├── mage_spells.json │ └── spell effects │ │ ├── elemental_effect.json │ │ └── raise_dead.json ├── spells_misc.json └── warlock │ ├── eldritch │ ├── components.json │ ├── cult_spells.json │ ├── curses │ │ └── curses.json │ └── eldritch commune │ │ ├── commune_effects.json │ │ └── commune_items.json │ ├── fiend │ ├── fiend_spells.json │ └── summon_demons │ │ └── spawn_effects.json │ ├── hexbound │ └── hexbound_spells.json │ └── warlock_cantrips.json ├── starts, scenarios, and professions ├── scenario and races.json └── start locations.json ├── traps.json └── vehicles.json /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /0_terrain_furniture/construction groups.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "construction_group", 4 | "id": "seal_barrel", 5 | "name": "Seals a barrel." 6 | }, 7 | { 8 | "type": "construction_group", 9 | "id": "open_barrel", 10 | "name": "Opens a barrel." 11 | }, 12 | { 13 | "type": "construction_group", 14 | "id": "construct_barrel", 15 | "name": "Build a barrel." 16 | }, 17 | { 18 | "type": "construction_group", 19 | "id": "construct_chest", 20 | "name": "Build a chest." 21 | }, 22 | { 23 | "type": "construction_group", 24 | "id": "unlock_chest", 25 | "name": "Unlocks your chest." 26 | }, 27 | { 28 | "type": "construction_group", 29 | "id": "lock_chest", 30 | "name": "Locks your chest." 31 | }, 32 | { 33 | "type": "construction_group", 34 | "id": "hang_lantern", 35 | "name": "Hang a lantern." 36 | }, 37 | { 38 | "type": "construction_group", 39 | "id": "light_lantern", 40 | "name": "Relight a lantern." 41 | }, 42 | { 43 | "type": "construction_group", 44 | "id": "unlight_lantern", 45 | "name": "Blow out a lantern." 46 | }, 47 | { 48 | "type": "construction_group", 49 | "id": "construct_infusion_table", 50 | "name": "Build an infusion table." 51 | } 52 | ] -------------------------------------------------------------------------------- /0_terrain_furniture/terrain_trees.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "terrain", 4 | "id": "t_redcap_mushroom", 5 | "name": "redcap mushroom", 6 | "description": "A gargantuan mushroom, with a broad red cap on it. Like others of its kind, it can't stand sunlight. The stalk is extremely hard, like that of a tree.", 7 | "symbol": "7", 8 | "color": "red", 9 | "move_cost": 0, 10 | "coverage": 80, 11 | "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], 12 | "bash": { "str_min": 80, "str_max": 180, "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt" } 13 | }, 14 | { 15 | "type": "terrain", 16 | "id": "t_aqua_mushroom", 17 | "name": "aqua mushroom", 18 | "description": "A gargantuan mushroom, with a broad brown cap on it. Like others of its kind, it can't stand sunlight. The stalk is extremely hard, like that of a tree. You can see a system of roots branching off into the water.", 19 | "symbol": "7", 20 | "color": "yellow", 21 | "move_cost": 0, 22 | "coverage": 80, 23 | "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], 24 | "bash": { "str_min": 80, "str_max": 180, "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt" } 25 | } 26 | ] -------------------------------------------------------------------------------- /0_terrain_furniture/terrains/terrains.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "terrain", 4 | "id": "t_magical_min_water_dp", 5 | "looks_like": "t_water_dp", 6 | "name": "Magical mineral water", 7 | "description": "A glittering, dazzling shiny crystal clear bubbly body of water water enriched with minerals...you've heard lots of legends of it's magical properties", 8 | "symbol": "~", 9 | "color": "light_blue", 10 | "move_cost": 11, 11 | "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "FISHABLE", "DEEP_WATER" ], 12 | "examine_action": "water_source" 13 | }, 14 | { 15 | "type": "terrain", 16 | "id": "t_magical_torch", 17 | "looks_like": "torch_lit", 18 | "name": "Magical elongated torch", 19 | "description": "A torch burning some sort of magical ever-lasting fire of unknown origin, looking at it soothes you", 20 | "symbol": ".", 21 | "color": "yellow", 22 | "move_cost": 2, 23 | "roof": "t_flat_roof", 24 | "light_emitted": 150, 25 | "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD", "MINEABLE", "MOUNTABLE", "PLACE_ITEM" ], 26 | "bash": { 27 | "sound": "SMASH!", 28 | "ter_set": "t_null", 29 | "str_min": 50, 30 | "str_max": 400, 31 | "str_min_supported": 100, 32 | "items": [ { "item": "splinter", "count": [ 2, 3 ] }, { "item": "stick", "count": [ 1, 2 ] } ] 33 | } 34 | } 35 | 36 | ] 37 | -------------------------------------------------------------------------------- /0_terrain_furniture/transformations.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "ter_furn_transform", 4 | "id": "unlock", 5 | "terrain": [ 6 | { 7 | "result": "t_door_o", 8 | "valid_terrain": [ "t_door_locked", "t_door_locked_interior", "t_door_locked_alarm" ], 9 | "message": "The door opens forcefully!" 10 | }, 11 | { 12 | "result": "t_door_o_peep", 13 | "valid_terrain": [ "t_door_locked_peep" ], 14 | "message": "The door opens forcefully!" 15 | }, 16 | { 17 | "result": "t_door_metal_o", 18 | "valid_terrain": [ "t_door_metal_locked", "t_door_metal_pickable", "t_door_bar_locked" ], 19 | "message": "The door opens forcefully!" 20 | }, 21 | { 22 | "result": "f_chest_o", 23 | "valid_terrain": [ "f_chest_c" ], 24 | "message": "The chest opens forcefully!" 25 | }, 26 | { 27 | "result": "f_barrel_o", 28 | "valid_terrain": [ "f_barrel_c" ], 29 | "message": "The barrel opens forcefully!" 30 | } 31 | ] 32 | } 33 | ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fantasy 2 | 3 | A collaboration between a small group of CDDA modders, Fantasy (name still being worked on), will be just what it sounds like, a fantasy world undergoing some decidedly rough times with lots of monsters rising up and making trouble. Adventures, quests, dungeons, you name it, it'll be in there. 4 | -------------------------------------------------------------------------------- /blacklists/portal_storm_effect_on_condition.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "effect_on_condition", 4 | "id": "EOC_PORTAL_STORM_WARN_OR_CAUSE_RECURRING", 5 | "recurrence": [ "10 days", "11 days" ], 6 | "global": true, 7 | "effect": [ ] 8 | } 9 | ] -------------------------------------------------------------------------------- /blacklists/recipe_conversion.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] -------------------------------------------------------------------------------- /blacklists/skill blacklist.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "skill", 4 | "id": "computer", 5 | "name": { "str": "mathematics" }, 6 | "description": "Your knowledge of mathematics and it's principles. This has a variety of applications, esspecially in the sciences and engineering.", 7 | "display_category": "display_interaction" 8 | } 9 | ] -------------------------------------------------------------------------------- /blacklists/special_migration.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "MONSTER_WHITELIST", 4 | "mode": "EXCLUSIVE", 5 | "categories": [ "WILDLIFE", "MONSTERS" ] 6 | }, 7 | { 8 | "type": "EXTERNAL_OPTION", 9 | "name": "DISABLE_ROBOT_RESPONSE", 10 | "stype": "bool", 11 | "value": true 12 | }, 13 | { 14 | "type": "region_overlay", 15 | "regions": [ "all" ], 16 | "forest_trail_settings": { "trailheads": { "trailhead_basic": 1 } }, 17 | "overmap_feature_flag_settings": { 18 | "clear_blacklist": false, 19 | "blacklist": [ ], 20 | "clear_whitelist": false, 21 | "whitelist": [ "FANTASY" ] 22 | } 23 | } 24 | ] -------------------------------------------------------------------------------- /blacklists/vehicle_blacklist.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "vehicle_spawn", 4 | "id": "default_city", 5 | "spawn_types": [ ] 6 | }, 7 | { 8 | "type": "vehicle_spawn", 9 | "id": "default_country", 10 | "spawn_types": [ ] 11 | }, 12 | { 13 | "type": "vehicle_spawn", 14 | "id": "default_bridge", 15 | "spawn_types": [ ] 16 | }, 17 | { 18 | "type": "vehicle_spawn", 19 | "id": "default_highway", 20 | "spawn_types": [ ] 21 | } 22 | ] -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with apprentice/blacksmith apprentice npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with apprentice/blacksmith master npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with apprentice/blacksmith shop2.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with family/blacksmith npc husband.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with family/blacksmith npc kid.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with family/blacksmith npc's wife.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/blacksmiths/blacksmith with family/blacksmith shop3.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] 4 | -------------------------------------------------------------------------------- /city stuff/market/city_market.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "city_market", 5 | "type": "mapgen", 6 | "weight": 100, 7 | "object": { 8 | "fill_ter": "t_dirt", 9 | "rows": [ 10 | "........................", 11 | "........................", 12 | "........................", 13 | "........................", 14 | "........................", 15 | "........................", 16 | "........................", 17 | "........................", 18 | "........................", 19 | "........................", 20 | "........................", 21 | "........................", 22 | "........................", 23 | "........................", 24 | "........................", 25 | "........................", 26 | "........................", 27 | "........................", 28 | "........................", 29 | "........................", 30 | "........................", 31 | "........................", 32 | "........................", 33 | "........................" 34 | ], 35 | "palettes": [ "city_building_palette" ], 36 | "place_nested": [ 37 | { "chunks": [ "market_nested" ], "x": 0, "y": 0 }, 38 | { "chunks": [ "market_nested" ], "x": 9, "y": 0 }, 39 | { "chunks": [ "market_nested" ], "x": 18, "y": 0 }, 40 | { "chunks": [ "market_nested" ], "x": 0, "y": 9 }, 41 | { "chunks": [ "market_nested" ], "x": 9, "y": 9 }, 42 | { "chunks": [ "market_nested" ], "x": 18, "y": 9 }, 43 | { "chunks": [ "market_nested" ], "x": 0, "y": 18 }, 44 | { "chunks": [ "market_nested" ], "x": 9, "y": 18 }, 45 | { "chunks": [ "market_nested" ], "x": 18, "y": 18 } 46 | ] 47 | } 48 | } 49 | ] -------------------------------------------------------------------------------- /city stuff/roads/roads.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "straight_dirt_city_road", 5 | "type": "mapgen", 6 | "weight": 100, 7 | "object": { 8 | "fill_ter": "t_dirt", 9 | "rows": [ 10 | ",,, ,,,", 11 | ",,,, ,,,,", 12 | ",,,, ,,,,", 13 | ",,,, ,,,,", 14 | ",,,, ,,,,", 15 | ",,,, ,,,,", 16 | ",,,, ,,,,", 17 | ",,,, ,,,,", 18 | ",,,, ,,,,", 19 | ",,,, ,,,,", 20 | ",,,, ,,,,", 21 | ",,,, ,,,,", 22 | ",,,, ,,,,", 23 | ",,,, ,,,,", 24 | ",,,, ,,,,", 25 | ",,,, ,,,,", 26 | ",,,, ,,,,", 27 | ",,,, ,,,,", 28 | ",,,, ,,,,", 29 | ",,,, ,,,,", 30 | ",,,, ,,,,", 31 | ",,,, ,,,,", 32 | ",,,, ,,,,", 33 | ",,, ,,," 34 | ], 35 | "palettes": [ "city_building_palette" ], 36 | "terrain": { 37 | ",": "t_rock_floor_no_roof" 38 | } 39 | } 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /city stuff/walls/walls.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "solid_wall", 5 | "type": "mapgen", 6 | "weight": 100, 7 | "object": { 8 | "fill_ter": "t_dirt", 9 | "rows": [ 10 | "ssssssssssssssssssssssss", 11 | "ssssssssssssssssssssssss", 12 | "ssssssssssssssssssssssss", 13 | "ssssssssssssssssssssssss", 14 | "ssssssssssssssssssssssss", 15 | "ssssssssssssssssssssssss", 16 | "ssssssssssssssssssssssss", 17 | "ssssssssssssssssssssssss", 18 | "ssssssssssssssssssssssss", 19 | "ssssssssssssssssssssssss", 20 | "ssssssssssssssssssssssss", 21 | "ssssssssssssssssssssssss", 22 | "ssssssssssssssssssssssss", 23 | "ssssssssssssssssssssssss", 24 | "ssssssssssssssssssssssss", 25 | "ssssssssssssssssssssssss", 26 | "ssssssssssssssssssssssss", 27 | "ssssssssssssssssssssssss", 28 | "ssssssssssssssssssssssss", 29 | "ssssssssssssssssssssssss", 30 | "ssssssssssssssssssssssss", 31 | "ssssssssssssssssssssssss", 32 | "ssssssssssssssssssssssss", 33 | "ssssssssssssssssssssssss" 34 | ], 35 | "palettes": [ "city_building_palette" ] 36 | } 37 | }, 38 | { 39 | "method": "json", 40 | "om_terrain": "gatehouse_city_wall", 41 | "type": "mapgen", 42 | "weight": 100, 43 | "object": { 44 | "fill_ter": "t_dirt", 45 | "rows": [ 46 | ",,, ,,,", 47 | "srrrrrrrrrrrrrrrrrrrrrrs", 48 | "ssrrrrrrrrrrsrrrrrrrrrss", 49 | "srrrrrrrrrrsssrrrrrrrrrs", 50 | "srrrrrrrrrrrsrrrrrrrrrrs", 51 | "srrrrrrrrrrrsrrrrrrrrrrs", 52 | "srrrrrrrrrrrrrrrrrrrrrrs", 53 | "srrrrrrrrrrrrrrrrrrrrrrs", 54 | "srrrrrrrrrrrrrrrrrrrrrrs", 55 | "srrrrrrrrrrrrrrrrrrrrrrs", 56 | "srrrrrrrrrrrrrrrrrrrrrrs", 57 | "srrrrrrrrrrrrrrrrrrrrrrs", 58 | "srrrrrrrrrrrrrrrrrrrrrrs", 59 | "srrrrrrrrrrrrrrrrrrrrrrs", 60 | "srrrrrrrrrrrrrrrrrrrrrrs", 61 | "srrrrrrrrrrrrrrrrrrrrrrs", 62 | "srrrrrrrrrrrrrrrrrrrrrrs", 63 | "srrrrrrrrrrrrrrrrrrrrrrs", 64 | "srrrrrrrrrrrrrrrrrrrrrrs", 65 | "srrrrrrrrrrrrrrrrrrrrrrs", 66 | "srrrrrrrrrrrrrrrrrrrrrrs", 67 | "ssrrrrrrrrrrrrrrrrrrrrss", 68 | "srrrrrrrrrrrrrrrrrrrrrrs", 69 | ",,, ,,," 70 | ], 71 | "palettes": [ "city_building_palette" ] 72 | } 73 | } 74 | ] 75 | -------------------------------------------------------------------------------- /emit.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "emit_lantern_smash", 4 | "type": "emit", 5 | "field": "fd_fire", 6 | "intensity": 1, 7 | "qty": 9 8 | }, 9 | { 10 | "id": "emit_brazier_heat", 11 | "type": "emit", 12 | "field": "fd_hot_air1", 13 | "intensity": 1, 14 | "qty": 9 15 | }, 16 | { 17 | "id": "emit_flaming_sphere", 18 | "type": "emit", 19 | "field": "fd_fire", 20 | "//": "Makes the surrounding area extremely, uncomfortably hot.", 21 | "intensity": 1, 22 | "qty": 1 23 | } 24 | ] -------------------------------------------------------------------------------- /fields.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "fd_clairvoyace_gas", 4 | "type": "field_type", 5 | "intensity_levels": [ { "name": "clairvoyance", "sym": "@", "dangerous": false } ], 6 | "decay_amount_factor": 5, 7 | "gas_absorption_factor": 12, 8 | "dirty_transparency_cache": true, 9 | "outdoor_age_speedup": "0 turns", 10 | "priority": 8, 11 | "half_life": "1 seconds", 12 | "phase": "plasma", 13 | "display_field": false 14 | } 15 | ] -------------------------------------------------------------------------------- /item groups/books.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "item_group", 4 | "id": "alchemy_books", 5 | "subtype": "distribution", 6 | "items": [ 7 | [ "novice_potion", 20 ], 8 | [ "al_reference", 35 ] 9 | ] 10 | }, 11 | { 12 | "type": "item_group", 13 | "id": "infusion_books", 14 | "subtype": "distribution", 15 | "items": [ 16 | [ "infusion_basic", 70 ], 17 | [ "infusion_mid", 50 ], 18 | [ "infusion_adv", 30 ], 19 | [ "infusion_fire", 70 ], 20 | [ "infusion_fire_mid", 50 ], 21 | [ "infusion_fire_adv", 30 ], 22 | [ "infusion_ice", 70 ], 23 | [ "infusion_ice_mid", 50 ], 24 | [ "infusion_ice_adv", 30 ], 25 | [ "infusion_electric", 70 ], 26 | [ "infusion_electric_mid", 50 ], 27 | [ "infusion_electric_adv", 30 ], 28 | [ "totem_book", 50 ], 29 | [ "basic_tatoo", 20 ], 30 | [ "book_of_golems", 2 ] 31 | ] 32 | }, 33 | { 34 | "type": "item_group", 35 | "id": "divine_books", 36 | "subtype": "distribution", 37 | "items": [ 38 | { "item": "gods_and_godesses", "prob": 25 }, 39 | { "item": "divinity_general", "prob": 15 }, 40 | { "item": "divinity_light", "prob": 15 }, 41 | { "item": "divinity_war", "prob": 15 }, 42 | { "item": "divinity_life", "prob": 15 }, 43 | { "item": "divinity_twilight", "prob": 15 }, 44 | { "item": "divine_weapon", "prob": 20 }, 45 | { "item": "divine_weapon_mid", "prob": 15 }, 46 | { "item": "divine_weapon_adv", "prob": 10 } 47 | ] 48 | }, 49 | { 50 | "type": "item_group", 51 | "id": "manuals", 52 | "subtype": "distribution", 53 | "entries": [ 54 | { "group": "alchemy_books", "prob": 6 }, 55 | { "group": "infusion_books", "prob": 2 }, 56 | { "group": "divine_books", "prob": 3 }, 57 | { "item": "forging_book_mtc", "prob": 15 } 58 | ] 59 | } 60 | ] 61 | -------------------------------------------------------------------------------- /item groups/flora harvest.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "fire_flower_harv", 4 | "type": "harvest", 5 | "entries": [ { "drop": "fire_flower", "base_num": [ 2, 5 ] } ] 6 | }, 7 | { 8 | "id": "ash_vine_harv", 9 | "type": "harvest", 10 | "entries": [ { "drop": "ash_vine", "base_num": [ 2, 5 ] } ] 11 | }, 12 | { 13 | "id": "crystal_berry_purple_harv", 14 | "type": "harvest", 15 | "entries": [ { "drop": "crystal_berry_purple", "base_num": [ 5, 12 ] } ] 16 | }, 17 | { 18 | "id": "crystal_berry_red_harv", 19 | "type": "harvest", 20 | "entries": [ { "drop": "crystal_berry_red", "base_num": [ 5, 12 ] } ] 21 | } 22 | ] -------------------------------------------------------------------------------- /items/1-rune_eff.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "effect_type", 4 | "id": "eff_mtc_rune_feeble", 5 | "name": [ "Enfeebled" ], 6 | "rating": "bad", 7 | "max_duration": 10, 8 | "int_add_val": 1, 9 | "max_intensity": 5, 10 | "show_in_info": true, 11 | "base_mods": { "str_mod": [ -1 ], "bash_mod": [ -2 ], "cut_mod": [ -2 ] }, 12 | "scaling_mods": { "str_mod": [ -1 ], "bash_mod": [ -2 ], "cut_mod": [ -2 ] } 13 | }, 14 | { 15 | "type": "effect_type", 16 | "id": "eff_mtc_rune_empower", 17 | "name": [ "Empowered" ], 18 | "rating": "good", 19 | "max_duration": 10, 20 | "int_add_val": 1, 21 | "max_intensity": 5, 22 | "show_in_info": true, 23 | "base_mods": { "str_mod": [ 1 ] }, 24 | "scaling_mods": { "str_mod": [ 1 ] } 25 | }, 26 | { 27 | "type": "effect_type", 28 | "id": "eff_mtc_rune_etherealphase_immune", 29 | "flags": [ 30 | "EFFECT_BASH_IMMUNE", 31 | "EFFECT_CUT_IMMUNE", 32 | "EFFECT_STAB_IMMUNE" 33 | ] 34 | } 35 | ] -------------------------------------------------------------------------------- /items/2-item_spells.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "flare_kickback", 4 | "type": "SPELL", 5 | "name": "fire kickback", 6 | "description": "retalitive effect for Flameshield.", 7 | "valid_targets": [ "hostile" ], 8 | "min_damage": 10, 9 | "max_damage": 10, 10 | "min_range": 1, 11 | "max_range": 1, 12 | "effect": "attack", 13 | "shape": "blast", 14 | "base_casting_time": 0, 15 | "base_energy_cost": 0, 16 | "damage_type": "heat", 17 | "energy_source": "MANA" 18 | } 19 | ] -------------------------------------------------------------------------------- /items/alchemy/otherworldly_potions.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "potion_eldritch_power", 4 | "name": { "str": "potion of eldritch power" }, 5 | "description": "A deep purple, almost black liquid. It gives off a strange odor, and you can see small particles of some forgein substance floating in it. It seems magical, though awful to drink.", 6 | "use_action": { "type": "cast_spell", "spell_id": "eldritch_effect_item", "no_fail": true, "level": 5 }, 7 | "type": "COMESTIBLE", 8 | "weight": "265 g", 9 | "quench": 10, 10 | "calories": 75, 11 | "volume": "250ml", 12 | "charges": 1, 13 | "fun": -10, 14 | "healthy": 1, 15 | "symbol": "~", 16 | "container": "bottle_glass", 17 | "color": "black", 18 | "comestible_type": "DRINK", 19 | "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE" ], 20 | "phase": "liquid", 21 | "price": 10000, 22 | "freezing_point": 40 23 | } 24 | ] -------------------------------------------------------------------------------- /items/ammo.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "AMMO", 4 | "id": "pebble_mana", 5 | "price": 100, 6 | "price_postapoc": 10, 7 | "name": { "str": "magic pebble" }, 8 | "symbol": "=", 9 | "color": "light_gray", 10 | "description": "A handful of pebbles, useful as ammunition for slingshots. These have been infused with magic.", 11 | "material": [ "stone" ], 12 | "volume": "250 ml", 13 | "weight": "5 g", 14 | "ammo_type": "pebble", 15 | "damage": { "damage_type": "pure", "amount": 4 }, 16 | "range": 10, 17 | "dispersion": 14, 18 | "loudness": 0, 19 | "count": 10, 20 | "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] 21 | }, 22 | { 23 | "id": "lamp_oil", 24 | "type": "AMMO", 25 | "name": { "str_sp": "lamp oil" }, 26 | "description": "A thin and clean-burning oil made for use in oil lamps.", 27 | "category": "fuel", 28 | "weight": "1 g", 29 | "volume": "200ml", 30 | "price": 20, 31 | "price_postapoc": 200, 32 | "count": 250, 33 | "stack_size": 200, 34 | "phase": "liquid", 35 | "container": "bottle_glass", 36 | "sealed": false, 37 | "symbol": "=", 38 | "color": "yellow", 39 | "material": [ "lamp_oil" ], 40 | "ammo_type": "lamp_oil", 41 | "range": 6, 42 | "damage": { "damage_type": "heat", "amount": 2, "armor_penetration": 2 }, 43 | "effects": [ "FLAME", "STREAM" ] 44 | }, 45 | { 46 | "type": "ammunition_type", 47 | "id": "crystallized_mana", 48 | "name": "crystallized mana", 49 | "default": "crystallized_mana" 50 | }, 51 | { 52 | "type": "AMMO", 53 | "id": "crystallized_mana", 54 | "category": "spare_parts", 55 | "price": 1000, 56 | "name": { "str_sp": "raw crystal magic" }, 57 | "symbol": "=", 58 | "color": "yellow", 59 | "description": "Some raw magic, crystalized into its current form. It has a variety of uses in arcane practice.", 60 | "flags": [ "TRADER_AVOID", "ZERO_WEIGHT" ], 61 | "volume": "100 ml", 62 | "ammo_type": "crystallized_mana", 63 | "material": [ "crystallized_mana" ], 64 | "count": 100, 65 | "looks_like": "battery" 66 | }, 67 | { 68 | "type": "material", 69 | "id": "crystallized_mana", 70 | "name": "Crystallized mana", 71 | "copy-from": "stone", 72 | "fuel_data": { "energy": "1000 kJ" } 73 | }, 74 | { 75 | "type": "material", 76 | "id": "mana", 77 | "name": "Mana", 78 | "copy-from": "pseudo_fuel", 79 | "fuel_data": { "energy": "500000 kJ", "perpetual": true } 80 | } 81 | ] -------------------------------------------------------------------------------- /items/corpses.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "GENERIC", 4 | "id": "broken_clay_golem", 5 | "symbol": "g", 6 | "color": "brown", 7 | "name": "broken clay golem", 8 | "category": "other", 9 | "description": "A broken clay golem, now lying lifeless upon the ground. Could be smashed for clay.", 10 | "price": 10000, 11 | "material": [ "clay" ], 12 | "weight": "122 kg", 13 | "volume": "120 L", 14 | "bashing": 4, 15 | "cutting": 4, 16 | "to_hit": -3, 17 | "flags": [ "TRADER_AVOID", "NO_REPAIR" ] 18 | }, 19 | { 20 | "type": "GENERIC", 21 | "id": "broken_stone_golem", 22 | "symbol": "g", 23 | "color": "light_gray", 24 | "name": "broken stone golem", 25 | "category": "other", 26 | "description": "A broken stone golem, now lying lifeless upon the ground. Could be smashed for rocks.", 27 | "price": 10000, 28 | "material": [ "stone" ], 29 | "weight": "162 kg", 30 | "volume": "120 L", 31 | "bashing": 6, 32 | "cutting": 6, 33 | "to_hit": -3, 34 | "flags": [ "TRADER_AVOID", "NO_REPAIR" ] 35 | }, 36 | { 37 | "type": "GENERIC", 38 | "id": "broken_iron_golem", 39 | "symbol": "g", 40 | "color": "light_gray", 41 | "name": "broken iron golem", 42 | "category": "other", 43 | "description": "A broken iron golem, now lying lifeless upon the ground. Could be smashed for metal.", 44 | "price": 10000, 45 | "material": [ "steel" ], 46 | "weight": "200 kg", 47 | "volume": "120 L", 48 | "bashing": 8, 49 | "cutting": 8, 50 | "to_hit": -3, 51 | "flags": [ "TRADER_AVOID", "NO_REPAIR" ] 52 | } 53 | ] -------------------------------------------------------------------------------- /items/enchanted/divine/divine_wands.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "TOOL", 4 | "id": "cleric_focus_staff", 5 | "copy-from": "q_staff", 6 | "looks_like": "q_staff", 7 | "name": "divine staff", 8 | "description": "A quarterstaff engraved with religious symbology, marketed towards clerics for their spellcasting. In a pinch, it makes a good melee weapon. It also boasts a slight increase in eyesight to its wielder.", 9 | "extend": { "flags": [ "MAGIC_FOCUS", "NO_UNLOAD" ] }, 10 | "charges_per_use": 1, 11 | "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "crystallized_mana": 10 }, "rigid": true } ], 12 | "use_action": { "type": "cast_spell", "spell_id": "healing", "no_fail": false, "level": 1, "need_wielding": true } 13 | } 14 | ] -------------------------------------------------------------------------------- /items/enchanted/enchanted armor/badges.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "TOOL_ARMOR", 4 | "id": "silver_ivy_gradlocket", 5 | "name": { "str": "locket of the Silver Ivy", "str_pl": "lockets of the Silver Ivy" }, 6 | "description": "A circular, silver locket, awarded to mages of the Silver Ivy upon graduation. It has an emblem of the school engraved upon the cover, with the phrase *Mens Est Omnibus* in the center.", 7 | "copy-from": "silver_necklace", 8 | "charges_per_use": 1, 9 | "flags": [ "TRADER_AVOID", "ONLY_ONE", "NO_UNLOAD", "NO_RELOAD" ], 10 | "use_action": { "type": "cast_spell", "spell_id": "silver_ivy_locket_effect", "no_fail": true, "level": 1, "need_worn": true }, 11 | "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "24 h", "regenerate_ammo": true } }, 12 | "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "crystallized_mana": 5 } } ] 13 | } 14 | ] -------------------------------------------------------------------------------- /items/enchanted/enchanted weapons/wands/druid.json: -------------------------------------------------------------------------------- 1 | [ ] -------------------------------------------------------------------------------- /items/enchanted/enchanted weapons/wands/staves.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "GENERIC", 4 | "id": "magic_focus_staff", 5 | "copy-from": "q_staff", 6 | "looks_like": "q_staff", 7 | "name": "staff of magical concentration", 8 | "description": "A quarterstaff engraved with magical runes, designed to enhance the focus of spellcasters by channeling their magic through it. In a pinch, it makes a good melee weapon. It also boasts a slight increase in mana reserves to its wielder.", 9 | "extend": { "flags": [ "MAGIC_FOCUS" ] }, 10 | "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 200 } ] } ] } 11 | }, 12 | { 13 | "type": "GENERIC", 14 | "id": "magic_focus_staff+2", 15 | "copy-from": "q_staff", 16 | "looks_like": "q_staff", 17 | "name": "staff of magical connection", 18 | "description": "A quarterstaff engraved with magical runes, designed to enhance the focus of spellcasters by channeling their magic through it. In a pinch, it makes a good melee weapon. It also boasts an increase in mana reserves to its wielder.", 19 | "extend": { "flags": [ "MAGIC_FOCUS" ] }, 20 | "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 400 } ] } ] } 21 | }, 22 | { 23 | "type": "GENERIC", 24 | "id": "magic_focus_staff+3", 25 | "copy-from": "q_staff", 26 | "looks_like": "q_staff", 27 | "name": "arcane puddle staff", 28 | "description": "A quarterstaff engraved with magical runes, designed to enhance the focus of spellcasters by channeling their magic through it. In a pinch, it makes a good melee weapon. It also boasts a great increase in mana reserves to its wielder.", 29 | "extend": { "flags": [ "MAGIC_FOCUS" ] }, 30 | "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 600 } ] } ] } 31 | } 32 | ] -------------------------------------------------------------------------------- /items/enchanted/enchanted weapons/wands/wands.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "TOOL", 4 | "id": "wand_fire", 5 | "copy-from": "wand_template", 6 | "looks_like": "wand_template", 7 | "name": "wand of fire", 8 | "description": "This is a short wand, engraved with various red runes. It is capable of sending forth a blast of fire.", 9 | "use_action": { "type": "cast_spell", "spell_id": "firebolt", "no_fail": true, "level": 2, "need_wielding": true } 10 | }, 11 | { 12 | "type": "TOOL", 13 | "id": "wand_ice", 14 | "copy-from": "wand_template", 15 | "looks_like": "wand_template", 16 | "name": "wand of ice", 17 | "description": "This is a short wand, engraved with various blue runes. It is capable of sending forth a whirlwind of frost.", 18 | "use_action": { "type": "cast_spell", "spell_id": "cone_of_cold", "no_fail": true, "level": 2, "need_wielding": true } 19 | }, 20 | { 21 | "type": "TOOL", 22 | "id": "wand_electric", 23 | "copy-from": "wand_template", 24 | "looks_like": "wand_template", 25 | "name": "wand of thunder", 26 | "description": "This is a short wand, engraved with various light blue runes. It is capable of sending forth a bolt of lightning.", 27 | "use_action": { "type": "cast_spell", "spell_id": "lightning_bolt", "no_fail": true, "level": 2, "need_wielding": true } 28 | }, 29 | { 30 | "type": "TOOL", 31 | "id": "wand_necromancy", 32 | "copy-from": "wand_template", 33 | "looks_like": "wand_template", 34 | "name": "wand of necromancy", 35 | "description": "The skull of a small animal has been placed upon the tip of this wand, and is engraved with errie sigils. Using it can raise the dead, but be careful with it.", 36 | "use_action": { "type": "cast_spell", "spell_id": "raise_dead", "no_fail": true, "level": 1, "need_wielding": true } 37 | }, 38 | { 39 | "type": "TOOL", 40 | "id": "wand_charm", 41 | "copy-from": "wand_template", 42 | "looks_like": "wand_template", 43 | "name": "wand of charm", 44 | "description": "This wand has been carefully decorated with several feather and shiny objects. Using it can charm monsters and beasts alike.", 45 | "use_action": { "type": "cast_spell", "spell_id": "mage_charm_beast", "no_fail": true, "level": 1, "need_wielding": true } 46 | } 47 | ] -------------------------------------------------------------------------------- /items/enchanted/occult/misc_magic_items.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "initiation_potion", 4 | "type": "COMESTIBLE", 5 | "comestible_type": "DRINK", 6 | "name": "wierd potion", 7 | "description": "A light red liquid seemingly containing blood. It has a horrible smell, and doesn't look safe to drink.", 8 | "quench": 33, 9 | "healthy": 1, 10 | "calories": 0, 11 | "weight": "245 g", 12 | "volume": "275 ml", 13 | "price": 500, 14 | "symbol": "~", 15 | "color": "light_red", 16 | "phase": "liquid", 17 | "container": "bottle_glass", 18 | "use_action": { "type": "cast_spell", "spell_id": "initiation_effect_item", "no_fail": true, "level": 0 } 19 | } 20 | ] -------------------------------------------------------------------------------- /items/enchanted/occult/wands.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "TOOL", 4 | "id": "warlock_focus_staff", 5 | "copy-from": "q_staff", 6 | "looks_like": "q_staff", 7 | "name": "dark focusing staff", 8 | "description": "A quarterstaff engraved with otherworldly symbology. In a pinch, it makes a good melee weapon. It is capable of minor spellcasting, though reliant on the skill of its wielder.", 9 | "extend": { "flags": [ "MAGIC_FOCUS", "NO_UNLOAD" ] }, 10 | "charges_per_use": 1, 11 | "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "crystallized_mana": 10 }, "rigid": true } ], 12 | "use_action": { "type": "cast_spell", "spell_id": "bloodshot", "no_fail": false, "level": 1, "need_wielding": true } 13 | } 14 | ] -------------------------------------------------------------------------------- /items/enchanted/templates.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "wand_template", 4 | "type": "TOOL", 5 | "name": { "str": "wand template", "str_pl": "wand template" }, 6 | "description": "A generic magic wand.", 7 | "weight": "250 g", 8 | "volume": "500 ml", 9 | "price": 10000, 10 | "to_hit": 1, 11 | "bashing": 8, 12 | "material": [ "wood" ], 13 | "symbol": "/", 14 | "color": "brown", 15 | "techniques": [ "WBLOCK_1" ], 16 | "charges_per_use": 1, 17 | "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "crystallized_mana": 5 }, "rigid": true } ], 18 | "flags": [ "MAGIC_FOCUS", "NO_UNLOAD" ] 19 | } 20 | ] -------------------------------------------------------------------------------- /items/fake.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "t_infusion", 4 | "type": "TOOL", 5 | "name": { "str": "infusion bench" }, 6 | "description": "A fake item for the infusion table. It's a bug if you have it.", 7 | "weight": "5400 g", 8 | "volume": "4 L", 9 | "price": 10000, 10 | "price_postapoc": 200, 11 | "to_hit": -5, 12 | "bashing": 10, 13 | "material": "iron", 14 | "symbol": ";", 15 | "color": "dark_gray", 16 | "qualities": [ [ "INFUSION", 1 ] ], 17 | "flags": [ "DURABLE_MELEE" ] 18 | }, 19 | { 20 | "id": "t_infusion2", 21 | "type": "TOOL", 22 | "name": { "str": "infusion bench" }, 23 | "description": "A fake item for the infusion table. It's a bug if you have it.", 24 | "weight": "5400 g", 25 | "volume": "4 L", 26 | "price": 10000, 27 | "price_postapoc": 200, 28 | "to_hit": -5, 29 | "bashing": 10, 30 | "material": "iron", 31 | "symbol": ";", 32 | "color": "dark_gray", 33 | "qualities": [ [ "INFUSION", 2 ] ], 34 | "flags": [ "DURABLE_MELEE" ] 35 | }, 36 | { 37 | "id": "t_daltar", 38 | "type": "TOOL", 39 | "name": { "str": "divine altar" }, 40 | "description": "A fake item for the divine altar. It's a bug if you have it.", 41 | "weight": "5400 g", 42 | "volume": "4 L", 43 | "price": 10000, 44 | "price_postapoc": 200, 45 | "to_hit": -5, 46 | "bashing": 10, 47 | "material": "iron", 48 | "symbol": ";", 49 | "color": "dark_gray", 50 | "flags": [ "DURABLE_MELEE" ] 51 | } 52 | ] -------------------------------------------------------------------------------- /items/item_cat.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "mtc_rune", 3 | "type": "ITEM_CATEGORY", 4 | "name": "RUNES", 5 | "sort_rank": 199 6 | } -------------------------------------------------------------------------------- /items/maps.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "dungeon_map", 4 | "type": "GENERIC", 5 | "category": "maps", 6 | "name": { "str": "dungeon map" }, 7 | "description": "This is a hand-drawn map of the local area, detailing the locations of encampments, catacombs, and other such places. Using it will add these locations to your map.", 8 | "weight": "30 g", 9 | "volume": "250 ml", 10 | "price": 500, 11 | "to_hit": -1, 12 | "material": [ "paper" ], 13 | "symbol": ";", 14 | "looks_like": "survivormap", 15 | "color": "white", 16 | "use_action": { 17 | "type": "reveal_map", 18 | "radius": 100, 19 | "terrain": [ 20 | "goblin_camp_gate", 21 | "hobgoblin_camp_gate", 22 | "bandit_camp_important", 23 | "old_catacomb_enter" 24 | ], 25 | "message": "You add catacombs and hostile fortifications to your map." 26 | } 27 | } 28 | ] -------------------------------------------------------------------------------- /items/materials/incense.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "incense", 4 | "type": "TOOL", 5 | "name": { "str": "incense", "str_pl": "incense" }, 6 | "description": "This is a small candle, with a pleasent aroma to it. When lit, it emits a thin trail of smoke.", 7 | "weight": "125 g", 8 | "volume": "150 ml", 9 | "price": 500, 10 | "to_hit": -2, 11 | "material": [ "beeswax" ], 12 | "symbol": ",", 13 | "color": "white" 14 | } 15 | ] -------------------------------------------------------------------------------- /items/materials/ores.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "GENERIC", 4 | "id": "chunk_iron_ore", 5 | "category": "spare_parts", 6 | "price": 1000, 7 | "name": { "str": "chunk of iron ore", "str_pl": "chunks of iron ore" }, 8 | "symbol": "*", 9 | "color": "black", 10 | "description": "A chunk of raw iron ore. This is usually melted down for its precious metal, but could be used for other things.", 11 | "material": "stone", 12 | "volume": "1 L", 13 | "weight": "5040 g", 14 | "bashing": 2 15 | }, 16 | { 17 | "type": "GENERIC", 18 | "id": "chunk_copper_ore", 19 | "category": "spare_parts", 20 | "price": 1000, 21 | "name": { "str": "chunk of copper ore", "str_pl": "chunks of copper ore" }, 22 | "symbol": "*", 23 | "color": "light_red", 24 | "description": "A chunk of raw copper ore. This is usually melted down for its precious metal, though could be used for other things.", 25 | "material": "copper", 26 | "volume": "1 L", 27 | "weight": "8960 g", 28 | "bashing": 2 29 | }, 30 | { 31 | "type": "GENERIC", 32 | "id": "chunk_silver_ore", 33 | "category": "spare_parts", 34 | "price": 5000, 35 | "name": { "str": "chunk of silver ore", "str_pl": "chunks of silver ore" }, 36 | "symbol": "*", 37 | "color": "light_gray", 38 | "description": "A chunk of raw silver ore. This is usually melted down for its precious metal, though could be used for other things.", 39 | "material": "silver", 40 | "volume": "1 L", 41 | "weight": "10490 g", 42 | "bashing": 3 43 | } 44 | ] -------------------------------------------------------------------------------- /items/materials/wood.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "GENERIC", 4 | "id": "log", 5 | "symbol": "/", 6 | "color": "brown", 7 | "name": { "str": "log" }, 8 | "description": "A large chunk of log, cut from a tree. (a)ctivate a wood axe or wood saw to cut it into planks.", 9 | "category": "other", 10 | "price": 2500, 11 | "material": [ "wood" ], 12 | "weight": "30 kg", 13 | "volume": "50 L", 14 | "longest_side": "140 cm", 15 | "bashing": 10, 16 | "to_hit": -10, 17 | "flags": [ "FIREWOOD" ] 18 | } 19 | ] -------------------------------------------------------------------------------- /items/plants/seed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "COMESTIBLE", 4 | "id": "seed_fire_flower", 5 | "copy-from": "seed", 6 | "name": { "str": "fire flower seed" }, 7 | "description": "The seeds of the fire flower. They are notorious for quick growth in comparison to other plants of their kind.", 8 | "seed_data": { "plant_name": "fire flower", "fruit": "fire_flower", "byproducts": [ "withered" ], "grow": "50 days" } 9 | }, 10 | { 11 | "type": "COMESTIBLE", 12 | "id": "seed_burn_pepper", 13 | "copy-from": "seed", 14 | "name": { "str": "red-hot seed" }, 15 | "description": "The seeds of the Westerchime red-hot.", 16 | "seed_data": { "plant_name": "Westerchime red-hot", "fruit": "burn_pepper", "byproducts": [ "withered" ], "grow": "65 days" } 17 | }, 18 | { 19 | "type": "COMESTIBLE", 20 | "id": "seed_ash_vine", 21 | "copy-from": "seed", 22 | "name": { "str": "ash creep seed" }, 23 | "description": "The seeds of the ash creep, notorious for quick growth.", 24 | "seed_data": { "plant_name": "ash creep", "fruit": "ash_vine", "byproducts": [ "withered" ], "grow": "15 days" } 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /items/qualities.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "recipe_category", 4 | "id": "CC_ARCANE", 5 | "recipe_subcategories": [ 6 | "CSC_ALL", 7 | "CSC_ARCANE_WEAPONRY", 8 | "CSC_ARCANE_TOOLS", 9 | "CSC_ARCANE_AMMUNITION", 10 | "CSC_ARCANE_CLOTHING", 11 | "CSC_ARCANE_SCROLLS", 12 | "CSC_ARCANE_ALCHEMY", 13 | "CSC_ARCANE_OTHER" 14 | ] 15 | }, 16 | { 17 | "type": "tool_quality", 18 | "id": "INFUSION", 19 | "name": "infusion" 20 | } 21 | ] -------------------------------------------------------------------------------- /items/tools/tools.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "lantern", 4 | "type": "TOOL", 5 | "name": { "str": "lantern", "str_pl": "lanterns" }, 6 | "description": "This is a small lantern, with a central wick saturated with oil. It can burn for quite some time, though is unlit at the moment.", 7 | "//": "Is smaller, gives off more light, and weighs less than an oil lamp, but has a lower fuel bank and is more expensive", 8 | "weight": "1000 g", 9 | "volume": "650 ml", 10 | "price": 3000, 11 | "to_hit": 2, 12 | "bashing": 1, 13 | "material": [ "glass", "iron" ], 14 | "symbol": ";", 15 | "color": "yellow", 16 | "ammo": [ "lamp_oil" ], 17 | "pocket_data": [ { "pocket_type": "MAGAZINE", "watertight": true, "ammo_restriction": { "lamp_oil": 500 } } ], 18 | "charges_per_use": 1, 19 | "use_action": { 20 | "target": "lantern_on", 21 | "msg": "You strike the wick.", 22 | "active": true, 23 | "need_fire": 1, 24 | "need_charges": 1, 25 | "need_charges_msg": "The lamp is empty.", 26 | "type": "transform" 27 | }, 28 | "flags": [ "ALLOWS_REMOTE_USE" ] 29 | }, 30 | { 31 | "id": "lantern_on", 32 | "copy-from": "lantern", 33 | "type": "TOOL", 34 | "name": { "str": "burning lantern", "str_pl": "burning lanterns" }, 35 | "description": "This is a small lantern, with a central wick saturated with oil. It can burn for quite some time, and the wick is lit.", 36 | "turns_per_charge": 60, 37 | "revert_to": "lantern", 38 | "use_action": { "target": "lantern", "msg": "The lantern is extinguished.", "menu_text": "Blow out", "type": "transform" }, 39 | "flags": [ "LIGHT_30", "TRADER_AVOID", "ALLOWS_REMOTE_USE" ] 40 | } 41 | ] -------------------------------------------------------------------------------- /items/torso_stroage.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "bigpack_mtc", 4 | "repairs_like": "bigback", 5 | "type": "ARMOR", 6 | "name": { "str": "huge satchel" }, 7 | "description": "A huge fabric backpack, made for the long-time wanderer or a alchemist with ingredients to haul. It can store a great deal of things.", 8 | "weight": "1200 g", 9 | "volume": "9186 ml", 10 | "price": 4500, 11 | "price_postapoc": 750, 12 | "material": [ "cotton" ], 13 | "symbol": "[", 14 | "looks_like": "backpack", 15 | "color": "green", 16 | "armor": [ { "encumbrance": [ 20, 60 ], "coverage": 75, "covers": [ "torso", "leg_l", "leg_r" ] } ], 17 | "pocket_data": [ 18 | { 19 | "pocket_type": "CONTAINER", 20 | "max_contains_volume": "80 L", 21 | "max_contains_weight": "40 kg", 22 | "max_item_length": "96 cm", 23 | "magazine_well": "8750 ml", 24 | "moves": 300 25 | } 26 | ], 27 | "warmth": 5, 28 | "material_thickness": 2, 29 | "flags": [ "BELTED" ] 30 | } 31 | ] -------------------------------------------------------------------------------- /items/weapon.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "SPELL", 4 | "id": "dmbb_sword_dragonslayer_dragonbane", 5 | "name": "Dragon Bane", 6 | "description": "Deals bonus cut damage to dragons.", 7 | "flags": [ "SILENT", "RANDOM_DAMAGE" ], 8 | "valid_targets": [ "hostile" ], 9 | "damage_type": "cut", 10 | "min_damage": 45, 11 | "max_damage": 60, 12 | "min_range": 1, 13 | "effect": "attack", 14 | "shape": "blast", 15 | "targeted_monster_ids": [ "mon_mtc_dragon_fire_adult", "mon_mtc_dragon_ice_adult", "mon_mtc_dragon_storm_adult", "mon_mtc_dragon_fire_young", "mon_mtc_dragon_ice_young", "mon_mtc_dragon_storm_young" ] 16 | }, 17 | { 18 | "id": "mtc_sword_dragonslayer", 19 | "type": "GENERIC", 20 | "category": "weapons", 21 | "name": { "str": "dragonslayer" }, 22 | "description": "A huge two-handed broadsword made of dragon scales. It may look dull, but its blade can easily pierce through dragons.\n\nRune Slot: empty\n\nAbilities:\nDragon's Bane:\nAttacking rolls a 1/3 chance. If successful, this weapon deals 45-60 cutting damage to dragon-type monsters.", 23 | "weight": "4625 g", 24 | "volume": "4995 ml", 25 | "longest_side": "200 cm", 26 | "price": 69000, 27 | "price_postapoc": 420, 28 | "to_hit": 2, 29 | "bashing": 16, 30 | "cutting": 36, 31 | "material": [ "bone" ], 32 | "symbol": "/", 33 | "color": "light_red", 34 | "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], 35 | "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -5 ] ], 36 | "relic_data": { 37 | "passive_effects": [ 38 | { 39 | "has": "WIELD", 40 | "condition": "ALWAYS", 41 | "hit_you_effect": [ 42 | { 43 | "id": "mtc_sword_dragonslayer_dragonbane", 44 | "hit_self": false, 45 | "once_in": 3, 46 | "message": "Your dragonslayer shimmers as it slashes %2$s!", 47 | "npc_message": "%1$s's dragonslayer shimmers as it slashes %2$s!" 48 | } 49 | ] 50 | } 51 | ] 52 | } 53 | } 54 | ] 55 | -------------------------------------------------------------------------------- /locations/caves/crystal caverns/crystal_cave_base.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "crystal_cave_blank", 5 | "//": "Blank pallette for crystal cave systems.", 6 | "type": "mapgen", 7 | "weight": 100, 8 | "object": { 9 | "fill_ter": "t_rock_floor", 10 | "rows": [ 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " ", 20 | " ", 21 | " ", 22 | " ", 23 | " ", 24 | " ", 25 | " ", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " " 35 | ], 36 | "palettes": [ "caves" ], 37 | "place_nested": [ 38 | { "chunks": [ "crystal_formation" ], "x": 0, "y": 0 }, 39 | { "chunks": [ "crystal_formation" ], "x": 8, "y": 0 }, 40 | { "chunks": [ "crystal_formation" ], "x": 16, "y": 0 }, 41 | { "chunks": [ "crystal_formation" ], "x": 0, "y": 7 }, 42 | { "chunks": [ "crystal_formation" ], "x": 8, "y": 7 }, 43 | { "chunks": [ "crystal_formation" ], "x": 16, "y": 7 }, 44 | { "chunks": [ "crystal_formation" ], "x": 0, "y": 15 }, 45 | { "chunks": [ "crystal_formation" ], "x": 8, "y": 15 }, 46 | { "chunks": [ "crystal_formation" ], "x": 16, "y": 15 } 47 | ] 48 | } 49 | } 50 | ] -------------------------------------------------------------------------------- /locations/caves/crystal caverns/crystal_cave_nested.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mapgen", 4 | "method": "json", 5 | "nested_mapgen_id": "crystal_formation", 6 | "object": { 7 | "mapgensize": [ 8, 8 ], 8 | "rows": [ 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " " 17 | ], 18 | "palettes": [ "caves" ], 19 | "terrain": { " ": [ [ "t_rock_floor", 5 ], [ "t_garnet_crystal", 3 ] ] } 20 | } 21 | }, 22 | { 23 | "type": "mapgen", 24 | "method": "json", 25 | "nested_mapgen_id": "crystal_formation", 26 | "object": { 27 | "mapgensize": [ 8, 8 ], 28 | "rows": [ 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " " 37 | ], 38 | "palettes": [ "caves" ], 39 | "terrain": { " ": [ [ "t_rock_floor", 5 ], [ "t_opal_crystal", 3 ] ] } 40 | } 41 | }, 42 | { 43 | "type": "mapgen", 44 | "method": "json", 45 | "nested_mapgen_id": "crystal_formation", 46 | "object": { 47 | "mapgensize": [ 8, 8 ], 48 | "rows": [ 49 | " ", 50 | " ", 51 | " ", 52 | " ", 53 | " ", 54 | " ", 55 | " ", 56 | " " 57 | ], 58 | "palettes": [ "caves" ], 59 | "terrain": { " ": [ [ "t_rock_floor", 5 ], [ "t_topaz_crystal", 3 ] ] } 60 | } 61 | } 62 | ] -------------------------------------------------------------------------------- /locations/caves/enterances/cave_enter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "cave_enter", 5 | "//": "Entrance, connects to sewers.", 6 | "type": "mapgen", 7 | "weight": 100, 8 | "object": { 9 | "fill_ter": "t_rock_floor", 10 | "rows": [ 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " >>>>>>>>>> ", 20 | " >>AAAAAAAA>> ", 21 | " >AAAAAAAAAA> ", 22 | " >AAAAAAAAAA> ", 23 | " >>AAAAAAAA>> ", 24 | " >>>>>>>>>> ", 25 | " ", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " " 35 | ], 36 | "palettes": [ "caves_enter" ] 37 | } 38 | } 39 | ] -------------------------------------------------------------------------------- /locations/caves/flooded cave/flooded_cave_base.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "flooded_cave_blank", 5 | "//": "Blank pallette for flooded cave systems.", 6 | "type": "mapgen", 7 | "weight": 100, 8 | "object": { 9 | "fill_ter": "t_rock_floor", 10 | "rows": [ 11 | "////////////////////////", 12 | "////////////////////////", 13 | "////////////////////////", 14 | "////////////////////////", 15 | "////////////////////////", 16 | "////////////////////////", 17 | "////////////////////////", 18 | "////////////////////////", 19 | "////////////////////////", 20 | "////////////////////////", 21 | "////////////////////////", 22 | "////////////////////////", 23 | "////////////////////////", 24 | "////////////////////////", 25 | "////////////////////////", 26 | "////////////////////////", 27 | "////////////////////////", 28 | "////////////////////////", 29 | "////////////////////////", 30 | "////////////////////////", 31 | "////////////////////////", 32 | "////////////////////////", 33 | "////////////////////////", 34 | "////////////////////////" 35 | ], 36 | "palettes": [ "caves" ], 37 | "terrain": { "/": "t_water_dp_underground" }, 38 | "place_nested": [ 39 | { "chunks": [ "flooded_cave_nested" ], "x": 8, "y": 8 }, 40 | { "chunks": [ "flooded_cave_nested" ], "x": 16, "y": 8 }, 41 | { "chunks": [ "flooded_cave_nested" ], "x": 8, "y": 17 }, 42 | { "chunks": [ "flooded_cave_nested" ], "x": 16, "y": 17 } 43 | ] 44 | } 45 | } 46 | ] -------------------------------------------------------------------------------- /locations/caves/mushroom forest/mforest_blank.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "mushroom_cave_blank", 5 | "//": "Blank pallette for a mushroom forest.", 6 | "type": "mapgen", 7 | "weight": 100, 8 | "object": { 9 | "fill_ter": "t_rock_floor", 10 | "rows": [ 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " ", 20 | " ", 21 | " ", 22 | " ", 23 | " ", 24 | " ", 25 | " ", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " " 35 | ], 36 | "palettes": [ "mushroom_caves" ], 37 | "place_nested": [ 38 | { "chunks": [ "mcave_nested" ], "x": 8, "y": 8 }, 39 | { "chunks": [ "mcave_nested" ], "x": 16, "y": 8 }, 40 | { "chunks": [ "mcave_nested" ], "x": 8, "y": 17 }, 41 | { "chunks": [ "mcave_nested" ], "x": 16, "y": 17 } 42 | ] 43 | } 44 | } 45 | ] -------------------------------------------------------------------------------- /locations/caves/settlement ruins/ruined settlement.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "method": "json", 4 | "om_terrain": "ruined_settlement_blank", 5 | "//": "Blank pallette for cave system settlements.", 6 | "type": "mapgen", 7 | "weight": 100, 8 | "object": { 9 | "fill_ter": "t_rock_floor", 10 | "rows": [ 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " ", 20 | " ", 21 | " ", 22 | " ", 23 | " ", 24 | " ", 25 | " ", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " ", 32 | " ", 33 | " ", 34 | " " 35 | ], 36 | "palettes": [ "cave_settlement" ], 37 | "place_nested": [ 38 | { "chunks": [ "cave_settlement_nested" ], "x": 8, "y": 8 }, 39 | { "chunks": [ "cave_settlement_nested" ], "x": 16, "y": 8 }, 40 | { "chunks": [ "cave_settlement_nested" ], "x": 8, "y": 17 }, 41 | { "chunks": [ "cave_settlement_nested" ], "x": 16, "y": 17 } 42 | ] 43 | } 44 | } 45 | ] -------------------------------------------------------------------------------- /locations/lake specials/kraken_lair.json: -------------------------------------------------------------------------------- 1 | [ ] -------------------------------------------------------------------------------- /locations/map extras/extra_ids.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mx_red_crystal_berry", 4 | "type": "map_extra", 5 | "name": { "str": "Berry grove" }, 6 | "description": "A meadow of berries.", 7 | "generator": { "generator_method": "update_mapgen", "generator_id": "mx_red_crystal_berry_map" } 8 | }, 9 | { 10 | "id": "mx_fire_flower", 11 | "type": "map_extra", 12 | "name": { "str": "Flower grove" }, 13 | "description": "A meadow of fire flowers.", 14 | "generator": { "generator_method": "update_mapgen", "generator_id": "mx_fire_flower_map" } 15 | } 16 | ] -------------------------------------------------------------------------------- /locations/map extras/mapgen.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mapgen", 4 | "method": "json", 5 | "nested_mapgen_id": "mx_red_crystal_berry_nested", 6 | "object": { 7 | "mapgensize": [ 6, 6 ], 8 | "rows": [ 9 | " / ", 10 | " / ", 11 | " / ", 12 | "/ / ", 13 | " / ", 14 | " / " 15 | ], 16 | "palettes": [ "long_grass_meadow_palette" ], 17 | "furniture": { "/": "f_crystal_berry_red" } 18 | } 19 | }, 20 | { 21 | "type": "mapgen", 22 | "method": "json", 23 | "update_mapgen_id": "mx_red_crystal_berry_map", 24 | "object": { "place_nested": [ { "chunks": [ [ "mx_red_crystal_berry_nested", 100 ] ], "x": [ 0, 17 ], "y": [ 0, 17 ], "repeat": [ 2, 4 ] } ] } 25 | }, 26 | { 27 | "type": "mapgen", 28 | "method": "json", 29 | "nested_mapgen_id": "mx_fire_flower_nested", 30 | "object": { 31 | "mapgensize": [ 6, 6 ], 32 | "rows": [ 33 | " / ", 34 | " / ", 35 | " / ", 36 | "/ / ", 37 | " / ", 38 | " / " 39 | ], 40 | "palettes": [ "long_grass_meadow_palette" ], 41 | "furniture": { "/": "f_fire_flower" } 42 | } 43 | }, 44 | { 45 | "type": "mapgen", 46 | "method": "json", 47 | "update_mapgen_id": "mx_fire_flower_map", 48 | "object": { "place_nested": [ { "chunks": [ [ "mx_fire_flower_nested", 100 ] ], "x": [ 0, 17 ], "y": [ 0, 17 ], "repeat": [ 2, 4 ] } ] } 49 | } 50 | ] -------------------------------------------------------------------------------- /locations/mine/ore_veins.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mapgen", 4 | "method": "json", 5 | "nested_mapgen_id": "ore_veins", 6 | "object": { 7 | "mapgensize": [ 8, 8 ], 8 | "place_nested": [ 9 | { "chunks": [ [ "iron_vein", 75 ], [ "copper_vein", 65 ], [ "silver_vein", 45 ] ], "x": 0, "y": 0 } 10 | ] 11 | } 12 | }, 13 | { 14 | "type": "mapgen", 15 | "method": "json", 16 | "nested_mapgen_id": "iron_vein", 17 | "object": { 18 | "mapgensize": [ 8, 8 ], 19 | "rows": [ 20 | " ", 21 | " // ", 22 | " //// ", 23 | " ////// ", 24 | " ////// ", 25 | " // ", 26 | " ", 27 | " " 28 | ], 29 | "terrain": { "/": "t_iron_vein" } 30 | } 31 | }, 32 | { 33 | "type": "mapgen", 34 | "method": "json", 35 | "nested_mapgen_id": "copper_vein", 36 | "object": { 37 | "mapgensize": [ 8, 8 ], 38 | "rows": [ 39 | " ", 40 | " ", 41 | " // ", 42 | " //// ", 43 | " //// ", 44 | " // ", 45 | " ", 46 | " " 47 | ], 48 | "terrain": { "/": "t_copper_vein" } 49 | } 50 | }, 51 | { 52 | "type": "mapgen", 53 | "method": "json", 54 | "nested_mapgen_id": "silver_vein", 55 | "object": { 56 | "mapgensize": [ 8, 8 ], 57 | "rows": [ 58 | " ", 59 | " ", 60 | " // ", 61 | " //// ", 62 | " //// ", 63 | " // ", 64 | " ", 65 | " " 66 | ], 67 | "terrain": { "/": "t_silver_vein" } 68 | } 69 | } 70 | ] -------------------------------------------------------------------------------- /modinfo.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "MOD_INFO", 4 | "ident": "fantasy", 5 | "name": "Fantasy", 6 | "authors": [ "Aptronym", "Mutaman", "Kenan" ], 7 | "maintainers": [ "MNG-cataclysm" ], 8 | "description": "Makes the world a simpler place. Will be modified as time goes on to include the various things we want in the fantasy conversion mod project.", 9 | "category": "total_conversion", 10 | "dependencies": [ "dda" ] 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /monsters/2-fields.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "fd_mtc_goblin_dismount", 3 | "type": "field_type", 4 | "intensity_levels": [ 5 | { 6 | "name": "...", 7 | "color": "black", 8 | "monster_spawn_chance": 1, 9 | "monster_spawn_count": 1, 10 | "monster_spawn_radius": 1, 11 | "monster_spawn_group": "GROUP_DMBB_GOBLIN_DISMOUNT" 12 | } 13 | ], 14 | "priority": -1, 15 | "half_life": "1 turns", 16 | "phase": "gas", 17 | "display_items": true, 18 | "display_field": false 19 | } -------------------------------------------------------------------------------- /monsters/Dragons/field.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "fd_mtc_dragon_ice", 4 | "looks_like": "fd_cold_air4", 5 | "type": "field_type", 6 | "intensity_levels": [ 7 | { "name": "cold air", "sym": "&", "convection_temperature_mod": -70 } 8 | ], 9 | "percent_spread": 100, 10 | "half_life": "5 seconds", 11 | "phase": "gas", 12 | "display_field": false 13 | }, 14 | { 15 | "id": "fd_mtc_dragon_fire_immune", 16 | "type": "field_type", 17 | "intensity_levels": [ 18 | { 19 | "name": "draconic pressence", 20 | "color": "dark_gray", 21 | "effects": [ 22 | { "effect_id": "eff_mtc_dragon_fire_immune", "body_part": "TORSO", "min_duration": "1 seconds", "max_duration": "1 seconds" } 23 | ] 24 | } 25 | ], 26 | "priority": -1, 27 | "half_life": "1 turns", 28 | "phase": "gas", 29 | "display_items": true, 30 | "display_field": false 31 | }, 32 | { 33 | "id": "fd_mtc_dragon_ice_immune", 34 | "type": "field_type", 35 | "intensity_levels": [ 36 | { 37 | "name": "draconic pressence", 38 | "color": "dark_gray", 39 | "effects": [ 40 | { "effect_id": "eff_mtc_dragon_ice_immune", "body_part": "TORSO", "min_duration": "1 seconds", "max_duration": "1 seconds" } 41 | ] 42 | } 43 | ], 44 | "priority": -1, 45 | "half_life": "1 turns", 46 | "phase": "gas", 47 | "display_items": true, 48 | "display_field": false 49 | } 50 | ] -------------------------------------------------------------------------------- /monsters/Wildlife/fish.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mon_fish_cavefish", 4 | "type": "MONSTER", 5 | "copy-from": "mon_fish_medium", 6 | "name": { "str": "cavefish" }, 7 | "description": "A mid-sized fish, adapted to living underground. It has extremley small eyes." 8 | }, 9 | { 10 | "id": "mon_fish_small_cavefish", 11 | "type": "MONSTER", 12 | "copy-from": "mon_fish_small", 13 | "name": { "str_sp": "blind runner bass" }, 14 | "description": "A small fish, adapted to living underground. It has extremley small eyes, and often darts about to and fro." 15 | }, 16 | { 17 | "id": "mon_fish_cave_grouper", 18 | "type": "MONSTER", 19 | "copy-from": "mon_fish_large", 20 | "name": { "str_sp": "stone grouper" }, 21 | "description": "A large flat fish, adaped to living underground. It has long whiskers, and no visible eyes, as it glides along the bottom." 22 | }, 23 | { 24 | "id": "mon_fish_cave_hunter", 25 | "type": "MONSTER", 26 | "copy-from": "mon_fish_large", 27 | "name": { "str_sp": "grey warmouth" }, 28 | "description": "A large oblong fish, with sharp rows of teeth. It has a glowing antannae upon its forehead, as it lies in wait for prey." 29 | } 30 | ] -------------------------------------------------------------------------------- /monsters/Wildlife/gastropods.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mon_snail_giant", 4 | "type": "MONSTER", 5 | "name": { "str": "giant snail" }, 6 | "description": "A large snail, nearly the size of a horse. It crawls around at a rather slow pace, and looks about with two eye stalks.", 7 | "default_faction": "herbivore", 8 | "categories": [ "WILDLIFE" ], 9 | "diff": 5, 10 | "volume": "875000 ml", 11 | "weight": "550 kg", 12 | "hp": 190, 13 | "speed": 60, 14 | "material": [ "flesh" ], 15 | "symbol": "S", 16 | "color": "brown", 17 | "aggression": 0, 18 | "morale": 100, 19 | "melee_skill": 4, 20 | "melee_dice": 1, 21 | "melee_dice_sides": 5, 22 | "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], 23 | "armor_bash": 8, 24 | "armor_cut": 8, 25 | "armor_bullet": 8, 26 | "bleed_rate": 60, 27 | "vision_day": 30, 28 | "harvest": "mutant_meatslug", 29 | "weakpoint_sets": [ "wps_natural_armor" ], 30 | "reproduction": { "baby_monster": "mon_snail_small", "baby_count": 1, "baby_timer": 10 }, 31 | "baby_flags": [ "SPRING", "WINTER" ], 32 | "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", "pet": "The %s lets out a low rumble while you pat their head." }, 33 | "special_attacks": [ [ "EAT_FOOD", 10 ] ], 34 | "anger_triggers": [ "HURT", "FRIEND_ATTACKED" ], 35 | "flags": [ "SEES", "ANIMAL", "SMELLS", "BASHES", "ACIDPROOF", "PET_MOUNTABLE", "PUSH_MON", "ARTHROPOD_BLOOD", "CANPLAY" ] 36 | }, 37 | { 38 | "id": "mon_snail_small", 39 | "type": "MONSTER", 40 | "name": { "str": "snail" }, 41 | "description": "A wild snail as large as a human. It crawls along as it looks for food.", 42 | "copy-from": "mon_snail_giant", 43 | "volume": "62500 ml", 44 | "weight": "81500 g", 45 | "aggression": 0, 46 | "morale": 100, 47 | "proportional": { "hp": 0.4, "speed": 1.1, "melee_dice_sides": 0.67 }, 48 | "extend": { "flags": [ "NO_BREED" ] }, 49 | "upgrades": { "age_grow": 28, "into": "mon_snail_giant" } 50 | } 51 | ] -------------------------------------------------------------------------------- /monsters/Wildlife/insects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mon_craig_spider", 4 | "type": "MONSTER", 5 | "name": { "str": "craig spider" }, 6 | "description": "A large, gray spider, about the size of a cow. It has multiple appendages branching from its thorax, and looks about with several eyes.", 7 | "default_faction": "craig_spider", 8 | "bodytype": "spider", 9 | "categories": [ "MONSTERS" ], 10 | "species": [ "SPIDER_MTC" ], 11 | "volume": "680388 ml", 12 | "weight": "680388 g", 13 | "hp": 45, 14 | "speed": 100, 15 | "material": [ "flesh" ], 16 | "symbol": "s", 17 | "color": "dark_gray", 18 | "aggression": 0, 19 | "morale": 70, 20 | "melee_skill": 6, 21 | "melee_dice": 1, 22 | "melee_dice_sides": 8, 23 | "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], 24 | "dodge": 4, 25 | "armor_acid": 3, 26 | "vision_day": 5, 27 | "vision_night": 5, 28 | "harvest": "arachnid", 29 | "anger_triggers": [ "HURT" ], 30 | "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "PUSH_MON", "PATH_AVOID_FIRE", "PET_MOUNTABLE" ] 31 | } 32 | ] -------------------------------------------------------------------------------- /monsters/drops.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mtc_worg_death", 4 | "type": "TOOL", 5 | "name": "worg", 6 | "description": "This is worg. It is dying because yes.", 7 | "volume": "1 ml", 8 | "weight": 1, 9 | "price": 0, 10 | "to_hit": -2, 11 | "bashing": 1, 12 | "material": [ "flesh" ], 13 | "symbol": "%", 14 | "color": "red", 15 | "drop_action": { 16 | "type": "explosion", 17 | "sound_volume": 0, 18 | "sound_msg": "*splat*", 19 | "no_deactivate_msg": "*splat* *splat*", 20 | "draw_explosion_color": "red", 21 | "fields_type": "fd_mtc_goblin_dismount", 22 | "fields_radius": 0, 23 | "fields_min_intensity": 1, 24 | "fields_max_intensity": 1 25 | } 26 | }, 27 | { 28 | "type": "item_group", 29 | "subtype": "collection", 30 | "id": "mon_mtc_worg_dd", 31 | "entries": [ { "item": "mtc_worg_death" } ] 32 | } 33 | ] -------------------------------------------------------------------------------- /monsters/harvest.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mutant_mammal_small_nofur", 4 | "//": "does not drop stomach or other small organs", 5 | "type": "harvest", 6 | "entries": [ 7 | { "drop": "meat", "type": "flesh", "mass_ratio": 0.28 }, 8 | { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.05 }, 9 | { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, 10 | { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, 11 | { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, 12 | { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, 13 | { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, 14 | { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } 15 | ] 16 | }, 17 | { 18 | "id": "dragon", 19 | "//": "specifically for dragons and dragon-like enemies", 20 | "type": "harvest", 21 | "entries": [ 22 | { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, 23 | { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, 24 | { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, 25 | { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, 26 | { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, 27 | { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, 28 | { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, 29 | { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, 30 | { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, 31 | { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, 32 | { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, 33 | { "drop": "dragon_scale", "type": "skin", "mass_ratio": 0.02 } 34 | ] 35 | } 36 | ] -------------------------------------------------------------------------------- /monsters/monammogun.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "mongun_mtc_goblin_marksman", 4 | "type": "GUN", 5 | "copy-from": "fake_item", 6 | "name": { "str": "crossbow" }, 7 | "description": "Crude crossbow made to be fired by goblins. It is a bug to have this.", 8 | "flags": [ "NEVER_JAMS" ], 9 | "ammo_effects": [ "NEVER_MISFIRES" ], 10 | "skill": "rifle", 11 | "durability": 10, 12 | "range": 100, 13 | "dispersion": 1000, 14 | "ranged_damage": { "damage_type": "stab", "amount": 10, "armor_penetration": 5 } 15 | }, 16 | { 17 | "id": "mongun_mtc_goblin_thrower", 18 | "type": "GUN", 19 | "copy-from": "fake_item", 20 | "name": { "str": "hand" }, 21 | "description": "Literally just a hand for throwing stuff. Made for nasty goblins. It is a bug to have this.", 22 | "flags": [ "NEVER_JAMS" ], 23 | "ammo_effects": [ "NEVER_MISFIRES" ], 24 | "skill": "rifle", 25 | "durability": 10, 26 | "range": 100, 27 | "dispersion": 1000, 28 | "ranged_damage": { "damage_type": "stab", "amount": 12, "armor_penetration": 6 } 29 | }, 30 | { 31 | "id": "mongun_mtc_goblin_immobilizer", 32 | "type": "GUN", 33 | "copy-from": "fake_item", 34 | "name": { "str": "hand" }, 35 | "description": "Literally just a hand for throwing stuff. Made for nasty goblins. It is a bug to have this.", 36 | "flags": [ "NEVER_JAMS" ], 37 | "ammo_effects": [ "NEVER_MISFIRES", "TANGLE" ], 38 | "skill": "rifle", 39 | "durability": 10, 40 | "range": 100, 41 | "dispersion": 1000, 42 | "ranged_damage": { "damage_type": "bash", "amount": 4 } 43 | } 44 | ] 45 | -------------------------------------------------------------------------------- /mutations/mutagen.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "COMESTIBLE", 4 | "id": "the_blood", 5 | "name": { "str_sp": "The Blood" }, 6 | "weight": "265 g", 7 | "color": "red", 8 | "container": "flask_glass", 9 | "comestible_type": "DRINK", 10 | "symbol": "~", 11 | "quench": 0, 12 | "healthy": 80, 13 | "price_postapoc": 200, 14 | "calories": 0, 15 | "addiction_potential": 50, 16 | "addiction_type": "the_blood", 17 | "description": "Blood, seemingly nutritious and potent. Gazing upon it fills you with longing.", 18 | "price": 200, 19 | "material": "hflesh", 20 | "volume": "250 ml", 21 | "phase": "solid", 22 | "charges": 1, 23 | "use_action": [ { "type": "cast_spell", "spell_id": "blood_heal", "no_fail": true, "level": 1 } ], 24 | "fun": 10 25 | } 26 | ] -------------------------------------------------------------------------------- /mutations/the_blood.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mutation_category", 4 | "id": "BLOOD", 5 | "name": "Eldritch Bloodline", 6 | "threshold_mut": "THRESH_BLOOD", 7 | "mutagen_message": "You vision turns red...", 8 | "memorial_message": "Became a thing which should not be." 9 | }, 10 | { 11 | "type": "mutation", 12 | "id": "THRESH_BLOOD", 13 | "name": { "str": "Eldritch Alterations" }, 14 | "points": 1, 15 | "description": "Your body has been radically altered due to an overutilization of The Blood. Whilst ye may have abandoned your humanity, one may find some means for your physiology.", 16 | "valid": false, 17 | "purifiable": false, 18 | "threshold": true 19 | }, 20 | { 21 | "type": "mutation", 22 | "id": "TB_Bleed", 23 | "name": "Altered Excretions", 24 | "points": 2, 25 | "description": "Your body now generates The Blood, allowing you to extract it with mental focus.", 26 | "category": [ "BLOOD" ], 27 | "flags": [ "NON_THRESH" ], 28 | "spells_learned": [ [ "extract_blood", 0 ] ] 29 | }, 30 | { 31 | "type": "mutation", 32 | "id": "EKNOW", 33 | "name": "Otherworldly Knowledge", 34 | "points": 2, 35 | "description": "The knowledge of the elder one has touched you.", 36 | "category": [ "BLOOD" ], 37 | "changes_to": [ "EKNOW2" ], 38 | "reading_speed_multiplier": 0.6, 39 | "passive_mods": { "int_mod": 1 } 40 | }, 41 | { 42 | "type": "mutation", 43 | "id": "EKNOW2", 44 | "name": "Mental Murmurs", 45 | "points": 4, 46 | "description": "The knowledge of the elder one has laid its hands.", 47 | "category": [ "BLOOD" ], 48 | "prereqs": [ "EKNOW" ], 49 | "changes_to": [ "EKNOW3" ], 50 | "reading_speed_multiplier": 0.5, 51 | "passive_mods": { "int_mod": 2 } 52 | }, 53 | { 54 | "type": "mutation", 55 | "id": "EKNOW3", 56 | "name": "Eldritch Minds", 57 | "points": 6, 58 | "description": "The knowledge of the elder one has grasped you firmly, providing an expansion of your mind.", 59 | "category": [ "BLOOD" ], 60 | "prereqs": [ "EKNOW2" ], 61 | "threshreq": [ "THRESH_BLOOD" ], 62 | "reading_speed_multiplier": 0.4, 63 | "passive_mods": { "int_mod": 4 } 64 | } 65 | ] -------------------------------------------------------------------------------- /npc stuff/backgrounds/BG_charlatan.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "BGSS_CHARLATAN_STORY1", 4 | "type": "talk_topic", 5 | "dynamic_line": "I was a charlatan; a scammer. I could sweet-talk my way out of anything, and swindle anyone of their things. I rigged bets, ran slight-of-hand schemes; heck, I even learned a bit of alchemy, and sold my watered-down potions as 'elixirs of eternal life' and all that shit. When one place went bad, I packed up and moved on to the next big city.", 6 | "responses": [ 7 | { "text": "", "topic": "TALK_FRIEND" }, 8 | { "text": "Go on.", "topic": "BGSS_CHARLATAN_MIDDLE1" }, 9 | { "text": "", "topic": "TALK_DONE" } 10 | ] 11 | }, 12 | { 13 | "id": "BGSS_CHARLATAN_MIDDLE1", 14 | "type": "talk_topic", 15 | "dynamic_line": "Well, my luck ran out. The city guard arrested me, and I was tried for innumerable counts of fraud. Fourtunatley, I had bribed the law beforehand, and I got off easy. I quit that life, and moved on. But hey, I got rich as hell from it!", 16 | "responses": [ 17 | { "text": "", "topic": "TALK_FRIEND" }, 18 | { "text": "", "topic": "TALK_DONE" } 19 | ] 20 | } 21 | ] -------------------------------------------------------------------------------- /npc stuff/backgrounds/BG_city_watch.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "BGSS_CITY_WATCH_STORY1", 4 | "type": "talk_topic", 5 | "dynamic_line": "I was a city watchman, once. I made sure everyone was safe at night, pulled guard duty at the local inn; heck, I even investigated crime. Though, one day, I took an arrow to the knee after some bozo robbed a travelling salesman. I couldn't work after that.", 6 | "responses": [ 7 | { "text": "", "topic": "TALK_FRIEND" }, 8 | { "text": "", "topic": "TALK_DONE" } 9 | ] 10 | } 11 | ] -------------------------------------------------------------------------------- /npc stuff/backgrounds/BG_dwarven_craftsman.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "BGSS_DWARVEN_CRAFTSMAN_STORY1", 4 | "type": "talk_topic", 5 | "dynamic_line": "I was a tradesman, once upon a time. I worked with my parents in their shop, helpin' out. They taught me everything they knew. Well, one day they tell me I'm goin' off to a dwarven city as an apprentice. They already made the arrangements, so I couldn't say nothin.", 6 | "responses": [ 7 | { "text": "", "topic": "TALK_FRIEND" }, 8 | { "text": "What was it like?", "topic": "BGSS_DWARVEN_CRAFTSMAN_MIDDLE1" }, 9 | { "text": "", "topic": "TALK_DONE" } 10 | ] 11 | }, 12 | { 13 | "id": "BGSS_DWARVEN_CRAFTSMAN_MIDDLE1", 14 | "type": "talk_topic", 15 | "dynamic_line": "The old man they sent me out to was a grouch; no fun, couldn't take a joke, that sort of thing. He drilled his craft inta' me, out to shape this, that, and the other thing. He was good at it, too.", 16 | "responses": [ 17 | { "text": "", "topic": "TALK_FRIEND" }, 18 | { "text": "How did you wind up here?", "topic": "BGSS_DWARVEN_CRAFTSMAN_END1" }, 19 | { "text": "", "topic": "TALK_DONE" } 20 | ] 21 | }, 22 | { 23 | "id": "BGSS_DWARVEN_CRAFTSMAN_END1", 24 | "type": "talk_topic", 25 | "dynamic_line": "Well, I grew up, and graduated my apprenticeship. I'd spent years bent over a table with a hammer, I wanted somethin' else, to see the world. So, I packed up what belongings I had, and hit the road. The rest is history.", 26 | "responses": [ 27 | { "text": "", "topic": "TALK_FRIEND" }, 28 | { "text": "", "topic": "TALK_DONE" } 29 | ] 30 | } 31 | ] -------------------------------------------------------------------------------- /npc stuff/backgrounds/Backstory_trait_groups.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "//": "This trait group covers all common NPCs.", 4 | "type": "trait_group", 5 | "id": "BG_story_COMMON", 6 | "subtype": "distribution", 7 | "traits": [ 8 | { "trait": "BGSS_Delta_Farmer_1" }, 9 | { "trait": "BGSS_Delta_Farmer_2" }, 10 | { "trait": "BGSS_Delta_Farmer_3" }, 11 | { "trait": "BGSS_Acolyte_1" }, 12 | { "trait": "BGSS_Acolyte_2" }, 13 | { "trait": "BGSS_Anthroplogist_1" }, 14 | { "trait": "BGSS_Anthroplogist_2" }, 15 | { "trait": "BGSS_Archaeologist_1" }, 16 | { "trait": "BGSS_Archaeologist_2" }, 17 | { "trait": "BGSS_Charlatan_1" }, 18 | { "trait": "BGSS_City_Watch_1" }, 19 | { "trait": "BGSS_Dwarf_Crafter_1" } 20 | ] 21 | } 22 | ] -------------------------------------------------------------------------------- /npc stuff/bandits/bandits.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "bandit_mtc", 5 | "name_suffix": "highwayman", 6 | "class": "NPC_BANDIT_MTC", 7 | "attitude": 10, 8 | "mission": 3, 9 | "chat": "TALK_MUG", 10 | "faction": "bandits" 11 | } 12 | ] -------------------------------------------------------------------------------- /npc stuff/blacksmiths/lone/lone blacksmith npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "lone_blacksmith", 5 | "name_suffix": "blacksmith", 6 | "class": "NPC_BLACKSMITH", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_LONE_BLACKSMITH", 10 | "mission_offered": [ "MISSION_GET_LEATHER", "MISSION_GET_METAL", "MISSION_GET_LOGS" ], 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_CHILD.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_CHILD_YOUNG", 5 | "dynamic_line": [ "The monsters are scawry.", "I wuv my family", "...", "I wike you, wanna play?", "My mommy is a wondervul cook, she makes da best steak.", "You'll protect us from those mean ol' bandits, wite?" ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_DRY_DOCK_MANAGER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_DRY_DOCK_MANAGER", 5 | "dynamic_line": [ "Hello there. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_DRY_DOCK_MANAGER_WHO", 10 | "effect": { "npc_add_var": "known", "type": "dialogue", "context": "npc_boat_maker", "value": "yes" } 11 | }, 12 | { 13 | "text": "I'll take a skiff (363 gold).", 14 | "topic": "TALK_SOLD", 15 | "condition": { "and": [ { "npc_has_var": "known", "type": "dialogue", "context": "npc_boat_maker" }, { "u_has_items": { "item": "gold_coin", "count": 363 } } ] }, 16 | "effect": [ { "add_mission": "MISSION_BUY_SKIFF" } ] 17 | }, 18 | { 19 | "text": "No.", 20 | "topic": "TALK_DONE" 21 | } 22 | ] 23 | }, 24 | { 25 | "type": "talk_topic", 26 | "id": "TALK_NPC_DRY_DOCK_MANAGER_WHO", 27 | "dynamic_line": [ "I'm a carpenter, and I make boats. If you need any craft to sail on, we can make it." ], 28 | "responses": [ 29 | { 30 | "text": "Okay, thanks for the info.", 31 | "topic": "TALK_DONE" 32 | }, 33 | { 34 | "text": "What are your prices?", 35 | "topic": "TALK_NPC_DRY_DOCK_MANAGER_PRICES" 36 | } 37 | ] 38 | }, 39 | { 40 | "type": "talk_topic", 41 | "id": "TALK_NPC_DRY_DOCK_MANAGER_PRICES", 42 | "//": "To calculate the price, I added the total cost of parts used within the vehicle's template, applied a 0.15% labor cost, divided the value by 5.00 (one silver coin), and adjusted the result for transactiona simplicity. Yes, these are extremeley expensive, as it's the medieval equivalent of getting a new car.", 43 | "dynamic_line": [ "Well, a skiff is 363 gold; its good for getting somewhere fast, but don't get it close to land." ], 44 | "responses": [ 45 | { 46 | "text": "Thank you.", 47 | "topic": "TALK_NPC_DRY_DOCK_MANAGER" 48 | } 49 | ] 50 | } 51 | ] -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_INFIRMARY_HEAD.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_INFIRMARY_HEAD", 5 | "dynamic_line": [ "Hello." ], 6 | "responses": [ 7 | { "text": "What is this place?", 8 | "topic": "TALK_INFO" 9 | } 10 | ] 11 | }, 12 | { 13 | "type": "talk_topic", 14 | "id": "TALK_INFO", 15 | "dynamic_line": [ "This is an clinic, and I run it. Do you need something?" ], 16 | "responses": [ 17 | { "text": "No, thank you.", 18 | "topic": "TALK_DONE" 19 | }, 20 | { "text": "Actually, I need medical attention.", 21 | "topic": "TALK_HEAL" 22 | } 23 | ] 24 | }, 25 | { 26 | "type": "talk_topic", 27 | "id": "TALK_HEAL", 28 | "dynamic_line": [ "Okay, I'll have a medic treat ya. One moment..." ], 29 | "responses": [ 30 | { "text": "Okay.", 31 | "effect": "give_aid", 32 | "topic": "TALK_DONE" 33 | } 34 | ] 35 | } 36 | ] 37 | -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_LOGGER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_LOGGER", 5 | "dynamic_line": [ "Hello there. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_LOGGER_WHO", 10 | "effect": { "npc_add_var": "known", "type": "dialogue", "context": "npc_logger", "value": "yes" } 11 | }, 12 | { 13 | "text": "Are you willing to buy anything at the moment?", 14 | "topic": "TALK_NPC_LOGGER_MASSTRADE", 15 | "condition": { "npc_has_var": "known", "type": "dialogue", "context": "npc_logger" } 16 | }, 17 | { 18 | "text": "No.", 19 | "topic": "TALK_DONE" 20 | } 21 | ] 22 | }, 23 | { 24 | "type": "talk_topic", 25 | "id": "TALK_NPC_LOGGER_WHO", 26 | "dynamic_line": [ "Oh, I'm just a logger. It's a rather profitable industry; everyone needs firewood. We're always in need of help these days, though." ], 27 | "responses": [ 28 | { 29 | "text": "You think I could help?", 30 | "topic": "TALK_NPC_LOGGER_HELP" 31 | }, 32 | { 33 | "text": "Thanks for the info.", 34 | "topic": "TALK_DONE" 35 | } 36 | ] 37 | }, 38 | { 39 | "type": "talk_topic", 40 | "id": "TALK_NPC_LOGGER_HELP", 41 | "dynamic_line": [ "Tell ya what; if you bring me any logs, I'll pay you a fair price for them. Sound good to you?" ], 42 | "responses": [ 43 | { 44 | "text": "Thank you.", 45 | "topic": "TALK_DONE" 46 | } 47 | ] 48 | }, 49 | { 50 | "type": "talk_topic", 51 | "id": "TALK_NPC_LOGGER_MASSTRADE", 52 | "dynamic_line": "Yes, I'm willing to buy. What do you have?", 53 | "repeat_responses": { 54 | "for_item": [ 55 | "log" 56 | ], 57 | "response": { "text": "I have .", "topic": "TALK_DELIVER_ASK" } 58 | }, 59 | "responses": [ 60 | { "text": "I have nothing. I'd best get going.", "topic": "TALK_DONE" } 61 | ] 62 | } 63 | ] -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_NPC_GENERIC_CITIZEN.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_GENERIC_CITIZEN", 5 | "dynamic_line": [ "I hope the local lords do something about all the monsters.", "Staying alive on the walk home seems to be all that's on anyone's mind these days.", "Some people talk of spotting worse monsters than goblins in the woods and swamps.", "I'm glad the guards are around to protect us.", "As if the monsters aren't enough, the bandits don't seem to be letting up either.", "Some say a cult is on the rise, gaining new members and kidnapping people. I hope they don't target me.", "Part of me wonders why an army hasn't been amassed against the monsters. They seem easy enough to kill by a single guard. An army should be able to sweep them up like nothing.", "The common folk in the villages don't seem to be that high of a priority. They needs walls more than guards though.", "The dragon hunters are doing all they can to limit the spread of the wild feral dragons.", "Every night I struggle to sleep for fear of the monsters attacking.", "I can run if I'm on my own but having a family can make things complicated", "Hope the harvest isn't affected too much by the appearance of the monsters.", "What could be behind the appearance of the monsters, I wonder." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_SHOPKEEPERS.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_SHOPKEEPER_general", 5 | "dynamic_line": [ "Come on in, what'cha wanna buy?" ], 6 | "responses": [ 7 | { 8 | "text": "I would like...", 9 | "effect": "start_trade", 10 | "topic": "TALK_DONE" 11 | }, 12 | { 13 | "text": "Is there anything you need?", 14 | "topic": "TALK_NPC_GENERIC_TAVERNKEEP_JOBS" 15 | } 16 | ] 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_STABLEMASTER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_STABLEMASTER", 5 | "dynamic_line": "Ello, what can I do for ye'? I have good stock t' sell, harness, tack, everythin'.", 6 | "responses": [ 7 | { 8 | "text": "I'd like a horse. (100 gold)", 9 | "topic": "TALK_SOLD", 10 | "condition": { "u_has_items": { "item": "gold_coin", "count": 100 } }, 11 | "effect": [ { "u_buy_monster": "mon_horse", "pacified": true }, { "u_sell_item": "gold_coin", "count": 100 } ] 12 | }, 13 | { 14 | "text": "Tack, you say? (25 silver)", 15 | "topic": "TALK_SOLD", 16 | "condition": { "u_has_items": { "item": "silver_coin", "count": 25 } }, 17 | "effect": [ { "u_spawn_item": "horse_tack" }, { "u_sell_item": "silver_coin", "count": 25 } ] 18 | }, 19 | { 20 | "text": "How much are your goods?", 21 | "topic": "TALK_STABLEMASTER_PRICES" 22 | }, 23 | { 24 | "text": "No, thank you.", 25 | "topic": "TALK_DONE" 26 | } 27 | ] 28 | }, 29 | { 30 | "type": "talk_topic", 31 | "id": "TALK_SOLD", 32 | "dynamic_line": "Sure. Here ya go.", 33 | "responses": [ 34 | { 35 | "text": "Thanks.", 36 | "topic": "TALK_DONE" 37 | } 38 | ] 39 | }, 40 | { 41 | "type": "talk_topic", 42 | "id": "TALK_STABLEMASTER_PRICES", 43 | "dynamic_line": "Oh, a horse is a hundred gold, the tack's twenty-five silvers.", 44 | "responses": [ 45 | { 46 | "text": "Thank you.", 47 | "topic": "TALK_STABLEMASTER" 48 | } 49 | ] 50 | } 51 | ] -------------------------------------------------------------------------------- /npc stuff/citizens/TALK_WORSHIPER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_WORSHIPER", 5 | "dynamic_line": [ "Blessings unto you.", "May the gods guide you.", "Come to worship?.", "Within this time, the divine shall prevail." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/citizens/females/generic female citizen.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_female_citizen", 5 | "name_suffix": "citizen", 6 | "class": "NPC_FEMALE_CITIZEN", 7 | "gender": "female", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_GENERIC_CITIZEN", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/citizens/males/generic male citizen.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_male_citizen", 5 | "name_suffix": "citizen", 6 | "class": "NPC_MALE_CITIZEN", 7 | "gender": "male", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_GENERIC_CITIZEN", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/combat/dragonslayers/TALK_NPC_RETIRED_DRAGONSLAYER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_RETIRED_DRAGONSLAYER", 5 | "dynamic_line": [ "Back when I was younger I used to hunt dragons for sport. Now it seems the art has turned into one of necessity.", "Heh, there was this one that didn't breathe fire but roared like bellowing thunder and made lightning come from its mouth. I still twitch sometimes from that.", "I'm just glad the dragons on the rise now aren't a bunch of elders. We'd be doomed if that were the case.", "They say if you hatched your own dragon it will be your friend. I know there's a reason why the dragonriders exist but the tales tell of them taming already grown ones.", "It's nice to be able to relax my old bones after all these years. It helps that my job made sure I'd be quite well-off, haha!", "Using a horse in the hunt isn't necessary but it can mean the difference between life and death if you aren't that experienced." ], 6 | "responses": [ 7 | { 8 | "text": "Do you think I could get into the dragonslaying business?", 9 | "topic": "TALK_NPC_RETIRED_DRAGONSLAYER_QUESTION", 10 | "condition": { "and": [ 11 | { "not": { "u_has_var": "DRAGON_SLAY_1", "type": "general", "context": "mission" } }, 12 | { "not": "has_assigned_mission" } 13 | ] } 14 | }, 15 | { 16 | "text": "Okay.", 17 | "topic": "TALK_DONE" 18 | } 19 | ] 20 | }, 21 | { 22 | "type": "talk_topic", 23 | "id": "TALK_NPC_RETIRED_DRAGONSLAYER_QUESTION", 24 | "dynamic_line": [ "Perhaps. I'll mark a location on your map where I spotted a young feral one not too long ago. If it's still there and is hostile, meaning that it'll be trouble later on, slay it and bring back its fangs to prove your worth." ], 25 | "responses": [ 26 | { 27 | "text": "Hmm...", 28 | "topic": "TALK_MISSION_OFFER" 29 | }, 30 | { 31 | "text": "I'll think about it.", 32 | "topic": "TALK_DONE" 33 | } 34 | ] 35 | } 36 | ] 37 | -------------------------------------------------------------------------------- /npc stuff/combat/dragonslayers/missions.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "MISSION_SLAY_YOUNG_DRAGON", 4 | "type": "mission_definition", 5 | "name": "Apprentice dragon slayer", 6 | "description": "Go kill a young dragon and bring back it scale to prove your worth as a future dragon slayer.", 7 | "goal": "MGOAL_FIND_ITEM", 8 | "item": "trophy_dragon_fang", 9 | "count": 2, 10 | "difficulty": 1, 11 | "value": 1, 12 | "origins": [ "ORIGIN_OPENER_NPC" ], 13 | "start": { 14 | "assign_mission_target": { "om_terrain": "forest", "reveal_radius": 3, "random": true, "search_range": 15, "min_distance": 10 }, 15 | "update_mapgen": { "place_monster": [ { "monster": "mon_mtc_dragon_fire_young", "pack_size": [ 1, 1 ], "x": 8, "y": 8, "target": true } ] } 16 | }, 17 | "end": { "effect": [ 18 | { "u_spawn_item": "silver_coin", "count": 50 }, 19 | { "u_spawn_item": "dragonslayer_recommendation", "count": 1 }, 20 | { "u_add_var": "DRAGON_SLAY_1", "type": "general", "context": "mission", "value": "yes" } 21 | ] }, 22 | "has_generic_rewards": false, 23 | "dialogue": { 24 | "describe": "", 25 | "offer": "It's not too difficult, but I'm not sending you on a picnic either so you'd best be prepared. I'll even make it worth your while if you lighten the workload for the guild. Say... 50 silver?", 26 | "advice": "Dragons aren't easy prey, even the young ones. I recommend a spear and a horse. Or magic if you're capable of that.", 27 | "accepted": "Don't get yourself killed. It'd be a shame if we lost a potential new recruit.", 28 | "rejected": "Alright. I can understand not wanting to possibly die.", 29 | "inquire": "Do you have the fangs yet?", 30 | "success": "Hahaaa! That's good. You'll be a proper dragonslayer yet. I've even taken the time to write a letter of recommendation for you should you want to persue the career. Seek out one of the guild's lodges if you want to sign up.", 31 | "success_lie": "", 32 | "failure": "" 33 | } 34 | } 35 | ] -------------------------------------------------------------------------------- /npc stuff/combat/dragonslayers/retired dragonslayer npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "retired_dragonslayer", 5 | "name_suffix": "retired dragonslayer", 6 | "class": "NPC_DRAGONSLAYER", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_RETIRED_DRAGONSLAYER", 10 | "faction": "kingdom", 11 | "mission_offered": "MISSION_SLAY_YOUNG_DRAGON" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/combat/knights/TALK_NPC_STATIONED_KNIGHT.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_STATIONED_KNIGHT", 5 | "dynamic_line": [ "The lords have been placing us knights in places around the country just in case something bad happens.", "I know I have orders to report as soon as something bad happens but I can't simply ride off while there's a massacre at my back.", "I'm glad there are guards around here too. We can usually take care of something on our own but backup is always appreciated.", "I wish my squire was here. They always could polish this armour just right to make it truly gleam.", "Don't worry, if I see any monsters I'll take care of them.", "We're generally respected and revered, but some peasants will always have that glare that tells you some corrupt knight has wronged thme or their family in the past." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/combat/knights/stationed knight.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "stationed_knight", 5 | "name_suffix": "stationed knight", 6 | "class": "NPC_KNIGHT", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_STATIONED_KNIGHT", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/combat/mercenaries/TALK_MERCENARY_FRIENDLY.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_FRIENDLY_MERCENARY", 5 | "dynamic_line": [ "You're our buddy's pal, right? I'd love to see them again." ], 6 | "responses": [ 7 | { 8 | "text": "Let's go.", 9 | "topic": "TALK_DONE", 10 | "effect": "follow_only" 11 | } 12 | ] 13 | } 14 | ] -------------------------------------------------------------------------------- /npc stuff/combat/mercenaries/mercenaries.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "mercenary_friendly", 5 | "name_suffix": "mercenary", 6 | "class": "NPC_GUARD", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_FRIENDLY_MERCENARY", 10 | "faction": "kingdom" 11 | } 12 | ] -------------------------------------------------------------------------------- /npc stuff/combat/rogues/TALK_NPC_GAMBLING_ROGUE.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_GAMBLING_ROGUE", 5 | "dynamic_line": [ "Two threes. Pfft. What were they thinking? Never saw me pull that ace out of my boot.", "Can't believe this sucker just bet a bag of silver.", "I'll be the winner here, just wait until I pull out my secret weapon.", "Hah! You'll never win with that hand.", "Anty up or get lost.", "Never a dull moment with this sucker around." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/combat/rogues/TALK_NPC_NAUGHTY_ROGUE.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_NAUGHTY_ROGUE", 5 | "dynamic_line": [ "Oh yeah, look at her go!", "I hope she does that thing I like.", "Too bad these girls aren't interested in a relationship.", "Coming all the way out here was definitely worth it.", "Yeah! Shake that!", "Good lord they're beautiful." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/combat/rogues/gambling rogue.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "gambling_rogue", 5 | "name_suffix": "gambler", 6 | "class": "NPC_ROGUE", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_GAMBLING_ROGUE", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/combat/rogues/naughty rogue.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "naughty_rogue", 5 | "name_suffix": "oggler", 6 | "class": "NPC_ROGUE", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_NAUGHTY_ROGUE", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/cultists/MISSION_OFFER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_CULT_JOBS", 4 | "//": "Not just for cult members, can apply to anyone using grammar or educated.", 5 | "type": "talk_topic", 6 | "dynamic_line": { 7 | "has_no_available_mission": { 8 | "has_no_assigned_mission": "There is nothing I need done.", 9 | "no": { "has_many_assigned_missions": "You've got enough to worry about. Do that first.", "no": "That is all for now." } 10 | }, 11 | "no": { 12 | "has_many_available_missions": { 13 | "has_no_assigned_mission": "There's a few things I need. Want to take them on?", 14 | "no": { 15 | "has_many_assigned_missions": "Are ya achin' for more work?", 16 | "no": "I have other things I need done, if you want." 17 | } 18 | }, 19 | "no": { 20 | "has_no_assigned_mission": "There's something I need done.", 21 | "no": { 22 | "has_many_assigned_missions": "There is more work, if you'd like.", 23 | "no": "I know of a certain thing someone could do, if yer interested." 24 | } 25 | } 26 | } 27 | }, 28 | "responses": [ 29 | { "text": "I see.", "topic": "TALK_NONE", "condition": "has_no_available_mission" }, 30 | { 31 | "text": "I'm listening.", 32 | "topic": "TALK_MISSION_OFFER", 33 | "condition": { "not": "has_no_available_mission" } 34 | }, 35 | { 36 | "text": "Perhaps another time.", 37 | "topic": "TALK_JOB_REJECTED" 38 | } 39 | ] 40 | }, 41 | { 42 | "id": "TALK_JOB_REJECTED", 43 | "type": "talk_topic", 44 | "dynamic_line": "It's fine, I can probably find someone else to do it.", 45 | "responses": [ 46 | { "text": "See ya.", "topic": "TALK_DONE" } 47 | ] 48 | } 49 | ] -------------------------------------------------------------------------------- /npc stuff/cultists/TALK_CULT_PROSPECT.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_NPC_CULT_PROSPECT", 4 | "type": "talk_topic", 5 | "dynamic_line": [ "Are you the one they sent here? " ], 6 | "responses": [ { "text": "Yes, I am", "topic": "TALK_NPC_CULT_PROSPECT_FOLLOW" } ] 7 | }, 8 | { 9 | "id": "TALK_NPC_CULT_PROSPECT_FOLLOW", 10 | "type": "talk_topic", 11 | "dynamic_line": [ "Clathic mul'gashma" ], 12 | "responses": [ { "text": "Let's go.", "topic": "TALK_DONE", "effect": "follow_only" } ] 13 | } 14 | ] -------------------------------------------------------------------------------- /npc stuff/cultists/elder cultists/TALK_CAPTAIN.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_CAPTAIN", 4 | "type": "talk_topic", 5 | "dynamic_line": [ "" ], 6 | "responses": [ { 7 | "text": ".", 8 | "topic": "TALK_GREET2" }, 9 | { 10 | "text": "What now, my liege?", 11 | "topic": "TALK_MISSION_OFFER", 12 | "condition": { "u_has_var": "joined_defenders", "type": "dialogue", "context": "captain" } 13 | }, 14 | { 15 | "text": "Can you teach me?", 16 | "topic": "TALK_TRAIN_FORCE", 17 | "condition": { "u_has_var": "TRAIN_ELIGEBLE", "type": "general", "context": "mission" } 18 | } ] 19 | }, 20 | { 21 | "id": "TALK_GREET2", 22 | "type": "talk_topic", 23 | "dynamic_line": [ "What do you need?" ], 24 | "responses": [ { 25 | "text": "Who are you?", 26 | "topic": "TALK_IDENTITY" }, 27 | { 28 | "text": "I gotta go.", 29 | "topic": "TALK_DONE" }, 30 | { 31 | "text": "What now, my liege?", 32 | "topic": "TALK_MISSION_OFFER", 33 | "condition": { "u_has_var": "joined_defenders", "type": "dialogue", "context": "captain" } 34 | }, 35 | { 36 | "text": "Can you teach me?", 37 | "topic": "TALK_TRAIN", 38 | "condition": { "u_has_var": "TRAIN_ELIGEBLE", "type": "general", "context": "mission" } 39 | } ] 40 | }, 41 | { 42 | "id": "TALK_IDENTITY", 43 | "type": "talk_topic", 44 | "dynamic_line": [ "I'm the captain of the guard here. I make sure nothing bad happens to us, that we're not found out; that sort of thing." ], 45 | "responses": [ { 46 | "text": "Is there any way I could join?", 47 | "topic": "TALK_CULT_JOBS", 48 | "condition": { "not": { "u_has_var": "joined_defenders", "type": "dialogue", "context": "captain" } }, 49 | "effect": { "u_add_var": "joined_defenders", "type": "dialogue", "context": "captain", "value": "yes" } }, 50 | { 51 | "text": "Hmm.", 52 | "topic": "TALK_NONE" } ] 53 | } 54 | ] -------------------------------------------------------------------------------- /npc stuff/cultists/elder cultists/TALK_DEFENDER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_DEFENDER", 4 | "type": "talk_topic", 5 | "dynamic_line": [ 6 | { "u_is_wearing": "cult_robes_ritual", "yes": "Greetings breathren. How goes the ritual?", "no": "" }, 7 | { "u_is_wearing": "cult_robes_priest", "yes": "Ah, Homage.", "no": "" }, 8 | { "u_is_wearing": "cult_robes_commune", "yes": "Communer... my honor.", "no": "" }, 9 | { "u_is_wearing": "cult_robes_elder", "yes": "Elder. *bows* How may I serve?", "no": "" }, 10 | { "u_is_wearing": "cult_robes_defender", "yes": "How art thou, fellow one-of-arms?", "no": "" } 11 | ], 12 | "responses": [ { "text": "", "topic": "TALK_DONE" } ] 13 | }, 14 | 15 | 16 | { 17 | "id": "TALK_DEFENDER_GATE", 18 | "//": "Custom dialouge for the gatekeeper.", 19 | "type": "talk_topic", 20 | "dynamic_line": [ { "u_has_var": "joined_cult", "type": "dialogue", "context": "cult", "value": "yes", "no": "This is private property, may you leave?", "yes": "" } ], 21 | "responses": [ { "text": "Okay.", "topic": "TALK_DONE" }, 22 | { "text": "Ahch' unto c' halls, ng kadishtu mgkadishtu.", 23 | "topic": "TALK_ENTER", 24 | "condition": { "u_has_mission": "MISSION_JOIN_CULT" } } ] 25 | }, 26 | { 27 | "id": "TALK_ENTER", 28 | "type": "talk_topic", 29 | "dynamic_line": [ "Welcome, through the doors. Vulgtmah!" ], 30 | "responses": [ { "text": "Vulgtmah!", 31 | "topic": "TALK_DONE", 32 | "effect": [ { "u_add_var": "joined_cult", "type": "dialogue", "context": "cult", "value": "yes" }, 33 | { "u_spawn_item": "cult_robes" } ] } ] 34 | } 35 | ] 36 | -------------------------------------------------------------------------------- /npc stuff/cultists/elder cultists/TALK_MEMBER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_MEMBER", 4 | "type": "talk_topic", 5 | "dynamic_line": [ "" ], 6 | "responses": [ { "text": " How are you?", "topic": "TALK_INQUIRY" } ] 7 | }, 8 | { 9 | "id": "TALK_INQUIRY", 10 | "type": "talk_topic", 11 | "dynamic_line": [ "Oh, feeling ." ], 12 | "responses": [ { "text": "Good.", "topic": "TALK_TOPICS" } ] 13 | }, 14 | { 15 | "id": "TALK_INSULT", 16 | "type": "talk_topic", 17 | "dynamic_line": [ "You ." ], 18 | "responses": [ { "text": "...", "topic": "TALK_DONE" } ] 19 | }, 20 | { 21 | "id": "TALK_TOPICS", 22 | "type": "talk_topic", 23 | "dynamic_line": [ "So, what can I do for you?" ], 24 | "responses": [ { "text": "Oh, nothing", "topic": "TALK_DONE" }, 25 | { "text": "What is your opinion upon this place?", "topic": "TALK_THOUGHTS" } ] 26 | }, 27 | { 28 | "id": "TALK_THOUGHTS", 29 | "type": "talk_topic", 30 | "dynamic_line": [ "I feel like I belong, like I've found some greater purpose in life." ], 31 | "responses": [ { "text": "Hmmm.", "topic": "TALK_NONE" } ] 32 | } 33 | ] -------------------------------------------------------------------------------- /npc stuff/cultists/elder cultists/TALK_ONOCTI.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_ONOCTI", 4 | "type": "talk_topic", 5 | "dynamic_line": [ "" ], 6 | "responses": [ { "text": " How are you?", "topic": "TALK_INQUIRY2" } ] 7 | }, 8 | { 9 | "id": "TALK_INQUIRY2", 10 | "type": "talk_topic", 11 | "dynamic_line": [ "Oh, feeling ." ], 12 | "responses": [ { "text": "That is wonderful.", "topic": "TALK_TOPICS2" } ] 13 | }, 14 | { 15 | "id": "TALK_TOPICS2", 16 | "type": "talk_topic", 17 | "dynamic_line": [ "So, what can I do for you?" ], 18 | "responses": [ 19 | { "text": "I noticed your robes are decorated. What do you do?", "topic": "TALK_JOB" }, 20 | { "text": "", "topic": "TALK_DONE" }, 21 | { "text": "What is your opinion upon this place?", "topic": "TALK_OPINION2" } ] 22 | }, 23 | { 24 | "id": "TALK_OPINION2", 25 | "type": "talk_topic", 26 | "dynamic_line": [ "It seems quite nice. I have been a memeber for some time now, and everyone here is absolutley wonderful. I feel like I belong. Besides, I even aid within our rituals." ], 27 | "responses": [ { "text": "Hmmm.", "topic": "TALK_NONE" }, 28 | { "text": "Rituals?", "topic": "TALK_JOB" } ] 29 | }, 30 | { 31 | "id": "TALK_JOB", 32 | "type": "talk_topic", 33 | "dynamic_line": [ "I am responsible for aiding the Homages in sacrificing to the elder ones. I prepare the altar and sacrifice beforehand, gather The Blood, and clean afterwards." ], 34 | "responses": [ { "text": "Interesting.", "topic": "TALK_TOPICS2" }, 35 | { "text": "What sort of sacrifice?", "topic": "TALK_ONOCTI_SACRIFICE" } ] 36 | }, 37 | { 38 | "id": "TALK_ONOCTI_SACRIFICE", 39 | "type": "talk_topic", 40 | "dynamic_line": [ "That's all I know. You should talk to the Homage." ], 41 | "responses": [ { "text": "Thank you.", "topic": "TALK_TOPICS2" }, { "text": "", "topic": "TALK_DONE" } ] 42 | } 43 | ] -------------------------------------------------------------------------------- /npc stuff/cultists/elder cultists/TALK_RECRUITER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "TALK_RECRUITER", 4 | "type": "talk_topic", 5 | "dynamic_line": [ "Hello" ], 6 | "responses": [ { "text": "Hello. What are you doing?", "topic": "TALK_ACTIVITY" } ] 7 | }, 8 | { 9 | "id": "TALK_ACTIVITY", 10 | "type": "talk_topic", 11 | "dynamic_line": [ "Nothing much, really. Would you like to know something?" ], 12 | "responses": [ { "text": "Yes, I would.", "topic": "TALK_CULT2" }, 13 | { "text": "No thanks.", "topic": "TALK_NO" } ] 14 | }, 15 | { 16 | "id": "TALK_NO", 17 | "type": "talk_topic", 18 | "dynamic_line": [ "Well, what a shame. Enjoy your day." ], 19 | "responses": [ { "text": "You too.", "topic": "TALK_DONE" } ] 20 | }, 21 | { 22 | "id": "TALK_CULT2", 23 | "type": "talk_topic", 24 | "dynamic_line": [ "Have you heard any rumours of a cult afoot? Going about, recruiting new members and whatnot?" ], 25 | "responses": [ { "text": "Yes, I have.", "topic": "TALK_CULT3" } ] 26 | }, 27 | { 28 | "id": "TALK_CULT3", 29 | "type": "talk_topic", 30 | "dynamic_line": [ "Well, the rumours are mostly false. They don't kidnap people and sacrifice them, nor are they evil. They are, however, quite secretive about their organization." ], 31 | "responses": [ { "text": "Go on.", "topic": "TALK_CULT4" } ] 32 | }, 33 | { 34 | "id": "TALK_CULT4", 35 | "type": "talk_topic", 36 | "dynamic_line": [ "From curiosity, would you ever wish to join one like it?" ], 37 | "responses": [ 38 | { "text": "Yes.", "topic": "TALK_MISSION_LIST" }, 39 | { "text": "No.", "topic": "TALK_CULT_DISMISSAL" } ] 40 | }, 41 | { 42 | "id": "TALK_CULT_DISMISSAL", 43 | "type": "talk_topic", 44 | "dynamic_line": [ "Seems reasonable. I've gotta go." ], 45 | "responses": [ { "text": "Goodbye.", "topic": "TALK_DONE" } ] 46 | }, 47 | { 48 | "type": "talk_topic", 49 | "id": "TALK_CULT4", 50 | "responses": [ 51 | { 52 | "text": "About the directions...", 53 | "topic": "TALK_MISSION_INQUIRE", 54 | "condition": { "u_has_mission": "MISSION_JOIN_CULT" } 55 | }, 56 | { 57 | "text": "About those various directions...", 58 | "topic": "TALK_MISSION_LIST_ASSIGNED", 59 | "condition": { "u_has_mission": "MISSION_JOIN_CULT" } 60 | } 61 | ] 62 | } 63 | ] -------------------------------------------------------------------------------- /npc stuff/cultists/fiend cultists/TALK_FIEND_MAGICIAN.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_CULT_MAGICIAN_FIEND", 5 | "dynamic_line": [ "Welcome to the library, what is it you desire?" ], 6 | "responses": [ 7 | { 8 | "text": "Would you be willing to share any of your books?", 9 | "effect": "start_trade", 10 | "topic": "TALK_DONE" 11 | }, 12 | { 13 | "text": "Is there anything you need?", 14 | "topic": "TALK_CULT_JOBS" 15 | } 16 | ] 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /npc stuff/erotic/dancers/TALK_NPC_EXCITED_DANCER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_EXCITED_DANCER", 5 | "dynamic_line": [ "Look at what I can do everyone!", "Hehe, they're all staring at me.", "This job is so much fun!", "Are you having fun? I sure am!", "Twirling, twirling, twirling on the pole.", "The cheers when I take everything off gives me all kinds of tinglies." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/erotic/dancers/TALK_NPC_NERVOUS_DANCER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_NERVOUS_DANCER", 5 | "dynamic_line": [ "I hope not all of the attention is on me.", "Geez, this is so embarassing.", "Why must they pull those faces when I bend over.", "Can't wait for my shift to end.", "Do you, um... like it when I shake these?", "I hope I don't slip on the pole." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/erotic/dancers/TALK_NPC_TEASING_DANCER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_TEASING_DANCER", 5 | "dynamic_line": [ "Oh, you like it when my pants slip just a little bit lower than usual, huh?", "Jiggle, jiggle, hehe, keep you hands off the merchandise.", "Every now and then I slip one more string loose.", "Oooh, you like that?", "If you slip a little something my way I might give you a special dance. Hehe, might.", "The other girls would never have so little buttons fastened." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/erotic/dancers/excited dancer.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "excited_dancer", 5 | "name_suffix": "dancer", 6 | "class": "NPC_EROTIC", 7 | "gender": "female", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_EXCITED_DANCER", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/erotic/dancers/nervous dancer.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "nervous_dancer", 5 | "name_suffix": "dancer", 6 | "class": "NPC_EROTIC", 7 | "gender": "female", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_NERVOUS_DANCER", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/erotic/dancers/teasing dancer.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "teasing_dancer", 5 | "name_suffix": "dancer", 6 | "class": "NPC_EROTIC", 7 | "gender": "female", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_TEASING_DANCER", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/guards/TALK_NPC_BOUNCER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_BOUNCER", 5 | "dynamic_line": [ "If you cause any trouble in there you'll have me to deal with.", "Head on in, I aint stopping you.", "Count yourself lucky I'm only here as a 'just in case'." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/guards/TALK_NPC_CITY_GUARD.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_CITY_GUARD", 5 | "dynamic_line": [ "Don't cause any trouble now.", "You have my ear, citizen.", "My feet are getting numb from all this standing around.", "We'll be there if there's trouble.", "I hope the monsters stay far away from here.", "Taking an arrow to the knee is not fun, you know." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/guards/TALK_NPC_DRUNK_GUARD.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_DRUNK_GUARD", 5 | "dynamic_line": [ "Thereshh thish, hic, thing going on wit the monstersh we're wetchin' oot for. Hic, some gai inna roob wit a flag sheemsh ta be callin' tha shotsh. Vary shup-shushpicious. Shh, don't teal anyone I toldya. Shupposhed ta be secret.", "Wha-... wot're yoo lookin' at?", "Dun't bahther meh whin ahm drinkin'.", "Yoo peasants dun't know how gud ya got it. No one's gon'ta send ye off to sum cave in the middle of bleedin' heck nowhere tah tahngle wit sum orcs.", "Hrmrmhmm... hic.", "Moar, hic, mead!", "Damn gohblin just whouldn't, hic, stop screaming intah maah helment.", "Hunghnnn... my, hic, head." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/guards/TALK_NPC_HORSE_GUARD.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_HORSE_GUARD", 5 | "dynamic_line": [ "I hate guarding horses.", "Why am I on stable duty? It stinks.", "If only the captain wasn't so uptight about pranks.", "Seriously, who steals horses?", "If someone actually tried to steal a horse I probably wouldn't even care.", "They better not stick me on manure duty after this." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/guards/bouncer npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "bouncer", 5 | "name_suffix": "bouncer", 6 | "class": "NPC_BOUNCER", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_BOUNCER", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/guards/city guard npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "city_guard", 5 | "name_suffix": "guard", 6 | "class": "NPC_GUARD", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_CITY_GUARD", 10 | "faction": "kingdom" 11 | }, 12 | { 13 | "type": "npc", 14 | "id": "city_guard_captain", 15 | "name_suffix": "guard", 16 | "class": "NPC_GUARD", 17 | "attitude": 0, 18 | "mission": 3, 19 | "chat": "TALK_NPC_GUARD_CAPTIAN", 20 | "faction": "kingdom", 21 | "mission_offered": [ "MISSION_SLAY_SLIMES_ON_ROAD_RECURRING", "MISSION_SLAY_GOBLINS_IN_FOREST_RECURRING" ] 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /npc stuff/guards/drunk city guard npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "drunk_city_guard", 5 | "name_suffix": "guard", 6 | "class": "NPC_GUARD", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_DRUNK_GUARD", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/guards/horse guard npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "horse_guard", 5 | "name_suffix": "guard", 6 | "class": "NPC_GUARD", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_HORSE_GUARD", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/guild masters/TALK_GUILD_MASTER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_GUILD_MASTER", 5 | "dynamic_line": [ "Hello there. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_GUILD_MASTER_WHO" 10 | }, 11 | { 12 | "text": "Does the guild need anything done?", 13 | "topic": "TALK_CULT_JOBS" , 14 | "condition": { "npc_has_var": "u_joined_guild_chapter", "type": "general", "context": "mission" } 15 | }, 16 | { 17 | "text": "Goodbye.", 18 | "topic": "TALK_DONE" 19 | } 20 | ] 21 | }, 22 | { 23 | "type": "talk_topic", 24 | "id": "TALK_NPC_GUILD_MASTER_WHO", 25 | "dynamic_line": [ "Me? I'm the guild master of this chapter. I manage the supplies and mettings in this area." ], 26 | "responses": [ 27 | { 28 | "text": "Do you think I could join the guild?", 29 | "topic": "TALK_NPC_GUILD_MASTER_JOIN", 30 | "condition": { "not": { "npc_has_var": "u_joined_guild_chapter", "type": "general", "context": "mission" } } 31 | }, 32 | { 33 | "text": "Wow.", 34 | "topic": "TALK_DONE" 35 | } 36 | ] 37 | }, 38 | { 39 | "type": "talk_topic", 40 | "id": "TALK_NPC_GUILD_MASTER_JOIN", 41 | "dynamic_line": [ "That requires a process of application, along with a membership fee. Bring me 25 silver, and you're a member." ], 42 | "responses": [ 43 | { 44 | "text": "Sure.", 45 | "topic": "TALK_DONE", 46 | "effect": [ { "add_mission": "MISSION_JOIN_GUILD" } ] 47 | }, 48 | { 49 | "text": "No thanks.", 50 | "topic": "TALK_DONE" 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /npc stuff/guild masters/guild masters.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "brewer_guild_master", 5 | "class": "NPC_MALE_CITIZEN", 6 | "attitude": 0, 7 | "mission": 3, 8 | "chat": "TALK_NPC_GUILD_MASTER", 9 | "mission_offered": [ "MISSION_HOLY_SYMBOL", "MISSION_SAINT_BENEVOLENCE" ], 10 | "faction": "kingdom" 11 | } 12 | ] -------------------------------------------------------------------------------- /npc stuff/guild masters/missions.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "MISSION_JOIN_GUILD", 4 | "type": "mission_definition", 5 | "name": "Membership", 6 | "description": "Provide the entry fee to the guild master. (25 silver)", 7 | "goal": "MGOAL_FIND_ITEM", 8 | "item": "silver_coin", 9 | "count": 25, 10 | "difficulty": 1, 11 | "value": 1, 12 | "origins": [ "ORIGIN_OPENER_NPC" ], 13 | "end": { "effect": [ 14 | { "npc_add_var": "u_joined_guild_chapter", "type": "general", "context": "mission", "value": "yes" } 15 | ] }, 16 | "has_generic_rewards": false, 17 | "dialogue": { 18 | "describe": "Go get some paper.", 19 | "offer": "I need more paper. Bring me some, I'll pay you for your troubles.", 20 | "advice": "Just buy paper, and bring it here.", 21 | "accepted": "Good.", 22 | "rejected": "Someone must do it.", 23 | "inquire": "Do you have what I need?", 24 | "success": "Thank you. Just sign here.", 25 | "success_lie": "Where's the money?", 26 | "failure": "Ah well." 27 | } 28 | } 29 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/farmers/NPC_FARMERS.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc_class", 4 | "id": "NPC_FARMER", 5 | "name": { "str": "Farmer" }, 6 | "job_description": "I own or work a farm.", 7 | "traits": [ 8 | { "group": "NPC_starting_traits" }, 9 | { "group": "BG_story_COMMON" }, 10 | { "group": "Appearance_demographics" } 11 | ], 12 | "bonus_str": { "rng": [ 2, 3 ] }, 13 | "bonus_dex": { "rng": [ 0, 2 ] }, 14 | "bonus_int": { "rng": [ 0, 2 ] }, 15 | "bonus_per": { "rng": [ 0, 2 ] }, 16 | "worn_override": "NPC_male_citizen_worn", 17 | "weapon_override": "NPC_farmer_wield", 18 | "skills": [ 19 | { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "rng": [ -1, -2 ] } ] } ] } } 20 | ] 21 | } 22 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/farmers/TALK_FARMHAND.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_FARMHAND_INTRO", 5 | "dynamic_line": [ "Hello there." ], 6 | "responses": [ 7 | { 8 | "text": "Goodbye.", 9 | "topic": "TALK_DONE" 10 | }, 11 | { 12 | "text": "Who are you?.", 13 | "topic": "TALK_NPC_FARMHAND_WHO" 14 | } 15 | ] 16 | }, 17 | { 18 | "type": "talk_topic", 19 | "id": "TALK_NPC_FARMHAND_WHO", 20 | "dynamic_line": [ "Oh, I work ere' on this land you see. We grow a variety of crops. Without us, this farm would go under, the harvest rot in the fields. It's the little guys that count, ya know." ], 21 | "responses": [ 22 | { 23 | "text": "Wow.", 24 | "topic": "TALK_DONE" 25 | }, 26 | { 27 | "text": "How do I get on?", 28 | "topic": "TALK_NPC_FARMHAND_JOB" 29 | } 30 | ] 31 | }, 32 | { 33 | "type": "talk_topic", 34 | "id": "TALK_NPC_FARMHAND_JOB", 35 | "dynamic_line": [ "Well, its ard' work, this farmin' we do. There's several of us just for this one field ya see. The boss is in his house, if yer still interested." ], 36 | "responses": [ 37 | { 38 | "text": "Thank you.", 39 | "topic": "TALK_NPC_FARMHAND_DONE" 40 | } 41 | ] 42 | }, 43 | { 44 | "type": "talk_topic", 45 | "id": "TALK_NPC_FARMHAND_DONE", 46 | "dynamic_line": [ "Were ya gonna say somthin' else?" ], 47 | "responses": [ 48 | { 49 | "text": "No, goodbye.", 50 | "topic": "TALK_DONE" 51 | }, 52 | { 53 | "text": "Who did you say you were?", 54 | "topic": "TALK_NPC_FARMHAND_WHO" 55 | } 56 | ] 57 | } 58 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/farmers/TALK_RANCHAND.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_RANCHHAND_INTRO", 5 | "dynamic_line": [ "Hello there." ], 6 | "responses": [ 7 | { 8 | "text": "Goodbye.", 9 | "topic": "TALK_DONE" 10 | }, 11 | { 12 | "text": "Who are you?.", 13 | "topic": "TALK_NPC_RANCHHAND_WHO" 14 | } 15 | ] 16 | }, 17 | { 18 | "type": "talk_topic", 19 | "id": "TALK_NPC_RANCHHAND_WHO", 20 | "dynamic_line": [ "Oh, I work ere' on this land you see. We keep livestock. Without us, this ranch would go under, cows unmilked. It's the little guys that count, ya know." ], 21 | "responses": [ 22 | { 23 | "text": "Wow.", 24 | "topic": "TALK_DONE" 25 | }, 26 | { 27 | "text": "How do I get on?", 28 | "topic": "TALK_NPC_RANCHHAND_JOB" 29 | } 30 | ] 31 | }, 32 | { 33 | "type": "talk_topic", 34 | "id": "TALK_NPC_RANCHHAND_JOB", 35 | "dynamic_line": [ "Well, its ard' work, this ranchin' we do. There's several of us just for this one pasture ya see. The boss is in his house, if yer still interested." ], 36 | "responses": [ 37 | { 38 | "text": "Thank you.", 39 | "topic": "TALK_NPC_RANCHHAND_DONE" 40 | } 41 | ] 42 | }, 43 | { 44 | "type": "talk_topic", 45 | "id": "TALK_NPC_RANCHHAND_DONE", 46 | "dynamic_line": [ "Were ya gonna say somthin' else?" ], 47 | "responses": [ 48 | { 49 | "text": "No, goodbye.", 50 | "topic": "TALK_DONE" 51 | }, 52 | { 53 | "text": "Who did you say you were?", 54 | "topic": "TALK_NPC_RANCHHAND_WHO" 55 | } 56 | ] 57 | } 58 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/farmers/farmers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "farmer_mtc", 5 | "name_suffix": "farmer", 6 | "class": "NPC_FARMER", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_FARMER_INTRO", 10 | "mission_offered": "MISSION_GET_LOGS", 11 | "faction": "kingdom" 12 | }, 13 | { 14 | "type": "npc", 15 | "id": "farmhand_mtc", 16 | "name_suffix": "farmhand", 17 | "class": "NPC_FARMER", 18 | "attitude": 0, 19 | "mission": 3, 20 | "chat": "TALK_NPC_FARMHAND_INTRO", 21 | "faction": "kingdom" 22 | }, 23 | { 24 | "type": "npc", 25 | "id": "rancher_mtc", 26 | "name_suffix": "rancher", 27 | "class": "NPC_FARMER", 28 | "attitude": 0, 29 | "mission": 3, 30 | "chat": "TALK_NPC_RANCHER_INTRO", 31 | "mission_offered": "MISSION_GET_LOGS", 32 | "faction": "kingdom" 33 | }, 34 | { 35 | "type": "npc", 36 | "id": "ranchhand_mtc", 37 | "name_suffix": "ranchand", 38 | "class": "NPC_FARMER", 39 | "attitude": 0, 40 | "mission": 3, 41 | "chat": "TALK_NPC_RANCHHAND_INTRO", 42 | "faction": "kingdom" 43 | } 44 | ] 45 | -------------------------------------------------------------------------------- /npc stuff/menial and common/farmers/missions.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "MISSION_FARMER_TEST", 4 | "type": "mission_definition", 5 | "name": "Workman's Trial", 6 | "description": "Get some wood (15 logs).", 7 | "goal": "MGOAL_FIND_ITEM", 8 | "item": "log", 9 | "count": 15, 10 | "difficulty": 1, 11 | "value": 1, 12 | "deadline_low": 3, 13 | "deadline_high": 3, 14 | "origins": [ "ORIGIN_OPENER_NPC" ], 15 | "start": { "effect": [ 16 | { "u_spawn_item": "ax" } 17 | ] }, 18 | "end": { "effect": [ 19 | { "npc_add_var": "u_hired", "type": "general", "context": "mission", "value": "yes" }, 20 | { "u_sell_item": "ax" } 21 | ] }, 22 | "has_generic_rewards": false, 23 | "dialogue": { 24 | "describe": "Go get some logs.", 25 | "offer": "This'll see if you've got the stuff for me. Take this axe, and go chop me 15 logs. You've got three days to do it.", 26 | "advice": "Don't lose that axe.", 27 | "accepted": "Good.", 28 | "rejected": "Guess you don't got the stuff, eh?", 29 | "inquire": "Where's it?", 30 | "success": "Good job. Welcome to the team. I'll need my ax back, by the way.", 31 | "success_lie": "", 32 | "failure": "I guess you couldn't do it. Better luck next time." 33 | } 34 | } 35 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/fishers/TALK_NPC_GENERIC_FISHER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_GENERIC_FISHER", 5 | "dynamic_line": [ "Ah, fishin'. Aint nothin' better.", "When the boats come in the fish tend to be scared away.", "What I'd give to sail the seas once more.", "Might catch a big one today.", "Remember a hat when you go fishing. Don't want the sun beating down on ya too hard.", "Fishing is like farming, but less work." ], 6 | "responses": [ 7 | { 8 | "text": "Need any help?", 9 | "topic": "TALK_MISSION_OFFER", 10 | "condition": { "not": "has_assigned_mission" } 11 | }, 12 | { 13 | "text": "...", 14 | "topic": "TALK_DONE" 15 | } 16 | ] 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /npc stuff/menial and common/fishers/generic fisher npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_fisher", 5 | "name_suffix": "fisher", 6 | "class": "NPC_FISHER", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_GENERIC_FISHER", 10 | "faction": "kingdom", 11 | "mission_offered": [ "MISSION_FISH" ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/menial and common/fishers/missions.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "MISSION_FISH", 4 | "type": "mission_definition", 5 | "name": "Fishing", 6 | "description": "Help the fisher with their haul.", 7 | "goal": "MGOAL_FIND_ITEM", 8 | "item": "fish", 9 | "count": 6, 10 | "difficulty": 1, 11 | "value": 1, 12 | "origins": [ "ORIGIN_OPENER_NPC" ], 13 | "followup": "MISSION_FISH", 14 | "start": { 15 | "assign_mission_target": { "om_terrain": "river", "reveal_radius": 1, "random": true, "search_range": 5, "min_distance": 1 }, 16 | "update_mapgen": { "place_monster": [ { "monster": "mon_fish_sbass", "pack_size": [ 1, 2 ], "x": 8, "y": 8, "target": true } ] } 17 | }, 18 | "end": { "effect": [ { "u_spawn_item": "silver_coin", "count": 3 } ] }, 19 | "has_generic_rewards": false, 20 | "dialogue": { 21 | "describe": "", 22 | "offer": "If you help me with the fishing I'll see to it that you're paid for the work. Job's done once you're finished cutting them up and bring me their fillets. 6 fillets should be enough.", 23 | "advice": "It's up to you how you're going to get their meat. If you want my advice for getting them without being one of them fish fellars though you're going to need a fishing rod and some bait.", 24 | "accepted": "I'll be here when you come back.", 25 | "rejected": "No skin off my nose. The fish aren't going anywhere.", 26 | "inquire": "Ya have those fillets?", 27 | "success": "Good going. Here's your pay.", 28 | "success_lie": "", 29 | "failure": "" 30 | } 31 | } 32 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/kitchenstaff/TALK_NPC_GENERIC_KITCHEN.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_GENERIC_KITCHEN", 5 | "dynamic_line": [ "If you don't mind I'd rather have my kitchen be free of obstacles as I work.", "Most don't realize the stresses that come with a culinary job.", "Please don't mess with any of the food or preperation stations in here.", "Every day slaving away over a hot stove or pot.", "Why do I wear this hat? Keeps the hair out of the food and feels fitting for some reason.", "There are so many recipes I want to try but work makes it almost impossible to experiment." ], 6 | "responses": [ 7 | { 8 | "text": "Okay.", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/menial and common/kitchenstaff/generic kitchen npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_kitchenstaff", 5 | "name_suffix": "kitchenstaff", 6 | "class": "NPC_KITCHEN", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_GENERIC_KITCHEN", 10 | "faction": "kingdom" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /npc stuff/menial and common/maids/TALK_NPC_GENERIC_MAID.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_GENERIC_MAID", 5 | "dynamic_line": [ "So many things to clean, so little time", "I know it might be tempting, but please don't look up my dress when I bend over to pick something up.", "Cleaning, cleaning... Hm hm hmm hmmmm hm hmmm...", "Oh my, the messes people leave behind.", "Might need a new duster soon. This one's getting ragged.", "Can't catch a break.", "Hmm... out of ingredients. I'll just have to pick some up for tonight's dish." ], 6 | "responses": [ 7 | { 8 | "text": "...", 9 | "topic": "TALK_DONE" 10 | } 11 | ] 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/menial and common/maids/generic maid npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_maid", 5 | "name_suffix": "maid", 6 | "class": "NPC_MAID", 7 | "gender": "female", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_GENERIC_MAID", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/menial and common/miners/TALK_MINE_BOSS.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_MINE_BOSS", 5 | "dynamic_line": [ "Hello, there. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_MINE_BOSS_WHO", 10 | "condition": { "not": { "npc_has_var": "u_hired", "type": "general", "context": "mission" } } 11 | }, 12 | { 13 | "text": "I have ore to sell.", 14 | "topic": "TALK_NPC_MINE_BOSS_TRADE", 15 | "condition": { "npc_has_var": "u_hired", "type": "general", "context": "mission" } 16 | }, 17 | { 18 | "text": "No.", 19 | "topic": "TALK_DONE" 20 | } 21 | ] 22 | }, 23 | { 24 | "type": "talk_topic", 25 | "id": "TALK_NPC_MINE_BOSS_WHO", 26 | "dynamic_line": [ "Oh, me? I'm the boss of this mine. I manage the finances, pay, and whatnot." ], 27 | "responses": [ 28 | { 29 | "text": "Are you looking for any help?", 30 | "topic": "TALK_NPC_MINE_BOSS_HELP" 31 | }, 32 | { 33 | "text": "Okay.", 34 | "topic": "TALK_DONE" 35 | } 36 | ] 37 | }, 38 | { 39 | "type": "talk_topic", 40 | "id": "TALK_NPC_MINE_BOSS_HELP", 41 | "dynamic_line": [ "Well, we could always use a new hand around here. I'll pay you a fair price for any ore you dig up. Just look at the walls." ], 42 | "responses": [ 43 | { 44 | "text": "Thanks.", 45 | "topic": "TALK_DONE", 46 | "effect": [ { "npc_add_var": "u_hired", "type": "general", "context": "mission", "value": "yes" } ] 47 | } 48 | ] 49 | }, 50 | { 51 | "type": "talk_topic", 52 | "id": "TALK_NPC_MINE_BOSS_TRADE", 53 | "dynamic_line": "Well, what have you brought me?", 54 | "//": "Will buy any ore.", 55 | "repeat_responses": { 56 | "for_item": [ 57 | "chunk_iron_ore", 58 | "chunk_copper_ore", 59 | "chunk_silver_ore" 60 | ], 61 | "response": { "text": "I have .", "topic": "TALK_DELIVER_ASK" } 62 | }, 63 | "responses": [ 64 | { "text": "I have nothing.", "topic": "TALK_DONE" } 65 | ] 66 | } 67 | ] -------------------------------------------------------------------------------- /npc stuff/menial and common/miners/miners.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_miner", 5 | "class": "NPC_MINER", 6 | "attitude": 0, 7 | "mission": 3, 8 | "chat": "TALK_NPC_GENERIC_CITIZEN", 9 | "faction": "kingdom" 10 | }, 11 | { 12 | "type": "npc", 13 | "id": "generic_mine_merchant", 14 | "class": "NPC_MINER", 15 | "attitude": 0, 16 | "mission": 3, 17 | "chat": "TALK_SHOPKEEPER_general", 18 | "faction": "kingdom" 19 | }, 20 | { 21 | "type": "npc", 22 | "id": "generic_mine_boss", 23 | "class": "NPC_MINER", 24 | "attitude": 0, 25 | "mission": 3, 26 | "chat": "TALK_NPC_MINE_BOSS", 27 | "faction": "kingdom" 28 | } 29 | ] 30 | -------------------------------------------------------------------------------- /npc stuff/menial and common/stall vendors/generic_stall_vendors.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "food_vendor", 5 | "name_suffix": "vendor", 6 | "class": "NPC_FOOD_VENDOR", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_SHOPKEEPER_general", 10 | "faction": "kingdom" 11 | }, 12 | { 13 | "type": "npc", 14 | "id": "ingredients_vendor", 15 | "name_suffix": "vendor", 16 | "class": "NPC_INGREDIENTS_VENDOR", 17 | "attitude": 0, 18 | "mission": 3, 19 | "chat": "TALK_SHOPKEEPER_general", 20 | "faction": "kingdom" 21 | }, 22 | { 23 | "type": "npc", 24 | "id": "jewelery_vendor", 25 | "name_suffix": "vendor", 26 | "class": "NPC_JEWELERY_VENDOR", 27 | "attitude": 0, 28 | "mission": 3, 29 | "chat": "TALK_SHOPKEEPER_general", 30 | "faction": "kingdom" 31 | }, 32 | { 33 | "type": "npc", 34 | "id": "trinket_vendor", 35 | "name_suffix": "vendor", 36 | "class": "NPC_TRINKET_VENDOR", 37 | "attitude": 0, 38 | "mission": 3, 39 | "chat": "TALK_SHOPKEEPER_general", 40 | "faction": "kingdom" 41 | }, 42 | { 43 | "type": "npc", 44 | "id": "potion_vendor", 45 | "name_suffix": "vendor", 46 | "class": "NPC_POTION_VENDOR", 47 | "attitude": 0, 48 | "mission": 3, 49 | "chat": "TALK_SHOPKEEPER_general", 50 | "faction": "kingdom" 51 | }, 52 | { 53 | "type": "npc", 54 | "id": "book_vendor", 55 | "name_suffix": "vendor", 56 | "class": "NPC_BOOK_VENDOR", 57 | "attitude": 0, 58 | "mission": 3, 59 | "chat": "TALK_SHOPKEEPER_general", 60 | "faction": "kingdom" 61 | } 62 | ] 63 | -------------------------------------------------------------------------------- /npc stuff/menial and common/wenches/generic wench npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_tavernwench", 5 | "name_suffix": "tavernwench", 6 | "class": "NPC_TAVERNWENCH", 7 | "gender": "female", 8 | "attitude": 0, 9 | "mission": 3, 10 | "chat": "TALK_NPC_GENERIC_TAVERNWENCH", 11 | "faction": "kingdom" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /npc stuff/religious/TALK_ACOLYTE.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_ACOLYTE", 5 | "dynamic_line": [ "Blessings unto you.", "May the gods guide you.", "Come to worship?", "Within this time, the divine shall prevail." ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_ACOLYTE_WHO" 10 | }, 11 | { 12 | "text": "Is there anything I can help you with?", 13 | "topic": "TALK_CULT_JOBS", 14 | "condition": { "u_has_var": "church_member", "type": "dialogue", "context": "mission" } 15 | }, 16 | { 17 | "text": "Goodbye.", 18 | "topic": "TALK_DONE" 19 | } 20 | ] 21 | }, 22 | { 23 | "type": "talk_topic", 24 | "id": "TALK_NPC_ACOLYTE_WHO", 25 | "dynamic_line": [ "I am an acolyte here, and I act as an intermediary between the gods. If you need any help in those regards, come to me." ], 26 | "responses": [ 27 | { 28 | "text": "Thanks.", 29 | "topic": "TALK_DONE" 30 | } 31 | ] 32 | } 33 | ] -------------------------------------------------------------------------------- /npc stuff/religious/TALK_CLERIC.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_CLERIC", 5 | "dynamic_line": [ "Hello. What is it you need?" ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_CLERIC_WHO" 10 | }, 11 | { 12 | "text": "What are we doing today?", 13 | "topic": "TALK_CULT_JOBS", 14 | "condition": { "npc_has_var": "u_hired", "type": "general", "context": "mission" } 15 | }, 16 | { 17 | "text": "Goodbye.", 18 | "topic": "TALK_DONE" 19 | } 20 | ] 21 | }, 22 | { 23 | "type": "talk_topic", 24 | "id": "TALK_NPC_CLERIC_WHO", 25 | "dynamic_line": [ "I'm a cleric, really. I oversee this cathedral which you stand in, and the acolytes are my associates. Here, we give praise to our gods." ], 26 | "responses": [ 27 | { 28 | "text": "How would somebody go about becoming an acolyte?", 29 | "topic": "TALK_NPC_CLERIC_CHURCH", 30 | "condition": { "not": { "npc_has_var": "u_hired", "type": "general", "context": "mission" } } 31 | }, 32 | { 33 | "text": "Who are the gods?", 34 | "topic": "TALK_GODS" 35 | }, 36 | { 37 | "text": "Thanks for the info.", 38 | "topic": "TALK_DONE" 39 | } 40 | ] 41 | }, 42 | { 43 | "type": "talk_topic", 44 | "id": "TALK_NPC_CLERIC_CHURCH", 45 | "dynamic_line": [ "Well, some people we take as apprentices at an early age, others are long-time parish members, and so on. Everyone here has a story of some sort." ], 46 | "responses": [ 47 | { 48 | "text": "Do you think I could join?", 49 | "topic": "TALK_NPC_CLERIC_RECRUIT" 50 | }, 51 | { 52 | "text": "Thanks for the info.", 53 | "topic": "TALK_DONE" 54 | } 55 | ] 56 | }, 57 | { 58 | "type": "talk_topic", 59 | "id": "TALK_NPC_CLERIC_RECRUIT", 60 | "dynamic_line": [ "I guess you could. If you don't know anything about the gods or what we do, I can teach you." ], 61 | "responses": [ 62 | { 63 | "text": "Thanks.", 64 | "topic": "TALK_DONE", 65 | "effect": [ { "npc_add_var": "u_hired", "type": "general", "context": "mission", "value": "yes" } ] 66 | } 67 | ] 68 | } 69 | ] -------------------------------------------------------------------------------- /npc stuff/religious/TALK_HOLY_SCROLLKEEPER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_CLERIC_SCROLLKEEPER", 5 | "dynamic_line": [ "Hello there. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "Who are you?", 9 | "topic": "TALK_NPC_CLERIC_SCROLLKEEPER_WHO" 10 | }, 11 | { 12 | "text": "May I purchase some of your texts?", 13 | "effect": "start_trade", 14 | "topic": "TALK_SOLD", 15 | "condition": { "u_has_var": "church_member", "type": "dialogue", "context": "mission" } 16 | }, 17 | { 18 | "text": "Goodbye.", 19 | "topic": "TALK_DONE" 20 | } 21 | ] 22 | }, 23 | { 24 | "type": "talk_topic", 25 | "id": "TALK_NPC_CLERIC_SCROLLKEEPER_WHO", 26 | "dynamic_line": [ "I'm the scribe of this church. I keep our books intact, handle artifacts, you know." ], 27 | "responses": [ 28 | { 29 | "text": "What about those scrolls over there. Do you think I could have any?", 30 | "topic": "TALK_NPC_CLERIC_SCROLLKEEPER_SELL" 31 | }, 32 | { 33 | "text": "Thanks for the info.", 34 | "topic": "TALK_DONE" 35 | } 36 | ] 37 | }, 38 | { 39 | "type": "talk_topic", 40 | "id": "TALK_NPC_CLERIC_SCROLLKEEPER_SELL", 41 | "dynamic_line": [ "Well; if you are a member of the church, I'd lend you some." ], 42 | "responses": [ 43 | { 44 | "text": "How do you propose I join?", 45 | "topic": "TALK_NPC_CLERIC_SCROLLKEEPER_JOIN" 46 | }, 47 | { 48 | "text": "Thanks.", 49 | "topic": "TALK_DONE" 50 | } 51 | ] 52 | }, 53 | { 54 | "type": "talk_topic", 55 | "id": "TALK_NPC_CLERIC_SCROLLKEEPER_JOIN", 56 | "dynamic_line": [ "Why don't you go see the priest. They might have some jobs for you to do, and you can get in that way." ], 57 | "responses": [ 58 | { 59 | "text": "Thanks.", 60 | "topic": "TALK_DONE" 61 | } 62 | ] 63 | } 64 | ] -------------------------------------------------------------------------------- /npc stuff/religious/acolytes.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "acolyte", 5 | "class": "NPC_ACOLYTE", 6 | "attitude": 0, 7 | "mission": 3, 8 | "chat": "TALK_NPC_ACOLYTE", 9 | "mission_offered": [ "MISSION_HOLY_SYMBOL", "MISSION_SAINT_BENEVOLENCE" ], 10 | "faction": "kingdom" 11 | }, 12 | { 13 | "type": "npc", 14 | "id": "cleric", 15 | "class": "NPC_ACOLYTE", 16 | "attitude": 0, 17 | "mission": 3, 18 | "chat": "TALK_NPC_CLERIC", 19 | "mission_offered": [ "MISSION_CLERIC_1" ], 20 | "faction": "kingdom" 21 | }, 22 | { 23 | "type": "npc", 24 | "id": "cleric_scribe", 25 | "class": "NPC_ACOLYTE_SCRIBE", 26 | "attitude": 0, 27 | "mission": 3, 28 | "chat": "TALK_NPC_CLERIC_SCROLLKEEPER", 29 | "faction": "kingdom" 30 | } 31 | ] -------------------------------------------------------------------------------- /npc stuff/snippets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "snippet", 4 | "category": "", 5 | "text": [ 6 | "fine", 7 | "wonderful", 8 | "good", 9 | "great", 10 | "superior", 11 | "virtuous" 12 | ] 13 | }, 14 | { 15 | "type": "snippet", 16 | "category": "", 17 | "text": [ 18 | "poor", 19 | "awful", 20 | "low", 21 | "ill", 22 | "unwell", 23 | "unpleasent" 24 | ] 25 | }, 26 | { 27 | "type": "snippet", 28 | "category": "", 29 | "//": "Friendly name pro-nouns and references", 30 | "text": [ 31 | "amigo", 32 | "comrade", 33 | "my good fellow", 34 | "lad", 35 | "mate", 36 | "my fellow nomad", 37 | "partner", 38 | "fellow being", 39 | "friend", 40 | "fellow traveler", 41 | "pal", 42 | "fella", 43 | "my dude", 44 | "buddy", 45 | "chum", 46 | "bruv" 47 | ] 48 | } 49 | ] -------------------------------------------------------------------------------- /npc stuff/tavernkeeps/generic/generic tavernkeep npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "generic_tavernkeep", 5 | "name_suffix": "tavernkeep", 6 | "class": "NPC_TAVERNKEEP", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_GENERIC_TAVERNKEEP", 10 | "faction": "kingdom", 11 | "mission_offered": [ "MISSION_SLAY_RATS_IN_BASEMENT", "MISSION_SLAY_SLIMES_ON_ROAD", "MISSION_SLAY_GOBLINS_IN_FOREST" ] 12 | }, 13 | { 14 | "type": "npc", 15 | "id": "generic_academy_tavernkeep", 16 | "name_suffix": "tavernkeep", 17 | "class": "NPC_TAVERNKEEP", 18 | "attitude": 0, 19 | "mission": 3, 20 | "chat": "TALK_NPC_GENERIC_TAVERNKEEP", 21 | "faction": "kingdom" 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /npc stuff/wizards/TALK_APPRENTICE.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_APPRENTICE_MAGE", 5 | "dynamic_line": [ "Hello there." ], 6 | "responses": [ 7 | { 8 | "text": "Hello.", 9 | "topic": "TALK_NEED" 10 | 11 | } 12 | ] 13 | }, 14 | { 15 | "type": "talk_topic", 16 | "id": "TALK_NEED", 17 | "dynamic_line": [ "What do you need?" ], 18 | "responses": [ 19 | { 20 | "text": "Who are you?", 21 | "topic": "TALK_MAGE" 22 | 23 | }, 24 | { 25 | "text": "Is there anything I can do for you?", 26 | "topic": "TALK_CULT_JOBS", 27 | "condition": { "npc_has_var": "known", "type": "dialogue", "context": "mage" } 28 | 29 | }, 30 | { 31 | "text": "Can you teach me anything?", 32 | "topic": "TALK_TRAIN", 33 | "condition": { "npc_has_var": "MAGE_APPRENTICE", "type": "general", "context": "mission" } 34 | 35 | }, 36 | { 37 | "text": "Is that a finished golem I see?", 38 | "topic": "TALK_NPC_APPRENTICE_MAGE_GOLEM", 39 | "condition": { "npc_has_var": "busy_with_something", "type": "general", "context": "mission" } 40 | }, 41 | { 42 | "text": "I gotta go.", 43 | "topic": "TALK_DONE" 44 | } 45 | ] 46 | }, 47 | { 48 | "id": "TALK_MAGE", 49 | "type": "talk_topic", 50 | "dynamic_line": [ "Oh, I'm an apprentice. I'm just learning magic, but one day I hope to delve deep into the arcane. Oh, how exciting!" ], 51 | "responses": [ { "text": "Hmm.", "topic": "TALK_NEED", "effect": { "npc_add_var": "known", "type": "dialogue", "context": "mage", "value": "yes" } }, 52 | { "text": "Could I help you?", "topic": "TALK_CULT_JOBS", "effect": { "npc_add_var": "known", "type": "dialogue", "context": "mage", "value": "yes" } } ] 53 | }, 54 | { 55 | "id": "TALK_NPC_APPRENTICE_MAGE_GOLEM", 56 | "type": "talk_topic", 57 | "dynamic_line": [ "I've done it! I've done it! I've done it! Finally, I have my clay golem! How can I possibly thank you?! Oh, I know! Take this, please. It's the least I can do." ], 58 | "responses": [ 59 | { 60 | "text": "Thank you", 61 | "topic": "TALK_DONE", 62 | "effect": [ { "u_buy_monster": "mon_clay_golem", "pacified": false }, { "u_spawn_item": "gold_coin", "count": 15 }, { "npc_lose_var": "busy_with_something", "type": "general", "context": "mission" } ] 63 | } 64 | ] 65 | } 66 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/academy/TALK_ACADEMY_APPRENTICE.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_ACADEMY_APPRENTICE", 5 | "dynamic_line": [ "Hello there." ], 6 | "responses": [ 7 | { 8 | "text": "Hello.", 9 | "topic": "TALK_YOUR_OPINION" 10 | 11 | } 12 | ] 13 | }, 14 | { 15 | "type": "talk_topic", 16 | "id": "TALK_YOUR_OPINION", 17 | "dynamic_line": [ "This is a nice place. Are you new here?" ], 18 | "responses": [ 19 | { 20 | "text": "Yes, I am.", 21 | "topic": "TALK_UNEW" 22 | 23 | }, 24 | { 25 | "text": "No, I'm not.", 26 | "topic": "TALK_UNOT" 27 | 28 | } 29 | ] 30 | }, 31 | { 32 | "type": "talk_topic", 33 | "id": "TALK_UNEW", 34 | "dynamic_line": [ "" ], 35 | "responses": [ 36 | { 37 | "text": "Thanks.", 38 | "topic": "TALK_DONE" 39 | 40 | } 41 | ] 42 | }, 43 | { 44 | "type": "talk_topic", 45 | "id": "TALK_UNOT", 46 | "dynamic_line": [ "Oh. In that case, could you help me with something?" ], 47 | "responses": [ 48 | { 49 | "text": "No, I'm busy.", 50 | "topic": "TALK_DONE" 51 | 52 | }, 53 | { 54 | "text": "Sure.", 55 | "topic": "TALK_CULT_JOBS" 56 | 57 | } 58 | ] 59 | } 60 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/academy/TALK_ACADEMY_INFUSIONIST.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_ACADEMY_INFUSIONIST", 5 | "dynamic_line": [ "Hello there. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "No.", 9 | "topic": "TALK_DONE" 10 | 11 | }, 12 | { 13 | "text": "Who are you?", 14 | "topic": "TALK_NPC_ACADEMY_INFUSIONIST_WHO", 15 | "condition": { "not": { "npc_has_var": "known", "type": "dialogue", "context": "mage" } } 16 | 17 | }, 18 | { 19 | "text": "I'd like to but something.", 20 | "topic": "TALK_SOLD", 21 | "effect": "start_trade", 22 | "condition": { "npc_has_var": "known", "type": "dialogue", "context": "mage" } 23 | 24 | }, 25 | { 26 | "text": "Is there anything I can do for you?", 27 | "topic": "TALK_CULT_JOBS", 28 | "condition": { "npc_has_var": "known", "type": "dialogue", "context": "mage" } 29 | 30 | } 31 | ] 32 | }, 33 | { 34 | "type": "talk_topic", 35 | "id": "TALK_NPC_ACADEMY_INFUSIONIST_WHO", 36 | "dynamic_line": [ "Oh, I'm just a student here. I've been taking courses of infusion, and I've got a lot of leftovers from my work. The teacher told me I could use this room to sell off the products for some profit; it helps fund our classes, you see." ], 37 | "responses": [ 38 | { 39 | "text": "Hmm.", 40 | "topic": "TALK_DONE", 41 | "effect": [ 42 | { "npc_add_var": "known", "type": "dialogue", "context": "mage", "value": "yes" } 43 | ] 44 | 45 | } 46 | ] 47 | } 48 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/academy/TALK_ACADEMY_LIBRARIAN.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_ACADEMY_LIBRARIAN", 5 | "dynamic_line": [ "Greetings, welcome to my library. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "No.", 9 | "topic": "TALK_DONE" 10 | }, 11 | { 12 | "text": "Who are you?", 13 | "topic": "TALK_NPC_ACADEMY_LIBRARIAN_WHO" 14 | }, 15 | { 16 | "text": "Could I loan some of your books?", 17 | "effect": "start_trade", 18 | "topic": "TALK_SOLD" 19 | } 20 | ] 21 | }, 22 | { 23 | "type": "talk_topic", 24 | "id": "TALK_NPC_ACADEMY_LIBRARIAN_WHO", 25 | "dynamic_line": [ "I'm the librarian here. The students need research materials for their classes, and they come to me for it." ], 26 | "responses": [ 27 | { 28 | "text": "Hmm.", 29 | "topic": "TALK_DONE" 30 | } 31 | ] 32 | } 33 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/academy/TALK_FOURTH_YEAR_INSTRUCTOR.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_INSTRUCTOR_Y4", 5 | "dynamic_line": [ "Greetings. Can I help you with anything?" ], 6 | "responses": [ 7 | { 8 | "text": "No, thanks.", 9 | "topic": "TALK_DONE" 10 | }, 11 | { 12 | "text": "Who are you?", 13 | "topic": "TALK_INSTRUCTOR_Y4_WHO" 14 | }, 15 | { 16 | "text": "Don't we have lessons today?", 17 | "topic": "TALK_CULT_JOBS", 18 | "condition": { "npc_has_var": "u_in_class", "type": "general", "context": "mission" } 19 | }, 20 | { 21 | "text": "I'm ready to take my final test.", 22 | "topic": "TALK_FINAL_LESSON", 23 | "condition": { "and": [ { "npc_has_var": "u_in_class", "type": "general", "context": "mission" }, { "u_has_skill": { "skill": "spellcraft", "level": 4 } } ] } 24 | } 25 | ] 26 | }, 27 | { 28 | "type": "talk_topic", 29 | "id": "TALK_INSTRUCTOR_Y4_WHO", 30 | "dynamic_line": [ "Oh. I'm the fourth year instructor here. I teach our senior students." ], 31 | "responses": [ 32 | { 33 | "text": "Hmm.", 34 | "topic": "TALK_INSTRUCTOR_Y4" 35 | }, 36 | { 37 | "text": "I think I'm in your class.", 38 | "topic": "TALK_CLASS", 39 | "condition": { "u_has_items": { "item": "fourth_enrollment_slip", "count": 1 } }, 40 | "effect": [ { "u_sell_item": "fourth_enrollment_slip", "count": 1 } ] 41 | } 42 | ] 43 | }, 44 | { 45 | "type": "talk_topic", 46 | "id": "TALK_FINAL_LESSON", 47 | "dynamic_line": [ "For your final test as a wizard, I need you to enter the maze below, and find the charm of passage. The stairs are at the end of the hall. Use your magic to guide you, and you should succeed. Think you can do it?" ], 48 | "responses": [ 49 | { 50 | "text": "I'm ready.", 51 | "topic": "TALK_DONE", 52 | "effect": [ { "add_mission": "MISSION_FINAL_LESSON" } ] 53 | }, 54 | { 55 | "text": "Nah.", 56 | "topic": "TALK_INSTRUCTOR_Y4" 57 | } 58 | ] 59 | } 60 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/druids/TALK_DRUID_MASTER.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "talk_topic", 4 | "id": "TALK_NPC_DRUID_MASTER", 5 | "dynamic_line": [ "Greetings. What brings you all the way out here?" ], 6 | "responses": [ 7 | { 8 | "text": "Nothing", 9 | "topic": "TALK_DONE" 10 | }, 11 | { 12 | "text": "Who are you?", 13 | "topic": "TALK_NPC_DRUID_MASTER_WHO" 14 | } 15 | ] 16 | }, 17 | { 18 | "type": "talk_topic", 19 | "id": "TALK_NPC_DRUID_MASTER_WHO", 20 | "dynamic_line": [ "I'm simply a druid, and these are my associates. I'm part of a circle, you see. We are considered masters of druidism and its practices." ], 21 | "responses": [ 22 | { 23 | "text": "Amazing.", 24 | "topic": "TALK_DONE" 25 | }, 26 | { 27 | "text": "Why are you sitting in the middle of nowhere?", 28 | "topic": "TALK_NPC_DRUID_MASTER_CIRCLE" 29 | }, 30 | { 31 | "text": "Is there anything I can do for you?", 32 | "topic": "TALK_CULT_JOBS" 33 | } 34 | ] 35 | }, 36 | { 37 | "type": "talk_topic", 38 | "id": "TALK_NPC_DRUID_MASTER_CIRCLE", 39 | "dynamic_line": [ "Our practice revolves around our connection to nature, and I have found that being around nature helps that." ], 40 | "responses": [ 41 | { 42 | "text": "Hmm.", 43 | "topic": "TALK_DONE" 44 | } 45 | ] 46 | } 47 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/druids/druids.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "npc", 4 | "id": "druid_master", 5 | "name_suffix": "druid", 6 | "class": "NPC_DRUID_MASTER", 7 | "attitude": 0, 8 | "mission": 3, 9 | "chat": "TALK_NPC_DRUID_MASTER", 10 | "faction": "kingdom" 11 | } 12 | ] -------------------------------------------------------------------------------- /npc stuff/wizards/druids/missions.json: -------------------------------------------------------------------------------- 1 | [ ] -------------------------------------------------------------------------------- /npc stuff/wizards/mage_snippets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "snippet", 4 | "category": "", 5 | "text": [ 6 | "When casting a spell; any spell, make sure you have everything you need to cast it. Some don't take as long, and are good when you need their effects fast, or don't have time for a long ritual.", 7 | "Don't try casting long rituals in the thick of combat. Not only will the enermy attack you, but you can't defend yourself when doing that. I hear evocation magic is rather fast, though.", 8 | "Try and prioritize what magic you need. You only have so much mana at once.", 9 | "Don't go throwing out evocation magic in the middle of town...It never ends well.", 10 | "If you like making your own stuff, I'd recommend the infusion classes. It's so much fun making a magic sword!", 11 | "The alchemist loves their plants. I heard that you can find these out in the wild. Mabey I should go sometime.", 12 | "Have you ever heard of sigils? They're magical traps that trip when you step on them. Keep an eye out when you're combing ruins next time." 13 | ] 14 | } 15 | ] -------------------------------------------------------------------------------- /recipies/chemicals.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "ink", 4 | "type": "recipe", 5 | "activity_level": "LIGHT_EXERCISE", 6 | "category": "CC_CHEM", 7 | "subcategory": "CSC_CHEM_OTHER", 8 | "skill_used": "survival", 9 | "difficulty": 2, 10 | "skills_required": [ "chemistry", 1 ], 11 | "time": "30 m", 12 | "batch_time_factors": [ 70, 4 ], 13 | "autolearn": true, 14 | "book_learn": [ [ "textbook_survival", 1 ], [ "survival_book", 1 ] ], 15 | "qualities": [ { "id": "COOK", "level": 2 } ], 16 | "tools": [ [ [ "surface_heat", 3, "LIST" ] ] ], 17 | "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "egg_chicken", 1 ] ], [ [ "honeycomb", 1 ] ], [ [ "ash", 10 ] ] ] 18 | } 19 | ] -------------------------------------------------------------------------------- /recipies/deconstruct/deconstruct.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "broken_clay_golem", 4 | "type": "uncraft", 5 | "activity_level": "fake", 6 | "skill_used": "fabrication", 7 | "difficulty": 1, 8 | "time": "4 h", 9 | "qualities": [ { "id": "HAMMER", "level": 1 } ], 10 | "components": [ [ [ "clay_lump", 231 ] ] ] 11 | }, 12 | { 13 | "result": "broken_stone_golem", 14 | "type": "uncraft", 15 | "activity_level": "fake", 16 | "skill_used": "fabrication", 17 | "difficulty": 1, 18 | "time": "4 h", 19 | "qualities": [ { "id": "HAMMER", "level": 1 } ], 20 | "components": [ [ [ "rock", 231 ] ] ] 21 | }, 22 | { 23 | "result": "broken_iron_golem", 24 | "type": "uncraft", 25 | "activity_level": "fake", 26 | "skill_used": "fabrication", 27 | "difficulty": 2, 28 | "time": "6 h", 29 | "qualities": [ { "id": "HAMMER", "level": 2 } ], 30 | "components": [ [ [ "steel_lump", 231 ] ] ] 31 | } 32 | ] -------------------------------------------------------------------------------- /recipies/magic items/magic_chemicals.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "magic_ink", 4 | "type": "recipe", 5 | "category": "CC_ARCANE", 6 | "subcategory": "CSC_ARCANE_OTHER", 7 | "skill_used": "spellcraft", 8 | "skills_required": [ "spellcraft", 2 ], 9 | "difficulty": 2, 10 | "time": "15 m", 11 | "book_learn": [ [ "infusion_basic", 1 ] ], 12 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 13 | "components": [ [ [ "crystallized_mana", 100 ] ], [ [ "ink", 1 ] ] ], 14 | "proficiencies": [ 15 | { "proficiency": "prof_infusion", "required": false } 16 | ] 17 | } 18 | ] -------------------------------------------------------------------------------- /recipies/magic items/magic_tools.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "magic_feather_quill", 4 | "type": "recipe", 5 | "category": "CC_ARCANE", 6 | "subcategory": "CSC_ARCANE_TOOLS", 7 | "skill_used": "spellcraft", 8 | "skills_required": [ "spellcraft", 2 ], 9 | "difficulty": 2, 10 | "time": "15 m", 11 | "book_learn": [ [ "infusion_basic", 1 ] ], 12 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 13 | "components": [ [ [ "crystallized_mana", 150 ] ], [ [ "feather_quill", 1 ] ] ], 14 | "proficiencies": [ 15 | { "proficiency": "prof_infusion", "required": false } 16 | ] 17 | } 18 | ] -------------------------------------------------------------------------------- /recipies/magic items/materials.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "crystallized_mana", 4 | "type": "recipe", 5 | "category": "CC_ARCANE", 6 | "subcategory": "CSC_ARCANE_OTHER", 7 | "skill_used": "spellcraft", 8 | "difficulty": 1, 9 | "time": "10 m", 10 | "charges": 10, 11 | "//": "The crafter, essentally, channels their raw magic into crystalized form for the recipie, hence the lack of materials. 500 mana in 8h 30m, with proficiency.", 12 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 13 | "proficiencies": [ 14 | { "proficiency": "prof_infusion", "required": false } 15 | ] 16 | } 17 | ] -------------------------------------------------------------------------------- /recipies/magic items/misc/materials.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "crystallized_mana", 4 | "type": "recipe", 5 | "category": "CC_ARCANE", 6 | "subcategory": "CSC_ARCANE_OTHER", 7 | "skill_used": "spellcraft", 8 | "difficulty": 1, 9 | "time": "10 m", 10 | "charges": 10, 11 | "autolearn": true, 12 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 13 | "components": [ ], 14 | "proficiencies": [ 15 | { "proficiency": "prof_infusion", "required": false } 16 | ] 17 | } 18 | ] -------------------------------------------------------------------------------- /recipies/magic items/summoning_objects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "claygolem_inactive", 4 | "type": "recipe", 5 | "category": "CC_ARCANE", 6 | "subcategory": "CSC_ARCANE_OTHER", 7 | "skill_used": "spellcraft", 8 | "skills_required": [ "spellcraft", 4 ], 9 | "difficulty": 5, 10 | "time": "24 h", 11 | "book_learn": [ [ "book_of_golems", 1 ] ], 12 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 13 | "//": "Yes, you both learn from and need a Book of Golems to make this. The book is used a reference material.", 14 | "tools": [ [ [ "feather_quill", -1 ] ], [ [ "channel_totem_metal", -1 ] ], [ [ "book_of_golems", -1 ] ] ], 15 | "components": [ [ [ "crystallized_mana", 1000 ] ], [ [ "clay_lump", 231 ] ], [ [ "mountian_runed_totem", 1 ] ], [ [ "ink", 7 ] ] ], 16 | "proficiencies": [ 17 | { "proficiency": "prof_infusion", "required": true } 18 | ] 19 | }, 20 | { 21 | "result": "stonegolem_inactive", 22 | "type": "recipe", 23 | "category": "CC_ARCANE", 24 | "subcategory": "CSC_ARCANE_OTHER", 25 | "skill_used": "spellcraft", 26 | "skills_required": [ "spellcraft", 4 ], 27 | "difficulty": 5, 28 | "time": "24 h", 29 | "book_learn": [ [ "book_of_golems", 1 ] ], 30 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 31 | "tools": [ [ [ "feather_quill", -1 ] ], [ [ "channel_totem_metal", -1 ] ], [ [ "book_of_golems", -1 ] ] ], 32 | "components": [ [ [ "crystallized_mana", 1000 ] ], [ [ "rock", 231 ] ], [ [ "mountian_runed_totem", 1 ] ], [ [ "ink", 7 ] ] ], 33 | "proficiencies": [ 34 | { "proficiency": "prof_infusion", "required": true } 35 | ] 36 | }, 37 | { 38 | "result": "irongolem_inactive", 39 | "type": "recipe", 40 | "category": "CC_ARCANE", 41 | "subcategory": "CSC_ARCANE_OTHER", 42 | "skill_used": "spellcraft", 43 | "skills_required": [ "spellcraft", 4 ], 44 | "difficulty": 5, 45 | "time": "24 h", 46 | "book_learn": [ [ "book_of_golems", 1 ] ], 47 | "qualities": [ { "id": "INFUSION", "level": 1 } ], 48 | "tools": [ [ [ "feather_quill", -1 ] ], [ [ "channel_totem_metal", -1 ] ], [ [ "book_of_golems", -1 ] ] ], 49 | "components": [ [ [ "crystallized_mana", 1000 ] ], [ [ "steel_lump", 231 ], [ "steel_chunk", 462 ] ], [ [ "mountian_runed_totem", 1 ] ], [ [ "ink", 7 ] ] ], 50 | "proficiencies": [ 51 | { "proficiency": "prof_infusion", "required": true } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /recipies/magic items/wands.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "magic_focus_staff", 4 | "type": "recipe", 5 | "category": "CC_ARCANE", 6 | "subcategory": "CSC_ARCANE_WEAPONRY", 7 | "skill_used": "spellcraft", 8 | "skills_required": [ "spellcraft", 3 ], 9 | "difficulty": 3, 10 | "time": "15 m", 11 | "book_learn": [ [ "infusion_basic", 1 ] ], 12 | "qualities": [ { "id": "INFUSION", "level": 1 }, { "id": "CUT", "level": 1 } ], 13 | "components": [ [ [ "crystallized_mana", 250 ] ], [ [ "q_staff", 1 ] ] ], 14 | "proficiencies": [ 15 | { "proficiency": "prof_infusion", "required": false } 16 | ] 17 | }, 18 | { 19 | "result": "magic_focus_staff+2", 20 | "type": "recipe", 21 | "category": "CC_ARCANE", 22 | "subcategory": "CSC_ARCANE_WEAPONRY", 23 | "skill_used": "spellcraft", 24 | "skills_required": [ "spellcraft", 5 ], 25 | "difficulty": 5, 26 | "time": "30 m", 27 | "book_learn": [ [ "infusion_mid", 1 ] ], 28 | "qualities": [ { "id": "INFUSION", "level": 1 }, { "id": "CUT", "level": 1 } ], 29 | "components": [ [ [ "crystallized_mana", 500 ] ], [ [ "q_staff", 1 ] ] ], 30 | "proficiencies": [ 31 | { "proficiency": "prof_infusion", "required": true } 32 | ] 33 | }, 34 | { 35 | "result": "magic_focus_staff+3", 36 | "type": "recipe", 37 | "category": "CC_ARCANE", 38 | "subcategory": "CSC_ARCANE_WEAPONRY", 39 | "skill_used": "spellcraft", 40 | "skills_required": [ "spellcraft", 7 ], 41 | "difficulty": 7, 42 | "time": "45 m", 43 | "book_learn": [ [ "infusion_basic", 1 ] ], 44 | "qualities": [ { "id": "INFUSION", "level": 1 }, { "id": "CUT", "level": 1 } ], 45 | "components": [ [ [ "crystallized_mana", 1000 ] ], [ [ "q_staff", 1 ] ] ], 46 | "proficiencies": [ 47 | { "proficiency": "prof_infusion", "required": true } 48 | ] 49 | }, 50 | { 51 | "result": "cleric_focus_staff", 52 | "type": "recipe", 53 | "category": "CC_ARCANE", 54 | "subcategory": "CSC_ARCANE_OTHER", 55 | "skill_used": "faith", 56 | "skills_required": [ "faith", 3 ], 57 | "difficulty": 3, 58 | "time": "1 h", 59 | "book_learn": [ [ "divinity_general", 1 ] ], 60 | "tools": [ [ [ "t_daltar", -1 ] ] ], 61 | "components": [ [ [ "crystallized_mana", 150 ] ], [ [ "q_staff", 1 ] ] ], 62 | "proficiencies": [ 63 | { "proficiency": "prof_infusion", "required": false } 64 | ] 65 | } 66 | ] -------------------------------------------------------------------------------- /recipies/metals.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "copper", 4 | "type": "recipe", 5 | "activity_level": "LIGHT_EXERCISE", 6 | "id_suffix": "smelt", 7 | "category": "CC_OTHER", 8 | "subcategory": "CSC_OTHER_MATERIALS", 9 | "skill_used": "fabrication", 10 | "difficulty": 1, 11 | "time": "12 m", 12 | "book_learn": [ [ "textbook_fabrication", 3 ], [ "forging_book_mtc", 3 ] ], 13 | "batch_time_factors": [ 90, 4 ], 14 | "autolearn": true, 15 | "result_mult": 22, 16 | "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "fire", -1 ] ] ], 17 | "components": [ [ [ "chunk_copper_ore", 1 ] ] ] 18 | }, 19 | { 20 | "result": "silver_small", 21 | "type": "recipe", 22 | "activity_level": "LIGHT_EXERCISE", 23 | "id_suffix": "smelt", 24 | "category": "CC_OTHER", 25 | "subcategory": "CSC_OTHER_MATERIALS", 26 | "skill_used": "fabrication", 27 | "difficulty": 1, 28 | "time": "12 m", 29 | "book_learn": [ [ "textbook_fabrication", 3 ], [ "forging_book_mtc", 3 ] ], 30 | "batch_time_factors": [ 90, 4 ], 31 | "autolearn": true, 32 | "result_mult": 34, 33 | "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "fire", -1 ] ] ], 34 | "components": [ [ [ "chunk_silver_ore", 1 ] ] ] 35 | }, 36 | { 37 | "result": "steel_lump", 38 | "type": "recipe", 39 | "activity_level": "LIGHT_EXERCISE", 40 | "id_suffix": "smelt", 41 | "category": "CC_OTHER", 42 | "subcategory": "CSC_OTHER_MATERIALS", 43 | "skill_used": "fabrication", 44 | "difficulty": 4, 45 | "time": "60 m", 46 | "batch_time_factors": [ 90, 4 ], 47 | "autolearn": true, 48 | "book_learn": [ [ "textbook_armschina", 3 ], [ "textbook_fabrication", 3 ], [ "forging_book_mtc", 3 ] ], 49 | "result_mult": 3, 50 | "byproducts": [ [ "steel_chunk", 2 ] ], 51 | "using": [ [ "forging_standard", 4 ] ], 52 | "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "fire", -1 ] ] ], 53 | "components": [ 54 | [ [ "chunk_iron_ore", 1 ] ], 55 | [ [ "material_shrd_limestone", 1 ], [ "material_limestone", 10 ] ], 56 | [ [ "charcoal", 10 ], [ "coal_lump", 10 ] ] 57 | ] 58 | } 59 | ] -------------------------------------------------------------------------------- /recipies/misc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "totem_small", 4 | "type": "recipe", 5 | "category": "CC_OTHER", 6 | "subcategory": "CSC_OTHER_OTHER", 7 | "skill_used": "fabrication", 8 | "difficulty": 0, 9 | "time": "10 m", 10 | "qualities": [ { "id": "CUT", "level": 1 } ], 11 | "proficiencies": [ { "proficiency": "prof_carving" } ], 12 | "components": [ [ [ "splinter", 1 ] ] ] 13 | }, 14 | { 15 | "result": "bone_charm", 16 | "type": "recipe", 17 | "category": "CC_OTHER", 18 | "subcategory": "CSC_OTHER_OTHER", 19 | "skill_used": "fabrication", 20 | "difficulty": 0, 21 | "time": "10 m", 22 | "qualities": [ { "id": "CUT", "level": 1 } ], 23 | "proficiencies": [ { "proficiency": "prof_carving" } ], 24 | "components": [ [ [ "bone_any", 10, "LIST" ] ] ] 25 | }, 26 | { 27 | "result": "totem_small_metal", 28 | "type": "recipe", 29 | "activity_level": "LIGHT_EXERCISE", 30 | "category": "CC_OTHER", 31 | "subcategory": "CSC_OTHER_OTHER", 32 | "skill_used": "fabrication", 33 | "difficulty": 0, 34 | "time": "10 m", 35 | "using": [ [ "blacksmithing_standard", 3 ], [ "steel_tiny", 1 ] ], 36 | "proficiencies": [ { "proficiency": "prof_fine_metalsmithing" } ], 37 | "qualities": [ { "id": "CHISEL", "level": 3 } ], 38 | "tools": [ [ [ "swage", -1 ] ] ] 39 | }, 40 | { 41 | "result": "totem_small_fiber", 42 | "type": "recipe", 43 | "activity_level": "LIGHT_EXERCISE", 44 | "category": "CC_OTHER", 45 | "subcategory": "CSC_OTHER_OTHER", 46 | "skill_used": "fabrication", 47 | "difficulty": 0, 48 | "time": "10 m", 49 | "using": [ [ "plant_cordage", 1 ] ] 50 | } 51 | ] -------------------------------------------------------------------------------- /recipies/proficiencies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "proficiency", 4 | "id": "prof_infusion", 5 | "name": { "str": "Infusion" }, 6 | "description": "You know the basics of incanting raw magic with mundane objects.", 7 | "category": "prof_misc_craft", 8 | "can_learn": true, 9 | "default_time_multiplier": 2, 10 | "default_fail_multiplier": 3, 11 | "time_to_learn": "10 h" 12 | }, 13 | { 14 | "type": "proficiency", 15 | "id": "prof_alchemy", 16 | "name": { "str": "Alchemical Brewing" }, 17 | "category": "prof_chem", 18 | "description": "You have some experience in alchemical process.", 19 | "can_learn": true, 20 | "default_time_multiplier": 2, 21 | "default_fail_multiplier": 3, 22 | "time_to_learn": "12 h" 23 | }, 24 | { 25 | "type": "proficiency", 26 | "id": "prof_alchemy_adv", 27 | "name": { "str": "Advanced Alchemy" }, 28 | "category": "prof_chem", 29 | "description": "You are now familiar with alchemical processes.", 30 | "can_learn": true, 31 | "default_time_multiplier": 2, 32 | "default_fail_multiplier": 3, 33 | "time_to_learn": "36 h", 34 | "required_proficiencies": [ "prof_alchemy" ] 35 | } 36 | ] -------------------------------------------------------------------------------- /recipies/tools.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "recipe", 4 | "activity_level": "MODERATE_EXERCISE", 5 | "result": "inkwell", 6 | "category": "CC_OTHER", 7 | "subcategory": "CSC_OTHER_CONTAINERS", 8 | "skill_used": "fabrication", 9 | "difficulty": 6, 10 | "time": "1 h", 11 | "book_learn": [ [ "glassblowing_book", 5 ] ], 12 | "proficiencies": [ { "proficiency": "prof_glassblowing" } ], 13 | "qualities": [ { "id": "CHISEL", "level": 3 } ], 14 | "tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 75 ] ] ], 15 | "components": [ [ [ "glass_shard", 3 ], [ "pipe_glass", 1 ], [ "flask_glass", 3 ], [ "test_tube", 6 ], [ "marble", 75 ] ] ] 16 | }, 17 | { 18 | "type": "recipe", 19 | "activity_level": "fake", 20 | "result": "feather_quill", 21 | "category": "CC_OTHER", 22 | "subcategory": "CSC_OTHER_TOOLS", 23 | "skill_used": "survival", 24 | "difficulty": 0, 25 | "time": "5 m", 26 | "autolearn": true, 27 | "qualities": [ { "id": "CUT", "level": 1 } ], 28 | "components": [ [ [ "feather", 1 ] ] ] 29 | }, 30 | { 31 | "type": "recipe", 32 | "activity_level": "LIGHT_EXERCISE", 33 | "result": "lantern", 34 | "category": "CC_OTHER", 35 | "subcategory": "CSC_OTHER_TOOLS", 36 | "skill_used": "fabrication", 37 | "difficulty": 3, 38 | "time": "45 m", 39 | "autolearn": true, 40 | "proficiencies": [ { "proficiency": "prof_metalworking" } ], 41 | "tools": [ [ [ "surface_heat", 2, "LIST" ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "swage", -1 ] ] ], 42 | "using": [ [ "blacksmithing_standard", 2 ] ], 43 | "components": [ 44 | [ [ "scrap", 20 ] ], 45 | [ [ "rag", 1 ] ], 46 | [ [ "bottle_glass", 1 ], [ "flask_glass", 1 ], [ "jar_glass_sealed", 1 ] ] 47 | ] 48 | } 49 | ] -------------------------------------------------------------------------------- /recipies/weapons, armor, and ammo/weapons.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "result": "mtc_sword_dragonslayer", 4 | "type": "recipe", 5 | "activity_level": "BRISK_EXERCISE", 6 | "category": "CC_WEAPON", 7 | "subcategory": "CSC_WEAPON_CUTTING", 8 | "skill_used": "fabrication", 9 | "difficulty": 5, 10 | "time": "4 h", 11 | "proficiencies": [ 12 | { "proficiency": "prof_blacksmithing" }, 13 | { "proficiency": "prof_bladesmith" }, 14 | { "proficiency": "prof_articulation" } ], 15 | "using": [ [ "blacksmithing_standard", 24 ], [ "strap_small", 2 ] ], 16 | "components": [ [ [ "dragon_scale", 20 ] ] ] 17 | } 18 | ] -------------------------------------------------------------------------------- /requirements/magic.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "any_uncarved_totem", 4 | "type": "requirement", 5 | "//": "Should contain all totems, symbols, etc. Basically anything to symbolically bind magic too, for the purpose of crafting and spellcasting.", 6 | "components": [ [ 7 | [ "totem_small", 1 ], 8 | [ "totem_small_metal", 1 ], 9 | [ "holy_symbol_wood", 1 ], 10 | [ "bone_charm", 1 ], 11 | [ "totem_small_fiber", 1 ] 12 | ] ] 13 | }, 14 | { 15 | "id": "any_carved_totem", 16 | "type": "requirement", 17 | "//": "Should contain all totems, symbols, etc. Basically anything to symbolically bind magic too, for the purpose of crafting and spellcasting.", 18 | "components": [ [ 19 | [ "runed_totem", 1 ], 20 | [ "runed_totem_metal", 1 ], 21 | [ "runed_bone_charm", 1 ], 22 | [ "runed_totem_fiber", 1 ], 23 | [ "runed_holy_symbol", 1 ] 24 | ] ] 25 | } 26 | ] -------------------------------------------------------------------------------- /skills.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "skill", 4 | "id": "spellcraft", 5 | "name": { "str": "magicka" }, 6 | "description": "Your skill in the manipulation of the arcane. Higher levels allow for advanced spellcasting and artification.", 7 | "display_category": "display_crafting" 8 | }, 9 | { 10 | "type": "skill", 11 | "id": "faith", 12 | "name": { "str": "faith" }, 13 | "description": "Your belief within the otherwoldly divine. The greater your piety, the greater your divine abilities.", 14 | "display_category": "display_crafting" 15 | }, 16 | { 17 | "type": "skill", 18 | "id": "occult", 19 | "name": { "str": "occultism" }, 20 | "description": "Your knowledge of the otherworldly occult. The greater your knowledge, the stronger the otherworldly influence you wield.", 21 | "display_category": "display_crafting" 22 | } 23 | ] -------------------------------------------------------------------------------- /snippets/epilouges.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "snippet", 4 | "category": "epilogue_factions", 5 | "text": [ 6 | { 7 | "id": "epilogue_faction_kingdom_0", 8 | "text": "Your corpse is eventually discovered, and buried within a small cemetary. The world moves on, unfazed by your passing." 9 | }, 10 | { 11 | "id": "epilogue_faction_kingdom_150", 12 | "text": "Your corpse is eventually discovered, and buried within a small cemetary. Several townspeople attend your funeral, and they tell stories of you to their heirs." 13 | }, 14 | { 15 | "id": "epilogue_faction_kingdom_300", 16 | "text": "Following your death, a large portion of the town come to mourn your passing. You are remebered as a local hero, and a statue is erected in your image." 17 | }, 18 | { 19 | "id": "epilogue_faction_kingdom_600", 20 | "text": "Following your passing, the townspeople come in droves to your memorial, many weep for you. News of your deads spread throughout the region, and you are recorded as a brave individual of tenacity and will." 21 | }, 22 | { 23 | "id": "epilogue_faction_kingdom_1000", 24 | "text": "You are entombed within a decorated grave at a church. You are remembered far and wide as a brave hero; of strength and determination." 25 | }, 26 | { 27 | "id": "epilogue_faction_kingdom_5000", 28 | "text": "Following your passing, you are revered far and wide for your deeds. You are entombed within the gentry's masoleum, coomplete with a statue carved in your image. The generations following are told stories of you and your will." 29 | }, 30 | { 31 | "id": "epilogue_faction_blank", 32 | "text": " " 33 | } 34 | ] 35 | } 36 | ] -------------------------------------------------------------------------------- /snippets/personal epilouges.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "snippet", 4 | "category": "epilogue_npc_male", 5 | "text": [ 6 | { 7 | "id": "epilogue_male_1", 8 | "text": "Following your death, he renounced the adventerous lifestyle, settling down in a city as a craftsman. He died years later of old age, and was survived by several children." 9 | } 10 | ] 11 | }, 12 | { 13 | "type": "snippet", 14 | "category": "epilogue_npc_female", 15 | "text": [ 16 | { 17 | "id": "epilogue_female_1", 18 | "text": "Following your death, she renounced the adventerous lifestyle, settling down in a city as a craftswoman. She died years later of old age, and was survived by several children." 19 | } 20 | ] 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /spellbooks/spell scrolls/cleric scrolls/life_scrolls.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "BOOK", 4 | "copy-from": "spell_scroll", 5 | "id": "spell_scroll_cleric_spare_dying", 6 | "name": { "str": "Scroll of Spare The Dying", "str_pl": "Scrolls of Spare The Dying" }, 7 | "description": "On your feet!", 8 | "use_action": { "type": "learn_spell", "spells": [ "spare_dying" ] } 9 | }, 10 | { 11 | "type": "BOOK", 12 | "copy-from": "spell_scroll", 13 | "id": "spell_scroll_cleric_poison_protect", 14 | "name": { "str": "Scroll of Protection From Poison", "str_pl": "Scrolls of Protection From Poison" }, 15 | "description": "Drink and never get drunk!", 16 | "use_action": { "type": "learn_spell", "spells": [ "poison_protect" ] } 17 | }, 18 | { 19 | "type": "BOOK", 20 | "copy-from": "spell_scroll", 21 | "id": "spell_scroll_cleric_great_healing", 22 | "name": { "str": "Scroll of Greater Restoration", "str_pl": "Scrolls of Greater Restoration" }, 23 | "description": "Begone malady!", 24 | "use_action": { "type": "learn_spell", "spells": [ "great_healing" ] } 25 | }, 26 | { 27 | "type": "BOOK", 28 | "copy-from": "spell_scroll", 29 | "id": "spell_scroll_cleric_purge_wounds", 30 | "name": { "str": "Scroll of Purge Wounds", "str_pl": "Scrolls of Purge Wounds" }, 31 | "description": "Disinfectant is important, and you're not gonna always have it.", 32 | "use_action": { "type": "learn_spell", "spells": [ "purge_wounds" ] } 33 | }, 34 | { 35 | "type": "BOOK", 36 | "copy-from": "spell_scroll", 37 | "id": "spell_scroll_cleric_ease_discomfort", 38 | "name": { "str": "Scroll of Ease Discomfort", "str_pl": "Scrolls of Ease Discomfort" }, 39 | "description": "There, there. Calm down.", 40 | "use_action": { "type": "learn_spell", "spells": [ "ease_discomfort" ] } 41 | } 42 | ] -------------------------------------------------------------------------------- /spellbooks/spell scrolls/cleric scrolls/twighlight_scrolls.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "BOOK", 4 | "copy-from": "spell_scroll", 5 | "id": "spell_scroll_cleric_force_greater", 6 | "name": { "str": "Scroll of Greater Force", "str_pl": "Scrolls of Greater Force" }, 7 | "description": "Get back!", 8 | "use_action": { "type": "learn_spell", "spells": [ "force_greater" ] } 9 | }, 10 | { 11 | "type": "BOOK", 12 | "copy-from": "spell_scroll", 13 | "id": "spell_scroll_cleric_hold_goblins", 14 | "name": { "str": "Scroll of Dusken Grasp", "str_pl": "Scrolls of Dusken Grasp" }, 15 | "description": "Halt, goblins!", 16 | "use_action": { "type": "learn_spell", "spells": [ "hold_goblins" ] } 17 | }, 18 | { 19 | "type": "BOOK", 20 | "copy-from": "spell_scroll", 21 | "id": "spell_scroll_cleric_hide_goblins", 22 | "name": { "str": "Scroll of Goblinoid Shroud", "str_pl": "Scrolls of Goblinoid Shroud" }, 23 | "description": "Wazzat?", 24 | "use_action": { "type": "learn_spell", "spells": [ "hide_goblins" ] } 25 | }, 26 | { 27 | "type": "BOOK", 28 | "copy-from": "spell_scroll", 29 | "id": "spell_scroll_cleric_spiritual_hammer", 30 | "name": { "str": "Scroll of Spiritual Hammer", "str_pl": "Scrolls of Spiritual Hammer" }, 31 | "description": "Crush them!", 32 | "use_action": { "type": "learn_spell", "spells": [ "mu_spell_spiritual_hammer" ] } 33 | }, 34 | { 35 | "type": "BOOK", 36 | "copy-from": "spell_scroll", 37 | "id": "spell_scroll_cleric_star_beam", 38 | "name": { "str": "Scroll of Star Finger", "str_pl": "Scrolls of Star Finger" }, 39 | "description": "Star Finger!", 40 | "use_action": { "type": "learn_spell", "spells": [ "star_beam" ] } 41 | } 42 | ] -------------------------------------------------------------------------------- /spellbooks/spell scrolls/cleric scrolls/war_scrolls.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "BOOK", 4 | "copy-from": "spell_scroll", 5 | "id": "spell_scroll_cleric_cleave", 6 | "name": { "str": "Scroll of Cleave", "str_pl": "Scrolls of Cleave" }, 7 | "description": "Shing!", 8 | "use_action": { "type": "learn_spell", "spells": [ "cleave" ] } 9 | }, 10 | { 11 | "type": "BOOK", 12 | "copy-from": "spell_scroll", 13 | "id": "spell_scroll_cleric_aniweapon", 14 | "name": { "str": "Scroll of Animate Weapons", "str_pl": "Scrolls of Animate Weapons" }, 15 | "description": "Flying swords!", 16 | "use_action": { "type": "learn_spell", "spells": [ "aniweapon" ] } 17 | }, 18 | { 19 | "type": "BOOK", 20 | "copy-from": "spell_scroll", 21 | "id": "spell_scroll_cleric_btd", 22 | "name": { "str": "Scroll of Bites The Dust", "str_pl": "Scrolls of Bites The Dust" }, 23 | "description": "I am thirty-three years old.", 24 | "use_action": { "type": "learn_spell", "spells": [ "bites_the_dust" ] } 25 | }, 26 | { 27 | "type": "BOOK", 28 | "copy-from": "spell_scroll", 29 | "id": "spell_scroll_cleric_force_greaterw", 30 | "name": { "str": "Scroll of Greater Force", "str_pl": "Scrolls of Greater Force" }, 31 | "description": "Get back!", 32 | "use_action": { "type": "learn_spell", "spells": [ "force_greater_war" ] } 33 | }, 34 | { 35 | "type": "BOOK", 36 | "copy-from": "spell_scroll", 37 | "id": "spell_scroll_cleric_enlarged", 38 | "name": { "str": "Scroll of Giants Strength", "str_pl": "Scrolls of Giants Strength" }, 39 | "description": "Rawwr!", 40 | "use_action": { "type": "learn_spell", "spells": [ "enlarged" ] } 41 | } 42 | ] -------------------------------------------------------------------------------- /spellbooks/spell scrolls/warlock scrolls/fiend_scrolls.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "BOOK", 4 | "copy-from": "spell_scroll", 5 | "id": "spell_scroll_hellbolt", 6 | "name": { "str": "Scroll of Hellbolt", "str_pl": "Scrolls of Hellbolt" }, 7 | "description": "Daemons, burn them!", 8 | "use_action": { "type": "learn_spell", "spells": [ "hellbolt" ] } 9 | }, 10 | { 11 | "type": "BOOK", 12 | "copy-from": "spell_scroll", 13 | "id": "spell_scroll_demons", 14 | "name": { "str": "Scroll of Sense Lesser Demons", "str_pl": "Scrolls of Sense Lesser Demons" }, 15 | "description": "I call to the Abyss...", 16 | "use_action": { "type": "learn_spell", "spells": [ "sense_lesser_demons" ] } 17 | }, 18 | { 19 | "type": "BOOK", 20 | "copy-from": "spell_scroll", 21 | "id": "spell_scroll_toxic_cloud", 22 | "name": { "str": "Scroll of Toxic Mist", "str_pl": "Scrolls of Toxic Mist" }, 23 | "description": "Fsssshhhh...", 24 | "use_action": { "type": "learn_spell", "spells": [ "toxic_cloud" ] } 25 | }, 26 | { 27 | "type": "BOOK", 28 | "copy-from": "spell_scroll", 29 | "id": "spell_scroll_hellswipe", 30 | "name": { "str": "Scroll of Daemons Blade", "str_pl": "Scrolls of Daemons Blade" }, 31 | "description": "Wrath brings destruction.", 32 | "use_action": { "type": "learn_spell", "spells": [ "hellswipe" ] } 33 | }, 34 | { 35 | "type": "BOOK", 36 | "copy-from": "spell_scroll", 37 | "id": "spell_scroll_hellish_rebuke", 38 | "name": { "str": "Scroll of Hellish Rebuke", "str_pl": "Scrolls of Hellish Rebuke" }, 39 | "description": "Come no further.", 40 | "use_action": { "type": "learn_spell", "spells": [ "hellish_rebuke" ] } 41 | } 42 | ] -------------------------------------------------------------------------------- /spellbooks/spell scrolls/warlock scrolls/hexbound_scrolls.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "BOOK", 4 | "copy-from": "spell_scroll", 5 | "id": "spell_scroll_shadowmorph_c", 6 | "name": { "str": "Scroll of Shadowmorph", "str_pl": "Scrolls of Shadowmorph" }, 7 | "description": "Blade of night, heed me!", 8 | "use_action": { "type": "learn_spell", "spells": [ "shadowmorph_c" ] } 9 | }, 10 | { 11 | "type": "BOOK", 12 | "copy-from": "spell_scroll", 13 | "id": "spell_scroll_hex_c", 14 | "name": { "str": "Scroll of Hex", "str_pl": "Scrolls of Hex" }, 15 | "description": "Rot and perish!", 16 | "use_action": { "type": "learn_spell", "spells": [ "hex_c" ] } 17 | }, 18 | { 19 | "type": "BOOK", 20 | "copy-from": "spell_scroll", 21 | "id": "spell_scroll_shadowarmor", 22 | "name": { "str": "Scroll of Night Armor", "str_pl": "Scrolls of Night Armor" }, 23 | "description": "Clang!", 24 | "use_action": { "type": "learn_spell", "spells": [ "shadowarmor" ] } 25 | }, 26 | { 27 | "type": "BOOK", 28 | "copy-from": "spell_scroll", 29 | "id": "spell_scroll_truestrike", 30 | "name": { "str": "Scroll of True Strike", "str_pl": "Scrolls of True Strike" }, 31 | "description": "Blade of night, heed me!", 32 | "use_action": { "type": "learn_spell", "spells": [ "truestrike" ] } 33 | }, 34 | { 35 | "type": "BOOK", 36 | "copy-from": "spell_scroll", 37 | "id": "spell_scroll_smokescreen", 38 | "name": { "str": "Scroll of Smokescreen", "str_pl": "Scrolls of Smokescreen" }, 39 | "description": "Chew on this!", 40 | "use_action": { "type": "learn_spell", "spells": [ "smokescreen" ] } 41 | }, 42 | { 43 | "type": "BOOK", 44 | "copy-from": "spell_scroll", 45 | "id": "spell_scroll_shadow_arrow", 46 | "name": { "str": "Scroll of Shadow Arrow", "str_pl": "Scrolls of Shadow Arrow" }, 47 | "description": "Twang!", 48 | "use_action": { "type": "learn_spell", "spells": [ "shadow_arrow" ] } 49 | }, 50 | { 51 | "type": "BOOK", 52 | "copy-from": "spell_scroll", 53 | "id": "spell_scroll_masking", 54 | "name": { "str": "Scroll of Masking", "str_pl": "Scrolls of Masking" }, 55 | "description": "Goodbye!", 56 | "use_action": { "type": "learn_spell", "spells": [ "masking" ] } 57 | } 58 | ] -------------------------------------------------------------------------------- /spellbooks/spell scrolls/warlock scrolls/warlock_cantrips.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "BOOK", 4 | "copy-from": "spell_scroll", 5 | "id": "spell_scroll_carm", 6 | "name": { "str": "Scroll of Cold Shoulder", "str_pl": "Scrolls of Cold Shoulder" }, 7 | "description": "Those who oppose me get the cold shoulder.", 8 | "use_action": { "type": "learn_spell", "spells": [ "carm" ] } 9 | }, 10 | { 11 | "type": "BOOK", 12 | "copy-from": "spell_scroll", 13 | "id": "spell_scroll_cause_fear", 14 | "name": { "str": "Scroll of Cause Fear", "str_pl": "Scrolls of Cause Fear" }, 15 | "description": "AAAAHHHH!", 16 | "use_action": { "type": "learn_spell", "spells": [ "cause_fear" ] } 17 | }, 18 | { 19 | "type": "BOOK", 20 | "copy-from": "spell_scroll", 21 | "id": "spell_scroll_magic_stone", 22 | "name": { "str": "Scroll of Magic Stone", "str_pl": "Scrolls of Magic Stone" }, 23 | "description": "Your rock but better.", 24 | "use_action": { "type": "learn_spell", "spells": [ "magic_stone" ] } 25 | }, 26 | { 27 | "type": "BOOK", 28 | "copy-from": "spell_scroll", 29 | "id": "spell_scroll_wtrance", 30 | "name": { "str": "Scroll of Unnatural Ability", "str_pl": "Scrolls of Unnatural Ability" }, 31 | "description": "Kharmen mung!", 32 | "use_action": { "type": "learn_spell", "spells": [ "wtrance" ] } 33 | } 34 | ] -------------------------------------------------------------------------------- /spells_effects_misc/classes/clerics.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mutation", 4 | "id": "CLERIC", 5 | "name": "Cleric", 6 | "//": "There are multiple domains for clerics, depending upon their faith.", 7 | "points": 0, 8 | "description": "Those who have been blessed by the gods with divine power.", 9 | "starting_trait": false, 10 | "purifiable": false, 11 | "valid": false, 12 | "cancels": [ "WARLOCK" ] 13 | }, 14 | { 15 | "type": "mutation", 16 | "id": "CLERIC_W", 17 | "name": "War Domain", 18 | "//": "Cleric domain", 19 | "points": 0, 20 | "description": "The gods of war have blessed you with divine power; to lay waste to all opposition.", 21 | "starting_trait": false, 22 | "purifiable": false, 23 | "valid": false, 24 | "prereqs": [ "CLERIC" ], 25 | "cancels": [ "CLERIC_L", "CLERIC_I", "CLERIC_T" ], 26 | "flags": [ "ATTUNEMENT" ] 27 | }, 28 | { 29 | "type": "mutation", 30 | "id": "CLERIC_L", 31 | "name": "Life Domain", 32 | "//": "Cleric domain", 33 | "points": 0, 34 | "description": "Energy is the fundamental force of the universe, sustaining all life. The gods of life promote vitality and health.", 35 | "starting_trait": false, 36 | "purifiable": false, 37 | "valid": false, 38 | "prereqs": [ "CLERIC" ], 39 | "cancels": [ "CLERIC_W", "CLERIC_I", "CLERIC_T" ], 40 | "flags": [ "ATTUNEMENT" ] 41 | }, 42 | { 43 | "type": "mutation", 44 | "id": "CLERIC_T", 45 | "name": "Twighlight Domain", 46 | "//": "Cleric domain", 47 | "points": 0, 48 | "description": "The setting of the sun reveals the hidden world of the night. The gods of twighlight defend this world, and drive out dark things which stalk it.", 49 | "starting_trait": false, 50 | "purifiable": false, 51 | "valid": false, 52 | "prereqs": [ "CLERIC" ], 53 | "cancels": [ "CLERIC_W", "CLERIC_I", "CLERIC_L" ], 54 | "flags": [ "ATTUNEMENT" ] 55 | }, 56 | { 57 | "type": "mutation", 58 | "id": "CLERIC_I", 59 | "name": "Light Domain", 60 | "//": "Cleric domain", 61 | "points": 0, 62 | "description": "The rising of the sun reveals many things. The gods of light bestow the power to shine in the darkness.", 63 | "starting_trait": false, 64 | "purifiable": false, 65 | "valid": false, 66 | "prereqs": [ "CLERIC" ], 67 | "cancels": [ "CLERIC_W", "CLERIC_T", "CLERIC_L" ], 68 | "flags": [ "ATTUNEMENT" ] 69 | } 70 | ] -------------------------------------------------------------------------------- /spells_effects_misc/classes/druids.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mutation", 4 | "id": "DRUID", 5 | "name": "Druid", 6 | "points": 0, 7 | "description": "Whether calling on the forces of nature, or the animals of the world, Druids are at home. They see themselves as an extension of the natural world, rather than masters over it.", 8 | "starting_trait": false, 9 | "purifiable": false, 10 | "valid": false 11 | } 12 | ] -------------------------------------------------------------------------------- /spells_effects_misc/classes/warlocks.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mutation", 4 | "id": "WARLOCK", 5 | "name": "Warlock", 6 | "//": "Base mutation, branching outwards into multiple classes.", 7 | "points": 0, 8 | "description": "Warlocks are those who have made a deal with an otherworldly entity for knowledge.", 9 | "starting_trait": false, 10 | "purifiable": false, 11 | "valid": false, 12 | "cancels": [ "CLERIC" ] 13 | }, 14 | { 15 | "type": "mutation", 16 | "id": "WARLOCK_E", 17 | "name": "Pact of The Elder", 18 | "//": "Variation", 19 | "points": 0, 20 | "description": "You follow the Elder One, praising their name in sacrifice.", 21 | "starting_trait": false, 22 | "purifiable": false, 23 | "valid": false, 24 | "prereqs": [ "WARLOCK" ], 25 | "cancels": [ "WARLOCK_C", "WARLOCK_F" ], 26 | "flags": [ "ATTUNEMENT" ] 27 | }, 28 | { 29 | "type": "mutation", 30 | "id": "WARLOCK_C", 31 | "name": "Pact of The Hexbound", 32 | "//": "Variation", 33 | "points": 0, 34 | "description": "The Hexbound are the indentured of Qliphoth, The Patron Mistress. They are known for their curses, charms, and weaponplay.", 35 | "starting_trait": false, 36 | "purifiable": false, 37 | "valid": false, 38 | "prereqs": [ "WARLOCK" ], 39 | "cancels": [ "WARLOCK_E", "WARLOCK_F" ], 40 | "flags": [ "ATTUNEMENT" ] 41 | }, 42 | { 43 | "type": "mutation", 44 | "id": "WARLOCK_F", 45 | "name": "Pact of the Fiend", 46 | "//": "Variation", 47 | "points": 0, 48 | "description": "You have made a pact with the devils and demons of lower worlds. Fire, ice, ḭ̴̂͂t̷̛̹̬ ̸͖͙̈́͝m̸̗̊a̵̢̍ţ̸̇̂t̴̝̃̿e̶̟̳̍̈́r̵̫̀s̷͖̈͊ ̴͇̳̓̽n̸͓͌͋ö̴̡̠́t̷̳́.", 49 | "starting_trait": false, 50 | "purifiable": false, 51 | "valid": false, 52 | "prereqs": [ "WARLOCK" ], 53 | "cancels": [ "WARLOCK_E", "WARLOCK_C" ], 54 | "flags": [ "ATTUNEMENT" ] 55 | } 56 | ] -------------------------------------------------------------------------------- /spells_effects_misc/classes/wizards.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "mutation", 4 | "id": "MAGE", 5 | "name": "Mage", 6 | "points": 0, 7 | "description": "From rougish figues with a collection of notes, to scholars high in ivory towers, mages come from all walks of life. Unlike others, mages manipulate magic through practice, repetition, and tact.", 8 | "starting_trait": false, 9 | "purifiable": false, 10 | "valid": false 11 | } 12 | ] -------------------------------------------------------------------------------- /spells_effects_misc/cleric/war/animated weapons/weapon_effect.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "SPELL", 4 | "id": "mace_effect", 5 | "name": "summon mace", 6 | "description": "summons a mace for Animate Weapon", 7 | "valid_targets": [ "ground" ], 8 | "min_damage": 1, 9 | "max_damage": 1, 10 | "damage_increment": 0, 11 | "min_range": 3, 12 | "max_range": 6, 13 | "range_increment": 0.2, 14 | "min_aoe": 1, 15 | "max_aoe": 4, 16 | "aoe_increment": 0.2, 17 | "base_casting_time": 0, 18 | "difficulty": 0, 19 | "max_level": 15, 20 | "base_energy_cost": 0, 21 | "energy_source": "MANA", 22 | "shape": "blast", 23 | "effect": "summon", 24 | "effect_str": "animated_mace", 25 | "min_duration": 3000, 26 | "max_duration": 15000, 27 | "duration_increment": 400 28 | }, 29 | { 30 | "type": "SPELL", 31 | "id": "sword_effect", 32 | "name": "summon sword", 33 | "description": "summons a sword for Animate Weapon", 34 | "valid_targets": [ "ground" ], 35 | "min_damage": 1, 36 | "max_damage": 1, 37 | "damage_increment": 0, 38 | "min_range": 3, 39 | "max_range": 6, 40 | "range_increment": 0.2, 41 | "min_aoe": 1, 42 | "max_aoe": 4, 43 | "aoe_increment": 0.2, 44 | "base_casting_time": 0, 45 | "difficulty": 0, 46 | "max_level": 15, 47 | "base_energy_cost": 0, 48 | "energy_source": "MANA", 49 | "shape": "blast", 50 | "effect": "summon", 51 | "effect_str": "animated_sword", 52 | "min_duration": 3000, 53 | "max_duration": 15000, 54 | "duration_increment": 400 55 | } 56 | ] -------------------------------------------------------------------------------- /spells_effects_misc/items/item_effects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "silver_ivy_locket_effect", 4 | "type": "SPELL", 5 | "name": "Ivy Locket Effect", 6 | "description": "Recharges the wearers mana.", 7 | "valid_targets": [ "self" ], 8 | "message": "You feel a surge of magic!", 9 | "min_damage": 500, 10 | "max_damage": 500, 11 | "max_level": 1, 12 | "effect": "recover_energy", 13 | "effect_str": "MANA", 14 | "shape": "blast", 15 | "flags": [ "SILENT" ] 16 | }, 17 | { 18 | "id": "invisible_item", 19 | "type": "SPELL", 20 | "name": "invisible", 21 | "description": "makes you invisible.", 22 | "valid_targets": [ "self" ], 23 | "flags": [ "SILENT" ], 24 | "message": "", 25 | "min_damage": 1, 26 | "max_damage": 1, 27 | "max_level": 10, 28 | "effect": "attack", 29 | "shape": "blast", 30 | "effect_str": "invisibility", 31 | "min_duration": 6000, 32 | "max_duration": 12000, 33 | "duration_increment": 1000 34 | }, 35 | { 36 | "id": "blade_spawn_item", 37 | "type": "SPELL", 38 | "name": "knife", 39 | "description": "Summons (a) knife(s).", 40 | "valid_targets": [ "self" ], 41 | "flags": [ "SILENT" ], 42 | "message": "", 43 | "effect": "spawn_item", 44 | "shape": "blast", 45 | "effect_str": "throwing_knife", 46 | "max_level": 10, 47 | "min_damage": 1, 48 | "max_damage": 5, 49 | "min_duration": 6000, 50 | "max_duration": 12000, 51 | "duration_increment": 1000 52 | }, 53 | { 54 | "id": "fruit_summon", 55 | "type": "SPELL", 56 | "name": "summon fruit", 57 | "description": "Summons fruit.", 58 | "valid_targets": [ "self" ], 59 | "flags": [ "SILENT", "PERMANENT" ], 60 | "message": "", 61 | "effect": "spawn_item", 62 | "shape": "blast", 63 | "effect_str": "apple", 64 | "max_level": 1, 65 | "min_damage": 1, 66 | "max_damage": 1, 67 | "min_duration": 60000, 68 | "max_duration": 120000, 69 | "duration_increment": 10000 70 | }, 71 | { 72 | "id": "water_summon", 73 | "type": "SPELL", 74 | "name": "water", 75 | "description": "makes water.", 76 | "valid_targets": [ "self" ], 77 | "flags": [ "SILENT", "PERMANENT" ], 78 | "message": "", 79 | "effect": "spawn_item", 80 | "shape": "blast", 81 | "effect_str": "water_clean", 82 | "max_level": 10, 83 | "min_damage": 2, 84 | "max_damage": 8, 85 | "min_duration": 6000, 86 | "max_duration": 12000, 87 | "duration_increment": 1000 88 | } 89 | ] -------------------------------------------------------------------------------- /spells_effects_misc/items/regen_effects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ivy_pin_regen", 4 | "type": "SPELL", 5 | "name": "Ivy Leauge Regeneration", 6 | "description": "mana regen for Ivy Pin.", 7 | "valid_targets": [ "self" ], 8 | "min_damage": 500, 9 | "max_damage": 500, 10 | "effect": "recover_energy", 11 | "effect_str": "MANA", 12 | "shape": "blast", 13 | "flags": [ "SILENT" ] 14 | } 15 | ] -------------------------------------------------------------------------------- /spells_effects_misc/items/summoning_effects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "SPELL", 4 | "id": "spawn_ghost_item", 5 | "name": "Bound Spirit", 6 | "description": "spawn ghost", 7 | "valid_targets": [ "ground" ], 8 | "min_damage": 1, 9 | "max_damage": 1, 10 | "min_range": 1, 11 | "max_range": 1, 12 | "min_aoe": 1, 13 | "max_aoe": 1, 14 | "shape": "blast", 15 | "effect": "summon", 16 | "effect_str": "mon_guarding_spirit", 17 | "min_duration": 30000, 18 | "max_duration": 30000 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /spells_effects_misc/spells_misc.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "min_water_item_stun", 4 | "type": "SPELL", 5 | "name": "Magical mineral water stun", 6 | "description": "Magical mineral water puts you in a state of trance!", 7 | "flags": [ "SILENT" ], 8 | "valid_targets": [ "self" ], 9 | "effect": "attack", 10 | "shape": "blast", 11 | "effect_str": "min_water_stun", 12 | "min_duration": 6375, 13 | "max_duration": 6375 14 | }, 15 | { 16 | "id": "min_water_item_rejuv", 17 | "type": "SPELL", 18 | "name": "Magical mineral water slight healing", 19 | "description": "Very slight healing thanks to the Magical mineral water", 20 | "message": "You consume the magical mineral water and you feel a slight rejuvenation!", 21 | "valid_targets": [ "self" ], 22 | "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], 23 | "min_damage": -2, 24 | "max_damage": -2, 25 | "effect": "attack", 26 | "shape": "blast", 27 | "extra_effects": [ { "id": "min_water_item_stun", "hit_self": true } ], 28 | "min_duration": 1, 29 | "max_duration": 1 30 | }, 31 | { 32 | "id": "mu_spell_cantrip", 33 | "type": "SPELL", 34 | "name": "Cantrip", 35 | "description": "This is the first spell any mage learns, designed to teach them to manipulate mana to accomplish many minor tasks with a minimum of effort. Eventually this becomes reflexive and you can simply do things at will with no spell casting required, just using background mana.", 36 | "valid_targets": [ "self" ], 37 | "effect": "spawn_item", 38 | "shape": "blast", 39 | "effect_str": "cantrip_item", 40 | "flags": [ "SILENT", "NO_HANDS", "VERBAL", "NO_LEGS" ], 41 | "energy_source": "MANA", 42 | "base_casting_time": 200, 43 | "casting_time_increment": -10, 44 | "final_casting_time": 80, 45 | "base_energy_cost": 25, 46 | "energy_increment": -1, 47 | "final_energy_cost": 5, 48 | "difficulty": 0, 49 | "max_level": 20, 50 | "min_damage": 1, 51 | "max_damage": 1, 52 | "min_duration": 36000, 53 | "max_duration": 36000 54 | } 55 | ] -------------------------------------------------------------------------------- /spells_effects_misc/warlock/eldritch/components.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "components_ritual", 4 | "type": "requirement", 5 | "//": "Organs for cult ritual sacrifice", 6 | "components": [ [ [ "human_flesh", 10 ], [ "meat", 10 ], [ "meat_tainted", 10 ], [ "demihuman_flesh", 10 ] ], 7 | [ [ "hstomach", 1 ], [ "hstomach_large", 1 ], [ "stomach", 1 ], [ "stomach_large", 1 ], [ "demihuman_stomach", 1 ], [ "demihuman_stomach_large", 1 ] ], 8 | [ [ "offal", 10 ] ], 9 | [ [ "lung", 2 ] ], 10 | [ [ "liver", 1 ] ], 11 | [ [ "brain", 1 ] ], 12 | [ [ "kidney", 2 ] ], 13 | [ [ "sweetbread", 5 ] ] ] 14 | }, 15 | { 16 | "id": "components_commune", 17 | "type": "requirement", 18 | "//": "Blood to commune", 19 | "components": [ [ [ "the_blood", 3 ] ] ] 20 | }, 21 | { 22 | "id": "components_heal", 23 | "type": "requirement", 24 | "//": "Stitches", 25 | "components": [ [ [ "thread", 10 ] ] ] 26 | } 27 | ] -------------------------------------------------------------------------------- /spells_effects_misc/warlock/eldritch/eldritch commune/commune_items.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "cbook1", 4 | "type": "BOOK", 5 | "name": { "str": "otherworldly shard" }, 6 | "description": "A small tablet of blackened stone, apparently cut from a much larger slab. Golden runes glow over its surface, and slowly shift into intelligible sentences when you stare at them.", 7 | "weight": "4000 g", 8 | "volume": "2500 ml", 9 | "material": [ "stone" ], 10 | "symbol": "?", 11 | "color": "light_gray", 12 | "use_action": { "type": "learn_spell", "spells": [ "cult_heal" ] } 13 | }, 14 | { 15 | "id": "cbook2", 16 | "type": "BOOK", 17 | "name": { "str": "otherworldly shard" }, 18 | "description": "A small tablet of blackened stone, apparently cut from a much larger slab. Golden runes glow over its surface, and slowly shift into intelligible sentences when you stare at them.", 19 | "weight": "4000 g", 20 | "volume": "2500 ml", 21 | "material": [ "stone" ], 22 | "symbol": "?", 23 | "color": "light_gray", 24 | "use_action": { "type": "learn_spell", "spells": [ "bloodball" ] } 25 | }, 26 | { 27 | "id": "cbook3", 28 | "type": "BOOK", 29 | "name": { "str": "otherworldly shard" }, 30 | "description": "A small tablet of blackened stone, apparently cut from a much larger slab. Golden runes glow over its surface, and slowly shift into intelligible sentences when you stare at them.", 31 | "weight": "4000 g", 32 | "volume": "2500 ml", 33 | "material": [ "stone" ], 34 | "symbol": "?", 35 | "color": "light_gray", 36 | "use_action": { "type": "learn_spell", "spells": [ "hota" ] } 37 | } 38 | ] -------------------------------------------------------------------------------- /spells_effects_misc/warlock/fiend/summon_demons/spawn_effects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "SPELL", 4 | "id": "imp_spear_effect", 5 | "name": "summon imps", 6 | "description": "summons imps for Sense Lesser Demons", 7 | "valid_targets": [ "ground" ], 8 | "min_damage": 2, 9 | "max_damage": 4, 10 | "damage_increment": 0.14, 11 | "min_range": 3, 12 | "max_range": 6, 13 | "range_increment": 0.2, 14 | "min_aoe": 1, 15 | "max_aoe": 4, 16 | "aoe_increment": 0.2, 17 | "base_casting_time": 0, 18 | "difficulty": 0, 19 | "max_level": 15, 20 | "base_energy_cost": 0, 21 | "energy_source": "MANA", 22 | "shape": "blast", 23 | "effect": "summon", 24 | "effect_str": "mon_mtc_imp_spearsman", 25 | "min_duration": 3000, 26 | "max_duration": 15000, 27 | "duration_increment": 400 28 | }, 29 | { 30 | "type": "SPELL", 31 | "id": "imp_sword_effect", 32 | "name": "summon imps", 33 | "description": "summons imps for Sense Lesser Demons", 34 | "valid_targets": [ "ground" ], 35 | "min_damage": 2, 36 | "max_damage": 4, 37 | "damage_increment": 0.14, 38 | "min_range": 3, 39 | "max_range": 6, 40 | "range_increment": 0.2, 41 | "min_aoe": 1, 42 | "max_aoe": 4, 43 | "aoe_increment": 0.2, 44 | "base_casting_time": 0, 45 | "difficulty": 0, 46 | "max_level": 15, 47 | "base_energy_cost": 0, 48 | "energy_source": "MANA", 49 | "shape": "blast", 50 | "effect": "summon", 51 | "effect_str": "mon_mtc_imp_swordsman", 52 | "min_duration": 3000, 53 | "max_duration": 15000, 54 | "duration_increment": 400 55 | }, 56 | { 57 | "type": "SPELL", 58 | "id": "imp_pyro_effect", 59 | "name": "summon imp pyromancers", 60 | "description": "summons imp pyromancers for Sense Lesser Demons", 61 | "valid_targets": [ "ground" ], 62 | "min_damage": 1, 63 | "max_damage": 3, 64 | "damage_increment": 0.14, 65 | "min_range": 3, 66 | "max_range": 6, 67 | "range_increment": 0.2, 68 | "min_aoe": 1, 69 | "max_aoe": 4, 70 | "aoe_increment": 0.2, 71 | "base_casting_time": 0, 72 | "difficulty": 0, 73 | "max_level": 15, 74 | "base_energy_cost": 0, 75 | "energy_source": "MANA", 76 | "shape": "blast", 77 | "effect": "summon", 78 | "effect_str": "mon_mtc_imp_pyro", 79 | "min_duration": 3000, 80 | "max_duration": 15000, 81 | "duration_increment": 400 82 | } 83 | ] -------------------------------------------------------------------------------- /starts, scenarios, and professions/start locations.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "start_location", 4 | "id": "sloc_inn_mtc", 5 | "name": "Inn", 6 | "terrain": [ "mtc_inn1_left", "mtc_inn1_right" ] 7 | } 8 | ] -------------------------------------------------------------------------------- /vehicles.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "hand_cart", 4 | "type": "vehicle", 5 | "name": "Hand Cart", 6 | "blueprint": [ "o" ], 7 | "parts": [ 8 | { "x": 0, "y": 0, "parts": [ "frame_wood_cross", "wheel_mount_wood", "wheel_wood_b" ] }, 9 | { "x": 0, "y": 0, "part": "wood box" } 10 | ] 11 | }, 12 | { 13 | "type": "vehicle", 14 | "id": "skiff", 15 | "name": "Skiff", 16 | "parts": [ 17 | { "x": 0, "y": 0, "parts": [ "frame_wood_cross", "wooden_aisle", "sail", "boat_board" ] }, 18 | { "x": 1, "y": 0, "parts": [ "frame_wood_cross", "seat_wood", "controls", "boat_board" ] }, 19 | { "x": 2, "y": 0, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 20 | { "x": -1, "y": 0, "parts": [ "frame_wood_cross", "wooden_aisle", "sail", "boat_board" ] }, 21 | { "x": -2, "y": 0, "parts": [ "frame_wood_cross", "wooden_aisle", "sail", "boat_board" ] }, 22 | { "x": 0, "y": 1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 23 | { "x": 1, "y": 1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 24 | { "x": 2, "y": 1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 25 | { "x": -1, "y": 1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 26 | { "x": -2, "y": 1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 27 | { "x": 0, "y": -1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 28 | { "x": 1, "y": -1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 29 | { "x": 2, "y": -1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 30 | { "x": -1, "y": -1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] }, 31 | { "x": -2, "y": -1, "parts": [ "frame_wood_cross", "wooden_aisle", "boat_board" ] } 32 | ] 33 | } 34 | ] --------------------------------------------------------------------------------