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

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

PixelDraw:
  ################
  # 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

  ###########
  # General #
  ###########
  trap_chance:
    # Percentage chance that any given filler item will be replaced by a trap.
    #
    # 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

  #########################
  # Randomization Options #
  #########################
  randomize_compatibility_chips:
    # Randomizes compatibility chips.
    # Each action that gets you them has as many checks as it would have chips normally.
    # Each chip is an item.
    'false': 0
    'true': 50

  additional_compatibility_chips:
    # Adds x amount of extra compatibility chips to the item pool (if there are not enough locations left, it will cut off).
    # This only matters if compatibility chips are randomized.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 20
    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-20: 0 # random value between 0 and 20

  randomize_enemy_deaths:
    # Adds locations for killing enemies.
    'false': 50
    'true': 0

  randomize_salesmen:
    # Randomizes salesmen items, aside from currency conversion.
    'false': 50
    'true': 0

  randomize_blueprints:
    # Randomizes blueprints
    'false': 50
    'true': 0

  #########
  # Links #
  #########
  death_link:
    # Whether deathlink will be used.
    'false': 50
    'true': 0

  death_link_amnesty:
    # The amount of deaths required to send a deathlink.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    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-20: 0 # random value between 1 and 20

  death_link_grace:
    # The amount of deathlinks required to die.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    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-20: 0 # random value between 1 and 20

  knockback_link:
    # Whether knockback link will be used.
    # This protocol sends a link whenever the player receives knockback.
    'false': 50
    'true': 0

  knockback_link_sources:
    # The sources that the player should send a knockback link from.
    # Acceptable values in this set are:
    # - Any (all sources)
    # - Actions (all actions)
    # - Enemies (all enemies)
    # - Bounds (the level bounds)
    # - Individual action names or enemy names, in constant case (such as RED_PILL or ZIG)
    ['Any']

  #####################
  # Goal Requirements #
  #####################
  actions_needed:
    # The amount of actions needed to goal. If this is 37 or less, it is possible to win without any checks.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 110
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-110: 0 # random value between 0 and 110
    not_for_goal: 0 # equivalent to 0
    all_base_actions: 0 # equivalent to 37
    default: 50 # equivalent to 60
    base_and_symbols: 0 # equivalent to 73
    without_blueprints: 0 # equivalent to 97
    max: 0 # equivalent to 110

  completion_shape:
    # The extra shape that you will need to scan to goal, after all other requirements.
    # If left blank, there is no ending shape needed. This must be either in binary or hexadecimal (starting with '0x' for hex, and either nothing or '0b' for binary) formats.
    # Example: 0xfec68aba9ac6fe (The game's logo)
    '': 50

  needed_patterns:
    # The extra patterns needed to goal. If left empty, none are needed.
    # These must be either in binary or hexadecimal (starting with '0x' for hex, and either nothing or '0b' for binary) formats.
    []

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