Difficulty modes

From OniGalore
Revision as of 02:56, 10 March 2025 by Iritscen (talk | contribs) (revised layout of difficulty factors and added explanations for all of them)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Oni's difficulty setting appears simple: a menu that lets you choose Easy, Normal or Hard. But the effects of each mode on the game are complex. As a general rule, increasing the difficulty means that enemies will be upgraded to tougher classes (e.g. green to blue, blue to red), will have more health and will fight harder. Konoko's health will also change on Easy. Read on for the exact changes at each difficulty level. Advice for modders who want to work with difficulty levels is found at the end.

Note that these changes are applied on top of the enemy class upgrades mentioned previously. Higher-level enemies not only have more base HP but melee profiles which grant them better combat skills all around, including blocking and dodging.

Factor Easy Normal Hard
AI melee noticeChance that AI will notice incoming attack. If it notices it, it may be able to block or dodge it. 0.70 1.00 1.40
AI melee blockChance that AI will attempt to block attack. 0.60 1.00 1.30
AI melee dodgeChance that AI will attempt to dodge attack. 0.80 1.00 1.50
AI weapon inaccuracyMultiplier for size of the cone of fire when AI is using a weapon. 1.20 1.00 0.60
Enemy healthIf an AI is hostile to Konoko, their starting health and max health will be multiplied by this factor. 1.00 1.00 1.25
Konoko healthUpon starting in a level, Konoko's health and max health will be multiplied by this factor. Thus on Easy her starting health will be 260 HP out of 260 HP max. 1.30 1.00 1.00

Modder information

The current difficulty level is stored in persist.dat. It's read with the BSL function difficulty() but can only be changed through the UI of the Options screen. (It's interesting to note that Oni's vanilla scripting never reads the difficulty level and uses it to change anything.)

See XML:ONCV for setting up enemy variants based on difficulty, XML:BINA/OBJC/MELE for melee profiles which vary by difficulty, and XML:ONGS for the source of the difficulty level constants above.