# 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 Tyrian Template

game: Tyrian
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    Tyrian: 1.0.5 # Version of the world required for this yaml to work as expected.

Tyrian:
  ###########
  # Version #
  ###########
  enable_tyrian_2000_support:
    # Use data from Tyrian 2000 instead of Tyrian 2.1.
    # 
    # Turning this on is mandatory if you want to do anything with Episode 5. All of Tyrian 2000's weapons and new items will also be added to the item pool.
    'false': 50
    'true': 0

  ####################
  # Episodes & Goals #
  ####################
  episode_1:
    # Add Episode 1 (Escape) levels to the pool. Adds 93 locations across 16 levels.
    # 
    # If "goal" is chosen, you'll need to complete "ASSASSIN" (in addition to other episode goals) to win.
    goal: 50
    'on': 0
    'off': 0

  episode_2:
    # Add Episode 2 (Treachery) levels to the pool. Adds 75 locations across 12 levels.
    # 
    # If "goal" is chosen, you'll need to complete "GRYPHON" (in addition to other episode goals) to win.
    goal: 50
    'on': 0
    'off': 0

  episode_3:
    # Add Episode 3 (Mission: Suicide) levels to the pool. Adds 81 locations across 12 levels.
    # 
    # If "goal" is chosen, you'll need to complete "FLEET" (in addition to other episode goals) to win.
    goal: 50
    'on': 0
    'off': 0

  episode_4:
    # Add Episode 4 (An End to Fate) levels to the pool. Adds 100 locations across 18 levels.
    # 
    # If "goal" is chosen, you'll need to complete "NOSE DRIP" (in addition to other episode goals) to win.
    goal: 0
    'on': 0
    'off': 50

  episode_5:
    # Add Episode 5 (Hazudra Fodder) levels to the pool. Adds 56 locations across 7 levels.
    # 
    # This setting requires enabling Tyrian 2000 support to have any effect.
    # If "goal" is chosen, you'll need to complete "FRUIT" (in addition to other episode goals) to win.
    goal: 0
    'on': 0
    'off': 50

  data_cube_hunt:
    # If enabled, goal levels will not be in the item pool, but will be locked behind collecting a given amount of "Data Cube" items.
    # 
    # See data_cubes_required, data_cubes_total_percent, and data_cubes_total for more information.
    'false': 50
    'true': 0

  data_cubes_required:
    # The amount of data cubes that must be collected to access goal levels in Data Cube Hunt mode.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 99
    40: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-99: 0 # random value between 1 and 99

  data_cubes_total:
    # How many data cubes should be added to the pool in Data Cube Hunt mode, as an absolute amount.
    # 
    # You may specify 'percentage' to use the value from data_cubes_total_percent instead.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 400
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-400: 0 # random value between 1 and 400
    percentage: 50 # equivalent to 0

  data_cubes_total_percent:
    # How many data cubes should be added to the pool in Data Cube Hunt mode, as a percentage of the required amount.
    # 
    # 100 adds in exactly the number of data cubes required, 200 adds in twice that amount, etc.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 100
    # Maximum value is 400
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-100-400: 0 # random value between 100 and 400

  ######################
  # Difficulty Options #
  ######################
  difficulty:
    # Select the base difficulty of the game.
    # 
    # Anything beyond Impossible (4) is VERY STRONGLY not recommended unless you know what you're doing.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 8
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-8: 0 # random value between 1 and 8
    easy: 0 # equivalent to 1
    normal: 50 # equivalent to 2
    hard: 0 # equivalent to 3
    impossible: 0 # equivalent to 4
    suicide: 0 # equivalent to 6
    lord_of_game: 0 # equivalent to 8

  contact_bypasses_shields:
    # Direct contact with an enemy or anything else will completely power down your shields and deal armor damage.
    # 
    # Note that this makes the game significantly harder. Additional "Enemy approaching from behind" callouts will be given throughout the game if this is enabled.
    'false': 50
    'true': 0

  allow_excess_armor:
    # Twiddles, pickups, etc. can cause your ship to have more armor than its maximum armor rating.
    # 
    # Enabling this is vanilla behavior.
    # If disabled, a red line over the Armor meter will show the maximum armor level that you are allowed to attain, if not already at maximum armor.
    'false': 0
    'true': 50

  logic_difficulty:
    # Select how difficult the logic will be.
    # 
    # If 'beginner', most secret locations will be excluded by default, and additional leeway will be provided when calculating damage to ensure you can destroy things required to obtain checks.
    # If 'standard', only a few incredibly obscure locations will be excluded by default. There will always logically be a weapon loadout you can use to obtain checks that your current generator can handle (shields notwithstanding).
    # If 'expert', almost all locations will be in logic, and it will be expected that you can manage a weapon loadout that creates a power drain on your current generator.
    # If 'master', all locations will always be in logic, and you will also be expected to know technical things like specific triggers for secrets and other minute details. You will be expected to use twiddles if available, and little to no leeway will be provided with damage calculation.
    # If 'no_logic', all locations within a level will be assumed attainable if you can access that level at all, with zero regard for loadout or anything else. This is *extremely* dangerous and should be used with caution.
    beginner: 0
    standard: 50
    expert: 0
    master: 0
    no_logic: 0

  logic_boss_timeout:
    # If enabled, bosses that can be timed out may logically require you to do so; requiring you to dodge them until the level automatically completes to obtain items from a shop afterward.
    'false': 50
    'true': 0

  #################
  # Other 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

  local_level_percent:
    # Set some percentage of levels, chosen randomly, to be local to your own world.
    # 
    # Increasing this may reduce the chance of being in BK mode (having no checks available), but may also result in less interaction with other worlds.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  add_bonus_games:
    # Add the three bonus games into the item pool as additional filler.
    # 
    # If 'off', these bonus games will be available by default.
    # If 'on', the items for each bonus game will need to be obtained to play them, just like any other level.
    'false': 50
    'true': 0

  progressive_items:
    # How items with multiple tiers (in this game, only generators) should be rewarded.
    # 
    # If 'off', each item can be independently picked up, letting you skip tiers. Picking up an item of a lower tier after an item of a higher tier does nothing.
    # If 'on', each "Progressive" item will move you up to the next tier, regardless of which one you find.
    'false': 0
    'true': 50

  specials:
    # Enable or disable specials (extra behaviors when starting to fire).
    # 
    # If 'on', your ship will have a random special from the start.
    # If 'as_items', specials will be added to the item pool, and can be freely chosen once acquired.
    # If 'off', specials won't be available at all.
    'on': 0
    as_items: 50
    'off': 0

  twiddles:
    # Enable or disable twiddles (Street Fighter-esque button combinations).
    # 
    # If 'on', your ship will have up to three random twiddles. Their button combinations will be the same as in the original game; as will their use costs.
    # If 'off', no twiddles will be available.
    # 
    # The following option is not currently available but is planned in the future:
    # If 'chaos', your ship will have up to three random twiddles with new inputs. They may have new, unique behaviors; and they may have different use costs.
    'on': 50
    'off': 0

  random_starting_weapon:
    # Choose whether you start with the default Pulse-Cannon, or some other random weapon.
    # 
    # The weapon you receive depends on logic difficulty settings, among other things. In particular, adding generators to your start inventory may result in a better selection for lower logic difficulties.
    # 
    # Note: If your start inventory contains a front weapon, you will not receive another starting weapon (and therefore, this option will be ignored).
    'false': 50
    'true': 0

  starting_max_power:
    # Change the maximum power level you're allowed to upgrade weapons to when you start the seed.
    # 
    # Increasing this can result in more varied seeds, and/or easier starts.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 11
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-11: 0 # random value between 1 and 11

  starting_money:
    # Change the amount of money you start the seed with.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 9999999
    10000: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-9999999: 0 # random value between 0 and 9999999

  shop_mode:
    # Determine if shops exist and how they behave.
    # 
    # If 'none', shops will not exist; credits will only be used to upgrade weapons.
    # If 'standard', each level will contain a shop that is accessible after clearing it. The shop will contain anywhere from 1 to 5 additional checks for the multiworld.
    # If 'hidden', shops will behave as above, but will not tell you what you're buying until after you spend credits.
    # If 'shops_only', shops will be the only location checks available; items within levels will only contain varying amounts of money for yourself. Note that this mode is designed for "no logic", and is extremely restrictive; you may need to tweak your logic difficulty settings when playing solo.
    none: 0
    standard: 50
    hidden: 0
    shops_only: 0

  shop_item_count:
    # The number of shop location checks that will be added.
    # 
    # All levels are guaranteed to have at least one shop item if there's more shop location checks than levels.
    # You may also specify 'always_one', 'always_two', 'always_three', 'always_four', or 'always_five' to guarantee that shops will have exactly that many items.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 325
    100: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-325: 0 # random value between 1 and 325
    always_one: 0 # equivalent to -1
    always_two: 0 # equivalent to -2
    always_three: 0 # equivalent to -3
    always_four: 0 # equivalent to -4
    always_five: 0 # equivalent to -5

  money_pool_scale:
    # Change the amount of money in the pool, as a percentage.
    # 
    # At 100 (100%), the total amount of money in the pool will be equal to the cost of upgrading the most expensive front weapon to the maximum level, plus the cost of purchasing all items from every shop.
    # 
    # Note that this does not take into account money that you earn while playing levels, so it is safe to set this to a relatively low value.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 200
    80: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-200: 0 # random value between 10 and 200

  base_weapon_cost:
    # Change the amount that weapons (and, in turn, weapon power upgrades) cost.
    # 
    # If 'original', weapons will cost the same amount that they do in the original game.
    # If 'balanced', prices will be changed around such that generally more powerful and typically used weapons (Laser, etc.) will cost more.
    # If 'randomized', weapons will have random prices.
    # 
    # You may also input a positive integer to force all base weapon prices to that amount.
    original: 50
    balanced: 0
    randomized: 0

  ################################
  # Visual Tweaks & Other Things #
  ################################
  force_game_speed:
    # Force the game to stay at a specific speed setting, or "off" to allow it to be freely chosen.
    'off': 50
    slug_mode: 0
    slower: 0
    slow: 0
    normal: 0
    turbo: 0

  christmas_mode:
    # Use the Christmas set of graphics and sound effects.
    'false': 50
    'true': 0

  death_link:
    # When you die, everyone else with DeathLink enabled also dies. The reverse is also true.
    # 
    # Can be toggled off in the Options menu, if enabled.
    'false': 50
    'true': 0

  ###########################
  # Item & Location Options #
  ###########################
  remove_from_item_pool:
    # Allows customizing the item pool by removing unwanted items from it.
    # 
    # Note: Items in starting inventory are automatically removed from the pool; you don't need to remove them here too.
    {}

  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_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.
    []
