# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Crystalis Template

game: Crystalis
requires:
  version: 0.6.6 # Version of Archipelago required for this yaml to work as expected.
  game:
    Crystalis: 2.0.4 # Version of the world required for this yaml to work as expected.

Crystalis:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  #################
  # World Options #
  #################
  shuffle_areas:
    # Shuffles some or all area connections.
    'false': 50
    'true': 0

  shuffle_houses:
    # Shuffles all the house entrances, as well as a handful of other things, like the
    # palace/fortress-type entrances at the top of several towns, and standalone houses.
    'false': 50
    'true': 0

  randomize_tradeins:
    # Items expected by various NPCs will be shuffled: specifically, Statue of Onyx, Kirisa Plant, Love Pendant, Ivory
    # Statue, and Fog Lamp. Rage will expect a random sword, and Tornel will expect a random bracelet.
    'false': 50
    'true': 0

  unidentified_key_items:
    # Item names will be generic and effects will be shuffled. This includes keys, flutes, lamps, and statues.
    'false': 50
    'true': 0

  randomize_wall_elements:
    # Walls will require a randomized element to break. Normal rock and ice walls will indicate the required element by
    # the color (light grey or yellow for wind, blue for fire, bright orange ("embers") for water, or dark grey ("steel")
    # for thunder. The element to break these walls is the same throughout an area. Iron walls require a one-off random
    # element, with no visual cue, and two walls in the same area may have different requirements.
    'false': 50
    'true': 0

  shuffle_goa:
    # The four areas of Goa fortress will appear in a random order.
    'false': 50
    'true': 0

  randomize_sprite_colors:
    # Monsters and NPCs will have different colors.
    'false': 50
    'true': 0

  randomize_wild_warp:
    # Wild warp will go to Mezame Shrine and 15 other random locations. These locations will be considered in-logic.
    'false': 50
    'true': 0

  ###################
  # Routing Options #
  ###################
  story_mode:
    # Draygon 2 won't spawn unless you have all four swords and have defeated all major bosses of the tetrarchy.
    'false': 50
    'true': 0

  no_bow_mode:
    # No items are required to finish the game. An exit is added from Mezame shrine directly to the Draygon 2 fight
    # (and the normal entrance is removed). Draygon 2 spawns automatically with no Bow of Truth.
    'false': 50
    'true': 0

  orbs_not_required:
    # If true, walls can be broken and bridges formed with level 1 shots.
    'false': 50
    'true': 0

  thunder_warp:
    # Determines where the player is warped to when receiving the Sword of Thunder.
    # Shuffled: The Sword of Thunder will warp you to a random town.
    # None: The Sword of Thunder won't warp you. (Rt)
    # <town name>: The Sword of Thunder will warp you to the chosen town.
    shuffled: 50
    none: 0
    leaf: 0
    brynmaer: 0
    oak: 0
    nadares: 0
    portoa: 0
    amazones: 0
    joel: 0
    zombie_town: 0
    swan: 0
    shyron: 0
    goa: 0
    sahara: 0

  vanilla_dolphin:
    # By default, the randomizer changes a number of dolphin and boat interactions: (1) healing the dolphin and having
    # the Shell Flute is no longer required before the fisherman spawns: instead, he will spawn as soon as you have the
    # item he wants; (2) talking to Kensu in the beach cabin is no longer required for the Shell Flute to work: instead,
    # the Shell Flute will always work, and Kensu will spawn after the Fog Lamp is turned in and will give a key item
    # check. This flag restores the vanilla interaction where healing and shell flute are required, and Kensu no longer
    # drops an item.
    'false': 50
    'true': 0

  ##################
  # Glitch Options #
  ##################
  fake_flight:
    # Fake flight allows using Dolphin and Rabbit Boots to fly up the waterfalls in the Angry Sea (without calming the
    # whirlpools). This is done by swimming up to a diagonal beach and jumping in a different direction immediately before
    #  disembarking.  Note: Fake flight cannot be disabled. The available options are in_logic or out_of_logic.
    out_of_logic: 50
    in_logic: 0

  statue_glitch:
    # Statue glitch allows getting behind statues that block certain entrances: the guards in Portoa, Amazones, Oak,
    # Goa, and Shyron, as well as the statues in the Waterfall Cave. It is done by approaching the statue from the top
    # right and holding down and left on the controller while mashing B.
    disabled: 50
    out_of_logic: 0
    in_logic: 0

  mt_sabre_skip:
    # Entering Mt Sabre North normally requires (1) having Teleport, and (2) talking to the rabbit in Leaf after the
    # abduction (via Telepathy). Both of these requirements can be skipped: first by flying over the river in Cordel plain
    # rather than crossing the bridge, and then by threading the needle between the hitboxes in Mt Sabre North.
    disabled: 50
    out_of_logic: 0
    in_logic: 0

  statue_gauntlet_skip:
    # The shooting statues in front of Goa and Stxy normally require Barrier to pass safely. With this flag, Flight can
    # also be used by flying around the edge of the statue.
    disabled: 50
    out_of_logic: 0
    in_logic: 0

  sword_charge_glitch:
    # Sword charge glitch allows charging one sword to the level of another sword by equipping the higher-level sword,
    # re-entering the menu, changing to the lower-level sword without exiting the menu, creating a hard save, resetting,
    # and then continuing.
    disabled: 50
    out_of_logic: 0
    in_logic: 0

  trigger_skip:
    # A wide variety of triggers and exit squares can be skipped by using an invalid item every frame while walking.
    # This allows bypassing both Mt Sabre North entrance triggers, the Evil Spirit Island entrance trigger, triggers for
    # guards to move, slopes, damage tiles, and seamless map transitions.
    disabled: 50
    out_of_logic: 0
    in_logic: 0

  rage_skip:
    # Rage can be skipped by damage-boosting diagonally into the Lime Tree Lake screen. This provides access to the
    # area beyond the lake if flight or bridges are available. For simplicity, the logic only assumes this is possible if
    # there's a flyer.
    disabled: 50
    out_of_logic: 0
    in_logic: 0

  #####################
  # Aesthetic Options #
  #####################
  randomize_background_music:
    # Randomizes or disables the background music.
    vanilla: 50
    shuffle: 0
    disable: 0

  randomize_map_colors:
    # Randomizes the palettes of the background tiles.
    'false': 50
    'true': 0

  ###################
  # Monster Options #
  ###################
  randomize_monster_weaknesses:
    # Monster and boss elemental weaknesses are shuffled.
    'false': 50
    'true': 0

  oops_all_mimics:
    # Every chest is now a mimic, and killing the mimic will drop the real item chest. Careful when killing the mimic,
    # if it drops the chest out of reach you'll need to reset the room!
    'false': 50
    'true': 0

  shuffle_tower_robots:
    # Tower robots will be shuffled into the normal pool.
    'false': 50
    'true': 0

  #####################
  # Easy Mode Options #
  #####################
  dont_shuffle_mimics:
    # Mimics will be in their vanilla locations.
    'false': 50
    'true': 0

  keep_unique_items_and_consumables_separate:
    # Normally all items and mimics are shuffled into a single pool and distributed from there. If this flag is set,
    # unique items (specifically, anything that cannot be sold) will only be found in either (a) checks that held unique
    # items in vanilla, or (b) boss drops. Chests containing consumables in vanilla may be safely ignored, but chests
    # containing unique items in vanilla may still end up with non-unique items because of bosses like Vampire 2 that drop
    # consumables. If mimics are shuffled, they will only be in consumable locations. These locations are tracked by the
    # multiworld, so they will still count against your hint points, but they will only contain your non-unique items.
    'false': 50
    'true': 0

  decrease_enemy_damage:
    # Enemy attack power will be significantly decreased in the early game (by a factor of 3). The gap will narrow in
    # the mid-game and eventually phase out at scaling level 40.
    'false': 50
    'true': 0

  guarantee_starting_sword:
    # The Leaf elder is guaranteed to give a sword. It will not be required to deal with any enemies before finding the
    # first sword.
    'false': 50
    'true': 0

  guarantee_refresh:
    # Guarantees the Refresh spell will be available before fighting Tetrarchs.
    'false': 50
    'true': 0

  experience_scales_faster:
    # Less grinding will be required to "keep up" with the game difficulty.
    'false': 50
    'true': 0

  no_community_jokes:
    # Skip community jokes, such as funny/misspelled item, monster, or character names. This will make it easier to
    # look up information in guides/FAQs if necessary.
    'false': 50
    'true': 0

  #########################
  # No Guarantees Options #
  #########################
  battle_magic_not_guaranteed:
    # Normally, the logic will guarantee that level 3 sword charges are available before fighting the tetrarchs (with
    # the exception of Karmine, who only requires level 2). This disables that check.
    'false': 50
    'true': 0

  tink_mode:
    # Enables "tink strats", where wrong-element swords will still do a single damage per hit. Player may be required
    # to fight monsters (including bosses) with tinks.
    'false': 50
    'true': 0

  barrier_not_guaranteed:
    # Normally, the logic will guarantee Barrier before entering Stxy, the Fortress, or fighting Karmine. This puts
    # those locations in logic with any sword (to farm money) and one of Shield Ring, Refresh, or a place to buy Medical
    # Herbs.
    'false': 50
    'true': 0

  gas_mask_not_guaranteed:
    # The logic will not guarantee gas mask before needing to enter the swamp, nor will leather boots (or hazmat suit)
    # be guaranteed to cross long stretches of spikes. Gas mask is still guaranteed to kill the insect.
    'false': 50
    'true': 0

  #####################
  # Hard Mode Options #
  #####################
  dont_buff_consumables:
    # If this is set to true, Medical Herb is not buffed to heal 80 damage, which is helpful to make up for cases where
    # Refresh is unavailable early. Fruit of Power is not buffed to restore 56 MP.
    'false': 50
    'true': 0

  max_scaling_in_tower:
    # Enemies in the tower spawn at max scaling level.
    'false': 50
    'true': 0

  experience_scales_slower:
    # More grinding will be required to "keep up" with the difficulty.
    'false': 50
    'true': 0

  charge_shots_only:
    # Stabbing is completely ineffective. Only charged shots work.
    'false': 50
    'true': 0

  blackout:
    # All caves and fortresses are permanently dark.
    'false': 50
    'true': 0

  permadeath:
    # Hardcore mode: checkpoints and saves are removed.
    'false': 50
    'true': 0

  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  ###################
  # Vanilla Options #
  ###################
  dont_buff_dyna:
    # By default, we make the Dyna fight a bit more of a challenge. Side pods will fire significantly more. The safe
    # spot has been removed. The revenge beams pass through barrier. Side pods can now be killed. This flag prevents that
    # change.
    'false': 50
    'true': 0

  dont_buff_bonus_items:
    # Leather Boots are changed to Speed Boots, which increase player walking speed (this allows climbing up the slope
    # to access the Tornado Bracelet chest, which is taken into consideration by the logic). Deo's pendant restores MP
    # while moving. Rabbit boots enable sword charging up to level 2 while walking (level 3 still requires being
    # stationary, so as to prevent wasting tons of magic). Turning this on removes all these changes.
    'false': 50
    'true': 0

  vanilla_maps:
    # Normally the randomizer adds a new "East Cave" to Valley of Wind, borrowed from the GBC version of the game. This
    # cave contains two chests (one considered a key item) on the upper floor and exits to two random areas (chosen
    # between Lime Tree Valley, Cordel Plain, Goa Valley, or Desert 2), one unblocked on the lower floor, and one down
    # the stairs and behind a rock wall from the upper floor. This flag prevents adding that cave. If set as "Lime
    # Passage" then a direct path will instead be added between Valley of Wind and Lime Tree Valley.
    gbc_cave: 50
    lime_passage: 0
    vanilla: 0

  vanilla_shops:
    # By default, we disable shop glitch, shuffle shop contents, and tie the prices to the scaling level (item shops
    # and inns increase by a factor of 2 every 10 scaling levels, armor shops decrease by a factor of 2 every 12 scaling
    # levels). This flag prevents all of these changes, restoring shops to be completely vanilla.
    'false': 50
    'true': 0

  vanilla_wild_warp:
    # By default, Wild Warp is nerfed to only return to Mezame Shrine. This flag restores it to work like normal. Note
    # that this will put all wild warp locations in logic unless the flag is set as "Out Of Logic".
    disabled: 50
    out_of_logic: 0
    vanilla: 0

  vanilla_hud:
    # By default, the blue status bar (HUD) at the bottom of the screen is reorganized a bit, including displaying
    # enemies' names and HP. This disables those changes.
    'false': 50
    'true': 0

  ###########################
  # Quality of Life Options #
  ###########################
  dont_auto_equip_upgrades:
    # Prevents adding a quality-of-life improvement to automatically equip the corresponding orb/bracelet whenever
    # changing swords.
    'false': 50
    'true': 0

  disable_controller_shortcuts:
    # By default, we disable second controller input and instead enable some new shortcuts on controller 1: Start+A+B
    # for wild warp, and Select+B to quickly change swords. To support this, the action of the start and select buttons is
    # changed slightly. This flag disables this change and retains normal behavior.
    'false': 50
    'true': 0

  audible_wall_cues:
    # Provide an audible cue when failing to break a non-iron wall. The intended way to determine which sword is
    # required for normal cave walls is by looking at the color. This causes the level 3 sword sound of the required
    # element to play when the wall fails to break. Note that fortress walls (iron in vanilla) do not give this hint,
    # since there is no visual cue for them, either.
    'false': 50
    'true': 0

  ##########
  # Plando #
  ##########
  plando_connections:
    # Generic connection plando. Format is:
    # - entrance: "Entrance Name"
    #   exit: "Exit Name"
    #   percentage: 100
    # Percentage is an integer from 0 to 100 which determines whether that connection will be made. Defaults to 100 if omitted.
    # Note: direction is ignored and assumed to always be "both", as uncoupled ER is not supported for Crystalis.
    []

  boss_weakness_plando:
    # Allows defining what elements the bosses of the game are vulnerable to. Note that for Vampire 2 and Giant Insect,
    # this element corresponds to what element the boss is immune to, while for the Tetrarchs, this element corresponds
    # to the element the boss is weak to. If a boss is not specified in the list, then its weakness is chosen randomly,
    # as it normally would be. This option only does anything when randomize_monster_weaknesses is set to true.
    {}

  wall_element_plando:
    # Allows defining what elements the walls of the game are vulnerable to. If a wall is not specified in the list,
    # then its weakness is chosen randomly, as it normally would be. This option only does anything when
    # randomize_wall_elements is set to true. Generate a spoiler log with randomize_wall_elements on for a list of valid
    # wall names, or see WALL_NAMES in types.py in the GitHub repository.
    {}

  trade_in_plando:
    # Allows defining what NPC accepts what item. If one of the trade-in NPCs is not specified, it is randomized as
    # normal from among the non-plandoed options. Format is "NPC Name": "Trade-in Name". Valid NPC names are Akahana,
    # Aryllis, Fisherman, Kensu, and Slimed Kensu. Valid item names are Statue of Onyx, Fog Lamp, Love Pendant, Kirisa
    # Plant, and Ivory Statue. Does nothing if randomize_tradeins is false.
    {}

  key_item_name_plando:
    # Allows defining names of unidentified key items, within the limits of the datapackage. Format is "Original
    # Name": "New Name". Works on Bows, Keys, Lamps, Statues, and Flutes. Does nothing if unidentified_key_items is set
    # to false.
    {}

  shop_inventory_plando:
    # Allows defining what each item shop has available for purchase. Format is "<town name> Item Shop": ["<item
    # name 1>", "<item name 2>", ...]. Does nothing if vanilla_shops is true. Shops you plando will sell exactly the
    # items you specify. Other shops will be shuffled among themselves. At least one non-Shyron shop must sell Medical
    # Herbs, and at least one non-Shyron shop must sell Warp Boots.
    {}

  wild_warp_plando:
    # Allows defining what screens can be wild warped to, along with how many wild warps are available. The list may
    # be anywhere from 1 to 15 entries long, where each entry is either a screen name or "Any". Any means that slot will
    # be randomly filled in from among the valid remaining screens. If left empty, wild warps will be completely random,
    # as usual. Only does something if randomize_wild_warp is true and vanilla_wild_warp is disabled. For a full list of
    # screen names, look at worlds/crystalis/types.py for SCREEN_NAMES_TO_IDS.
    []

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_inventory_from_pool:
    # Start with the specified amount of these items and don't place them in the world. Example: "Bomb: 1"
    # 
    # The game decides what the replacement items will be.
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
