Skip to content

Randboss difficulty

Chris Davidson requested to merge Shibari/t-engine4:RandbossDifficulty into master

This started as an adjustment to adjust the Insane+ early game to work without overpowered shops and drowning but after some investigation early game randbosses are causing problems in general. I've seen plenty of new player deaths in Norgos/etc to things with 20+ armor, or 8+ flat damage reduction, and various other scenarios that can be essentially unwinnable. I suspect a fair number of players have quit the game after running into an early game rare that takes 0 damage from them a few times in a row.

The randboss system breaks numbers early game. It is inherently frontloaded because it gives gear to things that otherwise wouldn't have it, the first ~5 talent levels have the best scaling, hard disables like stun are given very often, and so on. Starting around mid game when players have assembled their toolkits it starts to work very well and provides a lot of threat diversity.

The first part of this adds a standard_rnd_boss_adjust function that all generated randbosses use by default. This only effects things under level 20 and reduces all damage dealt as well as checking for various "problem" cases and reducing stats accordingly without caring about where they came from. This is applied after sustains are activated.

The second part adds new ways to modify randboss generation:

ActorTalent.rnd_boss_restrict(base npc, talent, randboss data): Return true to reject learning of the talent.

NPC.rnd_boss_init(base, data): Called at the start of createRandboss. This lets an NPC base modify what happens when it gets turned into a randboss. This is useful for NPC bases that have very extreme stats because of other deficiencies. Ie, the high global speed on Midges+low base damage turns into high global speed+no damage downside at all when randbossed.. Which is a problem. You can also use this to modify what classes or talents can be applied and so on.

These aren't meant to be widely used but I did include 2 examples, 1 nerfing psi shields early and one nerfing Midges.

Merge request reports