/* * * * Buying items * * * */ ///<summary>Updates gold amount and relevant item count as appropriate. Also updates expiration date if applicable.</summary> public static bool buyItem(int id) { StoreItem item = STORE_ITEMS[id]; string key = item.getKey(); int numBought = DataAndSettingsManager.getNumBoughtForStoreItem(key); int gold = DataAndSettingsManager.getGoldAmount(); if (gold >= item.getCost() && (id < getNumExpendables() || numBought < 1)) { DataAndSettingsManager.setNumBoughtForStoreItem(key, numBought + 1); DataAndSettingsManager.setGoldAmount(gold -= item.getCost()); if (item.hasLifespan()) { DateTime expiration = DataAndSettingsManager.getExpirationDateForStoreItem(key); DateTime now = DateTime.Now; TimeSpan lifespan = new TimeSpan(item.getLifespanHours(), 0, 0); if (expiration.CompareTo(now) < 0) { // the item has already expired, so set a new expiration date DataAndSettingsManager.setExpirationDateForStoreItem(key, now.Add(lifespan)); } else { // the item hasn't expired yet, so advance the expiration date further DataAndSettingsManager.setExpirationDateForStoreItem(key, expiration.Add(lifespan)); } //Debug.Log("expiration date was " + expiration.ToString()); } return(true); } return(false); }