I'm attempting to implement a hotkey which sets the skill count of the current level to infinite-of-each (types remain the same).
It's easy enough to make the count change happen (barring a few wierd bugs when backskipping). The real problem I'm having is that it isn't as simple as just "set the skills to infinite, and then change them back later if you want" because if the level provides 5 of something, you set it to infinite and then use 6, what should happen when you press the hotkey again?
I can think of 5 possibilities:
1) Once applied, the skill count stays infinite until the level is restarted. Pressing the hotkey again doesn't change the count again at all. This is easiest to achieve and probably makes the most sense.
2) The count resets to the originally available count. This might seem to make sense, but if a player is already halfway through the level having used an infinite count to get there, then the original count becomes fairly meaningless. They might as well just continue with the infinite count.
3) The count resets to the originally available count, and restarts the level. Better, but might seem a bit jarring.
4) The count resets to the originally available count, minus the skills used, and any minus counts just show as zero. This option is slightly better than the second option, but would be the most difficult to manage code-wise and is fairly pointless seeing as we have a "used skills count" which would be far more useful in this scenario.
5) Keep the count at infinite, and toggle the used skills count on. This one also makes pretty good sense having considered the middle 3 options, but has the potential to be the most confusing.
Option 1 is my favourite. I think that if a user has chosen to switch on infinite skills, they've committed to playing the rest of the level with that option enabled, and so it should remain active until the level is either completed or restarted. The only problem with it is if the player accidentally hits the key without meaning to.
Another complication is replays: ideally, toggling infinite skills should be written into the replay so that any replays used with an infinite count on would make sense to the viewer, and wouldn't be broken by simply watching them without infinite skills.
Also, any levels played with infinite skills on shouldn't count towards level records, for obvious reasons. This would need to be managed as well. I think SLX might just be too complex an engine to deal with a feature like this.
I could do with some feedback on this. Do people think it's worth implementing the feature at all? What would you expect to happen if you pressed the hotkey again? Would you use it if it was there? I'm currently about 70:30 in favour of just chalking it up to "it's a good idea, and fun to do, but probably isn't worth the trouble."