gameboy_worlds.emulation.harvest_moon.test_metrics
1from typing import Optional 2from abc import ABC 3 4from gameboy_worlds.emulation.harvest_moon.parsers import HarvestMoonStateParser, BaseHarvestMoonStateParser 5from gameboy_worlds.emulation.tracker import ( 6 RegionMatchTerminationOnlyMetric, 7 TerminationMetric, 8 RegionMatchTerminationMetric, 9 TerminationTruncationMetric, 10 RegionMatchSubGoal, 11 AnyRegionMatchSubGoal, 12) 13 14 15class MultiRegionMatchTerminationMetric(TerminationTruncationMetric, ABC): 16 """ 17 Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. 18 OR_PAIRS: list of (region, target) — at least one must match. 19 ALL_PAIRS: list of (region, target) — every one must match. 20 NOT_PAIRS: list of (region, target) — none must match. 21 Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). 22 Any list may be empty, in which case its condition is trivially satisfied. 23 """ 24 25 REQUIRED_PARSER = BaseHarvestMoonStateParser 26 _OR_PAIRS: list = [] 27 _ALL_PAIRS: list = [] 28 _NOT_PAIRS: list = [] 29 30 def determine_terminated(self, current_frame, recent_frames): 31 all_frames = [current_frame] 32 if recent_frames is not None: 33 all_frames = recent_frames 34 for frame in all_frames: 35 or_ok = (not self._OR_PAIRS) or any( 36 self.state_parser.named_region_matches_multi_target(frame, region, target) 37 for region, target in self._OR_PAIRS 38 ) 39 all_ok = all( 40 self.state_parser.named_region_matches_multi_target(frame, region, target) 41 for region, target in self._ALL_PAIRS 42 ) 43 not_ok = not any( 44 self.state_parser.named_region_matches_multi_target(frame, region, target) 45 for region, target in self._NOT_PAIRS 46 ) 47 if or_ok and all_ok and not_ok: 48 return True 49 return False 50 51class PreviousFrameTerminateMetric(TerminationTruncationMetric, ABC): 52 """ 53 Terminates based on what was on screen BEFORE the final action. 54 55 _TERMINATION_NAMED_REGION / _TERMINATION_TARGET_NAME: checked against the 56 last frame of the previous step (i.e. the frame visible before the action). 57 58 _CURRENT_NAMED_REGION / _CURRENT_TARGET_NAME: optional additional check 59 against the current step's frames (e.g. confirming the action had effect). 60 Both conditions must be satisfied when the current fields are set. 61 62 _prev_frame is updated AFTER super().step() so that determine_terminated 63 always sees the frame from the step before the current one. 64 """ 65 REQUIRED_PARSER = BaseHarvestMoonStateParser 66 _TERMINATION_NAMED_REGION: str = None 67 _TERMINATION_TARGET_NAME: str = None 68 _CURRENT_NAMED_REGION: str = None 69 _CURRENT_TARGET_NAME: str = None 70 71 def step(self, current_frame, recent_frames): 72 super().step(current_frame, recent_frames) 73 self._prev_frame = recent_frames[-1] if recent_frames is not None else current_frame 74 75 def determine_terminated(self, current_frame, recent_frames): 76 if not hasattr(self, "_prev_frame"): 77 return False 78 prev_ok = self.state_parser.named_region_matches_multi_target( 79 self._prev_frame, 80 self._TERMINATION_NAMED_REGION, 81 self._TERMINATION_TARGET_NAME, 82 ) 83 if not prev_ok: 84 return False 85 if self._CURRENT_NAMED_REGION is None: 86 return True 87 all_frames = recent_frames if recent_frames is not None else [current_frame] 88 return any( 89 self.state_parser.named_region_matches_multi_target( 90 frame, self._CURRENT_NAMED_REGION, self._CURRENT_TARGET_NAME 91 ) 92 for frame in all_frames 93 ) 94 95class ChickenCoopTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 96 REQUIRED_PARSER = BaseHarvestMoonStateParser 97 98 _TERMINATION_NAMED_REGION = "screen_bottom" 99 _TERMINATION_TARGET_NAME = "chicken_coop_entrance" 100 101class OutsideChickenCoopSubgoal(AnyRegionMatchSubGoal): 102 NAME = "outside_chicken_coop" 103 _NAMED_REGIONS = [ 104 "screen_middle", 105 "screen_middle", 106 "screen_middle", 107 ] 108 _TARGET_NAMES = [ 109 "outside_chicken_coop_left", 110 "outside_chicken_coop_right", 111 "outside_chicken_coop_up", 112 ] 113 114class OutsideChickenCoop2Subgoal(AnyRegionMatchSubGoal): 115 NAME = "outside_chicken_coop" 116 _NAMED_REGIONS = [ 117 "outside_barns", 118 "outside_barns", 119 "outside_barns", 120 ] 121 _TARGET_NAMES = [ 122 "outside_chicken_coop_left", 123 "outside_chicken_coop_right", 124 "outside_chicken_coop_up", 125 ] 126 127class OutsideChickenCoop3Subgoal(AnyRegionMatchSubGoal): 128 NAME = "outside_chicken_coop" 129 _NAMED_REGIONS = [ 130 "outside_chicken_coop", 131 "outside_chicken_coop", 132 "outside_chicken_coop", 133 ] 134 _TARGET_NAMES = [ 135 "outside_chicken_coop_left", 136 "outside_chicken_coop_right", 137 "outside_chicken_coop_up", 138 ] 139 140class CowBarnTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 141 REQUIRED_PARSER = BaseHarvestMoonStateParser 142 143 _TERMINATION_NAMED_REGION = "screen_bottom" 144 _TERMINATION_TARGET_NAME = "cow_barn_entrance" 145 146class OutsideCowBarnSubgoal(AnyRegionMatchSubGoal): 147 NAME = "outside_cow_barn" 148 _NAMED_REGIONS = [ 149 "screen_middle", 150 "screen_middle", 151 "screen_middle", 152 ] 153 _TARGET_NAMES = [ 154 "outside_cow_barn_left", 155 "outside_cow_barn_right", 156 "outside_cow_barn_up", 157 ] 158 159class OutsideCowBarn2Subgoal(AnyRegionMatchSubGoal): 160 NAME = "outside_cow_barn" 161 _NAMED_REGIONS = [ 162 "outside_barns", 163 "outside_barns", 164 "outside_barns", 165 ] 166 _TARGET_NAMES = [ 167 "outside_cow_barn_left", 168 "outside_cow_barn_right", 169 "outside_cow_barn_up", 170 ] 171 172class StorageTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 173 REQUIRED_PARSER = BaseHarvestMoonStateParser 174 175 _TERMINATION_NAMED_REGION = "screen_bottom" 176 _TERMINATION_TARGET_NAME = "storage_shed_entrance" 177 178class OutsideStorageSubgoal(AnyRegionMatchSubGoal): 179 NAME = "outside_storage_shed" 180 _NAMED_REGIONS = [ 181 "screen_middle", 182 "screen_middle", 183 "screen_middle", 184 ] 185 _TARGET_NAMES = [ 186 "outside_storage_left", 187 "outside_storage_right", 188 "outside_storage_up", 189 ] 190 191class PickupWaterCanTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 192 REQUIRED_PARSER = BaseHarvestMoonStateParser 193 194 _TERMINATION_NAMED_REGION = "dialogue_box_top" 195 _TERMINATION_TARGET_NAME = "pick_up_watercan" 196 197class NextToWaterCanSubgoal(AnyRegionMatchSubGoal): 198 NAME = "next_to_water_can" 199 _NAMED_REGIONS = [ 200 "item_watercan_above", 201 "item_watercan_right", 202 "item_watercan_below", 203 ] 204 _TARGET_NAMES = [ 205 "pickup_watercan_down", 206 "pickup_watercan_left", 207 "pickup_watercan_up", 208 ] 209 210class PickupCowBellTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 211 REQUIRED_PARSER = BaseHarvestMoonStateParser 212 213 _TERMINATION_NAMED_REGION = "dialogue_box_top_mid" 214 _TERMINATION_TARGET_NAME = "pick_up_cowbell" 215 216class NextToCowBellSubgoal(AnyRegionMatchSubGoal): 217 NAME = "next_to_cowbell" 218 _NAMED_REGIONS = [ 219 "item_cowbell_above", 220 "item_cowbell_below", 221 ] 222 _TARGET_NAMES = [ 223 "next_to_cowbell_down", 224 "next_to_cowbell_up", 225 ] 226 227class PickupSickleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 228 REQUIRED_PARSER = BaseHarvestMoonStateParser 229 230 _TERMINATION_NAMED_REGION = "dialogue_box_top_mid" 231 _TERMINATION_TARGET_NAME = "pick_up_sickle" 232 233class NextToSickleSubgoal(AnyRegionMatchSubGoal): 234 NAME = "next_to_sickle" 235 _NAMED_REGIONS = [ 236 "item_sickle_above", 237 "item_sickle_left", 238 "item_sickle_below", 239 ] 240 _TARGET_NAMES = [ 241 "pickup_sickle_down", 242 "pickup_sickle_right", 243 "pickup_sickle_up", 244 ] 245 246class PickupHoeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 247 REQUIRED_PARSER = BaseHarvestMoonStateParser 248 249 _TERMINATION_NAMED_REGION = "dialogue_box_top_short" 250 _TERMINATION_TARGET_NAME = "pick_up_hoe" 251 252class NextToHoeSubgoal(AnyRegionMatchSubGoal): 253 NAME = "next_to_hoe" 254 _NAMED_REGIONS = [ 255 "item_hoe_above", 256 "item_hoe_below", 257 ] 258 _TARGET_NAMES = [ 259 "pickup_hoe_down", 260 "pickup_hoe_up", 261 ] 262 263class PickupHammerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 264 REQUIRED_PARSER = BaseHarvestMoonStateParser 265 266 _TERMINATION_NAMED_REGION = "dialogue_box_top_mid" 267 _TERMINATION_TARGET_NAME = "pick_up_hammer" 268 269class NextToHammerSubgoal(AnyRegionMatchSubGoal): 270 NAME = "next_to_hammer" 271 _NAMED_REGIONS = [ 272 "item_hammer_above", 273 "item_hammer_below", 274 ] 275 _TARGET_NAMES = [ 276 "pickup_hammer_down", 277 "pickup_hammer_up", 278 ] 279 280class PickupGrassSeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 281 REQUIRED_PARSER = BaseHarvestMoonStateParser 282 283 _TERMINATION_NAMED_REGION = "dialogue_box_top" 284 _TERMINATION_TARGET_NAME = "pick_up_grass_seed" 285 286class NextToGrassSeedSubgoal(AnyRegionMatchSubGoal): 287 NAME = "next_to_grass_seed" 288 _NAMED_REGIONS = [ 289 "item_grass_seed_above", 290 "item_grass_seed_right", 291 "item_grass_seed_below", 292 ] 293 _TARGET_NAMES = [ 294 "pickup_grass_seed_down", 295 "pickup_grass_seed_left", 296 "pickup_grass_seed_up", 297 ] 298 299class GoToSleepTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 300 REQUIRED_PARSER = BaseHarvestMoonStateParser 301 302 _TERMINATION_NAMED_REGION = "item_bed" 303 _TERMINATION_TARGET_NAME = "sleep_in_bed" 304 305class SleepOptionSubgoal(AnyRegionMatchSubGoal): 306 NAME = "sleep_option" 307 _NAMED_REGIONS = [ 308 "dialogue_box_bottom", 309 ] 310 _TARGET_NAMES = [ 311 "choose_yes_for_sleep", 312 ] 313 314class FeedSpiritTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 315 REQUIRED_PARSER = BaseHarvestMoonStateParser 316 317 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 318 _TERMINATION_TARGET_NAME = "fed_spirit" 319 320class HelpSpiritEarthquakeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 321 REQUIRED_PARSER = BaseHarvestMoonStateParser 322 323 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 324 _TERMINATION_TARGET_NAME = "helped_spirit_earthquake" 325 326class NextToSpiritSubgoal(AnyRegionMatchSubGoal): 327 NAME = "next_to_spirit" 328 _NAMED_REGIONS = [ 329 "item_spirit_left", 330 "item_spirit_below", 331 "item_spirit_above", 332 ] 333 _TARGET_NAMES = [ 334 "feed_spirit_right", 335 "feed_spirit_up", 336 "feed_spirit_down", 337 ] 338 339class NextToEarthquakeSpiritSubgoal(AnyRegionMatchSubGoal): 340 NAME = "next_to_spirit_earthquake" 341 _NAMED_REGIONS = [ 342 "item_spirit_left", 343 "item_spirit_below", 344 "item_spirit_above", 345 ] 346 _TARGET_NAMES = [ 347 "help_spirit_earthquake_right", 348 "help_spirit_earthquake_up", 349 "help_spirit_earthquake_down", 350 ] 351 352class WaterTurnipTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 353 REQUIRED_PARSER = BaseHarvestMoonStateParser 354 _OR_PAIRS = [ 355 ("turnip_center", "finish_watering_1"), 356 ("turnip_center", "finish_watering_2"), 357 ] 358 359class NextToTurnipSubgoal(AnyRegionMatchSubGoal): 360 NAME = "next_to_turnip" 361 _NAMED_REGIONS = ["turnip_top", "turnip_top"] 362 _TARGET_NAMES = ["ready_to_water_1", "ready_to_water_2"] 363 364class BuyMaterialTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 365 REQUIRED_PARSER = BaseHarvestMoonStateParser 366 367 _TERMINATION_NAMED_REGION = "screen_bottom_half" 368 _TERMINATION_TARGET_NAME = "bought_material" 369 370class OutsideCarpenter1Subgoal(AnyRegionMatchSubGoal): 371 NAME = "outside_carpenter" 372 _NAMED_REGIONS = [ 373 "center_sign", 374 ] 375 _TARGET_NAMES = [ 376 "outside_carpenter", 377 ] 378 379class ShopForMaterialSubgoal(AnyRegionMatchSubGoal): 380 NAME = "shop_for_material" 381 _NAMED_REGIONS = [ 382 "screen_top_half", 383 ] 384 _TARGET_NAMES = [ 385 "in_carpenter", 386 ] 387 388class SelectMaterialSubgoal(AnyRegionMatchSubGoal): 389 NAME = "selected_material" 390 _NAMED_REGIONS = [ 391 "dialogue_box_bottom", 392 ] 393 _TARGET_NAMES = [ 394 "select_material", 395 ] 396 397class BuyChickenTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 398 REQUIRED_PARSER = BaseHarvestMoonStateParser 399 400 _TERMINATION_NAMED_REGION = "screen_bottom_half" 401 _TERMINATION_TARGET_NAME = "bought_chicken" 402 403class OutsideAnimalShop1Subgoal(AnyRegionMatchSubGoal): 404 NAME = "outside_animal_shop" 405 _NAMED_REGIONS = [ 406 "center_sign", 407 ] 408 _TARGET_NAMES = [ 409 "outside_animal_shop", 410 ] 411 412class ShopForAnimalSubgoal(AnyRegionMatchSubGoal): 413 NAME = "shop_for_animal" 414 _NAMED_REGIONS = [ 415 "screen_top_half", 416 ] 417 _TARGET_NAMES = [ 418 "in_animal_shop", 419 ] 420 421class SelectChickenSubgoal(AnyRegionMatchSubGoal): 422 NAME = "selected_chicken" 423 _NAMED_REGIONS = [ 424 "dialogue_box_bottom", 425 ] 426 _TARGET_NAMES = [ 427 "select_chicken", 428 ] 429 430class SelectCowSubgoal(AnyRegionMatchSubGoal): 431 NAME = "selected_cow" 432 _NAMED_REGIONS = [ 433 "dialogue_box_bottom", 434 ] 435 _TARGET_NAMES = [ 436 "select_cow", 437 ] 438 439class BuyCowTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 440 REQUIRED_PARSER = BaseHarvestMoonStateParser 441 442 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 443 _TERMINATION_TARGET_NAME = "bought_named_cow" 444 445class SellChickenTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 446 REQUIRED_PARSER = BaseHarvestMoonStateParser 447 448 _TERMINATION_NAMED_REGION = "screen_bottom_half" 449 _TERMINATION_TARGET_NAME = "sold_chicken" 450 451class SelectSellingChickenSubgoal(AnyRegionMatchSubGoal): 452 NAME = "selected_selling_chicken" 453 _NAMED_REGIONS = [ 454 "dialogue_box_bottom", 455 ] 456 _TARGET_NAMES = [ 457 "select_selling_chicken", 458 ] 459 460# HM2 sell cow task 461class SellCowTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 462 REQUIRED_PARSER = BaseHarvestMoonStateParser 463 _TERMINATION_NAMED_REGION = "screen_bottom_half" 464 _TERMINATION_TARGET_NAME = "sold_cow" 465 466class SelectSellingCowSubgoal(AnyRegionMatchSubGoal): 467 NAME = "selected_selling_cow" 468 _NAMED_REGIONS = [ 469 "dialogue_box_bottom", 470 ] 471 _TARGET_NAMES = [ 472 "select_selling_cow", 473 ] 474 475# HM2 get hothouse estimate task 476class ShopForConstructionEstimatesSubgoal(AnyRegionMatchSubGoal): 477 NAME = "shop_for_construction_estimates" 478 _NAMED_REGIONS = ["screen_top_half"] 479 _TARGET_NAMES = ["shop_for_construction_estimates"] 480 481class SelectHothouseSubgoal(AnyRegionMatchSubGoal): 482 NAME = "selected_hothouse" 483 _NAMED_REGIONS = ["dialogue_box_bottom"] 484 _TARGET_NAMES = ["select_hothouse"] 485 486class GetHothouseEstimateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 487 REQUIRED_PARSER = BaseHarvestMoonStateParser 488 _TERMINATION_NAMED_REGION = "screen_bottom_half" 489 _TERMINATION_TARGET_NAME = "hothouse_estimate" 490 491class BuyCowBrushTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 492 REQUIRED_PARSER = BaseHarvestMoonStateParser 493 494 _TERMINATION_NAMED_REGION = "screen_bottom_half" 495 _TERMINATION_TARGET_NAME = "bought_cow_brush" 496 497class BuySaddlebagTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 498 REQUIRED_PARSER = BaseHarvestMoonStateParser 499 500 _TERMINATION_NAMED_REGION = "screen_bottom_half" 501 _TERMINATION_TARGET_NAME = "bought_saddlebag" 502 503class BuyMilkerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 504 REQUIRED_PARSER = BaseHarvestMoonStateParser 505 506 _TERMINATION_NAMED_REGION = "screen_bottom_half" 507 _TERMINATION_TARGET_NAME = "bought_milker" 508 509class OutsideToolShop1Subgoal(AnyRegionMatchSubGoal): 510 NAME = "outside_tool_shop" 511 _NAMED_REGIONS = [ 512 "center_sign", 513 ] 514 _TARGET_NAMES = [ 515 "outside_tool_shop", 516 ] 517 518class ShopForToolsSubgoal(AnyRegionMatchSubGoal): 519 NAME = "shop_for_tools" 520 _NAMED_REGIONS = [ 521 "screen_top_half", 522 ] 523 _TARGET_NAMES = [ 524 "in_tool_shop", 525 ] 526 527class SelectCowBrushSubgoal(AnyRegionMatchSubGoal): 528 NAME = "selected_cow_brush" 529 _NAMED_REGIONS = [ 530 "dialogue_box_bottom", 531 ] 532 _TARGET_NAMES = [ 533 "select_cow_brush", 534 ] 535 536class SelectSaddlebagSubgoal(AnyRegionMatchSubGoal): 537 NAME = "selected_saddlebag" 538 _NAMED_REGIONS = [ 539 "dialogue_box_bottom", 540 ] 541 _TARGET_NAMES = [ 542 "select_saddlebag", 543 ] 544 545class SelectMilkerSubgoal(AnyRegionMatchSubGoal): 546 NAME = "selected_milker" 547 _NAMED_REGIONS = [ 548 "dialogue_box_bottom", 549 ] 550 _TARGET_NAMES = [ 551 "select_milker", 552 ] 553 554class BuyRiceBallTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 555 REQUIRED_PARSER = BaseHarvestMoonStateParser 556 557 _TERMINATION_NAMED_REGION = "screen_bottom_half" 558 _TERMINATION_TARGET_NAME = "bought_rice_ball" 559 560class OutsideRestaurantSubgoal(AnyRegionMatchSubGoal): 561 NAME = "outside_restaurant" 562 _NAMED_REGIONS = [ 563 "center_sign", 564 ] 565 _TARGET_NAMES = [ 566 "outside_restaurant", 567 ] 568 569class ShopForFoodSubgoal(AnyRegionMatchSubGoal): 570 NAME = "shop_for_food" 571 _NAMED_REGIONS = [ 572 "screen_top_half", 573 ] 574 _TARGET_NAMES = [ 575 "in_restaurant", 576 ] 577 578class SelectRiceBallSubgoal(AnyRegionMatchSubGoal): 579 NAME = "selected_rice_ball" 580 _NAMED_REGIONS = [ 581 "dialogue_box_bottom", 582 ] 583 _TARGET_NAMES = [ 584 "select_rice_ball", 585 ] 586 587class BuyRiceBallOptionSubgoal(AnyRegionMatchSubGoal): 588 NAME = "buy_rice_ball_option" 589 _NAMED_REGIONS = [ 590 "screen_bottom_half", 591 ] 592 _TARGET_NAMES = [ 593 "option_to_buy_rice_ball", 594 ] 595 596class BuyCroissantTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 597 REQUIRED_PARSER = BaseHarvestMoonStateParser 598 599 _TERMINATION_NAMED_REGION = "screen_bottom_half" 600 _TERMINATION_TARGET_NAME = "bought_croissant" 601 602class SelectCroissantSubgoal(AnyRegionMatchSubGoal): 603 NAME = "selected_croissant" 604 _NAMED_REGIONS = [ 605 "dialogue_box_bottom", 606 ] 607 _TARGET_NAMES = [ 608 "select_croissant", 609 ] 610 611class BuyCroissantOptionSubgoal(AnyRegionMatchSubGoal): 612 NAME = "buy_croissant_option" 613 _NAMED_REGIONS = [ 614 "screen_bottom_half", 615 ] 616 _TARGET_NAMES = [ 617 "option_to_buy_croissant", 618 ] 619 620class BuyCakeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 621 REQUIRED_PARSER = BaseHarvestMoonStateParser 622 623 _TERMINATION_NAMED_REGION = "screen_bottom_half" 624 _TERMINATION_TARGET_NAME = "bought_cake" 625 626class SelectCakeSubgoal(AnyRegionMatchSubGoal): 627 NAME = "selected_cake" 628 _NAMED_REGIONS = [ 629 "dialogue_box_bottom", 630 ] 631 _TARGET_NAMES = [ 632 "select_cake", 633 ] 634 635class BuyCakeOptionSubgoal(AnyRegionMatchSubGoal): 636 NAME = "buy_cake_option" 637 _NAMED_REGIONS = [ 638 "screen_bottom_half", 639 ] 640 _TARGET_NAMES = [ 641 "option_to_buy_cake", 642 ] 643 644class OutsideJuiceBarSubgoal(AnyRegionMatchSubGoal): 645 NAME = "outside_juice_bar" 646 _NAMED_REGIONS = [ 647 "center_sign", 648 ] 649 _TARGET_NAMES = [ 650 "outside_juice_bar", 651 ] 652 653class ShopForJuiceSubgoal(AnyRegionMatchSubGoal): 654 NAME = "shop_for_juice" 655 _NAMED_REGIONS = [ 656 "screen_top_half", 657 ] 658 _TARGET_NAMES = [ 659 "in_juice_bar", 660 ] 661 662class BuyGrapeJuiceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 663 REQUIRED_PARSER = BaseHarvestMoonStateParser 664 665 _TERMINATION_NAMED_REGION = "screen_bottom_half" 666 _TERMINATION_TARGET_NAME = "bought_grape_juice" 667 668class SelectGrapeJuiceSubgoal(AnyRegionMatchSubGoal): 669 NAME = "selected_grape_juice" 670 _NAMED_REGIONS = [ 671 "dialogue_box_bottom", 672 ] 673 _TARGET_NAMES = [ 674 "select_grape_juice", 675 ] 676 677class BuyGrapeJuiceOptionSubgoal(AnyRegionMatchSubGoal): 678 NAME = "buy_grape_juice_option" 679 _NAMED_REGIONS = [ 680 "screen_bottom_half", 681 ] 682 _TARGET_NAMES = [ 683 "option_to_buy_grape_juice", 684 ] 685 686class GoToChurchPrayTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 687 REQUIRED_PARSER = BaseHarvestMoonStateParser 688 689 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 690 _TERMINATION_TARGET_NAME = "praying" 691 692class OutsideChurchSubgoal(AnyRegionMatchSubGoal): 693 NAME = "outside_church" 694 _NAMED_REGIONS = [ 695 "center_sign", 696 ] 697 _TARGET_NAMES = [ 698 "outside_church", 699 ] 700 701class InsideChurchSubgoal(AnyRegionMatchSubGoal): 702 NAME = "inside_church" 703 _NAMED_REGIONS = [ 704 "screen_top_half", 705 ] 706 _TARGET_NAMES = [ 707 "in_church", 708 ] 709 710class PrayOptionSubgoal(AnyRegionMatchSubGoal): 711 NAME = "choose_to_pray" 712 _NAMED_REGIONS = [ 713 "dialogue_box_bottom", 714 ] 715 _TARGET_NAMES = [ 716 "option_to_pray", 717 ] 718 719class OpenStorageListTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 720 REQUIRED_PARSER = BaseHarvestMoonStateParser 721 722 _TERMINATION_NAMED_REGION = "left_border_frame" 723 _TERMINATION_TARGET_NAME = "open_storage_list" 724 725class NextToStorageListSubgoal(AnyRegionMatchSubGoal): 726 NAME = "next_to_storage_list" 727 _NAMED_REGIONS = [ 728 "item_storage_list", 729 ] 730 _TARGET_NAMES = [ 731 "next_to_storage_list", 732 ] 733 734class ReadFerrySignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 735 REQUIRED_PARSER = BaseHarvestMoonStateParser 736 737 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 738 _TERMINATION_TARGET_NAME = "reading_ferry_sign" 739 740class NextToFerrySignSubgoal(AnyRegionMatchSubGoal): 741 NAME = "next_to_ferry_sign" 742 _NAMED_REGIONS = [ 743 "item_ferry_sign_above", 744 "item_ferry_sign_left", 745 ] 746 _TARGET_NAMES = [ 747 "next_to_ferry_sign_down", 748 "next_to_ferry_sign_right", 749 ] 750 751class FindSecretSavingsTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 752 REQUIRED_PARSER = BaseHarvestMoonStateParser 753 754 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 755 _TERMINATION_TARGET_NAME = "found_secret_savings" 756 757class NextToFireplaceSubgoal(AnyRegionMatchSubGoal): 758 NAME = "next_to_fireplace" 759 _NAMED_REGIONS = [ 760 "item_fireplace_below", 761 ] 762 _TARGET_NAMES = [ 763 "next_to_fireplace_up", 764 ] 765 766class FindLuckyMoneyTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 767 REQUIRED_PARSER = BaseHarvestMoonStateParser 768 769 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 770 _TERMINATION_TARGET_NAME = "found_lucky_money" 771 772class NextToClockSubgoal(AnyRegionMatchSubGoal): 773 NAME = "next_to_clock" 774 _NAMED_REGIONS = [ 775 "item_clock_below", 776 ] 777 _TARGET_NAMES = [ 778 "next_to_clock_up", 779 ] 780 781class FindRainyMoneyTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 782 REQUIRED_PARSER = BaseHarvestMoonStateParser 783 784 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 785 _TERMINATION_TARGET_NAME = "found_rainy_money" 786 787class NextToSafeSubgoal(AnyRegionMatchSubGoal): 788 NAME = "next_to_safe" 789 _NAMED_REGIONS = [ 790 "item_safe_below", 791 "item_safe_below", 792 ] 793 _TARGET_NAMES = [ 794 "next_to_safe_up", 795 "next_to_safe_left", 796 ] 797 798class FindLostBirdTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 799 REQUIRED_PARSER = BaseHarvestMoonStateParser 800 801 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 802 _TERMINATION_TARGET_NAME = "found_bird_for_friend" 803 804class NextToLostBirdSubgoal(AnyRegionMatchSubGoal): 805 NAME = "next_to_lost_bird" 806 _NAMED_REGIONS = [ 807 "item_lost_bird_below", 808 "item_lost_bird_left", 809 "item_lost_bird_right", 810 ] 811 _TARGET_NAMES = [ 812 "find_lost_bird_up", 813 "find_lost_bird_right", 814 "find_lost_bird_left", 815 ] 816 817class SpeakToBlueHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 818 REQUIRED_PARSER = BaseHarvestMoonStateParser 819 820 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 821 _TERMINATION_TARGET_NAME = "speaking_to_blue_hair_girl" 822 823class NextToBlueHairGirlSubgoal(AnyRegionMatchSubGoal): 824 NAME = "next_to_blue_hair_girl" 825 _NAMED_REGIONS = [ 826 "item_blue_hair_girl_below", 827 "item_blue_hair_girl_left", 828 "item_blue_hair_girl_right", 829 ] 830 _TARGET_NAMES = [ 831 "next_to_blue_hair_girl_up", 832 "next_to_blue_hair_girl_right", 833 "next_to_blue_hair_girl_left", 834 ] 835 836class SpeakToGoldenHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 837 REQUIRED_PARSER = BaseHarvestMoonStateParser 838 839 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 840 _TERMINATION_TARGET_NAME = "speaking_to_golden_hair_girl" 841 842class NextToGoldenHairGirlSubgoal(AnyRegionMatchSubGoal): 843 NAME = "next_to_golden_hair_girl" 844 _NAMED_REGIONS = [ 845 "item_golden_hair_girl_below", 846 "item_golden_hair_girl_right", 847 "item_golden_hair_girl_above", 848 ] 849 _TARGET_NAMES = [ 850 "next_to_golden_hair_girl_up", 851 "next_to_golden_hair_girl_left", 852 "next_to_golden_hair_girl_down", 853 ] 854 855class SpeakToPinkHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 856 REQUIRED_PARSER = BaseHarvestMoonStateParser 857 858 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 859 _TERMINATION_TARGET_NAME = "speaking_to_pink_hair_girl" 860 861class NextToPinkHairGirlSubgoal(AnyRegionMatchSubGoal): 862 NAME = "next_to_pink_hair_girl" 863 _NAMED_REGIONS = [ 864 "item_pink_hair_girl_above", 865 "item_pink_hair_girl_left", 866 "item_pink_hair_girl_right", 867 ] 868 _TARGET_NAMES = [ 869 "next_to_pink_hair_girl_down", 870 "next_to_pink_hair_girl_right", 871 "next_to_pink_hair_girl_left", 872 ] 873 874# HM1 winter gathering speak to girl tasks 875class SpeakToBlueHairGirlWGTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 876 REQUIRED_PARSER = BaseHarvestMoonStateParser 877 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 878 _TERMINATION_TARGET_NAME = "speaking_to_blue_hair_girl_wg" 879 880class NextToBlueHairGirlWGSubgoal(AnyRegionMatchSubGoal): 881 NAME = "next_to_blue_hair_girl_wg" 882 _NAMED_REGIONS = [ 883 "item_blue_hair_girl_wg_below", 884 "item_blue_hair_girl_wg_left", 885 "item_blue_hair_girl_wg_right", 886 ] 887 _TARGET_NAMES = [ 888 "next_to_blue_hair_girl_wg_up", 889 "next_to_blue_hair_girl_wg_right", 890 "next_to_blue_hair_girl_wg_left", 891 ] 892 893class SpeakToPinkHairGirlWGTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 894 REQUIRED_PARSER = BaseHarvestMoonStateParser 895 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 896 _TERMINATION_TARGET_NAME = "speaking_to_pink_hair_girl_wg" 897 898class NextToPinkHairGirlWGSubgoal(AnyRegionMatchSubGoal): 899 NAME = "next_to_pink_hair_girl_wg" 900 _NAMED_REGIONS = [ 901 "item_pink_hair_girl_wg_above", 902 "item_pink_hair_girl_wg_left", 903 "item_pink_hair_girl_wg_right", 904 ] 905 _TARGET_NAMES = [ 906 "next_to_pink_hair_girl_wg_down", 907 "next_to_pink_hair_girl_wg_right", 908 "next_to_pink_hair_girl_wg_left", 909 ] 910 911class SpeakToRedHairGirlWGTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 912 REQUIRED_PARSER = BaseHarvestMoonStateParser 913 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 914 _TERMINATION_TARGET_NAME = "speaking_to_red_hair_girl_wg" 915 916class NextToRedHairGirlWGSubgoal(AnyRegionMatchSubGoal): 917 NAME = "next_to_red_hair_girl_wg" 918 _NAMED_REGIONS = [ 919 "item_red_hair_girl_wg_above", 920 "item_red_hair_girl_wg_left", 921 "item_red_hair_girl_wg_right", 922 ] 923 _TARGET_NAMES = [ 924 "next_to_red_hair_girl_wg_down", 925 "next_to_red_hair_girl_wg_right", 926 "next_to_red_hair_girl_wg_left", 927 ] 928 929class FillChickenFodderBlock1TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 930 REQUIRED_PARSER = BaseHarvestMoonStateParser 931 932 _TERMINATION_NAMED_REGION = "item_chicken_stall_block1" 933 _TERMINATION_TARGET_NAME = "filled_chicken_stall_block1" 934 935class NextToChickenFodderBlock1Subgoal(AnyRegionMatchSubGoal): 936 NAME = "next_to_chicken_stall_block1_with_fodder" 937 _NAMED_REGIONS = [ 938 "item_next_to_chicken_stall_block1", 939 ] 940 _TARGET_NAMES = [ 941 "next_to_chicken_stall_block1", 942 ] 943 944class NextToChickenSiloSubgoal(AnyRegionMatchSubGoal): 945 NAME = "next_to_chicken_silo" 946 _NAMED_REGIONS = [ 947 "item_chicken_silo_left", 948 "item_chicken_silo_below1", 949 "item_chicken_silo_below2", 950 ] 951 _TARGET_NAMES = [ 952 "next_to_chicken_silo_right", 953 "next_to_chicken_silo_up1", 954 "next_to_chicken_silo_up2", 955 ] 956 957class PickupChickenFodderSubgoal(AnyRegionMatchSubGoal): 958 NAME = "picked_up_chicken_fodder_from_silo" 959 _NAMED_REGIONS = [ 960 "item_chicken_silo_left", 961 "item_chicken_silo_below1", 962 "item_chicken_silo_below2", 963 ] 964 _TARGET_NAMES = [ 965 "got_fodder_from_chicken_silo_right", 966 "got_fodder_from_chicken_silo_up1", 967 "got_fodder_from_chicken_silo_up2", 968 ] 969 970# HM1 fill cow fodder task 971class NextToCowFeedingStallSubgoal(AnyRegionMatchSubGoal): 972 NAME = "next_to_cow_feeding_stall_with_fodder" 973 _NAMED_REGIONS = [ 974 "item_cow_feeding_stall_right", 975 ] 976 _TARGET_NAMES = [ 977 "next_to_cow_feeding_stall_left", 978 ] 979 980class FillUpperRightCowStallTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 981 REQUIRED_PARSER = BaseHarvestMoonStateParser 982 _TERMINATION_NAMED_REGION = "item_cow_feeding_stall" 983 _TERMINATION_TARGET_NAME = "cow_feeding_stall_filled" 984 985# HM2 fill chicken fodder subgoals 986class NextToChickenSilo2Subgoal(AnyRegionMatchSubGoal): 987 NAME = "next_to_chicken_silo" 988 _NAMED_REGIONS = [ 989 "item_chicken_silo_left1", 990 "item_chicken_silo_left2", 991 "item_chicken_silo_below", 992 ] 993 _TARGET_NAMES = [ 994 "next_to_chicken_silo_right1", 995 "next_to_chicken_silo_right2", 996 "next_to_chicken_silo_up", 997 ] 998 999class PickupChickenFodder2Subgoal(AnyRegionMatchSubGoal): 1000 NAME = "picked_up_chicken_fodder_from_silo" 1001 _NAMED_REGIONS = [ 1002 "item_chicken_silo_left1", 1003 "item_chicken_silo_left2", 1004 "item_chicken_silo_below", 1005 ] 1006 _TARGET_NAMES = [ 1007 "got_fodder_from_chicken_silo_right1", 1008 "got_fodder_from_chicken_silo_right2", 1009 "got_fodder_from_chicken_silo_up", 1010 ] 1011 1012 1013class HospitalEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1014 REQUIRED_PARSER = BaseHarvestMoonStateParser 1015 _TERMINATION_NAMED_REGION = "screen_top_half" 1016 _TERMINATION_TARGET_NAME = "in_hospital" 1017 1018class OutsideHospitalSubgoal(AnyRegionMatchSubGoal): 1019 NAME = "outside_hospital" 1020 _NAMED_REGIONS = [ 1021 "hospital_location", 1022 "hospital_location", 1023 "hospital_location", 1024 ] 1025 _TARGET_NAMES = [ 1026 "outside_hospital_up", 1027 "outside_hospital_left", 1028 "outside_hospital_right", 1029 ] 1030 1031class ToolShopEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1032 REQUIRED_PARSER = BaseHarvestMoonStateParser 1033 _TERMINATION_NAMED_REGION = "screen_top_half" 1034 _TERMINATION_TARGET_NAME = "in_tool_shop" 1035 1036class OutsideToolShop2Subgoal(AnyRegionMatchSubGoal): 1037 NAME = "outside_tool_shop" 1038 _NAMED_REGIONS = [ 1039 "tool_shop_location", 1040 "tool_shop_location", 1041 "tool_shop_location", 1042 ] 1043 _TARGET_NAMES = [ 1044 "outside_tool_shop_up", 1045 "outside_tool_shop_left", 1046 "outside_tool_shop_right", 1047 ] 1048 1049class CarpenterEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1050 REQUIRED_PARSER = BaseHarvestMoonStateParser 1051 _TERMINATION_NAMED_REGION = "screen_top_half" 1052 _TERMINATION_TARGET_NAME = "in_carpenter" 1053 1054class OutsideCarpenter2Subgoal(AnyRegionMatchSubGoal): 1055 NAME = "outside_carpenter" 1056 _NAMED_REGIONS = [ 1057 "carpenter_location", 1058 "carpenter_location", 1059 "carpenter_location", 1060 ] 1061 _TARGET_NAMES = [ 1062 "outside_carpenter_up", 1063 "outside_carpenter_left", 1064 "outside_carpenter_right", 1065 ] 1066 1067class AnimalShopEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1068 REQUIRED_PARSER = BaseHarvestMoonStateParser 1069 _TERMINATION_NAMED_REGION = "screen_top_half" 1070 _TERMINATION_TARGET_NAME = "in_animal_shop" 1071 1072class OutsideAnimalShop2Subgoal(AnyRegionMatchSubGoal): 1073 NAME = "outside_animal_shop" 1074 _NAMED_REGIONS = [ 1075 "animal_shop_location", 1076 "animal_shop_location", 1077 "animal_shop_location", 1078 ] 1079 _TARGET_NAMES = [ 1080 "outside_animal_shop_up", 1081 "outside_animal_shop_left", 1082 "outside_animal_shop_right", 1083 ] 1084 1085class LibraryEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1086 REQUIRED_PARSER = BaseHarvestMoonStateParser 1087 _TERMINATION_NAMED_REGION = "screen_top_half" 1088 _TERMINATION_TARGET_NAME = "in_library" 1089 1090class OutsideLibrarySubgoal(AnyRegionMatchSubGoal): 1091 NAME = "outside_library" 1092 _NAMED_REGIONS = [ 1093 "library_location", 1094 "library_location", 1095 "library_location", 1096 ] 1097 _TARGET_NAMES = [ 1098 "outside_library_up", 1099 "outside_library_left", 1100 "outside_library_right", 1101 ] 1102 1103class FlowerShopEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1104 REQUIRED_PARSER = BaseHarvestMoonStateParser 1105 1106 _TERMINATION_NAMED_REGION = "screen_top_half" 1107 _TERMINATION_TARGET_NAME = "in_flower_shop" 1108 1109class OutsideFlowerShop2Subgoal(AnyRegionMatchSubGoal): 1110 NAME = "outside_flower_shop" 1111 _NAMED_REGIONS = [ 1112 "flower_shop_location", 1113 "flower_shop_location", 1114 "flower_shop_location", 1115 ] 1116 _TARGET_NAMES = [ 1117 "outside_flower_shop_up", 1118 "outside_flower_shop_left", 1119 "outside_flower_shop_right", 1120 ] 1121 1122 1123class SelectBridgeSubgoal(AnyRegionMatchSubGoal): 1124 NAME = "selected_bridge" 1125 _NAMED_REGIONS = ["dialogue_box_bottom"] 1126 _TARGET_NAMES = ["select_bridge"] 1127 1128class GetBridgeEstimateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1129 REQUIRED_PARSER = BaseHarvestMoonStateParser 1130 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1131 _TERMINATION_TARGET_NAME = "bridge_estimate" 1132 1133 1134class RestaurantEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1135 REQUIRED_PARSER = BaseHarvestMoonStateParser 1136 1137 _TERMINATION_NAMED_REGION = "screen_top_half" 1138 _TERMINATION_TARGET_NAME = "in_restaurant" 1139 1140class OutsideRestaurant2Subgoal(AnyRegionMatchSubGoal): 1141 NAME = "outside_restaurant" 1142 _NAMED_REGIONS = [ 1143 "restaurant_location", 1144 "restaurant_location", 1145 "restaurant_location", 1146 ] 1147 _TARGET_NAMES = [ 1148 "outside_restaurant_up", 1149 "outside_restaurant_left", 1150 "outside_restaurant_right", 1151 ] 1152 1153class BuyLunchSetTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1154 REQUIRED_PARSER = BaseHarvestMoonStateParser 1155 1156 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1157 _TERMINATION_TARGET_NAME = "bought_lunch_set" 1158 1159class SelectLunchSetSubgoal(AnyRegionMatchSubGoal): 1160 NAME = "selected_lunch_set" 1161 _NAMED_REGIONS = [ 1162 "screen_bottom_half", 1163 ] 1164 _TARGET_NAMES = [ 1165 "select_lunch_set", 1166 ] 1167 1168class BuyLunchSetOptionSubgoal(AnyRegionMatchSubGoal): 1169 NAME = "buy_lunch_set_option" 1170 _NAMED_REGIONS = [ 1171 "screen_bottom_half", 1172 ] 1173 _TARGET_NAMES = [ 1174 "option_to_buy_lunch_set", 1175 ] 1176 1177class BuyBeverageSetTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1178 REQUIRED_PARSER = BaseHarvestMoonStateParser 1179 1180 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1181 _TERMINATION_TARGET_NAME = "bought_beverage_set" 1182 1183class SelectBeverageSetSubgoal(AnyRegionMatchSubGoal): 1184 NAME = "selected_beverage_set" 1185 _NAMED_REGIONS = [ 1186 "screen_bottom_half", 1187 ] 1188 _TARGET_NAMES = [ 1189 "select_beverage_set", 1190 ] 1191 1192class BuyBeverageSetOptionSubgoal(AnyRegionMatchSubGoal): 1193 NAME = "buy_beverage_set_option" 1194 _NAMED_REGIONS = [ 1195 "screen_bottom_half", 1196 ] 1197 _TARGET_NAMES = [ 1198 "option_to_buy_beverage_set", 1199 ] 1200 1201class BuyTodaysSpecialTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1202 REQUIRED_PARSER = BaseHarvestMoonStateParser 1203 1204 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1205 _TERMINATION_TARGET_NAME = "bought_todays_special" 1206 1207class SelectTodaysSpecialSubgoal(AnyRegionMatchSubGoal): 1208 NAME = "selected_todays_special" 1209 _NAMED_REGIONS = [ 1210 "screen_bottom_half", 1211 ] 1212 _TARGET_NAMES = [ 1213 "select_todays_special", 1214 ] 1215 1216class BuyTodaysSpecialOptionSubgoal(AnyRegionMatchSubGoal): 1217 NAME = "buy_todays_special_option" 1218 _NAMED_REGIONS = [ 1219 "screen_bottom_half", 1220 ] 1221 _TARGET_NAMES = [ 1222 "option_to_buy_todays_special", 1223 ] 1224 1225# TO DO 1226class ReadNoticeBoardTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1227 REQUIRED_PARSER = BaseHarvestMoonStateParser 1228 1229 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1230 _TERMINATION_TARGET_NAME = "reading_notice_board" 1231 1232class NextToNoticeBoardSubgoal(AnyRegionMatchSubGoal): 1233 NAME = "next_to_notice_board" 1234 _NAMED_REGIONS = [ 1235 "item_notice_board_above", 1236 "item_notice_board_left", 1237 "item_notice_board_right", 1238 ] 1239 _TARGET_NAMES = [ 1240 "next_to_notice_board_down", 1241 "next_to_notice_board_right", 1242 "next_to_notice_board_left", 1243 ] 1244 1245class ReadVillageSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1246 REQUIRED_PARSER = BaseHarvestMoonStateParser 1247 1248 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1249 _TERMINATION_TARGET_NAME = "reading_village_sign" 1250 1251class NextToVillageSignSubgoal(AnyRegionMatchSubGoal): 1252 NAME = "next_to_village_sign" 1253 _NAMED_REGIONS = [ 1254 "item_village_sign_above", 1255 "item_village_sign_left", 1256 "item_village_sign_right", 1257 ] 1258 _TARGET_NAMES = [ 1259 "next_to_village_sign_down", 1260 "next_to_village_sign_right", 1261 "next_to_village_sign_left", 1262 ] 1263 1264class ReadFarmSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1265 REQUIRED_PARSER = BaseHarvestMoonStateParser 1266 1267 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1268 _TERMINATION_TARGET_NAME = "reading_farm_sign" 1269 1270class NextToFarmSignSubgoal(AnyRegionMatchSubGoal): 1271 NAME = "next_to_farm_sign" 1272 _NAMED_REGIONS = [ 1273 "item_farm_sign_above", 1274 "item_farm_sign_left", 1275 "item_farm_sign_right", 1276 ] 1277 _TARGET_NAMES = [ 1278 "next_to_farm_sign_down", 1279 "next_to_farm_sign_right", 1280 "next_to_farm_sign_left", 1281 ] 1282 1283class ReadSecretGardenSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1284 REQUIRED_PARSER = BaseHarvestMoonStateParser 1285 1286 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1287 _TERMINATION_TARGET_NAME = "reading_secret_garden_sign" 1288 1289class NextToSecretGardenSignSubgoal(AnyRegionMatchSubGoal): 1290 NAME = "next_to_secret_garden_sign" 1291 _NAMED_REGIONS = [ 1292 "item_secret_garden_sign_above", 1293 "item_secret_garden_sign_right", 1294 "item_secret_garden_sign_left", 1295 ] 1296 _TARGET_NAMES = [ 1297 "next_to_secret_garden_sign_down", 1298 "next_to_secret_garden_sign_left", 1299 "next_to_secret_garden_sign_right", 1300 ] 1301 1302class ReadCropFieldSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1303 REQUIRED_PARSER = BaseHarvestMoonStateParser 1304 1305 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1306 _TERMINATION_TARGET_NAME = "reading_crop_field_sign" 1307 1308class NextToCropFieldSignSubgoal(AnyRegionMatchSubGoal): 1309 NAME = "next_to_crop_field_sign" 1310 _NAMED_REGIONS = [ 1311 "item_crop_field_sign_above", 1312 ] 1313 _TARGET_NAMES = [ 1314 "next_to_crop_field_sign_down", 1315 ] 1316 1317class NextToDiarySubgoal(AnyRegionMatchSubGoal): 1318 NAME = "next_to_diary" 1319 _NAMED_REGIONS = [ 1320 "item_diary", 1321 ] 1322 _TARGET_NAMES = [ 1323 "next_to_diary", 1324 ] 1325 1326class DiaryOptionSubgoal(AnyRegionMatchSubGoal): 1327 NAME = "diary_sleep_option" 1328 _NAMED_REGIONS = [ 1329 "dialogue_box_bottom", 1330 ] 1331 _TARGET_NAMES = [ 1332 "option_to_diary_sleep", 1333 ] 1334 1335 1336class OpenMenuTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1337 REQUIRED_PARSER = BaseHarvestMoonStateParser 1338 1339 _TERMINATION_NAMED_REGION = "screen" 1340 _TERMINATION_TARGET_NAME = "menu_open" 1341 1342# HM2 equip tool tasks 1343class EmptyHandsSelectedSubgoal(AnyRegionMatchSubGoal): 1344 NAME = "empty_hands_selected" 1345 _NAMED_REGIONS = ["equipment_region_4"] 1346 _TARGET_NAMES = ["empty_hands_selected"] 1347 1348class ReadyToPickSickleSubgoal(AnyRegionMatchSubGoal): 1349 NAME = "ready_to_pick_sickle" 1350 _NAMED_REGIONS = ["top_left_label"] 1351 _TARGET_NAMES = ["ready_to_pick_sickle"] 1352 1353class EquipSickleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1354 REQUIRED_PARSER = BaseHarvestMoonStateParser 1355 _TERMINATION_NAMED_REGION = "equipment_region_4" 1356 _TERMINATION_TARGET_NAME = "sickle_equipped" 1357 1358class ReadyToPickHammerSubgoal(AnyRegionMatchSubGoal): 1359 NAME = "ready_to_pick_hammer" 1360 _NAMED_REGIONS = ["top_left_label"] 1361 _TARGET_NAMES = ["ready_to_pick_hammer"] 1362 1363class EquipHammerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1364 REQUIRED_PARSER = BaseHarvestMoonStateParser 1365 _TERMINATION_NAMED_REGION = "equipment_region_4" 1366 _TERMINATION_TARGET_NAME = "hammer_equipped" 1367 1368class ReadyToPickFishingRodSubgoal(AnyRegionMatchSubGoal): 1369 NAME = "ready_to_pick_fishing_rod" 1370 _NAMED_REGIONS = ["top_left_label"] 1371 _TARGET_NAMES = ["ready_to_pick_fishing_rod"] 1372 1373class EquipFishingRodTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1374 REQUIRED_PARSER = BaseHarvestMoonStateParser 1375 _TERMINATION_NAMED_REGION = "equipment_region_4" 1376 _TERMINATION_TARGET_NAME = "fishing_rod_equipped" 1377 1378class AxeSelected2Subgoal(AnyRegionMatchSubGoal): 1379 NAME = "axe_selected_2" 1380 _NAMED_REGIONS = ["equipment_region_2"] 1381 _TARGET_NAMES = ["ax_selected_2"] 1382 1383class ReadyToPickNetSubgoal(AnyRegionMatchSubGoal): 1384 NAME = "ready_to_pick_net" 1385 _NAMED_REGIONS = ["top_left_label"] 1386 _TARGET_NAMES = ["ready_to_pick_net"] 1387 1388class EquipNetReplacingAxTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1389 REQUIRED_PARSER = BaseHarvestMoonStateParser 1390 _TERMINATION_NAMED_REGION = "equipment_region_2" 1391 _TERMINATION_TARGET_NAME = "net_equipped" 1392 1393class ReadyToPickRosemarySeedsSubgoal(AnyRegionMatchSubGoal): 1394 NAME = "ready_to_pick_rosemary_seeds" 1395 _NAMED_REGIONS = ["top_left_label"] 1396 _TARGET_NAMES = ["ready_to_pick_rosemary_seeds"] 1397 1398class EquipRosemarySeedsReplacingAxTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1399 REQUIRED_PARSER = BaseHarvestMoonStateParser 1400 _TERMINATION_NAMED_REGION = "equipment_region_2" 1401 _TERMINATION_TARGET_NAME = "rosemary_seeds_equipped" 1402 1403class SprinklerSelected1Subgoal(AnyRegionMatchSubGoal): 1404 NAME = "sprinkler_selected_1" 1405 _NAMED_REGIONS = ["equipment_region_1"] 1406 _TARGET_NAMES = ["sprinkler_selected_1"] 1407 1408class EquipSickleReplacingSprinklerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1409 REQUIRED_PARSER = BaseHarvestMoonStateParser 1410 _TERMINATION_NAMED_REGION = "equipment_region_1" 1411 _TERMINATION_TARGET_NAME = "sickle_equipped_1" 1412 1413class HoeSelected3Subgoal(AnyRegionMatchSubGoal): 1414 NAME = "hoe_selected_3" 1415 _NAMED_REGIONS = ["equipment_region_3"] 1416 _TARGET_NAMES = ["hoe_selected_3"] 1417 1418class EquipNetReplacingHoeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1419 REQUIRED_PARSER = BaseHarvestMoonStateParser 1420 _TERMINATION_NAMED_REGION = "equipment_region_3" 1421 _TERMINATION_TARGET_NAME = "net_equipped_3" 1422 1423# HM1 pick up egg task 1424class NextToEggSubgoal(AnyRegionMatchSubGoal): 1425 NAME = "next_to_egg" 1426 _NAMED_REGIONS = ["item_egg_left", "item_egg_above", "item_egg_right"] 1427 _TARGET_NAMES = ["next_to_egg_right", "next_to_egg_down", "next_to_egg_left"] 1428 1429# HM1 hatch egg task 1430class HatchEggTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1431 REQUIRED_PARSER = BaseHarvestMoonStateParser 1432 _TERMINATION_NAMED_REGION = "item_hatching_box" 1433 _TERMINATION_TARGET_NAME = "dropped_egg_into_hatching_box" 1434 1435# HM1 break rock task 1436class NextToRockFromLeftSubgoal(AnyRegionMatchSubGoal): 1437 NAME = "next_to_rock_from_left" 1438 _NAMED_REGIONS = ["item_rock_left"] 1439 _TARGET_NAMES = ["next_to_rock_right"] 1440 1441class BreakRockTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1442 REQUIRED_PARSER = BaseHarvestMoonStateParser 1443 _TERMINATION_NAMED_REGION = "item_rock_left" 1444 _TERMINATION_TARGET_NAME = "rock_cleared" 1445 1446class NextToRightmostRockAboveSubgoal(AnyRegionMatchSubGoal): 1447 NAME = "next_to_rightmost_rock_above" 1448 _NAMED_REGIONS = ["item_rightmost_rock_above"] 1449 _TARGET_NAMES = ["next_to_rightmost_rock_down"] 1450 1451class BreakRightmostRockTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1452 REQUIRED_PARSER = BaseHarvestMoonStateParser 1453 _TERMINATION_NAMED_REGION = "item_rightmost_rock_above" 1454 _TERMINATION_TARGET_NAME = "rightmost_rock_cleared" 1455 1456# HM1 weed removal tasks 1457class NextToTopLeftWeedFromRightSubgoal(AnyRegionMatchSubGoal): 1458 NAME = "next_to_top_left_weed" 1459 _NAMED_REGIONS = ["item_top_left_weed"] 1460 _TARGET_NAMES = ["next_to_top_left_weed_up"] 1461 1462class RemoveTopLeftWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1463 REQUIRED_PARSER = BaseHarvestMoonStateParser 1464 _TERMINATION_NAMED_REGION = "item_top_left_weed" 1465 _TERMINATION_TARGET_NAME = "top_left_weed_removed" 1466 1467class CutTopLeftWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1468 REQUIRED_PARSER = BaseHarvestMoonStateParser 1469 _TERMINATION_NAMED_REGION = "item_top_left_weed" 1470 _TERMINATION_TARGET_NAME = "top_left_weed_cut" 1471 1472class NextToLowestWeedFromAboveSubgoal(AnyRegionMatchSubGoal): 1473 NAME = "next_to_lowest_weed_from_above" 1474 _NAMED_REGIONS = ["item_weed_above"] 1475 _TARGET_NAMES = ["next_to_lowest_weed_down"] 1476 1477class RemoveLowestWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1478 REQUIRED_PARSER = BaseHarvestMoonStateParser 1479 _TERMINATION_NAMED_REGION = "item_weed_above" 1480 _TERMINATION_TARGET_NAME = "lowest_weed_removed" 1481 1482class CutLowestWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1483 REQUIRED_PARSER = BaseHarvestMoonStateParser 1484 _TERMINATION_NAMED_REGION = "item_weed_above" 1485 _TERMINATION_TARGET_NAME = "lowest_weed_cut" 1486 1487# HM1 harvest center grassline task 1488class NextToGrasslandFromLeftSubgoal(AnyRegionMatchSubGoal): 1489 NAME = "next_to_grassland_right" 1490 _NAMED_REGIONS = ["item_grassland_right"] 1491 _TARGET_NAMES = ["next_to_grassland_left"] 1492 1493class HarvestCenterGrasslineTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1494 _OR_PAIRS = [ 1495 ("item_center_grassline", "center_grass_harvested_1"), 1496 ("item_center_grassline", "center_grass_harvested_2"), 1497 ] 1498 1499# HM1 restore fence task 1500class PickedUpBrokenFenceSubgoal(AnyRegionMatchSubGoal): 1501 NAME = "picked_up_broken_fence" 1502 _NAMED_REGIONS = [ 1503 "item_broken_fence_field", 1504 "item_broken_fence_field", 1505 "item_broken_fence_field", 1506 "item_broken_fence_field", 1507 ] 1508 _TARGET_NAMES = [ 1509 "picked_up_broken_fence_up", 1510 "picked_up_broken_fence_down", 1511 "picked_up_broken_fence_left", 1512 "picked_up_broken_fence_right", 1513 ] 1514 1515class RestoreFenceTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1516 _OR_PAIRS = [ 1517 ("item_fence_field", "restored_fence"), 1518 ] 1519 1520# HM1 harvest turnip task 1521class NextToCenterTurnipSubgoal(AnyRegionMatchSubGoal): 1522 NAME = "next_to_center_turnip" 1523 _NAMED_REGIONS = ["item_turnip_field", "item_turnip_field"] 1524 _TARGET_NAMES = ["next_to_center_turnip_down_1", "next_to_center_turnip_down_2"] 1525 1526class HarvestCenterTurnipTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1527 _OR_PAIRS = [ 1528 ("item_turnip_field", "center_turnip_harvested_1"), 1529 ("item_turnip_field", "center_turnip_harvested_2"), 1530 ] 1531 1532class NextToCenterTurnipLeftSubgoal(AnyRegionMatchSubGoal): 1533 NAME = "next_to_center_turnip_left" 1534 _NAMED_REGIONS = ["item_turnip_field_water", "item_turnip_field_water"] 1535 _TARGET_NAMES = ["next_to_center_turnip_left_1", "next_to_center_turnip_left_2"] 1536 1537class WaterCenterTurnipTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1538 _OR_PAIRS = [ 1539 ("item_turnip_field_water", "center_turnip_watered_1"), 1540 ("item_turnip_field_water", "center_turnip_watered_2"), 1541 ] 1542 1543# HM2 harvest eggplant task 1544class NextToCenterEggplantSubgoal(AnyRegionMatchSubGoal): 1545 NAME = "next_to_center_eggplant" 1546 _NAMED_REGIONS = ["item_eggplant_field", "item_eggplant_field"] 1547 _TARGET_NAMES = ["next_to_center_eggplant_up_1", "next_to_center_eggplant_up_2"] 1548 1549class HarvestCenterEggplantTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1550 _OR_PAIRS = [ 1551 ("item_eggplant_field", "center_eggplant_harvested_1"), 1552 ("item_eggplant_field", "center_eggplant_harvested_2"), 1553 ] 1554 1555class NextToCenterPotatoSubgoal(AnyRegionMatchSubGoal): 1556 NAME = "next_to_center_potato" 1557 _NAMED_REGIONS = ["item_potato_field", "item_potato_field"] 1558 _TARGET_NAMES = ["next_to_center_potato_up_1", "next_to_center_potato_up_2"] 1559 1560class WaterCenterPotatoTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1561 _OR_PAIRS = [ 1562 ("item_potato_field", "center_potato_watered_1"), 1563 ("item_potato_field", "center_potato_watered_2"), 1564 ] 1565 1566class NextToCenterPotatoBelowSubgoal(AnyRegionMatchSubGoal): 1567 NAME = "next_to_center_potato_below" 1568 _NAMED_REGIONS = ["item_potato_field", "item_potato_field"] 1569 _TARGET_NAMES = ["next_to_center_potato_below_up_1", "next_to_center_potato_below_up_2"] 1570 1571class HarvestCenterPotatoTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1572 _OR_PAIRS = [ 1573 ("item_potato_field", "center_potato_harvested_1"), 1574 ("item_potato_field", "center_potato_harvested_2"), 1575 ] 1576 1577class NextToCenterAsparagusSubgoal(AnyRegionMatchSubGoal): 1578 NAME = "next_to_center_asparagus" 1579 _NAMED_REGIONS = ["item_asparagus_field", "item_asparagus_field"] 1580 _TARGET_NAMES = ["next_to_center_asparagus_right_1", "next_to_center_asparagus_right_2"] 1581 1582class WaterCenterAsparagusTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1583 _OR_PAIRS = [ 1584 ("item_asparagus_field", "center_asparagus_watered_1"), 1585 ("item_asparagus_field", "center_asparagus_watered_2"), 1586 ] 1587 1588# HM2 water corn field task 1589class AtCornCenterSubgoal(AnyRegionMatchSubGoal): 1590 NAME = "at_corn_center" 1591 _NAMED_REGIONS = ["item_corn_field", "item_corn_field"] 1592 _TARGET_NAMES = ["at_corn_center_1", "at_corn_center_2"] 1593 1594class WaterCornFieldTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1595 _OR_PAIRS = [ 1596 ("item_corn_field", "corn_field_watered_1"), 1597 ("item_corn_field", "corn_field_watered_2"), 1598 ] 1599 1600# HM2 water cabbage field task 1601class AtCabbageCenterSubgoal(AnyRegionMatchSubGoal): 1602 NAME = "at_cabbage_center" 1603 _NAMED_REGIONS = ["item_cabbage_field", "item_cabbage_field"] 1604 _TARGET_NAMES = ["at_cabbage_center_1", "at_cabbage_center_2"] 1605 1606class WaterCabbageFieldTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1607 _OR_PAIRS = [ 1608 ("item_cabbage_field", "cabbage_field_watered_1"), 1609 ("item_cabbage_field", "cabbage_field_watered_2"), 1610 ] 1611 1612# HM2 cut center corn task 1613class NextToCenterCornSubgoal(AnyRegionMatchSubGoal): 1614 NAME = "next_to_center_corn" 1615 _NAMED_REGIONS = ["item_center_corn_above", "item_center_corn_above"] 1616 _TARGET_NAMES = ["next_to_center_corn_down_1", "next_to_center_corn_down_2"] 1617 1618class CutCenterCornTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1619 _OR_PAIRS = [ 1620 ("item_center_corn_above", "center_corn_cut_1"), 1621 ("item_center_corn_above", "center_corn_cut_2"), 1622 ] 1623 1624class NextToCenterCarrotSubgoal(AnyRegionMatchSubGoal): 1625 NAME = "next_to_center_carrot" 1626 _NAMED_REGIONS = ["item_carrot_field", "item_carrot_field"] 1627 _TARGET_NAMES = ["next_to_center_carrot_up_1", "next_to_center_carrot_up_2"] 1628 1629class HarvestCenterCarrotTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1630 _OR_PAIRS = [ 1631 ("item_carrot_field", "center_carrot_harvested_1"), 1632 ("item_carrot_field", "center_carrot_harvested_2"), 1633 ] 1634 1635# HM2 ship eggplant task 1636class NextToShippingBoxSubgoal(AnyRegionMatchSubGoal): 1637 NAME = "next_to_shipping_box" 1638 _NAMED_REGIONS = ["item_next_to_shipping_box"] 1639 _TARGET_NAMES = ["next_to_shipping_box_up"] 1640 1641class ShipEggplantTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1642 REQUIRED_PARSER = BaseHarvestMoonStateParser 1643 _TERMINATION_NAMED_REGION = "item_shipping_box_field" 1644 _TERMINATION_TARGET_NAME = "drop_eggplant_into_shipping_box" 1645 1646# HM2 cherry cup race task 1647class AtTheStartLineSubgoal(AnyRegionMatchSubGoal): 1648 NAME = "at_the_start_line" 1649 _NAMED_REGIONS = ["item_start_line"] 1650 _TARGET_NAMES = ["at_the_start_line"] 1651 1652class Cross500mLineTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1653 REQUIRED_PARSER = BaseHarvestMoonStateParser 1654 _TERMINATION_NAMED_REGION = "item_distance_markers" 1655 _TERMINATION_TARGET_NAME = "crossed_500m_line" 1656 1657class Cross1000mLineTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1658 REQUIRED_PARSER = BaseHarvestMoonStateParser 1659 _TERMINATION_NAMED_REGION = "item_distance_markers" 1660 _TERMINATION_TARGET_NAME = "crossed_1000m_line" 1661 1662# HM2 billboard article tasks 1663class ComputersArticleSelectedSubgoal(AnyRegionMatchSubGoal): 1664 NAME = "computers_article_selected" 1665 _NAMED_REGIONS = ["dialogue_box_bottom"] 1666 _TARGET_NAMES = ["computers_article_selected"] 1667 1668class ReadComputersArticleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1669 REQUIRED_PARSER = BaseHarvestMoonStateParser 1670 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1671 _TERMINATION_TARGET_NAME = "reading_computers_article" 1672 1673class BouldersArticleSelectedSubgoal(AnyRegionMatchSubGoal): 1674 NAME = "boulders_article_selected" 1675 _NAMED_REGIONS = ["dialogue_box_bottom"] 1676 _TARGET_NAMES = ["boulders_article_selected"] 1677 1678class ReadBouldersArticleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1679 REQUIRED_PARSER = BaseHarvestMoonStateParser 1680 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1681 _TERMINATION_TARGET_NAME = "reading_boulders_article" 1682 1683class CropsArticleSelectedSubgoal(AnyRegionMatchSubGoal): 1684 NAME = "selling_crops_article_selected" 1685 _NAMED_REGIONS = ["dialogue_box_bottom"] 1686 _TARGET_NAMES = ["crops_article_selected"] 1687 1688class ReadCropsArticleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1689 REQUIRED_PARSER = BaseHarvestMoonStateParser 1690 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1691 _TERMINATION_TARGET_NAME = "reading_crops_article" 1692 1693# HM2 weed tasks 1694class NextToLeftmostWeedSubgoal(AnyRegionMatchSubGoal): 1695 NAME = "next_to_leftmost_weed" 1696 _NAMED_REGIONS = [ 1697 "item_leftmost_weed_right", 1698 "item_leftmost_weed_above", 1699 ] 1700 _TARGET_NAMES = [ 1701 "next_to_leftmost_weed_left", 1702 "next_to_leftmost_weed_down", 1703 ] 1704 1705class RemoveLeftmostWeedTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1706 _OR_PAIRS = [ 1707 ("item_leftmost_weed_right", "leftmost_weed_removed_left"), 1708 ("item_leftmost_weed_above", "leftmost_weed_removed_down"), 1709 ] 1710 1711# HM2 pick berry task 1712class NextToBerrySubgoal(AnyRegionMatchSubGoal): 1713 NAME = "next_to_berry" 1714 _NAMED_REGIONS = [ 1715 "item_berry_left", 1716 ] 1717 _TARGET_NAMES = [ 1718 "next_to_berry_right", 1719 ] 1720 1721class PickBerryTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1722 _OR_PAIRS = [ 1723 ("item_berry_left", "berry_picked_right"), 1724 ] 1725 1726class NextToBerryAboveSubgoal(AnyRegionMatchSubGoal): 1727 NAME = "next_to_berry_above" 1728 _NAMED_REGIONS = [ 1729 "item_berry_above", 1730 "item_berry_above", 1731 ] 1732 _TARGET_NAMES = [ 1733 "next_to_berry_down_1", 1734 "next_to_berry_down_2", 1735 ] 1736 1737class PickBerryAboveTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1738 _OR_PAIRS = [ 1739 ("item_berry_above", "berry_picked_above_1"), 1740 ("item_berry_above", "berry_picked_above_2"), 1741 ] 1742 1743# HM2 speak to girl tasks 1744class NextToBlueHairGirl2Subgoal(AnyRegionMatchSubGoal): 1745 NAME = "next_to_blue_hair_girl" 1746 _NAMED_REGIONS = [ 1747 "npc_blue_hair_girl_left", 1748 "npc_blue_hair_girl_below", 1749 "npc_blue_hair_girl_right", 1750 ] 1751 _TARGET_NAMES = [ 1752 "next_to_blue_hair_girl_right", 1753 "next_to_blue_hair_girl_up", 1754 "next_to_blue_hair_girl_left", 1755 ] 1756 1757class SpeakToBlueHairGirl2TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1758 REQUIRED_PARSER = BaseHarvestMoonStateParser 1759 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1760 _TERMINATION_TARGET_NAME = "speaking_to_blue_hair_girl" 1761 1762class NextToPurpleHairGirlSubgoal(AnyRegionMatchSubGoal): 1763 NAME = "next_to_purple_hair_girl" 1764 _NAMED_REGIONS = [ 1765 "npc_purple_hair_girl_left", 1766 "npc_purple_hair_girl_below", 1767 ] 1768 _TARGET_NAMES = [ 1769 "next_to_purple_hair_girl_right", 1770 "next_to_purple_hair_girl_up", 1771 ] 1772 1773class SpeakToPurpleHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1774 REQUIRED_PARSER = BaseHarvestMoonStateParser 1775 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1776 _TERMINATION_TARGET_NAME = "speaking_to_purple_hair_girl" 1777 1778class NextToBlondeGirlSubgoal(AnyRegionMatchSubGoal): 1779 NAME = "next_to_blonde_girl" 1780 _NAMED_REGIONS = [ 1781 "npc_blonde_girl_right", 1782 "npc_blonde_girl_above", 1783 ] 1784 _TARGET_NAMES = [ 1785 "next_to_blonde_girl_left", 1786 "next_to_blonde_girl_down", 1787 ] 1788 1789class SpeakToBlondeGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1790 REQUIRED_PARSER = BaseHarvestMoonStateParser 1791 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1792 _TERMINATION_TARGET_NAME = "speaking_to_blonde_girl" 1793 1794# HM2 hatch egg task 1795class HarvestMoon2NextToHatchingBoxSubgoal(AnyRegionMatchSubGoal): 1796 NAME = "next_to_hatching_box" 1797 _NAMED_REGIONS = ["item_next_to_hatching_box"] 1798 _TARGET_NAMES = ["next_to_hatching_box"] 1799 1800class HarvestMoon2HatchEggTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1801 REQUIRED_PARSER = BaseHarvestMoonStateParser 1802 _TERMINATION_NAMED_REGION = "item_hatching_box" 1803 _TERMINATION_TARGET_NAME = "dropped_egg_into_hatching_box" 1804 1805## HM3 1806class NextToSecretGardenSign3Subgoal(AnyRegionMatchSubGoal): 1807 NAME = "next_to_secret_garden_sign" 1808 _NAMED_REGIONS = [ 1809 "item_secret_garden_sign_above", 1810 "item_secret_garden_sign_right", 1811 ] 1812 _TARGET_NAMES = [ 1813 "next_to_secret_garden_sign_down", 1814 "next_to_secret_garden_sign_left", 1815 ] 1816 1817class BuyPotatoSeeds3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1818 REQUIRED_PARSER = BaseHarvestMoonStateParser 1819 1820 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1821 _TERMINATION_TARGET_NAME = "select_potato_seeds" 1822 1823class NextToPotatoSeeds3Subgoal(AnyRegionMatchSubGoal): 1824 NAME = "next_to_potato_seeds" 1825 _NAMED_REGIONS = ["item_potato_seeds_above", "item_potato_seeds_below"] 1826 _TARGET_NAMES = ["next_to_potato_seeds_down", "next_to_potato_seeds_up"] 1827 1828class ChooseTea3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1829 REQUIRED_PARSER = BaseHarvestMoonStateParser 1830 1831 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1832 _TERMINATION_TARGET_NAME = "select_tea" 1833 1834class NextToTea3Subgoal(AnyRegionMatchSubGoal): 1835 NAME = "next_to_tea" 1836 _NAMED_REGIONS = ["item_tea_above", "item_tea_below"] 1837 _TARGET_NAMES = ["next_to_tea_down", "next_to_tea_up"] 1838 1839class ChooseAsparagusSeedsTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1840 REQUIRED_PARSER = BaseHarvestMoonStateParser 1841 1842 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1843 _TERMINATION_TARGET_NAME = "select_asparagus_seeds" 1844 1845class NextToAsparagusSeeds3Subgoal(AnyRegionMatchSubGoal): 1846 NAME = "next_to_asparagus_seeds" 1847 _NAMED_REGIONS = ["item_asparagus_seeds_above", "item_asparagus_seeds_below"] 1848 _TARGET_NAMES = ["next_to_asparagus_seeds_down", "next_to_asparagus_seeds_up"] 1849 1850class NextToTurnipSeeds3Subgoal(AnyRegionMatchSubGoal): 1851 NAME = "next_to_turnip_seeds" 1852 _NAMED_REGIONS = ["item_turnip_seeds_above", "item_turnip_seeds_below"] 1853 _TARGET_NAMES = ["next_to_turnip_seeds_down", "next_to_turnip_seeds_up"] 1854 1855class BuyTurnipSeeds3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1856 REQUIRED_PARSER = BaseHarvestMoonStateParser 1857 1858 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1859 _TERMINATION_TARGET_NAME = "select_turnip_seeds" 1860 1861class ReadMorningMarketSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1862 REQUIRED_PARSER = BaseHarvestMoonStateParser 1863 1864 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1865 _TERMINATION_TARGET_NAME = "reading_morning_market_sign" 1866 1867class NextToMorningMarketSignSubgoal(AnyRegionMatchSubGoal): 1868 NAME = "next_to_morning_market_sign" 1869 _NAMED_REGIONS = [ 1870 "item_morning_market_sign_left", 1871 ] 1872 _TARGET_NAMES = [ 1873 "next_to_morning_market_sign_right", 1874 ] 1875 1876class ReadStorageSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1877 REQUIRED_PARSER = BaseHarvestMoonStateParser 1878 1879 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1880 _TERMINATION_TARGET_NAME = "reading_storage_sign" 1881 1882class NextToStorageSign3Subgoal(AnyRegionMatchSubGoal): 1883 NAME = "next_to_storage_sign" 1884 _NAMED_REGIONS = [ 1885 "item_storage_sign_below", 1886 "item_storage_sign_left", 1887 "item_storage_sign_right", 1888 ] 1889 _TARGET_NAMES = [ 1890 "next_to_storage_sign_up", 1891 "next_to_storage_sign_right", 1892 "next_to_storage_sign_left", 1893 ] 1894 1895class SpeakToKirkVillageTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1896 REQUIRED_PARSER = BaseHarvestMoonStateParser 1897 1898 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1899 _TERMINATION_TARGET_NAME = "speaking_to_kirk_village" 1900 1901class NextToKirkVillageSubgoal(AnyRegionMatchSubGoal): 1902 NAME = "next_to_kirk_village" 1903 _NAMED_REGIONS = [ 1904 "npc_kirk_above", 1905 ] 1906 _TARGET_NAMES = [ 1907 "next_to_kirk_down", 1908 ] 1909 1910class TakeFerryTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1911 REQUIRED_PARSER = BaseHarvestMoonStateParser 1912 1913 _TERMINATION_NAMED_REGION = "entrance" 1914 _TERMINATION_TARGET_NAME = "village_ferry_entrance" 1915 1916class NextToKirkMainlandSubgoal(AnyRegionMatchSubGoal): 1917 NAME = "next_to_kirk_mainland" 1918 _NAMED_REGIONS = [ 1919 "npc_kirk_mainland_right", 1920 "npc_kirk_mainland_below", 1921 ] 1922 _TARGET_NAMES = [ 1923 "next_to_kirk_mainland_left", 1924 "next_to_kirk_mainland_up", 1925 ] 1926 1927class SpeakToJoeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1928 REQUIRED_PARSER = BaseHarvestMoonStateParser 1929 1930 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1931 _TERMINATION_TARGET_NAME = "speaking_to_joe" 1932 1933class NextToJoeSubgoal(AnyRegionMatchSubGoal): 1934 NAME = "next_to_joe" 1935 _NAMED_REGIONS = [ 1936 "npc_joe_left", 1937 ] 1938 _TARGET_NAMES = [ 1939 "next_to_joe_right", 1940 ] 1941 1942class SpeakToLukiaTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1943 REQUIRED_PARSER = BaseHarvestMoonStateParser 1944 1945 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1946 _TERMINATION_TARGET_NAME = "speaking_to_lukia" 1947 1948class NextToLukiaSubgoal(AnyRegionMatchSubGoal): 1949 NAME = "next_to_Lukia" 1950 _NAMED_REGIONS = [ 1951 "npc_lukia_right", 1952 ] 1953 _TARGET_NAMES = [ 1954 "next_to_lukia_left", 1955 ] 1956 1957class SpeakToLucusTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1958 REQUIRED_PARSER = BaseHarvestMoonStateParser 1959 1960 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1961 _TERMINATION_TARGET_NAME = "speaking_to_lucus" 1962 1963class NextToLucusSubgoal(AnyRegionMatchSubGoal): 1964 NAME = "next_to_lucus" 1965 _NAMED_REGIONS = [ 1966 "npc_lucus_above", 1967 "npc_lucus_left", 1968 "npc_lucus_right", 1969 ] 1970 _TARGET_NAMES = [ 1971 "next_to_lucus_down", 1972 "next_to_lucus_right", 1973 "next_to_lucus_left", 1974 ] 1975 1976class SpeakToLylaTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1977 REQUIRED_PARSER = BaseHarvestMoonStateParser 1978 1979 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1980 _TERMINATION_TARGET_NAME = "speaking_to_lyla" 1981 1982class NextToLylaSubgoal(AnyRegionMatchSubGoal): 1983 NAME = "next_to_lyla" 1984 _NAMED_REGIONS = [ 1985 "npc_lyla_right", 1986 ] 1987 _TARGET_NAMES = [ 1988 "next_to_lyla_left", 1989 ] 1990 1991class BuyHorseSaddleTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1992 REQUIRED_PARSER = BaseHarvestMoonStateParser 1993 _OR_PAIRS = [ 1994 ("item_horse_saddle_empty_1", "bought_horse_saddle_1"), 1995 ("item_horse_saddle_empty_2", "bought_horse_saddle_2"), 1996 ] 1997 1998class NextToHorseSaddleSubgoal(AnyRegionMatchSubGoal): 1999 NAME = "next_to_horse_saddle" 2000 _NAMED_REGIONS = ["item_horse_saddle_above", "item_horse_saddle_below"] 2001 _TARGET_NAMES = ["next_to_horse_saddle_down", "next_to_horse_saddle_up"] 2002 2003class BuyFlowerVaseTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2004 REQUIRED_PARSER = BaseHarvestMoonStateParser 2005 _OR_PAIRS = [ 2006 ("item_flower_vase_empty_1", "bought_flower_vase_1"), 2007 ("item_flower_vase_empty_2", "bought_flower_vase_2"), 2008 ] 2009 _ALL_PAIRS = [ 2010 ("dialogue_box_bottom", "bought_from_flower_shop"), 2011 ] 2012 2013class NextToVaseSubgoal(AnyRegionMatchSubGoal): 2014 NAME = "next_to_vase" 2015 _NAMED_REGIONS = ["item_flower_vase_above", "item_flower_vase_below"] 2016 _TARGET_NAMES = ["next_to_vase_down", "next_to_vase_up"] 2017 2018class BuyMealSetTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2019 REQUIRED_PARSER = BaseHarvestMoonStateParser 2020 _OR_PAIRS = [ 2021 ("item_meal_set_empty_1", "bought_meal_set_1"), 2022 ("item_meal_set_empty_2", "bought_meal_set_2"), 2023 ] 2024 2025class SelectMealSetSubgoal(AnyRegionMatchSubGoal): 2026 NAME = "selected_meal_set" 2027 _NAMED_REGIONS = [ 2028 "dialogue_box_bottom", 2029 ] 2030 _TARGET_NAMES = [ 2031 "select_meal_set", 2032 ] 2033 2034class BuyCoffeeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2035 REQUIRED_PARSER = BaseHarvestMoonStateParser 2036 2037 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 2038 _TERMINATION_TARGET_NAME = "select_coffee" 2039 2040class NextToCoffeeSubgoal(AnyRegionMatchSubGoal): 2041 NAME = "next_to_coffee" 2042 _NAMED_REGIONS = [ 2043 "item_coffee_above", 2044 "item_coffee_below", 2045 ] 2046 _TARGET_NAMES = [ 2047 "next_to_coffee_down", 2048 "next_to_coffee_up", 2049 ] 2050 2051class SelectCoffeeSubgoal(AnyRegionMatchSubGoal): 2052 NAME = "selected_coffee" 2053 _NAMED_REGIONS = [ 2054 "dialogue_box_bottom", 2055 ] 2056 _TARGET_NAMES = [ 2057 "select_coffee", 2058 ] 2059 2060class NextToWeed3Subgoal(AnyRegionMatchSubGoal): 2061 NAME = "next_to_weed" 2062 _NAMED_REGIONS = ["item_weed_left"] 2063 _TARGET_NAMES = ["next_to_weed_right"] 2064 2065class RemoveWeed3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2066 REQUIRED_PARSER = BaseHarvestMoonStateParser 2067 _TERMINATION_NAMED_REGION = "item_weed_left" 2068 _TERMINATION_TARGET_NAME = "weed_removed" 2069 2070class NextToCherrySubgoal(AnyRegionMatchSubGoal): 2071 NAME = "next_to_cherry" 2072 _NAMED_REGIONS = ["item_cherry_left"] 2073 _TARGET_NAMES = ["next_to_cherry_right"] 2074 2075class PickUpCherry3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2076 REQUIRED_PARSER = BaseHarvestMoonStateParser 2077 _TERMINATION_NAMED_REGION = "item_cherry_left" 2078 _TERMINATION_TARGET_NAME = "cherry_picked" 2079 2080class SpeakToKateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2081 REQUIRED_PARSER = BaseHarvestMoonStateParser 2082 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 2083 _TERMINATION_TARGET_NAME = "speaking_to_kate" 2084 2085class NextToKateSubgoal(AnyRegionMatchSubGoal): 2086 NAME = "next_to_kate" 2087 _NAMED_REGIONS = [ 2088 "npc_kate_left", 2089 "npc_kate_right", 2090 "npc_kate_below", 2091 ] 2092 _TARGET_NAMES = [ 2093 "next_to_kate_right", 2094 "next_to_kate_left", 2095 "next_to_kate_up", 2096 ] 2097 2098class NextToCenterSPotatoSubgoal(AnyRegionMatchSubGoal): 2099 NAME = "next_to_center_spotato" 2100 _NAMED_REGIONS = ["item_center_spotato_above"] 2101 _TARGET_NAMES = ["next_to_spotato_down"] 2102 2103class WaterCenterSPotato3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2104 _OR_PAIRS = [ 2105 ("item_center_spotato_above", "center_spotato_watered"), 2106 ] 2107 2108class NextToCenterWatermelonSubgoal(AnyRegionMatchSubGoal): 2109 NAME = "next_to_center_watermelon" 2110 _NAMED_REGIONS = ["item_center_watermelon_above"] 2111 _TARGET_NAMES = ["next_to_center_watermelon_down"] 2112 2113class WaterCenterWatermelon3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2114 REQUIRED_PARSER = BaseHarvestMoonStateParser 2115 _TERMINATION_NAMED_REGION = "item_center_watermelon_above" 2116 _TERMINATION_TARGET_NAME = "center_watermelon_watered" 2117 2118class NextToTargetPotatoBelowSubgoal(AnyRegionMatchSubGoal): 2119 NAME = "next_to_target_potato_below" 2120 _NAMED_REGIONS = ["item_target_potato_below"] 2121 _TARGET_NAMES = ["next_to_target_potato_up"] 2122 2123class HarvestTargetPotato3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2124 _OR_PAIRS = [ 2125 ("item_target_potato_below", "target_potato_harvested"), 2126 ] 2127 2128# HM3 harvest center eggplant top 3x3 field task 2129class NextToCenterEggplantTopSubgoal(AnyRegionMatchSubGoal): 2130 NAME = "next_to_center_eggplant" 2131 _NAMED_REGIONS = ["item_center_eggplant_above", "item_center_eggplant_left"] 2132 _TARGET_NAMES = ["next_to_eggplant_down", "next_to_eggplant_right"] 2133 2134class HarvestCenterEggplantTop3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2135 _OR_PAIRS = [ 2136 ("item_center_eggplant_above", "center_eggplant_harvested_down"), 2137 ("item_center_eggplant_left", "center_eggplant_harvested_right"), 2138 ] 2139 2140class NextToBookshelfSubgoal(AnyRegionMatchSubGoal): 2141 NAME = "next_to_bookshelf" 2142 _NAMED_REGIONS = ["item_bookshelf_below"] 2143 _TARGET_NAMES = ["next_to_bookshelf_up"] 2144 2145class ReadAnimalCh2TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2146 REQUIRED_PARSER = BaseHarvestMoonStateParser 2147 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 2148 _TERMINATION_TARGET_NAME = "finish_animal_ch2" 2149 2150# HM3 harvest center turnip task 2151class NextToCenterTurnip3Subgoal(AnyRegionMatchSubGoal): 2152 NAME = "next_to_center_turnip_below" 2153 _NAMED_REGIONS = ["item_center_turnip_below"] 2154 _TARGET_NAMES = ["next_to_center_turnip_up"] 2155 2156class HarvestCenterTurnip3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2157 REQUIRED_PARSER = BaseHarvestMoonStateParser 2158 _TERMINATION_NAMED_REGION = "item_center_turnip_below" 2159 _TERMINATION_TARGET_NAME = "center_turnip_harvested" 2160 2161class NextToSellChicken3Subgoal(AnyRegionMatchSubGoal): 2162 NAME = "next_to_sell_chicken" 2163 _NAMED_REGIONS = ["item_sell_chicken_below", "item_sell_chicken_above"] 2164 _TARGET_NAMES = ["next_to_sell_chicken_up", "next_to_sell_chicken_down"] 2165 2166class SellChicken3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2167 REQUIRED_PARSER = BaseHarvestMoonStateParser 2168 _OR_PAIRS = [ 2169 ("sell_animal_section_1", "selling_animal_1"), 2170 ("sell_animal_section_2", "selling_animal_2"), 2171 ] 2172 _ALL_PAIRS = [ 2173 ("dialogue_box_bottom", "animal_sold"), 2174 ] 2175 2176class NextToBerry3Subgoal(AnyRegionMatchSubGoal): 2177 NAME = "next_to_berry_above" 2178 _NAMED_REGIONS = ["item_berry_above"] 2179 _TARGET_NAMES = ["next_to_berry_down"] 2180 2181class PickBerry3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2182 REQUIRED_PARSER = BaseHarvestMoonStateParser 2183 _TERMINATION_NAMED_REGION = "item_berry_above" 2184 _TERMINATION_TARGET_NAME = "berry_picked_above" 2185 2186class CheckPlayerMoneySubgoal(AnyRegionMatchSubGoal): 2187 NAME = "choose_may" 2188 _NAMED_REGIONS = ["menu_box"] 2189 _TARGET_NAMES = ["choose_may"] 2190 2191class CheckPlayerMoneyTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2192 REQUIRED_PARSER = BaseHarvestMoonStateParser 2193 _TERMINATION_NAMED_REGION = "player_top_left" 2194 _TERMINATION_TARGET_NAME = "display_player_status" 2195 2196class FillCowFodderBlock3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2197 REQUIRED_PARSER = BaseHarvestMoonStateParser 2198 _OR_PAIRS = [ 2199 ("item_right_cow_stall_block", "filled_right_cow_stall_block"), 2200 ("item_cow_stall_block_2", "filled_cow_stall_block_right"), 2201 ] 2202 2203class NextToCowFodderBlock3Subgoal(AnyRegionMatchSubGoal): 2204 NAME = "next_to_rightmost_cow_fodder_block" 2205 _NAMED_REGIONS = ["item_right_cow_stall_block_below", "item_right_cow_stall_block_left"] 2206 _TARGET_NAMES = ["next_to_right_cow_stall_block_up", "next_to_right_cow_stall_block_right"] 2207 2208class FarmEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2209 REQUIRED_PARSER = BaseHarvestMoonStateParser 2210 2211 _TERMINATION_NAMED_REGION = "entrance" 2212 _TERMINATION_TARGET_NAME = "farm_entrance" 2213 2214class NearFarmSubgoal(AnyRegionMatchSubGoal): 2215 NAME = "outside_farm" 2216 _NAMED_REGIONS = [ 2217 "dialogue_box_bottom", 2218 ] 2219 _TARGET_NAMES = [ 2220 "farm_label", 2221 ] 2222 2223class VillageEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2224 REQUIRED_PARSER = BaseHarvestMoonStateParser 2225 _TERMINATION_NAMED_REGION = "top_entrance" 2226 _TERMINATION_TARGET_NAME = "village_entrance" 2227 2228class NearVillageSubgoal(AnyRegionMatchSubGoal): 2229 NAME = "outside_village" 2230 _NAMED_REGIONS = ["dialogue_box_bottom"] 2231 _TARGET_NAMES = ["village_label"] 2232 2233class GrasslandEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2234 REQUIRED_PARSER = BaseHarvestMoonStateParser 2235 _TERMINATION_NAMED_REGION = "entrance" 2236 _TERMINATION_TARGET_NAME = "grassland_entrance" 2237 2238class NearGrasslandSubgoal(AnyRegionMatchSubGoal): 2239 NAME = "outside_grassland" 2240 _NAMED_REGIONS = ["dialogue_box_bottom"] 2241 _TARGET_NAMES = ["grassland_label"] 2242 2243class ForestEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2244 REQUIRED_PARSER = BaseHarvestMoonStateParser 2245 _TERMINATION_NAMED_REGION = "entrance" 2246 _TERMINATION_TARGET_NAME = "forest_entrance" 2247 2248class NearForestSubgoal(AnyRegionMatchSubGoal): 2249 NAME = "outside_forest" 2250 _NAMED_REGIONS = ["dialogue_box_bottom"] 2251 _TARGET_NAMES = ["forest_label"] 2252 2253class CliffEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2254 REQUIRED_PARSER = BaseHarvestMoonStateParser 2255 _TERMINATION_NAMED_REGION = "entrance" 2256 _TERMINATION_TARGET_NAME = "cliff_entrance" 2257 2258class NearCliffSubgoal(AnyRegionMatchSubGoal): 2259 NAME = "outside_cliff" 2260 _NAMED_REGIONS = ["dialogue_box_bottom"] 2261 _TARGET_NAMES = ["cliff_label"] 2262 2263class MountainEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2264 REQUIRED_PARSER = BaseHarvestMoonStateParser 2265 _TERMINATION_NAMED_REGION = "entrance" 2266 _TERMINATION_TARGET_NAME = "mountain_entrance" 2267 2268class NearMountainSubgoal(AnyRegionMatchSubGoal): 2269 NAME = "outside_mountain" 2270 _NAMED_REGIONS = ["dialogue_box_bottom"] 2271 _TARGET_NAMES = ["mountain_label"] 2272 2273class ShoppingMallEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2274 REQUIRED_PARSER = BaseHarvestMoonStateParser 2275 2276 _TERMINATION_NAMED_REGION = "entrance" 2277 _TERMINATION_TARGET_NAME = "shopping_mall_entrance" 2278 2279class NearShoppingMallSubgoal(AnyRegionMatchSubGoal): 2280 NAME = "outside_shopping_mall" 2281 _NAMED_REGIONS = [ 2282 "dialogue_box_bottom", 2283 ] 2284 _TARGET_NAMES = [ 2285 "shopping_mall_label", 2286 ] 2287 2288class ShoppingMallSecondFloorTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2289 REQUIRED_PARSER = BaseHarvestMoonStateParser 2290 _TERMINATION_NAMED_REGION = "entrance" 2291 _TERMINATION_TARGET_NAME = "shopping_mall_second_floor" 2292 2293class NextToStairsSubgoal(AnyRegionMatchSubGoal): 2294 NAME = "next_to_stairs" 2295 _NAMED_REGIONS = ["item_stairs", "item_stairs", "item_stairs"] 2296 _TARGET_NAMES = ["next_to_stairs_1", "next_to_stairs_2", "next_to_stairs_3"] 2297 2298class FarmersUnionEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2299 REQUIRED_PARSER = BaseHarvestMoonStateParser 2300 2301 _TERMINATION_NAMED_REGION = "entrance" 2302 _TERMINATION_TARGET_NAME = "farmers_union_entrance" 2303 2304class NearFarmersUnionSubgoal(AnyRegionMatchSubGoal): 2305 NAME = "outside_farmers_union" 2306 _NAMED_REGIONS = [ 2307 "dialogue_box_bottom", 2308 ] 2309 _TARGET_NAMES = [ 2310 "farmers_union_label", 2311 ] 2312 2313class AquariumEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2314 REQUIRED_PARSER = BaseHarvestMoonStateParser 2315 2316 _TERMINATION_NAMED_REGION = "entrance" 2317 _TERMINATION_TARGET_NAME = "aquarium_entrance" 2318 2319class NearAquariumSubgoal(AnyRegionMatchSubGoal): 2320 NAME = "outside_aquarium" 2321 _NAMED_REGIONS = [ 2322 "dialogue_box_bottom", 2323 ] 2324 _TARGET_NAMES = [ 2325 "aquarium_label", 2326 ] 2327 2328class TheatreEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2329 REQUIRED_PARSER = BaseHarvestMoonStateParser 2330 2331 _TERMINATION_NAMED_REGION = "entrance" 2332 _TERMINATION_TARGET_NAME = "theatre_entrance" 2333 2334class NearTheatreSubgoal(AnyRegionMatchSubGoal): 2335 NAME = "outside_theatre" 2336 _NAMED_REGIONS = [ 2337 "dialogue_box_bottom", 2338 ] 2339 _TARGET_NAMES = [ 2340 "theatre_label", 2341 ] 2342 2343class HotSpringEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2344 REQUIRED_PARSER = BaseHarvestMoonStateParser 2345 2346 _TERMINATION_NAMED_REGION = "entrance" 2347 _TERMINATION_TARGET_NAME = "hot_spring_entrance" 2348 2349class NearHotSpringSubgoal(AnyRegionMatchSubGoal): 2350 NAME = "outside_hot_spring" 2351 _NAMED_REGIONS = [ 2352 "outside_hot_spring", 2353 "outside_hot_spring", 2354 "outside_hot_spring", 2355 ] 2356 _TARGET_NAMES = [ 2357 "outside_hot_spring_left", 2358 "outside_hot_spring_right", 2359 "outside_hot_spring_up", 2360 ] 2361 2362# HM3 hatch egg task 2363class HarvestMoon3NextToHatchingBoxSubgoal(AnyRegionMatchSubGoal): 2364 NAME = "next_to_hatching_box" 2365 _NAMED_REGIONS = ["item_next_to_hatching_box"] 2366 _TARGET_NAMES = ["next_to_hatching_box"] 2367 2368class HarvestMoon3HatchEggTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2369 REQUIRED_PARSER = BaseHarvestMoonStateParser 2370 _TERMINATION_NAMED_REGION = "item_hatching_box" 2371 _TERMINATION_TARGET_NAME = "dropped_egg_into_hatching_box" 2372 2373# HM3 fill chicken fodder subgoals 2374class NextToChickenSilo3Subgoal(AnyRegionMatchSubGoal): 2375 NAME = "next_to_chicken_silo" 2376 _NAMED_REGIONS = [ 2377 "item_chicken_silo_left1", 2378 "item_chicken_silo_left2", 2379 "item_chicken_silo_above", 2380 ] 2381 _TARGET_NAMES = [ 2382 "next_to_chicken_silo_right1", 2383 "next_to_chicken_silo_right2", 2384 "next_to_chicken_silo_down", 2385 ] 2386 2387class PickupChickenFodder3Subgoal(AnyRegionMatchSubGoal): 2388 NAME = "picked_up_chicken_fodder_from_silo" 2389 _NAMED_REGIONS = [ 2390 "item_chicken_silo_left1", 2391 "item_chicken_silo_left2", 2392 "item_chicken_silo_above", 2393 ] 2394 _TARGET_NAMES = [ 2395 "got_fodder_from_chicken_silo_right1", 2396 "got_fodder_from_chicken_silo_right2", 2397 "got_fodder_from_chicken_silo_down", 2398 ] 2399 2400class NextToTopmostChickenStallBlockSubgoal(AnyRegionMatchSubGoal): 2401 NAME = "next_to_topmost_chicken_stall_block_with_fodder" 2402 _NAMED_REGIONS = ["item_next_to_topmost_chicken_stall_block"] 2403 _TARGET_NAMES = ["next_to_topmost_chicken_stall_block"] 2404 2405class FillTopmostChickenStallBlockTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2406 REQUIRED_PARSER = BaseHarvestMoonStateParser 2407 _TERMINATION_NAMED_REGION = "item_topmost_chicken_stall_block" 2408 _TERMINATION_TARGET_NAME = "filled_topmost_chicken_stall_block" 2409 2410class NextToFodderSetSubgoal(AnyRegionMatchSubGoal): 2411 NAME = "next_to_fodder_set" 2412 _NAMED_REGIONS = ["item_fodder_set_below"] 2413 _TARGET_NAMES = ["next_to_fodder_set_up"] 2414 2415class SelectedFodderSetSubgoal(AnyRegionMatchSubGoal): 2416 NAME = "selected_fodder_set" 2417 _NAMED_REGIONS = ["dialogue_box_bottom"] 2418 _TARGET_NAMES = ["selected_fodder_set"] 2419 2420class BuyFodderSet3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2421 _ALL_PAIRS = [("dialogue_box_bottom", "bought_from_farmers_union"), ("item_fodder_set", "picked_fodder_set")] 2422 2423class NextToHorseMedicineSubgoal(AnyRegionMatchSubGoal): 2424 NAME = "next_to_horse_medicine" 2425 _NAMED_REGIONS = ["item_horse_medicine_below"] 2426 _TARGET_NAMES = ["next_to_horse_medicine_up"] 2427 2428class SelectedHorseMedicineSubgoal(AnyRegionMatchSubGoal): 2429 NAME = "selected_horse_medicine" 2430 _NAMED_REGIONS = ["dialogue_box_bottom"] 2431 _TARGET_NAMES = ["selected_horse_medicine"] 2432 2433class BuyHorseMedicine3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2434 _ALL_PAIRS = [("dialogue_box_bottom", "bought_from_farmers_union"), ("item_horse_medicine", "picked_horse_medicine")] 2435 2436# HM1 home expansion estimate task 2437class SelectHomeExpansionSubgoal(AnyRegionMatchSubGoal): 2438 NAME = "selected_home_expansion" 2439 _NAMED_REGIONS = ["dialogue_box_bottom"] 2440 _TARGET_NAMES = ["select_home_expansion"] 2441 2442class GetHomeExpansionEstimateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2443 REQUIRED_PARSER = BaseHarvestMoonStateParser 2444 _TERMINATION_NAMED_REGION = "screen_bottom_half" 2445 _TERMINATION_TARGET_NAME = "home_expansion_estimate"
16class MultiRegionMatchTerminationMetric(TerminationTruncationMetric, ABC): 17 """ 18 Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. 19 OR_PAIRS: list of (region, target) — at least one must match. 20 ALL_PAIRS: list of (region, target) — every one must match. 21 NOT_PAIRS: list of (region, target) — none must match. 22 Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). 23 Any list may be empty, in which case its condition is trivially satisfied. 24 """ 25 26 REQUIRED_PARSER = BaseHarvestMoonStateParser 27 _OR_PAIRS: list = [] 28 _ALL_PAIRS: list = [] 29 _NOT_PAIRS: list = [] 30 31 def determine_terminated(self, current_frame, recent_frames): 32 all_frames = [current_frame] 33 if recent_frames is not None: 34 all_frames = recent_frames 35 for frame in all_frames: 36 or_ok = (not self._OR_PAIRS) or any( 37 self.state_parser.named_region_matches_multi_target(frame, region, target) 38 for region, target in self._OR_PAIRS 39 ) 40 all_ok = all( 41 self.state_parser.named_region_matches_multi_target(frame, region, target) 42 for region, target in self._ALL_PAIRS 43 ) 44 not_ok = not any( 45 self.state_parser.named_region_matches_multi_target(frame, region, target) 46 for region, target in self._NOT_PAIRS 47 ) 48 if or_ok and all_ok and not_ok: 49 return True 50 return False
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
31 def determine_terminated(self, current_frame, recent_frames): 32 all_frames = [current_frame] 33 if recent_frames is not None: 34 all_frames = recent_frames 35 for frame in all_frames: 36 or_ok = (not self._OR_PAIRS) or any( 37 self.state_parser.named_region_matches_multi_target(frame, region, target) 38 for region, target in self._OR_PAIRS 39 ) 40 all_ok = all( 41 self.state_parser.named_region_matches_multi_target(frame, region, target) 42 for region, target in self._ALL_PAIRS 43 ) 44 not_ok = not any( 45 self.state_parser.named_region_matches_multi_target(frame, region, target) 46 for region, target in self._NOT_PAIRS 47 ) 48 if or_ok and all_ok and not_ok: 49 return True 50 return False
Determines whether the environment was terminated.
Parameters
- current_frame: The current frame rendered by the emulator.
- recent_frames: The stack of frames that were rendered during the last action. Shape is [n_frames, height, width, channels]. Can be None if rendering is disabled.
Returns
True if the environment was terminated, False otherwise.
52class PreviousFrameTerminateMetric(TerminationTruncationMetric, ABC): 53 """ 54 Terminates based on what was on screen BEFORE the final action. 55 56 _TERMINATION_NAMED_REGION / _TERMINATION_TARGET_NAME: checked against the 57 last frame of the previous step (i.e. the frame visible before the action). 58 59 _CURRENT_NAMED_REGION / _CURRENT_TARGET_NAME: optional additional check 60 against the current step's frames (e.g. confirming the action had effect). 61 Both conditions must be satisfied when the current fields are set. 62 63 _prev_frame is updated AFTER super().step() so that determine_terminated 64 always sees the frame from the step before the current one. 65 """ 66 REQUIRED_PARSER = BaseHarvestMoonStateParser 67 _TERMINATION_NAMED_REGION: str = None 68 _TERMINATION_TARGET_NAME: str = None 69 _CURRENT_NAMED_REGION: str = None 70 _CURRENT_TARGET_NAME: str = None 71 72 def step(self, current_frame, recent_frames): 73 super().step(current_frame, recent_frames) 74 self._prev_frame = recent_frames[-1] if recent_frames is not None else current_frame 75 76 def determine_terminated(self, current_frame, recent_frames): 77 if not hasattr(self, "_prev_frame"): 78 return False 79 prev_ok = self.state_parser.named_region_matches_multi_target( 80 self._prev_frame, 81 self._TERMINATION_NAMED_REGION, 82 self._TERMINATION_TARGET_NAME, 83 ) 84 if not prev_ok: 85 return False 86 if self._CURRENT_NAMED_REGION is None: 87 return True 88 all_frames = recent_frames if recent_frames is not None else [current_frame] 89 return any( 90 self.state_parser.named_region_matches_multi_target( 91 frame, self._CURRENT_NAMED_REGION, self._CURRENT_TARGET_NAME 92 ) 93 for frame in all_frames 94 )
Terminates based on what was on screen BEFORE the final action.
_TERMINATION_NAMED_REGION / _TERMINATION_TARGET_NAME: checked against the last frame of the previous step (i.e. the frame visible before the action).
_CURRENT_NAMED_REGION / _CURRENT_TARGET_NAME: optional additional check against the current step's frames (e.g. confirming the action had effect). Both conditions must be satisfied when the current fields are set.
_prev_frame is updated AFTER super().step() so that determine_terminated always sees the frame from the step before the current one.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
72 def step(self, current_frame, recent_frames): 73 super().step(current_frame, recent_frames) 74 self._prev_frame = recent_frames[-1] if recent_frames is not None else current_frame
Determines whether the environment was terminated or truncated.
76 def determine_terminated(self, current_frame, recent_frames): 77 if not hasattr(self, "_prev_frame"): 78 return False 79 prev_ok = self.state_parser.named_region_matches_multi_target( 80 self._prev_frame, 81 self._TERMINATION_NAMED_REGION, 82 self._TERMINATION_TARGET_NAME, 83 ) 84 if not prev_ok: 85 return False 86 if self._CURRENT_NAMED_REGION is None: 87 return True 88 all_frames = recent_frames if recent_frames is not None else [current_frame] 89 return any( 90 self.state_parser.named_region_matches_multi_target( 91 frame, self._CURRENT_NAMED_REGION, self._CURRENT_TARGET_NAME 92 ) 93 for frame in all_frames 94 )
Determines whether the environment was terminated.
Parameters
- current_frame: The current frame rendered by the emulator.
- recent_frames: The stack of frames that were rendered during the last action. Shape is [n_frames, height, width, channels]. Can be None if rendering is disabled.
Returns
True if the environment was terminated, False otherwise.
96class ChickenCoopTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 97 REQUIRED_PARSER = BaseHarvestMoonStateParser 98 99 _TERMINATION_NAMED_REGION = "screen_bottom" 100 _TERMINATION_TARGET_NAME = "chicken_coop_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
102class OutsideChickenCoopSubgoal(AnyRegionMatchSubGoal): 103 NAME = "outside_chicken_coop" 104 _NAMED_REGIONS = [ 105 "screen_middle", 106 "screen_middle", 107 "screen_middle", 108 ] 109 _TARGET_NAMES = [ 110 "outside_chicken_coop_left", 111 "outside_chicken_coop_right", 112 "outside_chicken_coop_up", 113 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
115class OutsideChickenCoop2Subgoal(AnyRegionMatchSubGoal): 116 NAME = "outside_chicken_coop" 117 _NAMED_REGIONS = [ 118 "outside_barns", 119 "outside_barns", 120 "outside_barns", 121 ] 122 _TARGET_NAMES = [ 123 "outside_chicken_coop_left", 124 "outside_chicken_coop_right", 125 "outside_chicken_coop_up", 126 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
128class OutsideChickenCoop3Subgoal(AnyRegionMatchSubGoal): 129 NAME = "outside_chicken_coop" 130 _NAMED_REGIONS = [ 131 "outside_chicken_coop", 132 "outside_chicken_coop", 133 "outside_chicken_coop", 134 ] 135 _TARGET_NAMES = [ 136 "outside_chicken_coop_left", 137 "outside_chicken_coop_right", 138 "outside_chicken_coop_up", 139 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
141class CowBarnTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 142 REQUIRED_PARSER = BaseHarvestMoonStateParser 143 144 _TERMINATION_NAMED_REGION = "screen_bottom" 145 _TERMINATION_TARGET_NAME = "cow_barn_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
147class OutsideCowBarnSubgoal(AnyRegionMatchSubGoal): 148 NAME = "outside_cow_barn" 149 _NAMED_REGIONS = [ 150 "screen_middle", 151 "screen_middle", 152 "screen_middle", 153 ] 154 _TARGET_NAMES = [ 155 "outside_cow_barn_left", 156 "outside_cow_barn_right", 157 "outside_cow_barn_up", 158 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
160class OutsideCowBarn2Subgoal(AnyRegionMatchSubGoal): 161 NAME = "outside_cow_barn" 162 _NAMED_REGIONS = [ 163 "outside_barns", 164 "outside_barns", 165 "outside_barns", 166 ] 167 _TARGET_NAMES = [ 168 "outside_cow_barn_left", 169 "outside_cow_barn_right", 170 "outside_cow_barn_up", 171 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
173class StorageTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 174 REQUIRED_PARSER = BaseHarvestMoonStateParser 175 176 _TERMINATION_NAMED_REGION = "screen_bottom" 177 _TERMINATION_TARGET_NAME = "storage_shed_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
179class OutsideStorageSubgoal(AnyRegionMatchSubGoal): 180 NAME = "outside_storage_shed" 181 _NAMED_REGIONS = [ 182 "screen_middle", 183 "screen_middle", 184 "screen_middle", 185 ] 186 _TARGET_NAMES = [ 187 "outside_storage_left", 188 "outside_storage_right", 189 "outside_storage_up", 190 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
192class PickupWaterCanTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 193 REQUIRED_PARSER = BaseHarvestMoonStateParser 194 195 _TERMINATION_NAMED_REGION = "dialogue_box_top" 196 _TERMINATION_TARGET_NAME = "pick_up_watercan"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
198class NextToWaterCanSubgoal(AnyRegionMatchSubGoal): 199 NAME = "next_to_water_can" 200 _NAMED_REGIONS = [ 201 "item_watercan_above", 202 "item_watercan_right", 203 "item_watercan_below", 204 ] 205 _TARGET_NAMES = [ 206 "pickup_watercan_down", 207 "pickup_watercan_left", 208 "pickup_watercan_up", 209 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
211class PickupCowBellTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 212 REQUIRED_PARSER = BaseHarvestMoonStateParser 213 214 _TERMINATION_NAMED_REGION = "dialogue_box_top_mid" 215 _TERMINATION_TARGET_NAME = "pick_up_cowbell"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
217class NextToCowBellSubgoal(AnyRegionMatchSubGoal): 218 NAME = "next_to_cowbell" 219 _NAMED_REGIONS = [ 220 "item_cowbell_above", 221 "item_cowbell_below", 222 ] 223 _TARGET_NAMES = [ 224 "next_to_cowbell_down", 225 "next_to_cowbell_up", 226 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
228class PickupSickleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 229 REQUIRED_PARSER = BaseHarvestMoonStateParser 230 231 _TERMINATION_NAMED_REGION = "dialogue_box_top_mid" 232 _TERMINATION_TARGET_NAME = "pick_up_sickle"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
234class NextToSickleSubgoal(AnyRegionMatchSubGoal): 235 NAME = "next_to_sickle" 236 _NAMED_REGIONS = [ 237 "item_sickle_above", 238 "item_sickle_left", 239 "item_sickle_below", 240 ] 241 _TARGET_NAMES = [ 242 "pickup_sickle_down", 243 "pickup_sickle_right", 244 "pickup_sickle_up", 245 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
247class PickupHoeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 248 REQUIRED_PARSER = BaseHarvestMoonStateParser 249 250 _TERMINATION_NAMED_REGION = "dialogue_box_top_short" 251 _TERMINATION_TARGET_NAME = "pick_up_hoe"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
253class NextToHoeSubgoal(AnyRegionMatchSubGoal): 254 NAME = "next_to_hoe" 255 _NAMED_REGIONS = [ 256 "item_hoe_above", 257 "item_hoe_below", 258 ] 259 _TARGET_NAMES = [ 260 "pickup_hoe_down", 261 "pickup_hoe_up", 262 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
264class PickupHammerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 265 REQUIRED_PARSER = BaseHarvestMoonStateParser 266 267 _TERMINATION_NAMED_REGION = "dialogue_box_top_mid" 268 _TERMINATION_TARGET_NAME = "pick_up_hammer"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
270class NextToHammerSubgoal(AnyRegionMatchSubGoal): 271 NAME = "next_to_hammer" 272 _NAMED_REGIONS = [ 273 "item_hammer_above", 274 "item_hammer_below", 275 ] 276 _TARGET_NAMES = [ 277 "pickup_hammer_down", 278 "pickup_hammer_up", 279 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
281class PickupGrassSeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 282 REQUIRED_PARSER = BaseHarvestMoonStateParser 283 284 _TERMINATION_NAMED_REGION = "dialogue_box_top" 285 _TERMINATION_TARGET_NAME = "pick_up_grass_seed"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
287class NextToGrassSeedSubgoal(AnyRegionMatchSubGoal): 288 NAME = "next_to_grass_seed" 289 _NAMED_REGIONS = [ 290 "item_grass_seed_above", 291 "item_grass_seed_right", 292 "item_grass_seed_below", 293 ] 294 _TARGET_NAMES = [ 295 "pickup_grass_seed_down", 296 "pickup_grass_seed_left", 297 "pickup_grass_seed_up", 298 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
300class GoToSleepTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 301 REQUIRED_PARSER = BaseHarvestMoonStateParser 302 303 _TERMINATION_NAMED_REGION = "item_bed" 304 _TERMINATION_TARGET_NAME = "sleep_in_bed"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
306class SleepOptionSubgoal(AnyRegionMatchSubGoal): 307 NAME = "sleep_option" 308 _NAMED_REGIONS = [ 309 "dialogue_box_bottom", 310 ] 311 _TARGET_NAMES = [ 312 "choose_yes_for_sleep", 313 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
315class FeedSpiritTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 316 REQUIRED_PARSER = BaseHarvestMoonStateParser 317 318 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 319 _TERMINATION_TARGET_NAME = "fed_spirit"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
321class HelpSpiritEarthquakeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 322 REQUIRED_PARSER = BaseHarvestMoonStateParser 323 324 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 325 _TERMINATION_TARGET_NAME = "helped_spirit_earthquake"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
327class NextToSpiritSubgoal(AnyRegionMatchSubGoal): 328 NAME = "next_to_spirit" 329 _NAMED_REGIONS = [ 330 "item_spirit_left", 331 "item_spirit_below", 332 "item_spirit_above", 333 ] 334 _TARGET_NAMES = [ 335 "feed_spirit_right", 336 "feed_spirit_up", 337 "feed_spirit_down", 338 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
340class NextToEarthquakeSpiritSubgoal(AnyRegionMatchSubGoal): 341 NAME = "next_to_spirit_earthquake" 342 _NAMED_REGIONS = [ 343 "item_spirit_left", 344 "item_spirit_below", 345 "item_spirit_above", 346 ] 347 _TARGET_NAMES = [ 348 "help_spirit_earthquake_right", 349 "help_spirit_earthquake_up", 350 "help_spirit_earthquake_down", 351 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
353class WaterTurnipTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 354 REQUIRED_PARSER = BaseHarvestMoonStateParser 355 _OR_PAIRS = [ 356 ("turnip_center", "finish_watering_1"), 357 ("turnip_center", "finish_watering_2"), 358 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
360class NextToTurnipSubgoal(AnyRegionMatchSubGoal): 361 NAME = "next_to_turnip" 362 _NAMED_REGIONS = ["turnip_top", "turnip_top"] 363 _TARGET_NAMES = ["ready_to_water_1", "ready_to_water_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
365class BuyMaterialTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 366 REQUIRED_PARSER = BaseHarvestMoonStateParser 367 368 _TERMINATION_NAMED_REGION = "screen_bottom_half" 369 _TERMINATION_TARGET_NAME = "bought_material"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
371class OutsideCarpenter1Subgoal(AnyRegionMatchSubGoal): 372 NAME = "outside_carpenter" 373 _NAMED_REGIONS = [ 374 "center_sign", 375 ] 376 _TARGET_NAMES = [ 377 "outside_carpenter", 378 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
380class ShopForMaterialSubgoal(AnyRegionMatchSubGoal): 381 NAME = "shop_for_material" 382 _NAMED_REGIONS = [ 383 "screen_top_half", 384 ] 385 _TARGET_NAMES = [ 386 "in_carpenter", 387 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
389class SelectMaterialSubgoal(AnyRegionMatchSubGoal): 390 NAME = "selected_material" 391 _NAMED_REGIONS = [ 392 "dialogue_box_bottom", 393 ] 394 _TARGET_NAMES = [ 395 "select_material", 396 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
398class BuyChickenTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 399 REQUIRED_PARSER = BaseHarvestMoonStateParser 400 401 _TERMINATION_NAMED_REGION = "screen_bottom_half" 402 _TERMINATION_TARGET_NAME = "bought_chicken"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
404class OutsideAnimalShop1Subgoal(AnyRegionMatchSubGoal): 405 NAME = "outside_animal_shop" 406 _NAMED_REGIONS = [ 407 "center_sign", 408 ] 409 _TARGET_NAMES = [ 410 "outside_animal_shop", 411 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
413class ShopForAnimalSubgoal(AnyRegionMatchSubGoal): 414 NAME = "shop_for_animal" 415 _NAMED_REGIONS = [ 416 "screen_top_half", 417 ] 418 _TARGET_NAMES = [ 419 "in_animal_shop", 420 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
422class SelectChickenSubgoal(AnyRegionMatchSubGoal): 423 NAME = "selected_chicken" 424 _NAMED_REGIONS = [ 425 "dialogue_box_bottom", 426 ] 427 _TARGET_NAMES = [ 428 "select_chicken", 429 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
431class SelectCowSubgoal(AnyRegionMatchSubGoal): 432 NAME = "selected_cow" 433 _NAMED_REGIONS = [ 434 "dialogue_box_bottom", 435 ] 436 _TARGET_NAMES = [ 437 "select_cow", 438 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
440class BuyCowTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 441 REQUIRED_PARSER = BaseHarvestMoonStateParser 442 443 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 444 _TERMINATION_TARGET_NAME = "bought_named_cow"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
446class SellChickenTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 447 REQUIRED_PARSER = BaseHarvestMoonStateParser 448 449 _TERMINATION_NAMED_REGION = "screen_bottom_half" 450 _TERMINATION_TARGET_NAME = "sold_chicken"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
452class SelectSellingChickenSubgoal(AnyRegionMatchSubGoal): 453 NAME = "selected_selling_chicken" 454 _NAMED_REGIONS = [ 455 "dialogue_box_bottom", 456 ] 457 _TARGET_NAMES = [ 458 "select_selling_chicken", 459 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
462class SellCowTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 463 REQUIRED_PARSER = BaseHarvestMoonStateParser 464 _TERMINATION_NAMED_REGION = "screen_bottom_half" 465 _TERMINATION_TARGET_NAME = "sold_cow"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
467class SelectSellingCowSubgoal(AnyRegionMatchSubGoal): 468 NAME = "selected_selling_cow" 469 _NAMED_REGIONS = [ 470 "dialogue_box_bottom", 471 ] 472 _TARGET_NAMES = [ 473 "select_selling_cow", 474 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
477class ShopForConstructionEstimatesSubgoal(AnyRegionMatchSubGoal): 478 NAME = "shop_for_construction_estimates" 479 _NAMED_REGIONS = ["screen_top_half"] 480 _TARGET_NAMES = ["shop_for_construction_estimates"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
482class SelectHothouseSubgoal(AnyRegionMatchSubGoal): 483 NAME = "selected_hothouse" 484 _NAMED_REGIONS = ["dialogue_box_bottom"] 485 _TARGET_NAMES = ["select_hothouse"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
487class GetHothouseEstimateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 488 REQUIRED_PARSER = BaseHarvestMoonStateParser 489 _TERMINATION_NAMED_REGION = "screen_bottom_half" 490 _TERMINATION_TARGET_NAME = "hothouse_estimate"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
492class BuyCowBrushTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 493 REQUIRED_PARSER = BaseHarvestMoonStateParser 494 495 _TERMINATION_NAMED_REGION = "screen_bottom_half" 496 _TERMINATION_TARGET_NAME = "bought_cow_brush"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
498class BuySaddlebagTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 499 REQUIRED_PARSER = BaseHarvestMoonStateParser 500 501 _TERMINATION_NAMED_REGION = "screen_bottom_half" 502 _TERMINATION_TARGET_NAME = "bought_saddlebag"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
504class BuyMilkerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 505 REQUIRED_PARSER = BaseHarvestMoonStateParser 506 507 _TERMINATION_NAMED_REGION = "screen_bottom_half" 508 _TERMINATION_TARGET_NAME = "bought_milker"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
510class OutsideToolShop1Subgoal(AnyRegionMatchSubGoal): 511 NAME = "outside_tool_shop" 512 _NAMED_REGIONS = [ 513 "center_sign", 514 ] 515 _TARGET_NAMES = [ 516 "outside_tool_shop", 517 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
519class ShopForToolsSubgoal(AnyRegionMatchSubGoal): 520 NAME = "shop_for_tools" 521 _NAMED_REGIONS = [ 522 "screen_top_half", 523 ] 524 _TARGET_NAMES = [ 525 "in_tool_shop", 526 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
528class SelectCowBrushSubgoal(AnyRegionMatchSubGoal): 529 NAME = "selected_cow_brush" 530 _NAMED_REGIONS = [ 531 "dialogue_box_bottom", 532 ] 533 _TARGET_NAMES = [ 534 "select_cow_brush", 535 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
537class SelectSaddlebagSubgoal(AnyRegionMatchSubGoal): 538 NAME = "selected_saddlebag" 539 _NAMED_REGIONS = [ 540 "dialogue_box_bottom", 541 ] 542 _TARGET_NAMES = [ 543 "select_saddlebag", 544 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
546class SelectMilkerSubgoal(AnyRegionMatchSubGoal): 547 NAME = "selected_milker" 548 _NAMED_REGIONS = [ 549 "dialogue_box_bottom", 550 ] 551 _TARGET_NAMES = [ 552 "select_milker", 553 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
555class BuyRiceBallTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 556 REQUIRED_PARSER = BaseHarvestMoonStateParser 557 558 _TERMINATION_NAMED_REGION = "screen_bottom_half" 559 _TERMINATION_TARGET_NAME = "bought_rice_ball"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
561class OutsideRestaurantSubgoal(AnyRegionMatchSubGoal): 562 NAME = "outside_restaurant" 563 _NAMED_REGIONS = [ 564 "center_sign", 565 ] 566 _TARGET_NAMES = [ 567 "outside_restaurant", 568 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
570class ShopForFoodSubgoal(AnyRegionMatchSubGoal): 571 NAME = "shop_for_food" 572 _NAMED_REGIONS = [ 573 "screen_top_half", 574 ] 575 _TARGET_NAMES = [ 576 "in_restaurant", 577 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
579class SelectRiceBallSubgoal(AnyRegionMatchSubGoal): 580 NAME = "selected_rice_ball" 581 _NAMED_REGIONS = [ 582 "dialogue_box_bottom", 583 ] 584 _TARGET_NAMES = [ 585 "select_rice_ball", 586 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
588class BuyRiceBallOptionSubgoal(AnyRegionMatchSubGoal): 589 NAME = "buy_rice_ball_option" 590 _NAMED_REGIONS = [ 591 "screen_bottom_half", 592 ] 593 _TARGET_NAMES = [ 594 "option_to_buy_rice_ball", 595 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
597class BuyCroissantTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 598 REQUIRED_PARSER = BaseHarvestMoonStateParser 599 600 _TERMINATION_NAMED_REGION = "screen_bottom_half" 601 _TERMINATION_TARGET_NAME = "bought_croissant"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
603class SelectCroissantSubgoal(AnyRegionMatchSubGoal): 604 NAME = "selected_croissant" 605 _NAMED_REGIONS = [ 606 "dialogue_box_bottom", 607 ] 608 _TARGET_NAMES = [ 609 "select_croissant", 610 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
612class BuyCroissantOptionSubgoal(AnyRegionMatchSubGoal): 613 NAME = "buy_croissant_option" 614 _NAMED_REGIONS = [ 615 "screen_bottom_half", 616 ] 617 _TARGET_NAMES = [ 618 "option_to_buy_croissant", 619 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
621class BuyCakeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 622 REQUIRED_PARSER = BaseHarvestMoonStateParser 623 624 _TERMINATION_NAMED_REGION = "screen_bottom_half" 625 _TERMINATION_TARGET_NAME = "bought_cake"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
627class SelectCakeSubgoal(AnyRegionMatchSubGoal): 628 NAME = "selected_cake" 629 _NAMED_REGIONS = [ 630 "dialogue_box_bottom", 631 ] 632 _TARGET_NAMES = [ 633 "select_cake", 634 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
636class BuyCakeOptionSubgoal(AnyRegionMatchSubGoal): 637 NAME = "buy_cake_option" 638 _NAMED_REGIONS = [ 639 "screen_bottom_half", 640 ] 641 _TARGET_NAMES = [ 642 "option_to_buy_cake", 643 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
645class OutsideJuiceBarSubgoal(AnyRegionMatchSubGoal): 646 NAME = "outside_juice_bar" 647 _NAMED_REGIONS = [ 648 "center_sign", 649 ] 650 _TARGET_NAMES = [ 651 "outside_juice_bar", 652 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
654class ShopForJuiceSubgoal(AnyRegionMatchSubGoal): 655 NAME = "shop_for_juice" 656 _NAMED_REGIONS = [ 657 "screen_top_half", 658 ] 659 _TARGET_NAMES = [ 660 "in_juice_bar", 661 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
663class BuyGrapeJuiceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 664 REQUIRED_PARSER = BaseHarvestMoonStateParser 665 666 _TERMINATION_NAMED_REGION = "screen_bottom_half" 667 _TERMINATION_TARGET_NAME = "bought_grape_juice"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
669class SelectGrapeJuiceSubgoal(AnyRegionMatchSubGoal): 670 NAME = "selected_grape_juice" 671 _NAMED_REGIONS = [ 672 "dialogue_box_bottom", 673 ] 674 _TARGET_NAMES = [ 675 "select_grape_juice", 676 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
678class BuyGrapeJuiceOptionSubgoal(AnyRegionMatchSubGoal): 679 NAME = "buy_grape_juice_option" 680 _NAMED_REGIONS = [ 681 "screen_bottom_half", 682 ] 683 _TARGET_NAMES = [ 684 "option_to_buy_grape_juice", 685 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
687class GoToChurchPrayTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 688 REQUIRED_PARSER = BaseHarvestMoonStateParser 689 690 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 691 _TERMINATION_TARGET_NAME = "praying"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
693class OutsideChurchSubgoal(AnyRegionMatchSubGoal): 694 NAME = "outside_church" 695 _NAMED_REGIONS = [ 696 "center_sign", 697 ] 698 _TARGET_NAMES = [ 699 "outside_church", 700 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
702class InsideChurchSubgoal(AnyRegionMatchSubGoal): 703 NAME = "inside_church" 704 _NAMED_REGIONS = [ 705 "screen_top_half", 706 ] 707 _TARGET_NAMES = [ 708 "in_church", 709 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
711class PrayOptionSubgoal(AnyRegionMatchSubGoal): 712 NAME = "choose_to_pray" 713 _NAMED_REGIONS = [ 714 "dialogue_box_bottom", 715 ] 716 _TARGET_NAMES = [ 717 "option_to_pray", 718 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
720class OpenStorageListTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 721 REQUIRED_PARSER = BaseHarvestMoonStateParser 722 723 _TERMINATION_NAMED_REGION = "left_border_frame" 724 _TERMINATION_TARGET_NAME = "open_storage_list"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
726class NextToStorageListSubgoal(AnyRegionMatchSubGoal): 727 NAME = "next_to_storage_list" 728 _NAMED_REGIONS = [ 729 "item_storage_list", 730 ] 731 _TARGET_NAMES = [ 732 "next_to_storage_list", 733 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
735class ReadFerrySignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 736 REQUIRED_PARSER = BaseHarvestMoonStateParser 737 738 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 739 _TERMINATION_TARGET_NAME = "reading_ferry_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
741class NextToFerrySignSubgoal(AnyRegionMatchSubGoal): 742 NAME = "next_to_ferry_sign" 743 _NAMED_REGIONS = [ 744 "item_ferry_sign_above", 745 "item_ferry_sign_left", 746 ] 747 _TARGET_NAMES = [ 748 "next_to_ferry_sign_down", 749 "next_to_ferry_sign_right", 750 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
752class FindSecretSavingsTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 753 REQUIRED_PARSER = BaseHarvestMoonStateParser 754 755 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 756 _TERMINATION_TARGET_NAME = "found_secret_savings"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
758class NextToFireplaceSubgoal(AnyRegionMatchSubGoal): 759 NAME = "next_to_fireplace" 760 _NAMED_REGIONS = [ 761 "item_fireplace_below", 762 ] 763 _TARGET_NAMES = [ 764 "next_to_fireplace_up", 765 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
767class FindLuckyMoneyTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 768 REQUIRED_PARSER = BaseHarvestMoonStateParser 769 770 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 771 _TERMINATION_TARGET_NAME = "found_lucky_money"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
773class NextToClockSubgoal(AnyRegionMatchSubGoal): 774 NAME = "next_to_clock" 775 _NAMED_REGIONS = [ 776 "item_clock_below", 777 ] 778 _TARGET_NAMES = [ 779 "next_to_clock_up", 780 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
782class FindRainyMoneyTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 783 REQUIRED_PARSER = BaseHarvestMoonStateParser 784 785 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 786 _TERMINATION_TARGET_NAME = "found_rainy_money"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
788class NextToSafeSubgoal(AnyRegionMatchSubGoal): 789 NAME = "next_to_safe" 790 _NAMED_REGIONS = [ 791 "item_safe_below", 792 "item_safe_below", 793 ] 794 _TARGET_NAMES = [ 795 "next_to_safe_up", 796 "next_to_safe_left", 797 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
799class FindLostBirdTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 800 REQUIRED_PARSER = BaseHarvestMoonStateParser 801 802 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 803 _TERMINATION_TARGET_NAME = "found_bird_for_friend"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
805class NextToLostBirdSubgoal(AnyRegionMatchSubGoal): 806 NAME = "next_to_lost_bird" 807 _NAMED_REGIONS = [ 808 "item_lost_bird_below", 809 "item_lost_bird_left", 810 "item_lost_bird_right", 811 ] 812 _TARGET_NAMES = [ 813 "find_lost_bird_up", 814 "find_lost_bird_right", 815 "find_lost_bird_left", 816 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
818class SpeakToBlueHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 819 REQUIRED_PARSER = BaseHarvestMoonStateParser 820 821 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 822 _TERMINATION_TARGET_NAME = "speaking_to_blue_hair_girl"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
824class NextToBlueHairGirlSubgoal(AnyRegionMatchSubGoal): 825 NAME = "next_to_blue_hair_girl" 826 _NAMED_REGIONS = [ 827 "item_blue_hair_girl_below", 828 "item_blue_hair_girl_left", 829 "item_blue_hair_girl_right", 830 ] 831 _TARGET_NAMES = [ 832 "next_to_blue_hair_girl_up", 833 "next_to_blue_hair_girl_right", 834 "next_to_blue_hair_girl_left", 835 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
837class SpeakToGoldenHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 838 REQUIRED_PARSER = BaseHarvestMoonStateParser 839 840 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 841 _TERMINATION_TARGET_NAME = "speaking_to_golden_hair_girl"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
843class NextToGoldenHairGirlSubgoal(AnyRegionMatchSubGoal): 844 NAME = "next_to_golden_hair_girl" 845 _NAMED_REGIONS = [ 846 "item_golden_hair_girl_below", 847 "item_golden_hair_girl_right", 848 "item_golden_hair_girl_above", 849 ] 850 _TARGET_NAMES = [ 851 "next_to_golden_hair_girl_up", 852 "next_to_golden_hair_girl_left", 853 "next_to_golden_hair_girl_down", 854 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
856class SpeakToPinkHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 857 REQUIRED_PARSER = BaseHarvestMoonStateParser 858 859 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 860 _TERMINATION_TARGET_NAME = "speaking_to_pink_hair_girl"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
862class NextToPinkHairGirlSubgoal(AnyRegionMatchSubGoal): 863 NAME = "next_to_pink_hair_girl" 864 _NAMED_REGIONS = [ 865 "item_pink_hair_girl_above", 866 "item_pink_hair_girl_left", 867 "item_pink_hair_girl_right", 868 ] 869 _TARGET_NAMES = [ 870 "next_to_pink_hair_girl_down", 871 "next_to_pink_hair_girl_right", 872 "next_to_pink_hair_girl_left", 873 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
876class SpeakToBlueHairGirlWGTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 877 REQUIRED_PARSER = BaseHarvestMoonStateParser 878 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 879 _TERMINATION_TARGET_NAME = "speaking_to_blue_hair_girl_wg"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
881class NextToBlueHairGirlWGSubgoal(AnyRegionMatchSubGoal): 882 NAME = "next_to_blue_hair_girl_wg" 883 _NAMED_REGIONS = [ 884 "item_blue_hair_girl_wg_below", 885 "item_blue_hair_girl_wg_left", 886 "item_blue_hair_girl_wg_right", 887 ] 888 _TARGET_NAMES = [ 889 "next_to_blue_hair_girl_wg_up", 890 "next_to_blue_hair_girl_wg_right", 891 "next_to_blue_hair_girl_wg_left", 892 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
894class SpeakToPinkHairGirlWGTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 895 REQUIRED_PARSER = BaseHarvestMoonStateParser 896 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 897 _TERMINATION_TARGET_NAME = "speaking_to_pink_hair_girl_wg"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
899class NextToPinkHairGirlWGSubgoal(AnyRegionMatchSubGoal): 900 NAME = "next_to_pink_hair_girl_wg" 901 _NAMED_REGIONS = [ 902 "item_pink_hair_girl_wg_above", 903 "item_pink_hair_girl_wg_left", 904 "item_pink_hair_girl_wg_right", 905 ] 906 _TARGET_NAMES = [ 907 "next_to_pink_hair_girl_wg_down", 908 "next_to_pink_hair_girl_wg_right", 909 "next_to_pink_hair_girl_wg_left", 910 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
912class SpeakToRedHairGirlWGTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 913 REQUIRED_PARSER = BaseHarvestMoonStateParser 914 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 915 _TERMINATION_TARGET_NAME = "speaking_to_red_hair_girl_wg"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
917class NextToRedHairGirlWGSubgoal(AnyRegionMatchSubGoal): 918 NAME = "next_to_red_hair_girl_wg" 919 _NAMED_REGIONS = [ 920 "item_red_hair_girl_wg_above", 921 "item_red_hair_girl_wg_left", 922 "item_red_hair_girl_wg_right", 923 ] 924 _TARGET_NAMES = [ 925 "next_to_red_hair_girl_wg_down", 926 "next_to_red_hair_girl_wg_right", 927 "next_to_red_hair_girl_wg_left", 928 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
930class FillChickenFodderBlock1TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 931 REQUIRED_PARSER = BaseHarvestMoonStateParser 932 933 _TERMINATION_NAMED_REGION = "item_chicken_stall_block1" 934 _TERMINATION_TARGET_NAME = "filled_chicken_stall_block1"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
936class NextToChickenFodderBlock1Subgoal(AnyRegionMatchSubGoal): 937 NAME = "next_to_chicken_stall_block1_with_fodder" 938 _NAMED_REGIONS = [ 939 "item_next_to_chicken_stall_block1", 940 ] 941 _TARGET_NAMES = [ 942 "next_to_chicken_stall_block1", 943 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
945class NextToChickenSiloSubgoal(AnyRegionMatchSubGoal): 946 NAME = "next_to_chicken_silo" 947 _NAMED_REGIONS = [ 948 "item_chicken_silo_left", 949 "item_chicken_silo_below1", 950 "item_chicken_silo_below2", 951 ] 952 _TARGET_NAMES = [ 953 "next_to_chicken_silo_right", 954 "next_to_chicken_silo_up1", 955 "next_to_chicken_silo_up2", 956 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
958class PickupChickenFodderSubgoal(AnyRegionMatchSubGoal): 959 NAME = "picked_up_chicken_fodder_from_silo" 960 _NAMED_REGIONS = [ 961 "item_chicken_silo_left", 962 "item_chicken_silo_below1", 963 "item_chicken_silo_below2", 964 ] 965 _TARGET_NAMES = [ 966 "got_fodder_from_chicken_silo_right", 967 "got_fodder_from_chicken_silo_up1", 968 "got_fodder_from_chicken_silo_up2", 969 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
972class NextToCowFeedingStallSubgoal(AnyRegionMatchSubGoal): 973 NAME = "next_to_cow_feeding_stall_with_fodder" 974 _NAMED_REGIONS = [ 975 "item_cow_feeding_stall_right", 976 ] 977 _TARGET_NAMES = [ 978 "next_to_cow_feeding_stall_left", 979 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
981class FillUpperRightCowStallTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 982 REQUIRED_PARSER = BaseHarvestMoonStateParser 983 _TERMINATION_NAMED_REGION = "item_cow_feeding_stall" 984 _TERMINATION_TARGET_NAME = "cow_feeding_stall_filled"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
987class NextToChickenSilo2Subgoal(AnyRegionMatchSubGoal): 988 NAME = "next_to_chicken_silo" 989 _NAMED_REGIONS = [ 990 "item_chicken_silo_left1", 991 "item_chicken_silo_left2", 992 "item_chicken_silo_below", 993 ] 994 _TARGET_NAMES = [ 995 "next_to_chicken_silo_right1", 996 "next_to_chicken_silo_right2", 997 "next_to_chicken_silo_up", 998 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1000class PickupChickenFodder2Subgoal(AnyRegionMatchSubGoal): 1001 NAME = "picked_up_chicken_fodder_from_silo" 1002 _NAMED_REGIONS = [ 1003 "item_chicken_silo_left1", 1004 "item_chicken_silo_left2", 1005 "item_chicken_silo_below", 1006 ] 1007 _TARGET_NAMES = [ 1008 "got_fodder_from_chicken_silo_right1", 1009 "got_fodder_from_chicken_silo_right2", 1010 "got_fodder_from_chicken_silo_up", 1011 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1014class HospitalEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1015 REQUIRED_PARSER = BaseHarvestMoonStateParser 1016 _TERMINATION_NAMED_REGION = "screen_top_half" 1017 _TERMINATION_TARGET_NAME = "in_hospital"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1019class OutsideHospitalSubgoal(AnyRegionMatchSubGoal): 1020 NAME = "outside_hospital" 1021 _NAMED_REGIONS = [ 1022 "hospital_location", 1023 "hospital_location", 1024 "hospital_location", 1025 ] 1026 _TARGET_NAMES = [ 1027 "outside_hospital_up", 1028 "outside_hospital_left", 1029 "outside_hospital_right", 1030 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1032class ToolShopEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1033 REQUIRED_PARSER = BaseHarvestMoonStateParser 1034 _TERMINATION_NAMED_REGION = "screen_top_half" 1035 _TERMINATION_TARGET_NAME = "in_tool_shop"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1037class OutsideToolShop2Subgoal(AnyRegionMatchSubGoal): 1038 NAME = "outside_tool_shop" 1039 _NAMED_REGIONS = [ 1040 "tool_shop_location", 1041 "tool_shop_location", 1042 "tool_shop_location", 1043 ] 1044 _TARGET_NAMES = [ 1045 "outside_tool_shop_up", 1046 "outside_tool_shop_left", 1047 "outside_tool_shop_right", 1048 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1050class CarpenterEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1051 REQUIRED_PARSER = BaseHarvestMoonStateParser 1052 _TERMINATION_NAMED_REGION = "screen_top_half" 1053 _TERMINATION_TARGET_NAME = "in_carpenter"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1055class OutsideCarpenter2Subgoal(AnyRegionMatchSubGoal): 1056 NAME = "outside_carpenter" 1057 _NAMED_REGIONS = [ 1058 "carpenter_location", 1059 "carpenter_location", 1060 "carpenter_location", 1061 ] 1062 _TARGET_NAMES = [ 1063 "outside_carpenter_up", 1064 "outside_carpenter_left", 1065 "outside_carpenter_right", 1066 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1068class AnimalShopEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1069 REQUIRED_PARSER = BaseHarvestMoonStateParser 1070 _TERMINATION_NAMED_REGION = "screen_top_half" 1071 _TERMINATION_TARGET_NAME = "in_animal_shop"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1073class OutsideAnimalShop2Subgoal(AnyRegionMatchSubGoal): 1074 NAME = "outside_animal_shop" 1075 _NAMED_REGIONS = [ 1076 "animal_shop_location", 1077 "animal_shop_location", 1078 "animal_shop_location", 1079 ] 1080 _TARGET_NAMES = [ 1081 "outside_animal_shop_up", 1082 "outside_animal_shop_left", 1083 "outside_animal_shop_right", 1084 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1086class LibraryEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1087 REQUIRED_PARSER = BaseHarvestMoonStateParser 1088 _TERMINATION_NAMED_REGION = "screen_top_half" 1089 _TERMINATION_TARGET_NAME = "in_library"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1091class OutsideLibrarySubgoal(AnyRegionMatchSubGoal): 1092 NAME = "outside_library" 1093 _NAMED_REGIONS = [ 1094 "library_location", 1095 "library_location", 1096 "library_location", 1097 ] 1098 _TARGET_NAMES = [ 1099 "outside_library_up", 1100 "outside_library_left", 1101 "outside_library_right", 1102 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1104class FlowerShopEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1105 REQUIRED_PARSER = BaseHarvestMoonStateParser 1106 1107 _TERMINATION_NAMED_REGION = "screen_top_half" 1108 _TERMINATION_TARGET_NAME = "in_flower_shop"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1110class OutsideFlowerShop2Subgoal(AnyRegionMatchSubGoal): 1111 NAME = "outside_flower_shop" 1112 _NAMED_REGIONS = [ 1113 "flower_shop_location", 1114 "flower_shop_location", 1115 "flower_shop_location", 1116 ] 1117 _TARGET_NAMES = [ 1118 "outside_flower_shop_up", 1119 "outside_flower_shop_left", 1120 "outside_flower_shop_right", 1121 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1124class SelectBridgeSubgoal(AnyRegionMatchSubGoal): 1125 NAME = "selected_bridge" 1126 _NAMED_REGIONS = ["dialogue_box_bottom"] 1127 _TARGET_NAMES = ["select_bridge"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1129class GetBridgeEstimateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1130 REQUIRED_PARSER = BaseHarvestMoonStateParser 1131 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1132 _TERMINATION_TARGET_NAME = "bridge_estimate"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1135class RestaurantEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1136 REQUIRED_PARSER = BaseHarvestMoonStateParser 1137 1138 _TERMINATION_NAMED_REGION = "screen_top_half" 1139 _TERMINATION_TARGET_NAME = "in_restaurant"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1141class OutsideRestaurant2Subgoal(AnyRegionMatchSubGoal): 1142 NAME = "outside_restaurant" 1143 _NAMED_REGIONS = [ 1144 "restaurant_location", 1145 "restaurant_location", 1146 "restaurant_location", 1147 ] 1148 _TARGET_NAMES = [ 1149 "outside_restaurant_up", 1150 "outside_restaurant_left", 1151 "outside_restaurant_right", 1152 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1154class BuyLunchSetTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1155 REQUIRED_PARSER = BaseHarvestMoonStateParser 1156 1157 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1158 _TERMINATION_TARGET_NAME = "bought_lunch_set"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1160class SelectLunchSetSubgoal(AnyRegionMatchSubGoal): 1161 NAME = "selected_lunch_set" 1162 _NAMED_REGIONS = [ 1163 "screen_bottom_half", 1164 ] 1165 _TARGET_NAMES = [ 1166 "select_lunch_set", 1167 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1169class BuyLunchSetOptionSubgoal(AnyRegionMatchSubGoal): 1170 NAME = "buy_lunch_set_option" 1171 _NAMED_REGIONS = [ 1172 "screen_bottom_half", 1173 ] 1174 _TARGET_NAMES = [ 1175 "option_to_buy_lunch_set", 1176 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1178class BuyBeverageSetTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1179 REQUIRED_PARSER = BaseHarvestMoonStateParser 1180 1181 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1182 _TERMINATION_TARGET_NAME = "bought_beverage_set"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1184class SelectBeverageSetSubgoal(AnyRegionMatchSubGoal): 1185 NAME = "selected_beverage_set" 1186 _NAMED_REGIONS = [ 1187 "screen_bottom_half", 1188 ] 1189 _TARGET_NAMES = [ 1190 "select_beverage_set", 1191 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1193class BuyBeverageSetOptionSubgoal(AnyRegionMatchSubGoal): 1194 NAME = "buy_beverage_set_option" 1195 _NAMED_REGIONS = [ 1196 "screen_bottom_half", 1197 ] 1198 _TARGET_NAMES = [ 1199 "option_to_buy_beverage_set", 1200 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1202class BuyTodaysSpecialTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1203 REQUIRED_PARSER = BaseHarvestMoonStateParser 1204 1205 _TERMINATION_NAMED_REGION = "screen_bottom_half" 1206 _TERMINATION_TARGET_NAME = "bought_todays_special"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1208class SelectTodaysSpecialSubgoal(AnyRegionMatchSubGoal): 1209 NAME = "selected_todays_special" 1210 _NAMED_REGIONS = [ 1211 "screen_bottom_half", 1212 ] 1213 _TARGET_NAMES = [ 1214 "select_todays_special", 1215 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1217class BuyTodaysSpecialOptionSubgoal(AnyRegionMatchSubGoal): 1218 NAME = "buy_todays_special_option" 1219 _NAMED_REGIONS = [ 1220 "screen_bottom_half", 1221 ] 1222 _TARGET_NAMES = [ 1223 "option_to_buy_todays_special", 1224 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1227class ReadNoticeBoardTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1228 REQUIRED_PARSER = BaseHarvestMoonStateParser 1229 1230 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1231 _TERMINATION_TARGET_NAME = "reading_notice_board"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1233class NextToNoticeBoardSubgoal(AnyRegionMatchSubGoal): 1234 NAME = "next_to_notice_board" 1235 _NAMED_REGIONS = [ 1236 "item_notice_board_above", 1237 "item_notice_board_left", 1238 "item_notice_board_right", 1239 ] 1240 _TARGET_NAMES = [ 1241 "next_to_notice_board_down", 1242 "next_to_notice_board_right", 1243 "next_to_notice_board_left", 1244 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1246class ReadVillageSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1247 REQUIRED_PARSER = BaseHarvestMoonStateParser 1248 1249 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1250 _TERMINATION_TARGET_NAME = "reading_village_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1252class NextToVillageSignSubgoal(AnyRegionMatchSubGoal): 1253 NAME = "next_to_village_sign" 1254 _NAMED_REGIONS = [ 1255 "item_village_sign_above", 1256 "item_village_sign_left", 1257 "item_village_sign_right", 1258 ] 1259 _TARGET_NAMES = [ 1260 "next_to_village_sign_down", 1261 "next_to_village_sign_right", 1262 "next_to_village_sign_left", 1263 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1265class ReadFarmSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1266 REQUIRED_PARSER = BaseHarvestMoonStateParser 1267 1268 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1269 _TERMINATION_TARGET_NAME = "reading_farm_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1271class NextToFarmSignSubgoal(AnyRegionMatchSubGoal): 1272 NAME = "next_to_farm_sign" 1273 _NAMED_REGIONS = [ 1274 "item_farm_sign_above", 1275 "item_farm_sign_left", 1276 "item_farm_sign_right", 1277 ] 1278 _TARGET_NAMES = [ 1279 "next_to_farm_sign_down", 1280 "next_to_farm_sign_right", 1281 "next_to_farm_sign_left", 1282 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1284class ReadSecretGardenSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1285 REQUIRED_PARSER = BaseHarvestMoonStateParser 1286 1287 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1288 _TERMINATION_TARGET_NAME = "reading_secret_garden_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1290class NextToSecretGardenSignSubgoal(AnyRegionMatchSubGoal): 1291 NAME = "next_to_secret_garden_sign" 1292 _NAMED_REGIONS = [ 1293 "item_secret_garden_sign_above", 1294 "item_secret_garden_sign_right", 1295 "item_secret_garden_sign_left", 1296 ] 1297 _TARGET_NAMES = [ 1298 "next_to_secret_garden_sign_down", 1299 "next_to_secret_garden_sign_left", 1300 "next_to_secret_garden_sign_right", 1301 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1303class ReadCropFieldSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1304 REQUIRED_PARSER = BaseHarvestMoonStateParser 1305 1306 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1307 _TERMINATION_TARGET_NAME = "reading_crop_field_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1309class NextToCropFieldSignSubgoal(AnyRegionMatchSubGoal): 1310 NAME = "next_to_crop_field_sign" 1311 _NAMED_REGIONS = [ 1312 "item_crop_field_sign_above", 1313 ] 1314 _TARGET_NAMES = [ 1315 "next_to_crop_field_sign_down", 1316 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1318class NextToDiarySubgoal(AnyRegionMatchSubGoal): 1319 NAME = "next_to_diary" 1320 _NAMED_REGIONS = [ 1321 "item_diary", 1322 ] 1323 _TARGET_NAMES = [ 1324 "next_to_diary", 1325 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1327class DiaryOptionSubgoal(AnyRegionMatchSubGoal): 1328 NAME = "diary_sleep_option" 1329 _NAMED_REGIONS = [ 1330 "dialogue_box_bottom", 1331 ] 1332 _TARGET_NAMES = [ 1333 "option_to_diary_sleep", 1334 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1337class OpenMenuTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1338 REQUIRED_PARSER = BaseHarvestMoonStateParser 1339 1340 _TERMINATION_NAMED_REGION = "screen" 1341 _TERMINATION_TARGET_NAME = "menu_open"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1344class EmptyHandsSelectedSubgoal(AnyRegionMatchSubGoal): 1345 NAME = "empty_hands_selected" 1346 _NAMED_REGIONS = ["equipment_region_4"] 1347 _TARGET_NAMES = ["empty_hands_selected"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1349class ReadyToPickSickleSubgoal(AnyRegionMatchSubGoal): 1350 NAME = "ready_to_pick_sickle" 1351 _NAMED_REGIONS = ["top_left_label"] 1352 _TARGET_NAMES = ["ready_to_pick_sickle"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1354class EquipSickleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1355 REQUIRED_PARSER = BaseHarvestMoonStateParser 1356 _TERMINATION_NAMED_REGION = "equipment_region_4" 1357 _TERMINATION_TARGET_NAME = "sickle_equipped"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1359class ReadyToPickHammerSubgoal(AnyRegionMatchSubGoal): 1360 NAME = "ready_to_pick_hammer" 1361 _NAMED_REGIONS = ["top_left_label"] 1362 _TARGET_NAMES = ["ready_to_pick_hammer"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1364class EquipHammerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1365 REQUIRED_PARSER = BaseHarvestMoonStateParser 1366 _TERMINATION_NAMED_REGION = "equipment_region_4" 1367 _TERMINATION_TARGET_NAME = "hammer_equipped"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1369class ReadyToPickFishingRodSubgoal(AnyRegionMatchSubGoal): 1370 NAME = "ready_to_pick_fishing_rod" 1371 _NAMED_REGIONS = ["top_left_label"] 1372 _TARGET_NAMES = ["ready_to_pick_fishing_rod"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1374class EquipFishingRodTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1375 REQUIRED_PARSER = BaseHarvestMoonStateParser 1376 _TERMINATION_NAMED_REGION = "equipment_region_4" 1377 _TERMINATION_TARGET_NAME = "fishing_rod_equipped"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1379class AxeSelected2Subgoal(AnyRegionMatchSubGoal): 1380 NAME = "axe_selected_2" 1381 _NAMED_REGIONS = ["equipment_region_2"] 1382 _TARGET_NAMES = ["ax_selected_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1384class ReadyToPickNetSubgoal(AnyRegionMatchSubGoal): 1385 NAME = "ready_to_pick_net" 1386 _NAMED_REGIONS = ["top_left_label"] 1387 _TARGET_NAMES = ["ready_to_pick_net"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1389class EquipNetReplacingAxTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1390 REQUIRED_PARSER = BaseHarvestMoonStateParser 1391 _TERMINATION_NAMED_REGION = "equipment_region_2" 1392 _TERMINATION_TARGET_NAME = "net_equipped"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1394class ReadyToPickRosemarySeedsSubgoal(AnyRegionMatchSubGoal): 1395 NAME = "ready_to_pick_rosemary_seeds" 1396 _NAMED_REGIONS = ["top_left_label"] 1397 _TARGET_NAMES = ["ready_to_pick_rosemary_seeds"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1399class EquipRosemarySeedsReplacingAxTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1400 REQUIRED_PARSER = BaseHarvestMoonStateParser 1401 _TERMINATION_NAMED_REGION = "equipment_region_2" 1402 _TERMINATION_TARGET_NAME = "rosemary_seeds_equipped"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1404class SprinklerSelected1Subgoal(AnyRegionMatchSubGoal): 1405 NAME = "sprinkler_selected_1" 1406 _NAMED_REGIONS = ["equipment_region_1"] 1407 _TARGET_NAMES = ["sprinkler_selected_1"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1409class EquipSickleReplacingSprinklerTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1410 REQUIRED_PARSER = BaseHarvestMoonStateParser 1411 _TERMINATION_NAMED_REGION = "equipment_region_1" 1412 _TERMINATION_TARGET_NAME = "sickle_equipped_1"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1414class HoeSelected3Subgoal(AnyRegionMatchSubGoal): 1415 NAME = "hoe_selected_3" 1416 _NAMED_REGIONS = ["equipment_region_3"] 1417 _TARGET_NAMES = ["hoe_selected_3"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1419class EquipNetReplacingHoeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1420 REQUIRED_PARSER = BaseHarvestMoonStateParser 1421 _TERMINATION_NAMED_REGION = "equipment_region_3" 1422 _TERMINATION_TARGET_NAME = "net_equipped_3"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1425class NextToEggSubgoal(AnyRegionMatchSubGoal): 1426 NAME = "next_to_egg" 1427 _NAMED_REGIONS = ["item_egg_left", "item_egg_above", "item_egg_right"] 1428 _TARGET_NAMES = ["next_to_egg_right", "next_to_egg_down", "next_to_egg_left"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1431class HatchEggTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1432 REQUIRED_PARSER = BaseHarvestMoonStateParser 1433 _TERMINATION_NAMED_REGION = "item_hatching_box" 1434 _TERMINATION_TARGET_NAME = "dropped_egg_into_hatching_box"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1437class NextToRockFromLeftSubgoal(AnyRegionMatchSubGoal): 1438 NAME = "next_to_rock_from_left" 1439 _NAMED_REGIONS = ["item_rock_left"] 1440 _TARGET_NAMES = ["next_to_rock_right"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1442class BreakRockTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1443 REQUIRED_PARSER = BaseHarvestMoonStateParser 1444 _TERMINATION_NAMED_REGION = "item_rock_left" 1445 _TERMINATION_TARGET_NAME = "rock_cleared"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1447class NextToRightmostRockAboveSubgoal(AnyRegionMatchSubGoal): 1448 NAME = "next_to_rightmost_rock_above" 1449 _NAMED_REGIONS = ["item_rightmost_rock_above"] 1450 _TARGET_NAMES = ["next_to_rightmost_rock_down"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1452class BreakRightmostRockTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1453 REQUIRED_PARSER = BaseHarvestMoonStateParser 1454 _TERMINATION_NAMED_REGION = "item_rightmost_rock_above" 1455 _TERMINATION_TARGET_NAME = "rightmost_rock_cleared"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1458class NextToTopLeftWeedFromRightSubgoal(AnyRegionMatchSubGoal): 1459 NAME = "next_to_top_left_weed" 1460 _NAMED_REGIONS = ["item_top_left_weed"] 1461 _TARGET_NAMES = ["next_to_top_left_weed_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1463class RemoveTopLeftWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1464 REQUIRED_PARSER = BaseHarvestMoonStateParser 1465 _TERMINATION_NAMED_REGION = "item_top_left_weed" 1466 _TERMINATION_TARGET_NAME = "top_left_weed_removed"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1468class CutTopLeftWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1469 REQUIRED_PARSER = BaseHarvestMoonStateParser 1470 _TERMINATION_NAMED_REGION = "item_top_left_weed" 1471 _TERMINATION_TARGET_NAME = "top_left_weed_cut"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1473class NextToLowestWeedFromAboveSubgoal(AnyRegionMatchSubGoal): 1474 NAME = "next_to_lowest_weed_from_above" 1475 _NAMED_REGIONS = ["item_weed_above"] 1476 _TARGET_NAMES = ["next_to_lowest_weed_down"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1478class RemoveLowestWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1479 REQUIRED_PARSER = BaseHarvestMoonStateParser 1480 _TERMINATION_NAMED_REGION = "item_weed_above" 1481 _TERMINATION_TARGET_NAME = "lowest_weed_removed"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1483class CutLowestWeedTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1484 REQUIRED_PARSER = BaseHarvestMoonStateParser 1485 _TERMINATION_NAMED_REGION = "item_weed_above" 1486 _TERMINATION_TARGET_NAME = "lowest_weed_cut"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1489class NextToGrasslandFromLeftSubgoal(AnyRegionMatchSubGoal): 1490 NAME = "next_to_grassland_right" 1491 _NAMED_REGIONS = ["item_grassland_right"] 1492 _TARGET_NAMES = ["next_to_grassland_left"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1494class HarvestCenterGrasslineTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1495 _OR_PAIRS = [ 1496 ("item_center_grassline", "center_grass_harvested_1"), 1497 ("item_center_grassline", "center_grass_harvested_2"), 1498 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1501class PickedUpBrokenFenceSubgoal(AnyRegionMatchSubGoal): 1502 NAME = "picked_up_broken_fence" 1503 _NAMED_REGIONS = [ 1504 "item_broken_fence_field", 1505 "item_broken_fence_field", 1506 "item_broken_fence_field", 1507 "item_broken_fence_field", 1508 ] 1509 _TARGET_NAMES = [ 1510 "picked_up_broken_fence_up", 1511 "picked_up_broken_fence_down", 1512 "picked_up_broken_fence_left", 1513 "picked_up_broken_fence_right", 1514 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1516class RestoreFenceTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1517 _OR_PAIRS = [ 1518 ("item_fence_field", "restored_fence"), 1519 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1522class NextToCenterTurnipSubgoal(AnyRegionMatchSubGoal): 1523 NAME = "next_to_center_turnip" 1524 _NAMED_REGIONS = ["item_turnip_field", "item_turnip_field"] 1525 _TARGET_NAMES = ["next_to_center_turnip_down_1", "next_to_center_turnip_down_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1527class HarvestCenterTurnipTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1528 _OR_PAIRS = [ 1529 ("item_turnip_field", "center_turnip_harvested_1"), 1530 ("item_turnip_field", "center_turnip_harvested_2"), 1531 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1533class NextToCenterTurnipLeftSubgoal(AnyRegionMatchSubGoal): 1534 NAME = "next_to_center_turnip_left" 1535 _NAMED_REGIONS = ["item_turnip_field_water", "item_turnip_field_water"] 1536 _TARGET_NAMES = ["next_to_center_turnip_left_1", "next_to_center_turnip_left_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1538class WaterCenterTurnipTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1539 _OR_PAIRS = [ 1540 ("item_turnip_field_water", "center_turnip_watered_1"), 1541 ("item_turnip_field_water", "center_turnip_watered_2"), 1542 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1545class NextToCenterEggplantSubgoal(AnyRegionMatchSubGoal): 1546 NAME = "next_to_center_eggplant" 1547 _NAMED_REGIONS = ["item_eggplant_field", "item_eggplant_field"] 1548 _TARGET_NAMES = ["next_to_center_eggplant_up_1", "next_to_center_eggplant_up_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1550class HarvestCenterEggplantTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1551 _OR_PAIRS = [ 1552 ("item_eggplant_field", "center_eggplant_harvested_1"), 1553 ("item_eggplant_field", "center_eggplant_harvested_2"), 1554 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1556class NextToCenterPotatoSubgoal(AnyRegionMatchSubGoal): 1557 NAME = "next_to_center_potato" 1558 _NAMED_REGIONS = ["item_potato_field", "item_potato_field"] 1559 _TARGET_NAMES = ["next_to_center_potato_up_1", "next_to_center_potato_up_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1561class WaterCenterPotatoTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1562 _OR_PAIRS = [ 1563 ("item_potato_field", "center_potato_watered_1"), 1564 ("item_potato_field", "center_potato_watered_2"), 1565 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1567class NextToCenterPotatoBelowSubgoal(AnyRegionMatchSubGoal): 1568 NAME = "next_to_center_potato_below" 1569 _NAMED_REGIONS = ["item_potato_field", "item_potato_field"] 1570 _TARGET_NAMES = ["next_to_center_potato_below_up_1", "next_to_center_potato_below_up_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1572class HarvestCenterPotatoTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1573 _OR_PAIRS = [ 1574 ("item_potato_field", "center_potato_harvested_1"), 1575 ("item_potato_field", "center_potato_harvested_2"), 1576 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1578class NextToCenterAsparagusSubgoal(AnyRegionMatchSubGoal): 1579 NAME = "next_to_center_asparagus" 1580 _NAMED_REGIONS = ["item_asparagus_field", "item_asparagus_field"] 1581 _TARGET_NAMES = ["next_to_center_asparagus_right_1", "next_to_center_asparagus_right_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1583class WaterCenterAsparagusTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1584 _OR_PAIRS = [ 1585 ("item_asparagus_field", "center_asparagus_watered_1"), 1586 ("item_asparagus_field", "center_asparagus_watered_2"), 1587 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1590class AtCornCenterSubgoal(AnyRegionMatchSubGoal): 1591 NAME = "at_corn_center" 1592 _NAMED_REGIONS = ["item_corn_field", "item_corn_field"] 1593 _TARGET_NAMES = ["at_corn_center_1", "at_corn_center_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1595class WaterCornFieldTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1596 _OR_PAIRS = [ 1597 ("item_corn_field", "corn_field_watered_1"), 1598 ("item_corn_field", "corn_field_watered_2"), 1599 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1602class AtCabbageCenterSubgoal(AnyRegionMatchSubGoal): 1603 NAME = "at_cabbage_center" 1604 _NAMED_REGIONS = ["item_cabbage_field", "item_cabbage_field"] 1605 _TARGET_NAMES = ["at_cabbage_center_1", "at_cabbage_center_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1607class WaterCabbageFieldTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1608 _OR_PAIRS = [ 1609 ("item_cabbage_field", "cabbage_field_watered_1"), 1610 ("item_cabbage_field", "cabbage_field_watered_2"), 1611 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1614class NextToCenterCornSubgoal(AnyRegionMatchSubGoal): 1615 NAME = "next_to_center_corn" 1616 _NAMED_REGIONS = ["item_center_corn_above", "item_center_corn_above"] 1617 _TARGET_NAMES = ["next_to_center_corn_down_1", "next_to_center_corn_down_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1619class CutCenterCornTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1620 _OR_PAIRS = [ 1621 ("item_center_corn_above", "center_corn_cut_1"), 1622 ("item_center_corn_above", "center_corn_cut_2"), 1623 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1625class NextToCenterCarrotSubgoal(AnyRegionMatchSubGoal): 1626 NAME = "next_to_center_carrot" 1627 _NAMED_REGIONS = ["item_carrot_field", "item_carrot_field"] 1628 _TARGET_NAMES = ["next_to_center_carrot_up_1", "next_to_center_carrot_up_2"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1630class HarvestCenterCarrotTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1631 _OR_PAIRS = [ 1632 ("item_carrot_field", "center_carrot_harvested_1"), 1633 ("item_carrot_field", "center_carrot_harvested_2"), 1634 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1637class NextToShippingBoxSubgoal(AnyRegionMatchSubGoal): 1638 NAME = "next_to_shipping_box" 1639 _NAMED_REGIONS = ["item_next_to_shipping_box"] 1640 _TARGET_NAMES = ["next_to_shipping_box_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1642class ShipEggplantTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1643 REQUIRED_PARSER = BaseHarvestMoonStateParser 1644 _TERMINATION_NAMED_REGION = "item_shipping_box_field" 1645 _TERMINATION_TARGET_NAME = "drop_eggplant_into_shipping_box"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1648class AtTheStartLineSubgoal(AnyRegionMatchSubGoal): 1649 NAME = "at_the_start_line" 1650 _NAMED_REGIONS = ["item_start_line"] 1651 _TARGET_NAMES = ["at_the_start_line"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1653class Cross500mLineTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1654 REQUIRED_PARSER = BaseHarvestMoonStateParser 1655 _TERMINATION_NAMED_REGION = "item_distance_markers" 1656 _TERMINATION_TARGET_NAME = "crossed_500m_line"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1658class Cross1000mLineTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1659 REQUIRED_PARSER = BaseHarvestMoonStateParser 1660 _TERMINATION_NAMED_REGION = "item_distance_markers" 1661 _TERMINATION_TARGET_NAME = "crossed_1000m_line"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1664class ComputersArticleSelectedSubgoal(AnyRegionMatchSubGoal): 1665 NAME = "computers_article_selected" 1666 _NAMED_REGIONS = ["dialogue_box_bottom"] 1667 _TARGET_NAMES = ["computers_article_selected"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1669class ReadComputersArticleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1670 REQUIRED_PARSER = BaseHarvestMoonStateParser 1671 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1672 _TERMINATION_TARGET_NAME = "reading_computers_article"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1674class BouldersArticleSelectedSubgoal(AnyRegionMatchSubGoal): 1675 NAME = "boulders_article_selected" 1676 _NAMED_REGIONS = ["dialogue_box_bottom"] 1677 _TARGET_NAMES = ["boulders_article_selected"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1679class ReadBouldersArticleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1680 REQUIRED_PARSER = BaseHarvestMoonStateParser 1681 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1682 _TERMINATION_TARGET_NAME = "reading_boulders_article"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1684class CropsArticleSelectedSubgoal(AnyRegionMatchSubGoal): 1685 NAME = "selling_crops_article_selected" 1686 _NAMED_REGIONS = ["dialogue_box_bottom"] 1687 _TARGET_NAMES = ["crops_article_selected"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1689class ReadCropsArticleTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1690 REQUIRED_PARSER = BaseHarvestMoonStateParser 1691 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1692 _TERMINATION_TARGET_NAME = "reading_crops_article"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1695class NextToLeftmostWeedSubgoal(AnyRegionMatchSubGoal): 1696 NAME = "next_to_leftmost_weed" 1697 _NAMED_REGIONS = [ 1698 "item_leftmost_weed_right", 1699 "item_leftmost_weed_above", 1700 ] 1701 _TARGET_NAMES = [ 1702 "next_to_leftmost_weed_left", 1703 "next_to_leftmost_weed_down", 1704 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1706class RemoveLeftmostWeedTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1707 _OR_PAIRS = [ 1708 ("item_leftmost_weed_right", "leftmost_weed_removed_left"), 1709 ("item_leftmost_weed_above", "leftmost_weed_removed_down"), 1710 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1713class NextToBerrySubgoal(AnyRegionMatchSubGoal): 1714 NAME = "next_to_berry" 1715 _NAMED_REGIONS = [ 1716 "item_berry_left", 1717 ] 1718 _TARGET_NAMES = [ 1719 "next_to_berry_right", 1720 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1722class PickBerryTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1723 _OR_PAIRS = [ 1724 ("item_berry_left", "berry_picked_right"), 1725 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1727class NextToBerryAboveSubgoal(AnyRegionMatchSubGoal): 1728 NAME = "next_to_berry_above" 1729 _NAMED_REGIONS = [ 1730 "item_berry_above", 1731 "item_berry_above", 1732 ] 1733 _TARGET_NAMES = [ 1734 "next_to_berry_down_1", 1735 "next_to_berry_down_2", 1736 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1738class PickBerryAboveTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1739 _OR_PAIRS = [ 1740 ("item_berry_above", "berry_picked_above_1"), 1741 ("item_berry_above", "berry_picked_above_2"), 1742 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
1745class NextToBlueHairGirl2Subgoal(AnyRegionMatchSubGoal): 1746 NAME = "next_to_blue_hair_girl" 1747 _NAMED_REGIONS = [ 1748 "npc_blue_hair_girl_left", 1749 "npc_blue_hair_girl_below", 1750 "npc_blue_hair_girl_right", 1751 ] 1752 _TARGET_NAMES = [ 1753 "next_to_blue_hair_girl_right", 1754 "next_to_blue_hair_girl_up", 1755 "next_to_blue_hair_girl_left", 1756 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1758class SpeakToBlueHairGirl2TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1759 REQUIRED_PARSER = BaseHarvestMoonStateParser 1760 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1761 _TERMINATION_TARGET_NAME = "speaking_to_blue_hair_girl"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1763class NextToPurpleHairGirlSubgoal(AnyRegionMatchSubGoal): 1764 NAME = "next_to_purple_hair_girl" 1765 _NAMED_REGIONS = [ 1766 "npc_purple_hair_girl_left", 1767 "npc_purple_hair_girl_below", 1768 ] 1769 _TARGET_NAMES = [ 1770 "next_to_purple_hair_girl_right", 1771 "next_to_purple_hair_girl_up", 1772 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1774class SpeakToPurpleHairGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1775 REQUIRED_PARSER = BaseHarvestMoonStateParser 1776 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1777 _TERMINATION_TARGET_NAME = "speaking_to_purple_hair_girl"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1779class NextToBlondeGirlSubgoal(AnyRegionMatchSubGoal): 1780 NAME = "next_to_blonde_girl" 1781 _NAMED_REGIONS = [ 1782 "npc_blonde_girl_right", 1783 "npc_blonde_girl_above", 1784 ] 1785 _TARGET_NAMES = [ 1786 "next_to_blonde_girl_left", 1787 "next_to_blonde_girl_down", 1788 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1790class SpeakToBlondeGirlTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1791 REQUIRED_PARSER = BaseHarvestMoonStateParser 1792 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1793 _TERMINATION_TARGET_NAME = "speaking_to_blonde_girl"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1796class HarvestMoon2NextToHatchingBoxSubgoal(AnyRegionMatchSubGoal): 1797 NAME = "next_to_hatching_box" 1798 _NAMED_REGIONS = ["item_next_to_hatching_box"] 1799 _TARGET_NAMES = ["next_to_hatching_box"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1801class HarvestMoon2HatchEggTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1802 REQUIRED_PARSER = BaseHarvestMoonStateParser 1803 _TERMINATION_NAMED_REGION = "item_hatching_box" 1804 _TERMINATION_TARGET_NAME = "dropped_egg_into_hatching_box"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1807class NextToSecretGardenSign3Subgoal(AnyRegionMatchSubGoal): 1808 NAME = "next_to_secret_garden_sign" 1809 _NAMED_REGIONS = [ 1810 "item_secret_garden_sign_above", 1811 "item_secret_garden_sign_right", 1812 ] 1813 _TARGET_NAMES = [ 1814 "next_to_secret_garden_sign_down", 1815 "next_to_secret_garden_sign_left", 1816 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1818class BuyPotatoSeeds3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1819 REQUIRED_PARSER = BaseHarvestMoonStateParser 1820 1821 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1822 _TERMINATION_TARGET_NAME = "select_potato_seeds"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1824class NextToPotatoSeeds3Subgoal(AnyRegionMatchSubGoal): 1825 NAME = "next_to_potato_seeds" 1826 _NAMED_REGIONS = ["item_potato_seeds_above", "item_potato_seeds_below"] 1827 _TARGET_NAMES = ["next_to_potato_seeds_down", "next_to_potato_seeds_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1829class ChooseTea3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1830 REQUIRED_PARSER = BaseHarvestMoonStateParser 1831 1832 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1833 _TERMINATION_TARGET_NAME = "select_tea"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1835class NextToTea3Subgoal(AnyRegionMatchSubGoal): 1836 NAME = "next_to_tea" 1837 _NAMED_REGIONS = ["item_tea_above", "item_tea_below"] 1838 _TARGET_NAMES = ["next_to_tea_down", "next_to_tea_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1840class ChooseAsparagusSeedsTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1841 REQUIRED_PARSER = BaseHarvestMoonStateParser 1842 1843 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1844 _TERMINATION_TARGET_NAME = "select_asparagus_seeds"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1846class NextToAsparagusSeeds3Subgoal(AnyRegionMatchSubGoal): 1847 NAME = "next_to_asparagus_seeds" 1848 _NAMED_REGIONS = ["item_asparagus_seeds_above", "item_asparagus_seeds_below"] 1849 _TARGET_NAMES = ["next_to_asparagus_seeds_down", "next_to_asparagus_seeds_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1851class NextToTurnipSeeds3Subgoal(AnyRegionMatchSubGoal): 1852 NAME = "next_to_turnip_seeds" 1853 _NAMED_REGIONS = ["item_turnip_seeds_above", "item_turnip_seeds_below"] 1854 _TARGET_NAMES = ["next_to_turnip_seeds_down", "next_to_turnip_seeds_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1856class BuyTurnipSeeds3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1857 REQUIRED_PARSER = BaseHarvestMoonStateParser 1858 1859 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1860 _TERMINATION_TARGET_NAME = "select_turnip_seeds"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1862class ReadMorningMarketSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1863 REQUIRED_PARSER = BaseHarvestMoonStateParser 1864 1865 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1866 _TERMINATION_TARGET_NAME = "reading_morning_market_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1868class NextToMorningMarketSignSubgoal(AnyRegionMatchSubGoal): 1869 NAME = "next_to_morning_market_sign" 1870 _NAMED_REGIONS = [ 1871 "item_morning_market_sign_left", 1872 ] 1873 _TARGET_NAMES = [ 1874 "next_to_morning_market_sign_right", 1875 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1877class ReadStorageSignTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1878 REQUIRED_PARSER = BaseHarvestMoonStateParser 1879 1880 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 1881 _TERMINATION_TARGET_NAME = "reading_storage_sign"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1883class NextToStorageSign3Subgoal(AnyRegionMatchSubGoal): 1884 NAME = "next_to_storage_sign" 1885 _NAMED_REGIONS = [ 1886 "item_storage_sign_below", 1887 "item_storage_sign_left", 1888 "item_storage_sign_right", 1889 ] 1890 _TARGET_NAMES = [ 1891 "next_to_storage_sign_up", 1892 "next_to_storage_sign_right", 1893 "next_to_storage_sign_left", 1894 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1896class SpeakToKirkVillageTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1897 REQUIRED_PARSER = BaseHarvestMoonStateParser 1898 1899 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1900 _TERMINATION_TARGET_NAME = "speaking_to_kirk_village"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1902class NextToKirkVillageSubgoal(AnyRegionMatchSubGoal): 1903 NAME = "next_to_kirk_village" 1904 _NAMED_REGIONS = [ 1905 "npc_kirk_above", 1906 ] 1907 _TARGET_NAMES = [ 1908 "next_to_kirk_down", 1909 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1911class TakeFerryTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1912 REQUIRED_PARSER = BaseHarvestMoonStateParser 1913 1914 _TERMINATION_NAMED_REGION = "entrance" 1915 _TERMINATION_TARGET_NAME = "village_ferry_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1917class NextToKirkMainlandSubgoal(AnyRegionMatchSubGoal): 1918 NAME = "next_to_kirk_mainland" 1919 _NAMED_REGIONS = [ 1920 "npc_kirk_mainland_right", 1921 "npc_kirk_mainland_below", 1922 ] 1923 _TARGET_NAMES = [ 1924 "next_to_kirk_mainland_left", 1925 "next_to_kirk_mainland_up", 1926 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1928class SpeakToJoeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1929 REQUIRED_PARSER = BaseHarvestMoonStateParser 1930 1931 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1932 _TERMINATION_TARGET_NAME = "speaking_to_joe"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1934class NextToJoeSubgoal(AnyRegionMatchSubGoal): 1935 NAME = "next_to_joe" 1936 _NAMED_REGIONS = [ 1937 "npc_joe_left", 1938 ] 1939 _TARGET_NAMES = [ 1940 "next_to_joe_right", 1941 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1943class SpeakToLukiaTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1944 REQUIRED_PARSER = BaseHarvestMoonStateParser 1945 1946 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1947 _TERMINATION_TARGET_NAME = "speaking_to_lukia"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1949class NextToLukiaSubgoal(AnyRegionMatchSubGoal): 1950 NAME = "next_to_Lukia" 1951 _NAMED_REGIONS = [ 1952 "npc_lukia_right", 1953 ] 1954 _TARGET_NAMES = [ 1955 "next_to_lukia_left", 1956 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1958class SpeakToLucusTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1959 REQUIRED_PARSER = BaseHarvestMoonStateParser 1960 1961 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1962 _TERMINATION_TARGET_NAME = "speaking_to_lucus"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1964class NextToLucusSubgoal(AnyRegionMatchSubGoal): 1965 NAME = "next_to_lucus" 1966 _NAMED_REGIONS = [ 1967 "npc_lucus_above", 1968 "npc_lucus_left", 1969 "npc_lucus_right", 1970 ] 1971 _TARGET_NAMES = [ 1972 "next_to_lucus_down", 1973 "next_to_lucus_right", 1974 "next_to_lucus_left", 1975 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1977class SpeakToLylaTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 1978 REQUIRED_PARSER = BaseHarvestMoonStateParser 1979 1980 _TERMINATION_NAMED_REGION = "dialogue_box_upper_border" 1981 _TERMINATION_TARGET_NAME = "speaking_to_lyla"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1983class NextToLylaSubgoal(AnyRegionMatchSubGoal): 1984 NAME = "next_to_lyla" 1985 _NAMED_REGIONS = [ 1986 "npc_lyla_right", 1987 ] 1988 _TARGET_NAMES = [ 1989 "next_to_lyla_left", 1990 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
1992class BuyHorseSaddleTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 1993 REQUIRED_PARSER = BaseHarvestMoonStateParser 1994 _OR_PAIRS = [ 1995 ("item_horse_saddle_empty_1", "bought_horse_saddle_1"), 1996 ("item_horse_saddle_empty_2", "bought_horse_saddle_2"), 1997 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
1999class NextToHorseSaddleSubgoal(AnyRegionMatchSubGoal): 2000 NAME = "next_to_horse_saddle" 2001 _NAMED_REGIONS = ["item_horse_saddle_above", "item_horse_saddle_below"] 2002 _TARGET_NAMES = ["next_to_horse_saddle_down", "next_to_horse_saddle_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2004class BuyFlowerVaseTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2005 REQUIRED_PARSER = BaseHarvestMoonStateParser 2006 _OR_PAIRS = [ 2007 ("item_flower_vase_empty_1", "bought_flower_vase_1"), 2008 ("item_flower_vase_empty_2", "bought_flower_vase_2"), 2009 ] 2010 _ALL_PAIRS = [ 2011 ("dialogue_box_bottom", "bought_from_flower_shop"), 2012 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2014class NextToVaseSubgoal(AnyRegionMatchSubGoal): 2015 NAME = "next_to_vase" 2016 _NAMED_REGIONS = ["item_flower_vase_above", "item_flower_vase_below"] 2017 _TARGET_NAMES = ["next_to_vase_down", "next_to_vase_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2019class BuyMealSetTerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2020 REQUIRED_PARSER = BaseHarvestMoonStateParser 2021 _OR_PAIRS = [ 2022 ("item_meal_set_empty_1", "bought_meal_set_1"), 2023 ("item_meal_set_empty_2", "bought_meal_set_2"), 2024 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2026class SelectMealSetSubgoal(AnyRegionMatchSubGoal): 2027 NAME = "selected_meal_set" 2028 _NAMED_REGIONS = [ 2029 "dialogue_box_bottom", 2030 ] 2031 _TARGET_NAMES = [ 2032 "select_meal_set", 2033 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2035class BuyCoffeeTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2036 REQUIRED_PARSER = BaseHarvestMoonStateParser 2037 2038 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 2039 _TERMINATION_TARGET_NAME = "select_coffee"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2041class NextToCoffeeSubgoal(AnyRegionMatchSubGoal): 2042 NAME = "next_to_coffee" 2043 _NAMED_REGIONS = [ 2044 "item_coffee_above", 2045 "item_coffee_below", 2046 ] 2047 _TARGET_NAMES = [ 2048 "next_to_coffee_down", 2049 "next_to_coffee_up", 2050 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2052class SelectCoffeeSubgoal(AnyRegionMatchSubGoal): 2053 NAME = "selected_coffee" 2054 _NAMED_REGIONS = [ 2055 "dialogue_box_bottom", 2056 ] 2057 _TARGET_NAMES = [ 2058 "select_coffee", 2059 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2061class NextToWeed3Subgoal(AnyRegionMatchSubGoal): 2062 NAME = "next_to_weed" 2063 _NAMED_REGIONS = ["item_weed_left"] 2064 _TARGET_NAMES = ["next_to_weed_right"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2066class RemoveWeed3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2067 REQUIRED_PARSER = BaseHarvestMoonStateParser 2068 _TERMINATION_NAMED_REGION = "item_weed_left" 2069 _TERMINATION_TARGET_NAME = "weed_removed"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2071class NextToCherrySubgoal(AnyRegionMatchSubGoal): 2072 NAME = "next_to_cherry" 2073 _NAMED_REGIONS = ["item_cherry_left"] 2074 _TARGET_NAMES = ["next_to_cherry_right"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2076class PickUpCherry3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2077 REQUIRED_PARSER = BaseHarvestMoonStateParser 2078 _TERMINATION_NAMED_REGION = "item_cherry_left" 2079 _TERMINATION_TARGET_NAME = "cherry_picked"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2081class SpeakToKateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2082 REQUIRED_PARSER = BaseHarvestMoonStateParser 2083 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 2084 _TERMINATION_TARGET_NAME = "speaking_to_kate"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2086class NextToKateSubgoal(AnyRegionMatchSubGoal): 2087 NAME = "next_to_kate" 2088 _NAMED_REGIONS = [ 2089 "npc_kate_left", 2090 "npc_kate_right", 2091 "npc_kate_below", 2092 ] 2093 _TARGET_NAMES = [ 2094 "next_to_kate_right", 2095 "next_to_kate_left", 2096 "next_to_kate_up", 2097 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2099class NextToCenterSPotatoSubgoal(AnyRegionMatchSubGoal): 2100 NAME = "next_to_center_spotato" 2101 _NAMED_REGIONS = ["item_center_spotato_above"] 2102 _TARGET_NAMES = ["next_to_spotato_down"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2104class WaterCenterSPotato3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2105 _OR_PAIRS = [ 2106 ("item_center_spotato_above", "center_spotato_watered"), 2107 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
2109class NextToCenterWatermelonSubgoal(AnyRegionMatchSubGoal): 2110 NAME = "next_to_center_watermelon" 2111 _NAMED_REGIONS = ["item_center_watermelon_above"] 2112 _TARGET_NAMES = ["next_to_center_watermelon_down"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2114class WaterCenterWatermelon3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2115 REQUIRED_PARSER = BaseHarvestMoonStateParser 2116 _TERMINATION_NAMED_REGION = "item_center_watermelon_above" 2117 _TERMINATION_TARGET_NAME = "center_watermelon_watered"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2119class NextToTargetPotatoBelowSubgoal(AnyRegionMatchSubGoal): 2120 NAME = "next_to_target_potato_below" 2121 _NAMED_REGIONS = ["item_target_potato_below"] 2122 _TARGET_NAMES = ["next_to_target_potato_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2124class HarvestTargetPotato3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2125 _OR_PAIRS = [ 2126 ("item_target_potato_below", "target_potato_harvested"), 2127 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
2130class NextToCenterEggplantTopSubgoal(AnyRegionMatchSubGoal): 2131 NAME = "next_to_center_eggplant" 2132 _NAMED_REGIONS = ["item_center_eggplant_above", "item_center_eggplant_left"] 2133 _TARGET_NAMES = ["next_to_eggplant_down", "next_to_eggplant_right"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2135class HarvestCenterEggplantTop3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2136 _OR_PAIRS = [ 2137 ("item_center_eggplant_above", "center_eggplant_harvested_down"), 2138 ("item_center_eggplant_left", "center_eggplant_harvested_right"), 2139 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
2141class NextToBookshelfSubgoal(AnyRegionMatchSubGoal): 2142 NAME = "next_to_bookshelf" 2143 _NAMED_REGIONS = ["item_bookshelf_below"] 2144 _TARGET_NAMES = ["next_to_bookshelf_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2146class ReadAnimalCh2TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2147 REQUIRED_PARSER = BaseHarvestMoonStateParser 2148 _TERMINATION_NAMED_REGION = "dialogue_box_bottom" 2149 _TERMINATION_TARGET_NAME = "finish_animal_ch2"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2152class NextToCenterTurnip3Subgoal(AnyRegionMatchSubGoal): 2153 NAME = "next_to_center_turnip_below" 2154 _NAMED_REGIONS = ["item_center_turnip_below"] 2155 _TARGET_NAMES = ["next_to_center_turnip_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2157class HarvestCenterTurnip3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2158 REQUIRED_PARSER = BaseHarvestMoonStateParser 2159 _TERMINATION_NAMED_REGION = "item_center_turnip_below" 2160 _TERMINATION_TARGET_NAME = "center_turnip_harvested"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2162class NextToSellChicken3Subgoal(AnyRegionMatchSubGoal): 2163 NAME = "next_to_sell_chicken" 2164 _NAMED_REGIONS = ["item_sell_chicken_below", "item_sell_chicken_above"] 2165 _TARGET_NAMES = ["next_to_sell_chicken_up", "next_to_sell_chicken_down"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2167class SellChicken3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2168 REQUIRED_PARSER = BaseHarvestMoonStateParser 2169 _OR_PAIRS = [ 2170 ("sell_animal_section_1", "selling_animal_1"), 2171 ("sell_animal_section_2", "selling_animal_2"), 2172 ] 2173 _ALL_PAIRS = [ 2174 ("dialogue_box_bottom", "animal_sold"), 2175 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2177class NextToBerry3Subgoal(AnyRegionMatchSubGoal): 2178 NAME = "next_to_berry_above" 2179 _NAMED_REGIONS = ["item_berry_above"] 2180 _TARGET_NAMES = ["next_to_berry_down"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2182class PickBerry3TerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2183 REQUIRED_PARSER = BaseHarvestMoonStateParser 2184 _TERMINATION_NAMED_REGION = "item_berry_above" 2185 _TERMINATION_TARGET_NAME = "berry_picked_above"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2187class CheckPlayerMoneySubgoal(AnyRegionMatchSubGoal): 2188 NAME = "choose_may" 2189 _NAMED_REGIONS = ["menu_box"] 2190 _TARGET_NAMES = ["choose_may"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2192class CheckPlayerMoneyTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2193 REQUIRED_PARSER = BaseHarvestMoonStateParser 2194 _TERMINATION_NAMED_REGION = "player_top_left" 2195 _TERMINATION_TARGET_NAME = "display_player_status"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2197class FillCowFodderBlock3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2198 REQUIRED_PARSER = BaseHarvestMoonStateParser 2199 _OR_PAIRS = [ 2200 ("item_right_cow_stall_block", "filled_right_cow_stall_block"), 2201 ("item_cow_stall_block_2", "filled_cow_stall_block_right"), 2202 ]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2204class NextToCowFodderBlock3Subgoal(AnyRegionMatchSubGoal): 2205 NAME = "next_to_rightmost_cow_fodder_block" 2206 _NAMED_REGIONS = ["item_right_cow_stall_block_below", "item_right_cow_stall_block_left"] 2207 _TARGET_NAMES = ["next_to_right_cow_stall_block_up", "next_to_right_cow_stall_block_right"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2209class FarmEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2210 REQUIRED_PARSER = BaseHarvestMoonStateParser 2211 2212 _TERMINATION_NAMED_REGION = "entrance" 2213 _TERMINATION_TARGET_NAME = "farm_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2215class NearFarmSubgoal(AnyRegionMatchSubGoal): 2216 NAME = "outside_farm" 2217 _NAMED_REGIONS = [ 2218 "dialogue_box_bottom", 2219 ] 2220 _TARGET_NAMES = [ 2221 "farm_label", 2222 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2224class VillageEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2225 REQUIRED_PARSER = BaseHarvestMoonStateParser 2226 _TERMINATION_NAMED_REGION = "top_entrance" 2227 _TERMINATION_TARGET_NAME = "village_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2229class NearVillageSubgoal(AnyRegionMatchSubGoal): 2230 NAME = "outside_village" 2231 _NAMED_REGIONS = ["dialogue_box_bottom"] 2232 _TARGET_NAMES = ["village_label"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2234class GrasslandEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2235 REQUIRED_PARSER = BaseHarvestMoonStateParser 2236 _TERMINATION_NAMED_REGION = "entrance" 2237 _TERMINATION_TARGET_NAME = "grassland_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2239class NearGrasslandSubgoal(AnyRegionMatchSubGoal): 2240 NAME = "outside_grassland" 2241 _NAMED_REGIONS = ["dialogue_box_bottom"] 2242 _TARGET_NAMES = ["grassland_label"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2244class ForestEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2245 REQUIRED_PARSER = BaseHarvestMoonStateParser 2246 _TERMINATION_NAMED_REGION = "entrance" 2247 _TERMINATION_TARGET_NAME = "forest_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2249class NearForestSubgoal(AnyRegionMatchSubGoal): 2250 NAME = "outside_forest" 2251 _NAMED_REGIONS = ["dialogue_box_bottom"] 2252 _TARGET_NAMES = ["forest_label"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2254class CliffEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2255 REQUIRED_PARSER = BaseHarvestMoonStateParser 2256 _TERMINATION_NAMED_REGION = "entrance" 2257 _TERMINATION_TARGET_NAME = "cliff_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2259class NearCliffSubgoal(AnyRegionMatchSubGoal): 2260 NAME = "outside_cliff" 2261 _NAMED_REGIONS = ["dialogue_box_bottom"] 2262 _TARGET_NAMES = ["cliff_label"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2264class MountainEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2265 REQUIRED_PARSER = BaseHarvestMoonStateParser 2266 _TERMINATION_NAMED_REGION = "entrance" 2267 _TERMINATION_TARGET_NAME = "mountain_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2269class NearMountainSubgoal(AnyRegionMatchSubGoal): 2270 NAME = "outside_mountain" 2271 _NAMED_REGIONS = ["dialogue_box_bottom"] 2272 _TARGET_NAMES = ["mountain_label"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2274class ShoppingMallEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2275 REQUIRED_PARSER = BaseHarvestMoonStateParser 2276 2277 _TERMINATION_NAMED_REGION = "entrance" 2278 _TERMINATION_TARGET_NAME = "shopping_mall_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2280class NearShoppingMallSubgoal(AnyRegionMatchSubGoal): 2281 NAME = "outside_shopping_mall" 2282 _NAMED_REGIONS = [ 2283 "dialogue_box_bottom", 2284 ] 2285 _TARGET_NAMES = [ 2286 "shopping_mall_label", 2287 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2289class ShoppingMallSecondFloorTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2290 REQUIRED_PARSER = BaseHarvestMoonStateParser 2291 _TERMINATION_NAMED_REGION = "entrance" 2292 _TERMINATION_TARGET_NAME = "shopping_mall_second_floor"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2294class NextToStairsSubgoal(AnyRegionMatchSubGoal): 2295 NAME = "next_to_stairs" 2296 _NAMED_REGIONS = ["item_stairs", "item_stairs", "item_stairs"] 2297 _TARGET_NAMES = ["next_to_stairs_1", "next_to_stairs_2", "next_to_stairs_3"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2299class FarmersUnionEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2300 REQUIRED_PARSER = BaseHarvestMoonStateParser 2301 2302 _TERMINATION_NAMED_REGION = "entrance" 2303 _TERMINATION_TARGET_NAME = "farmers_union_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2305class NearFarmersUnionSubgoal(AnyRegionMatchSubGoal): 2306 NAME = "outside_farmers_union" 2307 _NAMED_REGIONS = [ 2308 "dialogue_box_bottom", 2309 ] 2310 _TARGET_NAMES = [ 2311 "farmers_union_label", 2312 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2314class AquariumEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2315 REQUIRED_PARSER = BaseHarvestMoonStateParser 2316 2317 _TERMINATION_NAMED_REGION = "entrance" 2318 _TERMINATION_TARGET_NAME = "aquarium_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2320class NearAquariumSubgoal(AnyRegionMatchSubGoal): 2321 NAME = "outside_aquarium" 2322 _NAMED_REGIONS = [ 2323 "dialogue_box_bottom", 2324 ] 2325 _TARGET_NAMES = [ 2326 "aquarium_label", 2327 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2329class TheatreEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2330 REQUIRED_PARSER = BaseHarvestMoonStateParser 2331 2332 _TERMINATION_NAMED_REGION = "entrance" 2333 _TERMINATION_TARGET_NAME = "theatre_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2335class NearTheatreSubgoal(AnyRegionMatchSubGoal): 2336 NAME = "outside_theatre" 2337 _NAMED_REGIONS = [ 2338 "dialogue_box_bottom", 2339 ] 2340 _TARGET_NAMES = [ 2341 "theatre_label", 2342 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2344class HotSpringEntranceTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2345 REQUIRED_PARSER = BaseHarvestMoonStateParser 2346 2347 _TERMINATION_NAMED_REGION = "entrance" 2348 _TERMINATION_TARGET_NAME = "hot_spring_entrance"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2350class NearHotSpringSubgoal(AnyRegionMatchSubGoal): 2351 NAME = "outside_hot_spring" 2352 _NAMED_REGIONS = [ 2353 "outside_hot_spring", 2354 "outside_hot_spring", 2355 "outside_hot_spring", 2356 ] 2357 _TARGET_NAMES = [ 2358 "outside_hot_spring_left", 2359 "outside_hot_spring_right", 2360 "outside_hot_spring_up", 2361 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2364class HarvestMoon3NextToHatchingBoxSubgoal(AnyRegionMatchSubGoal): 2365 NAME = "next_to_hatching_box" 2366 _NAMED_REGIONS = ["item_next_to_hatching_box"] 2367 _TARGET_NAMES = ["next_to_hatching_box"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2369class HarvestMoon3HatchEggTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2370 REQUIRED_PARSER = BaseHarvestMoonStateParser 2371 _TERMINATION_NAMED_REGION = "item_hatching_box" 2372 _TERMINATION_TARGET_NAME = "dropped_egg_into_hatching_box"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2375class NextToChickenSilo3Subgoal(AnyRegionMatchSubGoal): 2376 NAME = "next_to_chicken_silo" 2377 _NAMED_REGIONS = [ 2378 "item_chicken_silo_left1", 2379 "item_chicken_silo_left2", 2380 "item_chicken_silo_above", 2381 ] 2382 _TARGET_NAMES = [ 2383 "next_to_chicken_silo_right1", 2384 "next_to_chicken_silo_right2", 2385 "next_to_chicken_silo_down", 2386 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2388class PickupChickenFodder3Subgoal(AnyRegionMatchSubGoal): 2389 NAME = "picked_up_chicken_fodder_from_silo" 2390 _NAMED_REGIONS = [ 2391 "item_chicken_silo_left1", 2392 "item_chicken_silo_left2", 2393 "item_chicken_silo_above", 2394 ] 2395 _TARGET_NAMES = [ 2396 "got_fodder_from_chicken_silo_right1", 2397 "got_fodder_from_chicken_silo_right2", 2398 "got_fodder_from_chicken_silo_down", 2399 ]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2401class NextToTopmostChickenStallBlockSubgoal(AnyRegionMatchSubGoal): 2402 NAME = "next_to_topmost_chicken_stall_block_with_fodder" 2403 _NAMED_REGIONS = ["item_next_to_topmost_chicken_stall_block"] 2404 _TARGET_NAMES = ["next_to_topmost_chicken_stall_block"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2406class FillTopmostChickenStallBlockTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2407 REQUIRED_PARSER = BaseHarvestMoonStateParser 2408 _TERMINATION_NAMED_REGION = "item_topmost_chicken_stall_block" 2409 _TERMINATION_TARGET_NAME = "filled_topmost_chicken_stall_block"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.
Inherited Members
2411class NextToFodderSetSubgoal(AnyRegionMatchSubGoal): 2412 NAME = "next_to_fodder_set" 2413 _NAMED_REGIONS = ["item_fodder_set_below"] 2414 _TARGET_NAMES = ["next_to_fodder_set_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2416class SelectedFodderSetSubgoal(AnyRegionMatchSubGoal): 2417 NAME = "selected_fodder_set" 2418 _NAMED_REGIONS = ["dialogue_box_bottom"] 2419 _TARGET_NAMES = ["selected_fodder_set"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2421class BuyFodderSet3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2422 _ALL_PAIRS = [("dialogue_box_bottom", "bought_from_farmers_union"), ("item_fodder_set", "picked_fodder_set")]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
2424class NextToHorseMedicineSubgoal(AnyRegionMatchSubGoal): 2425 NAME = "next_to_horse_medicine" 2426 _NAMED_REGIONS = ["item_horse_medicine_below"] 2427 _TARGET_NAMES = ["next_to_horse_medicine_up"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2429class SelectedHorseMedicineSubgoal(AnyRegionMatchSubGoal): 2430 NAME = "selected_horse_medicine" 2431 _NAMED_REGIONS = ["dialogue_box_bottom"] 2432 _TARGET_NAMES = ["selected_horse_medicine"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2434class BuyHorseMedicine3TerminateMetric(MultiRegionMatchTerminationMetric, TerminationMetric): 2435 _ALL_PAIRS = [("dialogue_box_bottom", "bought_from_farmers_union"), ("item_horse_medicine", "picked_horse_medicine")]
Terminates when OR_PAIRS, ALL_PAIRS, and NOT_PAIRS conditions are all satisfied. OR_PAIRS: list of (region, target) — at least one must match. ALL_PAIRS: list of (region, target) — every one must match. NOT_PAIRS: list of (region, target) — none must match. Termination condition: (any OR_PAIR matches) AND (all ALL_PAIRS match) AND (no NOT_PAIR matches). Any list may be empty, in which case its condition is trivially satisfied.
Inherited Members
2438class SelectHomeExpansionSubgoal(AnyRegionMatchSubGoal): 2439 NAME = "selected_home_expansion" 2440 _NAMED_REGIONS = ["dialogue_box_bottom"] 2441 _TARGET_NAMES = ["select_home_expansion"]
A subgoal that is completed if any of a list of specific regions matches their targets.
Inherited Members
2443class GetHomeExpansionEstimateTerminateMetric(RegionMatchTerminationMetric, TerminationMetric): 2444 REQUIRED_PARSER = BaseHarvestMoonStateParser 2445 _TERMINATION_NAMED_REGION = "screen_bottom_half" 2446 _TERMINATION_TARGET_NAME = "home_expansion_estimate"
Terminates the episode if a specific region matches a target. Can be used to terminate episodes when specific dialogue boxes appear, etc.
The StateParser which implements the minimum required functionality for this MetricGroup to work.