public void SetStatusLabel(EOResourceID type, string prepended, EOResourceID text) { CheckStatusLabelType(type); SetStatusLabelText(_localizedStringFinder.GetString(type), prepended, _localizedStringFinder.GetString(text)); }
private void HandleMapItemClick(OldMapItem mi) { if ((_mainCharacter.ID != mi.OwningPlayerID && mi.OwningPlayerID != 0) && (mi.IsNPCDrop && (DateTime.Now - mi.DropTime).TotalSeconds <= OldWorld.Instance.NPCDropProtectTime) || (!mi.IsNPCDrop && (DateTime.Now - mi.DropTime).TotalSeconds <= OldWorld.Instance.PlayerDropProtectTime)) { OldCharacter charRef = _parentMapRenderer.GetOtherPlayerByID((short)mi.OwningPlayerID); EOResourceID msg = charRef == null ? EOResourceID.STATUS_LABEL_ITEM_PICKUP_PROTECTED : EOResourceID.STATUS_LABEL_ITEM_PICKUP_PROTECTED_BY; string extra = charRef == null ? "" : charRef.Name; EOGame.Instance.Hud.SetStatusLabel(EOResourceID.STATUS_LABEL_TYPE_INFORMATION, msg, extra); } else { var item = OldWorld.Instance.EIF[mi.ItemID]; if (!EOGame.Instance.Hud.InventoryFits(mi.ItemID)) { EOGame.Instance.Hud.SetStatusLabel(EOResourceID.STATUS_LABEL_TYPE_INFORMATION, EOResourceID.STATUS_LABEL_ITEM_PICKUP_NO_SPACE_LEFT); } else if (_mainCharacter.Weight + item.Weight * mi.Amount > _mainCharacter.MaxWeight) { EOGame.Instance.Hud.SetStatusLabel(EOResourceID.STATUS_LABEL_TYPE_WARNING, EOResourceID.DIALOG_ITS_TOO_HEAVY_WEIGHT); } else if (!_game.API.GetItem(mi.UniqueID)) //server validates drop protection anyway { EOGame.Instance.DoShowLostConnectionDialogAndReturnToMainMenu(); } } }
public void SetStatusLabel(EOResourceID type, EOResourceID text, string appended = "") { CheckStatusLabelType(type); SetStatusLabelText(_localizedStringFinder.GetString(type), _localizedStringFinder.GetString(text), appended); }
private void GivenFileHasStringForResourceID(DataFiles file, EOResourceID id, string str) { if (!_dataFileProvider.DataFiles.ContainsKey(file)) { _dataFileProvider.DataFiles.Add(file, Mock.Of <IEDFFile>(x => x.Data == new Dictionary <int, string>())); } _dataFileProvider.DataFiles[file].Data[(int)id] = str; }
public void GetString_ResourceID_UsesLanguageSetInConfig() { const EOResourceID testID = EOResourceID.STRING_SERVER; const string expectedResourceString = "language test"; GivenLanguageSetInConfig(EOLanguage.Dutch); GivenFileHasStringForResourceID(DataFiles.DutchStatus2, testID, expectedResourceString); var actualString = _localizedStringFinder.GetString(testID); Assert.AreEqual(expectedResourceString, actualString); }
private void CheckStatusLabelType(EOResourceID type) { switch (type) { case EOResourceID.STATUS_LABEL_TYPE_ACTION: case EOResourceID.STATUS_LABEL_TYPE_BUTTON: case EOResourceID.STATUS_LABEL_TYPE_INFORMATION: case EOResourceID.STATUS_LABEL_TYPE_WARNING: case EOResourceID.STATUS_LABEL_TYPE_ITEM: case EOResourceID.SKILLMASTER_WORD_SPELL: break; default: throw new ArgumentOutOfRangeException(nameof(type), "Use either ACTION, BUTTION, INFORMATION, WARNING, ITEM, or SPELL for this."); } }
private void _validateMessage(EOResourceID msg) { switch (msg) { case EOResourceID.DIALOG_TRANSFER_DROP: case EOResourceID.DIALOG_TRANSFER_GIVE: case EOResourceID.DIALOG_TRANSFER_JUNK: case EOResourceID.DIALOG_TRANSFER_BUY: case EOResourceID.DIALOG_TRANSFER_SELL: case EOResourceID.DIALOG_TRANSFER_TRANSFER: case EOResourceID.DIALOG_TRANSFER_DEPOSIT: case EOResourceID.DIALOG_TRANSFER_WITHDRAW: case EOResourceID.DIALOG_TRANSFER_OFFER: break; default: throw new ArgumentOutOfRangeException(nameof(msg), "Use one of the approved messages."); } }
public void GetString_ResourceID_ByLanguage_MapsToCorrectFile() { const EOResourceID testID = EOResourceID.STATUS_LABEL_YOU_GAINED_EXP; GivenFileHasStringForResourceID(DataFiles.DutchStatus2, testID, "dutch"); GivenFileHasStringForResourceID(DataFiles.EnglishStatus2, testID, "english"); GivenFileHasStringForResourceID(DataFiles.PortugueseStatus2, testID, "portuguese"); GivenFileHasStringForResourceID(DataFiles.SwedishStatus2, testID, "swedish"); var dutchActual = _localizedStringFinder.GetString(EOLanguage.Dutch, testID); var englishActual = _localizedStringFinder.GetString(EOLanguage.English, testID); var portugueseActual = _localizedStringFinder.GetString(EOLanguage.Portuguese, testID); var swedishActual = _localizedStringFinder.GetString(EOLanguage.Swedish, testID); Assert.AreEqual("dutch", dutchActual); Assert.AreEqual("english", englishActual); Assert.AreEqual("portuguese", portugueseActual); Assert.AreEqual("swedish", swedishActual); }
public string GetString(EOResourceID dataConstant) { return(GetString(_configProvider.Language, dataConstant)); }
public string GetString(EOLanguage language, EOResourceID dataConstant) { return(_dataFileProvider .DataFiles[GetFile2FromLanguage(language)] .Data[(int)dataConstant]); }
public void SetStatusLabel(EOResourceID type, string detail) { //SetStatusLabelText(string.Format("[ {0} ] {1}", typeText, detail)); }
public void SetStatusLabel(EOResourceID type, string extra, EOResourceID message) { //SetStatusLabelText(string.Format("[ {0} ] {1} {2}", typeText, extra, messageText)); }
public void SetStatusLabel(EOResourceID type, EOResourceID message, string extra = "") { }
public static string GetString(EOResourceID id) { return(Instance.DataFiles[Instance.Localized2].Data[(int)id]); }
/// <summary> /// Create a new item transfer dialog /// </summary> /// <param name="itemName">Name of the item to be displayed</param> /// <param name="transferType">Which transfer is being done (controls title)</param> /// <param name="totalAmount">Maximum amount that can be transferred</param> /// <param name="message">Resource ID of message to control displayed text</param> public ItemTransferDialog(string itemName, TransferType transferType, int totalAmount, EOResourceID message = EOResourceID.DIALOG_TRANSFER_DROP) : base((PacketAPI)null) { _validateMessage(message); Texture2D weirdSpriteSheet = ((EOGame)Game).GFXManager.TextureFromResource(GFXTypes.PostLoginUI, 27); Rectangle sourceArea = new Rectangle(38, 0, 265, 170); //get bgTexture Color[] textureData = new Color[sourceArea.Width * sourceArea.Height]; bgTexture = new Texture2D(Game.GraphicsDevice, sourceArea.Width, sourceArea.Height); weirdSpriteSheet.GetData(0, sourceArea, textureData, 0, textureData.Length); bgTexture.SetData(textureData); //get the title bar - for when it isn't drop items if (transferType != TransferType.DropItems) { Rectangle titleBarArea = new Rectangle(40, 172 + ((int)transferType - 1) * 24, 241, 22); Color[] titleBarData = new Color[titleBarArea.Width * titleBarArea.Height]; m_titleBarGfx = new Texture2D(Game.GraphicsDevice, titleBarArea.Width, titleBarArea.Height); weirdSpriteSheet.GetData(0, titleBarArea, titleBarData, 0, titleBarData.Length); m_titleBarGfx.SetData(titleBarData); } //set the buttons here //ok/cancel buttons XNAButton ok = new XNAButton(smallButtonSheet, new Vector2(60, 125), _getSmallButtonOut(SmallButton.Ok), _getSmallButtonOver(SmallButton.Ok)) { Visible = true }; ok.OnClick += (s, e) => Close(ok, XNADialogResult.OK); ok.SetParent(this); dlgButtons.Add(ok); XNAButton cancel = new XNAButton(smallButtonSheet, new Vector2(153, 125), _getSmallButtonOut(SmallButton.Cancel), _getSmallButtonOver(SmallButton.Cancel)) { Visible = true }; cancel.OnClick += (s, e) => Close(cancel, XNADialogResult.Cancel); cancel.SetParent(this); dlgButtons.Add(cancel); XNALabel descLabel = new XNALabel(new Rectangle(20, 42, 231, 33), Constants.FontSize10) { ForeColor = ColorConstants.LightGrayDialogMessage, TextWidth = 200, Text = $"{OldWorld.GetString(EOResourceID.DIALOG_TRANSFER_HOW_MUCH)} {itemName} {OldWorld.GetString(message)}" }; descLabel.SetParent(this); //set the text box here //starting coords are 163, 97 m_amount = new XNATextBox(new Rectangle(163, 95, 77, 19), Game.Content.Load <Texture2D>("cursor"), Constants.FontSize08) { Visible = true, Enabled = true, MaxChars = 8, //max drop/junk at a time will be 99,999,999 TextColor = ColorConstants.LightBeigeText, Text = "1" }; m_amount.SetParent(this); m_prevSubscriber = EOGame.Instance.Dispatcher.Subscriber; EOGame.Instance.Dispatcher.Subscriber = m_amount; DialogClosing += (o, e) => EOGame.Instance.Dispatcher.Subscriber = m_prevSubscriber; m_totalAmount = totalAmount; //slider control Texture2D src = ((EOGame)Game).GFXManager.TextureFromResource(GFXTypes.PostLoginUI, 29); //5th index when 'out', 6th index when 'over' Rectangle outText = new Rectangle(0, 15 * 5, 16, 15); Rectangle ovrText = new Rectangle(0, 15 * 6, 16, 15); Color[] outData = new Color[16 * 15]; Color[] ovrData = new Color[16 * 15]; Texture2D[] sliderTextures = new Texture2D[2]; src.GetData(0, outText, outData, 0, outData.Length); src.GetData(0, ovrText, ovrData, 0, ovrData.Length); (sliderTextures[0] = new Texture2D(Game.GraphicsDevice, 16, 15)).SetData(outData); (sliderTextures[1] = new Texture2D(Game.GraphicsDevice, 16, 15)).SetData(ovrData); //starting coords are 25, 96; range rectangle is 122, 15 XNAButton slider = new XNAButton(sliderTextures, new Vector2(25, 96)); slider.OnClickDrag += (o, e) => { s_sliderDragging = true; //ignores updates to slider location during text change MouseState st = Mouse.GetState(); Rectangle sliderArea = new Rectangle(25, 96, 122 - slider.DrawArea.Width, 15); int newX = (st.X - PreviousMouseState.X) + (int)slider.DrawLocation.X; if (newX < sliderArea.X) { newX = sliderArea.X; } else if (newX > sliderArea.Width + sliderArea.X) { newX = sliderArea.Width + sliderArea.X; } slider.DrawLocation = new Vector2(newX, slider.DrawLocation.Y); //unchanged y coordinate, slides along x-axis float ratio = (newX - sliderArea.X) / (float)sliderArea.Width; m_amount.Text = ((int)Math.Round(ratio * m_totalAmount) + 1).ToString(); s_sliderDragging = false; }; slider.SetParent(this); m_amount.OnTextChanged += (sender, args) => { int amt = 0; if (m_amount.Text != "" && (!int.TryParse(m_amount.Text, out amt) || amt > m_totalAmount)) { amt = m_totalAmount; m_amount.Text = $"{m_totalAmount}"; } else if (m_amount.Text != "" && amt < 0) { amt = 1; m_amount.Text = $"{amt}"; } if (s_sliderDragging) { return; //slider is being dragged - don't move its position } //adjust the slider (created after m_amount) when the text changes if (amt <= 1) //NOT WORKING { slider.DrawLocation = new Vector2(25, 96); } else { int xCoord = (int)Math.Round((amt / (double)m_totalAmount) * (122 - slider.DrawArea.Width)); slider.DrawLocation = new Vector2(25 + xCoord, 96); } }; _setSize(bgTexture.Width, bgTexture.Height); DrawLocation = new Vector2(Game.GraphicsDevice.PresentationParameters.BackBufferWidth / 2 - bgTexture.Width / 2, 40); //only centered horizontally endConstructor(false); }