Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ BuyItem()

static bool Terraria.GameContent.UI.CustomCurrencyManager.BuyItem ( Player player,
long price,
int currencyIndex )
inlinestatic

Definition at line 70 of file CustomCurrencyManager.cs.

71 {
72 CustomCurrencySystem customCurrencySystem = _currencies[currencyIndex];
73 bool overFlowing;
74 long num = customCurrencySystem.CountCurrency(out overFlowing, player.inventory, 58, 57, 56, 55, 54);
75 long num2 = customCurrencySystem.CountCurrency(out overFlowing, player.bank.item);
76 long num3 = customCurrencySystem.CountCurrency(out overFlowing, player.bank2.item);
77 long num4 = customCurrencySystem.CountCurrency(out overFlowing, player.bank3.item);
78 long num5 = customCurrencySystem.CountCurrency(out overFlowing, player.bank4.item);
79 if (customCurrencySystem.CombineStacks(out overFlowing, num, num2, num3, num4, num5) < price)
80 {
81 return false;
82 }
91 list.Add(player.inventory);
92 list.Add(player.bank.item);
93 list.Add(player.bank2.item);
94 list.Add(player.bank3.item);
95 list.Add(player.bank4.item);
96 for (int i = 0; i < list.Count; i++)
97 {
98 dictionary[i] = new List<int>();
99 }
100 dictionary[0] = new List<int> { 58, 57, 56, 55, 54 };
101 for (int j = 0; j < list.Count; j++)
102 {
103 for (int k = 0; k < list[j].Length; k++)
104 {
105 if (!dictionary[j].Contains(k) && customCurrencySystem.Accepts(list[j][k]))
106 {
107 list3.Add(new Point(j, k));
108 }
109 }
110 }
111 FindEmptySlots(list, dictionary, list2, 0);
112 FindEmptySlots(list, dictionary, list4, 1);
113 FindEmptySlots(list, dictionary, list5, 2);
114 FindEmptySlots(list, dictionary, list6, 3);
115 FindEmptySlots(list, dictionary, list7, 4);
116 if (!customCurrencySystem.TryPurchasing(price, list, list3, list2, list4, list5, list6, list7))
117 {
118 return false;
119 }
120 return true;
121 }
void Add(TKey key, TValue value)
static void FindEmptySlots(List< Item[]> inventories, Dictionary< int, List< int > > slotsToIgnore, List< Point > emptySlots, int currentInventoryIndex)
static Dictionary< int, CustomCurrencySystem > _currencies

References Terraria.GameContent.UI.CustomCurrencyManager._currencies, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.Player.bank, Terraria.Player.bank2, Terraria.Player.bank3, Terraria.Player.bank4, Microsoft.Xna.Framework.Contains, Terraria.GameContent.UI.CustomCurrencyManager.FindEmptySlots(), Terraria.Player.inventory, Terraria.Chest.item, and Microsoft.Xna.Framework.Graphics.Point.

Referenced by Terraria.Player.BuyItem().