test: cover run
This commit is contained in:
1 parent
6f581d988e
commit
8d0fb81ba9
1 file changed
+173
-4
+173
-4
@@ -14574,10 +14574,179 @@ end
|
||||
local order = {
|
||||
"rngDeterminism", "mapDeterminism", "tilesRegistry", "fovKnownScene", "losSightLine",
|
||||
"astarPathing", "combatResolution", "itemsAndEquipment", "affixes", "statusEffects",
|
||||
"scheduler", "generators", "connectivityRepair", "dungeonPersistence", "monsterAiChase", "monsterAiRanged",
|
||||
"monsterAiFlee", "monsterAiDeterministic", "doorsAndKeys", "traps", "lightAndDark",
|
||||
"identification", "effects", "messageLog", "weaponAffixOnHit", "saveLoadRoundTrip",
|
||||
"deterministicPlaythrough", "autoplayDescends",
|
||||
"scheduler", "generators",
|
||||
"mazeGeneratorIsDeterministicDiffersAcrossSeedsAndLeavesEveryFloorCellReachable",
|
||||
"mazeGeneratorIsRegisteredButExcludedFromTheDepthCycle",
|
||||
"mazeGeneratorProducesOneWideCorridorsRatherThanOpenRooms",
|
||||
"mazeGeneratorBraidingOpensSomeDeadEndsWithoutTouchingConnectivity",
|
||||
"prefabVaultSizeMatchesItsWidestRowAndItsRowCount",
|
||||
"prefabVaultFitsAcceptsAnAnchorWithAWallGapToEveryBorderAndRejectsOneWithout",
|
||||
"prefabVaultStampWritesEveryGlyphAndCollectsTreasureMonsterAndLootMarkersInMapOrder",
|
||||
"prefabVaultStampIsDeterministicForAFixedAnchor",
|
||||
"builderCanBeExplicitlySteeredToAMazeFloorAndStillYieldsAPlayableLevel",
|
||||
"connectivityRepair", "dungeonPersistence", "monsterAiChase", "monsterAiRanged",
|
||||
"monsterAiFlee", "monsterAiDeterministic",
|
||||
"aiActConfusedMonsterSometimesStumblesInsteadOfChasing",
|
||||
"aiActWithoutConfusionAlwaysRunsTheNormalBehaviour",
|
||||
"aiActBlindedArcherNeitherShootsNorChasesEvenWithAClearShot",
|
||||
"gameAdjacentAllyFindsACompanionStandingRightNextToAMonster",
|
||||
"gameAdjacentAllyIgnoresAHostileMonsterAndOnlyCountsCardinalAdjacency",
|
||||
"gameAdjacentAllyBreaksTiesByTheLowerEntityIdAndIgnoresADeadAlly",
|
||||
"aiChaseAttacksAnAllyBlockingTheOnlyCorridorToThePlayerInsteadOfIdlingForever",
|
||||
"aiChasePrefersAnAdjacentPlayerOverAnAdjacentAllyWhenBothAreInMeleeRange",
|
||||
"aiPackAttacksAnAllyBlockingTheOnlyCorridorToThePlayerInsteadOfIdlingForever",
|
||||
"aiTunnelAttacksAnAllyBlockingItsOnlyGapInsteadOfIdling",
|
||||
"aiRangedAttacksABlockingAllyWhenItHasNoLineOfSightToThePlayerAtAll",
|
||||
"gameMoveMonsterAttacksAnAllyItBumpsIntoInsteadOfDoingNothing",
|
||||
"aiActConfusedMonsterCanStumbleIntoAttackingABlockingAllyInsteadOfIdling",
|
||||
"doorsAndKeys", "traps",
|
||||
"gameSpringTrapConfuseEffectAppliesToAnyVictimNotJustThePlayer",
|
||||
"gameSpringTrapBlindEffectAppliesToAnyVictimNotJustThePlayer",
|
||||
"gameSpringTrapStunEffectAppliesToAnyVictimNotJustThePlayer",
|
||||
"gameMovePlayerConfusionEitherFollowsTheChosenDirectionOrStumblesElsewhere",
|
||||
"gameMovePlayerConfusionStumbleIntoAWallStillSpendsTheTurn",
|
||||
"gameMovePlayerWithoutConfusionNeverStumbles",
|
||||
"gameAllyActsConfusedReturnsFalseImmediatelyWithoutTheStatus",
|
||||
"lightAndDark",
|
||||
"identification", "identifyGivesEveryPotionTypeItsOwnDistinctUnidentifiedLook", "effects",
|
||||
"effectsMessagesAddressThePlayerInSecondPersonNotThirdPersonSingular",
|
||||
"effectsClarityMessageAddressesThePlayerPossessively",
|
||||
"effectsCureMessagesAddressThePlayerPossessivelyForAllFourOutcomes", "hazards",
|
||||
"shrinePrayGrantsWarBlessingWhenFavorHolds", "shrinePrayGrantsVitalityBlessing",
|
||||
"shrinePrayGrantsWisdomBlessing", "shrinePrayGrantsFortuneBlessingAndCleansesAilments",
|
||||
"shrinePrayCanCurseInsteadOfBless", "shrinePrayFailsWithoutEnoughGold",
|
||||
"shrineCostAndCurseOddsRiseWithUse", "shrineFieldsSurviveSerialization",
|
||||
"builderOccasionallyPlacesAShrineFromDepthFour", "shrinesStayOffTheShallowFloors",
|
||||
"autopilotPraysAtAnUnspentShrineWhenAffordable", "autopilotSkipsAnAlreadyUsedShrine",
|
||||
"shrineRendersItsGlyphWhenVisible",
|
||||
"messageLog", "weaponAffixOnHit",
|
||||
"progressionLeveling", "progressionMonsterKillGrantsXp",
|
||||
"spellCastMissileKillsAndGrantsXp", "spellCastFailsWithoutSpendingState",
|
||||
"spellLearnFromTome", "spellHealAndShield", "spellBlinkMovesWithinRadius",
|
||||
"manaRegeneratesEachTurn",
|
||||
"throwWeaponHitsAndLands", "throwWeaponKillGrantsXp", "throwPotionAppliesHostileEffect",
|
||||
"throwConfusePotionAppliesTheStatusToTheTargetNotTheThrower",
|
||||
"throwBlindPotionAppliesTheStatusToTheTargetNotTheThrower",
|
||||
"throwLevitatePotionAppliesTheStatusToTheTargetNotTheThrower",
|
||||
"throwOutOfRangeFails",
|
||||
"rangedShotHitsAtRangeAndConsumesAmmo", "rangedShotKillGrantsXp", "rangedFailsWithoutAmmo",
|
||||
"rangedFailsOutOfRange", "ammoStacksOnPickup",
|
||||
"trollRegenerateUnlessBurning", "ratHasNoRegen", "wretchDeathBurstsPoisonSpores",
|
||||
"dragonBreathIgnitesPlayer",
|
||||
"necromancerSummonsZombie", "summonRespectsPopulationCap",
|
||||
"curseAtRangeHurtsAndWeakens", "curseDamageIsMitigatedByThePlayersDefenseLikeAnyOtherAttack",
|
||||
"curseBreaksThePlayersMeleeMomentumStack", "curseWearsThePlayersEquippedArmor",
|
||||
"curseWithheldWhenAdjacent", "abilityCooldownBlocksImmediateReuse",
|
||||
"shriekAtRangeBlindsThePlayer", "shriekWithheldWhenAdjacent", "shriekIsUnavailableOutOfRange",
|
||||
"shriekBlindnessReducesTheVictimsEffectiveSightRadius",
|
||||
"healerMendsNeediestAlly", "healerSkipsWhenAlliesAreHealthy",
|
||||
"healerNeverMendsThePlayersOwnCompanionHirelingOrThrall",
|
||||
"rallyBuffsAdjacentAllies", "rallySkipsWhenNoUnbuffedAlliesAdjacent",
|
||||
"rallyNeverBuffsThePlayersOwnCompanionHirelingOrThrall",
|
||||
"footpadStealsThenFlees", "footpadWithNothingToStealStillFlees",
|
||||
"slimeSplitsOnSurvivedHit", "splitCapsAtTwoGenerations",
|
||||
"takeMonsterTurnPrefersAbilityOverMovement", "takeMonsterTurnFallsBackToAiWhenOnCooldown",
|
||||
"abilityFieldsSurviveSerialization",
|
||||
"statusEffectKillGrantsXpAndLogsDeath",
|
||||
"hazardKillDuringMonsterTurnGrantsXp", "hazardStepRunsOncePerPlayerRound",
|
||||
"saveLoadRoundTrip", "deterministicPlaythrough", "autoplayDescends",
|
||||
"amuletSpawnsOnFinalFloorOnly", "descendIsBlockedAtTheFinalFloor",
|
||||
"ascendWithoutAmuletDoesNotWin", "ascendWithAmuletWinsTheGame", "wonGameHaltsTheAutopilot",
|
||||
"autopilotFetchesTheAmuletAndWins",
|
||||
"shopPriceCatalogScalesWithPower", "shopStockRollsAffordableWares",
|
||||
"goldPickupAddsToWalletNotInventory",
|
||||
"affordableWareIsBoughtAutomaticallyOnPickup", "unaffordableWareStaysOnTheGround",
|
||||
"deadKeeperMakesWaresFreeToLoot", "stealingFromShopTurnsTheKeeperHostile",
|
||||
"hostileShopkeeperChasesLikeAnyMonster", "passiveShopkeeperIgnoresTheAdjacentPlayer",
|
||||
"sellItemGrantsHalfPriceAndRemovesIt", "builderOccasionallySeedsAShopWithMatchingWares",
|
||||
"shopAndLooseGoldStayOffTheShallowFloors",
|
||||
"classApplyGrantsFighterStatBonuses", "classApplyGrantsRogueGoldAndAttack",
|
||||
"classApplyGrantsMageManaAndAttack", "classApplyGrantsRangerBowAndAmmo", "invalidClassIsIgnored",
|
||||
"skillLearnRespectsClassLevelAndPoints", "skillCooldownBlocksImmediateReuseAndTicksDown",
|
||||
"fighterCleaveHitsPrimaryAndAdjacentMonsters",
|
||||
"fighterCleaveSplashRespectsAFireImmuneTargetLikeThePrimaryHitAlreadyDoes",
|
||||
"fighterSecondWindRestoresPortionOfMaxHp",
|
||||
"fighterBerserkBoostsAttackAtLowHp", "rogueBackstabDoublesDamageOnFullHpTarget",
|
||||
"rogueEvasionCanFullyNegateMeleeHit", "poisonBladeAppliesPoisonOnNextMeleeHitOnly",
|
||||
"pendingPoisonBladeReadinessSurvivesAGameSaveLoadRoundTrip",
|
||||
"mageOverloadBoostsMissileDamage", "mageMeditateRestoresManaWithinCap",
|
||||
"mageManaShieldRaisesDefenseWhileManaHeld", "rangerMultishotHitsTwoTargetsForOneArrow",
|
||||
"rangerMultishotRespectsPhysicalResistanceOnBothSplitArrows",
|
||||
"rangerCamouflageShrinksDetectionOnDarkFloors", "rangerTrueshotAddsFlatRangedDamage",
|
||||
"effectiveRadiusBlindStatusOverridesLightAndWeatherToAMinimumOfOne",
|
||||
"canSeePlayerBlindedMonsterOnlyDetectsThePlayerAtMeleeRange",
|
||||
"autopilotLearnsSkillsAutomaticallyAsPointsAllow", "skillFieldsSurviveSerialization",
|
||||
"craftingForgeSpendsEssenceForATierOneGem", "craftingMergeGemsCombinesMatchingPairsIntoTheNextTier",
|
||||
"craftingSocketAddsPowerAndSwapsRiderOnResocket", "craftingTemperRaisesPowerAtRisingCostUpToACap",
|
||||
"craftingTemperRefusesWithoutEnoughEssence", "craftingEnchantGrantsAChosenAffixOnce",
|
||||
"craftingDisenchantStripsAffixAndRefundsEssence", "craftingSocketedGemRidersStackWithARolledAffixOnHit",
|
||||
"craftingShockRiderActuallyStunsTheVictimOnItsNextTurnNotJustOnPaper",
|
||||
"gameCraftingWrappersDriveTheFullPipeline", "monsterKillsGrantEssenceScaledToTheirXpReward",
|
||||
"craftingFieldsSurviveSerialization",
|
||||
"alchemyBrewResolvesAKnownPairToItsFixedPotion", "alchemyBrewIsOrderIndependent",
|
||||
"alchemyBrewCurdlesOnAnOpposedPairing", "alchemyLookupRejectsAnUnknownHerb",
|
||||
"gameBrewAtCombinesTwoHerbsIntoAPotionAtACauldron", "gameBrewAtFailsWithoutACauldronUnderfoot",
|
||||
"gameBrewAtRequiresTwoHerbItems", "gameBrewAtCurdlesIntoGasInsteadOfAPotion",
|
||||
"buildersScatterHerbsFromTheFirstFloor", "cauldronsStayOffTheEntranceFloor",
|
||||
"buildersOccasionallyPlaceACauldronFromDepthTwo", "cauldronFieldsSurviveSerialization",
|
||||
"cauldronRendersItsGlyphWhenVisible",
|
||||
"nodesHarvestingAnOreVeinPaysEssenceAndSpendsACharge",
|
||||
"nodesHarvestingAnOreVeinDoublesItsYieldDuringRichVeins",
|
||||
"nodesHarvestingAGemSeamYieldsARawTierOneGemOfItsElement",
|
||||
"nodesGoingFallowRefusesFurtherHarvestsUntilItReopens",
|
||||
"nodesStepCountsDownAndReopensAFallowNode", "nodesFieldsSurviveSerialization",
|
||||
"nodeRendersItsGlyphWhenVisible",
|
||||
"gameHarvestNodeAtAnOreVeinAddsEssenceAndSpendsACharge",
|
||||
"gameHarvestNodeFailsWithoutANodeUnderfoot", "gameHarvestNodeOnAFallowVeinFails",
|
||||
"autopilotHarvestsAnOreVeinWhenIdleAndStandingOnIt", "autopilotSkipsAFallowNode",
|
||||
"buildersNeverPlaceANodeOnTheEntranceFloor", "buildersAlwaysPlaceAtLeastOneNodeFromDepthTwoOn",
|
||||
"corpsesSpawnsForAWildMonsterButNotForUndeadMimicOrBoss",
|
||||
"corpsesNutritionScalesWithTheFelledSpeciesMaxHpClampedToAFixedBand",
|
||||
"corpsesStepCountsDownAndRotsAwayEntirely",
|
||||
"corpsesGoesRottenPastItsThresholdButStaysButcherableUntilThen",
|
||||
"corpsesButcheringFreshMeatAddsFoodToInventoryAndConsumesTheCorpse",
|
||||
"corpsesButcheringRottenMeatPoisonsThePlayerInsteadAndStillConsumesTheCorpse",
|
||||
"corpseFieldsSurviveSerialization", "corpseRendersItsGlyphWhenVisible",
|
||||
"gameAwardKillLeavesACorpseForAWildMonsterButNotForUndeadOrMimic",
|
||||
"gameButcherCorpseAtFreshMeatFeedsThePlayerAndClearsTheCorpse",
|
||||
"gameButcherCorpseFailsWithoutACorpseUnderfoot",
|
||||
"autopilotButchersAFreshCorpseWhenIdleAndStandingOnIt",
|
||||
"autopilotLeavesARottenCorpseAloneRatherThanRiskingPoison",
|
||||
"hungerCurrentDefaultsToCapForAFreshEntity",
|
||||
"hungerTierOfClassifiesEachBandAtItsBoundaries",
|
||||
"hungerAttackAndDefensePenaltiesEscalateByTier",
|
||||
"entityEffectiveAttackAndDefenseFoldInTheHungerPenalty",
|
||||
"hungerSuppressesRegenOnlyAtWeakOrWorse",
|
||||
"hungerTickDrainsByOneAndLogsOnlyOnATierCrossing",
|
||||
"hungerTickBitesForOneHpEveryRoundWhileStarving",
|
||||
"hungerEatCapsAtTheCeilingAndWastesAnOverfullMealIntoBloat",
|
||||
"hungerEatBelowTheCeilingBanksNutritionWithNoWaste",
|
||||
"hungerEatClampsAMealThatWouldOverflowPastTheCapWithoutBloating",
|
||||
"gameHungerTorchTickSuppressesRingRegenOnceThePlayerIsWeak",
|
||||
"gameUseItemEatingFoodRestoresSatiationAndLogsTheMeal",
|
||||
"gameUseItemEatingFoodWhileAlreadyFullAppliesSlowAndLogsBloat",
|
||||
"reanimationRaiseCreatesAThrallAdjacentToThePlayerAndSpendsTheCorpseAndSanity",
|
||||
"reanimationRaiseRefusesARottenCorpseWithoutSpendingAnything",
|
||||
"reanimationRaiseRefusesWithoutEnoughSanityAndLeavesTheCorpseAlone",
|
||||
"reanimationRaiseScalesThrallStatsDownFromTheOriginSpecies",
|
||||
"reanimationRaiseFallsBackToAPlainSkeletonForAnUnrecognisedSpecies",
|
||||
"reanimationRaiseRetiresAnEarlierThrallWhenRaisingAnother",
|
||||
"reanimationActAttacksAnAdjacentHostileMonsterAndCanKillIt",
|
||||
"reanimationActAdvancesOnAVisibleMonsterItCannotYetReach",
|
||||
"reanimationActIgnoresAMonsterBeyondItsSightRadius",
|
||||
"reanimationActBlindedThrallOnlyDetectsAnAdjacentHostileNotOneWithinItsSightRadius",
|
||||
"reanimationActAttackingAnAdjacentMonsterEmitsNoiseThatCanStirADormantBystander",
|
||||
"reanimationActFollowsThePlayerWhenNoMonsterIsVisible",
|
||||
"reanimationActConfusedThrallSometimesStumblesInsteadOfFightingAnAdjacentHostile",
|
||||
"reanimationActCollapsesOnceItsBorrowedAnimationRunsOut",
|
||||
"takeMonsterTurnRoutesAThrallThroughReanimationAct",
|
||||
"gameRaiseCorpseSucceedsAndLogsTheCallAnswered",
|
||||
"gameRaiseCorpseFailsWithoutACorpseUnderfoot",
|
||||
"scavengingHerbForMapsEachWildFactionToItsOwnFixedHerb",
|
||||
"scavengingHerbForReturnsNilForACorpseWithNoBestiaryEntry",
|
||||
"gameScavengeCorpseCarvesTheMatchingHerbAndClearsTheCorpse",
|
||||
"gameScavengeCorpseFailsWithoutACorpseUnderfoot",
|
||||
"gameScavengeCorpseFailsOnARottenCorpse",
|
||||
}
|
||||
|
||||
for _, name in ipairs(order) do
|
||||
|
||||
Reference in new issue
Block a user