diff --git a/P3D/Battle/BattleSystemV2/BattleCalculation.vb b/P3D/Battle/BattleSystemV2/BattleCalculation.vb
index c72f3a861..61c76e6de 100644
--- a/P3D/Battle/BattleSystemV2/BattleCalculation.vb
+++ b/P3D/Battle/BattleSystemV2/BattleCalculation.vb
@@ -1297,7 +1297,7 @@
If Attack.Type.Type = Element.Types.Flying Then
IT = 1.2F
End If
- Case 88, 273 'Silver powder, Insect Plate
+ Case 88, 273 'Silver Powder, Insect Plate
If Attack.Type.Type = Element.Types.Bug Then
IT = 1.2F
End If
@@ -1313,6 +1313,138 @@
If Attack.Type.Type = Element.Types.Psychic Then
IT = 1.2F
End If
+ Case 90 'Silk Scarf
+ If Attack.Type.Type = Element.Types.Normal Then
+ IT = 1.2F
+ End If
+ End Select
+ Select Case p.Item.ID
+ Case 635 'Fighting Gem
+ If Attack.Type.Type = Element.Types.Fighting Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:fighting gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Fighting Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 644 'Dark Gem
+ If Attack.Type.Type = Element.Types.Dark Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:dark gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Dark Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 630 'Fire Gem
+ If Attack.Type.Type = Element.Types.Fire Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:fire gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Fire Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 643 'Dragon Gem
+ If Attack.Type.Type = Element.Types.Dragon Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:dragon gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Dragon Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 641 'Rock Gem
+ If Attack.Type.Type = Element.Types.Rock Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:rock gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Rock Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 632 'Electric Gem
+ If Attack.Type.Type = Element.Types.Electric Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:electric gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Electric Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 645 'Steel Gem
+ If Attack.Type.Type = Element.Types.Steel Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:steel gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Steel Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 633 'Grass Gem
+ If Attack.Type.Type = Element.Types.Grass Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:grass gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Grass Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 631 'Water Gem
+ If Attack.Type.Type = Element.Types.Water Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:water gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Water Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 634 'Ice Gem
+ If Attack.Type.Type = Element.Types.Ice Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:ice gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Ice Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 647 'Fairy Gem
+ If Attack.Type.Type = Element.Types.Fairy Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:fairy gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Fairy Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 636 'Poison Gem
+ If Attack.Type.Type = Element.Types.Poison Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:poison gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Poison Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 638 'Flying Gem
+ If Attack.Type.Type = Element.Types.Flying Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:flying gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Flying Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 640 'Bug Gem
+ If Attack.Type.Type = Element.Types.Bug Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:bug gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Bug Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 637 'Ground Gem
+ If Attack.Type.Type = Element.Types.Ground Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:ground gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Ground Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 642 'Ghost Gem
+ If Attack.Type.Type = Element.Types.Ghost Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:ghost gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Ghost Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 639 'Psychic Gem
+ If Attack.Type.Type = Element.Types.Psychic Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:psychic gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Psychic Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
+ Case 646 'Normal Gem
+ If Attack.Type.Type = Element.Types.Normal Then
+ If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:normal gem") = True Then
+ BattleScreen.BattleQuery.Add(New TextQueryObject("The Normal Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
+ IT = 1.3F
+ End If
+ End If
End Select
End If
'CHG (If used Charge)
diff --git a/P3D/Content/Data/maps/cerulean/main.dat b/P3D/Content/Data/maps/cerulean/main.dat
index 98726e0b6..110295fa9 100644
Binary files a/P3D/Content/Data/maps/cerulean/main.dat and b/P3D/Content/Data/maps/cerulean/main.dat differ
diff --git a/P3D/Content/Items/ItemSheet.png b/P3D/Content/Items/ItemSheet.png
index 99c071db5..9d6339450 100644
Binary files a/P3D/Content/Items/ItemSheet.png and b/P3D/Content/Items/ItemSheet.png differ
diff --git a/P3D/Content/Items/Memories.png b/P3D/Content/Items/Memories.png
index 9353fc4be..1a7eb2cfd 100644
Binary files a/P3D/Content/Items/Memories.png and b/P3D/Content/Items/Memories.png differ
diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj
index 674a9a36a..dd9da8942 100644
--- a/P3D/P3D.vbproj
+++ b/P3D/P3D.vbproj
@@ -26192,6 +26192,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -26205,6 +26223,7 @@
+
diff --git a/P3D/Pokemon/Items/GemItem.vb b/P3D/Pokemon/Items/GemItem.vb
new file mode 100644
index 000000000..ab3095602
--- /dev/null
+++ b/P3D/Pokemon/Items/GemItem.vb
@@ -0,0 +1,38 @@
+Namespace Items
+
+ '''
+ ''' The base item for all elemental gems.
+ '''
+ Public MustInherit Class GemItem
+
+ Inherits Item
+
+ Public Overrides ReadOnly Property CanBeUsed As Boolean = False
+ Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
+ Public Overrides ReadOnly Property ItemType As ItemTypes = ItemTypes.Standard
+ Public Overrides ReadOnly Property Description As String
+ Public Overrides ReadOnly Property PokeDollarPrice As Integer = 200
+
+ Public Sub New(ByVal Type As Element.Types)
+ Description = "Increases the power of the holder's first " & Type.ToString() & "-type move by 30%, and is consumed after use."
+ _textureSource = "Items\Gems"
+ _textureRectangle = GetTextureRectangle(Type)
+ End Sub
+
+ Private Function GetTextureRectangle(ByVal Type As Element.Types) As Rectangle
+ Dim typeArray As List(Of Element.Types) = {Element.Types.Bug, Element.Types.Dark, Element.Types.Dragon, Element.Types.Electric, Element.Types.Fairy, Element.Types.Fighting, Element.Types.Fire, Element.Types.Flying, Element.Types.Ghost, Element.Types.Grass, Element.Types.Ground, Element.Types.Ice, Element.Types.Poison, Element.Types.Psychic, Element.Types.Rock, Element.Types.Steel, Element.Types.Water, Element.Types.Normal}.ToList()
+ Dim i As Integer = typeArray.IndexOf(Type)
+
+ Dim x As Integer = i
+ Dim y As Integer = 0
+ While x > 4
+ x -= 5
+ y += 1
+ End While
+
+ Return New Rectangle(x * 24, y * 24, 24, 24)
+ End Function
+
+ End Class
+
+End Namespace
\ No newline at end of file
diff --git a/P3D/Pokemon/Items/Gems/BugGem.vb b/P3D/Pokemon/Items/Gems/BugGem.vb
new file mode 100644
index 000000000..78699e847
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/BugGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+ -
+ Public Class BugGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Bug)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/DarkGem.vb b/P3D/Pokemon/Items/Gems/DarkGem.vb
new file mode 100644
index 000000000..63fbb407c
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/DarkGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class DarkGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Dark)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/DragonGem.vb b/P3D/Pokemon/Items/Gems/DragonGem.vb
new file mode 100644
index 000000000..bf179af1b
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/DragonGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class DragonGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Dragon)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/ElectricGem.vb b/P3D/Pokemon/Items/Gems/ElectricGem.vb
new file mode 100644
index 000000000..fbd537f45
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/ElectricGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class ElectricGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Electric)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/FairyGem.vb b/P3D/Pokemon/Items/Gems/FairyGem.vb
new file mode 100644
index 000000000..2c344ee61
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/FairyGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class FairyGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Fairy)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/FightingGem.vb b/P3D/Pokemon/Items/Gems/FightingGem.vb
new file mode 100644
index 000000000..4ddd8667a
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/FightingGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class FightingGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Fighting)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/FireGem.vb b/P3D/Pokemon/Items/Gems/FireGem.vb
new file mode 100644
index 000000000..1024ef29e
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/FireGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class FireGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Fire)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/FlyingGem.vb b/P3D/Pokemon/Items/Gems/FlyingGem.vb
new file mode 100644
index 000000000..bafbf206c
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/FlyingGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class FlyingGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Flying)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/GhostGem.vb b/P3D/Pokemon/Items/Gems/GhostGem.vb
new file mode 100644
index 000000000..845fb90f5
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/GhostGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class GhostGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Ghost)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/GrassGem.vb b/P3D/Pokemon/Items/Gems/GrassGem.vb
new file mode 100644
index 000000000..380ed9d47
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/GrassGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class GrassGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Grass)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/GroundGem.vb b/P3D/Pokemon/Items/Gems/GroundGem.vb
new file mode 100644
index 000000000..275a953e6
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/GroundGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class GroundGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Ground)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/IceGem.vb b/P3D/Pokemon/Items/Gems/IceGem.vb
new file mode 100644
index 000000000..a7574dc9b
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/IceGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class IceGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Ice)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/NormalGem.vb b/P3D/Pokemon/Items/Gems/NormalGem.vb
new file mode 100644
index 000000000..f5b550013
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/NormalGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class NormalGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Normal)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/PoisonGem.vb b/P3D/Pokemon/Items/Gems/PoisonGem.vb
new file mode 100644
index 000000000..dc3bc2f5c
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/PoisonGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class PoisonGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Poison)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/PsychicGem.vb b/P3D/Pokemon/Items/Gems/PsychicGem.vb
new file mode 100644
index 000000000..3ad578db7
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/PsychicGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class PsychicGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Psychic)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/RockGem.vb b/P3D/Pokemon/Items/Gems/RockGem.vb
new file mode 100644
index 000000000..337a1214e
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/RockGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class RockGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Rock)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/SteelGem.vb b/P3D/Pokemon/Items/Gems/SteelGem.vb
new file mode 100644
index 000000000..46b3f4be8
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/SteelGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class SteelGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Steel)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/Gems/WaterGem.vb b/P3D/Pokemon/Items/Gems/WaterGem.vb
new file mode 100644
index 000000000..060dd59d8
--- /dev/null
+++ b/P3D/Pokemon/Items/Gems/WaterGem.vb
@@ -0,0 +1,14 @@
+Namespace Items.Gems
+
+
-
+ Public Class WaterGem
+
+ Inherits GemItem
+
+ Public Sub New()
+ MyBase.New(Element.Types.Water)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/P3D/Pokemon/Items/PlateItem.vb b/P3D/Pokemon/Items/PlateItem.vb
index a50240633..85816c027 100644
--- a/P3D/Pokemon/Items/PlateItem.vb
+++ b/P3D/Pokemon/Items/PlateItem.vb
@@ -14,7 +14,7 @@ Namespace Items
Public Overrides ReadOnly Property PokeDollarPrice As Integer = 1000
Public Sub New(ByVal Type As Element.Types)
- Description = "An item to be held by a Pokémon. It's a stone tablet that boosts the power of " & Type.ToString() & "-type moves."
+ Description = "An item to be held by a Pokémon. It's a stone tablet that boosts the power of " & Type.ToString() & "-type moves."
_textureSource = "Items\Plates"
_textureRectangle = GetTextureRectangle(Type)
End Sub
diff --git a/P3D/Pokemon/Items/_itemList.txt b/P3D/Pokemon/Items/_itemList.txt
index f5abdc7ad..81a6b552c 100644
Binary files a/P3D/Pokemon/Items/_itemList.txt and b/P3D/Pokemon/Items/_itemList.txt differ