예제 #1
0
        public static void StartInvasion(int musicType, IReadOnlyList <KeyValuePair <int, ISet <int> > > spawnInfo)
        {
            var myworld = ModContent.GetInstance <DynamicInvasionsWorld>();

            if (Main.netMode == 0)
            {
                myworld.Logic.StartInvasion(musicType, spawnInfo);
            }
            else if (Main.netMode == 1)
            {
                ClientPacketHandlers.SendInvasionRequestFromClient(musicType, spawnInfo);
            }
            else if (Main.netMode == 2)
            {
                string spawnInfoEnc = JsonConvert.SerializeObject(spawnInfo);

                myworld.Logic.StartInvasion(musicType, spawnInfo);

                for (int i = 0; i < Main.player.Length; i++)
                {
                    Player player = Main.player[i];
                    if (player == null || !player.active)
                    {
                        continue;
                    }

                    ServerPacketHandlers.SendInvasionFromServer(player, musicType, spawnInfoEnc);
                }
            }
        }