private void productclick() { if (Program.steamActive) { ProductInfo tag = (ProductInfo)base.ClickedControl.Tag; XmlRpcAuthProvider provider = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressCards, URLs.ProfileServerPort, URLs.ProfilePath); XmlRpcAuthRequest req = new XmlRpcAuthRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", ""), "", "", "", RemoteServices.Instance.SessionGuid.ToString().Replace("-", ""), null, null, null) { Culture = this.PlayerLanguage, Currency = this.PlayerCurrency, Country = this.PlayerCountry, SteamID = Program.steamID, ItemID = tag.ProductID.ToString() }; InterfaceMgr.Instance.closeAllPopups(); XmlRpcAuthResponse response = provider.SteamPaymentInit(req, null, this, 0x3a98); if (response.SuccessCode == 0) { MessageBox.Show(response.Message); } else { Program.forceSteamDXOverlay(); } } else if (Program.aeriaInstall) { ProductInfo info2 = (ProductInfo)base.ClickedControl.Tag; if (MyMessageBox.Show(SK.Text("EmptyVillagePanel_Buy_Village", "Purchase") + Environment.NewLine + Environment.NewLine + info2.Crowns.ToString() + " " + SK.Text("BuyCrownsPanel_Crowns", "Crowns") + Environment.NewLine + info2.Cost.ToString() + " Aeria Points", SK.Text("ManageCandsPanel_Confirm_Purchase_Crowns", "Confirm Crowns Purchase"), MessageBoxButtons.YesNo) == DialogResult.Yes) { int crowns = info2.Crowns; XmlRpcAuthProvider provider2 = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressCards, URLs.ProfileServerPort, URLs.ProfilePath); XmlRpcAuthRequest request2 = new XmlRpcAuthRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", ""), "", "", "", RemoteServices.Instance.SessionGuid.ToString().Replace("-", ""), null, null, null) { ItemID = crowns.ToString(), OrderID = info2.Cost.ToString() }; XmlRpcAuthResponse response2 = provider2.AeriaMakePayment(request2, null, this, 0x3a98); if (response2.SuccessCode == 0) { if (((response2.Message[0] != '2') || (response2.Message[1] != '0')) || (response2.Message[2] != '5')) { MessageBox.Show(response2.Message); } else if (MyMessageBox.Show(SK.Text("ManageCandsPanel_Purchase_Failed_Buy_Points", "You don't have enough Aeria Points for this purchase. Do you wish to purchase Aeria Points now?"), SK.Text("ManageCandsPanel_Purchase_Failed", "Purchase Failed"), MessageBoxButtons.YesNo) == DialogResult.Yes) { this.purchaseAP(); } } else { WorldMap world = GameEngine.Instance.World; world.ProfileCrowns += info2.Crowns; MyMessageBox.Show(SK.Text("ManageCandsPanel_Successful_Purchase", "Your purchase has been successfully completed"), SK.Text("ManageCandsPanel_Crowns_Purchased", "Crowns Purchased")); this.closeClick(); } } } }
public void init(int cardSection) { CustomSelfDrawPanel.CSDImage image2; this.currentCardSection = cardSection; base.clearControls(); this.mainBackgroundImage.Image = GFXLibrary.dummy; this.mainBackgroundImage.Position = new Point(0, 0); this.mainBackgroundImage.Size = base.Size; this.mainBackgroundImage.Tile = true; base.addControl(this.mainBackgroundImage); this.ContentWidth = base.Width - (2 * BorderPadding); this.AvailablePanelWidth = 800; CustomSelfDrawPanel.CSDExtendingPanel control = new CustomSelfDrawPanel.CSDExtendingPanel { Size = base.Size, Position = new Point(0, 0) }; this.mainBackgroundImage.addControl(control); control.Create((Image)GFXLibrary.cardpanel_panel_back_top_left, (Image)GFXLibrary.cardpanel_panel_back_top_mid, (Image)GFXLibrary.cardpanel_panel_back_top_right, (Image)GFXLibrary.cardpanel_panel_back_mid_left, (Image)GFXLibrary.cardpanel_panel_back_mid_mid, (Image)GFXLibrary.cardpanel_panel_back_mid_right, (Image)GFXLibrary.cardpanel_panel_back_bottom_left, (Image)GFXLibrary.cardpanel_panel_back_bottom_mid, (Image)GFXLibrary.cardpanel_panel_back_bottom_right); CustomSelfDrawPanel.CSDImage image = new CustomSelfDrawPanel.CSDImage { Image = (Image)GFXLibrary.cardpanel_panel_gradient_top_left, Size = GFXLibrary.cardpanel_panel_gradient_top_left.Size, Position = new Point(0, 0) }; control.addControl(image); image2 = new CustomSelfDrawPanel.CSDImage { Image = (Image)GFXLibrary.cardpanel_panel_gradient_bottom_right, Size = GFXLibrary.cardpanel_panel_gradient_bottom_right.Size, Position = new Point((control.Width - ((Image)GFXLibrary.cardpanel_panel_gradient_bottom_right).Width) - 6, (control.Height - ((Image)GFXLibrary.cardpanel_panel_gradient_bottom_right).Height) - 6) }; control.addControl(image2); this.AvailablePanel = new CustomSelfDrawPanel.CSDExtendingPanel(); this.AvailablePanel.Size = new Size(this.AvailablePanelWidth, 550); this.AvailablePanel.Position = new Point(8, (base.Height - 8) - 550); this.AvailablePanel.Alpha = 0.8f; int width = base.Width; int borderPadding = BorderPadding; int num9 = this.AvailablePanel.Width; this.closeImage.Image = (Image)GFXLibrary.cardpanel_button_close_normal; this.closeImage.Size = this.closeImage.Image.Size; this.closeImage.setMouseOverDelegate(() => this.closeImage.Image = (Image)GFXLibrary.cardpanel_button_close_over, () => this.closeImage.Image = (Image)GFXLibrary.cardpanel_button_close_normal); this.closeImage.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.closeClick)); this.closeImage.Position = new Point((base.Width - 14) - 0x11, 10); this.mainBackgroundImage.addControl(this.closeImage); CustomSelfDrawPanel.WikiLinkControl.init(this.mainBackgroundImage, 0x26, new Point((((base.Width - 1) - 0x11) - 50) + 3, 5), true); CustomSelfDrawPanel.CSDFill fill = new CustomSelfDrawPanel.CSDFill { FillColor = Color.FromArgb(0xff, 130, 0x81, 0x7e), Size = new Size(base.Width - 10, 1), Position = new Point(5, 0x22) }; this.mainBackgroundImage.addControl(fill); this.greyout.FillColor = Color.FromArgb(0xd7, 0x19, 0x19, 0x19); this.greyout.Size = new Size(this.mainBackgroundImage.Width, this.AvailablePanel.Y + this.AvailablePanel.Height); this.greyout.Position = new Point(0, 0); this.greyout.setClickDelegate(delegate { }); CustomSelfDrawPanel.CSDImage closeGrey = new CustomSelfDrawPanel.CSDImage { Image = (Image)GFXLibrary.cardpanel_button_close_normal, Size = this.closeImage.Image.Size }; closeGrey.setMouseOverDelegate(() => closeGrey.Image = (Image)GFXLibrary.cardpanel_button_close_over, () => closeGrey.Image = (Image)GFXLibrary.cardpanel_button_close_normal); closeGrey.Position = new Point((base.Width - 14) - 0x11, 10); this.greyout.addControl(closeGrey); this.labelTitle.Position = new Point(0x1b, 8); this.labelTitle.Size = new Size(0x3a7, 0x40); this.labelTitle.Text = SK.Text("BuyCrownsPanel_Buy_Crowns", "Buy Crowns"); this.labelTitle.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.TOP_LEFT; this.labelTitle.Font = FontManager.GetFont("Arial", 16f, FontStyle.Bold); this.labelTitle.Color = ARGBColors.Black; this.mainBackgroundImage.addControl(this.labelTitle); CustomSelfDrawPanel.UICardsButtons buttons = new CustomSelfDrawPanel.UICardsButtons((PlayCardsWindow)base.ParentForm) { Position = new Point(0x328, 0x25) }; this.mainBackgroundImage.addControl(buttons); this.cardButtons = buttons; List <ProductInfo> productList = new List <ProductInfo>(); if (Program.steamActive) { this.PlayerCountry = "UK"; this.PlayerCurrency = "GBP"; this.PlayerLanguage = MySettings.load().LanguageIdent; XmlRpcAuthProvider provider = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressLogin, URLs.ProfileServerPort, URLs.ProfilePath); XmlRpcAuthRequest req = new XmlRpcAuthRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", ""), "", "", "", null, null, null, null) { SteamID = Program.steamID, SessionID = RemoteServices.Instance.SessionGuid.ToString().Replace("-", ""), Culture = this.PlayerLanguage, Currency = this.PlayerCurrency, Country = this.PlayerCountry }; productList = provider.SteamGetProductList(req, null, this, 0x3a98).ProductList; } else if (Program.aeriaInstall) { XmlRpcAuthProvider provider2 = XmlRpcAuthProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressLogin, URLs.ProfileServerPort, URLs.ProfilePath); XmlRpcAuthRequest request2 = new XmlRpcAuthRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", ""), "", "", "", null, null, null, null); XmlRpcAuthResponse response = null; this.storedAeriaPoints = provider2.AeriaGetBalance(request2, null, this, 0x3a98, ref response); productList = response.ProductList; this.buyAPButton.ImageNorm = (Image)GFXLibrary.misc_button_blue_210wide_normal; this.buyAPButton.ImageOver = (Image)GFXLibrary.misc_button_blue_210wide_over; this.buyAPButton.ImageClick = (Image)GFXLibrary.misc_button_blue_210wide_pushed; this.buyAPButton.Position = new Point(0x13d, 0x49); this.buyAPButton.Text.Text = this.storedAeriaPoints.ToString(); this.buyAPButton.Text.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_RIGHT; this.buyAPButton.Text.Size = new Size((this.buyAPButton.Width / 2) - 3, this.buyAPButton.Height); this.buyAPButton.TextYOffset = -2; this.buyAPButton.Text.Color = ARGBColors.Black; this.buyAPButton.ImageIcon = (Image)GFXLibrary.aeriaPoints; this.buyAPButton.ImageIconPosition = new Point((this.buyAPButton.Width / 2) + 3, 1); this.buyAPButton.Text.Font = FontManager.GetFont("Arial", 12f, FontStyle.Bold); this.buyAPButton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.purchaseAP)); this.buyAPButton.CustomTooltipID = 0x286e; this.mainBackgroundImage.addControl(this.buyAPButton); } int y = 0x42; int num2 = 0x5e; int num3 = -1; if (Program.aeriaInstall) { y = 0x84; } NumberFormatInfo nFI = GameEngine.NFI; NumberFormatInfo info2 = GameEngine.NFI_D2; foreach (ProductInfo info3 in productList) { num3++; int x = num2; if (Program.steamActive) { if (num3 > 3) { if (num3 == 4) { y = 0x84; } x += 350; } } else if (Program.aeriaInstall && (num3 > 2)) { if (num3 == 3) { y = 0x84; } x += 350; } CustomSelfDrawPanel.CSDLabel label = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label2 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label3 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label4 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDLabel label5 = new CustomSelfDrawPanel.CSDLabel(); CustomSelfDrawPanel.CSDImage image3 = new CustomSelfDrawPanel.CSDImage(); CustomSelfDrawPanel.CSDImage crownsbutton = new CustomSelfDrawPanel.CSDImage(); CustomSelfDrawPanel.CSDImage orderbutton = new CustomSelfDrawPanel.CSDImage(); crownsbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_crowns_normal; crownsbutton.Position = new Point(x, y); crownsbutton.Height = crownsbutton.Image.Height; crownsbutton.Width = crownsbutton.Image.Width; crownsbutton.setMouseOverDelegate(() => crownsbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_crowns_over, () => crownsbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_crowns_normal); crownsbutton.Tag = info3; crownsbutton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); this.mainBackgroundImage.addControl(crownsbutton); x += crownsbutton.Width + 0x20; orderbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_greywhite_normal; orderbutton.Position = new Point(x, (y + 0x12) + 3); orderbutton.Height = orderbutton.Image.Height; orderbutton.Width = orderbutton.Image.Width; orderbutton.setMouseOverDelegate(() => orderbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_greywhite_over, () => orderbutton.Image = (Image)GFXLibrary.cardpanel_payment_button_greywhite_normal); orderbutton.Tag = info3; orderbutton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label5.Text = this.strOrderNow; label5.Position = new Point(0, 0); label5.Width = orderbutton.Width; label5.Height = orderbutton.Height; label5.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER; label5.Font = FontManager.GetFont("Arial", 14f, FontStyle.Bold); orderbutton.addControl(label5); label5.Tag = info3; label5.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); int num5 = 14; int num6 = 0; if (Program.mySettings.LanguageIdent == "fr") { num5 = 13; num6 = -5; } label.Text = info3.Strikethrough.ToString(); label.Position = new Point(0x74 + num6, 0x15); label.Width = 300; label.Height = 0x18; label.Font = FontManager.GetFont("Arial", (float)num5, FontStyle.Strikeout); label.Color = ARGBColors.Black; crownsbutton.addControl(label); label.Tag = info3; label.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label.Size = label.TextSizeX; label2.Text = info3.Crowns.ToString(); label2.Position = new Point(label.X + label.Width, label.Y); label2.Font = FontManager.GetFont("Arial", (float)num5, FontStyle.Bold); label2.Color = ARGBColors.Purple; label2.Width = 300; label2.Height = 0x18; crownsbutton.addControl(label2); label2.Tag = info3; label2.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label2.Size = label2.TextSizeX; label3.Text = this.strCrowns; label3.Position = new Point((label2.X + label2.Width) + num6, label2.Y); label3.Font = FontManager.GetFont("Arial", (float)num5, FontStyle.Bold); label3.Color = ARGBColors.Black; label3.Size = new Size(300, 0x18); crownsbutton.addControl(label3); label3.Tag = info3; label3.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label3.Size = label3.TextSizeX; if (Program.aeriaInstall) { label4.Text = " " + ((int)info3.Cost).ToString("F", nFI); } else { label4.Text = info3.Currency + " " + info3.Cost.ToString("F", info2); } label4.Position = new Point(label.X, (label.Y + label.Height) + 4); label4.Font = FontManager.GetFont("Arial", 14f, FontStyle.Bold); label4.Color = ARGBColors.Black; label4.Size = new Size(300, 0x18); crownsbutton.addControl(label4); label4.Tag = info3; label4.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.productclick)); label4.Size = label4.TextSizeX; if (Program.aeriaInstall) { image3.Image = (Image)GFXLibrary.aeriaPoints; label4.Position = new Point(label.X + 20, label.Y + label.Height); image3.Position = new Point(label.X, (((label.Y + label.Height) + 4) - 2) - 3); image3.Tag = info3; crownsbutton.addControl(image3); } y += crownsbutton.Height + 40; } this.mainBackgroundImage.invalidate(); }