Make plural names localizable + item found

This commit is contained in:
JappaWakka 2023-08-09 16:20:16 +02:00
parent 49f54471b6
commit 15f57d8bc5
22 changed files with 64 additions and 44 deletions

View File

@ -1397,7 +1397,7 @@
If p.Item.OriginalName.ToLower() = "choice band" Or p.Item.OriginalName.ToLower() = "choice specs" Or p.Item.OriginalName.ToLower() = "choice scarf" Then
If Not BattleScreen.FieldEffects.OwnChoiceMove Is Nothing Then
If Not moveUsed Is BattleScreen.FieldEffects.OwnChoiceMove Then
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s move was prevented due to " & p.Item.Name & "!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s move was prevented due to " & p.Item.OneLineName() & "!"))
Exit Sub
End If
Else
@ -1410,7 +1410,7 @@
If p.Item.OriginalName.ToLower() = "choice band" Or p.Item.OriginalName.ToLower() = "choice specs" Or p.Item.OriginalName.ToLower() = "choice scarf" Then
If Not BattleScreen.FieldEffects.OppChoiceMove Is Nothing Then
If Not moveUsed Is BattleScreen.FieldEffects.OppChoiceMove Then
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s move was prevented due to " & p.Item.Name & "!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s move was prevented due to " & p.Item.OneLineName() & "!"))
Exit Sub
End If
Else
@ -4787,9 +4787,9 @@
Select Case message
Case "" 'Print default message only
If cause.StartsWith("berry:") = True Then
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " ate the " & lostItem.Name & " Berry!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " ate the " & lostItem.OneLineName() & " Berry!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " lost the " & lostItem.Name & "!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " lost the " & lostItem.OneLineName() & "!"))
End If
Case "-1" 'Print no message at all
'Do nothing
@ -4797,9 +4797,9 @@
BattleScreen.BattleQuery.Add(New TextQueryObject(message))
If cause.StartsWith("berry:") = True Then
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " ate the " & lostItem.Name & " Berry!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " ate the " & lostItem.OneLineName() & " Berry!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " lost the " & lostItem.Name & "!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " lost the " & lostItem.OneLineName() & "!"))
End If
End Select
End If
@ -5016,7 +5016,7 @@
ChangeWeather(own, own, BattleWeather.WeatherTypes.Hailstorm, turns, BattleScreen, "Snow Warning summoned a hailstorm!", "snowwarning")
Case "frisk"
If Not op.Item Is Nothing Then
.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " is holding " & op.Item.Name & "."))
.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " is holding " & op.Item.OneLineName() & "."))
End If
Case "multitype"
p.OriginalType1 = p.Type1

View File

@ -427,6 +427,7 @@ pokedex_evolution_no_evolutions,doesn't evolve.
Receiving Items:
item_received_single,Received the~
item_received_multiple,Received
item_found,<player.name> found~
item_stored_in_pocket_single_start,<player.name> stored it in the~
item_stored_in_pocket_single_end,pocket.
item_stored_in_pocket_multiple_start,<player.name> stored them~in the

View File

@ -135,7 +135,7 @@
If hasApricorn = True Then
Dim Item As Item = GetItem()
text = "There is a " & Item.Name & "~on this tree.*Do you want to pick it?%Yes|No%"
text = "There is a " & Item.OneLineName() & "~on this tree.*Do you want to pick it?%Yes|No%"
End If
Screen.TextBox.Show(text, {Me})
@ -155,7 +155,7 @@
PlayerStatistics.Track("[85]Apricorns picked", 1)
SoundManager.PlaySound("Receive_Item", True)
Screen.TextBox.TextColor = TextBox.PlayerColor
Screen.TextBox.Show(Core.Player.Name & " picked the~" & Item.Name & ".*" & Core.Player.Inventory.GetMessageReceive(Item, 1), {Me})
Screen.TextBox.Show(Core.Player.Name & " picked the~" & Item.OneLineName() & ".*" & Core.Player.Inventory.GetMessageReceive(Item, 1), {Me})
AddApriconSave()
hasApricorn = False
ChangeTexture()

View File

@ -183,9 +183,9 @@
Core.Player.Inventory.AddItem(Me.Berry.ID.ToString, Me.Berries)
Dim Text As String = ""
If Me.Berries = 1 Then
Text = Localization.GetString("berry_picked_single_start", "<player.name> picked the~").Replace("<player.name>", Core.Player.Name) & Berry.Name.Replace("~", " ") & " " & Localization.GetString("berry_picked_single_end", "Berry.") & "*" & Core.Player.Inventory.GetMessageReceive(Berry, Me.Berries)
Text = Localization.GetString("berry_picked_single_start", "<player.name> picked the~").Replace("<player.name>", Core.Player.Name) & Berry.OneLineName() & " " & Localization.GetString("berry_picked_single_end", "Berry.") & "*" & Core.Player.Inventory.GetMessageReceive(Berry, Me.Berries)
Else
Text = Localization.GetString("berry_picked_multiple_start", "<player.name> picked the~").Replace("<player.name>", Core.Player.Name) & Berries & "~" & Berry.Name.Replace("~", " ") & " " & Localization.GetString("berry_picked_multiple_end", "Berries.") & "*" & Core.Player.Inventory.GetMessageReceive(Berry, Me.Berries)
Text = Localization.GetString("berry_picked_multiple_start", "<player.name> picked the~").Replace("<player.name>", Core.Player.Name) & Berries & "~" & Berry.OneLineName() & " " & Localization.GetString("berry_picked_multiple_end", "Berries.") & "*" & Core.Player.Inventory.GetMessageReceive(Berry, Me.Berries)
End If
Core.Player.AddPoints(2, "Picked berries.")

View File

@ -146,7 +146,7 @@
SoundManager.PlaySound("Receive_Item", True)
End If
Screen.TextBox.TextColor = TextBox.PlayerColor
Screen.TextBox.Show(Core.Player.Name & " found~" & Me.Item.Name & "!*" & Core.Player.Inventory.GetMessageReceive(Item, 1), {Me})
Screen.TextBox.Show(Localization.GetString("item_found", "<player.name> found~").Replace("<player.name>", Core.Player.Name) & Me.Item.OneLineName() & "!*" & Core.Player.Inventory.GetMessageReceive(Item, 1), {Me})
Dim ItemID As String
If Me.Item.IsGameModeItem Then
ItemID = Me.Item.gmID

View File

@ -64,7 +64,7 @@
If op.Item.isBerry = True Then
Dim ItemID As Integer = op.Item.ID
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, p.GetDisplayName() & " ate the " & op.Item.Name & " berry!", "move:bugbite")
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, p.GetDisplayName() & " ate the " & op.Item.OneLineName() & " berry!", "move:bugbite")
BattleScreen.Battle.UseBerry(own, own, Item.GetItemByID(ItemID.ToString), BattleScreen, "", "move:bugbite")
End If
End If

View File

@ -125,7 +125,7 @@
End If
op.OriginalItem = Item.GetItemByID(ItemID)
op.OriginalItem.AdditionalData = op.Item.AdditionalData
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, p.GetDisplayName() & " knocked off the " & op.GetDisplayName() & "'s " & op.OriginalItem.Name & "!", "move:knockoff")
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, p.GetDisplayName() & " knocked off the " & op.GetDisplayName() & "'s " & op.OriginalItem.OneLineName() & "!", "move:knockoff")
End Sub

View File

@ -94,7 +94,7 @@
op.OriginalItem = Item.GetItemByID(ItemID)
op.OriginalItem.AdditionalData = op.Item.AdditionalData
If BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, "Thief stole the item " & op.Item.Name & " from " & op.GetDisplayName() & "!", "move:thief") Then
If BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, "Thief stole the item " & op.Item.OneLineName() & " from " & op.GetDisplayName() & "!", "move:thief") Then
If own = False Then
BattleScreen.FieldEffects.StolenItemIDs.Add(ItemID)
End If

View File

@ -66,7 +66,7 @@
If Not op.Item Is Nothing Then
If op.Item.IsBerry = True OrElse op.Item.OriginalName.ToLower().EndsWith(" gem") Then
Dim ItemID As Integer = op.Item.ID
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, op.GetDisplayName() & "'s " & op.Item.Name & " got burned up!", "move:incinerate")
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, op.GetDisplayName() & "'s " & op.Item.OneLineName() & " got burned up!", "move:incinerate")
End If
End If
End Sub

View File

@ -105,7 +105,7 @@
p.OriginalItem = Item.GetItemByID(ItemID)
p.OriginalItem.AdditionalData = p.Item.AdditionalData
If BattleScreen.Battle.RemoveHeldItem(own, own, BattleScreen, op.GetDisplayName() & " received the item " & p.Item.Name & " from " & p.GetDisplayName() & "!", "move:bestow") Then
If BattleScreen.Battle.RemoveHeldItem(own, own, BattleScreen, op.GetDisplayName() & " received the item " & p.Item.OneLineName() & " from " & p.GetDisplayName() & "!", "move:bestow") Then
If own = True Then
BattleScreen.FieldEffects.StolenItemIDs.Add(ItemID)
End If

View File

@ -97,7 +97,7 @@ Namespace BattleSystem.Moves.Normal
op.OriginalItem = Item.GetItemByID(ItemID)
op.OriginalItem.AdditionalData = op.Item.AdditionalData
If BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, "Covet stole the item " & op.Item.Name & " from " & op.GetDisplayName() & "!", "move:covet") Then
If BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, "Covet stole the item " & op.Item.OneLineName() & " from " & op.GetDisplayName() & "!", "move:covet") Then
If own = False Then
BattleScreen.FieldEffects.StolenItemIDs.Add(ItemID)
End If

View File

@ -60,7 +60,7 @@
Dim p As Pokemon = BattleScreen.OwnPokemon
If Not BattleScreen.FieldEffects.OwnConsumedItem Is Nothing Then
p.Item = BattleScreen.FieldEffects.OwnConsumedItem
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " found one " & p.Item.Name & "!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " found one " & p.Item.OneLineName() & "!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject("Recycle failed!"))
End If
@ -69,7 +69,7 @@
If Not BattleScreen.FieldEffects.OppConsumedItem Is Nothing Then
p.Item = BattleScreen.FieldEffects.OppConsumedItem
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " found one " & p.Item.Name & "!"))
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " found one " & p.Item.OneLineName() & "!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject("Recycle failed!"))
End If

View File

@ -7,7 +7,6 @@ Public Class GameModeItem
Inherits Item
Public gmPluralName As String = gmName
Public gmPrice As Integer = 0
Public gmBattlePointsPrice As Integer = 1
Public gmItemType As ItemTypes = ItemTypes.Standard

View File

@ -12,6 +12,7 @@ Public MustInherit Class Item
'GameMode Items
Public gmID As String = ""
Public gmName As String = ""
Public gmPluralName As String = gmName & "s"
Public gmDescription As String = ""
Public gmTextureSource As String = "Items\GameModeItems"
Public gmTextureRectangle As Rectangle
@ -83,6 +84,25 @@ Public MustInherit Class Item
End Get
End Property
Public Function OneLineName() As String
Return Name.Replace("~", " ")
End Function
Public Function OneLinePluralName() As String
If IsGameModeItem = True Then
If Localization.TokenExists("item_pluralname_" & gmID) = True Then
Return Localization.GetString("item_pluralname_" & gmID).Replace("~", " ")
Else
Return gmPluralName.Replace("~", " ")
End If
Else
If Localization.TokenExists("item_pluralname_" & Me.ID) = True Then
Return Localization.GetString("item_pluralname_" & Me.ID).Replace("~", " ")
Else
Return PluralName.Replace("~", " ")
End If
End If
End Function
''' <summary>
''' The ID of the item.
''' </summary>
@ -329,7 +349,7 @@ Public MustInherit Class Item
End If
If Core.Player.Inventory.GetItemAmount(ItemID) <= 0 Then
Return "*There are no~" & Me.PluralName & " left."
Return "*There are no~" & Me.OneLinePluralName() & " left."
End If
Return ""

View File

@ -112,7 +112,7 @@
s &= "@text.show(" & message & ")" & Environment.NewLine &
"@options.show(Yes,No)" & Environment.NewLine &
":when:Yes" & Environment.NewLine &
"@text.show(Your Pokémon handed over~the " & item.Name & "!)" & Environment.NewLine &
"@text.show(Your Pokémon handed over~the " & Item.OneLineName() & "!)" & Environment.NewLine &
"@item.give(" & PickupItemID & ",1)" & Environment.NewLine &
"@item.messagegive(" & PickupItemID & ",1)" & Environment.NewLine &
":when:No" & Environment.NewLine &
@ -128,7 +128,7 @@
s &= "@text.show(" & message & ")" & Environment.NewLine &
"@options.show(Yes,No)" & Environment.NewLine &
":when:Yes" & Environment.NewLine &
"@text.show(Your Pokémon handed over~the " & item.Name & "!)" & Environment.NewLine &
"@text.show(Your Pokémon handed over~the " & Item.OneLineName() & "!)" & Environment.NewLine &
"@item.give(" & PickupItemID & ",1)" & Environment.NewLine &
"@item.messagegive(" & PickupItemID & ",1)" & Environment.NewLine &
":when:No" & Environment.NewLine &
@ -482,7 +482,7 @@
r = New ReactionContainer("Your Pokémon was surprised~that you suddenly spoke to it!", MessageBulb.NotificationTypes.Exclamation)
Case 42
If Not p.Item Is Nothing Then
r = New ReactionContainer("<name> almost forgot~it was holding~that " & p.Item.Name & "!", MessageBulb.NotificationTypes.Question)
r = New ReactionContainer("<name> almost forgot~it was holding~that " & p.Item.OneLineName() & "!", MessageBulb.NotificationTypes.Question)
End If
Case 43
If IceAround() = True Then

View File

@ -1061,11 +1061,11 @@ Public Class NewInventoryScreen
If reItem Is Nothing Then
'JSON Stuff
'ShowMessage(_translation.MESSAGE_GIVE_ITEM(Pokemon.GetDisplayName(), cItem.Name))
ShowMessage("Gave " & Pokemon.GetDisplayName() & " a " & cItem.Name & ".")
ShowMessage("Gave " & Pokemon.GetDisplayName() & " a " & cItem.OneLineName() & ".")
Else
'JSON Stuff
'ShowMessage(_translation.MESSAGE_SWITCH_ITEM(Pokemon.GetDisplayName(), reItem.Name, cItem.Name))
ShowMessage("Switched " & Pokemon.GetDisplayName() & "'s " & reItem.Name & " with a " & cItem.Name & ".")
ShowMessage("Switched " & Pokemon.GetDisplayName() & "'s " & reItem.OneLineName() & " with a " & cItem.OneLineName() & ".")
End If
LoadItems()

View File

@ -794,7 +794,7 @@
Else
Core.Player.Inventory.AddItem(Core.Player.Pokemons(PokeIndex).Item.ID.ToString, 1)
End If
text = "Taken " & Core.Player.Pokemons(PokeIndex).Item.Name & " from " & Core.Player.Pokemons(PokeIndex).GetDisplayName() & ", and attached the Mail to " & Core.Player.Pokemons(PokeIndex).GetDisplayName() & "."
text = "Taken " & Core.Player.Pokemons(PokeIndex).Item.OneLineName() & " from " & Core.Player.Pokemons(PokeIndex).GetDisplayName() & ", and attached the Mail to " & Core.Player.Pokemons(PokeIndex).GetDisplayName() & "."
End If
Core.Player.Pokemons(PokeIndex).Item = Item.GetItemByID(TempNewMail.MailID.ToString)

View File

@ -1055,7 +1055,7 @@ Public Class StorageSystemScreen
Core.Player.Pokemons(CInt(CursorPosition.Y)).Item = Nothing
Else
Screen.TextBox.Show("Taken " & Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.Name & "~from " & Core.Player.Pokemons(CInt(CursorPosition.Y)).GetDisplayName() & ".")
Screen.TextBox.Show("Taken " & Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.OneLineName() & "~from " & Core.Player.Pokemons(CInt(CursorPosition.Y)).GetDisplayName() & ".")
Dim ItemID As String
If Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.IsGameModeItem Then
ItemID = Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.gmID
@ -1075,7 +1075,7 @@ Public Class StorageSystemScreen
GetBox(CurrentBox).Pokemon(id).GetPokemon.Item = Nothing
Else
Screen.TextBox.Show("Taken " & GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.Name & "~from " & GetBox(CurrentBox).Pokemon(id).GetPokemon.GetDisplayName() & ".")
Screen.TextBox.Show("Taken " & GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.OneLineName() & "~from " & GetBox(CurrentBox).Pokemon(id).GetPokemon.GetDisplayName() & ".")
Dim ItemID As String
If GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.IsGameModeItem Then
ItemID = GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.gmID
@ -1144,7 +1144,7 @@ Public Class StorageSystemScreen
Core.Player.Pokemons(CInt(CursorPosition.Y)).Item = Nothing
Else
Screen.TextBox.Show("Taken " & Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.Name & "~from " & Core.Player.Pokemons(CInt(CursorPosition.Y)).GetDisplayName() & ".")
Screen.TextBox.Show("Taken " & Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.OneLineName() & "~from " & Core.Player.Pokemons(CInt(CursorPosition.Y)).GetDisplayName() & ".")
Dim ItemID As String
If Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.IsGameModeItem Then
ItemID = Core.Player.Pokemons(CInt(CursorPosition.Y)).Item.gmID
@ -1167,7 +1167,7 @@ Public Class StorageSystemScreen
GetBox(CurrentBox).Pokemon(id).GetPokemon.Item = Nothing
Else
Screen.TextBox.Show("Taken " & GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.Name & "~from " & GetBox(CurrentBox).Pokemon(id).GetPokemon.GetDisplayName() & ".")
Screen.TextBox.Show("Taken " & GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.OneLineName() & "~from " & GetBox(CurrentBox).Pokemon(id).GetPokemon.GetDisplayName() & ".")
Dim ItemID As String
If GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.IsGameModeItem Then
ItemID = GetBox(CurrentBox).Pokemon(id).GetPokemon.Item.gmID

View File

@ -788,7 +788,7 @@ Public Class PartyScreen
p.Item = Nothing
Else
ShowMessage("Taken " & p.Item.Name & " from " & p.GetDisplayName() & ".")
ShowMessage("Taken " & p.Item.OneLineName() & " from " & p.GetDisplayName() & ".")
Dim ItemID As String
If p.Item.IsGameModeItem Then
ItemID = p.Item.gmID
@ -835,7 +835,7 @@ Public Class PartyScreen
End If
Core.Player.Inventory.AddItem(ReItemID, 1)
message = "Switched " & p.GetDisplayName() & "'s " & i.Name & " with a " & reItem.Name & "."
message = "Switched " & p.GetDisplayName() & "'s " & i.Name & " with a " & reItem.OneLineName() & "."
End If
Else
message = "Gave " & p.GetDisplayName() & " a " & i.Name & "."

View File

@ -1678,9 +1678,9 @@
Dim Message As String = ""
If Amount = 1 Then
Message = "Received the~" & Item.Name & ".*" & Core.Player.Name & " stored it in the~" & Item.ItemType.ToString() & " pocket."
Message = "Received the~" & Item.OneLineName() & ".*" & Core.Player.Name & " stored it in the~" & Item.ItemType.ToString() & " pocket."
Else
Message = "Received " & Amount & "~" & Item.PluralName & ".*" & Core.Player.Name & " stored them~in the " & Item.ItemType.ToString() & " pocket."
Message = "Received " & Amount & "~" & Item.OneLinePluralName() & ".*" & Core.Player.Name & " stored them~in the " & Item.ItemType.ToString() & " pocket."
End If
Core.Player.Inventory.AddItem(ItemID, Amount)
@ -1700,9 +1700,9 @@
Dim Message As String = ""
If Amount = 1 Then
Message = "<playername> handed over the~" & Item.Name & "!"
Message = "<playername> handed over the~" & Item.OneLineName() & "!"
Else
Message = "<playername> handed over the~" & Item.PluralName & "!"
Message = "<playername> handed over the~" & Item.OneLinePluralName() & "!"
End If
Core.Player.Inventory.RemoveItem(ItemID, Amount)

View File

@ -76,9 +76,9 @@
If showMessage = True Then
Dim Message As String = ""
If amount = 1 Then
Message = "<playername> handed over the~" & Item.Name & "!"
Message = "<playername> handed over the~" & Item.OneLineName() & "!"
Else
Message = "<playername> handed over the~" & Item.PluralName & "!"
Message = "<playername> handed over the~" & Item.OneLinePluralName() & "!"
End If
Screen.TextBox.reDelay = 0.0F
@ -110,9 +110,9 @@
Dim Amount As Integer = int(argument.GetSplit(1))
If Not item Is Nothing Then
Dim receiveString As String = Localization.GetString("item_received_single", "Received the~") & item.Name.Replace("~", " ") & ".*"
Dim receiveString As String = Localization.GetString("item_received_single", "Received the~") & item.OneLineName() & ".*"
If Amount > 1 Then
receiveString = Localization.GetString("item_received_multiple", "Received") & " " & Amount & "~" & item.PluralName.Replace("~", " ") & ".*"
receiveString = Localization.GetString("item_received_multiple", "Received") & " " & Amount & "~" & item.OneLinePluralName() & ".*"
End If
SoundManager.PlaySound("Receive_Item", True)

View File

@ -27,9 +27,9 @@
If argument.Contains(",") Then
Select Case argument.GetSplit(1).ToLower()
Case "p", "plural"
Return Item.GetItemByID(ItemID).PluralName
Return Item.GetItemByID(ItemID).OneLinePluralName()
Case "s", "singular"
Return Item.GetItemByID(ItemID).Name
Return Item.GetItemByID(ItemID).OneLineName()
End Select
End If