Sly 1:Difficulty
Game Mechanic | |
---|---|
![]() After dying multiple times, you are granted a lucky charm | |
Game | Sly Cooper and the Thievius Raccoonus |
Difficulty, also called suck, uSuck or noob mode, is the mechanic by which the game dynamically becomes easier depending on your gameplay.
Suck Score[edit | edit source]
In Sly 1, the player is assigned a uSuck score between 0.0 and 1.0 for each individual level. These scores are stored on the level states and persist between loads. There is a global DIFFICULTY struct called g_difficulty
that tracks some difficulty values and stores a pointer to the current DifficultyLevel struct.
Difficulty Levels[edit | edit source]
Sly 1 has three difficulty levels: easy, medium, and hard, each with a corresponding global DifficultyLevel struct. During a level transition, during execution of the function LoadSwFromBrx
, the game calls OnDifficultyWorldPreLoad
. This function sets the current difficulty level based on the following conditions:
- If the gameworld is Paris/the Hideout (GAMEWORLD::Intro) or The Cold Heart of Hate (GAMEWORLD::Clockwerk), or if the current worldlevel is a hub (WORLDLEVEL::Hub), then it sets the easy difficulty.
- If the key has not been collected on the level (the FLS::KeyCollected flag is not set), then it sets the medium difficulty.
- In all other cases it sets the hard difficulty.
Later on in level transition, the game calls OnDifficultyWorldPostLoad
. This function compares the player's current uSuck on the level to the current difficulty level.
- If the player's current uSuck on the level is above the difficulty level's
uSuckCharmLow
, it grants the player a silver charm. This value is always 0.4. - If the player's current uSuck on the level is above the difficulty level's
uSuckCharmHigh
, it instead grants the player a gold charm. This value is always 0.8.
Changing Suck[edit | edit source]
On the easy and medium difficulty, your uSuck increases by a 0.1 each time you die. Triggering a checkpoint for the first time lowers your suck by 0.8, and collecting a key resets your suck to 0. These changes happen by function calls to OnDifficultyPlayerDeath
, OnDifficultyTriggerCheckpoint
, and OnDifficultyCollectKey
respectively.
On the hard difficulty, uSuck is always locked at 0, even if something would normally increase it. This is because each difficulty level stores a limit that the suck value is always clamped between; for easy and medium, this limit is from 0.0 to 1.0, but for the hard difficulty this limit is from 0.0 to 0.0.
Coin Drops[edit | edit source]
Difficulty also controls how many coins you get when you break something or kill an NPC, but this is not controlled by the difficulty level[check]. Each time the player breaks something, the function OnDifficultyBreak
is called to calculate the number of coins to drop.