test: extend coverage of run

This commit is contained in:
dualfroz committed 2026-09-13 22:32:24 +02:00
1 parent 8d0fb81ba9
commit 6127e3c377
1 file changed
+173
+173
View File
@@ -14747,6 +14747,179 @@ local order = {
"gameScavengeCorpseCarvesTheMatchingHerbAndClearsTheCorpse",
"gameScavengeCorpseFailsWithoutACorpseUnderfoot",
"gameScavengeCorpseFailsOnARottenCorpse",
"gameScavengeCorpseFailsForASpeciesWithNoKnownHerb",
"reanimationFieldsSurviveSerialization",
"herbItemsSurviveSerialization",
"potionOfFortificationAppliesAShield", "usingAFortifyPotionAppliesShieldAndConsumesIt",
"potionOfLevitationAppliesTheLevitateStatus", "usingAPotionOfLevitationAppliesLevitateAndConsumesIt",
"companionSummonPlacesItAdjacentToThePlayer", "companionSummonRejectsAnUnknownSpecies",
"companionSummonReplacesAnEarlierBond", "companionAttacksAdjacentHostileMonsterAndCanKillIt",
"companionAttacksADiagonallyAdjacentHostileMonsterJustLikeACardinalOne",
"companionAdvancesOnAVisibleMonsterItCannotYetReach", "companionIgnoresAMonsterBeyondItsSightRadius",
"companionActBlindedCompanionOnlyDetectsAnAdjacentHostileNotOneWithinItsSightRadius",
"companionActAttackingAnAdjacentMonsterEmitsNoiseThatCanStirADormantBystander",
"companionFollowsThePlayerWhenNoMonsterIsVisible",
"companionActConfusedCompanionSometimesStumblesInsteadOfFightingAnAdjacentHostile",
"companionActConfusedCompanionNeverAttacksThePlayerEvenIfTheStumbleAimsAtItsCell",
"hearthSpriteMendsThePlayerWhenIdle",
"useItemOnACharmBondsACompanionAndConsumesIt", "takeMonsterTurnRoutesACompanionThroughCompanionsAct",
"gameTakeMonsterTurnTicksAnInfectedCompanionsDiseaseExactlyLikeThePlayersOwnEndOfTurnDoes",
"aFallenCompanionIsLoggedAndSweptWithoutAwardingXp", "builderOccasionallyPlacesACharmFromDepthThree",
"charmsStayOffTheShallowestFloors", "companionFieldsSurviveSerialization",
"companionGainXpBelowFirstThresholdBanksXpWithoutEvolving",
"companionGainXpAtFirstThresholdEvolvesRenamesAndGrowsStats",
"companionGainXpCrossingBothThresholdsAtOnceAppliesBothStagesCumulatively",
"companionGainXpNeverReappliesAnAlreadyCrossedStage",
"companionGainXpAtMaxLevelJustBanksFurtherXpWithNoFurtherEvolution",
"companionGainXpIgnoresAZeroOrNegativeAmount",
"companionActCreditsItsOwnKillWithXpOnTopOfThePlayers",
"companionEvolutionBoostsAHearthSpriteHealingOnTopOfItsStaticRate",
"companionLevelXpAndHealBonusSurviveSerialization",
"artifactsCreateBuildsTheCatalogedItemShape", "lifestealWeaponHealsThePlayerOnAHit",
"thornedArmorReflectsDamageBackAtAMeleeAttacker", "thornedArmorCanKillAWeakAttacker",
"thornedArmorRespectsAFireImmuneAttacker", "thornedArmorIsHalvedAgainstAFireResistantAttacker",
"ringOfTheTideRegeneratesHpEachTurn", "piercingBowIgnoresPartOfTargetDefense",
"builderOccasionallyPlacesAnArtifactFromDepthFive", "artifactsStayOffFloorsAboveDepthFive",
"artifactFieldsSurviveSerialization",
"useItemOnAKitPlantsAHiddenTrapOnThePlayersTile", "plantingATrapWhereOneAlreadyExistsFails",
"aMonsterSteppingOntoAPlayerSetTrapSpringsIt",
"checkTrapForSkipsAndLeavesUndetectedForALevitatingMonster",
"movePlayerSkipsTheInlineTrapTriggerForALevitatingPlayer",
"aLethalTrapKillsAWeakMonsterAndCreditsThePlayer",
"aTeleportTrapRelocatesTheMonsterThatSpringsIt", "builderOccasionallyPlacesATrapKitFromDepthTwo",
"kitsStayOffTheEntranceFloor", "plantedTrapFieldsSurviveSerialization",
"bossCreateBuildsAFreshUnenragedBoss", "bossAtFullHealthDoesNotEnrage",
"bossEnragesOncePastItsHalfHpThresholdAndOnlyOnce", "bossLootMatchesItsCatalogEntry",
"bossOnlyArtifactsAreExcludedFromTheRandomBuilderRoll",
"builderOccasionallyPlacesABossFromDepthSix", "bossesStayOffFloorsAboveDepthSix",
"takeMonsterTurnEnragesABloodiedBossBeforeItsAiActs",
"defeatingABossGrantsBossXpAndDropsItsGuaranteedArtifact", "bossFieldsSurviveSerialization",
"questGenerateProducesACullBounty", "questGenerateProducesAHoardBounty",
"questGenerateProducesADepthBountyClampedToMaxDepth",
"questAcceptBindsThePlayerAndClaimsTheBoard", "questAcceptFailsWhenAlreadyHoldingOne",
"questAcceptFailsOnAnAlreadyClaimedBoard",
"questRegisterKillIncrementsOnlyMatchingSpeciesWhileActive",
"questResolvedDetectsEachKindsCompletion",
"gameResolveQuestPaysOutAndClearsAFulfilledBounty", "gameResolveQuestIsANoOpOnAnUnmetBounty",
"gameTryAcceptQuestBindsAndLogsWhenStandingOnAnUnclaimedBoard",
"autopilotAcceptsAnUnclaimedBountyForFreeWithoutSkippingItsTurn",
"autopilotSkipsAnAlreadyClaimedBoard", "autopilotDoesNotStackASecondBountyWhileOneIsActive",
"questBoardRendersItsGlyphAndFlipsOnceClaimed", "questFieldsSurviveSerialization",
"builderOccasionallyPlacesAQuestBoardFromDepthTwo", "questBoardsStayOffTheEntranceFloor",
"metaFreshStateHasNoRenownRunsOrAchievements",
"metaRenownForScalesWithDepthBossesAndQuestsAndAddsAWinBonus",
"metaRecordRunBanksRenownAndAdvancesTallies",
"metaRecordRunUnlocksMatchingAchievementsOnlyOnce",
"metaPurchaseSpendsRenownAndMarksThePerkOwned", "metaPurchaseFailsWithoutEnoughRenown",
"metaPurchaseFailsForAnAlreadyOwnedPerk", "metaPurchaseFailsForAnUnknownPerk",
"metaApplyAllAppliesEveryOwnedPerkToAFreshPlayer", "metaAppliedPerksLandBeneathAClassDelta",
"metaLoadReturnsFreshStateForAMissingFile", "metaSaveLoadRoundTrip",
"gameAwardKillTracksKillsAndBossKillsForMetaStats",
"gameResolveQuestTracksQuestsCompletedForMetaStats",
"gamePickupTracksArtifactsFoundForMetaStats", "gameDescendTracksDeepestDepthEvenAfterAscending",
"gameMetaStatsFieldsSurviveSerialization",
"resistancesDefaultTierPassesDamageThroughUnchanged", "resistancesResistHalvesAndFloors",
"resistancesWeakAmplifies", "resistancesImmuneZeroesEvenAHugeHit",
"resistancesEquipmentGrantsATierOnTopOfABaseProfile",
"resistancesInnateWeaknessIsMaskedByAResistantItem",
"combatDefenderResistanceHalvesTheFinalBlow",
"combatWeaponElementOverridesPhysicalAndCanBeFullyImmune",
"statusPoisonAndBurningTicksRespectResistance",
"statusPoisonShrugAndRegenKnitMessagesAddressThePlayerInSecondPerson",
"hazardsAfflictAppliesTargetResistance",
"spellMissileAndFireballRespectTargetResistance", "throwingAndRangedDamageRespectResistance",
"equippingCinderplateAndFrostbandGrantsTheirResist",
"disenchantingAnElementalAffixClearsItsDamageType",
"bossBreathDamageTypeMatchesTheMonsterAndCanBeShruggedOff",
"resistFieldsSurviveEntitySerialization",
"factionsTierBoundariesReflectReputationScore",
"factionsAdjustAccumulatesAndClampsToTheHundredBounds",
"factionsRegisterKillSoursOnlyTheFallensFaction",
"factionsRegisterKillPenalizesABossFarMoreThanARegularKill",
"factionsRegisterKillIgnoresAFactionlessTarget",
"factionsPriceMultiplierScalesFromHostileToHonored",
"factionsIsWaryTrueForAFreshGoblinoidAndFalseOnceProvoked",
"factionsIsWaryIsFalseForNonTribalFactionsAndOnceTheTribeGoesHostile",
"factionsAppeaseSpendsGoldAndRaisesReputationOrFailsWithoutFunds",
"factionsAppeaseCostsMoreTheDeeperTheGrudge",
"factionsAppeaseFailsOnceAFactionIsAlreadyMaxedOut",
"factionAndProvokedFieldsSurviveEntitySerialization",
"gameTakeMonsterTurnLeavesAWaryGoblinoidAloneUntilProvoked",
"gamePlayerAttackProvokesAWaryGoblinoidSoItFightsBackNextTurn",
"gameAwardKillSoursFactionReputationWithTheFallensFaction",
"shopBuyIsMarkedUpWhenMerchantsAreHostile", "shopBuyIsDiscountedWhenMerchantsAreHonored",
"shopSellValueRisesWithMerchantStanding", "stealingFromShopAlsoSoursMerchantReputation",
"resolveQuestNudgesMerchantReputationUpward", "gameAppeaseFactionSpendsGoldAndLogsTheOutcome",
"playerReputationSurvivesGameSaveLoadRoundTrip",
"encumbranceItemWeightScalesWithGearPower", "encumbranceAmmoWeightScalesWithStackCount",
"encumbranceCapacityGrowsWithLevel", "encumbranceEquippedGearCountsTowardCarriedWeight",
"encumbranceLightLoadHasNoPenalty", "encumbranceBurdenedSlowsMovementButNotDefense",
"encumbranceOverloadedSlowsMovementAndWeakensDefense",
"gameDropItemReturnsItemToTheFloorAndFreesCapacity",
"gamePickupWarnsWhenNewWeightTipsIntoOverloaded",
"gamePickupWarnsWithALighterMessageWhenOnlyTippingIntoBurdened",
"autopilotDropsCheapestJunkWhenOverloadedAndSafe",
"encumbranceTierIsDerivedAcrossASaveLoadRoundTrip",
"renderPanelShowsCarriedLoad",
"tilesClassifyVolatileTerrain",
"terrainAfflictLavaDoesNothingOffLava", "terrainLavaRespectsFireResistanceAndImmunity",
"terrainAfflictLavaUnharmedMessageAddressesThePlayerInSecondPerson",
"terrainLavaBurnsAndIgnitesAPlayerWhoStepsOnIt", "terrainLavaCanKillAWeakMonsterAndCreditsThePlayer",
"terrainChasmDropsThePlayerToTheFloorBelowWithFallDamage",
"terrainChasmSwallowsAMonsterAndCreditsTheKill",
"terrainIceSlidesATravellerUntilSomethingStopsIt", "terrainIceSlideStopsBeforeAWall",
"terrainIceSlideStopsAtAnOccupiedCell",
"checkTerrainForSkipsLavaDamageAndIgnitionForALevitatingPlayer",
"checkTerrainForSkipsTheChasmFallForALevitatingPlayer",
"checkTerrainForSkipsTheIceSlideForALevitatingPlayer",
"checkTerrainForSkipsLavaForALevitatingMonsterToo",
"terrainGlyphsSurviveMapSerialization",
"chasmFallFieldsSurviveGameSaveLoad", "lavaChasmAndIceStayOffTheShallowFloors",
"builderOccasionallyPlacesLavaChasmAndIceFromDepthFour", "chasmNeverAppearsOnTheFinalFloor",
"eliteNeverPromotesBelowMinDepth", "eliteEligibleExcludesBossesAndTheShopkeeper",
"eliteArmoredAffixAddsFlatDefenseAndPrefixesTheName",
"eliteChampionTierAtDeepDepthRollsTwoDistinctAffixes", "eliteFieldsSurviveSerialization",
"monstersCreateNeverAliasesTheSpeciesCatalogsInnateResistTable",
"builderOccasionallyPromotesAMonsterToEliteFromDepthThree",
"elitesNeverAppearOnTheShallowestTwoFloors",
"eliteVampiricMonsterDrainsHpFromThePlayerOnAMeleeHit",
"eliteChillingMonsterSlowsThePlayerOnAMeleeHit",
"eliteVolatileMonsterExplodesOnDeathDamagingAnAdjacentPlayer",
"eliteVolatileMonsterDoesNotBurstAnythingBeyondItsBlastRadius",
"eliteKillGrantsBonusXpOverThePlainSpeciesReward",
"vaultsPullThrowsALeverAndOpensASingleLeverVaultImmediately",
"vaultsPullOpensTheDoorOnlyOnceEveryLeverIsThrown",
"vaultsTreasureRollsAGuaranteedAffixOnABaseStrongerThanAnyFloorDrop",
"gamePullLeverOpensASingleLeverVaultAndTracksTheStat",
"gamePullLeverOnATwoLeverVaultWaitsForTheSecondPull",
"pullingAnAlreadyThrownLeverAgainDoesNotInflateTheVaultTally",
"movePlayerAutoPullsALeverItStepsOnto",
"vaultDoorBlocksMovementUntilItsLeversOpenIt",
"builderOccasionallyPlacesAVaultFromDepthFive",
"vaultsStayOffFloorsAboveDepthFive",
"builderOnlyEverPlacesASolvableVaultPuzzle",
"vaultFieldsSurviveSerialization",
"gameVaultsOpenedStatSurvivesSaveLoad",
"metaRenownForScalesWithVaultsOpened",
"metaRecordRunUnlocksVaultBreakerOnceAVaultOpens",
"runewordsSocketAppendsToTheChainInOrderAndCapsAtMaxRunes",
"runewordsSocketRefusesAnythingThatIsNotWeaponOrArmor",
"runewordsActiveWordMatchesOnlyAnExactChain",
"runewordsAttackAndDefenseBonusReadTheWielderSGearLive",
"gameSocketRuneAppliesItsRunewordBonusInActualCombat",
"gameSocketRuneFailsOnAnUnknownTargetOrANonRuneItem",
"builderOccasionallyPlacesARuneFromDepthThree",
"runesStayOffTheShallowestTwoFloors",
"runeChainFieldsSurviveSerialization",
"atmosphereHooksAreZeroForAnyConditionTheyDoNotGovern",
"atmosphereFoggyShrinksSightRadiusButNeverBelowOne",
"atmosphereConsecratedRegeneratesThePlayerEachTurn",
"atmosphereConsecratedNeverRegeneratesPastMaxHp",
"builderOccasionallyDrawsEachWeatherConditionFromDepthTwo",
"weatherNeverAppearsOnTheEntranceFloor",
"weatherFieldSurvivesSerialization",
"renderPanelReportsTheFloorSWeatherWhenPresent",
"biomesForDepthCyclesThroughTheCatalogInOrder", "biomesDescribeNamesTheBiomeAndItsAmbientText",
}
for _, name in ipairs(order) do