Sly 1:Difficulty: Difference between revisions

Copyedit wording, layout, structure
(Cleanup, added details)
Tags: Mobile edit Mobile web edit Visual edit
(Copyedit wording, layout, structure)
 
(10 intermediate revisions by 2 users not shown)
Line 1:
{{About|game mechanic|data structure|Sly 1:DIFFICULTY}}
'''Difficulty''', also called '''suck''', '''uSuck''' or '''noob mode''', is the mechanic by which the game dynamically becomes easier or harder depending on your gameplay.
{{Infobox game mechanic
| name= Difficulty
| image= File:Sly 1 noob charm.png
| caption= After dying multiple times, you are granted a lucky charm
| sly1= y
}}
 
'''Difficulty''', also called '''suck''', '''uSuck''' or '''noob mode''', is the mechanic by which the game dynamically becomes easier or harder depending on your gameplay.
== Sly 1 ==
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 [[LS|level states]] and persist between loads. There is a global <code>DIFFICULTY</code> struct called <code>g_difficulty</code> that tracks some difficulty values and stores a pointer to the current <code>DifficultyLevel</code> struct.
 
=== Difficulty Levelslevels ===
Sly 1 has three difficulty levels: easy, medium, and hard,. Each eachone withhas a corresponding global <codett>DifficultyLevel</codett> struct in the executableelf. During a level transition, duringbefore executionloading ofthe map, the function <code>LoadSwFromBrx</code>, the game calls <code>OnDifficultyWorldPreLoad</code>., This functionwhich sets the current difficulty level based on the following conditionscriteria:
 
* If the [[gameworld]] is Paris/the Hideout (<codett>GAMEWORLD_IntroGAMEWORLD::Intro or</codett>) or The Cold Heart of Hate (<codett>GAMEWORLD_ClockwerkGAMEWORLD::Clockwerk</codett>), or if the current [[worldlevel]] is a hub (<codett>WORLDLEVEL_HubWORLDLEVEL::Hub</codett>), then it sets the easy difficulty.
* If the key<tt>FLS::KeyCollected</tt> flag has ''not'' been collectedset on the current level (the <code>FLS_KeyCollected</code> flag is not set), then it sets the medium difficulty.
* In all other cases it sets the hard difficulty.
This means that the Prologue, World 5, and hub maps are always easy, and all other maps are initially medium but become hard once you collect the key. Levels which don't have a key are always medium.
 
== SlySuck 1score ==
Later on in level transition, the game calls <code>OnDifficultyWorldPostLoad</code>. This function compares the player's current uSuck on the level to the current difficulty level.
In Sly 1, theThe player is assigned a uSuck score between 0.0 and 1.0 for each individual level. These scores are stored on the [[LS|level states]] andin persistthe betweensave loadsfile. There is a global <code>[[Sly 1:DIFFICULTY|DIFFICULTY</code>]] struct called <code>g_difficulty</code> that tracks some difficulty values and stores a pointer to the current <codett>DifficultyLevel</codett> struct.
* If the player's current uSuck on the level is above the difficulty level's <code>uSuckCharmLow</code>, 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 <code>uSuckCharmHigh</code>, it instead grants the player a gold charm. This value is always 0.8.
 
=== Changing Sucksuck ===
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 <code>OnDifficultyPlayerDeath</code>, <code>OnDifficultyTriggerCheckpoint</code>, and <code>OnDifficultyCollectKey</code> 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 [[Sly 1:LM|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.
 
=== CoinLucky Dropscharms ===
LaterAfter onloading inthe level transitionmap, the game calls <code>OnDifficultyWorldPostLoad</code>. This function compares the player's current uSuck on the level to the current difficulty level.
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 <code>OnDifficultyBreak</code> is called to calculate the number of coins to drop.
* If the player's current uSuck on the level is above the difficulty level's <code>uSuckCharmLow</code>, it grantsgives 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 <code>uSuckCharmHigh</code>, it instead grantsgives the player a gold charm. This value is always 0.8.
The values of <code>uSuckCharmLow</code> and <code>uSuckCharmHigh</code> are determined by the currently difficulty, but for some reason they are the same for all difficulties. However, you will never get a charm on the hard difficulty because your uSuck is locked at 0.
 
== SlyCoin 2drops ==
Difficulty also controls how many coins you getdrop when you break something or kill an NPC, but this is not controlled byaffected the difficulty level.{{Check}}. Each time the player breaks something, the function <code>OnDifficultyBreak</code> is called to calculate the number of coins to drop.
In {{Sly 2}}, uSuck is set on a per-mission basis{{Check}}. It ranges from 0.0f to 1.0f and increases each time you die or fail a job.
 
{{Navbox Sly 1}}
The uSuck value is used in the level scripts to make certain aspects of the game easier. For instance, in [[Moonlight Rendezvous]], Neyla will start off only waiting 5 seconds{{check}} for you to catch up with her. As your suck increases, the time she waits also increases to a maximum of 20 seconds.{{check}} This is done by multiplying the suck value by 15.0f and adding it to the base value of 5.0f to get the number of seconds Neyla waits before you fail the job.
[[Category:Game mechanics]]
[[Category:Game mechanics in Sly 1]]
[[Category:Game mechanics in Sly 2]]