gameboy_worlds.emulation.runes_of_virtue.trackers

  1from gameboy_worlds.emulation.runes_of_virtue.base_metrics import (
  2    CoreRunesOfVirtueMetrics,
  3    RunesOfVirtueOCRMetric,
  4)
  5from gameboy_worlds.emulation.runes_of_virtue.test_metrics import (
  6    RunesOfVirtue1BasementChestOpenedTerminateMetric,
  7    RunesOfVirtue1BasementLadderUnlockedTerminateMetric,
  8    RunesOfVirtue1CavernOfHatredEnterFloor2TerminateMetric,
  9    RunesOfVirtue1CavernOfHatredSherryFloor2DialogTerminateMetric,
 10    RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTerminateMetric,
 11    RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTerminateMetric,
 12    RunesOfVirtue1CavernOfHatredEnterFloor3TerminateMetric,
 13    RunesOfVirtue1CavernOfHatredEnterFloor4TerminateMetric,
 14    RunesOfVirtue1CavernOfHatredTerminateMetric,
 15    RunesOfVirtue1CavernOfCowardiceTerminateMetric,
 16    RunesOfVirtue1CavernOfCowardiceEnterFloor2TerminateMetric,
 17    RunesOfVirtue1CavernOfCowardiceEnterFloor3TerminateMetric,
 18    RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTerminateMetric,
 19    RunesOfVirtue1CavernOfCowardiceEnterFloor4TerminateMetric,
 20    RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTerminateMetric,
 21    RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TerminateMetric,
 22    RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TerminateMetric,
 23    RunesOfVirtue1CavernOfHatredChestFloor1OpenedTerminateMetric,
 24    RunesOfVirtue1CavernOfDeceitTerminateMetric,
 25    RunesOfVirtue1ChucklesDialogTerminateMetric,
 26    RunesOfVirtue1DeathScreenTerminateMetric,
 27    RunesOfVirtue1DrCatDialogTerminateMetric,
 28    RunesOfVirtue1DrCatCatsLairDialogTerminateMetric,
 29    RunesOfVirtue1GnuGnu1DialogTerminateMetric,
 30    RunesOfVirtue1GnuGnu2DialogTerminateMetric,
 31    RunesOfVirtue1KingDialogTerminateMetric,
 32    RunesOfVirtue1OpenMenuTerminateMetric,
 33    RunesOfVirtue1SherryDialogTerminateMetric,
 34    RunesOfVirtue1ShipRiddenTerminateMetric,
 35    RunesOfVirtue1TelescopeViewTerminateMetric,
 36    RunesOfVirtue2BlacksmithFailBuyShieldTerminateMetric,
 37    RunesOfVirtue2BlockedRoomEnteredTerminateMetric,
 38    RunesOfVirtue2BringTholdenBackToKingTerminateMetric,
 39    RunesOfVirtue2CaveOfDishonourEnterFloor3TerminateMetric,
 40    RunesOfVirtue2CaveOfDishonourEnterFloor2TerminateMetric,
 41    RunesOfVirtue2CaveOfDishonourTerminateMetric,
 42    RunesOfVirtue2ClimbLadderBehindLockedDoorTerminateMetric,
 43    RunesOfVirtue2FindLadderBackFromCastleTerminateMetric,
 44    RunesOfVirtue2FindLadderOutOfCavernOfHatredTerminateMetric,
 45    RunesOfVirtue2AttendCastleCeremonyTerminateMetric,
 46    RunesOfVirtue2GiveCheeseToSherryTerminateMetric,
 47    RunesOfVirtue2GrabCheeseFromKitchenTerminateMetric,
 48    RunesOfVirtue2InteractWithMapOnTableTerminateMetric,
 49    RunesOfVirtue2CavernOfHatredEnterFloor4TerminateMetric,
 50    RunesOfVirtue2CavernOfHatredEnterFloor5TerminateMetric,
 51    RunesOfVirtue2CavernOfHatredEnterFloor6TerminateMetric,
 52    RunesOfVirtue2CavernOfHatredEnterFloor7TerminateMetric,
 53    RunesOfVirtue2CavernOfHatredGate1UnlockedTerminateMetric,
 54    RunesOfVirtue2CavernOfHatredGrabKeyTerminateMetric,
 55    RunesOfVirtue2CavernOfHatredLadder2TerminateMetric,
 56    RunesOfVirtue2CavernOfHatredLadderRoom2TerminateMetric,
 57    RunesOfVirtue2CavernOfHatredTerminateMetric,
 58    RunesOfVirtue2DeathScreenTerminateMetric,
 59    RunesOfVirtue2LordWhitsaberDialogTerminateMetric,
 60    RunesOfVirtue2NystulDialogTerminateMetric,
 61    RunesOfVirtue2OpenMenuTerminateMetric,
 62    RunesOfVirtue2ReadBookTerminateMetric,
 63    RunesOfVirtue2SandyCookDialogTerminateMetric,
 64    RunesOfVirtue2SherryMouseDialogTerminateMetric,
 65    RunesOfVirtue2UnlockDoorAndSaveTholdenTerminateMetric,
 66)
 67from gameboy_worlds.emulation.tracker import (
 68    DummySubGoalMetric,
 69    StateTracker,
 70    TestTrackerMixin,
 71)
 72
 73
 74class CoreRunesOfVirtueTracker(StateTracker):
 75    """
 76    StateTracker for core Runes of Virtue metrics.
 77    """
 78
 79    def start(self):
 80        super().start()
 81        self.metric_classes.extend([CoreRunesOfVirtueMetrics])
 82
 83
 84class RunesOfVirtueOCRTracker(CoreRunesOfVirtueTracker):
 85    """
 86    StateTracker for core Runes of Virtue metrics and OCR region captures.
 87    """
 88
 89    def start(self):
 90        super().start()
 91        self.metric_classes.extend([RunesOfVirtueOCRMetric])
 92
 93
 94class RunesOfVirtueTestTracker(TestTrackerMixin, RunesOfVirtueOCRTracker):
 95    """
 96    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Runes of Virtue games.
 97    """
 98
 99    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1OpenMenuTerminateMetric
100    SUBGOAL_METRIC = DummySubGoalMetric
101
102
103class RunesOfVirtue1OpenMenuTestTracker(RunesOfVirtueTestTracker):
104    """
105    A TestTracker for Runes of Virtue 1 that ends an episode when the player opens the inventory menu.
106    """
107
108    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1OpenMenuTerminateMetric
109    SUBGOAL_METRIC = DummySubGoalMetric
110
111
112class RunesOfVirtue2OpenMenuTestTracker(RunesOfVirtueTestTracker):
113    """
114    A TestTracker for Runes of Virtue 2 that ends an episode when the player opens the inventory menu.
115    """
116
117    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2OpenMenuTerminateMetric
118    SUBGOAL_METRIC = DummySubGoalMetric
119
120
121class RunesOfVirtue2ReadBookTestTracker(RunesOfVirtueTestTracker):
122    """Ends an episode when the player opens a book."""
123
124    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2ReadBookTerminateMetric
125    SUBGOAL_METRIC = DummySubGoalMetric
126
127
128class RunesOfVirtue2BlockedRoomEnteredTestTracker(RunesOfVirtueTestTracker):
129    """Ends an episode when the player has entered the blocked room."""
130
131    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2BlockedRoomEnteredTerminateMetric
132    SUBGOAL_METRIC = DummySubGoalMetric
133
134
135class RunesOfVirtue2NystulDialogTestTracker(RunesOfVirtueTestTracker):
136    """Ends an episode when the player is in dialog with Nystul."""
137
138    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2NystulDialogTerminateMetric
139    SUBGOAL_METRIC = DummySubGoalMetric
140
141
142class RunesOfVirtue2BlacksmithFailBuyShieldTestTracker(RunesOfVirtueTestTracker):
143    """Ends an episode when the blacksmith's failed shield purchase dialog is shown."""
144
145    TERMINATION_TRUNCATION_METRIC = (
146        RunesOfVirtue2BlacksmithFailBuyShieldTerminateMetric
147    )
148    SUBGOAL_METRIC = DummySubGoalMetric
149
150
151class RunesOfVirtue2SherryMouseDialogTestTracker(RunesOfVirtueTestTracker):
152    """Ends an episode when Sherry the mouse's dialog is shown."""
153
154    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2SherryMouseDialogTerminateMetric
155    SUBGOAL_METRIC = DummySubGoalMetric
156
157
158class RunesOfVirtue2SandyCookDialogTestTracker(RunesOfVirtueTestTracker):
159    """Ends an episode when Sandy the cook's dialog is shown."""
160
161    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2SandyCookDialogTerminateMetric
162    SUBGOAL_METRIC = DummySubGoalMetric
163
164
165class RunesOfVirtue2LordWhitsaberDialogTestTracker(RunesOfVirtueTestTracker):
166    """Ends an episode when Lord Whitsaber's dialog is shown."""
167
168    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2LordWhitsaberDialogTerminateMetric
169    SUBGOAL_METRIC = DummySubGoalMetric
170
171
172class RunesOfVirtue2CaveOfDishonourTestTracker(RunesOfVirtueTestTracker):
173    """Ends an episode when the player has entered the Cave of Dishonour."""
174
175    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CaveOfDishonourTerminateMetric
176    SUBGOAL_METRIC = DummySubGoalMetric
177
178
179class RunesOfVirtue2CavernOfHatredTestTracker(RunesOfVirtueTestTracker):
180    """Ends an episode when the player has entered the Cavern of Hatred."""
181
182    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CavernOfHatredTerminateMetric
183    SUBGOAL_METRIC = DummySubGoalMetric
184
185
186class RunesOfVirtue2CaveOfDishonourEnterFloor2TestTracker(RunesOfVirtueTestTracker):
187    """Ends an episode when the player enters floor 2 in the Cave of Dishonour."""
188
189    TERMINATION_TRUNCATION_METRIC = (
190        RunesOfVirtue2CaveOfDishonourEnterFloor2TerminateMetric
191    )
192    SUBGOAL_METRIC = DummySubGoalMetric
193
194
195class RunesOfVirtue2CaveOfDishonourEnterFloor3TestTracker(RunesOfVirtueTestTracker):
196    """Ends an episode when the player enters floor 3 in the Cave of Dishonour."""
197
198    TERMINATION_TRUNCATION_METRIC = (
199        RunesOfVirtue2CaveOfDishonourEnterFloor3TerminateMetric
200    )
201    SUBGOAL_METRIC = DummySubGoalMetric
202
203
204class RunesOfVirtue2GrabCheeseFromKitchenTestTracker(RunesOfVirtueTestTracker):
205    """Ends an episode when the player grabs the cheese from the kitchen."""
206
207    TERMINATION_TRUNCATION_METRIC = (
208        RunesOfVirtue2GrabCheeseFromKitchenTerminateMetric
209    )
210    SUBGOAL_METRIC = DummySubGoalMetric
211
212
213class RunesOfVirtue2GiveCheeseToSherryTestTracker(RunesOfVirtueTestTracker):
214    """Ends an episode when the player gives the cheese to Sherry."""
215
216    TERMINATION_TRUNCATION_METRIC = (
217        RunesOfVirtue2GiveCheeseToSherryTerminateMetric
218    )
219    SUBGOAL_METRIC = DummySubGoalMetric
220
221
222class RunesOfVirtue2ClimbLadderBehindLockedDoorTestTracker(
223    RunesOfVirtueTestTracker
224):
225    """Ends an episode when the player climbs the ladder behind the locked door."""
226
227    TERMINATION_TRUNCATION_METRIC = (
228        RunesOfVirtue2ClimbLadderBehindLockedDoorTerminateMetric
229    )
230    SUBGOAL_METRIC = DummySubGoalMetric
231
232
233class RunesOfVirtue2InteractWithMapOnTableTestTracker(RunesOfVirtueTestTracker):
234    """Ends an episode when the player interacts with the map on the table."""
235
236    TERMINATION_TRUNCATION_METRIC = (
237        RunesOfVirtue2InteractWithMapOnTableTerminateMetric
238    )
239    SUBGOAL_METRIC = DummySubGoalMetric
240
241
242class RunesOfVirtue2FindLadderBackFromCastleTestTracker(RunesOfVirtueTestTracker):
243    """Ends an episode when the player finds a ladder back from the castle."""
244
245    TERMINATION_TRUNCATION_METRIC = (
246        RunesOfVirtue2FindLadderBackFromCastleTerminateMetric
247    )
248    SUBGOAL_METRIC = DummySubGoalMetric
249
250
251class RunesOfVirtue2UnlockDoorAndSaveTholdenTestTracker(
252    RunesOfVirtueTestTracker
253):
254    """Ends an episode when the player unlocks the door and saves Tholden."""
255
256    TERMINATION_TRUNCATION_METRIC = (
257        RunesOfVirtue2UnlockDoorAndSaveTholdenTerminateMetric
258    )
259    SUBGOAL_METRIC = DummySubGoalMetric
260
261
262class RunesOfVirtue2FindLadderOutOfCavernOfHatredTestTracker(
263    RunesOfVirtueTestTracker
264):
265    """Ends an episode when the player finds a ladder out of the Cavern of Hatred."""
266
267    TERMINATION_TRUNCATION_METRIC = (
268        RunesOfVirtue2FindLadderOutOfCavernOfHatredTerminateMetric
269    )
270    SUBGOAL_METRIC = DummySubGoalMetric
271
272
273class RunesOfVirtue2BringTholdenBackToKingTestTracker(RunesOfVirtueTestTracker):
274    """Ends an episode when the player brings Tholden back to the king."""
275
276    TERMINATION_TRUNCATION_METRIC = (
277        RunesOfVirtue2BringTholdenBackToKingTerminateMetric
278    )
279    SUBGOAL_METRIC = DummySubGoalMetric
280
281
282class RunesOfVirtue2AttendCastleCeremonyTestTracker(RunesOfVirtueTestTracker):
283    """Ends an episode when the player attends the ceremony in the castle."""
284
285    TERMINATION_TRUNCATION_METRIC = (
286        RunesOfVirtue2AttendCastleCeremonyTerminateMetric
287    )
288    SUBGOAL_METRIC = DummySubGoalMetric
289
290
291class RunesOfVirtue2CavernOfHatredGate1UnlockedTestTracker(
292    RunesOfVirtueTestTracker
293):
294    """Ends an episode when the first Cavern of Hatred gate is unlocked."""
295
296    TERMINATION_TRUNCATION_METRIC = (
297        RunesOfVirtue2CavernOfHatredGate1UnlockedTerminateMetric
298    )
299    SUBGOAL_METRIC = DummySubGoalMetric
300
301
302class RunesOfVirtue2CavernOfHatredLadderRoom2TestTracker(
303    RunesOfVirtueTestTracker
304):
305    """Ends an episode when the player enters the second ladder room in the Cavern of Hatred."""
306
307    TERMINATION_TRUNCATION_METRIC = (
308        RunesOfVirtue2CavernOfHatredLadderRoom2TerminateMetric
309    )
310    SUBGOAL_METRIC = DummySubGoalMetric
311
312
313class RunesOfVirtue2CavernOfHatredLadder2TestTracker(RunesOfVirtueTestTracker):
314    """Ends an episode when the player reaches the second ladder in the Cavern of Hatred."""
315
316    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CavernOfHatredLadder2TerminateMetric
317    SUBGOAL_METRIC = DummySubGoalMetric
318
319
320class RunesOfVirtue2CavernOfHatredGrabKeyTestTracker(RunesOfVirtueTestTracker):
321    """Ends an episode when the player grabs the key in the Cavern of Hatred."""
322
323    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CavernOfHatredGrabKeyTerminateMetric
324    SUBGOAL_METRIC = DummySubGoalMetric
325
326
327class RunesOfVirtue2CavernOfHatredEnterFloor4TestTracker(RunesOfVirtueTestTracker):
328    """Ends an episode when the player enters floor 4 in the Cavern of Hatred."""
329
330    TERMINATION_TRUNCATION_METRIC = (
331        RunesOfVirtue2CavernOfHatredEnterFloor4TerminateMetric
332    )
333    SUBGOAL_METRIC = DummySubGoalMetric
334
335
336class RunesOfVirtue2CavernOfHatredEnterFloor5TestTracker(RunesOfVirtueTestTracker):
337    """Ends an episode when the player enters floor 5 in the Cavern of Hatred."""
338
339    TERMINATION_TRUNCATION_METRIC = (
340        RunesOfVirtue2CavernOfHatredEnterFloor5TerminateMetric
341    )
342    SUBGOAL_METRIC = DummySubGoalMetric
343
344
345class RunesOfVirtue2CavernOfHatredEnterFloor6TestTracker(RunesOfVirtueTestTracker):
346    """Ends an episode when the player enters floor 6 in the Cavern of Hatred."""
347
348    TERMINATION_TRUNCATION_METRIC = (
349        RunesOfVirtue2CavernOfHatredEnterFloor6TerminateMetric
350    )
351    SUBGOAL_METRIC = DummySubGoalMetric
352
353
354class RunesOfVirtue2CavernOfHatredEnterFloor7TestTracker(RunesOfVirtueTestTracker):
355    """Ends an episode when the player enters floor 7 in the Cavern of Hatred."""
356
357    TERMINATION_TRUNCATION_METRIC = (
358        RunesOfVirtue2CavernOfHatredEnterFloor7TerminateMetric
359    )
360    SUBGOAL_METRIC = DummySubGoalMetric
361
362
363class RunesOfVirtue2DeathScreenTestTracker(RunesOfVirtueTestTracker):
364    """Ends an episode when the death / game over screen is shown."""
365
366    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2DeathScreenTerminateMetric
367    SUBGOAL_METRIC = DummySubGoalMetric
368
369
370class RunesOfVirtue1KingDialogTestTracker(RunesOfVirtueTestTracker):
371    """Ends an episode when the player is in dialog with the king."""
372
373    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1KingDialogTerminateMetric
374    SUBGOAL_METRIC = DummySubGoalMetric
375
376
377class RunesOfVirtue1ChucklesDialogTestTracker(RunesOfVirtueTestTracker):
378    """Ends an episode when the player is in dialog with Chuckles."""
379
380    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1ChucklesDialogTerminateMetric
381    SUBGOAL_METRIC = DummySubGoalMetric
382
383
384class RunesOfVirtue1GnuGnu1DialogTestTracker(RunesOfVirtueTestTracker):
385    """Ends an episode when the player is in dialog with Gnu Gnu at his 1st store."""
386
387    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1GnuGnu1DialogTerminateMetric
388    SUBGOAL_METRIC = DummySubGoalMetric
389
390
391class RunesOfVirtue1GnuGnu2DialogTestTracker(RunesOfVirtueTestTracker):
392    """Ends an episode when the player is in dialog with Gnu Gnu at his 2nd store."""
393
394    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1GnuGnu2DialogTerminateMetric
395    SUBGOAL_METRIC = DummySubGoalMetric
396
397
398class RunesOfVirtue1SherryDialogTestTracker(RunesOfVirtueTestTracker):
399    """Ends an episode when the player is in dialog with Sherry."""
400
401    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1SherryDialogTerminateMetric
402    SUBGOAL_METRIC = DummySubGoalMetric
403
404
405class RunesOfVirtue1CavernOfHatredTestTracker(RunesOfVirtueTestTracker):
406    """Ends an episode when the player has entered the Cavern of Hatred."""
407
408    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1CavernOfHatredTerminateMetric
409    SUBGOAL_METRIC = DummySubGoalMetric
410
411
412class RunesOfVirtue1CavernOfDeceitTestTracker(RunesOfVirtueTestTracker):
413    """Ends an episode when the player has entered the Cavern of Deceit."""
414
415    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1CavernOfDeceitTerminateMetric
416    SUBGOAL_METRIC = DummySubGoalMetric
417
418
419class RunesOfVirtue1CavernOfCowardiceTestTracker(RunesOfVirtueTestTracker):
420    """Ends an episode when the player has entered the Cavern of Cowardice."""
421
422    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1CavernOfCowardiceTerminateMetric
423    SUBGOAL_METRIC = DummySubGoalMetric
424
425
426class RunesOfVirtue1CavernOfCowardiceEnterFloor2TestTracker(
427    RunesOfVirtueTestTracker
428):
429    """Ends an episode when the player enters floor 2 of the Cavern of Cowardice."""
430
431    TERMINATION_TRUNCATION_METRIC = (
432        RunesOfVirtue1CavernOfCowardiceEnterFloor2TerminateMetric
433    )
434    SUBGOAL_METRIC = DummySubGoalMetric
435
436
437class RunesOfVirtue1CavernOfCowardiceEnterFloor3TestTracker(
438    RunesOfVirtueTestTracker
439):
440    """Ends an episode when the player enters floor 3 of the Cavern of Cowardice."""
441
442    TERMINATION_TRUNCATION_METRIC = (
443        RunesOfVirtue1CavernOfCowardiceEnterFloor3TerminateMetric
444    )
445    SUBGOAL_METRIC = DummySubGoalMetric
446
447
448class RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTestTracker(
449    RunesOfVirtueTestTracker
450):
451    """Ends an episode when the player opens the floor 3 chest in the Cavern of Cowardice."""
452
453    TERMINATION_TRUNCATION_METRIC = (
454        RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTerminateMetric
455    )
456    SUBGOAL_METRIC = DummySubGoalMetric
457
458
459class RunesOfVirtue1CavernOfCowardiceEnterFloor4TestTracker(
460    RunesOfVirtueTestTracker
461):
462    """Ends an episode when the player enters floor 4 of the Cavern of Cowardice."""
463
464    TERMINATION_TRUNCATION_METRIC = (
465        RunesOfVirtue1CavernOfCowardiceEnterFloor4TerminateMetric
466    )
467    SUBGOAL_METRIC = DummySubGoalMetric
468
469
470class RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTestTracker(
471    RunesOfVirtueTestTracker
472):
473    """Ends an episode when the player is in dialog with Sherry on floor 4 of the Cavern of Cowardice."""
474
475    TERMINATION_TRUNCATION_METRIC = (
476        RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTerminateMetric
477    )
478    SUBGOAL_METRIC = DummySubGoalMetric
479
480
481class RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TestTracker(
482    RunesOfVirtueTestTracker
483):
484    """Ends an episode when the player takes stew on floor 4 of the Cavern of Cowardice."""
485
486    TERMINATION_TRUNCATION_METRIC = (
487        RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TerminateMetric
488    )
489    SUBGOAL_METRIC = DummySubGoalMetric
490
491
492class RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TestTracker(
493    RunesOfVirtueTestTracker
494):
495    """Ends an episode when the player obtains the coin on floor 4 of the Cavern of Cowardice."""
496
497    TERMINATION_TRUNCATION_METRIC = (
498        RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TerminateMetric
499    )
500    SUBGOAL_METRIC = DummySubGoalMetric
501
502
503class RunesOfVirtue1DrCatDialogTestTracker(RunesOfVirtueTestTracker):
504    """Ends an episode when the player is in dialog with Dr. Cat."""
505
506    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1DrCatDialogTerminateMetric
507    SUBGOAL_METRIC = DummySubGoalMetric
508
509
510class RunesOfVirtue1DrCatCatsLairDialogTestTracker(RunesOfVirtueTestTracker):
511    """Ends an episode when the player is in dialog with Dr. Cat in the Cat's Lair."""
512
513    TERMINATION_TRUNCATION_METRIC = (
514        RunesOfVirtue1DrCatCatsLairDialogTerminateMetric
515    )
516    SUBGOAL_METRIC = DummySubGoalMetric
517
518
519class RunesOfVirtue1ShipRiddenTestTracker(RunesOfVirtueTestTracker):
520    """Ends an episode when the player rides the ship."""
521
522    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1ShipRiddenTerminateMetric
523    SUBGOAL_METRIC = DummySubGoalMetric
524
525
526class RunesOfVirtue1BasementLadderUnlockedTestTracker(RunesOfVirtueTestTracker):
527    """Ends an episode when the player unlocks the basement ladder."""
528
529    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1BasementLadderUnlockedTerminateMetric
530    SUBGOAL_METRIC = DummySubGoalMetric
531
532
533class RunesOfVirtue1BasementChestOpenedTestTracker(RunesOfVirtueTestTracker):
534    """Ends an episode when the player opens the basement chest."""
535
536    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1BasementChestOpenedTerminateMetric
537    SUBGOAL_METRIC = DummySubGoalMetric
538
539
540class RunesOfVirtue1CavernOfHatredEnterFloor2TestTracker(RunesOfVirtueTestTracker):
541    """Ends an episode when the player enters floor 2 of the Cavern of Hatred."""
542
543    TERMINATION_TRUNCATION_METRIC = (
544        RunesOfVirtue1CavernOfHatredEnterFloor2TerminateMetric
545    )
546    SUBGOAL_METRIC = DummySubGoalMetric
547
548
549class RunesOfVirtue1CavernOfHatredSherryFloor2DialogTestTracker(
550    RunesOfVirtueTestTracker
551):
552    """Ends an episode when Sherry's floor 2 dialog is on screen in the Cavern of Hatred."""
553
554    TERMINATION_TRUNCATION_METRIC = (
555        RunesOfVirtue1CavernOfHatredSherryFloor2DialogTerminateMetric
556    )
557    SUBGOAL_METRIC = DummySubGoalMetric
558
559
560class RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTestTracker(
561    RunesOfVirtueTestTracker
562):
563    """Ends an episode when Sherry asks the player to choose a door in the Cavern of Hatred."""
564
565    TERMINATION_TRUNCATION_METRIC = (
566        RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTerminateMetric
567    )
568    SUBGOAL_METRIC = DummySubGoalMetric
569
570
571class RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTestTracker(
572    RunesOfVirtueTestTracker
573):
574    """Ends an episode when Melissa's dialog is on screen after choosing the right door."""
575
576    TERMINATION_TRUNCATION_METRIC = (
577        RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTerminateMetric
578    )
579    SUBGOAL_METRIC = DummySubGoalMetric
580
581
582class RunesOfVirtue1CavernOfHatredEnterFloor3TestTracker(RunesOfVirtueTestTracker):
583    """Ends an episode when the player enters floor 3 of the Cavern of Hatred."""
584
585    TERMINATION_TRUNCATION_METRIC = (
586        RunesOfVirtue1CavernOfHatredEnterFloor3TerminateMetric
587    )
588    SUBGOAL_METRIC = DummySubGoalMetric
589
590
591class RunesOfVirtue1CavernOfHatredEnterFloor4TestTracker(RunesOfVirtueTestTracker):
592    """Ends an episode when the player enters floor 4 of the Cavern of Hatred."""
593
594    TERMINATION_TRUNCATION_METRIC = (
595        RunesOfVirtue1CavernOfHatredEnterFloor4TerminateMetric
596    )
597    SUBGOAL_METRIC = DummySubGoalMetric
598
599
600class RunesOfVirtue1CavernOfHatredChestFloor1OpenedTestTracker(
601    RunesOfVirtueTestTracker
602):
603    """Ends an episode when the player opens the floor 1 chest in the Cavern of Hatred."""
604
605    TERMINATION_TRUNCATION_METRIC = (
606        RunesOfVirtue1CavernOfHatredChestFloor1OpenedTerminateMetric
607    )
608    SUBGOAL_METRIC = DummySubGoalMetric
609
610
611class RunesOfVirtue1TelescopeViewTestTracker(RunesOfVirtueTestTracker):
612    """Ends an episode when the player is looking through the telescope."""
613
614    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1TelescopeViewTerminateMetric
615    SUBGOAL_METRIC = DummySubGoalMetric
616
617
618class RunesOfVirtue1DeathScreenTestTracker(RunesOfVirtueTestTracker):
619    """Ends an episode when the death / game over screen is shown."""
620
621    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1DeathScreenTerminateMetric
622    SUBGOAL_METRIC = DummySubGoalMetric
class CoreRunesOfVirtueTracker(gameboy_worlds.emulation.tracker.StateTracker):
75class CoreRunesOfVirtueTracker(StateTracker):
76    """
77    StateTracker for core Runes of Virtue metrics.
78    """
79
80    def start(self):
81        super().start()
82        self.metric_classes.extend([CoreRunesOfVirtueMetrics])

StateTracker for core Runes of Virtue metrics.

def start(self):
80    def start(self):
81        super().start()
82        self.metric_classes.extend([CoreRunesOfVirtueMetrics])

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

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

class RunesOfVirtueOCRTracker(CoreRunesOfVirtueTracker):
85class RunesOfVirtueOCRTracker(CoreRunesOfVirtueTracker):
86    """
87    StateTracker for core Runes of Virtue metrics and OCR region captures.
88    """
89
90    def start(self):
91        super().start()
92        self.metric_classes.extend([RunesOfVirtueOCRMetric])

StateTracker for core Runes of Virtue metrics and OCR region captures.

def start(self):
90    def start(self):
91        super().start()
92        self.metric_classes.extend([RunesOfVirtueOCRMetric])

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

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

class RunesOfVirtueTestTracker(gameboy_worlds.emulation.tracker.TestTrackerMixin, RunesOfVirtueOCRTracker):
 95class RunesOfVirtueTestTracker(TestTrackerMixin, RunesOfVirtueOCRTracker):
 96    """
 97    Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Runes of Virtue games.
 98    """
 99
100    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1OpenMenuTerminateMetric
101    SUBGOAL_METRIC = DummySubGoalMetric

Inherit this class and set TERMINATION_TRUNCATION_METRIC to create a TestTracker for Runes of Virtue games.

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

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

class RunesOfVirtue1OpenMenuTestTracker(RunesOfVirtueTestTracker):
104class RunesOfVirtue1OpenMenuTestTracker(RunesOfVirtueTestTracker):
105    """
106    A TestTracker for Runes of Virtue 1 that ends an episode when the player opens the inventory menu.
107    """
108
109    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1OpenMenuTerminateMetric
110    SUBGOAL_METRIC = DummySubGoalMetric

A TestTracker for Runes of Virtue 1 that ends an episode when the player opens the inventory menu.

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

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

class RunesOfVirtue2OpenMenuTestTracker(RunesOfVirtueTestTracker):
113class RunesOfVirtue2OpenMenuTestTracker(RunesOfVirtueTestTracker):
114    """
115    A TestTracker for Runes of Virtue 2 that ends an episode when the player opens the inventory menu.
116    """
117
118    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2OpenMenuTerminateMetric
119    SUBGOAL_METRIC = DummySubGoalMetric

A TestTracker for Runes of Virtue 2 that ends an episode when the player opens the inventory menu.

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

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

class RunesOfVirtue2ReadBookTestTracker(RunesOfVirtueTestTracker):
122class RunesOfVirtue2ReadBookTestTracker(RunesOfVirtueTestTracker):
123    """Ends an episode when the player opens a book."""
124
125    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2ReadBookTerminateMetric
126    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player opens a book.

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

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

class RunesOfVirtue2BlockedRoomEnteredTestTracker(RunesOfVirtueTestTracker):
129class RunesOfVirtue2BlockedRoomEnteredTestTracker(RunesOfVirtueTestTracker):
130    """Ends an episode when the player has entered the blocked room."""
131
132    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2BlockedRoomEnteredTerminateMetric
133    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player has entered the blocked room.

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

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

class RunesOfVirtue2NystulDialogTestTracker(RunesOfVirtueTestTracker):
136class RunesOfVirtue2NystulDialogTestTracker(RunesOfVirtueTestTracker):
137    """Ends an episode when the player is in dialog with Nystul."""
138
139    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2NystulDialogTerminateMetric
140    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Nystul.

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

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

class RunesOfVirtue2BlacksmithFailBuyShieldTestTracker(RunesOfVirtueTestTracker):
143class RunesOfVirtue2BlacksmithFailBuyShieldTestTracker(RunesOfVirtueTestTracker):
144    """Ends an episode when the blacksmith's failed shield purchase dialog is shown."""
145
146    TERMINATION_TRUNCATION_METRIC = (
147        RunesOfVirtue2BlacksmithFailBuyShieldTerminateMetric
148    )
149    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the blacksmith's failed shield purchase dialog is shown.

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

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

class RunesOfVirtue2SherryMouseDialogTestTracker(RunesOfVirtueTestTracker):
152class RunesOfVirtue2SherryMouseDialogTestTracker(RunesOfVirtueTestTracker):
153    """Ends an episode when Sherry the mouse's dialog is shown."""
154
155    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2SherryMouseDialogTerminateMetric
156    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when Sherry the mouse's dialog is shown.

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

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

class RunesOfVirtue2SandyCookDialogTestTracker(RunesOfVirtueTestTracker):
159class RunesOfVirtue2SandyCookDialogTestTracker(RunesOfVirtueTestTracker):
160    """Ends an episode when Sandy the cook's dialog is shown."""
161
162    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2SandyCookDialogTerminateMetric
163    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when Sandy the cook's dialog is shown.

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

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

class RunesOfVirtue2LordWhitsaberDialogTestTracker(RunesOfVirtueTestTracker):
166class RunesOfVirtue2LordWhitsaberDialogTestTracker(RunesOfVirtueTestTracker):
167    """Ends an episode when Lord Whitsaber's dialog is shown."""
168
169    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2LordWhitsaberDialogTerminateMetric
170    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when Lord Whitsaber's dialog is shown.

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

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

class RunesOfVirtue2CaveOfDishonourTestTracker(RunesOfVirtueTestTracker):
173class RunesOfVirtue2CaveOfDishonourTestTracker(RunesOfVirtueTestTracker):
174    """Ends an episode when the player has entered the Cave of Dishonour."""
175
176    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CaveOfDishonourTerminateMetric
177    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player has entered the Cave of Dishonour.

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

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

class RunesOfVirtue2CavernOfHatredTestTracker(RunesOfVirtueTestTracker):
180class RunesOfVirtue2CavernOfHatredTestTracker(RunesOfVirtueTestTracker):
181    """Ends an episode when the player has entered the Cavern of Hatred."""
182
183    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CavernOfHatredTerminateMetric
184    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player has entered the Cavern of Hatred.

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

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

class RunesOfVirtue2CaveOfDishonourEnterFloor2TestTracker(RunesOfVirtueTestTracker):
187class RunesOfVirtue2CaveOfDishonourEnterFloor2TestTracker(RunesOfVirtueTestTracker):
188    """Ends an episode when the player enters floor 2 in the Cave of Dishonour."""
189
190    TERMINATION_TRUNCATION_METRIC = (
191        RunesOfVirtue2CaveOfDishonourEnterFloor2TerminateMetric
192    )
193    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 2 in the Cave of Dishonour.

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

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

class RunesOfVirtue2CaveOfDishonourEnterFloor3TestTracker(RunesOfVirtueTestTracker):
196class RunesOfVirtue2CaveOfDishonourEnterFloor3TestTracker(RunesOfVirtueTestTracker):
197    """Ends an episode when the player enters floor 3 in the Cave of Dishonour."""
198
199    TERMINATION_TRUNCATION_METRIC = (
200        RunesOfVirtue2CaveOfDishonourEnterFloor3TerminateMetric
201    )
202    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 3 in the Cave of Dishonour.

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

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

class RunesOfVirtue2GrabCheeseFromKitchenTestTracker(RunesOfVirtueTestTracker):
205class RunesOfVirtue2GrabCheeseFromKitchenTestTracker(RunesOfVirtueTestTracker):
206    """Ends an episode when the player grabs the cheese from the kitchen."""
207
208    TERMINATION_TRUNCATION_METRIC = (
209        RunesOfVirtue2GrabCheeseFromKitchenTerminateMetric
210    )
211    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player grabs the cheese from the kitchen.

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

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

class RunesOfVirtue2GiveCheeseToSherryTestTracker(RunesOfVirtueTestTracker):
214class RunesOfVirtue2GiveCheeseToSherryTestTracker(RunesOfVirtueTestTracker):
215    """Ends an episode when the player gives the cheese to Sherry."""
216
217    TERMINATION_TRUNCATION_METRIC = (
218        RunesOfVirtue2GiveCheeseToSherryTerminateMetric
219    )
220    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player gives the cheese to Sherry.

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

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

class RunesOfVirtue2ClimbLadderBehindLockedDoorTestTracker(RunesOfVirtueTestTracker):
223class RunesOfVirtue2ClimbLadderBehindLockedDoorTestTracker(
224    RunesOfVirtueTestTracker
225):
226    """Ends an episode when the player climbs the ladder behind the locked door."""
227
228    TERMINATION_TRUNCATION_METRIC = (
229        RunesOfVirtue2ClimbLadderBehindLockedDoorTerminateMetric
230    )
231    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player climbs the ladder behind the locked door.

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

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

class RunesOfVirtue2InteractWithMapOnTableTestTracker(RunesOfVirtueTestTracker):
234class RunesOfVirtue2InteractWithMapOnTableTestTracker(RunesOfVirtueTestTracker):
235    """Ends an episode when the player interacts with the map on the table."""
236
237    TERMINATION_TRUNCATION_METRIC = (
238        RunesOfVirtue2InteractWithMapOnTableTerminateMetric
239    )
240    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player interacts with the map on the table.

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

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

class RunesOfVirtue2FindLadderBackFromCastleTestTracker(RunesOfVirtueTestTracker):
243class RunesOfVirtue2FindLadderBackFromCastleTestTracker(RunesOfVirtueTestTracker):
244    """Ends an episode when the player finds a ladder back from the castle."""
245
246    TERMINATION_TRUNCATION_METRIC = (
247        RunesOfVirtue2FindLadderBackFromCastleTerminateMetric
248    )
249    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player finds a ladder back from the castle.

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

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

class RunesOfVirtue2UnlockDoorAndSaveTholdenTestTracker(RunesOfVirtueTestTracker):
252class RunesOfVirtue2UnlockDoorAndSaveTholdenTestTracker(
253    RunesOfVirtueTestTracker
254):
255    """Ends an episode when the player unlocks the door and saves Tholden."""
256
257    TERMINATION_TRUNCATION_METRIC = (
258        RunesOfVirtue2UnlockDoorAndSaveTholdenTerminateMetric
259    )
260    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player unlocks the door and saves Tholden.

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

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

class RunesOfVirtue2FindLadderOutOfCavernOfHatredTestTracker(RunesOfVirtueTestTracker):
263class RunesOfVirtue2FindLadderOutOfCavernOfHatredTestTracker(
264    RunesOfVirtueTestTracker
265):
266    """Ends an episode when the player finds a ladder out of the Cavern of Hatred."""
267
268    TERMINATION_TRUNCATION_METRIC = (
269        RunesOfVirtue2FindLadderOutOfCavernOfHatredTerminateMetric
270    )
271    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player finds a ladder out of the Cavern of Hatred.

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

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

class RunesOfVirtue2BringTholdenBackToKingTestTracker(RunesOfVirtueTestTracker):
274class RunesOfVirtue2BringTholdenBackToKingTestTracker(RunesOfVirtueTestTracker):
275    """Ends an episode when the player brings Tholden back to the king."""
276
277    TERMINATION_TRUNCATION_METRIC = (
278        RunesOfVirtue2BringTholdenBackToKingTerminateMetric
279    )
280    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player brings Tholden back to the king.

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

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

class RunesOfVirtue2AttendCastleCeremonyTestTracker(RunesOfVirtueTestTracker):
283class RunesOfVirtue2AttendCastleCeremonyTestTracker(RunesOfVirtueTestTracker):
284    """Ends an episode when the player attends the ceremony in the castle."""
285
286    TERMINATION_TRUNCATION_METRIC = (
287        RunesOfVirtue2AttendCastleCeremonyTerminateMetric
288    )
289    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player attends the ceremony in the castle.

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

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

class RunesOfVirtue2CavernOfHatredGate1UnlockedTestTracker(RunesOfVirtueTestTracker):
292class RunesOfVirtue2CavernOfHatredGate1UnlockedTestTracker(
293    RunesOfVirtueTestTracker
294):
295    """Ends an episode when the first Cavern of Hatred gate is unlocked."""
296
297    TERMINATION_TRUNCATION_METRIC = (
298        RunesOfVirtue2CavernOfHatredGate1UnlockedTerminateMetric
299    )
300    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the first Cavern of Hatred gate is unlocked.

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

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

class RunesOfVirtue2CavernOfHatredLadderRoom2TestTracker(RunesOfVirtueTestTracker):
303class RunesOfVirtue2CavernOfHatredLadderRoom2TestTracker(
304    RunesOfVirtueTestTracker
305):
306    """Ends an episode when the player enters the second ladder room in the Cavern of Hatred."""
307
308    TERMINATION_TRUNCATION_METRIC = (
309        RunesOfVirtue2CavernOfHatredLadderRoom2TerminateMetric
310    )
311    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters the second ladder room in the Cavern of Hatred.

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

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

class RunesOfVirtue2CavernOfHatredLadder2TestTracker(RunesOfVirtueTestTracker):
314class RunesOfVirtue2CavernOfHatredLadder2TestTracker(RunesOfVirtueTestTracker):
315    """Ends an episode when the player reaches the second ladder in the Cavern of Hatred."""
316
317    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CavernOfHatredLadder2TerminateMetric
318    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player reaches the second ladder in the Cavern of Hatred.

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

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

class RunesOfVirtue2CavernOfHatredGrabKeyTestTracker(RunesOfVirtueTestTracker):
321class RunesOfVirtue2CavernOfHatredGrabKeyTestTracker(RunesOfVirtueTestTracker):
322    """Ends an episode when the player grabs the key in the Cavern of Hatred."""
323
324    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2CavernOfHatredGrabKeyTerminateMetric
325    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player grabs the key in the Cavern of Hatred.

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

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

class RunesOfVirtue2CavernOfHatredEnterFloor4TestTracker(RunesOfVirtueTestTracker):
328class RunesOfVirtue2CavernOfHatredEnterFloor4TestTracker(RunesOfVirtueTestTracker):
329    """Ends an episode when the player enters floor 4 in the Cavern of Hatred."""
330
331    TERMINATION_TRUNCATION_METRIC = (
332        RunesOfVirtue2CavernOfHatredEnterFloor4TerminateMetric
333    )
334    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 4 in the Cavern of Hatred.

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

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

class RunesOfVirtue2CavernOfHatredEnterFloor5TestTracker(RunesOfVirtueTestTracker):
337class RunesOfVirtue2CavernOfHatredEnterFloor5TestTracker(RunesOfVirtueTestTracker):
338    """Ends an episode when the player enters floor 5 in the Cavern of Hatred."""
339
340    TERMINATION_TRUNCATION_METRIC = (
341        RunesOfVirtue2CavernOfHatredEnterFloor5TerminateMetric
342    )
343    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 5 in the Cavern of Hatred.

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

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

class RunesOfVirtue2CavernOfHatredEnterFloor6TestTracker(RunesOfVirtueTestTracker):
346class RunesOfVirtue2CavernOfHatredEnterFloor6TestTracker(RunesOfVirtueTestTracker):
347    """Ends an episode when the player enters floor 6 in the Cavern of Hatred."""
348
349    TERMINATION_TRUNCATION_METRIC = (
350        RunesOfVirtue2CavernOfHatredEnterFloor6TerminateMetric
351    )
352    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 6 in the Cavern of Hatred.

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

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

class RunesOfVirtue2CavernOfHatredEnterFloor7TestTracker(RunesOfVirtueTestTracker):
355class RunesOfVirtue2CavernOfHatredEnterFloor7TestTracker(RunesOfVirtueTestTracker):
356    """Ends an episode when the player enters floor 7 in the Cavern of Hatred."""
357
358    TERMINATION_TRUNCATION_METRIC = (
359        RunesOfVirtue2CavernOfHatredEnterFloor7TerminateMetric
360    )
361    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 7 in the Cavern of Hatred.

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

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

class RunesOfVirtue2DeathScreenTestTracker(RunesOfVirtueTestTracker):
364class RunesOfVirtue2DeathScreenTestTracker(RunesOfVirtueTestTracker):
365    """Ends an episode when the death / game over screen is shown."""
366
367    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue2DeathScreenTerminateMetric
368    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the death / game over screen is shown.

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

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

class RunesOfVirtue1KingDialogTestTracker(RunesOfVirtueTestTracker):
371class RunesOfVirtue1KingDialogTestTracker(RunesOfVirtueTestTracker):
372    """Ends an episode when the player is in dialog with the king."""
373
374    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1KingDialogTerminateMetric
375    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with the king.

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

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

class RunesOfVirtue1ChucklesDialogTestTracker(RunesOfVirtueTestTracker):
378class RunesOfVirtue1ChucklesDialogTestTracker(RunesOfVirtueTestTracker):
379    """Ends an episode when the player is in dialog with Chuckles."""
380
381    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1ChucklesDialogTerminateMetric
382    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Chuckles.

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

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

class RunesOfVirtue1GnuGnu1DialogTestTracker(RunesOfVirtueTestTracker):
385class RunesOfVirtue1GnuGnu1DialogTestTracker(RunesOfVirtueTestTracker):
386    """Ends an episode when the player is in dialog with Gnu Gnu at his 1st store."""
387
388    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1GnuGnu1DialogTerminateMetric
389    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Gnu Gnu at his 1st store.

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

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

class RunesOfVirtue1GnuGnu2DialogTestTracker(RunesOfVirtueTestTracker):
392class RunesOfVirtue1GnuGnu2DialogTestTracker(RunesOfVirtueTestTracker):
393    """Ends an episode when the player is in dialog with Gnu Gnu at his 2nd store."""
394
395    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1GnuGnu2DialogTerminateMetric
396    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Gnu Gnu at his 2nd store.

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

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

class RunesOfVirtue1SherryDialogTestTracker(RunesOfVirtueTestTracker):
399class RunesOfVirtue1SherryDialogTestTracker(RunesOfVirtueTestTracker):
400    """Ends an episode when the player is in dialog with Sherry."""
401
402    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1SherryDialogTerminateMetric
403    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Sherry.

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

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

class RunesOfVirtue1CavernOfHatredTestTracker(RunesOfVirtueTestTracker):
406class RunesOfVirtue1CavernOfHatredTestTracker(RunesOfVirtueTestTracker):
407    """Ends an episode when the player has entered the Cavern of Hatred."""
408
409    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1CavernOfHatredTerminateMetric
410    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player has entered the Cavern of Hatred.

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

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

class RunesOfVirtue1CavernOfDeceitTestTracker(RunesOfVirtueTestTracker):
413class RunesOfVirtue1CavernOfDeceitTestTracker(RunesOfVirtueTestTracker):
414    """Ends an episode when the player has entered the Cavern of Deceit."""
415
416    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1CavernOfDeceitTerminateMetric
417    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player has entered the Cavern of Deceit.

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

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

class RunesOfVirtue1CavernOfCowardiceTestTracker(RunesOfVirtueTestTracker):
420class RunesOfVirtue1CavernOfCowardiceTestTracker(RunesOfVirtueTestTracker):
421    """Ends an episode when the player has entered the Cavern of Cowardice."""
422
423    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1CavernOfCowardiceTerminateMetric
424    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player has entered the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceEnterFloor2TestTracker(RunesOfVirtueTestTracker):
427class RunesOfVirtue1CavernOfCowardiceEnterFloor2TestTracker(
428    RunesOfVirtueTestTracker
429):
430    """Ends an episode when the player enters floor 2 of the Cavern of Cowardice."""
431
432    TERMINATION_TRUNCATION_METRIC = (
433        RunesOfVirtue1CavernOfCowardiceEnterFloor2TerminateMetric
434    )
435    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 2 of the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceEnterFloor3TestTracker(RunesOfVirtueTestTracker):
438class RunesOfVirtue1CavernOfCowardiceEnterFloor3TestTracker(
439    RunesOfVirtueTestTracker
440):
441    """Ends an episode when the player enters floor 3 of the Cavern of Cowardice."""
442
443    TERMINATION_TRUNCATION_METRIC = (
444        RunesOfVirtue1CavernOfCowardiceEnterFloor3TerminateMetric
445    )
446    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 3 of the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTestTracker(RunesOfVirtueTestTracker):
449class RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTestTracker(
450    RunesOfVirtueTestTracker
451):
452    """Ends an episode when the player opens the floor 3 chest in the Cavern of Cowardice."""
453
454    TERMINATION_TRUNCATION_METRIC = (
455        RunesOfVirtue1CavernOfCowardiceFloor3ChestOpenedTerminateMetric
456    )
457    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player opens the floor 3 chest in the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceEnterFloor4TestTracker(RunesOfVirtueTestTracker):
460class RunesOfVirtue1CavernOfCowardiceEnterFloor4TestTracker(
461    RunesOfVirtueTestTracker
462):
463    """Ends an episode when the player enters floor 4 of the Cavern of Cowardice."""
464
465    TERMINATION_TRUNCATION_METRIC = (
466        RunesOfVirtue1CavernOfCowardiceEnterFloor4TerminateMetric
467    )
468    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 4 of the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTestTracker(RunesOfVirtueTestTracker):
471class RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTestTracker(
472    RunesOfVirtueTestTracker
473):
474    """Ends an episode when the player is in dialog with Sherry on floor 4 of the Cavern of Cowardice."""
475
476    TERMINATION_TRUNCATION_METRIC = (
477        RunesOfVirtue1CavernOfCowardiceSherryFloor4DialogTerminateMetric
478    )
479    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Sherry on floor 4 of the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TestTracker(RunesOfVirtueTestTracker):
482class RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TestTracker(
483    RunesOfVirtueTestTracker
484):
485    """Ends an episode when the player takes stew on floor 4 of the Cavern of Cowardice."""
486
487    TERMINATION_TRUNCATION_METRIC = (
488        RunesOfVirtue1CavernOfCowardiceTakeStewFloor4TerminateMetric
489    )
490    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player takes stew on floor 4 of the Cavern of Cowardice.

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

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

class RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TestTracker(RunesOfVirtueTestTracker):
493class RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TestTracker(
494    RunesOfVirtueTestTracker
495):
496    """Ends an episode when the player obtains the coin on floor 4 of the Cavern of Cowardice."""
497
498    TERMINATION_TRUNCATION_METRIC = (
499        RunesOfVirtue1CavernOfCowardiceObtainCoinFloor4TerminateMetric
500    )
501    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player obtains the coin on floor 4 of the Cavern of Cowardice.

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

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

class RunesOfVirtue1DrCatDialogTestTracker(RunesOfVirtueTestTracker):
504class RunesOfVirtue1DrCatDialogTestTracker(RunesOfVirtueTestTracker):
505    """Ends an episode when the player is in dialog with Dr. Cat."""
506
507    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1DrCatDialogTerminateMetric
508    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Dr. Cat.

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

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

class RunesOfVirtue1DrCatCatsLairDialogTestTracker(RunesOfVirtueTestTracker):
511class RunesOfVirtue1DrCatCatsLairDialogTestTracker(RunesOfVirtueTestTracker):
512    """Ends an episode when the player is in dialog with Dr. Cat in the Cat's Lair."""
513
514    TERMINATION_TRUNCATION_METRIC = (
515        RunesOfVirtue1DrCatCatsLairDialogTerminateMetric
516    )
517    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is in dialog with Dr. Cat in the Cat's Lair.

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

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

class RunesOfVirtue1ShipRiddenTestTracker(RunesOfVirtueTestTracker):
520class RunesOfVirtue1ShipRiddenTestTracker(RunesOfVirtueTestTracker):
521    """Ends an episode when the player rides the ship."""
522
523    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1ShipRiddenTerminateMetric
524    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player rides the ship.

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

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

class RunesOfVirtue1BasementLadderUnlockedTestTracker(RunesOfVirtueTestTracker):
527class RunesOfVirtue1BasementLadderUnlockedTestTracker(RunesOfVirtueTestTracker):
528    """Ends an episode when the player unlocks the basement ladder."""
529
530    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1BasementLadderUnlockedTerminateMetric
531    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player unlocks the basement ladder.

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

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

class RunesOfVirtue1BasementChestOpenedTestTracker(RunesOfVirtueTestTracker):
534class RunesOfVirtue1BasementChestOpenedTestTracker(RunesOfVirtueTestTracker):
535    """Ends an episode when the player opens the basement chest."""
536
537    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1BasementChestOpenedTerminateMetric
538    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player opens the basement chest.

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

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

class RunesOfVirtue1CavernOfHatredEnterFloor2TestTracker(RunesOfVirtueTestTracker):
541class RunesOfVirtue1CavernOfHatredEnterFloor2TestTracker(RunesOfVirtueTestTracker):
542    """Ends an episode when the player enters floor 2 of the Cavern of Hatred."""
543
544    TERMINATION_TRUNCATION_METRIC = (
545        RunesOfVirtue1CavernOfHatredEnterFloor2TerminateMetric
546    )
547    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 2 of the Cavern of Hatred.

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

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

class RunesOfVirtue1CavernOfHatredSherryFloor2DialogTestTracker(RunesOfVirtueTestTracker):
550class RunesOfVirtue1CavernOfHatredSherryFloor2DialogTestTracker(
551    RunesOfVirtueTestTracker
552):
553    """Ends an episode when Sherry's floor 2 dialog is on screen in the Cavern of Hatred."""
554
555    TERMINATION_TRUNCATION_METRIC = (
556        RunesOfVirtue1CavernOfHatredSherryFloor2DialogTerminateMetric
557    )
558    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when Sherry's floor 2 dialog is on screen in the Cavern of Hatred.

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

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

class RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTestTracker(RunesOfVirtueTestTracker):
561class RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTestTracker(
562    RunesOfVirtueTestTracker
563):
564    """Ends an episode when Sherry asks the player to choose a door in the Cavern of Hatred."""
565
566    TERMINATION_TRUNCATION_METRIC = (
567        RunesOfVirtue1CavernOfHatredChooseDoorWithSherryTerminateMetric
568    )
569    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when Sherry asks the player to choose a door in the Cavern of Hatred.

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

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

class RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTestTracker(RunesOfVirtueTestTracker):
572class RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTestTracker(
573    RunesOfVirtueTestTracker
574):
575    """Ends an episode when Melissa's dialog is on screen after choosing the right door."""
576
577    TERMINATION_TRUNCATION_METRIC = (
578        RunesOfVirtue1CavernOfHatredChooseRightDoorMelissaDialogTerminateMetric
579    )
580    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when Melissa's dialog is on screen after choosing the right door.

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

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

class RunesOfVirtue1CavernOfHatredEnterFloor3TestTracker(RunesOfVirtueTestTracker):
583class RunesOfVirtue1CavernOfHatredEnterFloor3TestTracker(RunesOfVirtueTestTracker):
584    """Ends an episode when the player enters floor 3 of the Cavern of Hatred."""
585
586    TERMINATION_TRUNCATION_METRIC = (
587        RunesOfVirtue1CavernOfHatredEnterFloor3TerminateMetric
588    )
589    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 3 of the Cavern of Hatred.

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

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

class RunesOfVirtue1CavernOfHatredEnterFloor4TestTracker(RunesOfVirtueTestTracker):
592class RunesOfVirtue1CavernOfHatredEnterFloor4TestTracker(RunesOfVirtueTestTracker):
593    """Ends an episode when the player enters floor 4 of the Cavern of Hatred."""
594
595    TERMINATION_TRUNCATION_METRIC = (
596        RunesOfVirtue1CavernOfHatredEnterFloor4TerminateMetric
597    )
598    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player enters floor 4 of the Cavern of Hatred.

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

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

class RunesOfVirtue1CavernOfHatredChestFloor1OpenedTestTracker(RunesOfVirtueTestTracker):
601class RunesOfVirtue1CavernOfHatredChestFloor1OpenedTestTracker(
602    RunesOfVirtueTestTracker
603):
604    """Ends an episode when the player opens the floor 1 chest in the Cavern of Hatred."""
605
606    TERMINATION_TRUNCATION_METRIC = (
607        RunesOfVirtue1CavernOfHatredChestFloor1OpenedTerminateMetric
608    )
609    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player opens the floor 1 chest in the Cavern of Hatred.

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

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

class RunesOfVirtue1TelescopeViewTestTracker(RunesOfVirtueTestTracker):
612class RunesOfVirtue1TelescopeViewTestTracker(RunesOfVirtueTestTracker):
613    """Ends an episode when the player is looking through the telescope."""
614
615    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1TelescopeViewTerminateMetric
616    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the player is looking through the telescope.

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

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

class RunesOfVirtue1DeathScreenTestTracker(RunesOfVirtueTestTracker):
619class RunesOfVirtue1DeathScreenTestTracker(RunesOfVirtueTestTracker):
620    """Ends an episode when the death / game over screen is shown."""
621
622    TERMINATION_TRUNCATION_METRIC = RunesOfVirtue1DeathScreenTerminateMetric
623    SUBGOAL_METRIC = DummySubGoalMetric

Ends an episode when the death / game over screen is shown.

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

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