gameboy_worlds.emulation.harvest_moon.trackers

   1from gameboy_worlds.emulation.harvest_moon.base_metrics import (
   2    CoreHarvestMoonMetrics,
   3    HarvestMoonOCRMetric,
   4    HarvestMoonTestMetric,
   5)
   6from gameboy_worlds.emulation.harvest_moon.test_metrics import (
   7    CowBarnTerminateMetric,
   8    OutsideCowBarnSubgoal,
   9    OutsideCowBarn2Subgoal,
  10    ChickenCoopTerminateMetric,
  11    OutsideChickenCoopSubgoal,
  12    OutsideChickenCoop2Subgoal,
  13    StorageTerminateMetric,
  14    OutsideStorageSubgoal,
  15    PickupWaterCanTerminateMetric,
  16    NextToWaterCanSubgoal,
  17    PickupCowBellTerminateMetric,
  18    NextToCowBellSubgoal,
  19    PickupSickleTerminateMetric,
  20    NextToSickleSubgoal,
  21    PickupHoeTerminateMetric,
  22    NextToHoeSubgoal,
  23    PickupHammerTerminateMetric,
  24    NextToHammerSubgoal,
  25    PickupGrassSeedTerminateMetric,
  26    NextToGrassSeedSubgoal,
  27    GoToSleepTerminateMetric,
  28    SleepOptionSubgoal,
  29    FeedSpiritTerminateMetric,
  30    HelpSpiritEarthquakeTerminateMetric,
  31    NextToSpiritSubgoal,
  32    NextToEarthquakeSpiritSubgoal,
  33    WaterTurnipTerminateMetric,
  34    NextToTurnipSubgoal,
  35    BuyMaterialTerminateMetric,
  36    OutsideCarpenter1Subgoal,
  37    ShopForMaterialSubgoal,
  38    SelectMaterialSubgoal,
  39    SelectHomeExpansionSubgoal,
  40    GetHomeExpansionEstimateTerminateMetric,
  41    BuyChickenTerminateMetric,
  42    BuyCowTerminateMetric,
  43    SellChickenTerminateMetric,
  44    SellCowTerminateMetric,
  45    SelectSellingCowSubgoal,
  46    ShopForConstructionEstimatesSubgoal,
  47    SelectHothouseSubgoal,
  48    GetHothouseEstimateTerminateMetric,
  49    OutsideAnimalShop1Subgoal,
  50    ShopForAnimalSubgoal,
  51    SelectChickenSubgoal,
  52    SelectCowSubgoal,
  53    SelectSellingChickenSubgoal,
  54    BuyCowBrushTerminateMetric,
  55    BuySaddlebagTerminateMetric,
  56    BuyMilkerTerminateMetric,
  57    OutsideToolShop1Subgoal,
  58    ShopForToolsSubgoal,
  59    SelectCowBrushSubgoal,
  60    SelectSaddlebagSubgoal,
  61    SelectMilkerSubgoal,
  62    BuyRiceBallTerminateMetric,
  63    OutsideRestaurantSubgoal,
  64    ShopForFoodSubgoal,
  65    SelectRiceBallSubgoal,
  66    BuyRiceBallOptionSubgoal,
  67    BuyCroissantTerminateMetric,
  68    SelectCroissantSubgoal,
  69    BuyCroissantOptionSubgoal,
  70    BuyCakeTerminateMetric,
  71    SelectCakeSubgoal,
  72    BuyCakeOptionSubgoal,
  73    OutsideJuiceBarSubgoal,
  74    ShopForJuiceSubgoal,
  75    BuyGrapeJuiceTerminateMetric,
  76    SelectGrapeJuiceSubgoal,
  77    BuyGrapeJuiceOptionSubgoal,
  78    GoToChurchPrayTerminateMetric,
  79    OutsideChurchSubgoal,
  80    InsideChurchSubgoal,
  81    PrayOptionSubgoal,
  82    OpenStorageListTerminateMetric,
  83    NextToStorageListSubgoal,
  84    FindRainyMoneyTerminateMetric,
  85    NextToSafeSubgoal,
  86    FindLostBirdTerminateMetric,
  87    NextToLostBirdSubgoal,
  88    SpeakToBlueHairGirlTerminateMetric,
  89    SpeakToBlueHairGirlWGTerminateMetric,
  90    NextToBlueHairGirlWGSubgoal,
  91    SpeakToPinkHairGirlWGTerminateMetric,
  92    NextToPinkHairGirlWGSubgoal,
  93    SpeakToRedHairGirlWGTerminateMetric,
  94    NextToRedHairGirlWGSubgoal,
  95    NextToBlueHairGirlSubgoal,
  96    SpeakToGoldenHairGirlTerminateMetric,
  97    NextToGoldenHairGirlSubgoal,
  98    SpeakToPinkHairGirlTerminateMetric,
  99    NextToPinkHairGirlSubgoal,
 100    FillChickenFodderBlock1TerminateMetric,
 101    NextToChickenSiloSubgoal,
 102    PickupChickenFodderSubgoal,
 103    NextToChickenFodderBlock1Subgoal,
 104    NextToCowFeedingStallSubgoal,
 105    FillUpperRightCowStallTerminateMetric,
 106    NextToChickenSilo2Subgoal,
 107    PickupChickenFodder2Subgoal,
 108    ReadVillageSignTerminateMetric,
 109    NextToVillageSignSubgoal,
 110    ReadFarmSignTerminateMetric,
 111    NextToFarmSignSubgoal,
 112    ReadSecretGardenSignTerminateMetric,
 113    NextToSecretGardenSignSubgoal,
 114    
 115    # HM2
 116    HospitalEntranceTerminateMetric,
 117    OutsideHospitalSubgoal,
 118    ToolShopEntranceTerminateMetric,
 119    OutsideToolShop2Subgoal,
 120    CarpenterEntranceTerminateMetric,
 121    OutsideCarpenter2Subgoal,
 122    AnimalShopEntranceTerminateMetric,
 123    OutsideAnimalShop2Subgoal,
 124    LibraryEntranceTerminateMetric,
 125    OutsideLibrarySubgoal,
 126    FindLuckyMoneyTerminateMetric,
 127    NextToClockSubgoal,
 128    FlowerShopEntranceTerminateMetric,
 129    OutsideFlowerShop2Subgoal,
 130    SelectBridgeSubgoal,
 131    GetBridgeEstimateTerminateMetric,
 132    RestaurantEntranceTerminateMetric,
 133    OutsideRestaurant2Subgoal,
 134    BuyLunchSetTerminateMetric,
 135    SelectLunchSetSubgoal,
 136    BuyLunchSetOptionSubgoal,
 137    BuyBeverageSetTerminateMetric,
 138    SelectBeverageSetSubgoal,
 139    BuyBeverageSetOptionSubgoal,
 140    BuyTodaysSpecialTerminateMetric,
 141    SelectTodaysSpecialSubgoal,
 142    BuyTodaysSpecialOptionSubgoal,
 143    
 144    # HM2 TO DO
 145    OpenMenuTerminateMetric,
 146    ReadNoticeBoardTerminateMetric,
 147    NextToNoticeBoardSubgoal,
 148    ReadCropFieldSignTerminateMetric,
 149    NextToCropFieldSignSubgoal,
 150    NextToDiarySubgoal,
 151    DiaryOptionSubgoal,
 152    EmptyHandsSelectedSubgoal,
 153    ReadyToPickSickleSubgoal,
 154    EquipSickleTerminateMetric,
 155    ReadyToPickHammerSubgoal,
 156    EquipHammerTerminateMetric,
 157    ReadyToPickFishingRodSubgoal,
 158    EquipFishingRodTerminateMetric,
 159    AxeSelected2Subgoal,
 160    SprinklerSelected1Subgoal,
 161    EquipSickleReplacingSprinklerTerminateMetric,
 162    HoeSelected3Subgoal,
 163    EquipNetReplacingHoeTerminateMetric,
 164    NextToEggSubgoal,
 165    HatchEggTerminateMetric,
 166    NextToRockFromLeftSubgoal,
 167    BreakRockTerminateMetric,
 168    NextToRightmostRockAboveSubgoal,
 169    BreakRightmostRockTerminateMetric,
 170    NextToLowestWeedFromAboveSubgoal,
 171    RemoveLowestWeedTerminateMetric,
 172    CutLowestWeedTerminateMetric,
 173    NextToTopLeftWeedFromRightSubgoal,
 174    RemoveTopLeftWeedTerminateMetric,
 175    CutTopLeftWeedTerminateMetric,
 176    NextToGrasslandFromLeftSubgoal,
 177    HarvestCenterGrasslineTerminateMetric,
 178    PickedUpBrokenFenceSubgoal,
 179    RestoreFenceTerminateMetric,
 180    NextToCenterTurnipSubgoal,
 181    HarvestCenterTurnipTerminateMetric,
 182    NextToCenterTurnipLeftSubgoal,
 183    WaterCenterTurnipTerminateMetric,
 184    # NextToShippingBoxSubgoal,
 185    # ShipEggplantTerminateMetric,
 186    AtTheStartLineSubgoal,
 187    Cross500mLineTerminateMetric,
 188    Cross1000mLineTerminateMetric,
 189    NextToCenterEggplantSubgoal,
 190    HarvestCenterEggplantTerminateMetric,
 191    NextToCenterCarrotSubgoal,
 192    HarvestCenterCarrotTerminateMetric,
 193    NextToCenterPotatoSubgoal,
 194    WaterCenterPotatoTerminateMetric,
 195    NextToCenterPotatoBelowSubgoal,
 196    HarvestCenterPotatoTerminateMetric,
 197    NextToCenterAsparagusSubgoal,
 198    WaterCenterAsparagusTerminateMetric,
 199    AtCornCenterSubgoal,
 200    WaterCornFieldTerminateMetric,
 201    AtCabbageCenterSubgoal,
 202    WaterCabbageFieldTerminateMetric,
 203    NextToCenterCornSubgoal,
 204    CutCenterCornTerminateMetric,
 205    ComputersArticleSelectedSubgoal,
 206    ReadComputersArticleTerminateMetric,
 207    BouldersArticleSelectedSubgoal,
 208    ReadBouldersArticleTerminateMetric,
 209    CropsArticleSelectedSubgoal,
 210    ReadCropsArticleTerminateMetric,
 211    NextToLeftmostWeedSubgoal,
 212    RemoveLeftmostWeedTerminateMetric,
 213    NextToBerrySubgoal,
 214    PickBerryTerminateMetric,
 215    NextToBerryAboveSubgoal,
 216    PickBerryAboveTerminateMetric,
 217    NextToBlueHairGirl2Subgoal,
 218    SpeakToBlueHairGirl2TerminateMetric,
 219    NextToPurpleHairGirlSubgoal,
 220    SpeakToPurpleHairGirlTerminateMetric,
 221    NextToBlondeGirlSubgoal,
 222    SpeakToBlondeGirlTerminateMetric,
 223    HarvestMoon2NextToHatchingBoxSubgoal,
 224    HarvestMoon2HatchEggTerminateMetric,
 225    ReadyToPickNetSubgoal,
 226    EquipNetReplacingAxTerminateMetric,
 227    ReadyToPickRosemarySeedsSubgoal,
 228    EquipRosemarySeedsReplacingAxTerminateMetric,
 229    
 230    ## HM3
 231    NextToWeed3Subgoal,
 232    RemoveWeed3TerminateMetric,
 233    NextToCherrySubgoal,
 234    PickUpCherry3TerminateMetric,
 235    HarvestMoon3NextToHatchingBoxSubgoal,
 236    HarvestMoon3HatchEggTerminateMetric,
 237    NextToChickenSilo3Subgoal,
 238    PickupChickenFodder3Subgoal,
 239    NextToTopmostChickenStallBlockSubgoal,
 240    FillTopmostChickenStallBlockTerminateMetric,
 241    NextToFodderSetSubgoal,
 242    SelectedFodderSetSubgoal,
 243    BuyFodderSet3TerminateMetric,
 244    NextToHorseMedicineSubgoal,
 245    SelectedHorseMedicineSubgoal,
 246    BuyHorseMedicine3TerminateMetric,
 247    SpeakToKateTerminateMetric,
 248    NextToKateSubgoal,
 249    NextToCenterSPotatoSubgoal,
 250    ReadAnimalCh2TerminateMetric,
 251    NextToBookshelfSubgoal,
 252    HarvestCenterTurnip3TerminateMetric,
 253    NextToCenterTurnip3Subgoal,
 254    SellChicken3TerminateMetric,
 255    NextToSellChicken3Subgoal,
 256    PickBerry3TerminateMetric,
 257    NextToBerry3Subgoal,
 258    CheckPlayerMoneyTerminateMetric,
 259    CheckPlayerMoneySubgoal,
 260    HarvestCenterEggplantTop3TerminateMetric,
 261    NextToCenterEggplantTopSubgoal,
 262    WaterCenterSPotato3TerminateMetric,
 263    NextToCenterWatermelonSubgoal,
 264    WaterCenterWatermelon3TerminateMetric,
 265    NextToTargetPotatoBelowSubgoal,
 266    HarvestTargetPotato3TerminateMetric,
 267    OutsideChickenCoop3Subgoal,
 268    NextToSecretGardenSign3Subgoal,
 269    ReadFerrySignTerminateMetric,
 270    NextToFerrySignSubgoal,
 271    FindSecretSavingsTerminateMetric,
 272    NextToFireplaceSubgoal,
 273    BuyPotatoSeeds3TerminateMetric,
 274    NextToPotatoSeeds3Subgoal,
 275    ChooseTea3TerminateMetric,
 276    NextToTea3Subgoal,
 277    ChooseAsparagusSeedsTerminateMetric,
 278    NextToAsparagusSeeds3Subgoal,
 279    NextToTurnipSeeds3Subgoal,
 280    BuyTurnipSeeds3TerminateMetric,
 281    ReadMorningMarketSignTerminateMetric,
 282    NextToMorningMarketSignSubgoal,
 283    ReadStorageSignTerminateMetric,
 284    NextToStorageSign3Subgoal,
 285    SpeakToKirkVillageTerminateMetric,
 286    NextToKirkVillageSubgoal,
 287    TakeFerryTerminateMetric,
 288    NextToKirkMainlandSubgoal,
 289    SpeakToJoeTerminateMetric,
 290    NextToJoeSubgoal,
 291    SpeakToLukiaTerminateMetric,
 292    NextToLukiaSubgoal,
 293    SpeakToLucusTerminateMetric,
 294    NextToLucusSubgoal,
 295    SpeakToLylaTerminateMetric,
 296    NextToLylaSubgoal,
 297    BuyHorseSaddleTerminateMetric,
 298    NextToHorseSaddleSubgoal,
 299    BuyFlowerVaseTerminateMetric,
 300    NextToVaseSubgoal,
 301    BuyMealSetTerminateMetric,
 302    SelectMealSetSubgoal,
 303    BuyCoffeeTerminateMetric,
 304    NextToCoffeeSubgoal,
 305    SelectCoffeeSubgoal,
 306    FillCowFodderBlock3TerminateMetric,
 307    NextToCowFodderBlock3Subgoal,
 308    FarmEntranceTerminateMetric,
 309    NearFarmSubgoal,
 310    VillageEntranceTerminateMetric,
 311    NearVillageSubgoal,
 312    GrasslandEntranceTerminateMetric,
 313    NearGrasslandSubgoal,
 314    ForestEntranceTerminateMetric,
 315    NearForestSubgoal,
 316    CliffEntranceTerminateMetric,
 317    NearCliffSubgoal,
 318    MountainEntranceTerminateMetric,
 319    NearMountainSubgoal,
 320    ShoppingMallEntranceTerminateMetric,
 321    NearShoppingMallSubgoal,
 322    ShoppingMallSecondFloorTerminateMetric,
 323    NextToStairsSubgoal,
 324    FarmersUnionEntranceTerminateMetric,
 325    NearFarmersUnionSubgoal,
 326    AquariumEntranceTerminateMetric,
 327    NearAquariumSubgoal,
 328    TheatreEntranceTerminateMetric,
 329    NearTheatreSubgoal,
 330    HotSpringEntranceTerminateMetric,
 331    NearHotSpringSubgoal,
 332)
 333from gameboy_worlds.utils import log_info
 334from gameboy_worlds.emulation.tracker import (
 335    StateTracker,
 336    TestTrackerMixin,
 337    DummySubGoalMetric,
 338    make_subgoal_metric_class,
 339)
 340from gameboy_worlds.emulation.harvest_moon.parsers import (
 341    AgentState,
 342)
 343from typing import Optional
 344
 345
 346class CoreHarvestMoonTracker(StateTracker):
 347    """
 348    StateTracker for core Harvest Moon metrics.
 349    """
 350
 351    _REMOVE_GRID_OVERLAY = False
 352    """ Whether to remove the grid overlay drawn by the state parser when the agent is in FREE ROAM. This is useful for VLM based agents may need a coordinate grid overlayed onto the frame, but may cause issues for agents that do not understand that it is not a part of the game. """
 353
 354    def start(self):
 355        super().start()
 356        self.metric_classes.extend([CoreHarvestMoonMetrics, HarvestMoonTestMetric])
 357
 358    def step(self, *args, **kwargs):
 359        """
 360        Calls on super().step(), but then modifies the current frame to overlay the grid if the agent is in FREE ROAM.
 361        """
 362        super().step(*args, **kwargs)
 363        if self._REMOVE_GRID_OVERLAY:
 364            state = self.episode_metrics["harvest_moon_core"]["agent_state"]
 365            # if agent_state is in FREE ROAM, draw the grid, otherwise do not
 366            if state == AgentState.FREE_ROAM:
 367                screen = self.episode_metrics["core"]["current_frame"]
 368                screen = self.state_parser.draw_grid_overlay(current_frame=screen)
 369                self.episode_metrics["core"]["current_frame"] = screen
 370                previous_screens = self.episode_metrics["core"]["passed_frames"]
 371                if previous_screens is not None:
 372                    self.episode_metrics["core"]["passed_frames"][-1, :] = screen
 373
 374
 375class HarvestMoonOCRTracker(CoreHarvestMoonTracker):
 376    def start(self):
 377        super().start()
 378        self.metric_classes.extend([HarvestMoonOCRMetric])
 379        
 380class HarvestMoonTestTracker(TestTrackerMixin, HarvestMoonOCRTracker):
 381    """
 382    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 383    """
 384
 385    TERMINATION_TRUNCATION_METRIC = CowBarnTerminateMetric
 386    SUBGOAL_METRIC = DummySubGoalMetric
 387
 388class HarvestMoonCowBarnTracker(HarvestMoonTestTracker):
 389    """
 390    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 391    """
 392
 393    TERMINATION_TRUNCATION_METRIC = CowBarnTerminateMetric
 394    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCowBarnSubgoal])
 395    
 396class HarvestMoonChickenCoopTracker(HarvestMoonTestTracker):
 397    """
 398    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 399    """
 400
 401    TERMINATION_TRUNCATION_METRIC = ChickenCoopTerminateMetric
 402    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChickenCoopSubgoal])
 403
 404class HarvestMoon3ChickenCoopTracker(HarvestMoonTestTracker):
 405    """
 406    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 407    """
 408
 409    TERMINATION_TRUNCATION_METRIC = ChickenCoopTerminateMetric
 410    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChickenCoop3Subgoal])
 411    
 412class HarvestMoonStorageTracker(HarvestMoonTestTracker):
 413    """
 414    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 415    """
 416
 417    TERMINATION_TRUNCATION_METRIC = StorageTerminateMetric
 418    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideStorageSubgoal])
 419
 420class HarvestMoonPickupWaterCanTracker(HarvestMoonTestTracker):
 421    """
 422    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 423    """
 424
 425    TERMINATION_TRUNCATION_METRIC = PickupWaterCanTerminateMetric
 426    SUBGOAL_METRIC = make_subgoal_metric_class([NextToWaterCanSubgoal])
 427
 428class HarvestMoonPickupCowBellTracker(HarvestMoonTestTracker):
 429    TERMINATION_TRUNCATION_METRIC = PickupCowBellTerminateMetric
 430    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCowBellSubgoal])
 431
 432class HarvestMoonPickupSickleTracker(HarvestMoonTestTracker):
 433    TERMINATION_TRUNCATION_METRIC = PickupSickleTerminateMetric
 434    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSickleSubgoal])
 435
 436class HarvestMoonPickupHoeTracker(HarvestMoonTestTracker):
 437    TERMINATION_TRUNCATION_METRIC = PickupHoeTerminateMetric
 438    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHoeSubgoal])
 439
 440class HarvestMoonPickupHammerTracker(HarvestMoonTestTracker):
 441    TERMINATION_TRUNCATION_METRIC = PickupHammerTerminateMetric
 442    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHammerSubgoal])
 443
 444class HarvestMoonPickupGrassSeedTracker(HarvestMoonTestTracker):
 445    TERMINATION_TRUNCATION_METRIC = PickupGrassSeedTerminateMetric
 446    SUBGOAL_METRIC = make_subgoal_metric_class([NextToGrassSeedSubgoal])
 447
 448class HarvestMoonGoToSleepTracker(HarvestMoonTestTracker):
 449    """
 450    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 451    """
 452
 453    TERMINATION_TRUNCATION_METRIC = GoToSleepTerminateMetric
 454    SUBGOAL_METRIC = make_subgoal_metric_class([SleepOptionSubgoal])
 455    
 456class HarvestMoonFeedSpiritTracker(HarvestMoonTestTracker):
 457    """
 458    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 459    """
 460
 461    TERMINATION_TRUNCATION_METRIC = FeedSpiritTerminateMetric
 462    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSpiritSubgoal])
 463
 464class HarvestMoonHelpSpiritEarthquakeTracker(HarvestMoonTestTracker):
 465    TERMINATION_TRUNCATION_METRIC = HelpSpiritEarthquakeTerminateMetric
 466    SUBGOAL_METRIC = make_subgoal_metric_class([NextToEarthquakeSpiritSubgoal])
 467
 468class HarvestMoonWaterTurnipTracker(HarvestMoonTestTracker):
 469    """
 470    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 471    """
 472
 473    TERMINATION_TRUNCATION_METRIC = WaterTurnipTerminateMetric
 474    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTurnipSubgoal])
 475
 476class HarvestMoonBuyMaterialTracker(HarvestMoonTestTracker):
 477    TERMINATION_TRUNCATION_METRIC = BuyMaterialTerminateMetric
 478    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter1Subgoal, ShopForMaterialSubgoal, SelectMaterialSubgoal])
 479
 480class HarvestMoonBuyChickenTracker(HarvestMoonTestTracker):
 481    TERMINATION_TRUNCATION_METRIC = BuyChickenTerminateMetric
 482    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideAnimalShop1Subgoal, ShopForAnimalSubgoal, SelectChickenSubgoal])
 483
 484class HarvestMoonBuyCowTracker(HarvestMoonTestTracker):
 485    TERMINATION_TRUNCATION_METRIC = BuyCowTerminateMetric
 486    SUBGOAL_METRIC = make_subgoal_metric_class([SelectCowSubgoal])
 487
 488class HarvestMoonSellChickenTracker(HarvestMoonTestTracker):
 489    TERMINATION_TRUNCATION_METRIC = SellChickenTerminateMetric
 490    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideAnimalShop1Subgoal, ShopForAnimalSubgoal, SelectSellingChickenSubgoal])
 491
 492class HarvestMoonBuyCowBrushTracker(HarvestMoonTestTracker):
 493    TERMINATION_TRUNCATION_METRIC = BuyCowBrushTerminateMetric
 494    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop1Subgoal, ShopForToolsSubgoal, SelectCowBrushSubgoal])
 495
 496class HarvestMoonBuySaddlebagTracker(HarvestMoonTestTracker):
 497    TERMINATION_TRUNCATION_METRIC = BuySaddlebagTerminateMetric
 498    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop1Subgoal, ShopForToolsSubgoal, SelectSaddlebagSubgoal])
 499
 500class HarvestMoonBuyMilkerTracker(HarvestMoonTestTracker):
 501    TERMINATION_TRUNCATION_METRIC = BuyMilkerTerminateMetric
 502    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop1Subgoal, ShopForToolsSubgoal, SelectMilkerSubgoal])
 503
 504class HarvestMoonBuyRiceBallTracker(HarvestMoonTestTracker):
 505    """
 506    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 507    """
 508
 509    TERMINATION_TRUNCATION_METRIC = BuyRiceBallTerminateMetric
 510    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurantSubgoal, ShopForFoodSubgoal, SelectRiceBallSubgoal, BuyRiceBallOptionSubgoal])
 511
 512class HarvestMoonBuyCroissantTracker(HarvestMoonTestTracker):
 513    TERMINATION_TRUNCATION_METRIC = BuyCroissantTerminateMetric
 514    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurantSubgoal, ShopForFoodSubgoal, SelectCroissantSubgoal, BuyCroissantOptionSubgoal])
 515
 516class HarvestMoonBuyCakeTracker(HarvestMoonTestTracker):
 517    TERMINATION_TRUNCATION_METRIC = BuyCakeTerminateMetric
 518    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurantSubgoal, ShopForFoodSubgoal, SelectCakeSubgoal, BuyCakeOptionSubgoal])
 519
 520class HarvestMoonBuyGrapeJuiceTracker(HarvestMoonTestTracker):
 521    TERMINATION_TRUNCATION_METRIC = BuyGrapeJuiceTerminateMetric
 522    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideJuiceBarSubgoal, ShopForJuiceSubgoal, SelectGrapeJuiceSubgoal, BuyGrapeJuiceOptionSubgoal])
 523
 524class HarvestMoonGoToChurchPrayTracker(HarvestMoonTestTracker):
 525    TERMINATION_TRUNCATION_METRIC = GoToChurchPrayTerminateMetric
 526    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChurchSubgoal, InsideChurchSubgoal, PrayOptionSubgoal])
 527
 528class HarvestMoonOpenStorageListTracker(HarvestMoonTestTracker):
 529    """
 530    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 531    """
 532
 533    TERMINATION_TRUNCATION_METRIC = OpenStorageListTerminateMetric
 534    SUBGOAL_METRIC = make_subgoal_metric_class([NextToStorageListSubgoal])
 535
 536class HarvestMoonFindRainyMoneyTracker(HarvestMoonTestTracker):
 537    TERMINATION_TRUNCATION_METRIC = FindRainyMoneyTerminateMetric
 538    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSafeSubgoal])
 539
 540class HarvestMoonFindLostBirdTracker(HarvestMoonTestTracker):
 541    """
 542    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 543    """
 544
 545    TERMINATION_TRUNCATION_METRIC = FindLostBirdTerminateMetric
 546    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLostBirdSubgoal])
 547
 548class HarvestMoonSpeakToBlueHairGirlTracker(HarvestMoonTestTracker):
 549    """
 550    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 551    """
 552
 553    TERMINATION_TRUNCATION_METRIC = SpeakToBlueHairGirlTerminateMetric
 554    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlueHairGirlSubgoal])
 555
 556class HarvestMoonSpeakToGoldenHairGirlTracker(HarvestMoonTestTracker):
 557    TERMINATION_TRUNCATION_METRIC = SpeakToGoldenHairGirlTerminateMetric
 558    SUBGOAL_METRIC = make_subgoal_metric_class([NextToGoldenHairGirlSubgoal])
 559
 560class HarvestMoonSpeakToPinkHairGirlTracker(HarvestMoonTestTracker):
 561    TERMINATION_TRUNCATION_METRIC = SpeakToPinkHairGirlTerminateMetric
 562    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPinkHairGirlSubgoal])
 563
 564class HarvestMoon1SpeakToBlueHairGirlWGTracker(HarvestMoonTestTracker):
 565    TERMINATION_TRUNCATION_METRIC = SpeakToBlueHairGirlWGTerminateMetric
 566    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlueHairGirlWGSubgoal])
 567
 568class HarvestMoon1SpeakToPinkHairGirlWGTracker(HarvestMoonTestTracker):
 569    TERMINATION_TRUNCATION_METRIC = SpeakToPinkHairGirlWGTerminateMetric
 570    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPinkHairGirlWGSubgoal])
 571
 572class HarvestMoon1SpeakToRedHairGirlWGTracker(HarvestMoonTestTracker):
 573    TERMINATION_TRUNCATION_METRIC = SpeakToRedHairGirlWGTerminateMetric
 574    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRedHairGirlWGSubgoal])
 575
 576class HarvestMoonFillChickenFodderTracker(HarvestMoonTestTracker):
 577    """
 578    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 579    """
 580
 581    TERMINATION_TRUNCATION_METRIC = FillChickenFodderBlock1TerminateMetric
 582    SUBGOAL_METRIC = make_subgoal_metric_class([NextToChickenSiloSubgoal, PickupChickenFodderSubgoal, NextToChickenFodderBlock1Subgoal])
 583
 584class HarvestMoon1FillCowFodderTracker(HarvestMoonTestTracker):
 585    TERMINATION_TRUNCATION_METRIC = FillUpperRightCowStallTerminateMetric
 586    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCowFeedingStallSubgoal])
 587
 588
 589
 590class HarvestMoonOpenMenuTracker(HarvestMoonTestTracker):
 591    TERMINATION_TRUNCATION_METRIC = OpenMenuTerminateMetric
 592
 593# HM2
 594class HarvestMoon2CowBarnTracker(HarvestMoonTestTracker):
 595    TERMINATION_TRUNCATION_METRIC = CowBarnTerminateMetric
 596    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCowBarn2Subgoal])
 597
 598class HarvestMoon2ChickenCoopTracker(HarvestMoonTestTracker):
 599    TERMINATION_TRUNCATION_METRIC = ChickenCoopTerminateMetric
 600    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChickenCoop2Subgoal])
 601
 602class HarvestMoon2FindLuckyMoneyTracker(HarvestMoonTestTracker):
 603    TERMINATION_TRUNCATION_METRIC = FindLuckyMoneyTerminateMetric
 604    SUBGOAL_METRIC = make_subgoal_metric_class([NextToClockSubgoal])
 605
 606class HarvestMoon2HospitalEntranceTracker(HarvestMoonTestTracker):
 607    TERMINATION_TRUNCATION_METRIC = HospitalEntranceTerminateMetric
 608    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideHospitalSubgoal])
 609
 610class HarvestMoon2ToolShopEntranceTracker(HarvestMoonTestTracker):
 611    TERMINATION_TRUNCATION_METRIC = ToolShopEntranceTerminateMetric
 612    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop2Subgoal])
 613
 614class HarvestMoon2CarpenterEntranceTracker(HarvestMoonTestTracker):
 615    TERMINATION_TRUNCATION_METRIC = CarpenterEntranceTerminateMetric
 616    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter2Subgoal])
 617
 618class HarvestMoon2AnimalShopEntranceTracker(HarvestMoonTestTracker):
 619    TERMINATION_TRUNCATION_METRIC = AnimalShopEntranceTerminateMetric
 620    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideAnimalShop2Subgoal])
 621
 622class HarvestMoon2LibraryEntranceTracker(HarvestMoonTestTracker):
 623    TERMINATION_TRUNCATION_METRIC = LibraryEntranceTerminateMetric
 624    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideLibrarySubgoal])
 625
 626class HarvestMoon2FlowerShopEntranceTracker(HarvestMoonTestTracker):
 627    TERMINATION_TRUNCATION_METRIC = FlowerShopEntranceTerminateMetric
 628    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideFlowerShop2Subgoal])
 629
 630class HarvestMoon2GetBridgeEstimateTracker(HarvestMoonTestTracker):
 631    TERMINATION_TRUNCATION_METRIC = GetBridgeEstimateTerminateMetric
 632    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter2Subgoal, ShopForConstructionEstimatesSubgoal, SelectBridgeSubgoal])
 633
 634class HarvestMoon2BuyMilkerTracker(HarvestMoonTestTracker):
 635    TERMINATION_TRUNCATION_METRIC = BuyMilkerTerminateMetric
 636    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop2Subgoal, ShopForToolsSubgoal, SelectMilkerSubgoal])
 637
 638class HarvestMoon2RestaurantEntranceTracker(HarvestMoonTestTracker):
 639    TERMINATION_TRUNCATION_METRIC = RestaurantEntranceTerminateMetric
 640    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurant2Subgoal])
 641
 642class HarvestMoon2BuyLunchSetTracker(HarvestMoonTestTracker):
 643    TERMINATION_TRUNCATION_METRIC = BuyLunchSetTerminateMetric
 644    SUBGOAL_METRIC = make_subgoal_metric_class([SelectLunchSetSubgoal, BuyLunchSetOptionSubgoal])
 645
 646class HarvestMoon2BuyBeverageSetTracker(HarvestMoonTestTracker):
 647    TERMINATION_TRUNCATION_METRIC = BuyBeverageSetTerminateMetric
 648    SUBGOAL_METRIC = make_subgoal_metric_class([SelectBeverageSetSubgoal, BuyBeverageSetOptionSubgoal])
 649
 650class HarvestMoon2BuyTodaysSpecialTracker(HarvestMoonTestTracker):
 651    TERMINATION_TRUNCATION_METRIC = BuyTodaysSpecialTerminateMetric
 652    SUBGOAL_METRIC = make_subgoal_metric_class([SelectTodaysSpecialSubgoal, BuyTodaysSpecialOptionSubgoal])
 653
 654class HarvestMoon2GoToBedTracker(HarvestMoonTestTracker):
 655    TERMINATION_TRUNCATION_METRIC = GoToSleepTerminateMetric
 656    SUBGOAL_METRIC = make_subgoal_metric_class([NextToDiarySubgoal, DiaryOptionSubgoal])
 657
 658class HarvestMoon2ReadSecretGardenSignTracker(HarvestMoonTestTracker):
 659    TERMINATION_TRUNCATION_METRIC = ReadSecretGardenSignTerminateMetric
 660    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSecretGardenSignSubgoal])
 661
 662class HarvestMoon2ReadCropFieldSignTracker(HarvestMoonTestTracker):
 663    TERMINATION_TRUNCATION_METRIC = ReadCropFieldSignTerminateMetric
 664    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCropFieldSignSubgoal])
 665
 666class HarvestMoon2EquipSickleTracker(HarvestMoonTestTracker):
 667    TERMINATION_TRUNCATION_METRIC = EquipSickleTerminateMetric
 668    SUBGOAL_METRIC = make_subgoal_metric_class([EmptyHandsSelectedSubgoal, ReadyToPickSickleSubgoal])
 669
 670class HarvestMoon2EquipHammerTracker(HarvestMoonTestTracker):
 671    TERMINATION_TRUNCATION_METRIC = EquipHammerTerminateMetric
 672    SUBGOAL_METRIC = make_subgoal_metric_class([EmptyHandsSelectedSubgoal, ReadyToPickHammerSubgoal])
 673
 674class HarvestMoon2EquipFishingRodTracker(HarvestMoonTestTracker):
 675    TERMINATION_TRUNCATION_METRIC = EquipFishingRodTerminateMetric
 676    SUBGOAL_METRIC = make_subgoal_metric_class([EmptyHandsSelectedSubgoal, ReadyToPickFishingRodSubgoal])
 677
 678class HarvestMoon2EquipNetReplacingAxTracker(HarvestMoonTestTracker):
 679    TERMINATION_TRUNCATION_METRIC = EquipNetReplacingAxTerminateMetric
 680    SUBGOAL_METRIC = make_subgoal_metric_class([AxeSelected2Subgoal, ReadyToPickNetSubgoal])
 681
 682class HarvestMoon2EquipRosemarySeedsReplacingAxTracker(HarvestMoonTestTracker):
 683    TERMINATION_TRUNCATION_METRIC = EquipRosemarySeedsReplacingAxTerminateMetric
 684    SUBGOAL_METRIC = make_subgoal_metric_class([AxeSelected2Subgoal, ReadyToPickRosemarySeedsSubgoal])
 685
 686class HarvestMoon2EquipSickleReplacingSprinklerTracker(HarvestMoonTestTracker):
 687    TERMINATION_TRUNCATION_METRIC = EquipSickleReplacingSprinklerTerminateMetric
 688    SUBGOAL_METRIC = make_subgoal_metric_class([SprinklerSelected1Subgoal, ReadyToPickSickleSubgoal])
 689
 690class HarvestMoon2EquipNetReplacingHoeTracker(HarvestMoonTestTracker):
 691    TERMINATION_TRUNCATION_METRIC = EquipNetReplacingHoeTerminateMetric
 692    SUBGOAL_METRIC = make_subgoal_metric_class([HoeSelected3Subgoal, ReadyToPickNetSubgoal])
 693
 694class HarvestMoon1HatchEggTracker(HarvestMoonTestTracker):
 695    TERMINATION_TRUNCATION_METRIC = HatchEggTerminateMetric
 696    SUBGOAL_METRIC = make_subgoal_metric_class([NextToEggSubgoal])
 697
 698class HarvestMoon1BreakRockTracker(HarvestMoonTestTracker):
 699    TERMINATION_TRUNCATION_METRIC = BreakRockTerminateMetric
 700    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRockFromLeftSubgoal])
 701
 702class HarvestMoon1BreakRightmostRockTracker(HarvestMoonTestTracker):
 703    TERMINATION_TRUNCATION_METRIC = BreakRightmostRockTerminateMetric
 704    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRightmostRockAboveSubgoal])
 705
 706class HarvestMoon1RemoveLowestWeedTracker(HarvestMoonTestTracker):
 707    TERMINATION_TRUNCATION_METRIC = RemoveLowestWeedTerminateMetric
 708    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLowestWeedFromAboveSubgoal])
 709
 710class HarvestMoon1CutLowestWeedTracker(HarvestMoonTestTracker):
 711    TERMINATION_TRUNCATION_METRIC = CutLowestWeedTerminateMetric
 712    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLowestWeedFromAboveSubgoal])
 713
 714class HarvestMoon1RemoveTopLeftWeedTracker(HarvestMoonTestTracker):
 715    TERMINATION_TRUNCATION_METRIC = RemoveTopLeftWeedTerminateMetric
 716    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTopLeftWeedFromRightSubgoal])
 717
 718class HarvestMoon1CutTopLeftWeedTracker(HarvestMoonTestTracker):
 719    TERMINATION_TRUNCATION_METRIC = CutTopLeftWeedTerminateMetric
 720    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTopLeftWeedFromRightSubgoal])
 721
 722class HarvestMoon1HarvestCenterGrasslineTracker(HarvestMoonTestTracker):
 723    TERMINATION_TRUNCATION_METRIC = HarvestCenterGrasslineTerminateMetric
 724    SUBGOAL_METRIC = make_subgoal_metric_class([NextToGrasslandFromLeftSubgoal])
 725
 726class HarvestMoon1RestoreFenceTracker(HarvestMoonTestTracker):
 727    TERMINATION_TRUNCATION_METRIC = RestoreFenceTerminateMetric
 728    SUBGOAL_METRIC = make_subgoal_metric_class([PickedUpBrokenFenceSubgoal])
 729
 730class HarvestMoon1HarvestCenterTurnipTracker(HarvestMoonTestTracker):
 731    TERMINATION_TRUNCATION_METRIC = HarvestCenterTurnipTerminateMetric
 732    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterTurnipSubgoal])
 733
 734class HarvestMoon1WaterCenterTurnipTracker(HarvestMoonTestTracker):
 735    TERMINATION_TRUNCATION_METRIC = WaterCenterTurnipTerminateMetric
 736    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterTurnipLeftSubgoal])
 737
 738class HarvestMoon1WaterCenterPotatoTracker(HarvestMoonTestTracker):
 739    TERMINATION_TRUNCATION_METRIC = WaterCenterPotatoTerminateMetric
 740    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterPotatoSubgoal])
 741
 742class HarvestMoon1HarvestCenterPotatoTracker(HarvestMoonTestTracker):
 743    TERMINATION_TRUNCATION_METRIC = HarvestCenterPotatoTerminateMetric
 744    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterPotatoBelowSubgoal])
 745
 746class HarvestMoon1GetHomeExpansionEstimateTracker(HarvestMoonTestTracker):
 747    TERMINATION_TRUNCATION_METRIC = GetHomeExpansionEstimateTerminateMetric
 748    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter1Subgoal, ShopForMaterialSubgoal, SelectHomeExpansionSubgoal])
 749
 750# class HarvestMoon2ShipEggplantTracker(HarvestMoonTestTracker):
 751#     TERMINATION_TRUNCATION_METRIC = ShipEggplantTerminateMetric
 752#     SUBGOAL_METRIC = make_subgoal_metric_class([NextToShippingBoxSubgoal])
 753
 754class HarvestMoon2Cross500mLineTracker(HarvestMoonTestTracker):
 755    TERMINATION_TRUNCATION_METRIC = Cross500mLineTerminateMetric
 756    SUBGOAL_METRIC = make_subgoal_metric_class([AtTheStartLineSubgoal])
 757
 758class HarvestMoon2Cross1000mLineTracker(HarvestMoonTestTracker):
 759    TERMINATION_TRUNCATION_METRIC = Cross1000mLineTerminateMetric
 760    SUBGOAL_METRIC = make_subgoal_metric_class([AtTheStartLineSubgoal])
 761
 762class HarvestMoon2HarvestCenterEggplantTracker(HarvestMoonTestTracker):
 763    TERMINATION_TRUNCATION_METRIC = HarvestCenterEggplantTerminateMetric
 764    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterEggplantSubgoal])
 765
 766class HarvestMoon2HarvestCenterCarrotTracker(HarvestMoonTestTracker):
 767    TERMINATION_TRUNCATION_METRIC = HarvestCenterCarrotTerminateMetric
 768    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterCarrotSubgoal])
 769
 770class HarvestMoon2WaterCenterPotatoTracker(HarvestMoonTestTracker):
 771    TERMINATION_TRUNCATION_METRIC = WaterCenterPotatoTerminateMetric
 772    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterPotatoSubgoal])
 773
 774class HarvestMoon2WaterCenterAsparagusTracker(HarvestMoonTestTracker):
 775    TERMINATION_TRUNCATION_METRIC = WaterCenterAsparagusTerminateMetric
 776    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterAsparagusSubgoal])
 777
 778class HarvestMoon2WaterCornFieldTracker(HarvestMoonTestTracker):
 779    TERMINATION_TRUNCATION_METRIC = WaterCornFieldTerminateMetric
 780    SUBGOAL_METRIC = make_subgoal_metric_class([AtCornCenterSubgoal])
 781
 782class HarvestMoon2WaterCabbageFieldTracker(HarvestMoonTestTracker):
 783    TERMINATION_TRUNCATION_METRIC = WaterCabbageFieldTerminateMetric
 784    SUBGOAL_METRIC = make_subgoal_metric_class([AtCabbageCenterSubgoal])
 785
 786class HarvestMoon2CutCenterCornTracker(HarvestMoonTestTracker):
 787    TERMINATION_TRUNCATION_METRIC = CutCenterCornTerminateMetric
 788    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterCornSubgoal])
 789
 790class HarvestMoon2ReadComputersArticleTracker(HarvestMoonTestTracker):
 791    TERMINATION_TRUNCATION_METRIC = ReadComputersArticleTerminateMetric
 792    SUBGOAL_METRIC = make_subgoal_metric_class([ComputersArticleSelectedSubgoal])
 793
 794class HarvestMoon2ReadBouldersArticleTracker(HarvestMoonTestTracker):
 795    TERMINATION_TRUNCATION_METRIC = ReadBouldersArticleTerminateMetric
 796    SUBGOAL_METRIC = make_subgoal_metric_class([BouldersArticleSelectedSubgoal])
 797
 798class HarvestMoon2ReadCropsArticleTracker(HarvestMoonTestTracker):
 799    TERMINATION_TRUNCATION_METRIC = ReadCropsArticleTerminateMetric
 800    SUBGOAL_METRIC = make_subgoal_metric_class([CropsArticleSelectedSubgoal])
 801
 802class HarvestMoon2RemoveLeftmostWeedTracker(HarvestMoonTestTracker):
 803    TERMINATION_TRUNCATION_METRIC = RemoveLeftmostWeedTerminateMetric
 804    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLeftmostWeedSubgoal])
 805
 806class HarvestMoon2PickBerryTracker(HarvestMoonTestTracker):
 807    TERMINATION_TRUNCATION_METRIC = PickBerryTerminateMetric
 808    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBerrySubgoal])
 809
 810class HarvestMoon2PickBerryAboveTracker(HarvestMoonTestTracker):
 811    TERMINATION_TRUNCATION_METRIC = PickBerryAboveTerminateMetric
 812    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBerryAboveSubgoal])
 813
 814class HarvestMoon2SpeakToBlueHairGirlTracker(HarvestMoonTestTracker):
 815    TERMINATION_TRUNCATION_METRIC = SpeakToBlueHairGirl2TerminateMetric
 816    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlueHairGirl2Subgoal])
 817
 818class HarvestMoon2SpeakToPurpleHairGirlTracker(HarvestMoonTestTracker):
 819    TERMINATION_TRUNCATION_METRIC = SpeakToPurpleHairGirlTerminateMetric
 820    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPurpleHairGirlSubgoal])
 821
 822class HarvestMoon2SpeakToBlondeGirlTracker(HarvestMoonTestTracker):
 823    TERMINATION_TRUNCATION_METRIC = SpeakToBlondeGirlTerminateMetric
 824    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlondeGirlSubgoal])
 825
 826class HarvestMoon2HatchEggTracker(HarvestMoonTestTracker):
 827    TERMINATION_TRUNCATION_METRIC = HarvestMoon2HatchEggTerminateMetric
 828    SUBGOAL_METRIC = make_subgoal_metric_class([HarvestMoon2NextToHatchingBoxSubgoal])
 829
 830class HarvestMoon2BuyCowTracker(HarvestMoonTestTracker):
 831    TERMINATION_TRUNCATION_METRIC = BuyCowTerminateMetric
 832    SUBGOAL_METRIC = make_subgoal_metric_class([SelectCowSubgoal])
 833
 834class HarvestMoon2SellCowTracker(HarvestMoonTestTracker):
 835    TERMINATION_TRUNCATION_METRIC = SellCowTerminateMetric
 836    SUBGOAL_METRIC = make_subgoal_metric_class([ShopForAnimalSubgoal, SelectSellingCowSubgoal])
 837
 838class HarvestMoon2SellChickenTracker(HarvestMoonTestTracker):
 839    TERMINATION_TRUNCATION_METRIC = SellChickenTerminateMetric
 840    SUBGOAL_METRIC = make_subgoal_metric_class([ShopForAnimalSubgoal, SelectSellingChickenSubgoal])
 841
 842class HarvestMoon2GetHothouseEstimateTracker(HarvestMoonTestTracker):
 843    TERMINATION_TRUNCATION_METRIC = GetHothouseEstimateTerminateMetric
 844    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter2Subgoal, ShopForConstructionEstimatesSubgoal, SelectHothouseSubgoal])
 845
 846class HarvestMoon2BuyChickenTracker(HarvestMoonTestTracker):
 847    TERMINATION_TRUNCATION_METRIC = BuyChickenTerminateMetric
 848    SUBGOAL_METRIC = make_subgoal_metric_class([ShopForAnimalSubgoal, SelectChickenSubgoal])
 849
 850class HarvestMoon2FillChickenFodderTracker(HarvestMoonTestTracker):
 851    TERMINATION_TRUNCATION_METRIC = FillChickenFodderBlock1TerminateMetric
 852    SUBGOAL_METRIC = make_subgoal_metric_class([NextToChickenSilo2Subgoal, PickupChickenFodder2Subgoal, NextToChickenFodderBlock1Subgoal])
 853
 854## TO DO
 855class HarvestMoonReadNoticeBoardTracker(HarvestMoonTestTracker):
 856    TERMINATION_TRUNCATION_METRIC = ReadNoticeBoardTerminateMetric
 857    SUBGOAL_METRIC = make_subgoal_metric_class([NextToNoticeBoardSubgoal])
 858
 859class HarvestMoonReadVillageSignTracker(HarvestMoonTestTracker):
 860    TERMINATION_TRUNCATION_METRIC = ReadVillageSignTerminateMetric
 861    SUBGOAL_METRIC = make_subgoal_metric_class([NextToVillageSignSubgoal])
 862
 863class HarvestMoonReadFarmSignTracker(HarvestMoonTestTracker):
 864    TERMINATION_TRUNCATION_METRIC = ReadFarmSignTerminateMetric
 865    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFarmSignSubgoal])
 866
 867
 868# class HarvestMoonCleanRockTracker(HarvestMoonTestTracker):
 869#     """
 870#     Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
 871#     """
 872
 873#     TERMINATION_TRUNCATION_METRIC = PickupWaterCanTerminateMetric
 874#     SUBGOAL_METRIC = make_subgoal_metric_class([NextToWaterCanSubgoal])
 875
 876
 877## HM3
 878class HarvestMoon3ReadSecretGardenSignTracker(HarvestMoonTestTracker):
 879    TERMINATION_TRUNCATION_METRIC = ReadSecretGardenSignTerminateMetric
 880    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSecretGardenSign3Subgoal])
 881
 882class HarvestMoon3ReadFerrySignTracker(HarvestMoonTestTracker):
 883    TERMINATION_TRUNCATION_METRIC = ReadFerrySignTerminateMetric
 884    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFerrySignSubgoal])
 885
 886class HarvestMoon3FindSecretSavingsTracker(HarvestMoonTestTracker):
 887    TERMINATION_TRUNCATION_METRIC = FindSecretSavingsTerminateMetric
 888    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFireplaceSubgoal])
 889
 890class HarvestMoon3ChooseTeaTracker(HarvestMoonTestTracker):
 891    TERMINATION_TRUNCATION_METRIC = ChooseTea3TerminateMetric
 892    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTea3Subgoal])
 893
 894class HarvestMoon3ChooseAsparagusSeedsTracker(HarvestMoonTestTracker):
 895    TERMINATION_TRUNCATION_METRIC = ChooseAsparagusSeedsTerminateMetric
 896    SUBGOAL_METRIC = make_subgoal_metric_class([NextToAsparagusSeeds3Subgoal])
 897
 898class HarvestMoon3BuyPotatoSeedsTracker(HarvestMoonTestTracker):
 899    TERMINATION_TRUNCATION_METRIC = BuyPotatoSeeds3TerminateMetric
 900    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPotatoSeeds3Subgoal])
 901
 902class HarvestMoon3BuyTurnipSeedsTracker(HarvestMoonTestTracker):
 903    TERMINATION_TRUNCATION_METRIC = BuyTurnipSeeds3TerminateMetric
 904    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTurnipSeeds3Subgoal])
 905
 906class HarvestMoon3ReadMorningMarketSignTracker(HarvestMoonTestTracker):
 907    TERMINATION_TRUNCATION_METRIC = ReadMorningMarketSignTerminateMetric
 908    SUBGOAL_METRIC = make_subgoal_metric_class([NextToMorningMarketSignSubgoal])
 909
 910class HarvestMoon3ReadStorageSignTracker(HarvestMoonTestTracker):
 911    TERMINATION_TRUNCATION_METRIC = ReadStorageSignTerminateMetric
 912    SUBGOAL_METRIC = make_subgoal_metric_class([NextToStorageSign3Subgoal])
 913
 914class HarvestMoon3SpeakToKirkVillageTracker(HarvestMoonTestTracker):
 915    TERMINATION_TRUNCATION_METRIC = SpeakToKirkVillageTerminateMetric
 916    SUBGOAL_METRIC = make_subgoal_metric_class([NextToKirkVillageSubgoal])
 917
 918class HarvestMoon3TakeFerryTracker(HarvestMoonTestTracker):
 919    TERMINATION_TRUNCATION_METRIC = TakeFerryTerminateMetric
 920    SUBGOAL_METRIC = make_subgoal_metric_class([NextToKirkMainlandSubgoal])
 921
 922class HarvestMoon3SpeakToJoeTracker(HarvestMoonTestTracker):
 923    TERMINATION_TRUNCATION_METRIC = SpeakToJoeTerminateMetric
 924    SUBGOAL_METRIC = make_subgoal_metric_class([NextToJoeSubgoal])
 925
 926class HarvestMoon3SpeakToLukiaTracker(HarvestMoonTestTracker):
 927    TERMINATION_TRUNCATION_METRIC = SpeakToLukiaTerminateMetric
 928    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLukiaSubgoal])
 929
 930class HarvestMoon3SpeakToLucusTracker(HarvestMoonTestTracker):
 931    TERMINATION_TRUNCATION_METRIC = SpeakToLucusTerminateMetric
 932    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLucusSubgoal])
 933
 934class HarvestMoon3SpeakToLylaTracker(HarvestMoonTestTracker):
 935    TERMINATION_TRUNCATION_METRIC = SpeakToLylaTerminateMetric
 936    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLylaSubgoal])
 937
 938class HarvestMoon3BuyHorseSaddleTracker(HarvestMoonTestTracker):
 939    TERMINATION_TRUNCATION_METRIC = BuyHorseSaddleTerminateMetric
 940    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHorseSaddleSubgoal])
 941
 942class HarvestMoon3BuyFlowerVaseTracker(HarvestMoonTestTracker):
 943    TERMINATION_TRUNCATION_METRIC = BuyFlowerVaseTerminateMetric
 944    SUBGOAL_METRIC = make_subgoal_metric_class([NextToVaseSubgoal])
 945
 946class HarvestMoon3BuyMealSetTracker(HarvestMoonTestTracker):
 947    TERMINATION_TRUNCATION_METRIC = BuyMealSetTerminateMetric
 948    SUBGOAL_METRIC = make_subgoal_metric_class([SelectMealSetSubgoal])
 949
 950class HarvestMoon3BuyCoffeeTracker(HarvestMoonTestTracker):
 951    TERMINATION_TRUNCATION_METRIC = BuyCoffeeTerminateMetric
 952    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCoffeeSubgoal])
 953
 954class HarvestMoon3FeedCowFodderTracker(HarvestMoonTestTracker):
 955    TERMINATION_TRUNCATION_METRIC = FillCowFodderBlock3TerminateMetric
 956    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCowFodderBlock3Subgoal])
 957
 958class HarvestMoon3FarmEntranceTracker(HarvestMoonTestTracker):
 959    TERMINATION_TRUNCATION_METRIC = FarmEntranceTerminateMetric
 960    SUBGOAL_METRIC = make_subgoal_metric_class([NearFarmSubgoal])
 961
 962class HarvestMoon3VillageEntranceTracker(HarvestMoonTestTracker):
 963    TERMINATION_TRUNCATION_METRIC = VillageEntranceTerminateMetric
 964    SUBGOAL_METRIC = make_subgoal_metric_class([NearVillageSubgoal])
 965
 966class HarvestMoon3GrasslandEntranceTracker(HarvestMoonTestTracker):
 967    TERMINATION_TRUNCATION_METRIC = GrasslandEntranceTerminateMetric
 968    SUBGOAL_METRIC = make_subgoal_metric_class([NearGrasslandSubgoal])
 969
 970class HarvestMoon3ForestEntranceTracker(HarvestMoonTestTracker):
 971    TERMINATION_TRUNCATION_METRIC = ForestEntranceTerminateMetric
 972    SUBGOAL_METRIC = make_subgoal_metric_class([NearForestSubgoal])
 973
 974class HarvestMoon3CliffEntranceTracker(HarvestMoonTestTracker):
 975    TERMINATION_TRUNCATION_METRIC = CliffEntranceTerminateMetric
 976    SUBGOAL_METRIC = make_subgoal_metric_class([NearCliffSubgoal])
 977
 978class HarvestMoon3MountainEntranceTracker(HarvestMoonTestTracker):
 979    TERMINATION_TRUNCATION_METRIC = MountainEntranceTerminateMetric
 980    SUBGOAL_METRIC = make_subgoal_metric_class([NearMountainSubgoal])
 981
 982class HarvestMoon3ShoppingMallEntranceTracker(HarvestMoonTestTracker):
 983    TERMINATION_TRUNCATION_METRIC = ShoppingMallEntranceTerminateMetric
 984    SUBGOAL_METRIC = make_subgoal_metric_class([NearShoppingMallSubgoal])
 985
 986class HarvestMoon3ShoppingMallSecondFloorTracker(HarvestMoonTestTracker):
 987    TERMINATION_TRUNCATION_METRIC = ShoppingMallSecondFloorTerminateMetric
 988    SUBGOAL_METRIC = make_subgoal_metric_class([NextToStairsSubgoal])
 989
 990class HarvestMoon3FarmersUnionEntranceTracker(HarvestMoonTestTracker):
 991    TERMINATION_TRUNCATION_METRIC = FarmersUnionEntranceTerminateMetric
 992    SUBGOAL_METRIC = make_subgoal_metric_class([NearFarmersUnionSubgoal])
 993
 994class HarvestMoon3AquariumEntranceTracker(HarvestMoonTestTracker):
 995    TERMINATION_TRUNCATION_METRIC = AquariumEntranceTerminateMetric
 996    SUBGOAL_METRIC = make_subgoal_metric_class([NearAquariumSubgoal])
 997
 998class HarvestMoon3TheatreEntranceTracker(HarvestMoonTestTracker):
 999    TERMINATION_TRUNCATION_METRIC = TheatreEntranceTerminateMetric
1000    SUBGOAL_METRIC = make_subgoal_metric_class([NearTheatreSubgoal])
1001
1002class HarvestMoon3HotSpringEntranceTracker(HarvestMoonTestTracker):
1003    TERMINATION_TRUNCATION_METRIC = HotSpringEntranceTerminateMetric
1004    SUBGOAL_METRIC = make_subgoal_metric_class([NearHotSpringSubgoal])
1005
1006class HarvestMoon3BreakRockTracker(HarvestMoonTestTracker):
1007    TERMINATION_TRUNCATION_METRIC = BreakRockTerminateMetric
1008    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRockFromLeftSubgoal])
1009
1010class HarvestMoon3RemoveWeedTracker(HarvestMoonTestTracker):
1011    TERMINATION_TRUNCATION_METRIC = RemoveWeed3TerminateMetric
1012    SUBGOAL_METRIC = make_subgoal_metric_class([NextToWeed3Subgoal])
1013
1014class HarvestMoon3PickUpCherryTracker(HarvestMoonTestTracker):
1015    TERMINATION_TRUNCATION_METRIC = PickUpCherry3TerminateMetric
1016    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCherrySubgoal])
1017
1018class HarvestMoon3HatchEggTracker(HarvestMoonTestTracker):
1019    TERMINATION_TRUNCATION_METRIC = HarvestMoon3HatchEggTerminateMetric
1020    SUBGOAL_METRIC = make_subgoal_metric_class([HarvestMoon3NextToHatchingBoxSubgoal])
1021
1022class HarvestMoon3FillChickenFodderTracker(HarvestMoonTestTracker):
1023    TERMINATION_TRUNCATION_METRIC = FillTopmostChickenStallBlockTerminateMetric
1024    SUBGOAL_METRIC = make_subgoal_metric_class([NextToChickenSilo3Subgoal, PickupChickenFodder3Subgoal, NextToTopmostChickenStallBlockSubgoal])
1025
1026class HarvestMoon3BuyFodderSetTracker(HarvestMoonTestTracker):
1027    TERMINATION_TRUNCATION_METRIC = BuyFodderSet3TerminateMetric
1028    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFodderSetSubgoal, SelectedFodderSetSubgoal])
1029
1030class HarvestMoon3BuyHorseMedicineTracker(HarvestMoonTestTracker):
1031    TERMINATION_TRUNCATION_METRIC = BuyHorseMedicine3TerminateMetric
1032    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHorseMedicineSubgoal, SelectedHorseMedicineSubgoal])
1033
1034class HarvestMoon3SpeakToKateTracker(HarvestMoonTestTracker):
1035    TERMINATION_TRUNCATION_METRIC = SpeakToKateTerminateMetric
1036    SUBGOAL_METRIC = make_subgoal_metric_class([NextToKateSubgoal])
1037
1038class HarvestMoon3WaterCenterWatermelonTracker(HarvestMoonTestTracker):
1039    TERMINATION_TRUNCATION_METRIC = WaterCenterWatermelon3TerminateMetric
1040    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterWatermelonSubgoal])
1041
1042class HarvestMoon3WaterCenterSPotatoTracker(HarvestMoonTestTracker):
1043    TERMINATION_TRUNCATION_METRIC = WaterCenterSPotato3TerminateMetric
1044    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterSPotatoSubgoal])
1045
1046class HarvestMoon3HarvestTargetPotatoTracker(HarvestMoonTestTracker):
1047    TERMINATION_TRUNCATION_METRIC = HarvestTargetPotato3TerminateMetric
1048    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTargetPotatoBelowSubgoal])
1049
1050class HarvestMoon3ReadAnimalCh2Tracker(HarvestMoonTestTracker):
1051    TERMINATION_TRUNCATION_METRIC = ReadAnimalCh2TerminateMetric
1052    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBookshelfSubgoal])
1053
1054class HarvestMoon3HarvestCenterTurnipTracker(HarvestMoonTestTracker):
1055    TERMINATION_TRUNCATION_METRIC = HarvestCenterTurnip3TerminateMetric
1056    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterTurnip3Subgoal])
1057
1058class HarvestMoon3SellChickenTracker(HarvestMoonTestTracker):
1059    TERMINATION_TRUNCATION_METRIC = SellChicken3TerminateMetric
1060    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSellChicken3Subgoal])
1061
1062class HarvestMoon3PickBerryTracker(HarvestMoonTestTracker):
1063    TERMINATION_TRUNCATION_METRIC = PickBerry3TerminateMetric
1064    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBerry3Subgoal])
1065
1066class HarvestMoon3CheckPlayerMoneyTracker(HarvestMoonTestTracker):
1067    TERMINATION_TRUNCATION_METRIC = CheckPlayerMoneyTerminateMetric
1068    SUBGOAL_METRIC = make_subgoal_metric_class([CheckPlayerMoneySubgoal])
1069
1070class HarvestMoon3HarvestCenterEggplantTopTracker(HarvestMoonTestTracker):
1071    TERMINATION_TRUNCATION_METRIC = HarvestCenterEggplantTop3TerminateMetric
1072    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterEggplantTopSubgoal])
class CoreHarvestMoonTracker(gameboy_worlds.emulation.tracker.StateTracker):
347class CoreHarvestMoonTracker(StateTracker):
348    """
349    StateTracker for core Harvest Moon metrics.
350    """
351
352    _REMOVE_GRID_OVERLAY = False
353    """ Whether to remove the grid overlay drawn by the state parser when the agent is in FREE ROAM. This is useful for VLM based agents may need a coordinate grid overlayed onto the frame, but may cause issues for agents that do not understand that it is not a part of the game. """
354
355    def start(self):
356        super().start()
357        self.metric_classes.extend([CoreHarvestMoonMetrics, HarvestMoonTestMetric])
358
359    def step(self, *args, **kwargs):
360        """
361        Calls on super().step(), but then modifies the current frame to overlay the grid if the agent is in FREE ROAM.
362        """
363        super().step(*args, **kwargs)
364        if self._REMOVE_GRID_OVERLAY:
365            state = self.episode_metrics["harvest_moon_core"]["agent_state"]
366            # if agent_state is in FREE ROAM, draw the grid, otherwise do not
367            if state == AgentState.FREE_ROAM:
368                screen = self.episode_metrics["core"]["current_frame"]
369                screen = self.state_parser.draw_grid_overlay(current_frame=screen)
370                self.episode_metrics["core"]["current_frame"] = screen
371                previous_screens = self.episode_metrics["core"]["passed_frames"]
372                if previous_screens is not None:
373                    self.episode_metrics["core"]["passed_frames"][-1, :] = screen

StateTracker for core Harvest Moon metrics.

def start(self):
355    def start(self):
356        super().start()
357        self.metric_classes.extend([CoreHarvestMoonMetrics, HarvestMoonTestMetric])

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.

def step(self, *args, **kwargs):
359    def step(self, *args, **kwargs):
360        """
361        Calls on super().step(), but then modifies the current frame to overlay the grid if the agent is in FREE ROAM.
362        """
363        super().step(*args, **kwargs)
364        if self._REMOVE_GRID_OVERLAY:
365            state = self.episode_metrics["harvest_moon_core"]["agent_state"]
366            # if agent_state is in FREE ROAM, draw the grid, otherwise do not
367            if state == AgentState.FREE_ROAM:
368                screen = self.episode_metrics["core"]["current_frame"]
369                screen = self.state_parser.draw_grid_overlay(current_frame=screen)
370                self.episode_metrics["core"]["current_frame"] = screen
371                previous_screens = self.episode_metrics["core"]["passed_frames"]
372                if previous_screens is not None:
373                    self.episode_metrics["core"]["passed_frames"][-1, :] = screen

Calls on super().step(), but then modifies the current frame to overlay the grid if the agent is in FREE ROAM.

class HarvestMoonOCRTracker(CoreHarvestMoonTracker):
376class HarvestMoonOCRTracker(CoreHarvestMoonTracker):
377    def start(self):
378        super().start()
379        self.metric_classes.extend([HarvestMoonOCRMetric])

StateTracker for core Harvest Moon metrics.

def start(self):
377    def start(self):
378        super().start()
379        self.metric_classes.extend([HarvestMoonOCRMetric])

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 HarvestMoonTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, HarvestMoonOCRTracker):
381class HarvestMoonTestTracker(TestTrackerMixin, HarvestMoonOCRTracker):
382    """
383    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
384    """
385
386    TERMINATION_TRUNCATION_METRIC = CowBarnTerminateMetric
387    SUBGOAL_METRIC = DummySubGoalMetric

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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 HarvestMoonCowBarnTracker(HarvestMoonTestTracker):
389class HarvestMoonCowBarnTracker(HarvestMoonTestTracker):
390    """
391    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
392    """
393
394    TERMINATION_TRUNCATION_METRIC = CowBarnTerminateMetric
395    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCowBarnSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonChickenCoopTracker(HarvestMoonTestTracker):
397class HarvestMoonChickenCoopTracker(HarvestMoonTestTracker):
398    """
399    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
400    """
401
402    TERMINATION_TRUNCATION_METRIC = ChickenCoopTerminateMetric
403    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChickenCoopSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ChickenCoopTracker(HarvestMoonTestTracker):
405class HarvestMoon3ChickenCoopTracker(HarvestMoonTestTracker):
406    """
407    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
408    """
409
410    TERMINATION_TRUNCATION_METRIC = ChickenCoopTerminateMetric
411    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChickenCoop3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonStorageTracker(HarvestMoonTestTracker):
413class HarvestMoonStorageTracker(HarvestMoonTestTracker):
414    """
415    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
416    """
417
418    TERMINATION_TRUNCATION_METRIC = StorageTerminateMetric
419    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideStorageSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonPickupWaterCanTracker(HarvestMoonTestTracker):
421class HarvestMoonPickupWaterCanTracker(HarvestMoonTestTracker):
422    """
423    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
424    """
425
426    TERMINATION_TRUNCATION_METRIC = PickupWaterCanTerminateMetric
427    SUBGOAL_METRIC = make_subgoal_metric_class([NextToWaterCanSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonPickupCowBellTracker(HarvestMoonTestTracker):
429class HarvestMoonPickupCowBellTracker(HarvestMoonTestTracker):
430    TERMINATION_TRUNCATION_METRIC = PickupCowBellTerminateMetric
431    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCowBellSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonPickupSickleTracker(HarvestMoonTestTracker):
433class HarvestMoonPickupSickleTracker(HarvestMoonTestTracker):
434    TERMINATION_TRUNCATION_METRIC = PickupSickleTerminateMetric
435    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSickleSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonPickupHoeTracker(HarvestMoonTestTracker):
437class HarvestMoonPickupHoeTracker(HarvestMoonTestTracker):
438    TERMINATION_TRUNCATION_METRIC = PickupHoeTerminateMetric
439    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHoeSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonPickupHammerTracker(HarvestMoonTestTracker):
441class HarvestMoonPickupHammerTracker(HarvestMoonTestTracker):
442    TERMINATION_TRUNCATION_METRIC = PickupHammerTerminateMetric
443    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHammerSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonPickupGrassSeedTracker(HarvestMoonTestTracker):
445class HarvestMoonPickupGrassSeedTracker(HarvestMoonTestTracker):
446    TERMINATION_TRUNCATION_METRIC = PickupGrassSeedTerminateMetric
447    SUBGOAL_METRIC = make_subgoal_metric_class([NextToGrassSeedSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonGoToSleepTracker(HarvestMoonTestTracker):
449class HarvestMoonGoToSleepTracker(HarvestMoonTestTracker):
450    """
451    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
452    """
453
454    TERMINATION_TRUNCATION_METRIC = GoToSleepTerminateMetric
455    SUBGOAL_METRIC = make_subgoal_metric_class([SleepOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonFeedSpiritTracker(HarvestMoonTestTracker):
457class HarvestMoonFeedSpiritTracker(HarvestMoonTestTracker):
458    """
459    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
460    """
461
462    TERMINATION_TRUNCATION_METRIC = FeedSpiritTerminateMetric
463    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSpiritSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonHelpSpiritEarthquakeTracker(HarvestMoonTestTracker):
465class HarvestMoonHelpSpiritEarthquakeTracker(HarvestMoonTestTracker):
466    TERMINATION_TRUNCATION_METRIC = HelpSpiritEarthquakeTerminateMetric
467    SUBGOAL_METRIC = make_subgoal_metric_class([NextToEarthquakeSpiritSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonWaterTurnipTracker(HarvestMoonTestTracker):
469class HarvestMoonWaterTurnipTracker(HarvestMoonTestTracker):
470    """
471    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
472    """
473
474    TERMINATION_TRUNCATION_METRIC = WaterTurnipTerminateMetric
475    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTurnipSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyMaterialTracker(HarvestMoonTestTracker):
477class HarvestMoonBuyMaterialTracker(HarvestMoonTestTracker):
478    TERMINATION_TRUNCATION_METRIC = BuyMaterialTerminateMetric
479    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter1Subgoal, ShopForMaterialSubgoal, SelectMaterialSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyChickenTracker(HarvestMoonTestTracker):
481class HarvestMoonBuyChickenTracker(HarvestMoonTestTracker):
482    TERMINATION_TRUNCATION_METRIC = BuyChickenTerminateMetric
483    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideAnimalShop1Subgoal, ShopForAnimalSubgoal, SelectChickenSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyCowTracker(HarvestMoonTestTracker):
485class HarvestMoonBuyCowTracker(HarvestMoonTestTracker):
486    TERMINATION_TRUNCATION_METRIC = BuyCowTerminateMetric
487    SUBGOAL_METRIC = make_subgoal_metric_class([SelectCowSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonSellChickenTracker(HarvestMoonTestTracker):
489class HarvestMoonSellChickenTracker(HarvestMoonTestTracker):
490    TERMINATION_TRUNCATION_METRIC = SellChickenTerminateMetric
491    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideAnimalShop1Subgoal, ShopForAnimalSubgoal, SelectSellingChickenSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyCowBrushTracker(HarvestMoonTestTracker):
493class HarvestMoonBuyCowBrushTracker(HarvestMoonTestTracker):
494    TERMINATION_TRUNCATION_METRIC = BuyCowBrushTerminateMetric
495    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop1Subgoal, ShopForToolsSubgoal, SelectCowBrushSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuySaddlebagTracker(HarvestMoonTestTracker):
497class HarvestMoonBuySaddlebagTracker(HarvestMoonTestTracker):
498    TERMINATION_TRUNCATION_METRIC = BuySaddlebagTerminateMetric
499    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop1Subgoal, ShopForToolsSubgoal, SelectSaddlebagSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyMilkerTracker(HarvestMoonTestTracker):
501class HarvestMoonBuyMilkerTracker(HarvestMoonTestTracker):
502    TERMINATION_TRUNCATION_METRIC = BuyMilkerTerminateMetric
503    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop1Subgoal, ShopForToolsSubgoal, SelectMilkerSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyRiceBallTracker(HarvestMoonTestTracker):
505class HarvestMoonBuyRiceBallTracker(HarvestMoonTestTracker):
506    """
507    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
508    """
509
510    TERMINATION_TRUNCATION_METRIC = BuyRiceBallTerminateMetric
511    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurantSubgoal, ShopForFoodSubgoal, SelectRiceBallSubgoal, BuyRiceBallOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyCroissantTracker(HarvestMoonTestTracker):
513class HarvestMoonBuyCroissantTracker(HarvestMoonTestTracker):
514    TERMINATION_TRUNCATION_METRIC = BuyCroissantTerminateMetric
515    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurantSubgoal, ShopForFoodSubgoal, SelectCroissantSubgoal, BuyCroissantOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyCakeTracker(HarvestMoonTestTracker):
517class HarvestMoonBuyCakeTracker(HarvestMoonTestTracker):
518    TERMINATION_TRUNCATION_METRIC = BuyCakeTerminateMetric
519    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurantSubgoal, ShopForFoodSubgoal, SelectCakeSubgoal, BuyCakeOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonBuyGrapeJuiceTracker(HarvestMoonTestTracker):
521class HarvestMoonBuyGrapeJuiceTracker(HarvestMoonTestTracker):
522    TERMINATION_TRUNCATION_METRIC = BuyGrapeJuiceTerminateMetric
523    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideJuiceBarSubgoal, ShopForJuiceSubgoal, SelectGrapeJuiceSubgoal, BuyGrapeJuiceOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonGoToChurchPrayTracker(HarvestMoonTestTracker):
525class HarvestMoonGoToChurchPrayTracker(HarvestMoonTestTracker):
526    TERMINATION_TRUNCATION_METRIC = GoToChurchPrayTerminateMetric
527    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChurchSubgoal, InsideChurchSubgoal, PrayOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonOpenStorageListTracker(HarvestMoonTestTracker):
529class HarvestMoonOpenStorageListTracker(HarvestMoonTestTracker):
530    """
531    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
532    """
533
534    TERMINATION_TRUNCATION_METRIC = OpenStorageListTerminateMetric
535    SUBGOAL_METRIC = make_subgoal_metric_class([NextToStorageListSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonFindRainyMoneyTracker(HarvestMoonTestTracker):
537class HarvestMoonFindRainyMoneyTracker(HarvestMoonTestTracker):
538    TERMINATION_TRUNCATION_METRIC = FindRainyMoneyTerminateMetric
539    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSafeSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonFindLostBirdTracker(HarvestMoonTestTracker):
541class HarvestMoonFindLostBirdTracker(HarvestMoonTestTracker):
542    """
543    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
544    """
545
546    TERMINATION_TRUNCATION_METRIC = FindLostBirdTerminateMetric
547    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLostBirdSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonSpeakToBlueHairGirlTracker(HarvestMoonTestTracker):
549class HarvestMoonSpeakToBlueHairGirlTracker(HarvestMoonTestTracker):
550    """
551    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
552    """
553
554    TERMINATION_TRUNCATION_METRIC = SpeakToBlueHairGirlTerminateMetric
555    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlueHairGirlSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonSpeakToGoldenHairGirlTracker(HarvestMoonTestTracker):
557class HarvestMoonSpeakToGoldenHairGirlTracker(HarvestMoonTestTracker):
558    TERMINATION_TRUNCATION_METRIC = SpeakToGoldenHairGirlTerminateMetric
559    SUBGOAL_METRIC = make_subgoal_metric_class([NextToGoldenHairGirlSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonSpeakToPinkHairGirlTracker(HarvestMoonTestTracker):
561class HarvestMoonSpeakToPinkHairGirlTracker(HarvestMoonTestTracker):
562    TERMINATION_TRUNCATION_METRIC = SpeakToPinkHairGirlTerminateMetric
563    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPinkHairGirlSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1SpeakToBlueHairGirlWGTracker(HarvestMoonTestTracker):
565class HarvestMoon1SpeakToBlueHairGirlWGTracker(HarvestMoonTestTracker):
566    TERMINATION_TRUNCATION_METRIC = SpeakToBlueHairGirlWGTerminateMetric
567    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlueHairGirlWGSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1SpeakToPinkHairGirlWGTracker(HarvestMoonTestTracker):
569class HarvestMoon1SpeakToPinkHairGirlWGTracker(HarvestMoonTestTracker):
570    TERMINATION_TRUNCATION_METRIC = SpeakToPinkHairGirlWGTerminateMetric
571    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPinkHairGirlWGSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1SpeakToRedHairGirlWGTracker(HarvestMoonTestTracker):
573class HarvestMoon1SpeakToRedHairGirlWGTracker(HarvestMoonTestTracker):
574    TERMINATION_TRUNCATION_METRIC = SpeakToRedHairGirlWGTerminateMetric
575    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRedHairGirlWGSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonFillChickenFodderTracker(HarvestMoonTestTracker):
577class HarvestMoonFillChickenFodderTracker(HarvestMoonTestTracker):
578    """
579    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.
580    """
581
582    TERMINATION_TRUNCATION_METRIC = FillChickenFodderBlock1TerminateMetric
583    SUBGOAL_METRIC = make_subgoal_metric_class([NextToChickenSiloSubgoal, PickupChickenFodderSubgoal, NextToChickenFodderBlock1Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1FillCowFodderTracker(HarvestMoonTestTracker):
585class HarvestMoon1FillCowFodderTracker(HarvestMoonTestTracker):
586    TERMINATION_TRUNCATION_METRIC = FillUpperRightCowStallTerminateMetric
587    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCowFeedingStallSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonOpenMenuTracker(HarvestMoonTestTracker):
591class HarvestMoonOpenMenuTracker(HarvestMoonTestTracker):
592    TERMINATION_TRUNCATION_METRIC = OpenMenuTerminateMetric

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

class HarvestMoon2CowBarnTracker(HarvestMoonTestTracker):
595class HarvestMoon2CowBarnTracker(HarvestMoonTestTracker):
596    TERMINATION_TRUNCATION_METRIC = CowBarnTerminateMetric
597    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCowBarn2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ChickenCoopTracker(HarvestMoonTestTracker):
599class HarvestMoon2ChickenCoopTracker(HarvestMoonTestTracker):
600    TERMINATION_TRUNCATION_METRIC = ChickenCoopTerminateMetric
601    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideChickenCoop2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2FindLuckyMoneyTracker(HarvestMoonTestTracker):
603class HarvestMoon2FindLuckyMoneyTracker(HarvestMoonTestTracker):
604    TERMINATION_TRUNCATION_METRIC = FindLuckyMoneyTerminateMetric
605    SUBGOAL_METRIC = make_subgoal_metric_class([NextToClockSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2HospitalEntranceTracker(HarvestMoonTestTracker):
607class HarvestMoon2HospitalEntranceTracker(HarvestMoonTestTracker):
608    TERMINATION_TRUNCATION_METRIC = HospitalEntranceTerminateMetric
609    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideHospitalSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ToolShopEntranceTracker(HarvestMoonTestTracker):
611class HarvestMoon2ToolShopEntranceTracker(HarvestMoonTestTracker):
612    TERMINATION_TRUNCATION_METRIC = ToolShopEntranceTerminateMetric
613    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2CarpenterEntranceTracker(HarvestMoonTestTracker):
615class HarvestMoon2CarpenterEntranceTracker(HarvestMoonTestTracker):
616    TERMINATION_TRUNCATION_METRIC = CarpenterEntranceTerminateMetric
617    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2AnimalShopEntranceTracker(HarvestMoonTestTracker):
619class HarvestMoon2AnimalShopEntranceTracker(HarvestMoonTestTracker):
620    TERMINATION_TRUNCATION_METRIC = AnimalShopEntranceTerminateMetric
621    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideAnimalShop2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2LibraryEntranceTracker(HarvestMoonTestTracker):
623class HarvestMoon2LibraryEntranceTracker(HarvestMoonTestTracker):
624    TERMINATION_TRUNCATION_METRIC = LibraryEntranceTerminateMetric
625    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideLibrarySubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2FlowerShopEntranceTracker(HarvestMoonTestTracker):
627class HarvestMoon2FlowerShopEntranceTracker(HarvestMoonTestTracker):
628    TERMINATION_TRUNCATION_METRIC = FlowerShopEntranceTerminateMetric
629    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideFlowerShop2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2GetBridgeEstimateTracker(HarvestMoonTestTracker):
631class HarvestMoon2GetBridgeEstimateTracker(HarvestMoonTestTracker):
632    TERMINATION_TRUNCATION_METRIC = GetBridgeEstimateTerminateMetric
633    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter2Subgoal, ShopForConstructionEstimatesSubgoal, SelectBridgeSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2BuyMilkerTracker(HarvestMoonTestTracker):
635class HarvestMoon2BuyMilkerTracker(HarvestMoonTestTracker):
636    TERMINATION_TRUNCATION_METRIC = BuyMilkerTerminateMetric
637    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideToolShop2Subgoal, ShopForToolsSubgoal, SelectMilkerSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2RestaurantEntranceTracker(HarvestMoonTestTracker):
639class HarvestMoon2RestaurantEntranceTracker(HarvestMoonTestTracker):
640    TERMINATION_TRUNCATION_METRIC = RestaurantEntranceTerminateMetric
641    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideRestaurant2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2BuyLunchSetTracker(HarvestMoonTestTracker):
643class HarvestMoon2BuyLunchSetTracker(HarvestMoonTestTracker):
644    TERMINATION_TRUNCATION_METRIC = BuyLunchSetTerminateMetric
645    SUBGOAL_METRIC = make_subgoal_metric_class([SelectLunchSetSubgoal, BuyLunchSetOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2BuyBeverageSetTracker(HarvestMoonTestTracker):
647class HarvestMoon2BuyBeverageSetTracker(HarvestMoonTestTracker):
648    TERMINATION_TRUNCATION_METRIC = BuyBeverageSetTerminateMetric
649    SUBGOAL_METRIC = make_subgoal_metric_class([SelectBeverageSetSubgoal, BuyBeverageSetOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2BuyTodaysSpecialTracker(HarvestMoonTestTracker):
651class HarvestMoon2BuyTodaysSpecialTracker(HarvestMoonTestTracker):
652    TERMINATION_TRUNCATION_METRIC = BuyTodaysSpecialTerminateMetric
653    SUBGOAL_METRIC = make_subgoal_metric_class([SelectTodaysSpecialSubgoal, BuyTodaysSpecialOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2GoToBedTracker(HarvestMoonTestTracker):
655class HarvestMoon2GoToBedTracker(HarvestMoonTestTracker):
656    TERMINATION_TRUNCATION_METRIC = GoToSleepTerminateMetric
657    SUBGOAL_METRIC = make_subgoal_metric_class([NextToDiarySubgoal, DiaryOptionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ReadSecretGardenSignTracker(HarvestMoonTestTracker):
659class HarvestMoon2ReadSecretGardenSignTracker(HarvestMoonTestTracker):
660    TERMINATION_TRUNCATION_METRIC = ReadSecretGardenSignTerminateMetric
661    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSecretGardenSignSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ReadCropFieldSignTracker(HarvestMoonTestTracker):
663class HarvestMoon2ReadCropFieldSignTracker(HarvestMoonTestTracker):
664    TERMINATION_TRUNCATION_METRIC = ReadCropFieldSignTerminateMetric
665    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCropFieldSignSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipSickleTracker(HarvestMoonTestTracker):
667class HarvestMoon2EquipSickleTracker(HarvestMoonTestTracker):
668    TERMINATION_TRUNCATION_METRIC = EquipSickleTerminateMetric
669    SUBGOAL_METRIC = make_subgoal_metric_class([EmptyHandsSelectedSubgoal, ReadyToPickSickleSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipHammerTracker(HarvestMoonTestTracker):
671class HarvestMoon2EquipHammerTracker(HarvestMoonTestTracker):
672    TERMINATION_TRUNCATION_METRIC = EquipHammerTerminateMetric
673    SUBGOAL_METRIC = make_subgoal_metric_class([EmptyHandsSelectedSubgoal, ReadyToPickHammerSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipFishingRodTracker(HarvestMoonTestTracker):
675class HarvestMoon2EquipFishingRodTracker(HarvestMoonTestTracker):
676    TERMINATION_TRUNCATION_METRIC = EquipFishingRodTerminateMetric
677    SUBGOAL_METRIC = make_subgoal_metric_class([EmptyHandsSelectedSubgoal, ReadyToPickFishingRodSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipNetReplacingAxTracker(HarvestMoonTestTracker):
679class HarvestMoon2EquipNetReplacingAxTracker(HarvestMoonTestTracker):
680    TERMINATION_TRUNCATION_METRIC = EquipNetReplacingAxTerminateMetric
681    SUBGOAL_METRIC = make_subgoal_metric_class([AxeSelected2Subgoal, ReadyToPickNetSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipRosemarySeedsReplacingAxTracker(HarvestMoonTestTracker):
683class HarvestMoon2EquipRosemarySeedsReplacingAxTracker(HarvestMoonTestTracker):
684    TERMINATION_TRUNCATION_METRIC = EquipRosemarySeedsReplacingAxTerminateMetric
685    SUBGOAL_METRIC = make_subgoal_metric_class([AxeSelected2Subgoal, ReadyToPickRosemarySeedsSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipSickleReplacingSprinklerTracker(HarvestMoonTestTracker):
687class HarvestMoon2EquipSickleReplacingSprinklerTracker(HarvestMoonTestTracker):
688    TERMINATION_TRUNCATION_METRIC = EquipSickleReplacingSprinklerTerminateMetric
689    SUBGOAL_METRIC = make_subgoal_metric_class([SprinklerSelected1Subgoal, ReadyToPickSickleSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2EquipNetReplacingHoeTracker(HarvestMoonTestTracker):
691class HarvestMoon2EquipNetReplacingHoeTracker(HarvestMoonTestTracker):
692    TERMINATION_TRUNCATION_METRIC = EquipNetReplacingHoeTerminateMetric
693    SUBGOAL_METRIC = make_subgoal_metric_class([HoeSelected3Subgoal, ReadyToPickNetSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1HatchEggTracker(HarvestMoonTestTracker):
695class HarvestMoon1HatchEggTracker(HarvestMoonTestTracker):
696    TERMINATION_TRUNCATION_METRIC = HatchEggTerminateMetric
697    SUBGOAL_METRIC = make_subgoal_metric_class([NextToEggSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1BreakRockTracker(HarvestMoonTestTracker):
699class HarvestMoon1BreakRockTracker(HarvestMoonTestTracker):
700    TERMINATION_TRUNCATION_METRIC = BreakRockTerminateMetric
701    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRockFromLeftSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1BreakRightmostRockTracker(HarvestMoonTestTracker):
703class HarvestMoon1BreakRightmostRockTracker(HarvestMoonTestTracker):
704    TERMINATION_TRUNCATION_METRIC = BreakRightmostRockTerminateMetric
705    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRightmostRockAboveSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1RemoveLowestWeedTracker(HarvestMoonTestTracker):
707class HarvestMoon1RemoveLowestWeedTracker(HarvestMoonTestTracker):
708    TERMINATION_TRUNCATION_METRIC = RemoveLowestWeedTerminateMetric
709    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLowestWeedFromAboveSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1CutLowestWeedTracker(HarvestMoonTestTracker):
711class HarvestMoon1CutLowestWeedTracker(HarvestMoonTestTracker):
712    TERMINATION_TRUNCATION_METRIC = CutLowestWeedTerminateMetric
713    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLowestWeedFromAboveSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1RemoveTopLeftWeedTracker(HarvestMoonTestTracker):
715class HarvestMoon1RemoveTopLeftWeedTracker(HarvestMoonTestTracker):
716    TERMINATION_TRUNCATION_METRIC = RemoveTopLeftWeedTerminateMetric
717    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTopLeftWeedFromRightSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1CutTopLeftWeedTracker(HarvestMoonTestTracker):
719class HarvestMoon1CutTopLeftWeedTracker(HarvestMoonTestTracker):
720    TERMINATION_TRUNCATION_METRIC = CutTopLeftWeedTerminateMetric
721    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTopLeftWeedFromRightSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1HarvestCenterGrasslineTracker(HarvestMoonTestTracker):
723class HarvestMoon1HarvestCenterGrasslineTracker(HarvestMoonTestTracker):
724    TERMINATION_TRUNCATION_METRIC = HarvestCenterGrasslineTerminateMetric
725    SUBGOAL_METRIC = make_subgoal_metric_class([NextToGrasslandFromLeftSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1RestoreFenceTracker(HarvestMoonTestTracker):
727class HarvestMoon1RestoreFenceTracker(HarvestMoonTestTracker):
728    TERMINATION_TRUNCATION_METRIC = RestoreFenceTerminateMetric
729    SUBGOAL_METRIC = make_subgoal_metric_class([PickedUpBrokenFenceSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1HarvestCenterTurnipTracker(HarvestMoonTestTracker):
731class HarvestMoon1HarvestCenterTurnipTracker(HarvestMoonTestTracker):
732    TERMINATION_TRUNCATION_METRIC = HarvestCenterTurnipTerminateMetric
733    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterTurnipSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1WaterCenterTurnipTracker(HarvestMoonTestTracker):
735class HarvestMoon1WaterCenterTurnipTracker(HarvestMoonTestTracker):
736    TERMINATION_TRUNCATION_METRIC = WaterCenterTurnipTerminateMetric
737    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterTurnipLeftSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1WaterCenterPotatoTracker(HarvestMoonTestTracker):
739class HarvestMoon1WaterCenterPotatoTracker(HarvestMoonTestTracker):
740    TERMINATION_TRUNCATION_METRIC = WaterCenterPotatoTerminateMetric
741    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterPotatoSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1HarvestCenterPotatoTracker(HarvestMoonTestTracker):
743class HarvestMoon1HarvestCenterPotatoTracker(HarvestMoonTestTracker):
744    TERMINATION_TRUNCATION_METRIC = HarvestCenterPotatoTerminateMetric
745    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterPotatoBelowSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon1GetHomeExpansionEstimateTracker(HarvestMoonTestTracker):
747class HarvestMoon1GetHomeExpansionEstimateTracker(HarvestMoonTestTracker):
748    TERMINATION_TRUNCATION_METRIC = GetHomeExpansionEstimateTerminateMetric
749    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter1Subgoal, ShopForMaterialSubgoal, SelectHomeExpansionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2Cross500mLineTracker(HarvestMoonTestTracker):
755class HarvestMoon2Cross500mLineTracker(HarvestMoonTestTracker):
756    TERMINATION_TRUNCATION_METRIC = Cross500mLineTerminateMetric
757    SUBGOAL_METRIC = make_subgoal_metric_class([AtTheStartLineSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2Cross1000mLineTracker(HarvestMoonTestTracker):
759class HarvestMoon2Cross1000mLineTracker(HarvestMoonTestTracker):
760    TERMINATION_TRUNCATION_METRIC = Cross1000mLineTerminateMetric
761    SUBGOAL_METRIC = make_subgoal_metric_class([AtTheStartLineSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2HarvestCenterEggplantTracker(HarvestMoonTestTracker):
763class HarvestMoon2HarvestCenterEggplantTracker(HarvestMoonTestTracker):
764    TERMINATION_TRUNCATION_METRIC = HarvestCenterEggplantTerminateMetric
765    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterEggplantSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2HarvestCenterCarrotTracker(HarvestMoonTestTracker):
767class HarvestMoon2HarvestCenterCarrotTracker(HarvestMoonTestTracker):
768    TERMINATION_TRUNCATION_METRIC = HarvestCenterCarrotTerminateMetric
769    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterCarrotSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2WaterCenterPotatoTracker(HarvestMoonTestTracker):
771class HarvestMoon2WaterCenterPotatoTracker(HarvestMoonTestTracker):
772    TERMINATION_TRUNCATION_METRIC = WaterCenterPotatoTerminateMetric
773    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterPotatoSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2WaterCenterAsparagusTracker(HarvestMoonTestTracker):
775class HarvestMoon2WaterCenterAsparagusTracker(HarvestMoonTestTracker):
776    TERMINATION_TRUNCATION_METRIC = WaterCenterAsparagusTerminateMetric
777    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterAsparagusSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2WaterCornFieldTracker(HarvestMoonTestTracker):
779class HarvestMoon2WaterCornFieldTracker(HarvestMoonTestTracker):
780    TERMINATION_TRUNCATION_METRIC = WaterCornFieldTerminateMetric
781    SUBGOAL_METRIC = make_subgoal_metric_class([AtCornCenterSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2WaterCabbageFieldTracker(HarvestMoonTestTracker):
783class HarvestMoon2WaterCabbageFieldTracker(HarvestMoonTestTracker):
784    TERMINATION_TRUNCATION_METRIC = WaterCabbageFieldTerminateMetric
785    SUBGOAL_METRIC = make_subgoal_metric_class([AtCabbageCenterSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2CutCenterCornTracker(HarvestMoonTestTracker):
787class HarvestMoon2CutCenterCornTracker(HarvestMoonTestTracker):
788    TERMINATION_TRUNCATION_METRIC = CutCenterCornTerminateMetric
789    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterCornSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ReadComputersArticleTracker(HarvestMoonTestTracker):
791class HarvestMoon2ReadComputersArticleTracker(HarvestMoonTestTracker):
792    TERMINATION_TRUNCATION_METRIC = ReadComputersArticleTerminateMetric
793    SUBGOAL_METRIC = make_subgoal_metric_class([ComputersArticleSelectedSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ReadBouldersArticleTracker(HarvestMoonTestTracker):
795class HarvestMoon2ReadBouldersArticleTracker(HarvestMoonTestTracker):
796    TERMINATION_TRUNCATION_METRIC = ReadBouldersArticleTerminateMetric
797    SUBGOAL_METRIC = make_subgoal_metric_class([BouldersArticleSelectedSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2ReadCropsArticleTracker(HarvestMoonTestTracker):
799class HarvestMoon2ReadCropsArticleTracker(HarvestMoonTestTracker):
800    TERMINATION_TRUNCATION_METRIC = ReadCropsArticleTerminateMetric
801    SUBGOAL_METRIC = make_subgoal_metric_class([CropsArticleSelectedSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2RemoveLeftmostWeedTracker(HarvestMoonTestTracker):
803class HarvestMoon2RemoveLeftmostWeedTracker(HarvestMoonTestTracker):
804    TERMINATION_TRUNCATION_METRIC = RemoveLeftmostWeedTerminateMetric
805    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLeftmostWeedSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2PickBerryTracker(HarvestMoonTestTracker):
807class HarvestMoon2PickBerryTracker(HarvestMoonTestTracker):
808    TERMINATION_TRUNCATION_METRIC = PickBerryTerminateMetric
809    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBerrySubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2PickBerryAboveTracker(HarvestMoonTestTracker):
811class HarvestMoon2PickBerryAboveTracker(HarvestMoonTestTracker):
812    TERMINATION_TRUNCATION_METRIC = PickBerryAboveTerminateMetric
813    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBerryAboveSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2SpeakToBlueHairGirlTracker(HarvestMoonTestTracker):
815class HarvestMoon2SpeakToBlueHairGirlTracker(HarvestMoonTestTracker):
816    TERMINATION_TRUNCATION_METRIC = SpeakToBlueHairGirl2TerminateMetric
817    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlueHairGirl2Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2SpeakToPurpleHairGirlTracker(HarvestMoonTestTracker):
819class HarvestMoon2SpeakToPurpleHairGirlTracker(HarvestMoonTestTracker):
820    TERMINATION_TRUNCATION_METRIC = SpeakToPurpleHairGirlTerminateMetric
821    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPurpleHairGirlSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2SpeakToBlondeGirlTracker(HarvestMoonTestTracker):
823class HarvestMoon2SpeakToBlondeGirlTracker(HarvestMoonTestTracker):
824    TERMINATION_TRUNCATION_METRIC = SpeakToBlondeGirlTerminateMetric
825    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBlondeGirlSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2HatchEggTracker(HarvestMoonTestTracker):
827class HarvestMoon2HatchEggTracker(HarvestMoonTestTracker):
828    TERMINATION_TRUNCATION_METRIC = HarvestMoon2HatchEggTerminateMetric
829    SUBGOAL_METRIC = make_subgoal_metric_class([HarvestMoon2NextToHatchingBoxSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2BuyCowTracker(HarvestMoonTestTracker):
831class HarvestMoon2BuyCowTracker(HarvestMoonTestTracker):
832    TERMINATION_TRUNCATION_METRIC = BuyCowTerminateMetric
833    SUBGOAL_METRIC = make_subgoal_metric_class([SelectCowSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2SellCowTracker(HarvestMoonTestTracker):
835class HarvestMoon2SellCowTracker(HarvestMoonTestTracker):
836    TERMINATION_TRUNCATION_METRIC = SellCowTerminateMetric
837    SUBGOAL_METRIC = make_subgoal_metric_class([ShopForAnimalSubgoal, SelectSellingCowSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2SellChickenTracker(HarvestMoonTestTracker):
839class HarvestMoon2SellChickenTracker(HarvestMoonTestTracker):
840    TERMINATION_TRUNCATION_METRIC = SellChickenTerminateMetric
841    SUBGOAL_METRIC = make_subgoal_metric_class([ShopForAnimalSubgoal, SelectSellingChickenSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2GetHothouseEstimateTracker(HarvestMoonTestTracker):
843class HarvestMoon2GetHothouseEstimateTracker(HarvestMoonTestTracker):
844    TERMINATION_TRUNCATION_METRIC = GetHothouseEstimateTerminateMetric
845    SUBGOAL_METRIC = make_subgoal_metric_class([OutsideCarpenter2Subgoal, ShopForConstructionEstimatesSubgoal, SelectHothouseSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2BuyChickenTracker(HarvestMoonTestTracker):
847class HarvestMoon2BuyChickenTracker(HarvestMoonTestTracker):
848    TERMINATION_TRUNCATION_METRIC = BuyChickenTerminateMetric
849    SUBGOAL_METRIC = make_subgoal_metric_class([ShopForAnimalSubgoal, SelectChickenSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon2FillChickenFodderTracker(HarvestMoonTestTracker):
851class HarvestMoon2FillChickenFodderTracker(HarvestMoonTestTracker):
852    TERMINATION_TRUNCATION_METRIC = FillChickenFodderBlock1TerminateMetric
853    SUBGOAL_METRIC = make_subgoal_metric_class([NextToChickenSilo2Subgoal, PickupChickenFodder2Subgoal, NextToChickenFodderBlock1Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonReadNoticeBoardTracker(HarvestMoonTestTracker):
856class HarvestMoonReadNoticeBoardTracker(HarvestMoonTestTracker):
857    TERMINATION_TRUNCATION_METRIC = ReadNoticeBoardTerminateMetric
858    SUBGOAL_METRIC = make_subgoal_metric_class([NextToNoticeBoardSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonReadVillageSignTracker(HarvestMoonTestTracker):
860class HarvestMoonReadVillageSignTracker(HarvestMoonTestTracker):
861    TERMINATION_TRUNCATION_METRIC = ReadVillageSignTerminateMetric
862    SUBGOAL_METRIC = make_subgoal_metric_class([NextToVillageSignSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoonReadFarmSignTracker(HarvestMoonTestTracker):
864class HarvestMoonReadFarmSignTracker(HarvestMoonTestTracker):
865    TERMINATION_TRUNCATION_METRIC = ReadFarmSignTerminateMetric
866    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFarmSignSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ReadSecretGardenSignTracker(HarvestMoonTestTracker):
879class HarvestMoon3ReadSecretGardenSignTracker(HarvestMoonTestTracker):
880    TERMINATION_TRUNCATION_METRIC = ReadSecretGardenSignTerminateMetric
881    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSecretGardenSign3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ReadFerrySignTracker(HarvestMoonTestTracker):
883class HarvestMoon3ReadFerrySignTracker(HarvestMoonTestTracker):
884    TERMINATION_TRUNCATION_METRIC = ReadFerrySignTerminateMetric
885    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFerrySignSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3FindSecretSavingsTracker(HarvestMoonTestTracker):
887class HarvestMoon3FindSecretSavingsTracker(HarvestMoonTestTracker):
888    TERMINATION_TRUNCATION_METRIC = FindSecretSavingsTerminateMetric
889    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFireplaceSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ChooseTeaTracker(HarvestMoonTestTracker):
891class HarvestMoon3ChooseTeaTracker(HarvestMoonTestTracker):
892    TERMINATION_TRUNCATION_METRIC = ChooseTea3TerminateMetric
893    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTea3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ChooseAsparagusSeedsTracker(HarvestMoonTestTracker):
895class HarvestMoon3ChooseAsparagusSeedsTracker(HarvestMoonTestTracker):
896    TERMINATION_TRUNCATION_METRIC = ChooseAsparagusSeedsTerminateMetric
897    SUBGOAL_METRIC = make_subgoal_metric_class([NextToAsparagusSeeds3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyPotatoSeedsTracker(HarvestMoonTestTracker):
899class HarvestMoon3BuyPotatoSeedsTracker(HarvestMoonTestTracker):
900    TERMINATION_TRUNCATION_METRIC = BuyPotatoSeeds3TerminateMetric
901    SUBGOAL_METRIC = make_subgoal_metric_class([NextToPotatoSeeds3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyTurnipSeedsTracker(HarvestMoonTestTracker):
903class HarvestMoon3BuyTurnipSeedsTracker(HarvestMoonTestTracker):
904    TERMINATION_TRUNCATION_METRIC = BuyTurnipSeeds3TerminateMetric
905    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTurnipSeeds3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ReadMorningMarketSignTracker(HarvestMoonTestTracker):
907class HarvestMoon3ReadMorningMarketSignTracker(HarvestMoonTestTracker):
908    TERMINATION_TRUNCATION_METRIC = ReadMorningMarketSignTerminateMetric
909    SUBGOAL_METRIC = make_subgoal_metric_class([NextToMorningMarketSignSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ReadStorageSignTracker(HarvestMoonTestTracker):
911class HarvestMoon3ReadStorageSignTracker(HarvestMoonTestTracker):
912    TERMINATION_TRUNCATION_METRIC = ReadStorageSignTerminateMetric
913    SUBGOAL_METRIC = make_subgoal_metric_class([NextToStorageSign3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SpeakToKirkVillageTracker(HarvestMoonTestTracker):
915class HarvestMoon3SpeakToKirkVillageTracker(HarvestMoonTestTracker):
916    TERMINATION_TRUNCATION_METRIC = SpeakToKirkVillageTerminateMetric
917    SUBGOAL_METRIC = make_subgoal_metric_class([NextToKirkVillageSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3TakeFerryTracker(HarvestMoonTestTracker):
919class HarvestMoon3TakeFerryTracker(HarvestMoonTestTracker):
920    TERMINATION_TRUNCATION_METRIC = TakeFerryTerminateMetric
921    SUBGOAL_METRIC = make_subgoal_metric_class([NextToKirkMainlandSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SpeakToJoeTracker(HarvestMoonTestTracker):
923class HarvestMoon3SpeakToJoeTracker(HarvestMoonTestTracker):
924    TERMINATION_TRUNCATION_METRIC = SpeakToJoeTerminateMetric
925    SUBGOAL_METRIC = make_subgoal_metric_class([NextToJoeSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SpeakToLukiaTracker(HarvestMoonTestTracker):
927class HarvestMoon3SpeakToLukiaTracker(HarvestMoonTestTracker):
928    TERMINATION_TRUNCATION_METRIC = SpeakToLukiaTerminateMetric
929    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLukiaSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SpeakToLucusTracker(HarvestMoonTestTracker):
931class HarvestMoon3SpeakToLucusTracker(HarvestMoonTestTracker):
932    TERMINATION_TRUNCATION_METRIC = SpeakToLucusTerminateMetric
933    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLucusSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SpeakToLylaTracker(HarvestMoonTestTracker):
935class HarvestMoon3SpeakToLylaTracker(HarvestMoonTestTracker):
936    TERMINATION_TRUNCATION_METRIC = SpeakToLylaTerminateMetric
937    SUBGOAL_METRIC = make_subgoal_metric_class([NextToLylaSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyHorseSaddleTracker(HarvestMoonTestTracker):
939class HarvestMoon3BuyHorseSaddleTracker(HarvestMoonTestTracker):
940    TERMINATION_TRUNCATION_METRIC = BuyHorseSaddleTerminateMetric
941    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHorseSaddleSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyFlowerVaseTracker(HarvestMoonTestTracker):
943class HarvestMoon3BuyFlowerVaseTracker(HarvestMoonTestTracker):
944    TERMINATION_TRUNCATION_METRIC = BuyFlowerVaseTerminateMetric
945    SUBGOAL_METRIC = make_subgoal_metric_class([NextToVaseSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyMealSetTracker(HarvestMoonTestTracker):
947class HarvestMoon3BuyMealSetTracker(HarvestMoonTestTracker):
948    TERMINATION_TRUNCATION_METRIC = BuyMealSetTerminateMetric
949    SUBGOAL_METRIC = make_subgoal_metric_class([SelectMealSetSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyCoffeeTracker(HarvestMoonTestTracker):
951class HarvestMoon3BuyCoffeeTracker(HarvestMoonTestTracker):
952    TERMINATION_TRUNCATION_METRIC = BuyCoffeeTerminateMetric
953    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCoffeeSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3FeedCowFodderTracker(HarvestMoonTestTracker):
955class HarvestMoon3FeedCowFodderTracker(HarvestMoonTestTracker):
956    TERMINATION_TRUNCATION_METRIC = FillCowFodderBlock3TerminateMetric
957    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCowFodderBlock3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3FarmEntranceTracker(HarvestMoonTestTracker):
959class HarvestMoon3FarmEntranceTracker(HarvestMoonTestTracker):
960    TERMINATION_TRUNCATION_METRIC = FarmEntranceTerminateMetric
961    SUBGOAL_METRIC = make_subgoal_metric_class([NearFarmSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3VillageEntranceTracker(HarvestMoonTestTracker):
963class HarvestMoon3VillageEntranceTracker(HarvestMoonTestTracker):
964    TERMINATION_TRUNCATION_METRIC = VillageEntranceTerminateMetric
965    SUBGOAL_METRIC = make_subgoal_metric_class([NearVillageSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3GrasslandEntranceTracker(HarvestMoonTestTracker):
967class HarvestMoon3GrasslandEntranceTracker(HarvestMoonTestTracker):
968    TERMINATION_TRUNCATION_METRIC = GrasslandEntranceTerminateMetric
969    SUBGOAL_METRIC = make_subgoal_metric_class([NearGrasslandSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ForestEntranceTracker(HarvestMoonTestTracker):
971class HarvestMoon3ForestEntranceTracker(HarvestMoonTestTracker):
972    TERMINATION_TRUNCATION_METRIC = ForestEntranceTerminateMetric
973    SUBGOAL_METRIC = make_subgoal_metric_class([NearForestSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3CliffEntranceTracker(HarvestMoonTestTracker):
975class HarvestMoon3CliffEntranceTracker(HarvestMoonTestTracker):
976    TERMINATION_TRUNCATION_METRIC = CliffEntranceTerminateMetric
977    SUBGOAL_METRIC = make_subgoal_metric_class([NearCliffSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3MountainEntranceTracker(HarvestMoonTestTracker):
979class HarvestMoon3MountainEntranceTracker(HarvestMoonTestTracker):
980    TERMINATION_TRUNCATION_METRIC = MountainEntranceTerminateMetric
981    SUBGOAL_METRIC = make_subgoal_metric_class([NearMountainSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ShoppingMallEntranceTracker(HarvestMoonTestTracker):
983class HarvestMoon3ShoppingMallEntranceTracker(HarvestMoonTestTracker):
984    TERMINATION_TRUNCATION_METRIC = ShoppingMallEntranceTerminateMetric
985    SUBGOAL_METRIC = make_subgoal_metric_class([NearShoppingMallSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ShoppingMallSecondFloorTracker(HarvestMoonTestTracker):
987class HarvestMoon3ShoppingMallSecondFloorTracker(HarvestMoonTestTracker):
988    TERMINATION_TRUNCATION_METRIC = ShoppingMallSecondFloorTerminateMetric
989    SUBGOAL_METRIC = make_subgoal_metric_class([NextToStairsSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3FarmersUnionEntranceTracker(HarvestMoonTestTracker):
991class HarvestMoon3FarmersUnionEntranceTracker(HarvestMoonTestTracker):
992    TERMINATION_TRUNCATION_METRIC = FarmersUnionEntranceTerminateMetric
993    SUBGOAL_METRIC = make_subgoal_metric_class([NearFarmersUnionSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3AquariumEntranceTracker(HarvestMoonTestTracker):
995class HarvestMoon3AquariumEntranceTracker(HarvestMoonTestTracker):
996    TERMINATION_TRUNCATION_METRIC = AquariumEntranceTerminateMetric
997    SUBGOAL_METRIC = make_subgoal_metric_class([NearAquariumSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3TheatreEntranceTracker(HarvestMoonTestTracker):
 999class HarvestMoon3TheatreEntranceTracker(HarvestMoonTestTracker):
1000    TERMINATION_TRUNCATION_METRIC = TheatreEntranceTerminateMetric
1001    SUBGOAL_METRIC = make_subgoal_metric_class([NearTheatreSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3HotSpringEntranceTracker(HarvestMoonTestTracker):
1003class HarvestMoon3HotSpringEntranceTracker(HarvestMoonTestTracker):
1004    TERMINATION_TRUNCATION_METRIC = HotSpringEntranceTerminateMetric
1005    SUBGOAL_METRIC = make_subgoal_metric_class([NearHotSpringSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BreakRockTracker(HarvestMoonTestTracker):
1007class HarvestMoon3BreakRockTracker(HarvestMoonTestTracker):
1008    TERMINATION_TRUNCATION_METRIC = BreakRockTerminateMetric
1009    SUBGOAL_METRIC = make_subgoal_metric_class([NextToRockFromLeftSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3RemoveWeedTracker(HarvestMoonTestTracker):
1011class HarvestMoon3RemoveWeedTracker(HarvestMoonTestTracker):
1012    TERMINATION_TRUNCATION_METRIC = RemoveWeed3TerminateMetric
1013    SUBGOAL_METRIC = make_subgoal_metric_class([NextToWeed3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3PickUpCherryTracker(HarvestMoonTestTracker):
1015class HarvestMoon3PickUpCherryTracker(HarvestMoonTestTracker):
1016    TERMINATION_TRUNCATION_METRIC = PickUpCherry3TerminateMetric
1017    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCherrySubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3HatchEggTracker(HarvestMoonTestTracker):
1019class HarvestMoon3HatchEggTracker(HarvestMoonTestTracker):
1020    TERMINATION_TRUNCATION_METRIC = HarvestMoon3HatchEggTerminateMetric
1021    SUBGOAL_METRIC = make_subgoal_metric_class([HarvestMoon3NextToHatchingBoxSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3FillChickenFodderTracker(HarvestMoonTestTracker):
1023class HarvestMoon3FillChickenFodderTracker(HarvestMoonTestTracker):
1024    TERMINATION_TRUNCATION_METRIC = FillTopmostChickenStallBlockTerminateMetric
1025    SUBGOAL_METRIC = make_subgoal_metric_class([NextToChickenSilo3Subgoal, PickupChickenFodder3Subgoal, NextToTopmostChickenStallBlockSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyFodderSetTracker(HarvestMoonTestTracker):
1027class HarvestMoon3BuyFodderSetTracker(HarvestMoonTestTracker):
1028    TERMINATION_TRUNCATION_METRIC = BuyFodderSet3TerminateMetric
1029    SUBGOAL_METRIC = make_subgoal_metric_class([NextToFodderSetSubgoal, SelectedFodderSetSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3BuyHorseMedicineTracker(HarvestMoonTestTracker):
1031class HarvestMoon3BuyHorseMedicineTracker(HarvestMoonTestTracker):
1032    TERMINATION_TRUNCATION_METRIC = BuyHorseMedicine3TerminateMetric
1033    SUBGOAL_METRIC = make_subgoal_metric_class([NextToHorseMedicineSubgoal, SelectedHorseMedicineSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SpeakToKateTracker(HarvestMoonTestTracker):
1035class HarvestMoon3SpeakToKateTracker(HarvestMoonTestTracker):
1036    TERMINATION_TRUNCATION_METRIC = SpeakToKateTerminateMetric
1037    SUBGOAL_METRIC = make_subgoal_metric_class([NextToKateSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3WaterCenterWatermelonTracker(HarvestMoonTestTracker):
1039class HarvestMoon3WaterCenterWatermelonTracker(HarvestMoonTestTracker):
1040    TERMINATION_TRUNCATION_METRIC = WaterCenterWatermelon3TerminateMetric
1041    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterWatermelonSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3WaterCenterSPotatoTracker(HarvestMoonTestTracker):
1043class HarvestMoon3WaterCenterSPotatoTracker(HarvestMoonTestTracker):
1044    TERMINATION_TRUNCATION_METRIC = WaterCenterSPotato3TerminateMetric
1045    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterSPotatoSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3HarvestTargetPotatoTracker(HarvestMoonTestTracker):
1047class HarvestMoon3HarvestTargetPotatoTracker(HarvestMoonTestTracker):
1048    TERMINATION_TRUNCATION_METRIC = HarvestTargetPotato3TerminateMetric
1049    SUBGOAL_METRIC = make_subgoal_metric_class([NextToTargetPotatoBelowSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3ReadAnimalCh2Tracker(HarvestMoonTestTracker):
1051class HarvestMoon3ReadAnimalCh2Tracker(HarvestMoonTestTracker):
1052    TERMINATION_TRUNCATION_METRIC = ReadAnimalCh2TerminateMetric
1053    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBookshelfSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3HarvestCenterTurnipTracker(HarvestMoonTestTracker):
1055class HarvestMoon3HarvestCenterTurnipTracker(HarvestMoonTestTracker):
1056    TERMINATION_TRUNCATION_METRIC = HarvestCenterTurnip3TerminateMetric
1057    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterTurnip3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3SellChickenTracker(HarvestMoonTestTracker):
1059class HarvestMoon3SellChickenTracker(HarvestMoonTestTracker):
1060    TERMINATION_TRUNCATION_METRIC = SellChicken3TerminateMetric
1061    SUBGOAL_METRIC = make_subgoal_metric_class([NextToSellChicken3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3PickBerryTracker(HarvestMoonTestTracker):
1063class HarvestMoon3PickBerryTracker(HarvestMoonTestTracker):
1064    TERMINATION_TRUNCATION_METRIC = PickBerry3TerminateMetric
1065    SUBGOAL_METRIC = make_subgoal_metric_class([NextToBerry3Subgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3CheckPlayerMoneyTracker(HarvestMoonTestTracker):
1067class HarvestMoon3CheckPlayerMoneyTracker(HarvestMoonTestTracker):
1068    TERMINATION_TRUNCATION_METRIC = CheckPlayerMoneyTerminateMetric
1069    SUBGOAL_METRIC = make_subgoal_metric_class([CheckPlayerMoneySubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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

class HarvestMoon3HarvestCenterEggplantTopTracker(HarvestMoonTestTracker):
1071class HarvestMoon3HarvestCenterEggplantTopTracker(HarvestMoonTestTracker):
1072    TERMINATION_TRUNCATION_METRIC = HarvestCenterEggplantTop3TerminateMetric
1073    SUBGOAL_METRIC = make_subgoal_metric_class([NextToCenterEggplantTopSubgoal])

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Harvest Moon games.

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

SUBGOAL_METRIC = <class 'gameboy_worlds.emulation.tracker.make_subgoal_metric_class.<locals>.CustomSubGoalMetric'>

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