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

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

Iji:
  ################
  # 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 Options #
  ################
  end_goal:
    # Sector 3: Reach the end of Sector 3 and defeat Elite Krotera. Sectors 4-X will be excluded.
    # Sector 5: Reach the end of Sector 5 and defeat Assassin Asha. Sectors 6-X will be excluded.
    # Sector 7: Reach the end of Sector 7 and defeat Sentinel Proxima. Sectors 8-X will be excluded.
    # Sector 9: Reach the end of Sector 9 and defeat Annihilator Iosa. Sector X will be excluded.
    # Sector X: Reach the end of Sector X and defeat General Tor. The vanilla ending of the game.
    # Sector Z: Enter and reach the end of Sector Z. Sectors 1-X are included.
    # Sector Y: Obtain the Null Driver from Sector Z, defeat General Tor with it, then reach the end of Sector Y.
    sector_3: 0
    sector_5: 0
    sector_7: 0
    sector_9: 0
    sector_x: 50
    sector_z: 0
    sector_y: 0

  goal_posters:
    # How many Poster locations you are required to find before being able to complete your goal.
    # If you chose Sector X as your goal, the elevator at the end of the sector will be deactivated until you find them.
    # If you chose Sector Y or Sector Z as your goal, you won't be able to enter Sector Z until you find them.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10
    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-10: 0 # random value between 0 and 10

  goal_ribbons:
    # What percentage of your Ribbon items you need to obtain to complete your goal.
    # If you chose Sector 3, 5, 7, or 9 as your goal, the boss arena in that Sector will be blocked by a door until you get enough.
    # If you chose Sector X as your goal, the elevator at the end of the sector will be deactivated until you get enough.
    # If you chose Sector Y or Sector Z as your goal, you won't be able to enter Sector Z until you get enough.
    #
    # 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

  ribbon_items:
    # How many Ribbon items to add to the item pool.
    # If there are fewer available locations than this number,
    # a number of ribbons equal to the number of remaining locations will be added instead.
    # If your goal requires zero ribbons, no ribbons will be added.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    10: 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

  allow_sector_z:
    # Whether or not your world will be able to enter Sector Z, and whether or not you'll be able to reach the Null Driver
    # If your goal is Sector Z, this option won't do anything unless you choose to also enable the Null Driver
    # If your goal is Sector Y, this option won't do anything at all.
    # You can also additionally lock Sector Z behind the same ribbon/poster requirement as your goal
    # If your chosen goal allows you to reach Sector X, and you choose to allow getting the null driver here, Sector Y locations will also be added.
    'off': 50
    sector_z: 0
    sector_z_and_nulldriver: 0
    sector_z_with_goal_requirement: 0
    sector_z_and_null_driver_with_goal_requirement: 0

  ####################
  # Location Options #
  ####################
  poster_locations:
    # If enabled, Finding posters sends checks.
    'false': 0
    'true': 50

  supercharge_locations:
    # Whether or not collecting Supercharges are checks.
    # Off: Supercharges are not locations.
    # Locations Only: Supercharges are locations and award a stat point as normal
    # Locations and Items: Supercharges are locations, and do NOT award stat points. Instead, 10 Supercharge items will be added.
    'off': 50
    locations_only: 0
    locations_and_items: 0

  basic_weapon_locations:
    # How obtaining new weapons will send checks.
    # First Time: Assimilating a basic Nanoweapon sends a check, one per type of weapon.
    # First Per Sector: Assimilating a basic Nanoweapon sends a check, one per type of weapon per Sector.
    # All Instances: All instances of basic Nanoweapons in the game send checks
    first_time: 50
    first_per_sector: 0
    all_instances: 0

  logbook_locations:
    # If enabled, each logbook in the game is a check
    'false': 50
    'true': 0

  security_box_locations:
    # If enabled, opening the locked Security Boxes will be checks.
    'false': 50
    'true': 0

  nano_overload_locations:
    # If enabled, picking up Nano Overloads will be checks.
    'false': 50
    'true': 0

  ################
  # Item Options #
  ################
  special_trait_items:
    # If enabled, the Special Trait items will be shuffled into the item pool.
    'false': 50
    'true': 0

  extra_items:
    # How many duplicates of each major item to add to the pool.
    # Negative numbers will choose a random number between 0 and the absolute value of that number.
    # e.g. -7 will choose a random value between 0 and 7.
    # 
    # If you choose to have extra sector accesses with out of order sectors enabled,
    # an even split of the sector accesses will be added.
    # 
    # Duplicates of Special Trait items (The ones in capital letters) will only be added
    # if Special Trait Items are enabled
    # 
    # Duplicate Jump and Armor upgrades can appear anywhere in the multiworld,
    # even if vanilla locations are chosen for the respective original items.
    # 
    # Duplicates of Fire Anytime will only be added if debug_item is set to shuffle
    # 
    # Note: If there aren't enough locations to fit all the duplicates, it will instead add
    # as much as it can, leaving no room for filler or traps.
    # Also, Duplicates are created after Ribbons, so if your chosen Ribbon count fills up all
    # remaining locations in your world, no duplicate items will be created at all.
    ADVANCED RECOVERY: 0
    Armor Upgrade: 0
    Assimilate Stat: 0
    Attack Stat: 0
    CYBERNETIC ENDURANCE: 0
    Crack Stat: 0
    ELECTRONIC MASTERY: 0
    Fire Anytime: 0
    GLORY: 0
    Health Stat: 0
    IMPROVED AUTOLOADING: 0
    Jump Upgrade: 0
    Komato Stat: 0
    SUPPRESSION: 0
    Sector Access: 0
    Strength Stat: 0
    Supercharge: 0
    Tasen Stat: 0
    VENGEANCE: 0

  jump_upgrades:
    # How Jump upgrade items should be handled.
    # 
    # Vanilla: Jump Upgrade items can be found in their vanilla locations
    # 
    # Shuffle: Jump Upgrade items can be found anywhere in the multiworld.
    vanilla: 50
    shuffle: 0

  armor_upgrades:
    # How armor upgrade items and locations should be handled.
    # 
    # Vanilla: Armor Upgrade items will be found in their vanilla locations.
    # 
    # Shuffle: Armor Upgrade items can be found anywhere in the multiworld.
    # 
    # Cursed: The player starts with only 1/4 of their Armor bar.
    #     The first three armor upgrades found give an additional 1/4 of the bar,
    #     and the last two increase the Armor stat as normal.
    vanilla: 50
    shuffle: 0
    vanilla_cursed: 0
    shuffle_cursed: 0

  levelsanity:
    # If enabled, Leveling up will no longer award stat points.
    # Instead, 50 Supercharge items will be added to the multiworld.
    'false': 50
    'true': 0

  debug_item:
    # This option adds the 'Fire Anytime' from the vanilla game's debug options as an item to your world.
    # This item allows you to fire your weapon even while ducking or in midair.
    # It is an extremely powerful item, and opens up a ton of skips in late-game sectors,
    # almost all of which are currently NOT accounted for in logic (But they will be in the future.)
    # This option will also add the AREYOUSERIOUS logbook in Sector 7 as a location, which is inaccessible without this item.
    'off': 50
    shuffle: 0

  ################
  # Trap Options #
  ################
  trap_percentage:
    # What percentage of filler items should be replaced by traps
    #
    # 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

  trap_weights:
    # How likely each trap is to be chosen when creating a trap item.
    # Choosing 0 disables a trap entirely.
    # Rocket to the Face spawns a rocket projectile that flies toward Iji.
    # Banana spawns an exploding banana projectile at Iji's position.
    # Blits Nest spawns a handful of Blit enemies at Iji's position.
    # Turbo Mode doubles the game speed for 20 seconds.
    # Clown Shoes makes Iji's footsteps squeaky for 1 minute.
    # Power Nap knocks Iji down for 10 seconds (or until damaged)
    # Null Drive randomly swaps around background textures, effect persists until the game is closed.
    Banana: 20
    Blits Nest: 20
    Clown Shoes: 10
    Null Drive: 0
    Power Nap: 20
    Rocket to the Face: 20
    Turbo Mode: 10

  null_drive_factor:
    # How severe the effect of Null Drive traps are.
    # The higher the value, the more backgrounds/tileset images get reassigned.
    # 50 is the severity used by the vanilla Null Driver
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    25: 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

  #########################
  # Miscellaneous Options #
  #########################
  health_balancing:
    # To help push health stat items into earlier locations in the multiworld,
    # and to ensure that you don't have to play late game sectors with low health,
    # this option will force Sectors to require having a minimum number of Health Stat items to be in logic.
    # It won't physically lock you out of the Sectors, so you can still play Sectors out of logic if you want.
    # 
    # Values should range from 0 to 9.
    # Alternatively, you can also enter negative numbers to choose a random value for that sector.
    # The absolute value of a negative number determines the maximum range for that random value.
    # e.g. a value of -9 will allow any number between 0 and 9 to be chosen,
    # and a value of -3 will choose a number between 0 and 3.
    # 
    # NOTE: Later sectors can be brutally difficult with low health,
    # only mess around with this if you are absolutely confident in your abilities.
    Sector 2: 1
    Sector 3: 2
    Sector 4: 3
    Sector 5: 4
    Sector 6: 5
    Sector 7: 6
    Sector 8: 7
    Sector 9: 8
    Sector X: 9

  logic_difficulty:
    # Normal Logic: Expects the player to reach locations in the normal, dev-intended ways
    # 
    # Hard Logic: Expects the player to utilize vanilla methods that would be needed to
    # reach posters and supercharges in order to reach all locations.
    # 
    # Extreme Logic: Same as Hard Logic, but some locations may require more setup and/or longer chains of skips
    # 
    # Ultimortal Logic: Expects more unorthodox skips from the player
    # using techniques that would otherwise never be required.
    # 
    # reallyjoel's Dad Logic: Anything goes. If it's technically possible, it's in logic.
    normal_logic: 50
    hard_logic: 0
    extreme_logic: 0
    ultimortal_logic: 0
    reallyjoelsdad_logic: 0

  out_of_order_sectors:
    # If enabled, Sector Access Items will give access to a specific sector, and Sectors may be accessed outside their intended order.
    # If there are extra Sector Access Items are in the pool, the extras will choose a semi-random Sector to grant access to.
    # 
    # If disabled, Sector Access Items will instead be progressive, giving access to Sectors in their vanilla order.
    'false': 50
    'true': 0

  deathlink:
    # When you die, everyone dies. The reverse is also true.
    # 
    # If DeathLinkDamage is set below 20, you will instead take damage when sent a death
    'false': 50
    'true': 0

  deathlink_damage:
    # How much HP damage you take when receiving a death from another player.
    # If set to 20, receiving a death instantly kills you instead.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    20: 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

  music_shuffle:
    # Whether or not to randomly reassign music tracks.
    # Off: No shuffled music
    # Levels Only: Only Level Music gets shuffled amongst each other.
    # Full Shuffle: All Looping music tracks get shuffled amongst each other
    # Singularity: All looping music tracks get replaced by one single track
    'off': 50
    levels_only: 0
    full_shuffle: 0
    singularity: 0

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