public static bool CanPayCost(ItemCost cost, Player player) { int count = 0; foreach (var v in player.inventory) { if (v != null) { if (v.netID == cost.itemid) { count += v.stack; } } } return(count >= cost.count); }
public void Add(ItemCost cost) { bool found = false; foreach (var v in this.cost) { if (v.itemid == cost.itemid) { v.count += cost.count; found = true; return; } } if (!found) { this.cost.Add(cost.clone()); } }
public static void PayCost(ItemCost cost, Player player) { int count = cost.count; foreach (var v in player.inventory) { if (v != null) { if (v.netID == cost.itemid) { if (v.stack <= count) { count -= v.stack; v.TurnToAir(); } else { v.stack -= count; break; } } } } }