gameboy_worlds.emulation.legend_of_zelda.trackers

   1from gameboy_worlds.emulation.legend_of_zelda.base_metrics import (
   2    CoreLegendOfZeldaMetrics,
   3    LegendOfZeldaOCRMetric,
   4)
   5
   6from gameboy_worlds.emulation.legend_of_zelda.test_metrics import (
   7    ToronboShorePickupSwordTerminateMetric,
   8    ShieldEquippedTerminateMetric,
   9    OutsideTarinHouseTerminateMetric,
  10    OpenInventoryTerminateMetric,
  11    NoWeaponTerminateMetric,
  12    YesWeaponTerminateMetric,
  13    TalkToKidTerminateMetric,
  14    StatueTalkTerminateMetric,
  15    ReadSignboardTerminateMetric,
  16    GoInsideShopTerminateMetric,
  17    MakeCallTerminateMetric,
  18    EnterDarkForestTerminateMetric,
  19    InsideTunnelTerminateMetric,
  20    OpenChestTerminateMetric,
  21    HeartTakeTerminateMetric,
  22    ShroomTakeTerminateMetric,
  23    ShroomSwordTerminateMetric,
  24    ShroomShieldTerminateMetric,
  25    SignCheckerTerminateMetric,
  26    WaterCheckerTerminateMetric,
  27    MakeCall2TerminateMetric,
  28    SkeletonHouseTerminateMetric,
  29    UndergroundTerminateMetric,
  30    DiamondKidTalkTerminateMetric,
  31    InsideHouseTerminateMetric,
  32    PotRoomTerminateMetric,
  33    PondTerminateMetric,
  34    WeirdTunnelInsideTerminateMetric,
  35    WitchTalkTerminateMetric,
  36    PotholesSignboardReadTerminateMetric,
  37    PineappleScreenTerminateMetric,
  38    CallBoothApproachTerminateMetric,
  39    GrannyCornerTerminateMetric,
  40    LeaveBaldStoreCarpetTerminateMetric,
  41    LeaveTrackTerminateMetric,
  42    ExitFatHouseTerminateMetric,
  43    BoothHouseUpTerminateMetric,
  44    ChickHouseBlockTerminateMetric,
  45    PurplestoneStairsTerminateMetric,
  46    HeavyStonePushTerminateMetric,
  47    BoyDialogueExitTerminateMetric,
  48    DirtPatchTerminateMetric,
  49    DirtPatchTwoTerminateMetric,
  50    StonehouseRightTreeTerminateMetric,
  51    SecondBoyDialogueExitTerminateMetric,
  52    RailingJumpTerminateMetric,
  53    PalmtJumpTerminateMetric,
  54    MonsterDeathTerminateMetric,
  55    TileslongEscapeTerminateMetric,
  56    BoardSignApproachTerminateMetric,
  57    OracleOtherPeopleTerminateMetric,
  58    OracleGirlTalkTerminateMetric,
  59    OracleJumpingTerminateMetric,
  60    OracleFarmerTalkTerminateMetric,
  61    OracleLibraryTerminateMetric,
  62    OracleParrotTalkTerminateMetric,
  63    OracleFallTerminateMetric,
  64    OracleStairsTerminateMetric,
  65    OracleSignboardReadTerminateMetric,
  66    OracleShopInsideTerminateMetric,
  67    OracleShopPersonTalkTerminateMetric,
  68    OracleGirlHouseTerminateMetric,
  69    OraclePotInteractionTerminateMetric,
  70    OracleInsideTunnelTerminateMetric,
  71    OracleArtistTalkTerminateMetric,
  72    OracleChickenHouseTerminateMetric,
  73    OracleJigglyPathWalkTerminateMetric,
  74    OracleFairyMeetTerminateMetric,
  75    OracleThingInteractionTerminateMetric,
  76    OracleInventoryOpenTerminateMetric,
  77    OracleClockTowerSignReadTerminateMetric,
  78    OracleNearStairsTerminateMetric,
  79    OracleTalkToGirlTerminateMetric,
  80    OraclePierGoTerminateMetric,
  81    OracleBoardwalkTerminateMetric,
  82    OracleCatCheckTerminateMetric,
  83    OracleCatTalkTerminateMetric,
  84    OracleOwnerTalkTerminateMetric,
  85    OracleBridgeWalkTerminateMetric,
  86    OracleDogTerminateMetric,
  87    OracleMickeyLeftTerminateMetric,
  88    OracleStepOffGrassBlockTerminateMetric,
  89    OracleShopSignPathTerminateMetric,
  90    OracleClocksUpTerminateMetric,
  91    OracleJoystickRightTerminateMetric,
  92    OracleJoystickHouseEntryTerminateMetric,
  93    OracleApproachRedSnakeTerminateMetric,
  94    OracleApproachBlueSnakeTerminateMetric,
  95    OracleRedSnakeTalkTerminateMetric,
  96    OracleBlueSnakeTalkTerminateMetric,
  97    OracleBlueBookReadTerminateMetric,
  98    OracleRedBookReadTerminateMetric,
  99    OracleLavaFloorTerminateMetric,
 100    OracleStepOffTrackTerminateMetric,
 101    OracleGloomyPlaceLeftTerminateMetric,
 102    OracleGameoverDeathTerminateMetric,
 103    OracleLeaveGreenCarpetTerminateMetric,
 104    OracleHolesToTrunkTerminateMetric,
 105    OracleTrunkToHolesTerminateMetric,
 106    OracleLeftOfTrunkTerminateMetric,
 107)
 108
 109# from gameboy_worlds.emulation.tracker import (
 110#     StateTracker, 
 111#     TestTrackerMixin,
 112#     DummySubGoalMetric
 113# )
 114
 115from gameboy_worlds.emulation.tracker import (
 116    StateTracker,
 117    TestTrackerMixin,
 118    SubGoal,
 119    SubGoalMetric,
 120    DummySubGoalMetric
 121)
 122
 123class CoreLegendOfZeldaTracker(StateTracker):
 124    """
 125    StateTracker for core Legend of Zelda metrics.
 126    """
 127
 128    def start(self):
 129        super().start()
 130        self.metric_classes.extend([CoreLegendOfZeldaMetrics])
 131
 132
 133class LegendOfZeldaOCRTracker(CoreLegendOfZeldaTracker):
 134    """
 135    StateTracker that includes core Zelda metrics and OCR capture regions.
 136    """
 137
 138    def start(self):
 139        super().start()
 140        self.metric_classes.append(LegendOfZeldaOCRMetric)
 141
 142# class ZeldaLinksAwakeningOwlTestTracker(
 143#     TestTrackerMixin, LegendOfZeldaOCRTracker
 144# ):
 145#     TERMINATION_TRUNCATION_METRIC = ToronboShorePickupSwordTerminateMetric
 146#     SUBGOAL_METRIC = DummySubGoalMetric
 147
 148class OwlTrackerSubGoal(SubGoal):
 149    NAME = "owl_tracker"
 150
 151    def _check_completed(self, frame, parser) -> bool:
 152        return parser.named_region_matches_target(frame, "owl_tracker")
 153
 154
 155class ZeldaOwlSubGoalMetric(SubGoalMetric):
 156    SUBGOALS = [OwlTrackerSubGoal]
 157
 158
 159class ZeldaLinksAwakeningOwlTestTracker(
 160    TestTrackerMixin, LegendOfZeldaOCRTracker
 161):
 162    TERMINATION_TRUNCATION_METRIC = ToronboShorePickupSwordTerminateMetric
 163    SUBGOAL_METRIC = ZeldaOwlSubGoalMetric
 164
 165
 166class DialogueSubGoal(SubGoal):
 167    NAME = "tarian_dialogue"
 168
 169    def _check_completed(self, frame, parser) -> bool:
 170        in_dialogue_region = parser.named_region_matches_target(frame, "dialogue_top")
 171        in_dialogue_state = parser.get_agent_state(frame) == "in_dialogue"
 172        return in_dialogue_region and in_dialogue_state
 173
 174
 175class ShieldSubGoalMetric(SubGoalMetric):
 176    SUBGOALS = [DialogueSubGoal]
 177
 178
 179class ZeldaLinksAwakeningShieldTestTracker(
 180    TestTrackerMixin, LegendOfZeldaOCRTracker
 181):
 182    TERMINATION_TRUNCATION_METRIC = ShieldEquippedTerminateMetric
 183    SUBGOAL_METRIC = ShieldSubGoalMetric
 184
 185class ZeldaLinksAwakeningOutsideTarinHouseTestTracker(
 186    TestTrackerMixin, LegendOfZeldaOCRTracker
 187):
 188    TERMINATION_TRUNCATION_METRIC = OutsideTarinHouseTerminateMetric
 189    SUBGOAL_METRIC = DummySubGoalMetric
 190
 191class ZeldaLinksAwakeningOpenInventoryTestTracker(
 192    TestTrackerMixin, LegendOfZeldaOCRTracker
 193):
 194    TERMINATION_TRUNCATION_METRIC = OpenInventoryTerminateMetric
 195    SUBGOAL_METRIC = DummySubGoalMetric
 196
 197
 198class InventoryOpenSubGoal(SubGoal):
 199    NAME = "health_bar_top"
 200
 201    def _check_completed(self, frame, parser) -> bool:
 202        return parser.named_region_matches_target(frame, "health_bar_top")
 203
 204
 205class InventoryOpenSubGoalMetric(SubGoalMetric):
 206    SUBGOALS = [InventoryOpenSubGoal]
 207
 208
 209class ZeldaLinksAwakeningWeaponTestTracker(
 210    TestTrackerMixin, LegendOfZeldaOCRTracker
 211):
 212    TERMINATION_TRUNCATION_METRIC = NoWeaponTerminateMetric
 213    SUBGOAL_METRIC = InventoryOpenSubGoalMetric
 214
 215
 216class ZeldaLinksAwakeningInventoryWeaponEquipTestTracker(
 217    TestTrackerMixin, LegendOfZeldaOCRTracker
 218):
 219    TERMINATION_TRUNCATION_METRIC = YesWeaponTerminateMetric
 220    SUBGOAL_METRIC = InventoryOpenSubGoalMetric
 221
 222class LibrarySubGoal(SubGoal):
 223    NAME = "library"
 224
 225    def _check_completed(self, frame, parser) -> bool:
 226        return parser.named_region_matches_target(frame, "library")
 227    
 228class TalkToKidSubGoalMetric(SubGoalMetric):
 229    SUBGOALS = [LibrarySubGoal]
 230
 231class ZeldaLinksAwakeningTalkToKidTestTracker(
 232    TestTrackerMixin, LegendOfZeldaOCRTracker
 233):
 234    TERMINATION_TRUNCATION_METRIC = TalkToKidTerminateMetric
 235    SUBGOAL_METRIC = TalkToKidSubGoalMetric
 236
 237
 238class ZeldaLinksAwakeningStatueTalkTestTracker(
 239    TestTrackerMixin, LegendOfZeldaOCRTracker
 240):
 241    TERMINATION_TRUNCATION_METRIC = StatueTalkTerminateMetric
 242    SUBGOAL_METRIC = DummySubGoalMetric
 243
 244class SignboardSubGoal(SubGoal):
 245    NAME = "signboard"
 246
 247    def _check_completed(self, frame, parser) -> bool:
 248        return parser.named_region_matches_target(frame, "signboard")
 249
 250class ReadSignboardSubGoalMetric(SubGoalMetric):
 251    SUBGOALS = [SignboardSubGoal]
 252
 253class ZeldaLinksAwakeningReadSignboardTestTracker(
 254    TestTrackerMixin, LegendOfZeldaOCRTracker
 255):
 256    TERMINATION_TRUNCATION_METRIC = ReadSignboardTerminateMetric
 257    SUBGOAL_METRIC = ReadSignboardSubGoalMetric
 258
 259class ShopSignboardSubGoal(SubGoal):
 260    NAME = "shop_signboard"
 261
 262    def _check_completed(self, frame, parser) -> bool:
 263        return parser.named_region_matches_target(frame, "shop_signboard_tracker")
 264
 265
 266class GoInsideShopSubGoalMetric(SubGoalMetric):
 267    SUBGOALS = [ShopSignboardSubGoal]
 268
 269
 270class ZeldaLinksAwakeningGoInsideShopTestTracker(
 271    TestTrackerMixin, LegendOfZeldaOCRTracker
 272):
 273    TERMINATION_TRUNCATION_METRIC = GoInsideShopTerminateMetric
 274    SUBGOAL_METRIC = GoInsideShopSubGoalMetric
 275
 276
 277class CallBoothSubGoal(SubGoal):
 278    NAME = "call_booth"
 279
 280    def _check_completed(self, frame, parser) -> bool:
 281        return parser.named_region_matches_target(frame, "call_booth")
 282
 283
 284class MakeCallSubGoalMetric(SubGoalMetric):
 285    SUBGOALS = [CallBoothSubGoal]
 286
 287
 288class ZeldaLinksAwakeningMakeCallTestTracker(
 289    TestTrackerMixin, LegendOfZeldaOCRTracker
 290):
 291    TERMINATION_TRUNCATION_METRIC = MakeCallTerminateMetric
 292    SUBGOAL_METRIC = MakeCallSubGoalMetric
 293
 294class BushOutsideForestSubGoal(SubGoal):
 295    NAME = "bush_outside_forest"
 296
 297    def _check_completed(self, frame, parser) -> bool:
 298        return parser.named_region_matches_target(frame, "bush_outside_forest")
 299
 300
 301class EnterDarkForestSubGoalMetric(SubGoalMetric):
 302    SUBGOALS = [BushOutsideForestSubGoal]
 303
 304
 305class ZeldaLinksAwakeningEnterDarkForestTestTracker(
 306    TestTrackerMixin, LegendOfZeldaOCRTracker
 307):
 308    TERMINATION_TRUNCATION_METRIC = EnterDarkForestTerminateMetric
 309    SUBGOAL_METRIC = EnterDarkForestSubGoalMetric
 310
 311
 312class StoneBreakSubGoal(SubGoal):
 313    NAME = "stone_break"
 314
 315    def _check_completed(self, frame, parser) -> bool:
 316        return parser.named_region_matches_target(frame, "stone_break_tracker")
 317
 318
 319class OpenChestSubGoalMetric(SubGoalMetric):
 320    SUBGOALS = [StoneBreakSubGoal]
 321
 322
 323class ZeldaLinksAwakeningInsideTunnelTestTracker(
 324    TestTrackerMixin, LegendOfZeldaOCRTracker
 325):
 326    TERMINATION_TRUNCATION_METRIC = InsideTunnelTerminateMetric
 327    SUBGOAL_METRIC = DummySubGoalMetric
 328
 329
 330class ZeldaLinksAwakeningOpenChestTestTracker(
 331    TestTrackerMixin, LegendOfZeldaOCRTracker
 332):
 333    TERMINATION_TRUNCATION_METRIC = OpenChestTerminateMetric
 334    SUBGOAL_METRIC = OpenChestSubGoalMetric
 335
 336
 337class ZeldaLinksAwakeningChestOpenerTestTracker(
 338    TestTrackerMixin, LegendOfZeldaOCRTracker
 339):
 340    TERMINATION_TRUNCATION_METRIC = OpenChestTerminateMetric
 341    SUBGOAL_METRIC = OpenChestSubGoalMetric
 342
 343
 344class ZeldaLinksAwakeningHeartTakeTestTracker(
 345    TestTrackerMixin, LegendOfZeldaOCRTracker
 346):
 347    TERMINATION_TRUNCATION_METRIC = HeartTakeTerminateMetric
 348    SUBGOAL_METRIC = DummySubGoalMetric
 349
 350
 351class ZeldaLinksAwakeningShroomTakeTestTracker(
 352    TestTrackerMixin, LegendOfZeldaOCRTracker
 353):
 354    TERMINATION_TRUNCATION_METRIC = ShroomTakeTerminateMetric
 355    SUBGOAL_METRIC = DummySubGoalMetric
 356
 357
 358class ZeldaLinksAwakeningShroomSwordTestTracker(
 359    TestTrackerMixin, LegendOfZeldaOCRTracker
 360):
 361    TERMINATION_TRUNCATION_METRIC = ShroomSwordTerminateMetric
 362    SUBGOAL_METRIC = DummySubGoalMetric
 363
 364
 365class ZeldaLinksAwakeningShroomShieldTestTracker(
 366    TestTrackerMixin, LegendOfZeldaOCRTracker
 367):
 368    TERMINATION_TRUNCATION_METRIC = ShroomShieldTerminateMetric
 369    SUBGOAL_METRIC = DummySubGoalMetric
 370
 371
 372class ZeldaLinksAwakeningSignCheckerTestTracker(
 373    TestTrackerMixin, LegendOfZeldaOCRTracker
 374):
 375    TERMINATION_TRUNCATION_METRIC = SignCheckerTerminateMetric
 376    SUBGOAL_METRIC = DummySubGoalMetric
 377
 378
 379class ZeldaLinksAwakeningWaterCheckerTestTracker(
 380    TestTrackerMixin, LegendOfZeldaOCRTracker
 381):
 382    TERMINATION_TRUNCATION_METRIC = WaterCheckerTerminateMetric
 383    SUBGOAL_METRIC = DummySubGoalMetric
 384
 385class NoGrassSubGoal(SubGoal):
 386    NAME = "no_grass"
 387
 388    def _check_completed(self, frame, parser) -> bool:
 389        return parser.named_region_matches_target(frame, "no_grass")
 390
 391
 392class UndergroundSubGoalMetric(SubGoalMetric):
 393    SUBGOALS = [NoGrassSubGoal]
 394
 395
 396class HouseRightWindowSubGoal(SubGoal):
 397    NAME = "house_right_window"
 398
 399    def _check_completed(self, frame, parser) -> bool:
 400        return parser.named_region_matches_target(frame, "house_right_window")
 401
 402
 403class InsideHouseSubGoalMetric(SubGoalMetric):
 404    SUBGOALS = [HouseRightWindowSubGoal]
 405
 406
 407class PotSubGoal(SubGoal):
 408    NAME = "pot"
 409
 410    def _check_completed(self, frame, parser) -> bool:
 411        return parser.named_region_matches_target(frame, "pot")
 412
 413
 414class PotRoomSubGoalMetric(SubGoalMetric):
 415    SUBGOALS = [PotSubGoal]
 416
 417
 418class WitchSubGoal(SubGoal):
 419    NAME = "witch_tracker"
 420
 421    def _check_completed(self, frame, parser) -> bool:
 422        return parser.named_region_matches_target(frame, "witch_tracker")
 423
 424
 425class WitchTalkSubGoalMetric(SubGoalMetric):
 426    SUBGOALS = [WitchSubGoal]
 427
 428
 429class PotholesSignboardSubGoal(SubGoal):
 430    NAME = "signboard_tracker"
 431
 432    def _check_completed(self, frame, parser) -> bool:
 433        return parser.named_region_matches_target(frame, "signboard_tracker")
 434
 435
 436class PotholesSignboardSubGoalMetric(SubGoalMetric):
 437    SUBGOALS = [PotholesSignboardSubGoal]
 438
 439
 440class GrannySubGoal(SubGoal):
 441    NAME = "granny"
 442
 443    def _check_completed(self, frame, parser) -> bool:
 444        return parser.named_region_matches_target(frame, "granny")
 445
 446
 447class GrannySubGoalMetric(SubGoalMetric):
 448    SUBGOALS = [GrannySubGoal]
 449
 450
 451class Wood2SubGoal(SubGoal):
 452    NAME = "wood2"
 453
 454    def _check_completed(self, frame, parser) -> bool:
 455        return parser.named_region_matches_target(frame, "wood2")
 456
 457
 458class Wood2SubGoalMetric(SubGoalMetric):
 459    SUBGOALS = [Wood2SubGoal]
 460
 461
 462class TreeSubGoal(SubGoal):
 463    NAME = "tree"
 464
 465    def _check_completed(self, frame, parser) -> bool:
 466        return parser.named_region_matches_target(frame, "tree")
 467
 468
 469class TreeSubGoalMetric(SubGoalMetric):
 470    SUBGOALS = [TreeSubGoal]
 471
 472
 473class TileslongSubGoal(SubGoal):
 474    NAME = "tileslong"
 475
 476    def _check_completed(self, frame, parser) -> bool:
 477        return parser.named_region_matches_target(frame, "tileslong")
 478
 479
 480class TileslongSubGoalMetric(SubGoalMetric):
 481    SUBGOALS = [TileslongSubGoal]
 482
 483
 484class BoardsignSubGoal(SubGoal):
 485    NAME = "boardsign"
 486
 487    def _check_completed(self, frame, parser) -> bool:
 488        return parser.named_region_matches_target(frame, "boardsign")
 489
 490
 491class BoardsignSubGoalMetric(SubGoalMetric):
 492    SUBGOALS = [BoardsignSubGoal]
 493
 494
 495class Boy2ndSubGoal(SubGoal):
 496    NAME = "boy2nd"
 497
 498    def _check_completed(self, frame, parser) -> bool:
 499        return parser.named_region_matches_target(frame, "boy2nd")
 500
 501
 502class Boy2ndSubGoalMetric(SubGoalMetric):
 503    SUBGOALS = [Boy2ndSubGoal]
 504
 505
 506class BoysaySubGoal(SubGoal):
 507    NAME = "boysay"
 508
 509    def _check_completed(self, frame, parser) -> bool:
 510        return parser.named_region_matches_target(frame, "boysay")
 511
 512
 513class BoysaySubGoalMetric(SubGoalMetric):
 514    SUBGOALS = [BoysaySubGoal]
 515
 516
 517class ZeldaLinksAwakeningMakeCall2TestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 518    TERMINATION_TRUNCATION_METRIC = MakeCall2TerminateMetric
 519    SUBGOAL_METRIC = DummySubGoalMetric
 520
 521
 522class ZeldaLinksAwakeningSkeletonTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 523    TERMINATION_TRUNCATION_METRIC = SkeletonHouseTerminateMetric
 524    SUBGOAL_METRIC = DummySubGoalMetric
 525
 526
 527class ZeldaLinksAwakeningUndergroundTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 528    TERMINATION_TRUNCATION_METRIC = UndergroundTerminateMetric
 529    SUBGOAL_METRIC = UndergroundSubGoalMetric
 530
 531
 532class ZeldaLinksAwakeningKidTalkTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 533    TERMINATION_TRUNCATION_METRIC = DiamondKidTalkTerminateMetric
 534    SUBGOAL_METRIC = DummySubGoalMetric
 535
 536
 537class ZeldaLinksAwakeningInsideHouseTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 538    TERMINATION_TRUNCATION_METRIC = InsideHouseTerminateMetric
 539    SUBGOAL_METRIC = InsideHouseSubGoalMetric
 540
 541
 542class ZeldaLinksAwakeningPotRoomTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 543    TERMINATION_TRUNCATION_METRIC = PotRoomTerminateMetric
 544    SUBGOAL_METRIC = PotRoomSubGoalMetric
 545
 546
 547class ZeldaLinksAwakeningPondTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 548    TERMINATION_TRUNCATION_METRIC = PondTerminateMetric
 549    SUBGOAL_METRIC = DummySubGoalMetric
 550
 551
 552class ZeldaLinksAwakeningWeirdTunnelInsideTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 553    TERMINATION_TRUNCATION_METRIC = WeirdTunnelInsideTerminateMetric
 554    SUBGOAL_METRIC = DummySubGoalMetric
 555
 556
 557class ZeldaLinksAwakeningWitchTalkTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 558    TERMINATION_TRUNCATION_METRIC = WitchTalkTerminateMetric
 559    SUBGOAL_METRIC = WitchTalkSubGoalMetric
 560
 561
 562class ZeldaLinksAwakeningSignboardReaderTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 563    TERMINATION_TRUNCATION_METRIC = PotholesSignboardReadTerminateMetric
 564    SUBGOAL_METRIC = PotholesSignboardSubGoalMetric
 565
 566
 567class ZeldaLinksAwakeningPineappleScreenTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 568    TERMINATION_TRUNCATION_METRIC = PineappleScreenTerminateMetric
 569    SUBGOAL_METRIC = DummySubGoalMetric
 570
 571
 572class ZeldaLinksAwakeningCallBoothApproachTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 573    TERMINATION_TRUNCATION_METRIC = CallBoothApproachTerminateMetric
 574    SUBGOAL_METRIC = DummySubGoalMetric
 575
 576
 577class ZeldaLinksAwakeningGrannyCornerTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 578    TERMINATION_TRUNCATION_METRIC = GrannyCornerTerminateMetric
 579    SUBGOAL_METRIC = GrannySubGoalMetric
 580
 581
 582class ZeldaLinksAwakeningLeaveBaldStoreCarpetTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 583    TERMINATION_TRUNCATION_METRIC = LeaveBaldStoreCarpetTerminateMetric
 584    SUBGOAL_METRIC = DummySubGoalMetric
 585
 586
 587class ZeldaLinksAwakeningLeaveTrackTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 588    TERMINATION_TRUNCATION_METRIC = LeaveTrackTerminateMetric
 589    SUBGOAL_METRIC = DummySubGoalMetric
 590
 591
 592class ZeldaLinksAwakeningExitFatHouseTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 593    TERMINATION_TRUNCATION_METRIC = ExitFatHouseTerminateMetric
 594    SUBGOAL_METRIC = DummySubGoalMetric
 595
 596
 597class ZeldaLinksAwakeningBoothHouseUpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 598    TERMINATION_TRUNCATION_METRIC = BoothHouseUpTerminateMetric
 599    SUBGOAL_METRIC = Wood2SubGoalMetric
 600
 601
 602class ZeldaLinksAwakeningChickHouseBlockTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 603    TERMINATION_TRUNCATION_METRIC = ChickHouseBlockTerminateMetric
 604    SUBGOAL_METRIC = DummySubGoalMetric
 605
 606
 607class ZeldaLinksAwakeningPurplestoneStairsTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 608    TERMINATION_TRUNCATION_METRIC = PurplestoneStairsTerminateMetric
 609    SUBGOAL_METRIC = DummySubGoalMetric
 610
 611
 612class ZeldaLinksAwakeningHeavyStonePushTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 613    TERMINATION_TRUNCATION_METRIC = HeavyStonePushTerminateMetric
 614    SUBGOAL_METRIC = DummySubGoalMetric
 615
 616
 617class ZeldaLinksAwakeningBoyDialogueExitTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 618    TERMINATION_TRUNCATION_METRIC = BoyDialogueExitTerminateMetric
 619    SUBGOAL_METRIC = Boy2ndSubGoalMetric
 620
 621
 622class ZeldaLinksAwakeningDirtPatchTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 623    TERMINATION_TRUNCATION_METRIC = DirtPatchTerminateMetric
 624    SUBGOAL_METRIC = DummySubGoalMetric
 625
 626
 627class ZeldaLinksAwakeningDirtPatchTwoTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 628    TERMINATION_TRUNCATION_METRIC = DirtPatchTwoTerminateMetric
 629    SUBGOAL_METRIC = DummySubGoalMetric
 630
 631
 632class ZeldaLinksAwakeningStonehouseRightTreeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 633    TERMINATION_TRUNCATION_METRIC = StonehouseRightTreeTerminateMetric
 634    SUBGOAL_METRIC = TreeSubGoalMetric
 635
 636
 637class ZeldaLinksAwakeningSecondBoyDialogueExitTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 638    TERMINATION_TRUNCATION_METRIC = SecondBoyDialogueExitTerminateMetric
 639    SUBGOAL_METRIC = BoysaySubGoalMetric
 640
 641
 642class ZeldaLinksAwakeningRailingJumpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 643    TERMINATION_TRUNCATION_METRIC = RailingJumpTerminateMetric
 644    SUBGOAL_METRIC = DummySubGoalMetric
 645
 646
 647class ZeldaLinksAwakeningPalmtJumpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 648    TERMINATION_TRUNCATION_METRIC = PalmtJumpTerminateMetric
 649    SUBGOAL_METRIC = DummySubGoalMetric
 650
 651
 652class ZeldaLinksAwakeningMonsterDeathTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 653    TERMINATION_TRUNCATION_METRIC = MonsterDeathTerminateMetric
 654    SUBGOAL_METRIC = DummySubGoalMetric
 655
 656
 657class ZeldaLinksAwakeningTileslongEscapeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 658    TERMINATION_TRUNCATION_METRIC = TileslongEscapeTerminateMetric
 659    SUBGOAL_METRIC = TileslongSubGoalMetric
 660
 661
 662class ZeldaLinksAwakeningBoardSignApproachTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 663    TERMINATION_TRUNCATION_METRIC = BoardSignApproachTerminateMetric
 664    SUBGOAL_METRIC = BoardsignSubGoalMetric
 665
 666#oracle
 667
 668class OracleRegionSubGoal(SubGoal):
 669    NAME = None
 670    _NAMED_REGION = None
 671
 672    def _check_completed(self, frame, parser) -> bool:
 673        return parser.named_region_matches_target(frame, self._NAMED_REGION)
 674
 675
 676class OracleFlowersSubGoal(OracleRegionSubGoal):
 677    NAME = "flowers"
 678    _NAMED_REGION = "flowers"
 679
 680
 681class OracleBooksSubGoal(OracleRegionSubGoal):
 682    NAME = "books"
 683    _NAMED_REGION = "books"
 684
 685
 686class OracleBottomRightShoreSubGoal(OracleRegionSubGoal):
 687    NAME = "bottom_right_shore"
 688    _NAMED_REGION = "bottom_right_shore"
 689
 690
 691class OracleClocksSubGoal(OracleRegionSubGoal):
 692    NAME = "clocks"
 693    _NAMED_REGION = "clocks"
 694
 695
 696class OracleTrackemptySubGoal(OracleRegionSubGoal):
 697    NAME = "trackempty"
 698    _NAMED_REGION = "trackempty"
 699
 700
 701class OracleTrunkSubGoal(OracleRegionSubGoal):
 702    NAME = "trunk"
 703    _NAMED_REGION = "trunk"
 704
 705
 706class OracleHolesSubGoal(OracleRegionSubGoal):
 707    NAME = "holes"
 708    _NAMED_REGION = "holes"
 709
 710
 711class OracleFourCySubGoal(OracleRegionSubGoal):
 712    NAME = "4cy"
 713    _NAMED_REGION = "4cy"
 714
 715
 716class OracleFireplaceSubGoal(OracleRegionSubGoal):
 717    NAME = "fireplace"
 718    _NAMED_REGION = "fireplace"
 719
 720
 721class OracleFlowersSubGoalMetric(SubGoalMetric):
 722    SUBGOALS = [OracleFlowersSubGoal]
 723
 724
 725class OracleBooksSubGoalMetric(SubGoalMetric):
 726    SUBGOALS = [OracleBooksSubGoal]
 727
 728
 729class OracleBottomRightShoreSubGoalMetric(SubGoalMetric):
 730    SUBGOALS = [OracleBottomRightShoreSubGoal]
 731
 732
 733class OracleClocksSubGoalMetric(SubGoalMetric):
 734    SUBGOALS = [OracleClocksSubGoal]
 735
 736
 737class OracleTrackemptySubGoalMetric(SubGoalMetric):
 738    SUBGOALS = [OracleTrackemptySubGoal]
 739
 740
 741class OracleTrunkSubGoalMetric(SubGoalMetric):
 742    SUBGOALS = [OracleTrunkSubGoal]
 743
 744
 745class OracleHolesSubGoalMetric(SubGoalMetric):
 746    SUBGOALS = [OracleHolesSubGoal]
 747
 748
 749class OracleFourCySubGoalMetric(SubGoalMetric):
 750    SUBGOALS = [OracleFourCySubGoal]
 751
 752
 753class OracleFireplaceSubGoalMetric(SubGoalMetric):
 754    SUBGOALS = [OracleFireplaceSubGoal]
 755
 756
 757class OracleCatSubGoal(OracleRegionSubGoal):
 758    NAME = "cat"
 759    _NAMED_REGION = "cat"
 760
 761
 762class OracleCatSubGoalMetric(SubGoalMetric):
 763    SUBGOALS = [OracleCatSubGoal]
 764
 765
 766class ZeldaOracleOfSeasonsOtherPeopleTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 767    TERMINATION_TRUNCATION_METRIC = OracleOtherPeopleTerminateMetric
 768    SUBGOAL_METRIC = DummySubGoalMetric
 769
 770
 771class ZeldaOracleOfSeasonsGirlTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 772    TERMINATION_TRUNCATION_METRIC = OracleGirlTalkTerminateMetric
 773    SUBGOAL_METRIC = DummySubGoalMetric
 774
 775
 776class ZeldaOracleOfSeasonsJumpingTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 777    TERMINATION_TRUNCATION_METRIC = OracleJumpingTerminateMetric
 778    SUBGOAL_METRIC = DummySubGoalMetric
 779
 780
 781class ZeldaOracleOfSeasonsFarmerTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 782    TERMINATION_TRUNCATION_METRIC = OracleFarmerTalkTerminateMetric
 783    SUBGOAL_METRIC = OracleFlowersSubGoalMetric
 784
 785
 786class ZeldaOracleOfSeasonsLibraryTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 787    TERMINATION_TRUNCATION_METRIC = OracleLibraryTerminateMetric
 788    SUBGOAL_METRIC = DummySubGoalMetric
 789
 790
 791class ZeldaOracleOfSeasonsParrotTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 792    TERMINATION_TRUNCATION_METRIC = OracleParrotTalkTerminateMetric
 793    SUBGOAL_METRIC = OracleBooksSubGoalMetric
 794
 795
 796class ZeldaOracleOfSeasonsFallTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 797    TERMINATION_TRUNCATION_METRIC = OracleFallTerminateMetric
 798    SUBGOAL_METRIC = OracleBottomRightShoreSubGoalMetric
 799
 800
 801class ZeldaOracleOfSeasonsStairsTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 802    TERMINATION_TRUNCATION_METRIC = OracleStairsTerminateMetric
 803    SUBGOAL_METRIC = DummySubGoalMetric
 804
 805
 806class ZeldaOracleOfSeasonsSignboardReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 807    TERMINATION_TRUNCATION_METRIC = OracleSignboardReadTerminateMetric
 808    SUBGOAL_METRIC = DummySubGoalMetric
 809
 810
 811class ZeldaOracleOfSeasonsShopInsideTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 812    TERMINATION_TRUNCATION_METRIC = OracleShopInsideTerminateMetric
 813    SUBGOAL_METRIC = DummySubGoalMetric
 814
 815
 816class ZeldaOracleOfSeasonsShopPersonTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 817    TERMINATION_TRUNCATION_METRIC = OracleShopPersonTalkTerminateMetric
 818    SUBGOAL_METRIC = OracleClocksSubGoalMetric
 819
 820
 821class ZeldaOracleOfSeasonsGirlHouseTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 822    TERMINATION_TRUNCATION_METRIC = OracleGirlHouseTerminateMetric
 823    SUBGOAL_METRIC = DummySubGoalMetric
 824
 825
 826class ZeldaOracleOfSeasonsPotInteractionTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 827    TERMINATION_TRUNCATION_METRIC = OraclePotInteractionTerminateMetric
 828    SUBGOAL_METRIC = OracleFireplaceSubGoalMetric
 829
 830
 831class ZeldaOracleOfSeasonsInsideTunnelTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 832    TERMINATION_TRUNCATION_METRIC = OracleInsideTunnelTerminateMetric
 833    SUBGOAL_METRIC = DummySubGoalMetric
 834
 835
 836class ZeldaOracleOfSeasonsArtistTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 837    TERMINATION_TRUNCATION_METRIC = OracleArtistTalkTerminateMetric
 838    SUBGOAL_METRIC = DummySubGoalMetric
 839
 840
 841class ZeldaOracleOfSeasonsChickenHouseTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 842    TERMINATION_TRUNCATION_METRIC = OracleChickenHouseTerminateMetric
 843    SUBGOAL_METRIC = DummySubGoalMetric
 844
 845
 846class ZeldaOracleOfSeasonsJigglyPathWalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 847    TERMINATION_TRUNCATION_METRIC = OracleJigglyPathWalkTerminateMetric
 848    SUBGOAL_METRIC = DummySubGoalMetric
 849
 850
 851class ZeldaOracleOfSeasonsFairyMeetTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 852    TERMINATION_TRUNCATION_METRIC = OracleFairyMeetTerminateMetric
 853    SUBGOAL_METRIC = DummySubGoalMetric
 854
 855
 856class ZeldaOracleOfSeasonsThingInteractionTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 857    TERMINATION_TRUNCATION_METRIC = OracleThingInteractionTerminateMetric
 858    SUBGOAL_METRIC = DummySubGoalMetric
 859
 860
 861class ZeldaOracleOfSeasonsInventoryOpenTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 862    TERMINATION_TRUNCATION_METRIC = OracleInventoryOpenTerminateMetric
 863    SUBGOAL_METRIC = DummySubGoalMetric
 864
 865
 866class ZeldaOracleOfSeasonsClockTowerSignReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 867    TERMINATION_TRUNCATION_METRIC = OracleClockTowerSignReadTerminateMetric
 868    SUBGOAL_METRIC = DummySubGoalMetric
 869
 870
 871class ZeldaOracleOfSeasonsNearStairsTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 872    TERMINATION_TRUNCATION_METRIC = OracleNearStairsTerminateMetric
 873    SUBGOAL_METRIC = DummySubGoalMetric
 874
 875
 876class ZeldaOracleOfSeasonsTalkToGirlTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 877    TERMINATION_TRUNCATION_METRIC = OracleTalkToGirlTerminateMetric
 878    SUBGOAL_METRIC = OracleFireplaceSubGoalMetric
 879
 880
 881class ZeldaOracleOfSeasonsPierGoTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 882    TERMINATION_TRUNCATION_METRIC = OraclePierGoTerminateMetric
 883    SUBGOAL_METRIC = DummySubGoalMetric
 884
 885
 886class ZeldaOracleOfSeasonsBoardwalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 887    TERMINATION_TRUNCATION_METRIC = OracleBoardwalkTerminateMetric
 888    SUBGOAL_METRIC = DummySubGoalMetric
 889
 890
 891class ZeldaOracleOfSeasonsCatCheckTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 892    TERMINATION_TRUNCATION_METRIC = OracleCatCheckTerminateMetric
 893    SUBGOAL_METRIC = DummySubGoalMetric
 894
 895
 896class ZeldaOracleOfSeasonsCatTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 897    TERMINATION_TRUNCATION_METRIC = OracleCatTalkTerminateMetric
 898    SUBGOAL_METRIC = OracleCatSubGoalMetric
 899
 900
 901class ZeldaOracleOfSeasonsOwnerTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 902    TERMINATION_TRUNCATION_METRIC = OracleOwnerTalkTerminateMetric
 903    SUBGOAL_METRIC = DummySubGoalMetric
 904
 905
 906class ZeldaOracleOfSeasonsBridgeWalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 907    TERMINATION_TRUNCATION_METRIC = OracleBridgeWalkTerminateMetric
 908    SUBGOAL_METRIC = DummySubGoalMetric
 909
 910
 911class ZeldaOracleOfSeasonsDogTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 912    TERMINATION_TRUNCATION_METRIC = OracleDogTerminateMetric
 913    SUBGOAL_METRIC = DummySubGoalMetric
 914
 915
 916class ZeldaOracleOfSeasonsMickeyLeftTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 917    TERMINATION_TRUNCATION_METRIC = OracleMickeyLeftTerminateMetric
 918    SUBGOAL_METRIC = DummySubGoalMetric
 919
 920
 921class ZeldaOracleOfSeasonsStepOffGrassBlockTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 922    TERMINATION_TRUNCATION_METRIC = OracleStepOffGrassBlockTerminateMetric
 923    SUBGOAL_METRIC = DummySubGoalMetric
 924
 925
 926class ZeldaOracleOfSeasonsShopSignPathTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 927    TERMINATION_TRUNCATION_METRIC = OracleShopSignPathTerminateMetric
 928    SUBGOAL_METRIC = DummySubGoalMetric
 929
 930
 931class ZeldaOracleOfSeasonsClocksUpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 932    TERMINATION_TRUNCATION_METRIC = OracleClocksUpTerminateMetric
 933    SUBGOAL_METRIC = OracleClocksSubGoalMetric
 934
 935
 936class ZeldaOracleOfSeasonsJoystickRightTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 937    TERMINATION_TRUNCATION_METRIC = OracleJoystickRightTerminateMetric
 938    SUBGOAL_METRIC = DummySubGoalMetric
 939
 940
 941class ZeldaOracleOfSeasonsJoystickHouseEntryTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 942    TERMINATION_TRUNCATION_METRIC = OracleJoystickHouseEntryTerminateMetric
 943    SUBGOAL_METRIC = DummySubGoalMetric
 944
 945
 946class ZeldaOracleOfSeasonsApproachRedSnakeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 947    TERMINATION_TRUNCATION_METRIC = OracleApproachRedSnakeTerminateMetric
 948    SUBGOAL_METRIC = DummySubGoalMetric
 949
 950
 951class ZeldaOracleOfSeasonsApproachBlueSnakeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 952    TERMINATION_TRUNCATION_METRIC = OracleApproachBlueSnakeTerminateMetric
 953    SUBGOAL_METRIC = DummySubGoalMetric
 954
 955
 956class ZeldaOracleOfSeasonsRedSnakeTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 957    TERMINATION_TRUNCATION_METRIC = OracleRedSnakeTalkTerminateMetric
 958    SUBGOAL_METRIC = DummySubGoalMetric
 959
 960
 961class ZeldaOracleOfSeasonsBlueSnakeTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 962    TERMINATION_TRUNCATION_METRIC = OracleBlueSnakeTalkTerminateMetric
 963    SUBGOAL_METRIC = DummySubGoalMetric
 964
 965
 966class ZeldaOracleOfSeasonsBlueBookReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 967    TERMINATION_TRUNCATION_METRIC = OracleBlueBookReadTerminateMetric
 968    SUBGOAL_METRIC = DummySubGoalMetric
 969
 970
 971class ZeldaOracleOfSeasonsRedBookReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 972    TERMINATION_TRUNCATION_METRIC = OracleRedBookReadTerminateMetric
 973    SUBGOAL_METRIC = DummySubGoalMetric
 974
 975
 976class ZeldaOracleOfSeasonsLavaFloorTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 977    TERMINATION_TRUNCATION_METRIC = OracleLavaFloorTerminateMetric
 978    SUBGOAL_METRIC = DummySubGoalMetric
 979
 980
 981class ZeldaOracleOfSeasonsStepOffTrackTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 982    TERMINATION_TRUNCATION_METRIC = OracleStepOffTrackTerminateMetric
 983    SUBGOAL_METRIC = OracleTrackemptySubGoalMetric
 984
 985
 986class ZeldaOracleOfSeasonsGloomyPlaceLeftTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 987    TERMINATION_TRUNCATION_METRIC = OracleGloomyPlaceLeftTerminateMetric
 988    SUBGOAL_METRIC = DummySubGoalMetric
 989
 990
 991class ZeldaOracleOfSeasonsGameoverDeathTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 992    TERMINATION_TRUNCATION_METRIC = OracleGameoverDeathTerminateMetric
 993    SUBGOAL_METRIC = DummySubGoalMetric
 994
 995
 996class ZeldaOracleOfSeasonsLeaveGreenCarpetTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
 997    TERMINATION_TRUNCATION_METRIC = OracleLeaveGreenCarpetTerminateMetric
 998    SUBGOAL_METRIC = DummySubGoalMetric
 999
1000
1001class ZeldaOracleOfSeasonsHolesToTrunkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
1002    TERMINATION_TRUNCATION_METRIC = OracleHolesToTrunkTerminateMetric
1003    SUBGOAL_METRIC = OracleTrunkSubGoalMetric
1004
1005
1006class ZeldaOracleOfSeasonsTrunkToHolesTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
1007    TERMINATION_TRUNCATION_METRIC = OracleTrunkToHolesTerminateMetric
1008    SUBGOAL_METRIC = OracleHolesSubGoalMetric
1009
1010
1011class ZeldaOracleOfSeasonsLeftOfTrunkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
1012    TERMINATION_TRUNCATION_METRIC = OracleLeftOfTrunkTerminateMetric
1013    SUBGOAL_METRIC = OracleFourCySubGoalMetric
class CoreLegendOfZeldaTracker(gameboy_worlds.emulation.tracker.StateTracker):
124class CoreLegendOfZeldaTracker(StateTracker):
125    """
126    StateTracker for core Legend of Zelda metrics.
127    """
128
129    def start(self):
130        super().start()
131        self.metric_classes.extend([CoreLegendOfZeldaMetrics])

StateTracker for core Legend of Zelda metrics.

def start(self):
129    def start(self):
130        super().start()
131        self.metric_classes.extend([CoreLegendOfZeldaMetrics])

Sets up the metrics for the tracker by creating the list self.metric_classes

Child classes must FIRST call super().start() and THEN set up their own metric classes.

class LegendOfZeldaOCRTracker(CoreLegendOfZeldaTracker):
134class LegendOfZeldaOCRTracker(CoreLegendOfZeldaTracker):
135    """
136    StateTracker that includes core Zelda metrics and OCR capture regions.
137    """
138
139    def start(self):
140        super().start()
141        self.metric_classes.append(LegendOfZeldaOCRMetric)

StateTracker that includes core Zelda metrics and OCR capture regions.

def start(self):
139    def start(self):
140        super().start()
141        self.metric_classes.append(LegendOfZeldaOCRMetric)

Sets up the metrics for the tracker by creating the list self.metric_classes

Child classes must FIRST call super().start() and THEN set up their own metric classes.

class OwlTrackerSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
149class OwlTrackerSubGoal(SubGoal):
150    NAME = "owl_tracker"
151
152    def _check_completed(self, frame, parser) -> bool:
153        return parser.named_region_matches_target(frame, "owl_tracker")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'owl_tracker'

Name of the subgoal.

class ZeldaOwlSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
156class ZeldaOwlSubGoalMetric(SubGoalMetric):
157    SUBGOALS = [OwlTrackerSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OwlTrackerSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningOwlTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
160class ZeldaLinksAwakeningOwlTestTracker(
161    TestTrackerMixin, LegendOfZeldaOCRTracker
162):
163    TERMINATION_TRUNCATION_METRIC = ToronboShorePickupSwordTerminateMetric
164    SUBGOAL_METRIC = ZeldaOwlSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'ZeldaOwlSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class DialogueSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
167class DialogueSubGoal(SubGoal):
168    NAME = "tarian_dialogue"
169
170    def _check_completed(self, frame, parser) -> bool:
171        in_dialogue_region = parser.named_region_matches_target(frame, "dialogue_top")
172        in_dialogue_state = parser.get_agent_state(frame) == "in_dialogue"
173        return in_dialogue_region and in_dialogue_state

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'tarian_dialogue'

Name of the subgoal.

class ShieldSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
176class ShieldSubGoalMetric(SubGoalMetric):
177    SUBGOALS = [DialogueSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'DialogueSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningShieldTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
180class ZeldaLinksAwakeningShieldTestTracker(
181    TestTrackerMixin, LegendOfZeldaOCRTracker
182):
183    TERMINATION_TRUNCATION_METRIC = ShieldEquippedTerminateMetric
184    SUBGOAL_METRIC = ShieldSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'ShieldSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningOutsideTarinHouseTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
186class ZeldaLinksAwakeningOutsideTarinHouseTestTracker(
187    TestTrackerMixin, LegendOfZeldaOCRTracker
188):
189    TERMINATION_TRUNCATION_METRIC = OutsideTarinHouseTerminateMetric
190    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningOpenInventoryTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
192class ZeldaLinksAwakeningOpenInventoryTestTracker(
193    TestTrackerMixin, LegendOfZeldaOCRTracker
194):
195    TERMINATION_TRUNCATION_METRIC = OpenInventoryTerminateMetric
196    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class InventoryOpenSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
199class InventoryOpenSubGoal(SubGoal):
200    NAME = "health_bar_top"
201
202    def _check_completed(self, frame, parser) -> bool:
203        return parser.named_region_matches_target(frame, "health_bar_top")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'health_bar_top'

Name of the subgoal.

class InventoryOpenSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
206class InventoryOpenSubGoalMetric(SubGoalMetric):
207    SUBGOALS = [InventoryOpenSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'InventoryOpenSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningWeaponTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
210class ZeldaLinksAwakeningWeaponTestTracker(
211    TestTrackerMixin, LegendOfZeldaOCRTracker
212):
213    TERMINATION_TRUNCATION_METRIC = NoWeaponTerminateMetric
214    SUBGOAL_METRIC = InventoryOpenSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'InventoryOpenSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningInventoryWeaponEquipTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
217class ZeldaLinksAwakeningInventoryWeaponEquipTestTracker(
218    TestTrackerMixin, LegendOfZeldaOCRTracker
219):
220    TERMINATION_TRUNCATION_METRIC = YesWeaponTerminateMetric
221    SUBGOAL_METRIC = InventoryOpenSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'InventoryOpenSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class LibrarySubGoal(gameboy_worlds.emulation.tracker.SubGoal):
223class LibrarySubGoal(SubGoal):
224    NAME = "library"
225
226    def _check_completed(self, frame, parser) -> bool:
227        return parser.named_region_matches_target(frame, "library")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'library'

Name of the subgoal.

class TalkToKidSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
229class TalkToKidSubGoalMetric(SubGoalMetric):
230    SUBGOALS = [LibrarySubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'LibrarySubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningTalkToKidTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
232class ZeldaLinksAwakeningTalkToKidTestTracker(
233    TestTrackerMixin, LegendOfZeldaOCRTracker
234):
235    TERMINATION_TRUNCATION_METRIC = TalkToKidTerminateMetric
236    SUBGOAL_METRIC = TalkToKidSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'TalkToKidSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningStatueTalkTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
239class ZeldaLinksAwakeningStatueTalkTestTracker(
240    TestTrackerMixin, LegendOfZeldaOCRTracker
241):
242    TERMINATION_TRUNCATION_METRIC = StatueTalkTerminateMetric
243    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class SignboardSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
245class SignboardSubGoal(SubGoal):
246    NAME = "signboard"
247
248    def _check_completed(self, frame, parser) -> bool:
249        return parser.named_region_matches_target(frame, "signboard")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'signboard'

Name of the subgoal.

class ReadSignboardSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
251class ReadSignboardSubGoalMetric(SubGoalMetric):
252    SUBGOALS = [SignboardSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'SignboardSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningReadSignboardTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
254class ZeldaLinksAwakeningReadSignboardTestTracker(
255    TestTrackerMixin, LegendOfZeldaOCRTracker
256):
257    TERMINATION_TRUNCATION_METRIC = ReadSignboardTerminateMetric
258    SUBGOAL_METRIC = ReadSignboardSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'ReadSignboardSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ShopSignboardSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
260class ShopSignboardSubGoal(SubGoal):
261    NAME = "shop_signboard"
262
263    def _check_completed(self, frame, parser) -> bool:
264        return parser.named_region_matches_target(frame, "shop_signboard_tracker")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'shop_signboard'

Name of the subgoal.

class GoInsideShopSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
267class GoInsideShopSubGoalMetric(SubGoalMetric):
268    SUBGOALS = [ShopSignboardSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'ShopSignboardSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningGoInsideShopTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
271class ZeldaLinksAwakeningGoInsideShopTestTracker(
272    TestTrackerMixin, LegendOfZeldaOCRTracker
273):
274    TERMINATION_TRUNCATION_METRIC = GoInsideShopTerminateMetric
275    SUBGOAL_METRIC = GoInsideShopSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'GoInsideShopSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class CallBoothSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
278class CallBoothSubGoal(SubGoal):
279    NAME = "call_booth"
280
281    def _check_completed(self, frame, parser) -> bool:
282        return parser.named_region_matches_target(frame, "call_booth")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'call_booth'

Name of the subgoal.

class MakeCallSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
285class MakeCallSubGoalMetric(SubGoalMetric):
286    SUBGOALS = [CallBoothSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'CallBoothSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningMakeCallTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
289class ZeldaLinksAwakeningMakeCallTestTracker(
290    TestTrackerMixin, LegendOfZeldaOCRTracker
291):
292    TERMINATION_TRUNCATION_METRIC = MakeCallTerminateMetric
293    SUBGOAL_METRIC = MakeCallSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'MakeCallSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class BushOutsideForestSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
295class BushOutsideForestSubGoal(SubGoal):
296    NAME = "bush_outside_forest"
297
298    def _check_completed(self, frame, parser) -> bool:
299        return parser.named_region_matches_target(frame, "bush_outside_forest")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'bush_outside_forest'

Name of the subgoal.

class EnterDarkForestSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
302class EnterDarkForestSubGoalMetric(SubGoalMetric):
303    SUBGOALS = [BushOutsideForestSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'BushOutsideForestSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningEnterDarkForestTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
306class ZeldaLinksAwakeningEnterDarkForestTestTracker(
307    TestTrackerMixin, LegendOfZeldaOCRTracker
308):
309    TERMINATION_TRUNCATION_METRIC = EnterDarkForestTerminateMetric
310    SUBGOAL_METRIC = EnterDarkForestSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'EnterDarkForestSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class StoneBreakSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
313class StoneBreakSubGoal(SubGoal):
314    NAME = "stone_break"
315
316    def _check_completed(self, frame, parser) -> bool:
317        return parser.named_region_matches_target(frame, "stone_break_tracker")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'stone_break'

Name of the subgoal.

class OpenChestSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
320class OpenChestSubGoalMetric(SubGoalMetric):
321    SUBGOALS = [StoneBreakSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'StoneBreakSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningInsideTunnelTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
324class ZeldaLinksAwakeningInsideTunnelTestTracker(
325    TestTrackerMixin, LegendOfZeldaOCRTracker
326):
327    TERMINATION_TRUNCATION_METRIC = InsideTunnelTerminateMetric
328    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningOpenChestTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
331class ZeldaLinksAwakeningOpenChestTestTracker(
332    TestTrackerMixin, LegendOfZeldaOCRTracker
333):
334    TERMINATION_TRUNCATION_METRIC = OpenChestTerminateMetric
335    SUBGOAL_METRIC = OpenChestSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OpenChestSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningChestOpenerTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
338class ZeldaLinksAwakeningChestOpenerTestTracker(
339    TestTrackerMixin, LegendOfZeldaOCRTracker
340):
341    TERMINATION_TRUNCATION_METRIC = OpenChestTerminateMetric
342    SUBGOAL_METRIC = OpenChestSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OpenChestSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningHeartTakeTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
345class ZeldaLinksAwakeningHeartTakeTestTracker(
346    TestTrackerMixin, LegendOfZeldaOCRTracker
347):
348    TERMINATION_TRUNCATION_METRIC = HeartTakeTerminateMetric
349    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningShroomTakeTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
352class ZeldaLinksAwakeningShroomTakeTestTracker(
353    TestTrackerMixin, LegendOfZeldaOCRTracker
354):
355    TERMINATION_TRUNCATION_METRIC = ShroomTakeTerminateMetric
356    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningShroomSwordTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
359class ZeldaLinksAwakeningShroomSwordTestTracker(
360    TestTrackerMixin, LegendOfZeldaOCRTracker
361):
362    TERMINATION_TRUNCATION_METRIC = ShroomSwordTerminateMetric
363    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningShroomShieldTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
366class ZeldaLinksAwakeningShroomShieldTestTracker(
367    TestTrackerMixin, LegendOfZeldaOCRTracker
368):
369    TERMINATION_TRUNCATION_METRIC = ShroomShieldTerminateMetric
370    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningSignCheckerTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
373class ZeldaLinksAwakeningSignCheckerTestTracker(
374    TestTrackerMixin, LegendOfZeldaOCRTracker
375):
376    TERMINATION_TRUNCATION_METRIC = SignCheckerTerminateMetric
377    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningWaterCheckerTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
380class ZeldaLinksAwakeningWaterCheckerTestTracker(
381    TestTrackerMixin, LegendOfZeldaOCRTracker
382):
383    TERMINATION_TRUNCATION_METRIC = WaterCheckerTerminateMetric
384    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class NoGrassSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
386class NoGrassSubGoal(SubGoal):
387    NAME = "no_grass"
388
389    def _check_completed(self, frame, parser) -> bool:
390        return parser.named_region_matches_target(frame, "no_grass")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'no_grass'

Name of the subgoal.

class UndergroundSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
393class UndergroundSubGoalMetric(SubGoalMetric):
394    SUBGOALS = [NoGrassSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'NoGrassSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class HouseRightWindowSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
397class HouseRightWindowSubGoal(SubGoal):
398    NAME = "house_right_window"
399
400    def _check_completed(self, frame, parser) -> bool:
401        return parser.named_region_matches_target(frame, "house_right_window")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'house_right_window'

Name of the subgoal.

class InsideHouseSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
404class InsideHouseSubGoalMetric(SubGoalMetric):
405    SUBGOALS = [HouseRightWindowSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'HouseRightWindowSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class PotSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
408class PotSubGoal(SubGoal):
409    NAME = "pot"
410
411    def _check_completed(self, frame, parser) -> bool:
412        return parser.named_region_matches_target(frame, "pot")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'pot'

Name of the subgoal.

class PotRoomSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
415class PotRoomSubGoalMetric(SubGoalMetric):
416    SUBGOALS = [PotSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'PotSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class WitchSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
419class WitchSubGoal(SubGoal):
420    NAME = "witch_tracker"
421
422    def _check_completed(self, frame, parser) -> bool:
423        return parser.named_region_matches_target(frame, "witch_tracker")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'witch_tracker'

Name of the subgoal.

class WitchTalkSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
426class WitchTalkSubGoalMetric(SubGoalMetric):
427    SUBGOALS = [WitchSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'WitchSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class PotholesSignboardSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
430class PotholesSignboardSubGoal(SubGoal):
431    NAME = "signboard_tracker"
432
433    def _check_completed(self, frame, parser) -> bool:
434        return parser.named_region_matches_target(frame, "signboard_tracker")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'signboard_tracker'

Name of the subgoal.

class PotholesSignboardSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
437class PotholesSignboardSubGoalMetric(SubGoalMetric):
438    SUBGOALS = [PotholesSignboardSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'PotholesSignboardSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class GrannySubGoal(gameboy_worlds.emulation.tracker.SubGoal):
441class GrannySubGoal(SubGoal):
442    NAME = "granny"
443
444    def _check_completed(self, frame, parser) -> bool:
445        return parser.named_region_matches_target(frame, "granny")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'granny'

Name of the subgoal.

class GrannySubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
448class GrannySubGoalMetric(SubGoalMetric):
449    SUBGOALS = [GrannySubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'GrannySubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class Wood2SubGoal(gameboy_worlds.emulation.tracker.SubGoal):
452class Wood2SubGoal(SubGoal):
453    NAME = "wood2"
454
455    def _check_completed(self, frame, parser) -> bool:
456        return parser.named_region_matches_target(frame, "wood2")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'wood2'

Name of the subgoal.

class Wood2SubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
459class Wood2SubGoalMetric(SubGoalMetric):
460    SUBGOALS = [Wood2SubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'Wood2SubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class TreeSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
463class TreeSubGoal(SubGoal):
464    NAME = "tree"
465
466    def _check_completed(self, frame, parser) -> bool:
467        return parser.named_region_matches_target(frame, "tree")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'tree'

Name of the subgoal.

class TreeSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
470class TreeSubGoalMetric(SubGoalMetric):
471    SUBGOALS = [TreeSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'TreeSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class TileslongSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
474class TileslongSubGoal(SubGoal):
475    NAME = "tileslong"
476
477    def _check_completed(self, frame, parser) -> bool:
478        return parser.named_region_matches_target(frame, "tileslong")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'tileslong'

Name of the subgoal.

class TileslongSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
481class TileslongSubGoalMetric(SubGoalMetric):
482    SUBGOALS = [TileslongSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'TileslongSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class BoardsignSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
485class BoardsignSubGoal(SubGoal):
486    NAME = "boardsign"
487
488    def _check_completed(self, frame, parser) -> bool:
489        return parser.named_region_matches_target(frame, "boardsign")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'boardsign'

Name of the subgoal.

class BoardsignSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
492class BoardsignSubGoalMetric(SubGoalMetric):
493    SUBGOALS = [BoardsignSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'BoardsignSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class Boy2ndSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
496class Boy2ndSubGoal(SubGoal):
497    NAME = "boy2nd"
498
499    def _check_completed(self, frame, parser) -> bool:
500        return parser.named_region_matches_target(frame, "boy2nd")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'boy2nd'

Name of the subgoal.

class Boy2ndSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
503class Boy2ndSubGoalMetric(SubGoalMetric):
504    SUBGOALS = [Boy2ndSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'Boy2ndSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class BoysaySubGoal(gameboy_worlds.emulation.tracker.SubGoal):
507class BoysaySubGoal(SubGoal):
508    NAME = "boysay"
509
510    def _check_completed(self, frame, parser) -> bool:
511        return parser.named_region_matches_target(frame, "boysay")

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'boysay'

Name of the subgoal.

class BoysaySubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
514class BoysaySubGoalMetric(SubGoalMetric):
515    SUBGOALS = [BoysaySubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'BoysaySubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaLinksAwakeningMakeCall2TestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
518class ZeldaLinksAwakeningMakeCall2TestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
519    TERMINATION_TRUNCATION_METRIC = MakeCall2TerminateMetric
520    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningSkeletonTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
523class ZeldaLinksAwakeningSkeletonTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
524    TERMINATION_TRUNCATION_METRIC = SkeletonHouseTerminateMetric
525    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningUndergroundTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
528class ZeldaLinksAwakeningUndergroundTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
529    TERMINATION_TRUNCATION_METRIC = UndergroundTerminateMetric
530    SUBGOAL_METRIC = UndergroundSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'UndergroundSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningKidTalkTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
533class ZeldaLinksAwakeningKidTalkTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
534    TERMINATION_TRUNCATION_METRIC = DiamondKidTalkTerminateMetric
535    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningInsideHouseTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
538class ZeldaLinksAwakeningInsideHouseTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
539    TERMINATION_TRUNCATION_METRIC = InsideHouseTerminateMetric
540    SUBGOAL_METRIC = InsideHouseSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'InsideHouseSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningPotRoomTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
543class ZeldaLinksAwakeningPotRoomTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
544    TERMINATION_TRUNCATION_METRIC = PotRoomTerminateMetric
545    SUBGOAL_METRIC = PotRoomSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'PotRoomSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningPondTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
548class ZeldaLinksAwakeningPondTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
549    TERMINATION_TRUNCATION_METRIC = PondTerminateMetric
550    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningWeirdTunnelInsideTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
553class ZeldaLinksAwakeningWeirdTunnelInsideTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
554    TERMINATION_TRUNCATION_METRIC = WeirdTunnelInsideTerminateMetric
555    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningWitchTalkTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
558class ZeldaLinksAwakeningWitchTalkTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
559    TERMINATION_TRUNCATION_METRIC = WitchTalkTerminateMetric
560    SUBGOAL_METRIC = WitchTalkSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'WitchTalkSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningSignboardReaderTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
563class ZeldaLinksAwakeningSignboardReaderTestTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
564    TERMINATION_TRUNCATION_METRIC = PotholesSignboardReadTerminateMetric
565    SUBGOAL_METRIC = PotholesSignboardSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'PotholesSignboardSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningPineappleScreenTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
568class ZeldaLinksAwakeningPineappleScreenTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
569    TERMINATION_TRUNCATION_METRIC = PineappleScreenTerminateMetric
570    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningCallBoothApproachTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
573class ZeldaLinksAwakeningCallBoothApproachTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
574    TERMINATION_TRUNCATION_METRIC = CallBoothApproachTerminateMetric
575    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningGrannyCornerTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
578class ZeldaLinksAwakeningGrannyCornerTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
579    TERMINATION_TRUNCATION_METRIC = GrannyCornerTerminateMetric
580    SUBGOAL_METRIC = GrannySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'GrannySubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningLeaveBaldStoreCarpetTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
583class ZeldaLinksAwakeningLeaveBaldStoreCarpetTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
584    TERMINATION_TRUNCATION_METRIC = LeaveBaldStoreCarpetTerminateMetric
585    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningLeaveTrackTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
588class ZeldaLinksAwakeningLeaveTrackTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
589    TERMINATION_TRUNCATION_METRIC = LeaveTrackTerminateMetric
590    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningExitFatHouseTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
593class ZeldaLinksAwakeningExitFatHouseTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
594    TERMINATION_TRUNCATION_METRIC = ExitFatHouseTerminateMetric
595    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningBoothHouseUpTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
598class ZeldaLinksAwakeningBoothHouseUpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
599    TERMINATION_TRUNCATION_METRIC = BoothHouseUpTerminateMetric
600    SUBGOAL_METRIC = Wood2SubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'Wood2SubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningChickHouseBlockTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
603class ZeldaLinksAwakeningChickHouseBlockTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
604    TERMINATION_TRUNCATION_METRIC = ChickHouseBlockTerminateMetric
605    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningPurplestoneStairsTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
608class ZeldaLinksAwakeningPurplestoneStairsTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
609    TERMINATION_TRUNCATION_METRIC = PurplestoneStairsTerminateMetric
610    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningHeavyStonePushTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
613class ZeldaLinksAwakeningHeavyStonePushTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
614    TERMINATION_TRUNCATION_METRIC = HeavyStonePushTerminateMetric
615    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningBoyDialogueExitTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
618class ZeldaLinksAwakeningBoyDialogueExitTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
619    TERMINATION_TRUNCATION_METRIC = BoyDialogueExitTerminateMetric
620    SUBGOAL_METRIC = Boy2ndSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'Boy2ndSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningDirtPatchTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
623class ZeldaLinksAwakeningDirtPatchTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
624    TERMINATION_TRUNCATION_METRIC = DirtPatchTerminateMetric
625    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningDirtPatchTwoTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
628class ZeldaLinksAwakeningDirtPatchTwoTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
629    TERMINATION_TRUNCATION_METRIC = DirtPatchTwoTerminateMetric
630    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningStonehouseRightTreeTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
633class ZeldaLinksAwakeningStonehouseRightTreeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
634    TERMINATION_TRUNCATION_METRIC = StonehouseRightTreeTerminateMetric
635    SUBGOAL_METRIC = TreeSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'TreeSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningSecondBoyDialogueExitTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
638class ZeldaLinksAwakeningSecondBoyDialogueExitTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
639    TERMINATION_TRUNCATION_METRIC = SecondBoyDialogueExitTerminateMetric
640    SUBGOAL_METRIC = BoysaySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'BoysaySubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningRailingJumpTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
643class ZeldaLinksAwakeningRailingJumpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
644    TERMINATION_TRUNCATION_METRIC = RailingJumpTerminateMetric
645    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningPalmtJumpTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
648class ZeldaLinksAwakeningPalmtJumpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
649    TERMINATION_TRUNCATION_METRIC = PalmtJumpTerminateMetric
650    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningMonsterDeathTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
653class ZeldaLinksAwakeningMonsterDeathTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
654    TERMINATION_TRUNCATION_METRIC = MonsterDeathTerminateMetric
655    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningTileslongEscapeTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
658class ZeldaLinksAwakeningTileslongEscapeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
659    TERMINATION_TRUNCATION_METRIC = TileslongEscapeTerminateMetric
660    SUBGOAL_METRIC = TileslongSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'TileslongSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaLinksAwakeningBoardSignApproachTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
663class ZeldaLinksAwakeningBoardSignApproachTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
664    TERMINATION_TRUNCATION_METRIC = BoardSignApproachTerminateMetric
665    SUBGOAL_METRIC = BoardsignSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'BoardsignSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class OracleRegionSubGoal(gameboy_worlds.emulation.tracker.SubGoal):
669class OracleRegionSubGoal(SubGoal):
670    NAME = None
671    _NAMED_REGION = None
672
673    def _check_completed(self, frame, parser) -> bool:
674        return parser.named_region_matches_target(frame, self._NAMED_REGION)

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = None

Name of the subgoal.

class OracleFlowersSubGoal(OracleRegionSubGoal):
677class OracleFlowersSubGoal(OracleRegionSubGoal):
678    NAME = "flowers"
679    _NAMED_REGION = "flowers"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'flowers'

Name of the subgoal.

class OracleBooksSubGoal(OracleRegionSubGoal):
682class OracleBooksSubGoal(OracleRegionSubGoal):
683    NAME = "books"
684    _NAMED_REGION = "books"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'books'

Name of the subgoal.

class OracleBottomRightShoreSubGoal(OracleRegionSubGoal):
687class OracleBottomRightShoreSubGoal(OracleRegionSubGoal):
688    NAME = "bottom_right_shore"
689    _NAMED_REGION = "bottom_right_shore"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'bottom_right_shore'

Name of the subgoal.

class OracleClocksSubGoal(OracleRegionSubGoal):
692class OracleClocksSubGoal(OracleRegionSubGoal):
693    NAME = "clocks"
694    _NAMED_REGION = "clocks"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'clocks'

Name of the subgoal.

class OracleTrackemptySubGoal(OracleRegionSubGoal):
697class OracleTrackemptySubGoal(OracleRegionSubGoal):
698    NAME = "trackempty"
699    _NAMED_REGION = "trackempty"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'trackempty'

Name of the subgoal.

class OracleTrunkSubGoal(OracleRegionSubGoal):
702class OracleTrunkSubGoal(OracleRegionSubGoal):
703    NAME = "trunk"
704    _NAMED_REGION = "trunk"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'trunk'

Name of the subgoal.

class OracleHolesSubGoal(OracleRegionSubGoal):
707class OracleHolesSubGoal(OracleRegionSubGoal):
708    NAME = "holes"
709    _NAMED_REGION = "holes"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'holes'

Name of the subgoal.

class OracleFourCySubGoal(OracleRegionSubGoal):
712class OracleFourCySubGoal(OracleRegionSubGoal):
713    NAME = "4cy"
714    _NAMED_REGION = "4cy"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = '4cy'

Name of the subgoal.

class OracleFireplaceSubGoal(OracleRegionSubGoal):
717class OracleFireplaceSubGoal(OracleRegionSubGoal):
718    NAME = "fireplace"
719    _NAMED_REGION = "fireplace"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'fireplace'

Name of the subgoal.

class OracleFlowersSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
722class OracleFlowersSubGoalMetric(SubGoalMetric):
723    SUBGOALS = [OracleFlowersSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleFlowersSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleBooksSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
726class OracleBooksSubGoalMetric(SubGoalMetric):
727    SUBGOALS = [OracleBooksSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleBooksSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleBottomRightShoreSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
730class OracleBottomRightShoreSubGoalMetric(SubGoalMetric):
731    SUBGOALS = [OracleBottomRightShoreSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleBottomRightShoreSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleClocksSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
734class OracleClocksSubGoalMetric(SubGoalMetric):
735    SUBGOALS = [OracleClocksSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleClocksSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleTrackemptySubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
738class OracleTrackemptySubGoalMetric(SubGoalMetric):
739    SUBGOALS = [OracleTrackemptySubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleTrackemptySubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleTrunkSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
742class OracleTrunkSubGoalMetric(SubGoalMetric):
743    SUBGOALS = [OracleTrunkSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleTrunkSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleHolesSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
746class OracleHolesSubGoalMetric(SubGoalMetric):
747    SUBGOALS = [OracleHolesSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleHolesSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleFourCySubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
750class OracleFourCySubGoalMetric(SubGoalMetric):
751    SUBGOALS = [OracleFourCySubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleFourCySubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleFireplaceSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
754class OracleFireplaceSubGoalMetric(SubGoalMetric):
755    SUBGOALS = [OracleFireplaceSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleFireplaceSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class OracleCatSubGoal(OracleRegionSubGoal):
758class OracleCatSubGoal(OracleRegionSubGoal):
759    NAME = "cat"
760    _NAMED_REGION = "cat"

Abstract class representing a subgoal for tracking progress towards a test goal. These are intermediate states that must be achieved on the way to the final test goal. By convention, the task goal state itself is not considered a subgoal, but rather the final goal that the subgoals lead towards.

NAME = 'cat'

Name of the subgoal.

class OracleCatSubGoalMetric(gameboy_worlds.emulation.tracker.SubGoalMetric):
763class OracleCatSubGoalMetric(SubGoalMetric):
764    SUBGOALS = [OracleCatSubGoal]

Tracks subgoal based progress towards a specific test goal. Subgoals are always sequential, i.e. it is impossible to complete subgoal n+1 without completing subgoal n first.

Reports:

  • all: A list of the names of all subgoals being tracked, regardless of completion status.
  • completed: A list of the names of the subgoals that have been completed.

Final Reports:

  • reached_subgoals: List of subgoals that were reached at any point during any episode.
SUBGOALS = [<class 'OracleCatSubGoal'>]

List of SubGoal classes representing the subgoals to be tracked. These should be defined in child classes.

class ZeldaOracleOfSeasonsOtherPeopleTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
767class ZeldaOracleOfSeasonsOtherPeopleTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
768    TERMINATION_TRUNCATION_METRIC = OracleOtherPeopleTerminateMetric
769    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsGirlTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
772class ZeldaOracleOfSeasonsGirlTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
773    TERMINATION_TRUNCATION_METRIC = OracleGirlTalkTerminateMetric
774    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsJumpingTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
777class ZeldaOracleOfSeasonsJumpingTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
778    TERMINATION_TRUNCATION_METRIC = OracleJumpingTerminateMetric
779    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsFarmerTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
782class ZeldaOracleOfSeasonsFarmerTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
783    TERMINATION_TRUNCATION_METRIC = OracleFarmerTalkTerminateMetric
784    SUBGOAL_METRIC = OracleFlowersSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleFlowersSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsLibraryTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
787class ZeldaOracleOfSeasonsLibraryTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
788    TERMINATION_TRUNCATION_METRIC = OracleLibraryTerminateMetric
789    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsParrotTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
792class ZeldaOracleOfSeasonsParrotTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
793    TERMINATION_TRUNCATION_METRIC = OracleParrotTalkTerminateMetric
794    SUBGOAL_METRIC = OracleBooksSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleBooksSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsFallTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
797class ZeldaOracleOfSeasonsFallTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
798    TERMINATION_TRUNCATION_METRIC = OracleFallTerminateMetric
799    SUBGOAL_METRIC = OracleBottomRightShoreSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleBottomRightShoreSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsStairsTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
802class ZeldaOracleOfSeasonsStairsTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
803    TERMINATION_TRUNCATION_METRIC = OracleStairsTerminateMetric
804    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsSignboardReadTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
807class ZeldaOracleOfSeasonsSignboardReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
808    TERMINATION_TRUNCATION_METRIC = OracleSignboardReadTerminateMetric
809    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsShopInsideTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
812class ZeldaOracleOfSeasonsShopInsideTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
813    TERMINATION_TRUNCATION_METRIC = OracleShopInsideTerminateMetric
814    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsShopPersonTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
817class ZeldaOracleOfSeasonsShopPersonTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
818    TERMINATION_TRUNCATION_METRIC = OracleShopPersonTalkTerminateMetric
819    SUBGOAL_METRIC = OracleClocksSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleClocksSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsGirlHouseTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
822class ZeldaOracleOfSeasonsGirlHouseTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
823    TERMINATION_TRUNCATION_METRIC = OracleGirlHouseTerminateMetric
824    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsPotInteractionTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
827class ZeldaOracleOfSeasonsPotInteractionTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
828    TERMINATION_TRUNCATION_METRIC = OraclePotInteractionTerminateMetric
829    SUBGOAL_METRIC = OracleFireplaceSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleFireplaceSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsInsideTunnelTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
832class ZeldaOracleOfSeasonsInsideTunnelTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
833    TERMINATION_TRUNCATION_METRIC = OracleInsideTunnelTerminateMetric
834    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsArtistTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
837class ZeldaOracleOfSeasonsArtistTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
838    TERMINATION_TRUNCATION_METRIC = OracleArtistTalkTerminateMetric
839    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsChickenHouseTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
842class ZeldaOracleOfSeasonsChickenHouseTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
843    TERMINATION_TRUNCATION_METRIC = OracleChickenHouseTerminateMetric
844    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsJigglyPathWalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
847class ZeldaOracleOfSeasonsJigglyPathWalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
848    TERMINATION_TRUNCATION_METRIC = OracleJigglyPathWalkTerminateMetric
849    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsFairyMeetTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
852class ZeldaOracleOfSeasonsFairyMeetTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
853    TERMINATION_TRUNCATION_METRIC = OracleFairyMeetTerminateMetric
854    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsThingInteractionTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
857class ZeldaOracleOfSeasonsThingInteractionTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
858    TERMINATION_TRUNCATION_METRIC = OracleThingInteractionTerminateMetric
859    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsInventoryOpenTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
862class ZeldaOracleOfSeasonsInventoryOpenTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
863    TERMINATION_TRUNCATION_METRIC = OracleInventoryOpenTerminateMetric
864    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsClockTowerSignReadTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
867class ZeldaOracleOfSeasonsClockTowerSignReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
868    TERMINATION_TRUNCATION_METRIC = OracleClockTowerSignReadTerminateMetric
869    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsNearStairsTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
872class ZeldaOracleOfSeasonsNearStairsTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
873    TERMINATION_TRUNCATION_METRIC = OracleNearStairsTerminateMetric
874    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsTalkToGirlTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
877class ZeldaOracleOfSeasonsTalkToGirlTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
878    TERMINATION_TRUNCATION_METRIC = OracleTalkToGirlTerminateMetric
879    SUBGOAL_METRIC = OracleFireplaceSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleFireplaceSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsPierGoTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
882class ZeldaOracleOfSeasonsPierGoTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
883    TERMINATION_TRUNCATION_METRIC = OraclePierGoTerminateMetric
884    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsBoardwalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
887class ZeldaOracleOfSeasonsBoardwalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
888    TERMINATION_TRUNCATION_METRIC = OracleBoardwalkTerminateMetric
889    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsCatCheckTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
892class ZeldaOracleOfSeasonsCatCheckTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
893    TERMINATION_TRUNCATION_METRIC = OracleCatCheckTerminateMetric
894    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsCatTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
897class ZeldaOracleOfSeasonsCatTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
898    TERMINATION_TRUNCATION_METRIC = OracleCatTalkTerminateMetric
899    SUBGOAL_METRIC = OracleCatSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleCatSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsOwnerTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
902class ZeldaOracleOfSeasonsOwnerTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
903    TERMINATION_TRUNCATION_METRIC = OracleOwnerTalkTerminateMetric
904    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsBridgeWalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
907class ZeldaOracleOfSeasonsBridgeWalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
908    TERMINATION_TRUNCATION_METRIC = OracleBridgeWalkTerminateMetric
909    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsDogTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
912class ZeldaOracleOfSeasonsDogTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
913    TERMINATION_TRUNCATION_METRIC = OracleDogTerminateMetric
914    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsMickeyLeftTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
917class ZeldaOracleOfSeasonsMickeyLeftTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
918    TERMINATION_TRUNCATION_METRIC = OracleMickeyLeftTerminateMetric
919    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsStepOffGrassBlockTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
922class ZeldaOracleOfSeasonsStepOffGrassBlockTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
923    TERMINATION_TRUNCATION_METRIC = OracleStepOffGrassBlockTerminateMetric
924    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsShopSignPathTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
927class ZeldaOracleOfSeasonsShopSignPathTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
928    TERMINATION_TRUNCATION_METRIC = OracleShopSignPathTerminateMetric
929    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsClocksUpTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
932class ZeldaOracleOfSeasonsClocksUpTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
933    TERMINATION_TRUNCATION_METRIC = OracleClocksUpTerminateMetric
934    SUBGOAL_METRIC = OracleClocksSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleClocksSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsJoystickRightTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
937class ZeldaOracleOfSeasonsJoystickRightTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
938    TERMINATION_TRUNCATION_METRIC = OracleJoystickRightTerminateMetric
939    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsJoystickHouseEntryTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
942class ZeldaOracleOfSeasonsJoystickHouseEntryTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
943    TERMINATION_TRUNCATION_METRIC = OracleJoystickHouseEntryTerminateMetric
944    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsApproachRedSnakeTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
947class ZeldaOracleOfSeasonsApproachRedSnakeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
948    TERMINATION_TRUNCATION_METRIC = OracleApproachRedSnakeTerminateMetric
949    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsApproachBlueSnakeTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
952class ZeldaOracleOfSeasonsApproachBlueSnakeTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
953    TERMINATION_TRUNCATION_METRIC = OracleApproachBlueSnakeTerminateMetric
954    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsRedSnakeTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
957class ZeldaOracleOfSeasonsRedSnakeTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
958    TERMINATION_TRUNCATION_METRIC = OracleRedSnakeTalkTerminateMetric
959    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsBlueSnakeTalkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
962class ZeldaOracleOfSeasonsBlueSnakeTalkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
963    TERMINATION_TRUNCATION_METRIC = OracleBlueSnakeTalkTerminateMetric
964    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsBlueBookReadTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
967class ZeldaOracleOfSeasonsBlueBookReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
968    TERMINATION_TRUNCATION_METRIC = OracleBlueBookReadTerminateMetric
969    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsRedBookReadTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
972class ZeldaOracleOfSeasonsRedBookReadTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
973    TERMINATION_TRUNCATION_METRIC = OracleRedBookReadTerminateMetric
974    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsLavaFloorTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
977class ZeldaOracleOfSeasonsLavaFloorTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
978    TERMINATION_TRUNCATION_METRIC = OracleLavaFloorTerminateMetric
979    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsStepOffTrackTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
982class ZeldaOracleOfSeasonsStepOffTrackTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
983    TERMINATION_TRUNCATION_METRIC = OracleStepOffTrackTerminateMetric
984    SUBGOAL_METRIC = OracleTrackemptySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleTrackemptySubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsGloomyPlaceLeftTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
987class ZeldaOracleOfSeasonsGloomyPlaceLeftTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
988    TERMINATION_TRUNCATION_METRIC = OracleGloomyPlaceLeftTerminateMetric
989    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsGameoverDeathTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
992class ZeldaOracleOfSeasonsGameoverDeathTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
993    TERMINATION_TRUNCATION_METRIC = OracleGameoverDeathTerminateMetric
994    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsLeaveGreenCarpetTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
997class ZeldaOracleOfSeasonsLeaveGreenCarpetTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
998    TERMINATION_TRUNCATION_METRIC = OracleLeaveGreenCarpetTerminateMetric
999    SUBGOAL_METRIC = DummySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsHolesToTrunkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
1002class ZeldaOracleOfSeasonsHolesToTrunkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
1003    TERMINATION_TRUNCATION_METRIC = OracleHolesToTrunkTerminateMetric
1004    SUBGOAL_METRIC = OracleTrunkSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleTrunkSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsTrunkToHolesTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
1007class ZeldaOracleOfSeasonsTrunkToHolesTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
1008    TERMINATION_TRUNCATION_METRIC = OracleTrunkToHolesTerminateMetric
1009    SUBGOAL_METRIC = OracleHolesSubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleHolesSubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.

class ZeldaOracleOfSeasonsLeftOfTrunkTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, LegendOfZeldaOCRTracker):
1012class ZeldaOracleOfSeasonsLeftOfTrunkTracker(TestTrackerMixin, LegendOfZeldaOCRTracker):
1013    TERMINATION_TRUNCATION_METRIC = OracleLeftOfTrunkTerminateMetric
1014    SUBGOAL_METRIC = OracleFourCySubGoalMetric

Mixin class for testing trackers. Ensures that exactly one of the tracked metrics is a TerminationTruncationMetric.

The TerminationTruncationMetric class to use for tracking termination and truncation. If None, no such metric will be tracked.

SUBGOAL_METRIC = <class 'OracleFourCySubGoalMetric'>

The SubGoalMetric class to use for tracking subgoal progress. If None, no such metric will be tracked.