Sophira / LiveSplit.RealTimeMinusBonuses

A LiveSplit Component that subtracts IGT time bonuses from an RTA run.
Other
2 stars 0 forks source link

Add support for multiple games in a single run (eg. Sonic trilogy runs) #9

Open Sophira opened 6 years ago

Sophira commented 6 years ago

So here's a wild idea. It would be pretty cool if the plugin had the ability to dynamically use different settings for different games in the same run, like with classic Sonic trilogy runs.

This would take effort to pull off, though. At the moment I only have one idea for how it could be done, and that's by using syntax like the Subsplits plugin uses - putting some identifying text (such as the game name) in "{}" at the beginning of the final split for a game, then using the RTA-TB settings to specify which rules should apply for each section.

Note that the above doesn't necessarily require that runners actually use the Subsplits plugin, so it wouldn't necessarily change workflow too much. This wouldn't require marking subsplits with a "-", for example (though it could be made to work with that). Ideally the plugin would detect if the Subsplits module was being used and adjust itself automatically to do a more strict parsing, falling back to just a lenient "game name in {}" mode otherwise.

This is a big undertaking, of course, but I think it's doable. I believe the method outlined above would be the easiest way to do this, but as ever, I'm open to suggestions.

Sophira commented 6 years ago

As an example of what I mean, here's how the split names for a Sonic trilogy run might look without the Subsplits plugin:

Green Hill Zone 1
Green Hill Zone 2
Green Hill Zone 3
Marble Zone 1
Marble Zone 2
Marble Zone 3
Spring Yard Zone 1
Spring Yard Zone 2
Spring Yard Zone 3
Labyrinth Zone 1
Labyrinth Zone 2
Labyrinth Zone 3
Star Light Zone 1
Star Light Zone 2
Star Light Zone 3
Scrap Brain Zone 1
Scrap Brain Zone 2
Scrap Brain Zone 3
{Sonic 1} Final Zone
Emerald Hill Zone 1
Emerald Hill Zone 2
Chemical Plant Zone 1
Chemical Plant Zone 2
Aquatic Ruin Zone 1
Aquatic Ruin Zone 2
Casino Night Zone 1
Casino Night Zone 2
Hill Top Zone 1
Hill Top Zone 2
Mystic Cave Zone 1
Mystic Cave Zone 2
Oil Ocean Zone 1
Oil Ocean Zone 2
Metropolis Zone 1
Metropolis Zone 2
Metropolis Zone 3
Sky Chase Zone
Wing Fortress Zone
{Sonic 2} Death Egg Zone
Angel Island Zone 1
Angel Island Zone 2
Hydrocity Zone 1
Hydrocity Zone 2
Marble Garden Zone 1
Marble Garden Zone 2
Casino Night Zone 1
Casino Night Zone 2
Ice Cap Zone 1
Ice Cap Zone 2
Launch Base Zone 1
Launch Base Zone 2
Mushroom Hill Zone 1
Mushroom Hill Zone 2
Flying Battery Zone 1
Flying Battery Zone 2
Sandopolis Zone 1
Sandopolis Zone 2
Lava Reef Zone 1
Lava Reef Zone 2
Hidden Palace Zone
Sky Sanctuary Zone
Death Egg Zone 1
Death Egg Zone 2
{Sonic 3 & Knuckles} Final Boss

In this example, the splits would be divided up into three sections - "Sonic 1", "Sonic 2", and "Sonic 3 & Knuckles". (Notice that these section names are marked on the final split of each game, in the same way that the Subsplits plugin works.) You would then be able to select these sections as requiring different settings. These settings would then apply to all splits up to that point, unless another section with different rules was detected.

Note that you would be able to select which sections the RTA-TB plugin would use different rules for. In other words, even if you already used the Subsplits plugin and split it up by zone, you would be able to select that it should only use different rules for the "Sonic 1", "Sonic 2" or "Sonic 3 & Knuckles" sections. Those rules would then apply to all zones within these games. I can supply an example if it's wanted.