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

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

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

  goal:
    # How many lines to clear to win?
    # Number of checks will be this x2.5 this amount with tetrominos, x2 with pentominos, more with smaller shape types.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 1000
    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-1000: 0 # random value between 1 and 1000

  #################
  # Shape Options #
  #################
  starting_shapes:
    # Number of shapes to start with
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 3
    # Maximum value is 100
    7: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-3-100: 0 # random value between 3 and 100

  extra_shapes:
    # Extra shapes to add to the pool. This, as well as Line Clear Leniency, makes goaling easier/safer.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-100: 0 # random value between 10 and 100

  randomize_orientations:
    # Randomize the starting orientation of pieces? If disabled, pieces are oriented with flat side down.
    'false': 50
    'true': 0

  monomino_weight:
    # Ratio of monominos (1-block) to all shape types
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    none: 50 # equivalent to 0
    per unique shapes: 0 # equivalent to 1

  domino_weight:
    # Ratio of dominos (2-blocks) to all shape types
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    none: 50 # equivalent to 0
    per unique shapes: 0 # equivalent to 1

  tromino_weight:
    # Ratio of tromino (3-blocks) to all shape types
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    none: 50 # equivalent to 0
    per unique shapes: 0 # equivalent to 2

  tetromino_weight:
    # Ratio of tetromino (4-blocks) to all shape types
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    none: 0 # equivalent to 0
    per unique shapes: 50 # equivalent to 7

  pentomino_weight:
    # Ratio of pentomino (5-blocks) to all shape types
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    none: 50 # equivalent to 0
    per unique shapes: 0 # equivalent to 18

  ###################
  # Ability Options #
  ###################
  starting_drop_method:
    # How will shapes fall initially?
    gravity: 50
    soft_drop: 0
    hard_drop: 0

  early_second_drop:
    # Guarantee second drop ability to be in Sphere 1?
    # 
    # When Starting Drop Method is Gravity, the game could potentially be slow-going if you don't get another
    # drop ability soon. This should help solve that.
    'false': 0
    'true': 50

  early_rotate:
    # Guarantee one of your rotate abilities to be in Sphere 1?
    # 
    # Unnecessary for small/solo games since one will tend to be early anyway.
    # 
    # Better for large async games.
    'false': 50
    'true': 0

  next_piece_slots:
    # Number of Next Piece Slots present in the multiworld
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  hold_slots:
    # Number of Hold Slots present in the multiworld
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  ability_whitelist:
    # Abilities that are allowed to be in the item pool
    # 
    # Valid Abilities: 
    # "Kick", "Ghost Piece", "Rotate Counterclockwise", "Gravity", "Soft Drop", "Rotate Clockwise", "Lock Delay", "Hard Drop"
    ['Kick', 'Ghost Piece', 'Rotate Counterclockwise', 'Gravity', 'Soft Drop', 'Rotate Clockwise', 'Lock Delay', 'Hard Drop']

  ###############
  # Other Items #
  ###############
  tutorials:
    # How many times do you need to see the tutorial?
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 20
    2: 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

  trap_weight:
    # Ratio of traps to all shapes
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    1: 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

  #################
  # Logic Options #
  #################
  line_clear_leniency:
    # How many lines worth of extra blocks are needed for line clears to be considered in logic.
    # 
    # If zero, lines require the exact number of blocks it takes to clear them and all lines before.
    # This is not as strict as it sounds since stacking and clearing higher lines out-of-logic is still possible.
    # 
    # If you rely on trackers, it's recommended to set higher than zero.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    2: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10: 0 # random value between 0 and 10

  max_stacking_height:
    # How high logic expects you to stack blocks to reach coins. This is NOT relevant to line clear locations.
    # 
    # If set to board height (currently 20), what's possible is in logic. Setting it lower makes logic more lenient.
    # If you rely on trackers, it's recommended to set it lower otherwise it will create unneeded pressure.
    # 
    # Warning! Setting this higher than your board height can make the game more difficult or even impossible!
    # Only do this if you accept the risk and want to challenge yourself in a solo game.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    15: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

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

  death_on_restart:
    # When Death Link is enabled, send a death whenever you reset your board
    'false': 50
    'true': 0

  trap_link:
    # When you receive a trap, everyone who enabled trap link receives a trap. Of course, the reverse is true too.
    'false': 50
    'true': 0

  energy_link:
    # Allow contributing to the Energy Link pool by clearing blocks
    'false': 0
    'true': 50

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