diff --git a/2.5DHero/2.5DHero/2.5DHero.vbproj b/2.5DHero/2.5DHero/2.5DHero.vbproj
index e59ca5330..53fc012d7 100644
--- a/2.5DHero/2.5DHero/2.5DHero.vbproj
+++ b/2.5DHero/2.5DHero/2.5DHero.vbproj
@@ -1510,6 +1510,7 @@
+
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/DireHit.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/DireHit.vb
index c90d8396c..b6a0109e8 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/DireHit.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/DireHit.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class DireHit
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 650
+ Public Overrides ReadOnly Property Description As String = "An item that raises the critical-hit ratio greatly. It can be used only once and wears off if the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("Dire Hit", 650, ItemTypes.BattleItems, 44, 1, 0, New Rectangle(480, 24, 24, 24), "An item that raises the critical-hit ratio greatly. It can be used only once and wears off if the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(480, 24, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/GuardSpec.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/GuardSpec.vb
index b81a15d2f..b45ff7358 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/GuardSpec.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/GuardSpec.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class GuardSpec
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 700
+ Public Overrides ReadOnly Property Description As String = "An item that prevents stat reduction among the Trainer's party Pokémon for five turns after it is used in battle."
Public Sub New()
- MyBase.New("Guard Spec.", 700, ItemTypes.BattleItems, 68, 1, 0, New Rectangle(408, 24, 24, 24), "An item that prevents stat reduction among the Trainer's party Pokémon for five turns after it is used in battle.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(408, 24, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAccuracy.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAccuracy.vb
index 944ddde7d..cf4de0adb 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAccuracy.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAccuracy.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class XAccuracy
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 950
+ Public Overrides ReadOnly Property Description As String = "An item that boosts the accuracy of a Pokémon during a battle. It wears off once the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("X Accuracy", 950, ItemTypes.BattleItems, 33, 1, 0, New Rectangle(216, 24, 24, 24), "An item that boosts the accuracy of a Pokémon during a battle. It wears off once the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(216, 24, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAttack.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAttack.vb
index 0fd9acd18..730ae6f03 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAttack.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XAttack.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class XAttack
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 500
+ Public Overrides ReadOnly Property Description As String = "An item that boosts the Attack stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("X Attack", 500, ItemTypes.BattleItems, 49, 1, 0, New Rectangle(72, 48, 24, 24), "An item that boosts the Attack stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(72, 48, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XDefend.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XDefend.vb
index 9a3f3b623..0eb3e9557 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XDefend.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XDefend.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class XDefend
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 550
+ Public Overrides ReadOnly Property Description As String = "An item that boosts the Defense stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("X Defense", 550, ItemTypes.BattleItems, 51, 1, 0, New Rectangle(96, 48, 24, 24), "An item that boosts the Defense stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(96, 48, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XItem.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XItem.vb
new file mode 100644
index 000000000..9065bd6aa
--- /dev/null
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XItem.vb
@@ -0,0 +1,13 @@
+Namespace Items.XItems
+ Public MustInherit Class XItem
+
+ Inherits Item
+
+ Public Overrides ReadOnly Property CanBeUsed As Boolean = False
+ Public Overrides ReadOnly Property BattleSelectPokemon As Boolean = True
+ Public Overrides ReadOnly Property ItemType As ItemTypes = ItemTypes.BattleItems
+
+ End Class
+
+End Namespace
+
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpAtk.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpAtk.vb
index 62c6772d1..e05dc1347 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpAtk.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpAtk.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class XSpecial
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 350
+ Public Overrides ReadOnly Property Description As String = "An item that boosts the Sp. Atk stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("X Sp. Atk.", 350, ItemTypes.BattleItems, 53, 1, 0, New Rectangle(144, 48, 24, 24), "An item that boosts the Sp. Atk stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(144, 48, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpDef.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpDef.vb
index bdc67643b..67a6424a9 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpDef.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpDef.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class XSpDef
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 350
+ Public Overrides ReadOnly Property Description As String = "An item that boosts the Sp. Def stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("X Sp. Def", 350, ItemTypes.BattleItems, 50, 1, 0, New Rectangle(144, 192, 24, 24), "An item that boosts the Sp. Def stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(144, 192, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean
diff --git a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpeed.vb b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpeed.vb
index 71faadad2..da74c0b8d 100644
--- a/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpeed.vb
+++ b/2.5DHero/2.5DHero/Pokemon/Items/XItems/XSpeed.vb
@@ -3,17 +3,13 @@ Namespace Items.XItems
-
Public Class XSpeed
- Inherits Item
+ Inherits XItem
+
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 350
+ Public Overrides ReadOnly Property Description As String = "An item that boosts the Speed stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn."
Public Sub New()
- MyBase.New("X Speed", 350, ItemTypes.BattleItems, 52, 1, 0, New Rectangle(120, 48, 24, 24), "An item that boosts the Speed stat of a Pokémon during a battle. It wears off once the Pokémon is withdrawn.")
-
- Me._canBeUsed = False
- Me._canBeUsedInBattle = True
- Me._canBeTraded = True
- Me._canBeHold = True
-
- Me._requiresPokemonSelectInBattle = False
+ _textureRectangle = New Rectangle(120, 48, 24, 24)
End Sub
Public Overrides Function UseOnPokemon(PokeIndex As Integer) As Boolean