Esempio n. 1
0
 private void ConvertCoins(int id)
 {
     for (int i = 0; i < 20; i++)
     {
         if (item[i].stack != item[i].maxStack || !item[i].CanBePlacedInCoinSlot())
         {
             continue;
         }
         item[i].SetDefaults(item[i].type + 1);
         for (int j = 0; j < 20; j++)
         {
             if (j != i && item[j].type == item[i].type && item[j].stack < item[j].maxStack)
             {
                 if (id >= 0)
                 {
                     NetMessage.CreateMessage2(32, id, j);
                     NetMessage.SendMessage();
                 }
                 item[j].stack++;
                 item[i].Init();
                 ConvertCoins(id);
             }
         }
     }
 }
Esempio n. 2
0
        private static void GamerLeftEventHandler(object sender, GamerLeftEventArgs e)
        {
            NetworkGamer networkGamer = e.Gamer;
            Player       player       = networkGamer.Tag as Player;

            if (networkGamer.IsLocal)
            {
                UI uI = Main.ui[(int)((LocalNetworkGamer)networkGamer).SignedInGamer.PlayerIndex];
                if (Main.netMode == 0 && uI.wasRemovedFromSessionWithoutOurConsent)
                {
                    return;
                }
                uI.LeaveSession();
            }
            if (Main.netMode == 1)
            {
                return;
            }
            int whoAmI = player.whoAmI;

            player.active       = 0;
            playerSlots[whoAmI] = false;
            if (Main.netMode != 2)
            {
                return;
            }
            if (networkGamer.IsLocal)
            {
                if (UI.main.isInviteOnly)
                {
                    session.PrivateGamerSlots++;
                }
            }
            else
            {
                NetClient client = player.client;
                if (client.GamerLeft(player))
                {
                    clients.Remove(client);
                }
                else if (networkGamer == client.gamer)
                {
                    client.gamer = client.machine.Gamers[0];
                }
            }
            NetMessage.CreateMessage2(14, whoAmI, 0);
            NetMessage.SendMessage();
            if (player.announced)
            {
                player.announced = false;
                NetMessage.SendText(player.oldName, 33, 255, 240, 20, -1);
            }
        }
Esempio n. 3
0
        public unsafe static bool SwitchTiles(Vector2 Position, int Width, int Height, Vector2 oldPosition)
        {
            int num  = ((int)Position.X >> 4) - 1;
            int num2 = ((int)Position.X + Width >> 4) + 1;
            int num3 = ((int)Position.Y >> 4) - 1;
            int num4 = ((int)Position.Y + Height >> 4) + 1;

            if (num < 0)
            {
                num = 0;
            }
            if (num2 > Main.maxTilesX)
            {
                num2 = Main.maxTilesX;
            }
            if (num3 < 0)
            {
                num3 = 0;
            }
            if (num4 > Main.maxTilesY)
            {
                num4 = Main.maxTilesY;
            }

            fixed(Tile *ptr = Main.tile)
            {
                for (int i = num; i < num2; i++)
                {
                    Tile *ptr2 = ptr + (i * 1440 + num3);
                    int   num5 = num3;
                    while (num5 < num4)
                    {
                        if (ptr2->type == 135 && ptr2->active != 0)
                        {
                            double num6 = i * 16;
                            double num7 = num5 * 16 + 12;
                            if ((double)(Position.X + (float)Width) > num6 && (double)Position.X < num6 + 16.0 && (double)(Position.Y + (float)Height) > num7 && (double)Position.Y < num7 + 4.01 && (!((double)(oldPosition.X + (float)Width) > num6) || !((double)oldPosition.X < num6 + 16.0) || !((double)(oldPosition.Y + (float)Height) > num7) || !((double)oldPosition.Y < num7 + 16.01)))
                            {
                                WorldGen.hitSwitch(i, num5);
                                NetMessage.CreateMessage2(59, i, num5);
                                NetMessage.SendMessage();
                                return(true);
                            }
                        }
                        num5++;
                        ptr2++;
                    }
                }
            }

            return(false);
        }
Esempio n. 4
0
        public void LootAll(Player player)
        {
            int chest = player.chest;

            for (int i = 0; i < 20; i++)
            {
                if (item[i].type > 0)
                {
                    player.GetItem(ref item[i]);
                    if (chest >= 0)
                    {
                        NetMessage.CreateMessage2(32, chest, i);
                        NetMessage.SendMessage();
                    }
                }
            }
        }
Esempio n. 5
0
        public void QuickStack(Player player)
        {
            int chest = player.chest;

            for (int i = 0; i < 20; i++)
            {
                if (item[i].type <= 0 || item[i].stack >= item[i].maxStack)
                {
                    continue;
                }
                for (int j = 0; j < 48; j++)
                {
                    if (item[i].netID == player.inventory[j].netID)
                    {
                        short num = player.inventory[j].stack;
                        if (item[i].stack + num > item[i].maxStack)
                        {
                            num = (short)(item[i].maxStack - item[i].stack);
                        }
                        Main.PlaySound(7);
                        item[i].stack             += num;
                        player.inventory[j].stack -= num;
                        ConvertCoins(chest);
                        if (player.inventory[j].stack == 0)
                        {
                            player.inventory[j].Init();
                        }
                        else if (item[i].type == 0)
                        {
                            item[i] = player.inventory[j];
                            player.inventory[j].Init();
                        }
                        if (chest >= 0)
                        {
                            NetMessage.CreateMessage2(32, chest, i);
                            NetMessage.SendMessage();
                        }
                    }
                }
            }
        }
Esempio n. 6
0
        public void Deposit(Player player)
        {
            int chest = player.chest;

            for (int num = 40; num >= 10; num--)
            {
                if (player.inventory[num].stack > 0 && player.inventory[num].type > 0)
                {
                    if (player.inventory[num].maxStack > 1)
                    {
                        for (int i = 0; i < 20; i++)
                        {
                            if (item[i].stack >= item[i].maxStack || player.inventory[num].netID != item[i].netID)
                            {
                                continue;
                            }
                            short num2 = player.inventory[num].stack;
                            if (player.inventory[num].stack + item[i].stack > item[i].maxStack)
                            {
                                num2 = (short)(item[i].maxStack - item[i].stack);
                            }
                            player.inventory[num].stack -= num2;
                            item[i].stack += num2;
                            ConvertCoins(chest);
                            Main.PlaySound(7);
                            if (player.inventory[num].stack <= 0)
                            {
                                player.inventory[num].Init();
                                if (chest >= 0)
                                {
                                    NetMessage.CreateMessage2(32, chest, i);
                                    NetMessage.SendMessage();
                                }
                                break;
                            }
                            if (item[i].type == 0)
                            {
                                item[i] = player.inventory[num];
                                player.inventory[num].Init();
                            }
                            if (chest >= 0)
                            {
                                NetMessage.CreateMessage2(32, chest, i);
                                NetMessage.SendMessage();
                            }
                        }
                    }
                    if (player.inventory[num].stack > 0)
                    {
                        for (int j = 0; j < 20; j++)
                        {
                            if (item[j].type == 0)
                            {
                                Main.PlaySound(7);
                                item[j] = player.inventory[num];
                                player.inventory[num].Init();
                                if (chest >= 0)
                                {
                                    NetMessage.CreateMessage2(32, chest, j);
                                    NetMessage.SendMessage();
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }