public static MoveCoins ( |
||
pInv | ||
cInv | ||
return | void |
public static void QuickStack() { Player player = Main.player[Main.myPlayer]; if (player.chest == -3) { ChestUI.MoveCoins(player.inventory, player.bank2.item); } else if (player.chest == -2) { ChestUI.MoveCoins(player.inventory, player.bank.item); } Item[] objArray1 = player.inventory; Item[] objArray2 = player.bank.item; if (player.chest > -1) { objArray2 = Main.chest[player.chest].item; } else if (player.chest == -2) { objArray2 = player.bank.item; } else if (player.chest == -3) { objArray2 = player.bank2.item; } List <int> list1 = new List <int>(); List <int> list2 = new List <int>(); List <int> list3 = new List <int>(); Dictionary <int, int> dictionary = new Dictionary <int, int>(); List <int> list4 = new List <int>(); bool[] flagArray = new bool[objArray2.Length]; for (int index = 0; index < 40; ++index) { if (objArray2[index].itemId > 0 && objArray2[index].stack > 0 && objArray2[index].maxStack > 1 && (objArray2[index].itemId < 71 || objArray2[index].itemId > 74)) { list2.Add(index); list1.Add(objArray2[index].netID); } if (objArray2[index].itemId == 0 || objArray2[index].stack <= 0) { list3.Add(index); } } int num1 = 50; if (player.chest <= -2) { num1 += 4; } for (int key = 0; key < num1; ++key) { if (list1.Contains(objArray1[key].netID) && !objArray1[key].favorited) { dictionary.Add(key, objArray1[key].netID); } } for (int index1 = 0; index1 < list2.Count; ++index1) { int index2 = list2[index1]; int num2 = objArray2[index2].netID; foreach (KeyValuePair <int, int> keyValuePair in dictionary) { if (keyValuePair.Value == num2 && objArray1[keyValuePair.Key].netID == num2) { int num3 = objArray1[keyValuePair.Key].stack; int num4 = objArray2[index2].maxStack - objArray2[index2].stack; if (num4 != 0) { if (num3 > num4) { num3 = num4; } Main.PlaySound(7, -1, -1, 1); objArray2[index2].stack += num3; objArray1[keyValuePair.Key].stack -= num3; if (objArray1[keyValuePair.Key].stack == 0) { objArray1[keyValuePair.Key].SetDefaults(0, false); } flagArray[index2] = true; } else { break; } } } } foreach (KeyValuePair <int, int> keyValuePair in dictionary) { if (objArray1[keyValuePair.Key].stack == 0) { list4.Add(keyValuePair.Key); } } foreach (int key in list4) { dictionary.Remove(key); } for (int index1 = 0; index1 < list3.Count; ++index1) { int index2 = list3[index1]; bool flag = true; int num2 = objArray2[index2].netID; foreach (KeyValuePair <int, int> keyValuePair in dictionary) { if (keyValuePair.Value == num2 && objArray1[keyValuePair.Key].netID == num2 || flag && objArray1[keyValuePair.Key].stack > 0) { Main.PlaySound(7, -1, -1, 1); if (flag) { num2 = keyValuePair.Value; objArray2[index2] = objArray1[keyValuePair.Key]; objArray1[keyValuePair.Key] = new Item(); } else { int num3 = objArray1[keyValuePair.Key].stack; int num4 = objArray2[index2].maxStack - objArray2[index2].stack; if (num4 != 0) { if (num3 > num4) { num3 = num4; } objArray2[index2].stack += num3; objArray1[keyValuePair.Key].stack -= num3; if (objArray1[keyValuePair.Key].stack == 0) { objArray1[keyValuePair.Key] = new Item(); } } else { break; } } flagArray[index2] = true; flag = false; } } } if (Main.netMode == 1 && player.chest >= 0) { for (int index = 0; index < flagArray.Length; ++index) { NetMessage.SendData(32, -1, -1, "", player.chest, (float)index, 0.0f, 0.0f, 0, 0, 0); } } list1.Clear(); list2.Clear(); list3.Clear(); dictionary.Clear(); list4.Clear(); }
public static void DepositAll() { Player player = Main.player[Main.myPlayer]; if (player.chest > -1) { ChestUI.MoveCoins(player.inventory, Main.chest[player.chest].item); } else if (player.chest == -3) { ChestUI.MoveCoins(player.inventory, player.bank2.item); } else { ChestUI.MoveCoins(player.inventory, player.bank.item); } for (int index1 = 49; index1 >= 10; --index1) { if (player.inventory[index1].stack > 0 && player.inventory[index1].itemId > 0 && !player.inventory[index1].favorited) { if (player.inventory[index1].maxStack > 1) { for (int index2 = 0; index2 < 40; ++index2) { if (player.chest > -1) { Chest chest = Main.chest[player.chest]; if (chest.item[index2].stack < chest.item[index2].maxStack && player.inventory[index1].IsTheSameAs(chest.item[index2])) { int num = player.inventory[index1].stack; if (player.inventory[index1].stack + chest.item[index2].stack > chest.item[index2].maxStack) { num = chest.item[index2].maxStack - chest.item[index2].stack; } player.inventory[index1].stack -= num; chest.item[index2].stack += num; Main.PlaySound(7, -1, -1, 1); if (player.inventory[index1].stack <= 0) { player.inventory[index1].SetDefaults(0, false); if (Main.netMode == 1) { NetMessage.SendData(32, -1, -1, "", player.chest, (float)index2, 0.0f, 0.0f, 0, 0, 0); break; } break; } if (chest.item[index2].itemId == 0) { chest.item[index2] = player.inventory[index1].Clone(); player.inventory[index1].SetDefaults(0, false); } if (Main.netMode == 1) { NetMessage.SendData(32, -1, -1, "", player.chest, (float)index2, 0.0f, 0.0f, 0, 0, 0); } } } else if (player.chest == -3) { if (player.bank2.item[index2].stack < player.bank2.item[index2].maxStack && player.inventory[index1].IsTheSameAs(player.bank2.item[index2])) { int num = player.inventory[index1].stack; if (player.inventory[index1].stack + player.bank2.item[index2].stack > player.bank2.item[index2].maxStack) { num = player.bank2.item[index2].maxStack - player.bank2.item[index2].stack; } player.inventory[index1].stack -= num; player.bank2.item[index2].stack += num; Main.PlaySound(7, -1, -1, 1); if (player.inventory[index1].stack <= 0) { player.inventory[index1].SetDefaults(0, false); break; } if (player.bank2.item[index2].itemId == 0) { player.bank2.item[index2] = player.inventory[index1].Clone(); player.inventory[index1].SetDefaults(0, false); } } } else if (player.bank.item[index2].stack < player.bank.item[index2].maxStack && player.inventory[index1].IsTheSameAs(player.bank.item[index2])) { int num = player.inventory[index1].stack; if (player.inventory[index1].stack + player.bank.item[index2].stack > player.bank.item[index2].maxStack) { num = player.bank.item[index2].maxStack - player.bank.item[index2].stack; } player.inventory[index1].stack -= num; player.bank.item[index2].stack += num; Main.PlaySound(7, -1, -1, 1); if (player.inventory[index1].stack <= 0) { player.inventory[index1].SetDefaults(0, false); break; } if (player.bank.item[index2].itemId == 0) { player.bank.item[index2] = player.inventory[index1].Clone(); player.inventory[index1].SetDefaults(0, false); } } } } if (player.inventory[index1].stack > 0) { if (player.chest > -1) { for (int index2 = 0; index2 < 40; ++index2) { if (Main.chest[player.chest].item[index2].stack == 0) { Main.PlaySound(7, -1, -1, 1); Main.chest[player.chest].item[index2] = player.inventory[index1].Clone(); player.inventory[index1].SetDefaults(0, false); if (Main.netMode == 1) { NetMessage.SendData(32, -1, -1, "", player.chest, (float)index2, 0.0f, 0.0f, 0, 0, 0); break; } break; } } } else if (player.chest == -3) { for (int index2 = 0; index2 < 40; ++index2) { if (player.bank2.item[index2].stack == 0) { Main.PlaySound(7, -1, -1, 1); player.bank2.item[index2] = player.inventory[index1].Clone(); player.inventory[index1].SetDefaults(0, false); break; } } } else { for (int index2 = 0; index2 < 40; ++index2) { if (player.bank.item[index2].stack == 0) { Main.PlaySound(7, -1, -1, 1); player.bank.item[index2] = player.inventory[index1].Clone(); player.inventory[index1].SetDefaults(0, false); break; } } } } } } }