diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb
index 07b311e05..9e694237f 100644
--- a/P3D/Battle/BattleSystemV2/Battle.vb
+++ b/P3D/Battle/BattleSystemV2/Battle.vb
@@ -1894,7 +1894,7 @@
If BattleScreen.FieldEffects.CanUseAbility(Not own, BattleScreen) = True Then
moveWorks = False
ChangeCameraAngle(2, own, BattleScreen)
- If op.StatAttack = 6 Then
+ If op.StatSpAttack = 6 Then
BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & "'s Storm Drain made " & moveUsed.Name & " useless!"))
Else
RaiseStat(Not own, Not own, BattleScreen, "Special Attack", 1, op.GetDisplayName() & "'s Storm Drain absorbed the attack!", "stormdrain")
@@ -2377,6 +2377,10 @@
If moveUsed.GetAttackType(own, BattleScreen).Type = Element.Types.Dark Then
RaiseStat(Not own, Not own, BattleScreen, "Attack", 1, op.GetDisplayName() & " became justified!", "justified")
End If
+ Case "steam engine"
+ If moveUsed.GetAttackType(own, BattleScreen).Type = Element.Types.Fire Or moveUsed.GetAttackType(own, BattleScreen).Type = Element.Types.Water Then
+ RaiseStat(Not own, Not own, BattleScreen, "Speed", 2, "", "steam engine")
+ End If
Case "rattled"
If moveUsed.GetAttackType(own, BattleScreen).Type = Element.Types.Dark Or moveUsed.GetAttackType(own, BattleScreen).Type = Element.Types.Bug Or moveUsed.GetAttackType(own, BattleScreen).Type = Element.Types.Ghost Then
RaiseStat(Not own, Not own, BattleScreen, "Speed", 1, op.GetDisplayName() & "'s Rattled affected it's clairaudience.", "rattled")
diff --git a/P3D/Content/Data/maps/diamonddive/exterior/end.dat b/P3D/Content/Data/maps/diamonddive/exterior/end.dat
index 20c0ecc3f..315d47f6e 100644
--- a/P3D/Content/Data/maps/diamonddive/exterior/end.dat
+++ b/P3D/Content/Data/maps/diamonddive/exterior/end.dat
@@ -1,5 +1,5 @@
{"Level"{LEV[{"Name"{str[Diamond Dive]}}{"MusicLoop"{str[ilex_forest]}}{"CurrentRegion"{str[Johto]}}]}}
-{"Actions"{LEV[{"CanTeleport"{bool[1]}}{"CanDig"{bool[0]}}{"CanFly"{bool[1]}}{"EnvironmentType"{int[0]}}{"Weather"{int[0]}}{"Lighting"{int[0]}}]}}
+{"Actions"{LEV[{"CanTeleport"{bool[1]}}{"CanDig"{bool[0]}}{"CanFly"{bool[1]}}{"EnvironmentType"{int[0]}}{"MapScript"{str[diamonddive\dianciemap]}}{"Weather"{int[0]}}{"Lighting"{int[0]}}]}}
Floor:
{"Floor"{ENT[{"SeasonTexture"{str[Grass]}}{"Size"{intArr[5,7]}}{"Position"{intArr[13,-4,21]}}{"TexturePath"{str[Routes]}}{"Texture"{rec[96,16,16,16]}}]}}
diff --git a/P3D/Content/Data/maps/poke/cherrygrove.poke b/P3D/Content/Data/maps/poke/cherrygrove.poke
index 700179d46..42fd63f5f 100644
--- a/P3D/Content/Data/maps/poke/cherrygrove.poke
+++ b/P3D/Content/Data/maps/poke/cherrygrove.poke
@@ -7,13 +7,13 @@ type=City
{1|636|1|-1|10,10}
{2|72|90|-1|15,24}
{2|73|10|-1|20,40}
-{3|98|15|-1|10,10}
+{3|116|15|-1|10,10}
{3|129|85|-1|10,10}
-{31|98|55|-1|20,20}
+{31|116|55|-1|20,20}
{31|129|35|-1|20,20}
{31|120|10|0|20,20}
{31|222|10|1,2,3|20,20}
-{32|98|60|-1|40,40}
-{32|99|10|-1|40,40}
+{32|116|60|-1|40,40}
+{32|117|10|-1|40,40}
{32|120|30|0|40,40}
{32|222|30|1,2,3|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/1f.poke b/P3D/Content/Data/maps/poke/diamonddive/1f.poke
new file mode 100644
index 000000000..eafaed5fb
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/1f.poke
@@ -0,0 +1,8 @@
+name=Diamond Dive
+type=Cave
+{0|19|5|-1|20,20}
+{0|20|30|-1|22,22}
+{0|41|30|-1|22,22}
+{0|42|20|-1|22,22}
+{0|74|10|-1|21,21}
+{0|95|5|-1|23,23}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/exterior/1.poke b/P3D/Content/Data/maps/poke/diamonddive/exterior/1.poke
new file mode 100644
index 000000000..e5d3850e5
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/exterior/1.poke
@@ -0,0 +1,25 @@
+name=Diamond Dive
+type=Cave
+{0|246|1|-1|20,20}
+{0|546|10|-1|33,42}
+{0|548|10|-1|33,42}
+{0|742|10|-1|27,32}
+{0|333|20|-1|27,32}
+{0|114|5|-1|33,37}
+{0|234|8|-1|29,36}
+{0|232|8|-1|41,46}
+{0|217|8|-1|41,46}
+{0|207|10|-1|37,42}
+{0|227|10|-1|37,42}
+{2|61|30|-1|36,42}
+{2|550|40|-1|35,49}
+{2|333|30|-1|27,32}
+{3|550|85|-1|10,10}
+{3|118|15|-1|10,10}
+{31|550|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|118|45|-1|20,20}
+{32|118|40|-1|40,40}
+{32|147|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|119|10|-1|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/exterior/2.poke b/P3D/Content/Data/maps/poke/diamonddive/exterior/2.poke
new file mode 100644
index 000000000..ca8bcea37
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/exterior/2.poke
@@ -0,0 +1,14 @@
+name=Diamond Dive
+type=Cave
+{2|61|30|-1|36,42}
+{2|550|40|-1|35,49}
+{2|333|30|-1|27,32}
+{3|550|85|-1|10,10}
+{3|118|15|-1|10,10}
+{31|550|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|118|45|-1|20,20}
+{32|118|40|-1|40,40}
+{32|147|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|119|10|-1|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/exterior/end.poke b/P3D/Content/Data/maps/poke/diamonddive/exterior/end.poke
new file mode 100644
index 000000000..ca8bcea37
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/exterior/end.poke
@@ -0,0 +1,14 @@
+name=Diamond Dive
+type=Cave
+{2|61|30|-1|36,42}
+{2|550|40|-1|35,49}
+{2|333|30|-1|27,32}
+{3|550|85|-1|10,10}
+{3|118|15|-1|10,10}
+{31|550|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|118|45|-1|20,20}
+{32|118|40|-1|40,40}
+{32|147|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|119|10|-1|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/1.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/1.poke
new file mode 100644
index 000000000..28603ee56
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/1.poke
@@ -0,0 +1,16 @@
+name=Diamond Dive
+type=Cave
+{0|41|15|-1|23,32}
+{0|42|15|-1|28,39}
+{0|75|20|-1|35,42}
+{0|95|5|-1|37,43}
+{0|621|5|-1|40,46}
+{0|703|6|-1|33,39}
+{0|838|15|-1|34,42}
+{0|302|2|-1|38,45}
+{0|303|2|-1|38,45}
+{0|525|15|-1|36,41}
+{5|74|35|-1|25,25}
+{5|95|25|-1|25,25}
+{5|524|35|-1|25,25}
+{5|703|5|-1|25,25}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/2.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/2.poke
new file mode 100644
index 000000000..28603ee56
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/2.poke
@@ -0,0 +1,16 @@
+name=Diamond Dive
+type=Cave
+{0|41|15|-1|23,32}
+{0|42|15|-1|28,39}
+{0|75|20|-1|35,42}
+{0|95|5|-1|37,43}
+{0|621|5|-1|40,46}
+{0|703|6|-1|33,39}
+{0|838|15|-1|34,42}
+{0|302|2|-1|38,45}
+{0|303|2|-1|38,45}
+{0|525|15|-1|36,41}
+{5|74|35|-1|25,25}
+{5|95|25|-1|25,25}
+{5|524|35|-1|25,25}
+{5|703|5|-1|25,25}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/3.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/3.poke
new file mode 100644
index 000000000..28603ee56
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/3.poke
@@ -0,0 +1,16 @@
+name=Diamond Dive
+type=Cave
+{0|41|15|-1|23,32}
+{0|42|15|-1|28,39}
+{0|75|20|-1|35,42}
+{0|95|5|-1|37,43}
+{0|621|5|-1|40,46}
+{0|703|6|-1|33,39}
+{0|838|15|-1|34,42}
+{0|302|2|-1|38,45}
+{0|303|2|-1|38,45}
+{0|525|15|-1|36,41}
+{5|74|35|-1|25,25}
+{5|95|25|-1|25,25}
+{5|524|35|-1|25,25}
+{5|703|5|-1|25,25}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/4.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/4.poke
new file mode 100644
index 000000000..d1dda70d9
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/4.poke
@@ -0,0 +1,29 @@
+name=Diamond Dive
+type=Cave
+{0|41|15|-1|23,32}
+{0|42|15|-1|28,39}
+{0|75|20|-1|35,42}
+{0|95|5|-1|37,43}
+{0|621|5|-1|40,46}
+{0|703|6|-1|33,39}
+{0|838|15|-1|34,42}
+{0|302|2|-1|38,45}
+{0|303|2|-1|38,45}
+{0|525|15|-1|36,41}
+{2|550|30|-1|33,42}
+{2|41|20|-1|23,32}
+{2|42|20|-1|28,39}
+{2|118|30|-1|28,37}
+{3|550|85|-1|10,10}
+{3|116|15|-1|10,10}
+{31|116|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|550|45|-1|20,20}
+{32|117|40|-1|40,40}
+{32|116|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|147|10|-1|40,40}
+{5|74|35|-1|25,25}
+{5|95|25|-1|25,25}
+{5|524|35|-1|25,25}
+{5|703|5|-1|25,25}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/5.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/5.poke
new file mode 100644
index 000000000..d1dda70d9
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/5.poke
@@ -0,0 +1,29 @@
+name=Diamond Dive
+type=Cave
+{0|41|15|-1|23,32}
+{0|42|15|-1|28,39}
+{0|75|20|-1|35,42}
+{0|95|5|-1|37,43}
+{0|621|5|-1|40,46}
+{0|703|6|-1|33,39}
+{0|838|15|-1|34,42}
+{0|302|2|-1|38,45}
+{0|303|2|-1|38,45}
+{0|525|15|-1|36,41}
+{2|550|30|-1|33,42}
+{2|41|20|-1|23,32}
+{2|42|20|-1|28,39}
+{2|118|30|-1|28,37}
+{3|550|85|-1|10,10}
+{3|116|15|-1|10,10}
+{31|116|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|550|45|-1|20,20}
+{32|117|40|-1|40,40}
+{32|116|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|147|10|-1|40,40}
+{5|74|35|-1|25,25}
+{5|95|25|-1|25,25}
+{5|524|35|-1|25,25}
+{5|703|5|-1|25,25}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/6.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/6.poke
new file mode 100644
index 000000000..f98d162fe
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/6.poke
@@ -0,0 +1,15 @@
+name=Diamond Dive
+type=Cave
+{2|550|30|-1|33,42}
+{2|41|20|-1|23,32}
+{2|42|20|-1|28,39}
+{2|118|30|-1|28,37}
+{3|550|85|-1|10,10}
+{3|116|15|-1|10,10}
+{31|116|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|550|45|-1|20,20}
+{32|117|40|-1|40,40}
+{32|116|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|147|10|-1|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/interior/7.poke b/P3D/Content/Data/maps/poke/diamonddive/interior/7.poke
new file mode 100644
index 000000000..d1dda70d9
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/interior/7.poke
@@ -0,0 +1,29 @@
+name=Diamond Dive
+type=Cave
+{0|41|15|-1|23,32}
+{0|42|15|-1|28,39}
+{0|75|20|-1|35,42}
+{0|95|5|-1|37,43}
+{0|621|5|-1|40,46}
+{0|703|6|-1|33,39}
+{0|838|15|-1|34,42}
+{0|302|2|-1|38,45}
+{0|303|2|-1|38,45}
+{0|525|15|-1|36,41}
+{2|550|30|-1|33,42}
+{2|41|20|-1|23,32}
+{2|42|20|-1|28,39}
+{2|118|30|-1|28,37}
+{3|550|85|-1|10,10}
+{3|116|15|-1|10,10}
+{31|116|45|-1|20,20}
+{31|147|10|-1|20,20}
+{31|550|45|-1|20,20}
+{32|117|40|-1|40,40}
+{32|116|20|-1|40,40}
+{32|550|30|-1|40,40}
+{32|147|10|-1|40,40}
+{5|74|35|-1|25,25}
+{5|95|25|-1|25,25}
+{5|524|35|-1|25,25}
+{5|703|5|-1|25,25}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/underwater/1.poke b/P3D/Content/Data/maps/poke/diamonddive/underwater/1.poke
new file mode 100644
index 000000000..2a044fe36
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/underwater/1.poke
@@ -0,0 +1,12 @@
+name=Diamond Dive
+type=Cave
+{0|170|30|-1|39,44}
+{0|688|30|-1|39,44}
+{0|690|30|-1|39,44}
+{0|222|5|-1|32,37}
+{0|147|5|-1|32,37}
+
+{2|369|5|-1|45,47}
+{2|602|10|-1|32,39}
+{2|116|30|-1|28,37}
+{2|117|10|-1|35,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/underwater/2.poke b/P3D/Content/Data/maps/poke/diamonddive/underwater/2.poke
new file mode 100644
index 000000000..2a044fe36
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/underwater/2.poke
@@ -0,0 +1,12 @@
+name=Diamond Dive
+type=Cave
+{0|170|30|-1|39,44}
+{0|688|30|-1|39,44}
+{0|690|30|-1|39,44}
+{0|222|5|-1|32,37}
+{0|147|5|-1|32,37}
+
+{2|369|5|-1|45,47}
+{2|602|10|-1|32,39}
+{2|116|30|-1|28,37}
+{2|117|10|-1|35,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/underwater/3.poke b/P3D/Content/Data/maps/poke/diamonddive/underwater/3.poke
new file mode 100644
index 000000000..2a044fe36
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/underwater/3.poke
@@ -0,0 +1,12 @@
+name=Diamond Dive
+type=Cave
+{0|170|30|-1|39,44}
+{0|688|30|-1|39,44}
+{0|690|30|-1|39,44}
+{0|222|5|-1|32,37}
+{0|147|5|-1|32,37}
+
+{2|369|5|-1|45,47}
+{2|602|10|-1|32,39}
+{2|116|30|-1|28,37}
+{2|117|10|-1|35,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/underwater/4.poke b/P3D/Content/Data/maps/poke/diamonddive/underwater/4.poke
new file mode 100644
index 000000000..2a044fe36
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/underwater/4.poke
@@ -0,0 +1,12 @@
+name=Diamond Dive
+type=Cave
+{0|170|30|-1|39,44}
+{0|688|30|-1|39,44}
+{0|690|30|-1|39,44}
+{0|222|5|-1|32,37}
+{0|147|5|-1|32,37}
+
+{2|369|5|-1|45,47}
+{2|602|10|-1|32,39}
+{2|116|30|-1|28,37}
+{2|117|10|-1|35,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/diamonddive/underwater/5.poke b/P3D/Content/Data/maps/poke/diamonddive/underwater/5.poke
new file mode 100644
index 000000000..2a044fe36
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/diamonddive/underwater/5.poke
@@ -0,0 +1,12 @@
+name=Diamond Dive
+type=Cave
+{0|170|30|-1|39,44}
+{0|688|30|-1|39,44}
+{0|690|30|-1|39,44}
+{0|222|5|-1|32,37}
+{0|147|5|-1|32,37}
+
+{2|369|5|-1|45,47}
+{2|602|10|-1|32,39}
+{2|116|30|-1|28,37}
+{2|117|10|-1|35,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/routes/route23.poke b/P3D/Content/Data/maps/poke/routes/route23.poke
new file mode 100644
index 000000000..917472089
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/routes/route23.poke
@@ -0,0 +1,29 @@
+name=Route 23
+type=RoughTerrain
+{0|28|30|1,2,3|28,28}
+{0|77|20|1,2,3|32,32}
+{0|24|5|1,2,3|30,30}
+{0|114|10|1,2,3|28,31}
+{0|84|25|1,2,3|28,30}
+{0|85|5|1,2,3|30,30}
+{0|195|10|0|30,30}
+{0|215|10|0|28,30}
+{0|20|10|1,2,3|28,30}
+{0|20|40|0|28,30}
+{0|164|40|0|28,32}
+{1|21|65|-1|10,10}
+{1|191|20|-1|10,10}
+{1|23|15|-1|10,10}
+{2|72|90|-1|15,24}
+{2|73|10|-1|20,40}
+{3|72|15|-1|10,10}
+{3|129|85|-1|10,10}
+{3|72|15|-1|10,10}
+{31|72|35|-1|20,20}
+{31|90|10|-1|20,20}
+{31|129|35|-1|20,20}
+{31|170|20|-1|20,20}
+{32|170|40|-1|40,40}
+{32|73|20|-1|40,40}
+{32|90|30|-1|40,40}
+{32|171|10|-1|40,40}
diff --git a/P3D/Content/Data/maps/poke/routes/route49.poke b/P3D/Content/Data/maps/poke/routes/route49.poke
new file mode 100644
index 000000000..face6b9a8
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/routes/route49.poke
@@ -0,0 +1,14 @@
+name=Route 49
+type=WatersEdge
+{2|72|90|-1|15,24}
+{2|73|10|-1|20,40}
+{3|116|15|-1|10,10}
+{3|129|85|-1|10,10}
+{31|116|55|-1|20,20}
+{31|129|35|-1|20,20}
+{31|120|10|0|20,20}
+{31|222|10|1,2,3|20,20}
+{32|116|60|-1|40,40}
+{32|117|10|-1|40,40}
+{32|120|30|0|40,40}
+{32|222|30|1,2,3|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Data/maps/poke/routes/route50.poke b/P3D/Content/Data/maps/poke/routes/route50.poke
new file mode 100644
index 000000000..3cd87e05c
--- /dev/null
+++ b/P3D/Content/Data/maps/poke/routes/route50.poke
@@ -0,0 +1,26 @@
+name=Route 50
+type=WatersEdge
+{0|24|30|1,2,3|28,28}
+{0|77|5|1,2,3|32,32}
+{0|84|40|1,2,3|28,30}
+{0|20|20|-1|30,30}
+{0|195|40|0|28,30}
+{0|85|5|1,2,3|30,30}
+{0|164|40|0|28,32}
+{1|102|20|-1|10,10}
+{1|163|50|-1|10,10}
+{1|165|10|-1|10,10}
+{1|167|10|-1|10,10}
+{1|204|10|-1|10,10}
+{2|72|90|-1|15,24}
+{2|73|10|-1|20,40}
+{3|116|15|-1|10,10}
+{3|129|85|-1|10,10}
+{31|116|55|-1|20,20}
+{31|129|35|-1|20,20}
+{31|120|10|0|20,20}
+{31|222|10|1,2,3|20,20}
+{32|116|60|-1|40,40}
+{32|117|10|-1|40,40}
+{32|120|30|0|40,40}
+{32|222|30|1,2,3|40,40}
\ No newline at end of file
diff --git a/P3D/Content/Pokemon/Data/742.dat b/P3D/Content/Pokemon/Data/742.dat
new file mode 100644
index 000000000..1dc290d37
--- /dev/null
+++ b/P3D/Content/Pokemon/Data/742.dat
@@ -0,0 +1,50 @@
+Name|Cutiefly
+Number|742
+ExperienceType|1
+BaseExperience|61
+Type1|Bug
+Type2|Fairy
+CatchRate|190
+BaseFriendship|70
+EggGroup1|Bug
+EggGroup2|Fairy
+BaseEggSteps|5140
+EggPokemon|742
+Devolution|0
+IsGenderLess|0
+IsMale|50
+Ability1|118
+Ability2|19
+HiddenAbility|175
+EggMoves|226,285,516,564,585,597,600,683
+Machines|174,92,244,237,241,230,173,182,202,203,218,216,94,104,207,214,129,138,156,168,210,13,18,6,99,72,100,102,115,117,118,164,347,331,113,219,332,263,290,285,355,412,318,432,404,363,365,369,477,496,502,512,522,611,605,590,141,270,148
+BaseHP|40
+BaseAttack|45
+BaseDefense|40
+BaseSpAttack|55
+BaseSpDefense|40
+BaseSpeed|84
+FPHP|0
+FPAttack|0
+FPDefense|0
+FPSpAttack|0
+FPSpDefense|0
+FPSpeed|1
+CanFly|1
+CanSwim|0
+Pokedex|It feeds on the nectar and pollen of flowers. Because it's able to sense auras, it can identify which flowers are about to bloom.\Bee Fly Pokémon\0.2\0.1\0,148,0
+Scale|0.88
+Move|1,71
+Move|4,584
+Move|7,78
+Move|10,522
+Move|13,415
+Move|16,577
+Move|21,230
+Move|26,405
+Move|31,605
+Move|36,483
+Move|41,312
+Item|5,253
+EvolutionCondition|743,Level,25,Level
+TradeValue|30
diff --git a/P3D/Content/Pokemon/Data/743.dat b/P3D/Content/Pokemon/Data/743.dat
new file mode 100644
index 000000000..d2a8be4ee
--- /dev/null
+++ b/P3D/Content/Pokemon/Data/743.dat
@@ -0,0 +1,51 @@
+Name|Ribombee
+Number|743
+ExperienceType|1
+BaseExperience|162
+Type1|Bug
+Type2|Fairy
+CatchRate|75
+BaseFriendship|70
+EggGroup1|Bug
+EggGroup2|Fairy
+BaseEggSteps|5140
+EggPokemon|742
+Devolution|742
+IsGenderLess|0
+IsMale|50
+Ability1|118
+Ability2|19
+HiddenAbility|175
+EggMoves|226,285,516,564,585,597,600,683
+Machines|174,92,244,237,241,230,173,182,202,203,218,76,216,94,247,104,207,214,129,138,156,168,210,13,18,6,99,72,100,102,115,117,118,164,347,331,113,219,332,263,290,285,355,412,374,318,432,404,363,365,369,477,496,502,512,522,611,267,605,590,141,270,583,15,148
+BaseHP|60
+BaseAttack|55
+BaseDefense|60
+BaseSpAttack|95
+BaseSpDefense|70
+BaseSpeed|124
+FPHP|0
+FPAttack|0
+FPDefense|0
+FPSpAttack|0
+FPSpDefense|0
+FPSpeed|2
+CanFly|1
+CanSwim|0
+Pokedex|It rolls up pollen into puffs. It makes many different varieties, some used as food and others used in battle.\Bee Fly Pokémon\0.5\0.2\0,148,0
+Scale|0.88
+Move|1,676
+Move|1,71
+Move|4,584
+Move|7,78
+Move|10,522
+Move|13,415
+Move|16,577
+Move|21,230
+Move|25,676
+Move|28,405
+Move|35,605
+Move|42,483
+Move|49,312
+Item|5,253
+TradeValue|50
diff --git a/P3D/Content/Pokemon/Data/837.dat b/P3D/Content/Pokemon/Data/837.dat
new file mode 100644
index 000000000..02da63a34
--- /dev/null
+++ b/P3D/Content/Pokemon/Data/837.dat
@@ -0,0 +1,48 @@
+Name|Rolycoly
+Number|837
+ExperienceType|2
+BaseExperience|48
+Type1|Rock
+Type2|
+CatchRate|255
+BaseFriendship|50
+EggGroup1|Mineral
+EggGroup2|
+BaseEggSteps|3855
+EggPokemon|837
+Devolution|0
+IsGenderLess|0
+IsMale|50
+Ability1|243
+Ability2|85
+HiddenAbility|18
+EggMoves|153,335,189
+Machines|29,174,205,92,249,237,173,182,203,218,225,216,91,189,104,207,214,201,129,111,156,34,36,38,99,102,115,117,120,130,153,157,164,317,263,290,397,444,360,446,363,479,496,523,590,270,529,70,431
+BaseHP|30
+BaseAttack|40
+BaseDefense|50
+BaseSpAttack|40
+BaseSpDefense|50
+BaseSpeed|30
+FPHP|0
+FPAttack|0
+FPDefense|1
+FPSpAttack|0
+FPSpDefense|0
+FPSpeed|0
+CanFly|0
+CanSwim|0
+Pokedex|It can race around like a unicycle, even on rough, rocky terrain. Burning coal sustains it.\Coal Pokémon\12.0\0.3\0,148,0
+Scale|0.88
+Move|1,33
+Move|1,108
+Move|5,229
+Move|10,479
+Move|13,397
+Move|17,246
+Move|22,510
+Move|28,446
+Move|32,535
+Move|36,350
+TradeValue|50
+EvolutionCondition|838,Level,18,Level
diff --git a/P3D/Content/Pokemon/Data/838.dat b/P3D/Content/Pokemon/Data/838.dat
new file mode 100644
index 000000000..cb2d457f7
--- /dev/null
+++ b/P3D/Content/Pokemon/Data/838.dat
@@ -0,0 +1,51 @@
+Name|Carkol
+Number|838
+ExperienceType|2
+BaseExperience|144
+Type1|Rock
+Type2|Fire
+CatchRate|120
+BaseFriendship|50
+EggGroup1|Mineral
+EggGroup2|
+BaseEggSteps|3855
+EggPokemon|837
+Devolution|837
+IsGenderLess|0
+IsMale|50
+Ability1|243
+Ability2|85
+HiddenAbility|18
+EggMoves|153,335,189
+Machines|29,174,205,46,92,249,237,173,182,203,218,76,225,89,216,91,189,104,207,214,201,126,129,111,156,7,5,25,34,36,38,99,102,115,117,120,130,153,157,164,53,317,263,290,315,261,397,444,360,446,363,479,488,496,503,510,523,590,270,529,70,148,431
+BaseHP|80
+BaseAttack|60
+BaseDefense|90
+BaseSpAttack|60
+BaseSpDefense|70
+BaseSpeed|50
+FPHP|0
+FPAttack|0
+FPDefense|2
+FPSpAttack|0
+FPSpDefense|0
+FPSpeed|0
+CanFly|0
+CanSwim|0
+Pokedex|By rapidly rolling its legs, it can travel at over 18 mph. The temperature of the flames it breathes exceeds 1,800 degrees Fahrenheit.\Coal Pokémon\78.0\1.1\0,148,0
+Scale|1
+Move|1,488
+Move|1,33
+Move|1,108
+Move|1,229
+Move|1,479
+Move|13,397
+Move|17,246
+Move|18,488
+Move|25,510
+Move|31,446
+Move|37,535
+Move|42,350
+Move|49,682
+TradeValue|50
+EvolutionCondition|839,Level,34,Level
diff --git a/P3D/Content/Pokemon/Data/839.dat b/P3D/Content/Pokemon/Data/839.dat
new file mode 100644
index 000000000..f00407156
--- /dev/null
+++ b/P3D/Content/Pokemon/Data/839.dat
@@ -0,0 +1,51 @@
+Name|Coalossal
+Number|839
+ExperienceType|2
+BaseExperience|255
+Type1|Rock
+Type2|Fire
+CatchRate|45
+BaseFriendship|50
+EggGroup1|Mineral
+EggGroup2|
+BaseEggSteps|3855
+EggPokemon|837
+Devolution|838
+IsGenderLess|0
+IsMale|50
+Ability1|243
+Ability2|85
+HiddenAbility|18
+EggMoves|153,335,189
+Machines|29,174,205,46,92,249,237,173,182,203,218,76,225,89,216,91,189,104,207,214,201,126,129,111,156,7,5,25,34,36,38,99,90,102,115,117,120,130,153,157,164,53,317,263,290,315,261,397,444,360,446,363,479,488,496,503,510,523,590,270,529,70,148,431
+BaseHP|30
+BaseAttack|40
+BaseDefense|50
+BaseSpAttack|40
+BaseSpDefense|50
+BaseSpeed|30
+FPHP|0
+FPAttack|0
+FPDefense|3
+FPSpAttack|0
+FPSpDefense|0
+FPSpeed|0
+CanFly|0
+CanSwim|0
+Pokedex|While it's engaged in battle, its mountain of coal will burn bright red, sending off sparks that scorch the surrounding area.\Coal Pokémon\310.5\2.8\0,148,0
+Scale|1.20
+Move|1,749
+Move|1,488
+Move|1,33
+Move|1,108
+Move|1,229
+Move|1,479
+Move|13,397
+Move|17,246
+Move|25,510
+Move|31,446
+Move|34,749
+Move|39,535
+Move|46,350
+Move|55,682
+TradeValue|50
diff --git a/P3D/Content/Pokemon/Overworld/Normal/837.png b/P3D/Content/Pokemon/Overworld/Normal/837.png
new file mode 100644
index 000000000..9dab9b062
Binary files /dev/null and b/P3D/Content/Pokemon/Overworld/Normal/837.png differ
diff --git a/P3D/Content/Pokemon/Overworld/Normal/838.png b/P3D/Content/Pokemon/Overworld/Normal/838.png
new file mode 100644
index 000000000..c410b37b1
Binary files /dev/null and b/P3D/Content/Pokemon/Overworld/Normal/838.png differ
diff --git a/P3D/Content/Pokemon/Overworld/Normal/839.png b/P3D/Content/Pokemon/Overworld/Normal/839.png
new file mode 100644
index 000000000..728b5faa2
Binary files /dev/null and b/P3D/Content/Pokemon/Overworld/Normal/839.png differ
diff --git a/P3D/Content/Pokemon/Overworld/Shiny/837.png b/P3D/Content/Pokemon/Overworld/Shiny/837.png
new file mode 100644
index 000000000..2075745ef
Binary files /dev/null and b/P3D/Content/Pokemon/Overworld/Shiny/837.png differ
diff --git a/P3D/Content/Pokemon/Overworld/Shiny/838.png b/P3D/Content/Pokemon/Overworld/Shiny/838.png
new file mode 100644
index 000000000..d4c3bb231
Binary files /dev/null and b/P3D/Content/Pokemon/Overworld/Shiny/838.png differ
diff --git a/P3D/Content/Pokemon/Overworld/Shiny/839.png b/P3D/Content/Pokemon/Overworld/Shiny/839.png
new file mode 100644
index 000000000..b7550d737
Binary files /dev/null and b/P3D/Content/Pokemon/Overworld/Shiny/839.png differ
diff --git a/P3D/Content/Pokemon/Sprites/Carkol.png b/P3D/Content/Pokemon/Sprites/Carkol.png
new file mode 100644
index 000000000..9b643d2fd
Binary files /dev/null and b/P3D/Content/Pokemon/Sprites/Carkol.png differ
diff --git a/P3D/Content/Pokemon/Sprites/Coalossal.png b/P3D/Content/Pokemon/Sprites/Coalossal.png
new file mode 100644
index 000000000..87e382db8
Binary files /dev/null and b/P3D/Content/Pokemon/Sprites/Coalossal.png differ
diff --git a/P3D/Content/Pokemon/Sprites/Cutiefly.png b/P3D/Content/Pokemon/Sprites/Cutiefly.png
new file mode 100644
index 000000000..77bf54c60
Binary files /dev/null and b/P3D/Content/Pokemon/Sprites/Cutiefly.png differ
diff --git a/P3D/Content/Pokemon/Sprites/Ribombee.png b/P3D/Content/Pokemon/Sprites/Ribombee.png
new file mode 100644
index 000000000..10251b2d4
Binary files /dev/null and b/P3D/Content/Pokemon/Sprites/Ribombee.png differ
diff --git a/P3D/Content/Pokemon/Sprites/Rolycoly.png b/P3D/Content/Pokemon/Sprites/Rolycoly.png
new file mode 100644
index 000000000..771427f7a
Binary files /dev/null and b/P3D/Content/Pokemon/Sprites/Rolycoly.png differ
diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj
index 4a9dc364a..856132714 100644
--- a/P3D/P3D.vbproj
+++ b/P3D/P3D.vbproj
@@ -13705,6 +13705,9 @@
PreserveNewest
+
+
+
PreserveNewest
@@ -13940,6 +13943,9 @@
PreserveNewest
+
+
+
PreserveNewest
@@ -13976,6 +13982,9 @@
PreserveNewest
+
+
+
PreserveNewest
@@ -14048,6 +14057,8 @@
PreserveNewest
+
+
PreserveNewest
@@ -27600,6 +27611,7 @@
+
@@ -27675,6 +27687,7 @@
+
@@ -28047,12 +28060,69 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
@@ -29268,6 +29338,11 @@
PreserveNewest
+
+
+
+
+
Always
diff --git a/P3D/Pokemon/Abilities/Ability.vb b/P3D/Pokemon/Abilities/Ability.vb
index 4d885f5d8..80de8b2f0 100644
--- a/P3D/Pokemon/Abilities/Ability.vb
+++ b/P3D/Pokemon/Abilities/Ability.vb
@@ -523,8 +523,8 @@
'Gulp Missile
'Case 242
'Stalwart
- 'Case 243
- 'Steam Engine
+ Case 243
+ Return New Abilities.SteamEngine()
'Case 244
'Punk Rock
'Case 245
diff --git a/P3D/Pokemon/Abilities/SteamEngine.vb b/P3D/Pokemon/Abilities/SteamEngine.vb
new file mode 100644
index 000000000..25a0d3129
--- /dev/null
+++ b/P3D/Pokemon/Abilities/SteamEngine.vb
@@ -0,0 +1,13 @@
+Namespace Abilities
+
+ Public Class SteamEngine
+
+ Inherits Ability
+
+ Public Sub New()
+ MyBase.New(243, "Steam Engine", "Boosts the Pokémon's Speed stat drastically if hit by a Fire- or Water-type move.")
+ End Sub
+
+ End Class
+
+End Namespace
\ No newline at end of file
diff --git a/P3D/Pokemon/Attacks/Attack.vb b/P3D/Pokemon/Attacks/Attack.vb
index cdddaf3ee..bf28a3623 100644
--- a/P3D/Pokemon/Attacks/Attack.vb
+++ b/P3D/Pokemon/Attacks/Attack.vb
@@ -1748,8 +1748,8 @@
'returnMove = New Moves.Normal.StuffCheeks()
'Case 748
'returnMove = New Moves.Fighting.NoRetreat()
- 'Case 749
- 'returnMove = New Moves.Rock.TarShot()
+ Case 749
+ returnMove = New Moves.Rock.TarShot()
'Case 750
'returnMove = New Moves.Psychic.MagicPowder()
'Case 751
@@ -1844,7 +1844,7 @@
'returnMove = New Moves.Fighting.MeteorAssault()
'Case 795
'returnMove = New Moves.Dragon.Eternabeam()
- Case 796
+ Case 796
returnMove = New Moves.Steel.SteelBeam()
'Case 797
'Blank
diff --git a/P3D/Pokemon/Attacks/Rock/TarShot.vb b/P3D/Pokemon/Attacks/Rock/TarShot.vb
new file mode 100644
index 000000000..9fb1866e4
--- /dev/null
+++ b/P3D/Pokemon/Attacks/Rock/TarShot.vb
@@ -0,0 +1,66 @@
+Namespace BattleSystem.Moves.Rock
+
+ Public Class TarShot
+
+ Inherits Attack
+
+ Public Sub New()
+ '#Definitions
+ Me.Type = New Element(Element.Types.Rock)
+ Me.ID = 749
+ Me.OriginalPP = 15
+ Me.CurrentPP = 15
+ Me.MaxPP = 15
+ Me.Power = 0
+ Me.Accuracy = 100
+ Me.Category = Categories.Status
+ Me.ContestCategory = ContestCategories.Cool
+ Me.Name = "Tar Shot"
+ Me.Description = "The user pours sticky tar over the target, lowering the target's Speed stat. The target becomes weaker to Fire-type moves."
+ Me.CriticalChance = 1
+ Me.IsHMMove = False
+ Me.Target = Targets.OneAdjacentTarget
+ Me.Priority = 0
+ Me.TimesToAttack = 1
+ '#End
+
+ '#SpecialDefinitions
+ Me.MakesContact = False
+ Me.ProtectAffected = True
+ Me.MagicCoatAffected = True
+ Me.SnatchAffected = False
+ Me.MirrorMoveAffected = True
+ Me.KingsrockAffected = False
+ Me.CounterAffected = True
+
+ Me.DisabledWhileGravity = False
+ Me.UseEffectiveness = False
+ Me.ImmunityAffected = True
+ Me.RemovesFrozen = False
+ Me.HasSecondaryEffect = False
+
+ Me.IsHealingMove = False
+ Me.IsRecoilMove = False
+ Me.IsPunchingMove = False
+ Me.IsDamagingMove = False
+ Me.IsProtectMove = False
+ Me.IsSoundMove = False
+
+ Me.IsAffectedBySubstitute = True
+ Me.IsOneHitKOMove = False
+ Me.IsWonderGuardAffected = True
+ '#End
+
+ Me.AIField1 = AIField.Damage
+ Me.AIField2 = AIField.CanLowerSpeed
+ End Sub
+ Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
+ If Core.Random.Next(0, 100) < GetEffectChance(0, own, BattleScreen) Then
+ BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Speed", 1, "", "move:tarshot")
+ End If
+ End Sub
+
+
+ End Class
+
+End Namespace
\ No newline at end of file