[SUG] New Lemming type - Rivals!

Started by WillLem, April 05, 2024, 10:21:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

Made some more decisions/progress with Rivals today :lemcat:




Scenario A: The level provides only 1 Lem type (Normals/Rivals), and 2 Exit types (Normals & Rivals).

Resolution: All Exit types are treated as if they're the same as the Lem type, regardless of assignment.




Scenario B: The level provides 2 Lem types (Normals & Rivals), but only 1 Exit type (Normals/Rivals).

Resolution: The save requirement for the level is defaulted to {the total number of Lems that match the Exit type + any Neutrals + any Cloners} or {the existing save requirement}, whichever is lowest.

The save requirement is also adjusted for Exits with Lemming caps. This took a fair bit of doing, and could probably still be optimised further for readability/simplicity, but it's bug-free in every scenario I tested (multiple Exits, multiple Lem types, multiple Lem caps - all behave well).




Meanwhile, I've decided to leave the Exit marker data as it is. So...

  • SLX first looks for an Exit marker in the style's "effects" folder (if the folder exists). If it doesn't find one, if uses the one from the default style's "effects" folder (which, at present, is the blue/red flag)
  • Marker position is tied to the individual Exit's .nxmo - this makes the most sense, since a style may feature multiple Exits, and each one will need its own marker position
  • Marker frames are specified in the style's theme.nxmi file - still fairly unsure about this one, but for now it's better than adding more paperwork in the file system
Not much longer now and this one will be ready for fully showcasing, testing, and implementing as part of a level pack project. Next step is to make sure that the styles with custom sprites have Rival recolouring data. That's a job for tomorrow :sleep:

WillLem

#16
Quote from: Simon on April 30, 2024, 08:34:07 PM
Quote from: WillLemAt present, the plan is to not allow a lemming to be both a Neutral and a Rival.

Do you have deneutralizers? What happens when you neutralize a rival, then deneutralize him: Will he be regular lemming or rival?

Had a bit of a brainwave today regarding this.

Neutrals currently count as +1 in a normal Exit and -1 in a Rival Exit. However, if we allow Neutrals to count as +1 in both Exits, then it might be OK to allow Rivals to become Neutrals. Furthermore, this scenario also makes more sense from a general gameplay point-of-view (i.e. Neutral lems shouldn't care which Exit they're in, because they're Neutral).

So then, assuming the NL 12.XX Neutralizer & De-neutralizer objects work as I imagine they do (I haven't implemented or tested them code-side yet), a Rival that becomes a Neutral and is then De-neutralized will become a Rival again (i.e. we won't remove the Rival tag from the lemming).

If this goes ahead, Neutral will have to be the "preferred" state if a lem is given both tags. This will then render them un-assignable to, save-able in both Exit types, and only potentially a Rival iff the level provides a De-neutralizer.

Given all current mechanics, and what could reasonably be expected from the game as "normal" behaviour, this seems to be the best way to handle the presence of both Rivals and Neutrals in the same level (and, indeed, the same lemming).

jkapp76

I like neutrals working like this. It feels very "neutral" of them to work the same for any side.
...Jeremy Kapp