/// <summary> /// Use's gems on a shop item /// </summary> /// <param name="shopItemId">The item</param> /// <returns>Whether gems were spent</returns> public bool UseGems(string shopItemId) { RequestUseGems(shopItemId); GetShopEvent shopUpdate = WaitForServerEvent <GetShopEvent>(Timeout); if (shopUpdate == null) { return(false); } return(shopUpdate.Success); }
/// <summary> /// Gets the shop /// </summary> public Shop GetShop() { RequestShop(); GetShopEvent shopMessage = base.WaitForServerEvent <GetShopEvent>(); if (shopMessage != null) { return(shopMessage.Shop); } return(null); }
/// <summary> /// Processes the shop message /// </summary> /// <param name="connectionBase">The connection base</param> /// <param name="message">The message</param> /// <param name="handled">Whether the message was already handled</param> public void Process(ConnectionBase connectionBase, Message message, bool handled) { bool success = false; Shop shop = new Shop(); if (message[0] is bool) { success = message.GetBoolean(0); } else if (message[0] is string) { success = string.Compare(message.GetString(0), "error", true) != 0; } shop.Energy = message.GetInt(1); shop.TimeToEnergy = message.GetInt(2); shop.TotalEnergy = message.GetInt(3); shop.SecondsBetweenEnergy = message.GetInt(4); List <ShopItem> shopItemsData = new List <ShopItem>(); uint index = 7u; while (index < message.Count) { ShopItem shopItemData = new ShopItem( message.GetString(index), message.GetString(index + 1), message.GetInt(index + 2), message.GetInt(index + 3), message.GetInt(index + 4), message.GetInt(index + 5), message.GetInt(index + 6), message.GetInt(index + 7), message.GetString(index + 8), message.GetString(index + 9), message.GetString(index + 10), message.GetInt(index + 11), message.GetBoolean(index + 12), message.GetBoolean(index + 13), message.GetBoolean(index + 14), message.GetBoolean(index + 15), message.GetBoolean(index + 16), message.GetBoolean(index + 17), message.GetBoolean(index + 18), message.GetInt(index + 19), message.GetInt(index + 20), message.GetBoolean(index + 21), message.GetBoolean(index + 22)); shopItemsData.Add(shopItemData); index += 23u; } shop.ShopItems = shopItemsData; GetShopEvent getShopMessage = new GetShopEvent() { Raw = message, Shop = shop, Success = success }; connectionBase.RaiseServerEvent <GetShopEvent>(getShopMessage); }