static void ScanForVanillaBossMusics() { bossMusicId = BossBgms.None; bossMusic_custom = null; var screen = new Rectangle((int)Main.screenPosition.X, (int)Main.screenPosition.Y, Main.screenWidth, Main.screenHeight); for (int i = 0; i < 200; i++) { if (!Main.npc[i].active) { continue; } var npcMusicHitbox = new Rectangle((int)(Main.npc[i].position.X + Main.npc[i].width / 2) - npcPadding, (int)(Main.npc[i].position.Y + Main.npc[i].height / 2) - npcPadding, npcPadding * 2, npcPadding * 2); if (!screen.Intersects(npcMusicHitbox)) { continue; } BossBgms musicSelector = BossBgms.None; #region npc type (or .music) -> musicSelector switch (Main.npc[i].type) { case NPCID.EaterofWorldsHead: case NPCID.EaterofWorldsBody: case NPCID.EaterofWorldsTail: musicSelector |= BossBgms.Boss1; break; case NPCID.WallofFleshEye: case NPCID.WallofFlesh: case NPCID.Retinazer: case NPCID.Spazmatism: musicSelector |= BossBgms.Boss2; break; case NPCID.TheDestroyer: case NPCID.TheDestroyerBody: case NPCID.TheDestroyerTail: case NPCID.SnowmanGangsta: case NPCID.MisterStabby: case NPCID.SnowBalla: case NPCID.BrainofCthulhu: musicSelector |= BossBgms.Boss3; break; case NPCID.Golem: case NPCID.CultistDevote: case NPCID.CultistBoss: musicSelector |= BossBgms.Golem; break; case NPCID.QueenBee: musicSelector |= BossBgms.QueenBee; break; case NPCID.Plantera: case NPCID.PlanterasHook: case NPCID.PlanterasTentacle: musicSelector |= BossBgms.Plantera; break; case NPCID.MoonLordCore: musicSelector |= BossBgms.MoonLord; break; case NPCID.PirateDeckhand: case NPCID.PirateCorsair: case NPCID.PirateDeadeye: case NPCID.PirateCrossbower: case NPCID.PirateCaptain: case NPCID.PirateShip: musicSelector |= BossBgms.Pirates; break; case NPCID.BrainScrambler: case NPCID.RayGunner: case NPCID.MartianOfficer: case NPCID.ForceBubble: case NPCID.GrayGrunt: case NPCID.MartianEngineer: case NPCID.MartianDrone: case NPCID.GigaZapper: case NPCID.ScutlixRider: case NPCID.Scutlix: case NPCID.MartianSaucerCore: case NPCID.MartianWalker: musicSelector |= BossBgms.MartianMadness; break; case NPCID.LunarTowerVortex: case NPCID.LunarTowerStardust: case NPCID.LunarTowerNebula: case NPCID.LunarTowerSolar: musicSelector |= BossBgms.LunarPillar; break; case NPCID.GoblinPeon: case NPCID.GoblinThief: case NPCID.GoblinWarrior: case NPCID.GoblinSorcerer: case NPCID.GoblinArcher: musicSelector |= BossBgms.GoblinArmy; break; default: if (musicSelector == BossBgms.None) { if (Main.npc[i].P_Music != null && Main.npc[i].P_Music is BgmRef) { var r = (BgmRef)Main.npc[i].P_Music; if (r != null) { musicSelector = BossBgms.Custom; bossMusic_custom = r; } } else if (Main.npc[i].boss) { musicSelector = BossBgms.Boss1; } } break; } #endregion if (musicSelector != 0) { bossMusicId = musicSelector; break; } } }
static void ScanForVanillaBossMusics() { bossMusicId = BossBgms.None; bossMusic_custom = null; var screen = new Rectangle((int)Main.screenPosition.X, (int)Main.screenPosition.Y, Main.screenWidth, Main.screenHeight); for (int i = 0; i < 200; i++) { if (!Main.npc[i].active) continue; var npcMusicHitbox = new Rectangle((int)(Main.npc[i].position.X + Main.npc[i].width / 2) - npcPadding, (int)(Main.npc[i].position.Y + Main.npc[i].height / 2) - npcPadding, npcPadding * 2, npcPadding * 2); if (!screen.Intersects(npcMusicHitbox)) continue; BossBgms musicSelector = BossBgms.None; #region npc type (or .music) -> musicSelector switch (Main.npc[i].type) { case NPCID.EaterofWorldsHead: case NPCID.EaterofWorldsBody: case NPCID.EaterofWorldsTail: musicSelector |= BossBgms.Boss1; break; case NPCID.WallofFleshEye: case NPCID.WallofFlesh: case NPCID.Retinazer: case NPCID.Spazmatism: musicSelector |= BossBgms.Boss2; break; case NPCID.TheDestroyer: case NPCID.TheDestroyerBody: case NPCID.TheDestroyerTail: case NPCID.SnowmanGangsta: case NPCID.MisterStabby: case NPCID.SnowBalla: case NPCID.BrainofCthulhu: musicSelector |= BossBgms.Boss3; break; case NPCID.Golem: case NPCID.CultistDevote: case NPCID.CultistBoss: musicSelector |= BossBgms.Golem; break; case NPCID.QueenBee: musicSelector |= BossBgms.QueenBee; break; case NPCID.Plantera: case NPCID.PlanterasHook: case NPCID.PlanterasTentacle: musicSelector |= BossBgms.Plantera; break; case NPCID.MoonLordCore: musicSelector |= BossBgms.MoonLord; break; case NPCID.PirateDeckhand: case NPCID.PirateCorsair: case NPCID.PirateDeadeye: case NPCID.PirateCrossbower: case NPCID.PirateCaptain: case NPCID.PirateShip: musicSelector |= BossBgms.Pirates; break; case NPCID.BrainScrambler: case NPCID.RayGunner: case NPCID.MartianOfficer: case NPCID.ForceBubble: case NPCID.GrayGrunt: case NPCID.MartianEngineer: case NPCID.MartianDrone: case NPCID.GigaZapper: case NPCID.ScutlixRider: case NPCID.Scutlix: case NPCID.MartianSaucerCore: case NPCID.MartianWalker: musicSelector |= BossBgms.MartianMadness; break; case NPCID.LunarTowerVortex: case NPCID.LunarTowerStardust: case NPCID.LunarTowerNebula: case NPCID.LunarTowerSolar: musicSelector |= BossBgms.LunarPillar; break; case NPCID.GoblinPeon: case NPCID.GoblinThief: case NPCID.GoblinWarrior: case NPCID.GoblinSorcerer: case NPCID.GoblinArcher: musicSelector |= BossBgms.GoblinArmy; break; default: if (musicSelector == BossBgms.None) if (Main.npc[i].P_Music != null && Main.npc[i].P_Music is BgmRef) { var r = (BgmRef)Main.npc[i].P_Music; if (r != null) { musicSelector = BossBgms.Custom; bossMusic_custom = r; } } else if (Main.npc[i].boss) musicSelector = BossBgms.Boss1; break; } #endregion if (musicSelector != 0) { bossMusicId = musicSelector; break; } } }