From d7068c4b1b39875d462211f43a64af54c9290275 Mon Sep 17 00:00:00 2001 From: Alex Knauth Date: Wed, 8 Jan 2025 11:11:15 -0500 Subject: [PATCH] Updated colosseum --------- Co-authored-by: mayonnaisical <85130913+mayonnaisical@users.noreply.github.com> Co-authored-by: PythonWizard318 <139416125+PythonWizard318@users.noreply.github.com> Co-authored-by: slaurent --- HollowKnightComponent.cs | 569 +++++++++++++++++++-------------------- 1 file changed, 278 insertions(+), 291 deletions(-) diff --git a/HollowKnightComponent.cs b/HollowKnightComponent.cs index 2ca4c40..63846b6 100644 --- a/HollowKnightComponent.cs +++ b/HollowKnightComponent.cs @@ -1457,38 +1457,21 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen #endregion Vessel Fragments + #region Colosseum + + // Little Fool under NPC Interactions #region case SplitName.ColosseumBronze: shouldSplit = mem.PlayerData(Offset.colosseumBronzeCompleted); break; case SplitName.ColosseumGold: shouldSplit = mem.PlayerData(Offset.colosseumGoldCompleted); break; case SplitName.ColosseumSilver: shouldSplit = mem.PlayerData(Offset.colosseumSilverCompleted); break; - - /* - case SplitName.NailsmithSpared: shouldSplit = mem.PlayerData(Offset.nailsmithSpared); break; - case SplitName.MageDoor: shouldSplit = mem.PlayerData(Offset.openedMageDoor); break; - case SplitName.MageWindow: shouldSplit = mem.PlayerData(Offset.brokenMageWindow); break; - case SplitName.MageLordEncountered: shouldSplit = mem.PlayerData(Offset.mageLordEncountered); break; - case SplitName.MageDoor2: shouldSplit = mem.PlayerData(Offset.openedMageDoor_v2); break; - case SplitName.MageWindowGlass: shouldSplit = mem.PlayerData(Offset.brokenMageWindowGlass); break; - case SplitName.MageLordEncountered2: shouldSplit = mem.PlayerData(Offset.mageLordEncountered_2); break; - */ - //case SplitName.NotchSly1: shouldSplit = mem.PlayerData(Offset.slyNotch1); break; - //case SplitName.NotchSly2: shouldSplit = mem.PlayerData(Offset.slyNotch2); break; - - //case SplitName.Al2ba: shouldSplit = mem.PlayerData(Offset.killsLazyFlyer) == 2; break; - //case SplitName.Revek: shouldSplit = mem.PlayerData(Offset.gladeGhostsKilled) == 19; break; - //case SplitName.EquippedFragileHealth: shouldSplit = mem.PlayerData(Offset.equippedCharm_23); break; - - //case SplitName.AreaTestingSanctum: shouldSplit = mem.PlayerData(Offset.currentArea) == (int)MapZone.SOUL_SOCIETY; break; - //case SplitName.AreaTestingSanctumUpper: shouldSplit = mem.PlayerData(Offset.currentArea) == (int)MapZone.MAGE_TOWER; break; - case SplitName.ColosseumBronzeUnlocked: shouldSplit = mem.PlayerData(Offset.colosseumBronzeOpened); break; case SplitName.ColosseumSilverUnlocked: shouldSplit = mem.PlayerData(Offset.colosseumSilverOpened); break; case SplitName.ColosseumGoldUnlocked: shouldSplit = mem.PlayerData(Offset.colosseumGoldOpened); break; - case SplitName.ColosseumBronzeEntry: shouldSplit = sceneName == "Room_Colosseum_01" && nextScene == "Room_Colosseum_Bronze"; break; - case SplitName.ColosseumSilverEntry: shouldSplit = sceneName == "Room_Colosseum_01" && nextScene == "Room_Colosseum_Silver"; break; - case SplitName.ColosseumGoldEntry: shouldSplit = sceneName == "Room_Colosseum_01" && nextScene == "Room_Colosseum_Gold"; break; - case SplitName.ColosseumBronzeExit: shouldSplit = mem.PlayerData(Offset.colosseumBronzeCompleted) && !nextScene.StartsWith("Room_Colosseum_Bronze") && nextScene != sceneName; break; - case SplitName.ColosseumSilverExit: shouldSplit = mem.PlayerData(Offset.colosseumSilverCompleted) && !nextScene.StartsWith("Room_Colosseum_Silver") && nextScene != sceneName; break; - case SplitName.ColosseumGoldExit: shouldSplit = mem.PlayerData(Offset.colosseumGoldCompleted) && !nextScene.StartsWith("Room_Colosseum_Gold") && nextScene != sceneName; break; + case SplitName.ColosseumBronzeEntry: shouldSplit = currScene == "Room_Colosseum_01" && nextScene == "Room_Colosseum_Bronze"; break; + case SplitName.ColosseumSilverEntry: shouldSplit = currScene == "Room_Colosseum_01" && nextScene == "Room_Colosseum_Silver"; break; + case SplitName.ColosseumGoldEntry: shouldSplit = currScene == "Room_Colosseum_01" && nextScene == "Room_Colosseum_Gold"; break; + case SplitName.ColosseumBronzeExit: shouldSplit = mem.PlayerData(Offset.colosseumBronzeCompleted) && !nextScene.StartsWith("Room_Colosseum_Bronze") && nextScene != currScene; break; + case SplitName.ColosseumSilverExit: shouldSplit = mem.PlayerData(Offset.colosseumSilverCompleted) && !nextScene.StartsWith("Room_Colosseum_Silver") && nextScene != currScene; break; + case SplitName.ColosseumGoldExit: shouldSplit = mem.PlayerData(Offset.colosseumGoldCompleted) && !nextScene.StartsWith("Room_Colosseum_Gold") && nextScene != currScene; break; #region Trial of the Warrior case SplitName.Bronze1a: // 1 × Shielded Fool @@ -1529,11 +1512,13 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen break; case SplitName.Bronze7: // 2 × Aspid, 2 × Baldur shouldSplit = - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 6 && - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 9; - shouldSkip = mem.PlayerData(Offset.killsSpitter) == 0 || mem.PlayerData(Offset.killsColRoller) == 0 || - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 6 || - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 9; + store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 6 + && store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 9; + shouldSkip = + mem.PlayerData(Offset.killsSpitter) == 0 + || mem.PlayerData(Offset.killsColRoller) == 0 + || store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 6 + || store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 9; break; case SplitName.Bronze8a: // 4 × Vengefly shouldSplit = store.killsBuzzerStart - mem.PlayerData(Offset.killsBuzzer) == 4; @@ -1545,18 +1530,19 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen break; case SplitName.Bronze9: // 3 × Sturdy Fool, 2 × Shielded Fool, 2 × Aspid, 2 × Baldur shouldSplit = - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 8 && - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 10 && - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 9 && - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 5; - shouldSkip = mem.PlayerData(Offset.killsSpitter) == 0 || - mem.PlayerData(Offset.killsColRoller) == 0 || - mem.PlayerData(Offset.killsColMiner) == 0 || - mem.PlayerData(Offset.killsColShield) == 0 || - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 8 || - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 10 || - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 9 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 5; + store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 8 + && store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 10 + && store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 9 + && store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 5; + shouldSkip = + mem.PlayerData(Offset.killsSpitter) == 0 + || mem.PlayerData(Offset.killsColRoller) == 0 + || mem.PlayerData(Offset.killsColMiner) == 0 + || mem.PlayerData(Offset.killsColShield) == 0 + || store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 8 + || store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 10 + || store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 9 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 5; break; case SplitName.Bronze10: // 3 × Baldur shouldSplit = store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 13; @@ -1573,219 +1559,218 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen case SplitName.BronzeEnd: // 2 × Gruz Mom shouldSplit = store.killsBigFlyStart - mem.PlayerData(Offset.killsBigFly) == 2; shouldSkip = - mem.PlayerData(Offset.killsBigFly) == 0 && - sceneName.StartsWith("Room_Colosseum_Bronze") && - nextScene != sceneName; + mem.PlayerData(Offset.killsBigFly) == 0 + && currScene.StartsWith("Room_Colosseum_Bronze") + && nextScene != currScene; break; - #endregion + #endregion Trial of the Warrior #region Trial of the Conqueror case SplitName.Silver1: // 2 × Heavy Fool, 3 × Winged Fool shouldSplit = - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 2 && - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 3; + store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 2 + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 3; shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 2 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 3; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 2 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 3; break; case SplitName.Silver2: // 2 × Squit - shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 2; + shouldSplit = store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 2; shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 2; + mem.PlayerData(Offset.killsColMosquito) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 2; break; case SplitName.Silver3: // 2 × Squit shouldSplit = store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 4; shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 4; + mem.PlayerData(Offset.killsColMosquito) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 4; break; case SplitName.Silver4: // 1 × Squit, 1 × Winged Fool shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 5 && - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 4; + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 5 + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 4; shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 5 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 4; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 5 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 4; break; case SplitName.Silver5: // 2 × Aspid, 2 × Squit, 5 × Infected Gruzzer, aspid kills in Colo 2 use killsSuperSpitter, even though Colo 1 and 3 use killsSpitter shouldSplit = - store.killsBurstingBouncerStart - mem.PlayerData(Offset.killsBurstingBouncer) == 5 && - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 7 && - store.killsSuperSpitterStart - mem.PlayerData(Offset.killsSuperSpitter) == 2; + store.killsBurstingBouncerStart - mem.PlayerData(Offset.killsBurstingBouncer) == 5 + && store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 7 + && store.killsSuperSpitterStart - mem.PlayerData(Offset.killsSuperSpitter) == 2; shouldSkip = - mem.PlayerData(Offset.killsBurstingBouncer) == 0 || - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsSuperSpitter) == 0 || - store.killsBurstingBouncerStart - mem.PlayerData(Offset.killsBurstingBouncer) > 5 && - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 7 && - store.killsSuperSpitterStart - mem.PlayerData(Offset.killsSuperSpitter) > 2; + mem.PlayerData(Offset.killsBurstingBouncer) == 0 + || mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsSuperSpitter) == 0 + || store.killsBurstingBouncerStart - mem.PlayerData(Offset.killsBurstingBouncer) > 5 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 7 + || store.killsSuperSpitterStart - mem.PlayerData(Offset.killsSuperSpitter) > 2; break; case SplitName.Silver6: // 1 × Heavy Fool, 3 × Belfly shouldSplit = - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 3 && - store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) == 3; + store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 3 + && store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) == 3; shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsCeilingDropper) == 0 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 3 || - store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) > 3; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsCeilingDropper) == 0 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 3 + || store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) > 3; break; case SplitName.Silver7: // 1 × Belfly shouldSplit = store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) == 4; shouldSkip = - mem.PlayerData(Offset.killsCeilingDropper) == 0 || - store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) > 4; + mem.PlayerData(Offset.killsCeilingDropper) == 0 + || store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) > 4; break; case SplitName.Silver8: // 8 × Hopper, 1 × Great Hopper shouldSplit = store.killsGiantHopperStart - mem.PlayerData(Offset.killsGiantHopper) == 1; // only checking great hopper shouldSkip = - mem.PlayerData(Offset.killsGiantHopper) == 0 || - store.killsGiantHopperStart - mem.PlayerData(Offset.killsGiantHopper) > 1; + mem.PlayerData(Offset.killsGiantHopper) == 0 + || store.killsGiantHopperStart - mem.PlayerData(Offset.killsGiantHopper) > 1; break; case SplitName.Silver9: // 1 × Great Hopper shouldSplit = store.killsGiantHopperStart - mem.PlayerData(Offset.killsGiantHopper) == 2; shouldSkip = - mem.PlayerData(Offset.killsGiantHopper) == 0 || - store.killsGiantHopperStart - mem.PlayerData(Offset.killsGiantHopper) > 2; + mem.PlayerData(Offset.killsGiantHopper) == 0 + || store.killsGiantHopperStart - mem.PlayerData(Offset.killsGiantHopper) > 2; break; case SplitName.Silver10: // 1 × Mimic shouldSplit = store.killsGrubMimicStart - mem.PlayerData(Offset.killsGrubMimic) == 1; shouldSkip = - mem.PlayerData(Offset.killsGrubMimic) == 0 || - store.killsGrubMimicStart - mem.PlayerData(Offset.killsGrubMimic) > 1; + mem.PlayerData(Offset.killsGrubMimic) == 0 + || store.killsGrubMimicStart - mem.PlayerData(Offset.killsGrubMimic) > 1; break; case SplitName.Silver11: // 2 × Shielded fool, 2 × Winged Fool, 1 × Heavy Fool, 2 × Squit shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 9 && - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 6 && - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 4; + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 9 + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 6 + && store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 4; shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 9 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 6 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 4; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 9 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 6 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 4; break; case SplitName.Silver12: // 1 × Heavy Fool, 1 × Winged Fool shouldSplit = - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 7 && - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 5; + store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 7 + && store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 5; shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 7 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 5; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 7 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 5; break; case SplitName.Silver13: // 1 × Winged Fool, 3 × Squit shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 12 && - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 8; + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 12 + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 8; shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 12 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 8; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 12 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 8; break; case SplitName.Silver14: // 3 × Winged Fool, 2 × Squit shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 14 && - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 11; + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 14 + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 11; shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 14 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 11; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 14 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 11; break; case SplitName.Silver15: // 9 × Obbles shouldSplit = store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) == 9; shouldSkip = - store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 9 || - mem.PlayerData(Offset.killsBlobble) == 0; + store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 9 + || mem.PlayerData(Offset.killsBlobble) == 0; break; case SplitName.Silver16: // 4 × Obbles shouldSplit = store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) == 13; shouldSkip = - store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 13 || - mem.PlayerData(Offset.killsBlobble) == 0; + store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 13 + || mem.PlayerData(Offset.killsBlobble) == 0; break; case SplitName.SilverEnd: // 2 × Oblobbles shouldSplit = store.killsOblobbleStart - mem.PlayerData(Offset.killsOblobble) == 2; shouldSkip = - mem.PlayerData(Offset.killsOblobble) == 0 && - sceneName.StartsWith("Room_Colosseum_Silver") && - nextScene != sceneName; + mem.PlayerData(Offset.killsOblobble) == 0 + && currScene.StartsWith("Room_Colosseum_Silver") + && nextScene != currScene; break; - #endregion + #endregion Trial of the Conqueror #region Trial of the Fool case SplitName.Gold1: #region shouldSplit = - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 1 && // 1 Heavy Fool - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 1 && // 1 Sturdy Fool - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 2 && // 2 Squit - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 2 && // 2 Shielded Fool - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 1 && // 1 Aspid - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 2 && // 2 Winged Fool - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 2; // 2 Baldurs + store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 1 // 1 Heavy Fool + && store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 1 // 1 Sturdy Fool + && store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 2 // 2 Squit + && store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 2 // 2 Shielded Fool + && store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 1 // 1 Aspid + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 2 // 2 Winged Fool + && store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 2; // 2 Baldurs shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColMiner) == 0 || - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsColShield) == 0 || - mem.PlayerData(Offset.killsSpitter) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - mem.PlayerData(Offset.killsColRoller) == 0 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 1 || - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 1 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 2 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 2 || - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 1 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 2 || - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 2; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColMiner) == 0 + || mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsColShield) == 0 + || mem.PlayerData(Offset.killsSpitter) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || mem.PlayerData(Offset.killsColRoller) == 0 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 1 + || store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 1 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 2 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 2 + || store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 1 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 2 + || store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 2; break; #endregion // Wave 2 splits inconsistently since the enemies are killed by the spikes on the floor automatically case SplitName.Gold3: #region shouldSplit = - store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) == 3 && // 3 Obble - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 3 && // 1 Winged Fool - store.killsAngryBuzzerStart - mem.PlayerData(Offset.killsAngryBuzzer) == 2; // 2 Infected Vengefly + store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) == 3 // 3 Obble + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 3 // 1 Winged Fool + && store.killsAngryBuzzerStart - mem.PlayerData(Offset.killsAngryBuzzer) == 2; // 2 Infected Vengefly shouldSkip = - mem.PlayerData(Offset.killsBlobble) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - mem.PlayerData(Offset.killsAngryBuzzer) == 0 || - store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 3 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 3 || - store.killsAngryBuzzerStart - mem.PlayerData(Offset.killsAngryBuzzer) > 2; + mem.PlayerData(Offset.killsBlobble) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || mem.PlayerData(Offset.killsAngryBuzzer) == 0 + || store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 3 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 3 + || store.killsAngryBuzzerStart - mem.PlayerData(Offset.killsAngryBuzzer) > 2; break; #endregion case SplitName.Gold4: #region shouldSplit = - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 3 && // 2 Heavy Fool - store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) == 6; // 6 Belflies + store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 3 // 2 Heavy Fool + && store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) == 6; // 6 Belflies shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsCeilingDropper) == 0 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 3 || - store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) > 6; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsCeilingDropper) == 0 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 3 + || store.killsCeilingDropperStart - mem.PlayerData(Offset.killsCeilingDropper) > 6; break; #endregion case SplitName.Gold5: @@ -1793,8 +1778,8 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) == 3; // 3 Loodle shouldSkip = - mem.PlayerData(Offset.killsColHopper) == 0 || - store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 3; + mem.PlayerData(Offset.killsColHopper) == 0 + || store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 3; break; #endregion case SplitName.Gold6: @@ -1802,8 +1787,8 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) == 8; // 5 Loodle shouldSkip = - mem.PlayerData(Offset.killsColHopper) == 0 || - store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 8; + mem.PlayerData(Offset.killsColHopper) == 0 + || store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 8; break; #endregion case SplitName.Gold7: @@ -1811,56 +1796,56 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) == 11; // 3 Loodle shouldSkip = - mem.PlayerData(Offset.killsColHopper) == 0 || - store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 11; + mem.PlayerData(Offset.killsColHopper) == 0 + || store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 11; break; #endregion case SplitName.Gold8a: #region shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 4 && // 2 Squit - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 5 && // 3 Aspid - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 4; // 1 Winged Fool + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 4 // 2 Squit + && store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 5 // 3 Aspid + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 4; // 1 Winged Fool shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsSpitter) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 4 || - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 5 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 4; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsSpitter) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 4 + || store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 5 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 4; break; #endregion case SplitName.Gold8: #region shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 6 && // 2 Squit - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 5; // 1 Winged Fool + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 6 // 2 Squit + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 5; // 1 Winged Fool shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 6 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 5; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 6 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 5; break; #endregion case SplitName.Gold9a: #region shouldSplit = - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 3 && // 1 Shielded Fool - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 5 && // 2 Heavy Fool - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 6 && // 1 Aspid - store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) == 2 && // 2 Mantis Traitor - store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 4; // 4 Mantis Petra + store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 3 // 1 Shielded Fool + && store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 5 // 2 Heavy Fool + && store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 6 // 1 Aspid + && store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) == 2 // 2 Mantis Traitor + && store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 4; // 4 Mantis Petra shouldSkip = - mem.PlayerData(Offset.killsColShield) == 0 || - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsSpitter) == 0 || - mem.PlayerData(Offset.killsHeavyMantis) == 0 || - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 0 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 3 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 5 || - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 6 || - store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) > 2 || - store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) > 4; + mem.PlayerData(Offset.killsColShield) == 0 + || mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsSpitter) == 0 + || mem.PlayerData(Offset.killsHeavyMantis) == 0 + || mem.PlayerData(Offset.killsMantisHeavyFlyer) == 0 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 3 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 5 + || store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) > 6 + || store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) > 2 + || store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) > 4; break; #endregion case SplitName.Gold9b: @@ -1868,83 +1853,83 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) == 1; // 1 Soul Warrior shouldSkip = - mem.PlayerData(Offset.killsMageKnight) == 0 || - store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) > 1; + mem.PlayerData(Offset.killsMageKnight) == 0 + || store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) > 1; break; #endregion case SplitName.Gold10: #region shouldSplit = - store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) == 3 && // 3 Volt Twister - store.killsMageStart - mem.PlayerData(Offset.killsMage) == 4; // 2 Soul Twister + store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) == 3 // 3 Volt Twister + && store.killsMageStart - mem.PlayerData(Offset.killsMage) == 4; // 2 Soul Twister shouldSkip = - mem.PlayerData(Offset.killsElectricMage) == 0 || - mem.PlayerData(Offset.killsMage) == 0 || - store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) > 3 || - store.killsMageStart - mem.PlayerData(Offset.killsMage) > 4; + mem.PlayerData(Offset.killsElectricMage) == 0 + || mem.PlayerData(Offset.killsMage) == 0 + || store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) > 3 + || store.killsMageStart - mem.PlayerData(Offset.killsMage) > 4; break; #endregion case SplitName.Gold11: #region shouldSplit = - store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) == 2 && // 1 Soul Warrior - store.killsMageStart - mem.PlayerData(Offset.killsMage) == 5; // 1 Soul Twister + store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) == 2 // 1 Soul Warrior + && store.killsMageStart - mem.PlayerData(Offset.killsMage) == 5; // 1 Soul Twister shouldSkip = - mem.PlayerData(Offset.killsMageKnight) == 0 || - store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) > 2 || - store.killsMageStart - mem.PlayerData(Offset.killsMage) > 5; + mem.PlayerData(Offset.killsMageKnight) == 0 + || store.killsMageKnightStart - mem.PlayerData(Offset.killsMageKnight) > 2 + || store.killsMageStart - mem.PlayerData(Offset.killsMage) > 5; break; #endregion case SplitName.Gold12a: #region shouldSplit = - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 7 && // 2 Winged Fool - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 4 && // 1 Sturdy Fool - store.killsLesserMawlekStart - mem.PlayerData(Offset.killsLesserMawlek) == 4; // 4 Lesser Mawlek + store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 7 // 2 Winged Fool + && store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 4 // 1 Sturdy Fool + && store.killsLesserMawlekStart - mem.PlayerData(Offset.killsLesserMawlek) == 4; // 4 Lesser Mawlek shouldSkip = - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - mem.PlayerData(Offset.killsColMiner) == 0 || - mem.PlayerData(Offset.killsLesserMawlek) == 0 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 7 || - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 4 || - store.killsLesserMawlekStart - mem.PlayerData(Offset.killsLesserMawlek) > 4; + mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || mem.PlayerData(Offset.killsColMiner) == 0 + || mem.PlayerData(Offset.killsLesserMawlek) == 0 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 7 + || store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 4 + || store.killsLesserMawlekStart - mem.PlayerData(Offset.killsLesserMawlek) > 4; break; #endregion case SplitName.Gold12b: #region shouldSplit = - store.killsMawlekStart - mem.PlayerData(Offset.killsMawlek) == 1; // 1 Brooding Mawlek + store.killsMawlekStart - mem.PlayerData(Offset.killsMawlek) == 1; // 1 Brooding Mawlek shouldSkip = - mem.PlayerData(Offset.killsMawlek) == 0 || - store.killsMawlekStart - mem.PlayerData(Offset.killsMawlek) > 1; + mem.PlayerData(Offset.killsMawlek) == 0 + || store.killsMawlekStart - mem.PlayerData(Offset.killsMawlek) > 1; break; #endregion // Wave 13 doesn't really exist, it's just vertical Garpedes so there's nothing to Split on case SplitName.Gold14a: #region shouldSplit = - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 10 && // 1 Squit - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 7 && // 1 Aspid - store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 5; // 1 Mantis Petra + store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 10 // 1 Squit + && store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) == 7 // 1 Aspid + && store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 5; // 1 Mantis Petra shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 0 || - mem.PlayerData(Offset.killsSpitter) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 10 || - store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) > 5 || - store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) - 1 > 7; + mem.PlayerData(Offset.killsColMosquito) == 0 + || mem.PlayerData(Offset.killsMantisHeavyFlyer) == 0 + || mem.PlayerData(Offset.killsSpitter) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 10 + || store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) > 5 + || store.killsSpitterStart - mem.PlayerData(Offset.killsSpitter) - 1 > 7; break; #endregion case SplitName.Gold14b: #region shouldSplit = - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 10 && // 2 Winged Fool - store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) == 7; // 4 Obble + store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 10 // 2 Winged Fool + && store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) == 7; // 4 Obble shouldSkip = - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - mem.PlayerData(Offset.killsBlobble) == 0 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 10 || - store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 7; + mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || mem.PlayerData(Offset.killsBlobble) == 0 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 10 + || store.killsBlobbleStart - mem.PlayerData(Offset.killsBlobble) > 7; break; #endregion case SplitName.Gold15: @@ -1952,8 +1937,8 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 12; // 2 Squit shouldSkip = - mem.PlayerData(Offset.killsColMosquito) == 0 || - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 12; + mem.PlayerData(Offset.killsColMosquito) == 0 + || store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) > 12; break; #endregion case SplitName.Gold16: @@ -1961,74 +1946,74 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) == 25; // 14 Loodle elderC shouldSkip = - mem.PlayerData(Offset.killsColHopper) == 0 || - store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 25; + mem.PlayerData(Offset.killsColHopper) == 0 + || store.killsColHopperStart - mem.PlayerData(Offset.killsColHopper) > 25; break; #endregion case SplitName.Gold17a: #region shouldSplit = - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 6 && // 1 Heavy Fool - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 5 && // 1 Sturdy Fool - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 4 && // 1 Shielded Fool - store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 6 && // 1 Mantis Petra - store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) == 3 && // 1 Mantis Traitor - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 11; // 1 Winged Fool + store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 6 // 1 Heavy Fool + && store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 5 // 1 Sturdy Fool + && store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 4 // 1 Shielded Fool + && store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 6 // 1 Mantis Petra + && store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) == 3 // 1 Mantis Traitor + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 11; // 1 Winged Fool shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColMiner) == 0 || - mem.PlayerData(Offset.killsColShield) == 0 || - mem.PlayerData(Offset.killsMantisHeavyFlyer) == 0 || - mem.PlayerData(Offset.killsHeavyMantis) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 6 || - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 5 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 4 || - store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) - 1 > 6 || - store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) > 3 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) - 1 > 11; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColMiner) == 0 + || mem.PlayerData(Offset.killsColShield) == 0 + || mem.PlayerData(Offset.killsMantisHeavyFlyer) == 0 + || mem.PlayerData(Offset.killsHeavyMantis) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 6 + || store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 5 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 4 + || store.killsHeavyMantisFlyerStart - mem.PlayerData(Offset.killsMantisHeavyFlyer) - 1 > 6 + || store.killsHeavyMantisStart - mem.PlayerData(Offset.killsHeavyMantis) > 3 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) - 1 > 11; break; #endregion case SplitName.Gold17b: #region shouldSplit = - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 7 && // 1 Heavy Fool - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 5 && // 1 Shielded Fool - store.killsMageStart - mem.PlayerData(Offset.killsMage) == 6 && // 1 Soul Twister - store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) == 4; // 1 Volt Twister + store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 7 // 1 Heavy Fool + && store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 5 // 1 Shielded Fool + && store.killsMageStart - mem.PlayerData(Offset.killsMage) == 6 // 1 Soul Twister + && store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) == 4; // 1 Volt Twister shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColShield) == 0 || - mem.PlayerData(Offset.killsMage) == 0 || - mem.PlayerData(Offset.killsElectricMage) == 0 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 7 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 5 || - store.killsMageStart - mem.PlayerData(Offset.killsMage) > 6 || - store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) > 4; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColShield) == 0 + || mem.PlayerData(Offset.killsMage) == 0 + || mem.PlayerData(Offset.killsElectricMage) == 0 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 7 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 5 + || store.killsMageStart - mem.PlayerData(Offset.killsMage) > 6 + || store.killsElectricMageStart - mem.PlayerData(Offset.killsElectricMage) > 4; break; #endregion case SplitName.Gold17c: #region shouldSplit = - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 4 && // 2 Baldur - store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 14 && // 2 Squit - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 8 && // 1 Heavy Fool - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 6 && // 1 Shielded Fool - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 6 && // 1 Sturdy Fool - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 12; // 1 Winged Fool + store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) == 4 // 2 Baldur + && store.killsColMosquitoStart - mem.PlayerData(Offset.killsColMosquito) == 14// 2 Squit + && store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) == 8 // 1 Heavy Fool + && store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) == 6 // 1 Shielded Fool + && store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) == 6 // 1 Sturdy Fool + && store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) == 12; // 1 Winged Fool shouldSkip = - mem.PlayerData(Offset.killsColWorm) == 0 || - mem.PlayerData(Offset.killsColShield) == 0 || - mem.PlayerData(Offset.killsColMiner) == 0 || - mem.PlayerData(Offset.killsColFlyingSentry) == 0 || - mem.PlayerData(Offset.killsColRoller) == 0 || - mem.PlayerData(Offset.killsColShield) == 0 || - store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 4 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 14 || - store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 8 || - store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 6 || - store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 6 || - store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 12; + mem.PlayerData(Offset.killsColWorm) == 0 + || mem.PlayerData(Offset.killsColShield) == 0 + || mem.PlayerData(Offset.killsColMiner) == 0 + || mem.PlayerData(Offset.killsColFlyingSentry) == 0 + || mem.PlayerData(Offset.killsColRoller) == 0 + || mem.PlayerData(Offset.killsColShield) == 0 + || store.killsColRollerStart - mem.PlayerData(Offset.killsColRoller) > 4 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 14 + || store.killsColWormStart - mem.PlayerData(Offset.killsColWorm) > 8 + || store.killsColShieldStart - mem.PlayerData(Offset.killsColShield) > 6 + || store.killsColMinerStart - mem.PlayerData(Offset.killsColMiner) > 6 + || store.killsColFlyingSentryStart - mem.PlayerData(Offset.killsColFlyingSentry) > 12; break; #endregion case SplitName.GoldEnd: @@ -2036,12 +2021,14 @@ private SplitterAction CheckSplit(SplitName split, string nextScene, string scen shouldSplit = store.killsLobsterLancerStart - mem.PlayerData(Offset.killsLobsterLancer) == 1; // God Tamer shouldSkip = - mem.PlayerData(Offset.killsLobsterLancer) == 0 && - sceneName.StartsWith("Room_Colosseum_Gold") && - nextScene != sceneName; + mem.PlayerData(Offset.killsLobsterLancer) == 0 + && currScene.StartsWith("Room_Colosseum_Gold") + && nextScene != currScene; break; #endregion - #endregion + #endregion Trial of the Fool + + #endregion Colosseum default: //throw new Exception(split + " does not have a defined shouldsplit value");