Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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;
                }
            }
        }