Ziktofel / Archipelago

Archipelago Multi-Game Randomizer and Server
https://archipelago.gg
Other
0 stars 6 forks source link

Bug: Upgrades in item pool for units that are not in the item pool #187

Closed MatthewMarinets closed 2 months ago

MatthewMarinets commented 2 months ago

What happened?

Reported in the main chat by Desso around here: https://discord.com/channels/731205301247803413/980554570075873300/1226371285052031058

also my game gave me an upgrade for a unit cant get

The main issue is Tempest Tectonic Destabilizers are in the world and were recieved, while Tempests are not in the seed. Hopop and Sraw also noted Reaper U-238 Rounds with no reapers, and Banshee Shockwave Missile Battery with no banshees / dusk wings.

Dragorrod helpfully provided a link to the seed: https://archipelago.gg/seed/gihLu8B5STiJ601zeOpvfA

Desso's yaml

Starcraft 2:
  progression_balancing: 0
  accessibility: items
  game_difficulty: brutal
  game_speed: fast
  disable_forced_camera: 'false'
  skip_cutscenes: 'false'
  all_in_map: ground
  mission_order: medium_grid
  maximum_campaign_size: 83
  grid_two_start_positions: 'false'
  player_color_terran_raynor: rainbow
  player_color_protoss: rainbow
  player_color_zerg: rainbow
  player_color_zerg_primal: rainbow
  enable_wol_missions: 'true'
  enable_prophecy_missions: 'true'
  enable_hots_missions: 'true'
  enable_lotv_prologue_missions: 'true'
  enable_lotv_missions: 'true'
  enable_epilogue_missions: 'true'
  enable_nco_missions: 'false'
  shuffle_campaigns: 'true'
  shuffle_no_build: 'true'
  starter_unit: balanced
  required_tactics: standard
  ensure_generic_items: 25
  min_number_of_upgrades: 2
  max_number_of_upgrades: -1
  generic_upgrade_missions: 0
  generic_upgrade_research: vanilla
  generic_upgrade_items: individual_items
  kerrigan_presence: vanilla
  kerrigan_levels_per_mission_completed: 0
  kerrigan_levels_per_mission_completed_cap: -1
  kerrigan_level_item_sum: 70
  kerrigan_level_item_distribution: smooth
  kerrigan_total_level_cap: -1
  start_primary_abilities: 0
  kerrigan_primal_status: vanilla
  spear_of_adun_presence: everywhere
  spear_of_adun_present_in_no_build: 'true'
  spear_of_adun_autonomously_cast_ability_presence: everywhere
  spear_of_adun_autonomously_cast_present_in_no_build: 'true'
  grant_story_tech: 'false'
  grant_story_levels: minimum
  take_over_ai_allies: 'false'
  locked_items: []
  excluded_items: []
  excluded_missions: []
  exclude_very_hard_missions: default
  nco_items: 'true'
  bw_items: 'true'
  ext_items: 'true'
  vanilla_locations: enabled
  extra_locations: enabled
  challenge_locations: enabled
  mastery_locations: enabled
  minerals_per_item: 25
  vespene_per_item: 25
  starting_supply_per_item: 5
description: 'Generated by https://archipelago.gg.'
game: Starcraft 2
name: Desolate

What were the expected results?

If Tempests are not in the seed, Tectonic Desabilizers shouldn't be either.

Software

Local generation

Them8 commented 2 months ago

Got the same with Ionic Wavelength Flux (Phoenix/Mirage) AP_22877927132069098959_Spoiler.txt Non-Build.txt uploaded as txt as it does not accept .yaml

Ziktofel commented 2 months ago

You need something like:

        unused_items = [
            unused_item for unused_item in unused_items
            if get_full_item_list()[unused_item].parent_item is None
               or get_full_item_list()[unused_item].parent_item in (inventory + locked_items + self.existing_items)
        ]

And also perform the filtering over the special rules

Ziktofel commented 2 months ago

Looks like this thing goes after @Salzkorn https://github.com/Ziktofel/Archipelago/commit/fb13c9a40ab16bbb8754b0195a66e5f8209c1883

Ziktofel commented 2 months ago

The case is that the algorithm first removes unit upgrade and then the unit, the unit upgrade remains in unused_items

Ziktofel commented 2 months ago

Will mark it closed after the PR is accepted: https://github.com/ArchipelagoMW/Archipelago/pull/3116

Ziktofel commented 2 months ago

Related PR merged. Closing