private bool VerifyTransaction(NetConnection <NetSession> sender, ItemPurchaseRequest request) { if (!DataManager.Instance.ShopItems.ContainsKey(request.shopID)) { return(false); } if (!DataManager.Instance.ShopItems[request.shopID].ContainsKey(request.shopItemID)) { return(false); } ShopItemDefine define = DataManager.Instance.ShopItems[request.shopID][request.shopItemID]; if (define == null) { return(false); } if (!sender.Session.Character.ChangeGold(-define.Price)) { return(false); } return(true); }
public bool BuyItem(NetConnection <NetSession> sender, ItemPurchaseRequest request) { if (VerifyTransaction(sender, request)) { ShopItemDefine define = DataManager.Instance.ShopItems[request.shopID][request.shopItemID]; sender.Session.Character.ItemManager.AddItem(define.ItemID, request.Amount); //additem notify NStatus status = new NStatus(); status.Type = StatusType.Item; status.Action = StatusAction.Add; status.Id = define.ItemID; status.Value = request.Amount; Console.WriteLine("purchase one unit of " + define.ItemID); if (sender.Session.Response.Notifies == null) { sender.Session.Response.Notifies = new StatusNotify(); } sender.Session.Response.Notifies.Status.Add(status); //deduct money notify status = new NStatus(); status.Type = StatusType.Money; status.Action = StatusAction.Remove; status.Id = -1; status.Value = define.Price; sender.Session.Response.Notifies.Status.Add(status); return(true); } return(false); }
public void SetShopItem(int id, ShopItemDefine shopItem, UIShop owner) { this.shop = owner; this.ShopItemID = id; this.ShopItem = shopItem; this.item = DataManager.Instance.Items[this.ShopItem.ItemID]; this.title.text = this.item.Name; this.count.text = ShopItem.Count.ToString(); this.price.text = ShopItem.Price.ToString(); this.icon.overrideSprite = Resloader.Load <Sprite>(item.Icon); }
public void Init(ShopItemDefine define, ShopPanel panel) { yesBtn = GetComponent <Button>("YesBtn"); noBtn = GetComponent <Button>("NoBtn"); confirmTxt = GetComponent <Text>("ConfirmTxt"); confirmTxt.text = confirmTxt.text + DataManager.Instance.Items[define.ItemID].Name + " ?"; yesBtn.onClick.AddListener(() => { ShopManager.Instance.BuyItem(define.ID, 1); ItemService.Instance.OnItemPurchase += this.OnItemPurchaseResponse; }); noBtn.onClick.AddListener(() => { UIManager.Instance.HidePanel(typeof(ConfirmationPanel)); }); }
public void Init(ShopPanel panel, ShopItemDefine define, int index) { mPanel = panel; mIndex = index; Define = define; mItemImg = GetComponent <Image>("ItemImg"); mSelectImg = GetComponent <Image>("SelectImg"); mAmountTxt = GetComponent <Text>("AmountTxt"); mSelectImg.gameObject.SetActive(false); mItemImg.sprite = ResManager.Instance.Load <Sprite>(ResManager.ResourceType.Item, DataManager.Instance.Items[define.ItemID].Icon); mAmountTxt.text = define.Count.ToString(); trigger = mItemImg.gameObject.AddComponent <EventTrigger>(); EventTrigger.Entry mouseClick = new EventTrigger.Entry(); mouseClick.eventID = EventTriggerType.PointerClick; mouseClick.callback.AddListener(OnMouseClick); trigger.triggers.Add(mouseClick); }