Skip to content

Instantly share code, notes, and snippets.

@AltimorTASDK
Created September 29, 2025 17:57
Show Gist options
  • Select an option

  • Save AltimorTASDK/de27cf9901f96d34b3aad78d939da510 to your computer and use it in GitHub Desktop.

Select an option

Save AltimorTASDK/de27cf9901f96d34b3aad78d939da510 to your computer and use it in GitHub Desktop.
public void TimePasses()
{
StaticVariableList.ClearSceneTransitions();
string sceneNameString = this.GetSceneNameString();
MapZone currentMapZoneEnum = this.GetCurrentMapZoneEnum();
if (this.playerData.seenBellBeast && this.playerData.shermaPos == 0)
{
this.playerData.shermaPos = 1;
}
if (this.playerData.shermaPos == 1 && sceneNameString != "Bone_East_10_Room" && (this.playerData.scenesVisited.Contains("Belltown") || this.playerData.scenesVisited.Contains("Halfway_01")))
{
this.playerData.shermaPos = 2;
}
if (this.playerData.spinnerDefeated && (this.playerData.encounteredLastJudge || (this.playerData.activatedStepsUpperBellbench && this.playerData.defeatedCoralDrillers) || (this.playerData.visitedCoral && currentMapZoneEnum == MapZone.DUSTPENS) || currentMapZoneEnum == MapZone.SWAMP))
{
this.playerData.shermaAtSteps = true;
}
if (this.playerData.SeenLastJudgeGateOpen && !this.playerData.shermaCitadelEntrance_Visiting && this.playerData.enteredCoral_10 && this.playerData.enteredSong_19 && this.playerData.citadelWoken)
{
this.playerData.shermaCitadelEntrance_Visiting = true;
}
if ((this.playerData.shermaCitadelEntrance_Seen || this.playerData.citadelHalfwayComplete) && !this.playerData.shermaCitadelEntrance_Left)
{
this.playerData.shermaCitadelEntrance_Left = true;
}
if (this.playerData.shermaCitadelSpa_Seen && !this.playerData.shermaCitadelSpa_Left)
{
this.playerData.shermaCitadelSpa_Left = true;
this.playerData.shermaCitadelEntrance_Left = true;
}
if (this.playerData.enclaveLevel >= 2 && sceneNameString != "Song_Enclave" && sceneNameString != "Bellshrine_Enclave")
{
this.playerData.shermaInEnclave = true;
}
if (!this.playerData.shermaHealerActive && QuestManager.GetQuest("Save Sherma").IsCompleted && sceneNameString != "Song_Enclave" && sceneNameString != "Bellshrine_Enclave")
{
this.playerData.shermaHealerActive = true;
}
if (this.playerData.shermaHealerActive && sceneNameString != "Song_Enclave" && sceneNameString != "Bellshrine_Enclave")
{
this.playerData.shermaWoundedPilgrim = Random.Range(1, 4);
}
if (sceneNameString != "Bonetown" && sceneNameString != "Belltown")
{
this.playerData.mapperAway = (Random.Range(1, 100) > 50);
}
if (this.playerData.killedRoostingCrowman)
{
this.playerData.killedRoostingCrowman = false;
}
if (this.playerData.spinnerDefeated)
{
this.playerData.MapperAppearInBellhart = true;
}
if (this.playerData.defeatedCoralDrillers)
{
this.playerData.coralDrillerSoloReady = true;
}
if (this.playerData.dust01_battleCompleted)
{
this.playerData.dust01_returnReady = true;
}
if (sceneNameString != "Bonetown" && this.playerData.visitedBellhart)
{
this.playerData.BonebottomBellwayPilgrimLeft = true;
}
if (this.playerData.BoneBottomShopKeepWillLeave && !this.playerData.BoneBottomShopKeepLeft && sceneNameString != "Bonetown")
{
this.playerData.BoneBottomShopKeepLeft = true;
}
if (currentMapZoneEnum != MapZone.BONETOWN && currentMapZoneEnum != MapZone.PATH_OF_BONE && currentMapZoneEnum != MapZone.MOSS_CAVE)
{
if (this.playerData.seenPilbyLeft && !this.playerData.bonetownPilgrimRoundActive)
{
this.playerData.bonetownPilgrimRoundActive = true;
}
if (this.playerData.seenPebbLeft && !this.playerData.bonetownPilgrimHornedActive)
{
this.playerData.bonetownPilgrimHornedActive = true;
}
}
if (this.playerData.hasChargeSlash && sceneNameString != "Room_Pinstress")
{
this.playerData.pinstressStoppedResting = true;
if (Random.Range(0, 100) >= 50)
{
this.playerData.pinstressInsideSitting = true;
}
else
{
this.playerData.pinstressInsideSitting = false;
}
if (this.playerData.blackThreadWorld)
{
this.playerData.pinstressQuestReady = true;
}
}
if (!this.playerData.IsPinGallerySetup && this.playerData.spinnerDefeated && sceneNameString != "Bone_12")
{
this.playerData.IsPinGallerySetup = true;
}
if (!this.playerData.PinGalleryLastChallengeOpen && this.playerData.pinGalleriesCompleted == 2 && this.playerData.visitedCitadel && sceneNameString != "Bone_12")
{
this.playerData.PinGalleryLastChallengeOpen = true;
}
if (this.playerData.bone03_openedTrapdoor && !QuestManager.GetQuest("Rock Rollers").IsAccepted)
{
this.playerData.bone03_openedTrapdoorForRockRoller = true;
}
if (this.playerData.rhinoChurchUnlocked)
{
this.playerData.rhinoRampageCompleted = true;
}
if (this.playerData.rhinoChurchUnlocked && !this.playerData.churchRhinoKilled && this.playerData.visitedCitadel && this.playerData.PilgrimsRestDoorBroken && currentMapZoneEnum != MapZone.WILDS && this.playerData.respawnScene != "Bone_East_10_Room")
{
this.playerData.rhinoRuckus = true;
this.playerData.didRhinoRuckus = true;
}
if (sceneNameString != "Bone_East_10_Room")
{
this.playerData.pilgrimRestCrowd = Random.Range(1, 6);
}
if (sceneNameString != "Halfway_01" && this.playerData.MetHalfwayHunterFan)
{
if (Random.Range(1, 100) > 50)
{
this.playerData.nuuIsHome = true;
}
else
{
this.playerData.nuuIsHome = false;
}
}
if (this.playerData.MetHalfwayHunterFan && this.playerData.defeatedSplinterQueen && currentMapZoneEnum != MapZone.SHELLWOOD_THICKET && !this.playerData.nuuVisiting_splinterQueen)
{
this.playerData.nuuVisiting_splinterQueen = true;
}
if (this.playerData.MetHalfwayHunterFan && this.playerData.defeatedCoralDrillers && currentMapZoneEnum != MapZone.JUDGE_STEPS && !this.playerData.nuuVisiting_coralDrillers)
{
this.playerData.nuuVisiting_coralDrillers = true;
}
if (this.playerData.MetHalfwayHunterFan && this.playerData.skullKingDefeated && currentMapZoneEnum != MapZone.PATH_OF_BONE && !this.playerData.nuuVisiting_skullKing)
{
this.playerData.nuuVisiting_skullKing = true;
}
if (this.playerData.MetHalfwayHunterFan && this.playerData.defeatedZapCoreEnemy && currentMapZoneEnum != MapZone.RED_CORAL_GORGE && !this.playerData.nuuVisiting_zapNest)
{
this.playerData.nuuVisiting_zapNest = true;
}
if (sceneNameString != "Halfway_01")
{
this.playerData.halfwayCrowd = Random.Range(1, 5);
if (this.playerData.MetHalfwayBartender)
{
this.playerData.HalfwayPatronsCanVisit = true;
}
if (this.playerData.SeenHalfwayPatronLeft)
{
this.playerData.HalfwayPatronLeftGone = true;
}
if (this.playerData.SeenHalfwayPatronRight)
{
this.playerData.HalfwayPatronRightGone = true;
}
}
if (!this.playerData.greymoor_05_centipedeArrives && (this.playerData.greymoor_04_battleCompleted || this.playerData.greymoor_10_entered))
{
this.playerData.greymoor_05_centipedeArrives = true;
}
if (this.playerData.garmondMoorwingConvo)
{
this.playerData.garmondMoorwingConvoReady = true;
}
if (this.playerData.metGarmond && this.playerData.vampireGnatDeaths > 1)
{
this.playerData.garmondMoorwingConvoReady = true;
}
if (this.playerData.openedDust05Gate)
{
this.playerData.garmondInDust05 = true;
}
if (this.playerData.dust05EnemyClearedOut)
{
this.playerData.dust05EnemyClearedOut = true;
}
if (this.playerData.bellShrineEnclave || this.playerData.defeatedCogworkDancers || this.playerData.hasHarpoonDash)
{
if (!this.playerData.garmondInSong01 && !this.playerData.garmondSeenInSong01 && this.playerData.enteredSong_01)
{
this.playerData.garmondInSong01 = true;
}
if (!this.playerData.garmondInSong02 && !this.playerData.garmondSeenInSong02 && this.playerData.enteredSong_02)
{
this.playerData.garmondInSong02 = true;
}
if (!this.playerData.garmondInSong13 && !this.playerData.garmondSeenInSong13 && this.playerData.enteredSong_13)
{
this.playerData.garmondInSong13 = true;
}
if (!this.playerData.garmondInSong17 && !this.playerData.garmondSeenInSong17 && this.playerData.enteredSong_17 && this.playerData.marionettesMet)
{
this.playerData.garmondInSong17 = true;
}
}
if (!this.playerData.garmondInLibrary && this.playerData.libraryRoofShortcut && this.playerData.metGarmond)
{
this.playerData.garmondInLibrary = true;
}
if (this.playerData.HasMelodyArchitect && this.playerData.HasMelodyConductor && this.playerData.HasMelodyLibrarian && QuestManager.GetQuest("Fine Pins").IsCompleted && (this.playerData.metGarmond || (this.playerData.garmondSeenInSong13 && this.playerData.garmondSeenInSong17)))
{
this.playerData.garmondInEnclave = true;
}
if ((this.playerData.garmondEncounters_act3 >= 3 || this.playerData.HasWhiteFlower) && !this.playerData.garmondFinalQuestReady)
{
this.playerData.garmondFinalQuestReady = true;
}
this.playerData.pilgrimGroupBonegrave = Random.Range(1, 4);
if (this.playerData.savedPlinney)
{
this.playerData.shellGravePopulated = true;
}
this.playerData.pilgrimGroupShellgrave = Random.Range(1, 4);
this.playerData.pilgrimGroupGreymoorField = Random.Range(1, 4);
this.playerData.enemyGroupAnt04 = Random.Range(1, 4);
float num = (float)Random.Range(1, 100);
if (num <= 60f)
{
this.playerData.halfwayCrowEnemyGroup = 2;
}
else if (num <= 90f)
{
this.playerData.halfwayCrowEnemyGroup = 1;
}
else
{
this.playerData.halfwayCrowEnemyGroup = 3;
}
if (this.playerData.bonegraveRosaryPilgrimDefeated)
{
this.playerData.bonegravePilgrimCrowdsCanReturn = true;
}
if (this.playerData.wokeSongChevalier && !this.playerData.songChevalierActiveInSong_25)
{
this.playerData.songChevalierActiveInSong_25 = true;
}
if (this.playerData.wokeSongChevalier && !this.playerData.songChevalierActiveInSong_27)
{
this.playerData.songChevalierActiveInSong_27 = true;
}
if (this.playerData.wokeSongChevalier && !this.playerData.songChevalierActiveInSong_04 && this.playerData.song_04_battleCompleted)
{
this.playerData.songChevalierActiveInSong_04 = true;
}
if (this.playerData.blackThreadWorld && this.playerData.wokeSongChevalier)
{
if (!this.playerData.songChevalierActiveInSong_02)
{
this.playerData.songChevalierActiveInSong_02 = true;
}
if (!this.playerData.songChevalierActiveInSong_24)
{
this.playerData.songChevalierActiveInSong_24 = true;
}
if (!this.playerData.songChevalierActiveInHang_02)
{
this.playerData.songChevalierActiveInHang_02 = true;
}
if (!this.playerData.songChevalierActiveInSong_07 && QuestManager.GetQuest("Save City Merchant").IsCompleted)
{
this.playerData.songChevalierActiveInSong_07 = true;
}
}
if (this.playerData.songChevalierEncounterCooldown)
{
this.playerData.songChevalierEncounterCooldown = false;
}
if (this.playerData.songChevalierEncounters >= 2 && this.playerData.HasMelodyConductor && this.playerData.enclaveLevel >= 2 && !this.playerData.songChevalierQuestReady && !QuestManager.GetQuest("Song Knight").IsCompleted)
{
this.playerData.songChevalierQuestReady = true;
}
if (this.playerData.songChevalierEncounters >= 1 && this.playerData.HasWhiteFlower && !this.playerData.songChevalierQuestReady && !QuestManager.GetQuest("Song Knight").IsCompleted)
{
this.playerData.songChevalierQuestReady = true;
}
if (this.playerData.blackThreadWorld && QuestManager.GetQuest("Song Knight").IsCompleted)
{
this.playerData.songChevalierActiveInSong_25 = false;
this.playerData.songChevalierSeenInSong_25 = false;
this.playerData.songChevalierActiveInSong_27 = false;
this.playerData.songChevalierSeenInSong_27 = false;
this.playerData.songChevalierActiveInSong_02 = false;
this.playerData.songChevalierSeenInSong_02 = false;
this.playerData.songChevalierActiveInSong_24 = false;
this.playerData.songChevalierSeenInSong_24 = false;
this.playerData.songChevalierActiveInSong_07 = false;
this.playerData.songChevalierSeenInSong_07 = false;
this.playerData.songChevalierActiveInHang_02 = false;
this.playerData.songChevalierSeenInHang_02 = false;
switch (Random.Range(1, 7))
{
case 1:
this.playerData.songChevalierActiveInSong_25 = true;
break;
case 2:
this.playerData.songChevalierActiveInSong_27 = true;
break;
case 3:
this.playerData.songChevalierActiveInSong_02 = true;
break;
case 4:
this.playerData.songChevalierActiveInSong_24 = true;
break;
case 5:
if (QuestManager.GetQuest("Save City Merchant").IsCompleted)
{
this.playerData.songChevalierActiveInSong_07 = true;
}
else
{
this.playerData.songChevalierActiveInSong_25 = true;
}
break;
case 6:
this.playerData.songChevalierActiveInHang_02 = true;
break;
}
}
if (!this.playerData.enclaveNPC_songKnightFan && this.playerData.blackThreadWorld && this.playerData.wokeSongChevalier && this.playerData.hasSuperJump && currentMapZoneEnum != MapZone.CITY_OF_SONG)
{
this.playerData.enclaveNPC_songKnightFan = true;
}
if (this.playerData.boneEastJailerKilled || this.playerData.CurseKilledFlyBoneEast)
{
this.playerData.boneEastJailerClearedOut = true;
}
if (this.playerData.enteredGreymoor05)
{
this.playerData.previouslyVisitedGreymoor_05 = true;
}
if (this.playerData.greymoor05_clearedOut)
{
this.playerData.greymoor05_clearedOut = false;
}
if (this.playerData.seenEmptyShellwood16)
{
this.playerData.slabFlyInShellwood16 = true;
}
if (this.playerData.completedLibraryEntryBattle)
{
this.playerData.scholarAmbushReady = true;
}
if (this.playerData.ant04_battleCompleted)
{
this.playerData.ant04_enemiesReturn = true;
}
if (this.playerData.dicePilgrimDefeated && this.playerData.dicePilgrimState == 0 && (this.playerData.defeatedCogworkDancers || this.playerData.hasHarpoonDash) && currentMapZoneEnum != MapZone.JUDGE_STEPS)
{
this.playerData.dicePilgrimState = 2;
}
else if (this.playerData.dicePilgrimState == 0 && (this.playerData.defeatedCogworkDancers || this.playerData.hasHarpoonDash) && currentMapZoneEnum != MapZone.JUDGE_STEPS)
{
this.playerData.dicePilgrimState = 1;
}
if (this.playerData.coral19_clearedOut)
{
this.playerData.coral19_clearedOut = false;
}
if (this.playerData.defeatedCoralDrillerSolo && currentMapZoneEnum != MapZone.RED_CORAL_GORGE && currentMapZoneEnum != MapZone.JUDGE_STEPS)
{
this.playerData.coralDrillerSoloEnemiesReturned = true;
}
if (this.playerData.defeatedWispPyreEffigy)
{
this.playerData.wisp02_enemiesReturned = true;
}
if (!this.playerData.HalfwayScarecrawAppeared && sceneNameString != "Halfway_01" && QuestManager.GetQuest("Crow Feathers").IsCompleted)
{
this.playerData.HalfwayScarecrawAppeared = true;
}
if (this.playerData.metGrubFarmer && !this.playerData.farmer_grewFirstGrub && sceneNameString != "Dust_11")
{
this.playerData.farmer_grubGrown_1 = true;
this.playerData.farmer_grewFirstGrub = true;
}
if (this.playerData.grubFarmLevel >= 1 && this.playerData.farmer_grewFirstGrub && (!this.playerData.blackThreadWorld || this.playerData.silkFarmAbyssCoresCleared))
{
if (this.timeSinceLastTimePasses > 0f)
{
this.playerData.grubFarmerTimer += this.timeSinceLastTimePasses;
}
while (this.playerData.grubFarmerTimer >= 1800f)
{
this.playerData.grubFarmerTimer -= 1800f;
if (!this.playerData.farmer_grubGrowing_1 && !this.playerData.farmer_grubGrown_1)
{
this.playerData.farmer_grubGrowing_1 = true;
}
else if (!this.playerData.farmer_grubGrown_1)
{
this.playerData.farmer_grubGrown_1 = true;
this.playerData.farmer_grubGrowing_1 = false;
}
else
{
if (this.playerData.grubFarmLevel >= 2 && this.playerData.farmer_grubGrown_1)
{
if (!this.playerData.farmer_grubGrowing_2 && !this.playerData.farmer_grubGrown_2)
{
this.playerData.farmer_grubGrowing_2 = true;
continue;
}
if (!this.playerData.farmer_grubGrown_2)
{
this.playerData.farmer_grubGrown_2 = true;
this.playerData.farmer_grubGrowing_2 = false;
continue;
}
}
if (this.playerData.grubFarmLevel >= 3 && this.playerData.farmer_grubGrown_2)
{
if (!this.playerData.farmer_grubGrowing_3 && !this.playerData.farmer_grubGrown_3)
{
this.playerData.farmer_grubGrowing_3 = true;
}
else if (!this.playerData.farmer_grubGrown_3)
{
this.playerData.farmer_grubGrown_3 = true;
this.playerData.farmer_grubGrowing_3 = false;
}
}
}
}
}
if (this.playerData.hitCrowCourtSwitch && !this.playerData.CrowCourtInSession && !this.playerData.defeatedCrowCourt && currentMapZoneEnum != MapZone.GREYMOOR && this.playerData.blackThreadWorld)
{
this.playerData.CrowCourtInSession = true;
}
if (this.playerData.defeatedCrowCourt && this.playerData.CrowCourtInSession && currentMapZoneEnum != MapZone.GREYMOOR)
{
this.playerData.CrowCourtInSession = false;
}
if (this.playerData.CrawbellInstalled)
{
if (this.timeSinceLastTimePasses > 0f)
{
this.playerData.CrawbellTimer += this.timeSinceLastTimePasses;
}
if (!(sceneNameString == "Belltown") && !(sceneNameString == "Belltown_Room_Spare") && !(sceneNameString == "Belltown_basement") && !(sceneNameString == "Belltown_Room_pinsmith") && !(sceneNameString == "Belltown_Room_Relic"))
{
this.playerData.CrawbellCrawsInside = (Random.Range(0, 2) == 0);
ArrayForEnumAttribute.EnsureArraySize<int>(ref this.playerData.CrawbellCurrency, typeof(CurrencyType));
ArrayForEnumAttribute.EnsureArraySize<int>(ref this.playerData.CrawbellCurrencyCaps, typeof(CurrencyType));
for (int i = 0; i < this.playerData.CrawbellCurrencyCaps.Length; i++)
{
if (this.playerData.CrawbellCurrencyCaps[i] <= 0)
{
this.playerData.CrawbellCurrencyCaps[i] = Random.Range(300, 500);
}
}
while (this.playerData.CrawbellTimer >= 300f)
{
this.playerData.CrawbellTimer -= 300f;
for (int j = 0; j < this.playerData.CrawbellCurrency.Length; j++)
{
int num2 = this.playerData.CrawbellCurrency[j];
if (num2 < this.playerData.CrawbellCurrencyCaps[j])
{
this.playerData.CrawbellCurrency[j] = num2 + Random.Range(5, 20);
}
}
}
}
}
if (this.playerData.Collectables.GetData("Growstone").Amount > 0)
{
if (this.timeSinceLastTimePasses > 0f)
{
this.playerData.GrowstoneTimer += this.timeSinceLastTimePasses;
}
while (this.playerData.GrowstoneTimer >= 1200f)
{
if (this.playerData.GrowstoneState >= 3)
{
this.playerData.GrowstoneTimer = 0f;
break;
}
this.playerData.GrowstoneTimer -= 1200f;
this.playerData.GrowstoneState++;
}
}
if (this.playerData.blackThreadWorld && !this.playerData.HuntressRuntAppeared && !Gameplay.HuntressQuest.IsCompleted)
{
this.playerData.HuntressRuntAppeared = true;
}
if (this.playerData.defeatedSplinterQueen && !this.playerData.splinterQueenSproutCut && currentMapZoneEnum != MapZone.SHELLWOOD_THICKET && this.playerData.splinterQueenSproutTimer < 50)
{
this.playerData.splinterQueenSproutTimer++;
}
if (this.playerData.roofCrabDefeated && this.playerData.citadelWoken && currentMapZoneEnum != MapZone.CRAWLSPACE && currentMapZoneEnum != MapZone.BONETOWN && currentMapZoneEnum != MapZone.PATH_OF_BONE && currentMapZoneEnum != MapZone.MOSSTOWN)
{
this.playerData.littleCrabsAppeared = true;
}
if ((this.playerData.BonebottomBellwayPilgrimScared || this.playerData.skullKingInvaded) && !this.playerData.BonebottomBellwayPilgrimLeft && (!this.playerData.skullKingInvaded || this.playerData.skullKingKilled) && currentMapZoneEnum != MapZone.BONETOWN && currentMapZoneEnum != MapZone.PATH_OF_BONE)
{
this.playerData.BonebottomBellwayPilgrimLeft = true;
}
if (this.playerData.spinnerDefeated)
{
this.playerData.BonebottomBellwayPilgrimLeft = true;
}
this.playerData.skullKingWillInvade = false;
if (this.playerData.skullKingDefeated && !this.playerData.skullKingWillInvade && currentMapZoneEnum != MapZone.BONETOWN && currentMapZoneEnum != MapZone.PATH_OF_BONE && currentMapZoneEnum != MapZone.MOSS_CAVE && !this.playerData.blackThreadWorld && (this.playerData.visitedCitadel || this.playerData.visitedCoral || this.playerData.visitedDustpens) && !QuestManager.GetQuest("Soul Snare").IsAccepted && Random.Range(1, 100) <= 30)
{
this.playerData.skullKingWillInvade = true;
}
if (this.playerData.skullKingWillInvade && QuestManager.GetQuest("Soul Snare").IsAccepted)
{
this.playerData.skullKingWillInvade = false;
}
if (this.playerData.skullKingKilled && !this.playerData.skullKingBenchMended)
{
this.playerData.skullKingBenchMended = true;
}
if (this.playerData.skullKingBenchMended && this.playerData.pilbyKilled && !this.playerData.boneBottomFuneral && !this.playerData.blackThreadWorld && currentMapZoneEnum != MapZone.BONETOWN && currentMapZoneEnum != MapZone.PATH_OF_BONE && currentMapZoneEnum != MapZone.MOSS_CAVE)
{
this.playerData.boneBottomFuneral = true;
this.playerData.skullKingPlatMended = true;
}
if ((this.playerData.UnlockedMelodyLift || this.playerData.hasDoubleJump) && !this.playerData.pilbyKilled && this.playerData.pilbyMeetConvo && !this.playerData.pilbyAtPilgrimsRest && !this.playerData.rhinoRuckus)
{
this.playerData.pilbyAtPilgrimsRest = true;
if (this.playerData.PilgrimsRestDoorBroken)
{
this.playerData.pilbyInsidePilgrimsRest = true;
}
}
if (this.playerData.pilbySeenAtPilgrimsRest && !this.playerData.pilbyLeftPilgrimsRest && currentMapZoneEnum != MapZone.WILDS)
{
this.playerData.pilbyLeftPilgrimsRest = true;
}
if (currentMapZoneEnum != MapZone.BONETOWN && currentMapZoneEnum != MapZone.PATH_OF_BONE && currentMapZoneEnum != MapZone.MOSS_CAVE && this.playerData.visitedBoneForest)
{
this.playerData.bonetownCrowd = Random.Range(1, 8);
}
if (sceneNameString != "Bellway_01" && sceneNameString != "Bonetown")
{
if (QuestManager.GetQuest("Building Materials (Statue)").IsCompleted)
{
this.playerData.fixerStatueConstructed = true;
}
if (QuestManager.GetQuest("Building Materials (Bridge)").IsCompleted)
{
this.playerData.fixerBridgeConstructed = true;
}
if (QuestManager.GetQuest("Pilgrim Rags").IsCompleted)
{
this.playerData.boneBottomAddition_RagLine = true;
}
}
PersistentItemData<int> persistentItemData;
if (!this.playerData.ChurchKeeperLeftBasement && this.sceneName != "Tut_03" && this.sceneName != "Bonetown" && this.sceneData.PersistentInts.TryGetValue("Tut_03", "Churchkeeper Basement", out persistentItemData) && persistentItemData.Value > 0)
{
this.playerData.ChurchKeeperLeftBasement = true;
}
if (this.playerData.CaravanLechSaved && !this.playerData.CaravanLechReturnedToCaravan && this.sceneName != "Bone_10" && this.sceneName != "Greymoor_08" && this.sceneName != "Coral_Judge_Arena" && this.sceneName != "Aqueduct_05")
{
this.playerData.CaravanLechReturnedToCaravan = true;
}
if ((this.playerData.encounteredVampireGnat_05 || this.playerData.encounteredVampireGnatBoss) && currentMapZoneEnum != MapZone.GREYMOOR)
{
this.playerData.allowVampireGnatInAltLoc = true;
}
if (!this.playerData.VampireGnatCorpseOnCaravan && this.playerData.VampireGnatDefeatedBeforeCaravanArrived && !this.playerData.VampireGnatCorpseInWater && this.playerData.CaravanTroupeLocation > CaravanTroupeLocations.Bone && this.sceneName != "Greymoor_08")
{
this.playerData.VampireGnatCorpseOnCaravan = true;
}
if (this.playerData.CaravanTroupeLocation > CaravanTroupeLocations.Bone && !this.playerData.creaturesReturnedToBone10 && this.playerData.respawnScene != "Bone_10")
{
this.playerData.creaturesReturnedToBone10 = true;
}
CaravanTroupeLocations caravanTroupeLocation = this.playerData.CaravanTroupeLocation;
if (caravanTroupeLocation != CaravanTroupeLocations.Greymoor)
{
if (caravanTroupeLocation == CaravanTroupeLocations.CoralJudge)
{
if (this.playerData.MetCaravanTroupeLeaderJudge && !this.playerData.CaravanTroupeLeaderCanLeaveJudge && this.sceneName != "Coral_Judge_Arena")
{
this.playerData.CaravanTroupeLeaderCanLeaveJudge = true;
}
}
}
else if (this.playerData.MetCaravanTroupeLeaderGreymoor && !this.playerData.CaravanTroupeLeaderCanLeaveGreymoor && this.sceneName != "Greymoor_08")
{
this.playerData.CaravanTroupeLeaderCanLeaveGreymoor = true;
}
if (!this.playerData.SpinnerDefeatedTimePassed && this.sceneName != "Belltown" && this.sceneName != "Belltown_Boss")
{
this.playerData.SpinnerDefeatedTimePassed = true;
}
if (!this.playerData.antMerchantKilled && currentMapZoneEnum != MapZone.HUNTERS_NEST && (this.playerData.defeatedCogworkDancers || this.playerData.bellShrineEnclave || this.playerData.hasHarpoonDash))
{
this.playerData.antMerchantKilled = true;
if (this.playerData.ant21_InitBattleCompleted && !Gameplay.CurveclawTool.IsUnlocked && !Gameplay.CurveclawUpgradedTool.IsUnlocked)
{
this.playerData.ant21_ExtraBattleAdded = true;
}
}
if (this.playerData.MottledChildGivenTool && !this.playerData.MottledChildNewTool)
{
this.playerData.MottledChildNewTool = true;
}
if (this.playerData.bellShrineBellhart && currentMapZoneEnum != MapZone.BELLTOWN && currentMapZoneEnum != MapZone.MEMORY)
{
this.playerData.belltownCrowdsReady = true;
this.playerData.belltownCrowd = Random.Range(1, 7);
}
if (this.playerData.visitedBellhartSaved && currentMapZoneEnum != MapZone.BELLTOWN)
{
this.playerData.shermaInBellhart = true;
}
if (currentMapZoneEnum != MapZone.BELLTOWN)
{
BelltownHouseStates belltownHouseState = this.playerData.BelltownHouseState;
if (belltownHouseState != BelltownHouseStates.None)
{
if (belltownHouseState == BelltownHouseStates.Half)
{
if (QuestManager.GetQuest("Belltown House Mid").IsCompleted)
{
this.playerData.BelltownHouseState = BelltownHouseStates.Full;
}
}
}
else if (QuestManager.GetQuest("Belltown House Start").IsCompleted)
{
this.playerData.BelltownHouseState = BelltownHouseStates.Half;
}
if (this.playerData.BelltownGreeterConvo > 0)
{
this.playerData.BelltownGreeterMetTimePassed = true;
}
}
if (this.playerData.gotPastDockSpearThrower)
{
this.playerData.gotPastDockSpearThrower = false;
}
if (this.playerData.wardBossDefeated && currentMapZoneEnum != MapZone.WARD && currentMapZoneEnum != MapZone.MEMORY && this.playerData.respawnScene != "Ward_02")
{
this.playerData.wardWoken = true;
}
PersistentItemData<bool> persistentItemData2;
if (this.sceneData.PersistentBools.TryGetValue("Dock_10", "dock_pressure_plate_lock", out persistentItemData2) && persistentItemData2.Value && currentMapZoneEnum != MapZone.DOCKS && this.playerData.respawnScene != "Dock_10" && !this.playerData.blackThreadWorld && !this.playerData.BallowInSauna)
{
this.playerData.BallowInSauna = true;
}
if (this.playerData.BallowSeenInSauna && !this.playerData.BallowLeftSauna && sceneNameString != "Dock_10")
{
this.playerData.BallowLeftSauna = true;
}
if (this.playerData.defeatedRoachkeeperChef && currentMapZoneEnum != MapZone.DUSTPENS)
{
this.playerData.roachkeeperChefCorpsePrepared = true;
}
if (sceneNameString != "Song_Enclave" && sceneNameString != "Bellshrine_Enclave")
{
switch (this.playerData.enclaveLevel)
{
case 0:
if (this.playerData.metCaretaker)
{
this.playerData.enclaveLevel = 1;
}
break;
case 1:
if (QuestManager.GetQuest("Songclave Donation 1").IsCompleted && Gameplay.EnclaveQuestBoard.CompletedQuestCount >= 2)
{
this.playerData.enclaveLevel = 2;
}
break;
case 2:
if (QuestManager.GetQuest("Songclave Donation 2").IsCompleted && Gameplay.EnclaveQuestBoard.CompletedQuestCount >= 5)
{
this.playerData.enclaveLevel = 3;
}
break;
}
if (QuestManager.GetQuest("Fine Pins").IsCompleted)
{
this.playerData.enclaveAddition_PinRack = true;
}
if (QuestManager.GetQuest("Song Pilgrim Cloaks").IsCompleted)
{
this.playerData.enclaveAddition_CloakLine = true;
}
if (Gameplay.EnclaveQuestBoard.CompletedQuestCount >= 4)
{
this.playerData.enclaveDonation2_Available = true;
}
}
if (!this.playerData.citadelHalfwayComplete && (this.playerData.defeatedCogworkDancers || this.playerData.hasHarpoonDash || this.playerData.visitedEnclave))
{
this.playerData.citadelHalfwayComplete = true;
}
if (this.playerData.citadelWoken && currentMapZoneEnum != MapZone.WARD && currentMapZoneEnum != MapZone.CITY_OF_SONG)
{
this.playerData.song05MarchGroupReady = true;
}
if (this.playerData.under07_battleCompleted && this.playerData.hasHarpoonDash && currentMapZoneEnum != MapZone.UNDERSTORE && currentMapZoneEnum != MapZone.CITY_OF_SONG)
{
this.playerData.under07_heavyWorkerReturned = true;
}
if (this.playerData.grindleInSong_08)
{
this.playerData.grindleInSong_08 = false;
}
if (this.playerData.seenGrindleInSong_08 && currentMapZoneEnum != MapZone.CITY_OF_SONG)
{
this.playerData.savedGrindleInCitadel = true;
this.playerData.grindleInSong_08 = false;
}
if (this.playerData.savedGrindleInCitadel && this.playerData.grindleChestLocation == 0)
{
this.playerData.grindleChestLocation = Random.Range(1, 4);
}
if (this.playerData.hang04Battle)
{
this.playerData.leftTheGrandForum = true;
}
if (this.playerData.song_17_clearedOut)
{
this.playerData.song_17_clearedOut = false;
}
PersistentItemData<bool> persistentItemData3;
if (this.sceneData.PersistentBools.TryGetValue("Under_07c", "Bot Blocker", out persistentItemData3) && persistentItemData3.Value && currentMapZoneEnum != MapZone.UNDERSTORE && currentMapZoneEnum != MapZone.CITY_OF_SONG && currentMapZoneEnum != MapZone.COG_CORE)
{
this.playerData.rosaryThievesInUnder07 = true;
}
if (this.playerData.bankOpened && currentMapZoneEnum != MapZone.HANG && currentMapZoneEnum != MapZone.CITY_OF_SONG && currentMapZoneEnum != MapZone.COG_CORE)
{
this.playerData.rosaryThievesInBank = true;
}
if (this.playerData.cog7_automaton_defeated)
{
this.playerData.cog7_automatonRepairing = true;
}
if (this.playerData.cog7_automatonRepairingComplete)
{
this.playerData.cog7_automaton_defeated = false;
this.playerData.cog7_automatonRepairing = false;
this.playerData.cog7_automatonRepairingComplete = false;
}
if (!this.playerData.cityMerchantCanLeaveForBridge && this.playerData.enclaveLevel > 2 && this.playerData.hasDoubleJump && this.playerData.MetCityMerchantEnclave)
{
this.playerData.cityMerchantCanLeaveForBridge = true;
}
if (this.playerData.MetCityMerchantEnclave)
{
this.playerData.cityMerchantInLibrary03 = true;
}
if (this.playerData.cityMerchantInGrandForumSeen)
{
this.playerData.cityMerchantInGrandForumLeft = true;
}
if (this.playerData.cityMerchantInLibrary03Seen)
{
this.playerData.cityMerchantInLibrary03Left = true;
}
if (this.playerData.cityMerchantRecentlySeenInEnclave && currentMapZoneEnum != MapZone.LIBRARY && currentMapZoneEnum != MapZone.CITY_OF_SONG && currentMapZoneEnum != MapZone.HANG)
{
this.playerData.cityMerchantRecentlySeenInEnclave = false;
}
if (this.playerData.ArchitectWillLeave && this.sceneName != "Under_17" && !this.playerData.ArchitectLeft)
{
this.playerData.ArchitectLeft = true;
}
if (!this.playerData.trobbioCleanedUp && this.playerData.defeatedTrobbio && currentMapZoneEnum != MapZone.LIBRARY && currentMapZoneEnum != MapZone.CITY_OF_SONG && currentMapZoneEnum != MapZone.UNDERSTORE)
{
this.playerData.trobbioCleanedUp = true;
}
if (this.playerData.visitedCradle && currentMapZoneEnum != MapZone.CITY_OF_SONG && currentMapZoneEnum != MapZone.MEMORY && currentMapZoneEnum != MapZone.CRADLE)
{
this.playerData.laceCorpseAddedEffects = true;
}
if (QuestManager.GetQuest("Broodmother Hunt").IsCompleted && !this.playerData.tinyBroodMotherAppeared && currentMapZoneEnum != MapZone.THE_SLAB)
{
this.playerData.tinyBroodMotherAppeared = true;
}
if (!this.playerData.BlueScientistDead && currentMapZoneEnum != MapZone.CRAWLSPACE && QuestManager.GetQuest("Extractor Blue").IsCompleted && QuestManager.GetQuest("Extractor Blue Worms").IsCompleted)
{
this.playerData.BlueScientistDead = true;
}
if (!this.playerData.BlueScientistSceneryPustulesGrown && currentMapZoneEnum != MapZone.CRAWLSPACE && QuestManager.GetQuest("Extractor Blue").IsCompleted)
{
this.playerData.BlueScientistSceneryPustulesGrown = true;
}
if (this.playerData.UnlockedDustCage)
{
if (this.playerData.GreenPrinceLocation == GreenPrinceLocations.DustCage && this.playerData.song_04_battleCompleted)
{
this.playerData.GreenPrinceLocation = GreenPrinceLocations.Song04;
}
else if (this.playerData.GreenPrinceLocation < GreenPrinceLocations.CogDancers && this.playerData.defeatedCogworkDancers && this.playerData.bellShrineEnclave && (this.playerData.GreenPrinceSeenSong04 || this.playerData.blackThreadWorld))
{
this.playerData.GreenPrinceLocation = GreenPrinceLocations.CogDancers;
}
}
if (!this.playerData.ShakraFinalQuestAppear && sceneNameString != "Belltown")
{
ShopItemList mapperStock = Gameplay.MapperStock;
bool flag = false;
foreach (ShopItem shopItem in mapperStock.ShopItems)
{
if ((shopItem.GetTypeFlags() & ShopItem.TypeFlags.Map) != ShopItem.TypeFlags.None && !shopItem.IsPurchased)
{
flag = true;
break;
}
}
int num3 = 0;
if (this.playerData.HasMelodyArchitect)
{
num3++;
}
if (this.playerData.HasMelodyConductor)
{
num3++;
}
if (this.playerData.HasMelodyLibrarian)
{
num3++;
}
bool flag2 = false;
if (num3 >= 2)
{
flag2 = true;
}
if (!flag && (this.playerData.DefeatedSwampShaman || flag2))
{
this.playerData.ShakraFinalQuestAppear = true;
this.playerData.MapperLeaveAll();
}
}
if (!this.playerData.swampMuckmanTallInvades && this.playerData.DefeatedSwampShaman && currentMapZoneEnum != MapZone.SWAMP && currentMapZoneEnum != MapZone.AQUEDUCT)
{
this.playerData.swampMuckmanTallInvades = true;
}
if (this.playerData.blackThreadWorld && this.playerData.seenMapperAct3 && currentMapZoneEnum != MapZone.BELLTOWN)
{
this.playerData.mapperLocationAct3 = Random.Range(1, 6);
if (this.playerData.mapperLocationAct3 == 4 || this.playerData.mapperLocationAct3 == 5)
{
this.playerData.mapperLocationAct3 = 2;
}
if (Random.Range(1, 100) <= 50)
{
this.playerData.mapperIsFightingAct3 = true;
}
else
{
this.playerData.mapperIsFightingAct3 = false;
}
this.playerData.mapperFightGroup = Random.Range(1, 3);
}
if (!this.playerData.thievesReturnedToShadow28 && this.playerData.SavedFlea_Shadow_28)
{
this.playerData.thievesReturnedToShadow28 = true;
}
if (!this.playerData.FleaGamesCanStart && this.playerData.blackThreadWorld && this.playerData.CaravanTroupeLocation == CaravanTroupeLocations.Aqueduct && Gameplay.FleaCharmTool.IsUnlocked && currentMapZoneEnum != MapZone.AQUEDUCT && this.playerData.respawnScene != "Aqueduct_05")
{
this.playerData.FleaGamesCanStart = true;
}
if (this.playerData.SethNpcLocation == SethNpcLocations.Absent && this.playerData.HasWhiteFlower)
{
this.playerData.SethNpcLocation = SethNpcLocations.Greymoor;
}
if (!this.playerData.SethJoinedFleatopia && this.playerData.FleaGamesEnded && (this.playerData.SethNpcLocation == SethNpcLocations.Fleatopia || (this.playerData.MetSethNPC & this.playerData.HasWhiteFlower)) && sceneNameString != "Aqueduct_05")
{
this.playerData.SethNpcLocation = SethNpcLocations.Fleatopia;
this.playerData.SethJoinedFleatopia = true;
}
if (this.playerData.gillyQueueMovingOn && this.playerData.blackThreadWorld)
{
this.playerData.gillyLocationAct3++;
this.playerData.gillyQueueMovingOn = false;
}
if (this.playerData.gillyLocationAct3 > 0 && this.playerData.Collectables.GetData("Hunter Heart").Amount > 0 && currentMapZoneEnum != MapZone.HUNTERS_NEST && currentMapZoneEnum != MapZone.WILDS)
{
this.playerData.gillyLocationAct3 = 3;
}
if (this.GetCurrentMapZone() != this.lastTimePassesMapZone)
{
this.TimePassesElsewhere();
}
this.lastTimePassesMapZone = this.GetCurrentMapZone();
this.timeSinceLastTimePasses = 0f;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment