From 3daa9054f39f26e49c6cc9a3813d9649045a208b Mon Sep 17 00:00:00 2001
From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com>
Date: Mon, 10 Feb 2025 01:30:39 -0500
Subject: [PATCH] [Misc] Add data for theoretical Valentine's event (#5244)

* Add Valentines event data

* Event ends Feb 21 not March 21

* Event starts Feb 11 12:00 UTC for testing on beta

* Oops I meant February 10

* Add Luvdisc +3 Luck Boost

* Added Applin to round out the total pokemon and because I know people are going to be confused why it isn't here if they've actually read in gen 8 (any readers in chat?)

---------

Co-authored-by: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com>
Co-authored-by: damocleas <damocleas25@gmail.com>
---
 .../images/events/valentines2025event-de.png  | Bin 0 -> 3267 bytes
 .../images/events/valentines2025event-en.png  | Bin 0 -> 3267 bytes
 .../events/valentines2025event-es-ES.png      | Bin 0 -> 3267 bytes
 .../images/events/valentines2025event-fr.png  | Bin 0 -> 3267 bytes
 .../images/events/valentines2025event-it.png  | Bin 0 -> 3267 bytes
 .../images/events/valentines2025event-ja.png  | Bin 0 -> 3267 bytes
 .../images/events/valentines2025event-ko.png  | Bin 0 -> 3267 bytes
 .../events/valentines2025event-pt-BR.png      | Bin 0 -> 3267 bytes
 .../events/valentines2025event-zh-CN.png      | Bin 0 -> 3267 bytes
 .../utils/encounter-phase-utils.ts            |   5 +++
 src/field/pokemon.ts                          |   8 +++-
 src/loading-scene.ts                          |   4 +-
 src/modifier/modifier-type.ts                 |  15 +++++--
 src/timed-event-manager.ts                    |  40 ++++++++++++++++++
 14 files changed, 65 insertions(+), 7 deletions(-)
 create mode 100644 public/images/events/valentines2025event-de.png
 create mode 100644 public/images/events/valentines2025event-en.png
 create mode 100644 public/images/events/valentines2025event-es-ES.png
 create mode 100644 public/images/events/valentines2025event-fr.png
 create mode 100644 public/images/events/valentines2025event-it.png
 create mode 100644 public/images/events/valentines2025event-ja.png
 create mode 100644 public/images/events/valentines2025event-ko.png
 create mode 100644 public/images/events/valentines2025event-pt-BR.png
 create mode 100644 public/images/events/valentines2025event-zh-CN.png

diff --git a/public/images/events/valentines2025event-de.png b/public/images/events/valentines2025event-de.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-en.png b/public/images/events/valentines2025event-en.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-es-ES.png b/public/images/events/valentines2025event-es-ES.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-fr.png b/public/images/events/valentines2025event-fr.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-it.png b/public/images/events/valentines2025event-it.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-ja.png b/public/images/events/valentines2025event-ja.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-ko.png b/public/images/events/valentines2025event-ko.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-pt-BR.png b/public/images/events/valentines2025event-pt-BR.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/public/images/events/valentines2025event-zh-CN.png b/public/images/events/valentines2025event-zh-CN.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ec3bfe704ba2a2e3882ae80fbcbaa71d14b1069
GIT binary patch
literal 3267
zcmeHKdrVVj6#q(jE1;-xjv{Wmp>aCR630_1A`9M-whI~`j95*`tY}LC6_iI2+?aC$
zxy>Z8Jj$FBhdibgAp(W@U=0!K5Rf<WupnaPQIKNGZnyP*Uz7Xa_NU2B+oZpo$M2l;
zJLg{biWlbM{Gl@dzy;qO8UcVU`4cD|?a5DPr$aO37b77eECiIdu*Lyco{ER=+?$j?
z+4oxvvujP$b5%yTD)Z}$lU2KqJ3g!AuaNxI<oILwvboQr)-8|o%xxU(NX_kjDsJQd
zx@mY*&d{{DWqxAY)!6lel5bwW96rO*hQ`W!Vk-pPoRSZk;#ii4S;HxKN?<sFjW7M&
z&Pg+#;$^d)MDcH$V^z{+OZrw-*05jpzfU#iyW5NnBo>c2x9{GuKz7lpa~*$<C~^?U
zRDlaHBM9e{9fC2o!^C4Q5$!AD2Yru#;vmS+Zg6OP2Oe*FWBBA*zyBcR%uk$hlo@Qc
z^oxyWfsIDBOL9h9fOQSjr7QwVL?rrAq7N{~kAJFpVjo;ugl&EZ)9ZcPVxRu^zjgun
zHj*!Pq}5DS)o^cZ$AzmL=#7}kDl+VnW3zf|$SI4T+*lx?2#jJ-QI?%<JIxDX+mu~X
z@AR?|Oag}kJ%Bk6Y|YqBm4@%yA(vxnad%<L3KSGTfh5ii58IN7k$2DaVU=|W4fN>*
z*eRr0gVUw}{FW+tVU9sX#A>>vI{|i^J?>RpbxGgH!4Ld^kdIV|BtPctyZB*If;{>R
zq49R5H`3lTlNO}U^1;U@*jA7Ui=Pbx09LNrh9W(3^7>?c3ePq&T$UL`&-X!TaS`jL
zuP;vYDR(SvKtUAan&+$2FP6+>>V^9gIfs+A>GbKGbPir}Z5%b8BBG`9)00ftOW7U+
zT_D$7gB!tN9-u6Zs9cSb4=Y5H-#+_x^ij_XAN4d=%w^FVDb3LuQ(n4>2u&y73erjW
zsb?USv&*-Pg|eI5<G+yasJ!g$kV?<@ZBq!x|3Ivm!0sJOp5BRqD8?1{H-fc%9Zt+-
zb$T_<wJ_+@8C#uh^2}&noWRtk*P}fSuyI+w_0%wD`+!Izc4Q+;J{&8O{L=BM=1X@U
zi-=J?MD9m#WS>{-;=)s}ZmhVX$O=+U`AK0Sm2>v9biDA6yeeVZf2Hs<uB(Bb@1w?V
z)8Z@pdolcU+uTSd3WAJh?EzZ~`(>Ect%8#=S-_-E=gCH347AOg@5BjXU-Mlz*tk}b
zBLYeT{(A&UJ{&8O{QYgic^;&uV$HJiK5_I$%7O~#XKrwmc!+>w1&N|WW5FK4%B_)D
zG)5ESE7Fc6e5{GQ!kUEwfEKOAu*^7exUL2#UR|G5JD?!QxN8ZB+Fr-TTf7cQZF>S8
z=+n8n2N)6^x9BQl*y6psSTCe;Q3dS=LcQ$#HI#ffRwVi5*PFKb_WRt$FOw@|h~7wK
z>UN!Wk5ni-U!P_Lsis6@+6B?~O@kJVQM8M@Th!W6#hq>bV^9Flq7~@Z8q|$v6J%Hy
zw@2nS1S1tg#yxqA>ZG%LBA-)ha;!>pg&-@HC;_v&6;b^HHa?fQbsz|7+-gKYl?=^G
zwo^DtJ{&7E`P>|VxK<>VZRWdoKR5@&MvN#8N&T%QCXKgKs?iDp*W`!?fR)?dKxs^A
zpRz#KdLj7uv3Lz^qd2r^6I*9xnfe#r_$_%A+v@?0v==gN-i=eUg_yrI$++@_jzvG<
z**wPBz(>`!DjxAlcc?xUX<T&237Lv^zWZgAd}Nc8<X>5@>P_nD^*&gLDK9XQu;HQ<
z>ZfXp_{L(cyTM=$q1NOdz5rIPJe|^*_lL<po$~%LF&{wx;V?M@%t!E&Fos+^(RDTc
z?_R)uLvPc1hQ`o3U?Q-EdBIZth*sy0jt`V#Qm>be$6JnA1T*gtN6G#Xrh*eDxnV7h
s@Q95x4tEN)SPeBoX?cqO|3sM;RJp8EG?=c$nBP(GFL|NmA%`>m0)^P=#{d8T

literal 0
HcmV?d00001

diff --git a/src/data/mystery-encounters/utils/encounter-phase-utils.ts b/src/data/mystery-encounters/utils/encounter-phase-utils.ts
index ead0443908b..351b969b1a8 100644
--- a/src/data/mystery-encounters/utils/encounter-phase-utils.ts
+++ b/src/data/mystery-encounters/utils/encounter-phase-utils.ts
@@ -887,16 +887,21 @@ export function getRandomEncounterSpecies(level: number, isBoss: boolean = false
   let bossSpecies: PokemonSpecies;
   let isEventEncounter = false;
   const eventEncounters = globalScene.eventManager.getEventEncounters();
+  let formIndex;
 
   if (eventEncounters.length > 0 && randSeedInt(2) === 1) {
     const eventEncounter = randSeedItem(eventEncounters);
     const levelSpecies = getPokemonSpecies(eventEncounter.species).getWildSpeciesForLevel(level, !eventEncounter.blockEvolution, isBoss, globalScene.gameMode);
     isEventEncounter = true;
     bossSpecies = getPokemonSpecies(levelSpecies);
+    formIndex = eventEncounter.formIndex;
   } else {
     bossSpecies = globalScene.arena.randomSpecies(globalScene.currentBattle.waveIndex, level, 0, getPartyLuckValue(globalScene.getPlayerParty()), isBoss);
   }
   const ret = new EnemyPokemon(bossSpecies, level, TrainerSlot.NONE, isBoss);
+  if (formIndex) {
+    ret.formIndex = formIndex;
+  }
 
   //Reroll shiny for event encounters
   if (isEventEncounter && !ret.shiny) {
diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts
index 16af8364502..daab808918c 100644
--- a/src/field/pokemon.ts
+++ b/src/field/pokemon.ts
@@ -4356,8 +4356,12 @@ export class PlayerPokemon extends Pokemon {
       ].filter(d => !!d);
       const amount = new Utils.NumberHolder(friendship);
       globalScene.applyModifier(PokemonFriendshipBoosterModifier, true, this, amount);
-      const candyFriendshipMultiplier = globalScene.eventManager.getClassicFriendshipMultiplier();
-      const starterAmount = new Utils.NumberHolder(Math.floor(amount.value * (globalScene.gameMode.isClassic ? candyFriendshipMultiplier : 1) / (fusionStarterSpeciesId ? 2 : 1)));
+      const candyFriendshipMultiplier = globalScene.gameMode.isClassic ? globalScene.eventManager.getClassicFriendshipMultiplier() : 1;
+      const fusionReduction = fusionStarterSpeciesId
+        ? globalScene.eventManager.areFusionsBoosted() ? 1.5 // Divide candy gain for fusions by 1.5 during events
+          : 2   // 2 for fusions outside events
+        : 1;    // 1 for non-fused mons
+      const starterAmount = new Utils.NumberHolder(Math.floor(amount.value * candyFriendshipMultiplier / fusionReduction));
 
       // Add friendship to this PlayerPokemon
       this.friendship = Math.min(this.friendship + amount.value, 255);
diff --git a/src/loading-scene.ts b/src/loading-scene.ts
index 60a0513f608..e8f817c1c39 100644
--- a/src/loading-scene.ts
+++ b/src/loading-scene.ts
@@ -249,9 +249,9 @@ export class LoadingScene extends SceneBase {
     }
     const availableLangs = [ "en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN" ];
     if (lang && availableLangs.includes(lang)) {
-      this.loadImage("yearofthesnakeevent-" + lang, "events");
+      this.loadImage("valentines2025event-" + lang, "events");
     } else {
-      this.loadImage("yearofthesnakeevent-en", "events");
+      this.loadImage("valentines2025event-en", "events");
     }
 
     this.loadAtlas("statuses", "");
diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts
index b65f1b53441..b1e8b69df36 100644
--- a/src/modifier/modifier-type.ts
+++ b/src/modifier/modifier-type.ts
@@ -1720,7 +1720,16 @@ const modifierPool: ModifierPool = {
     }, 4),
     new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3),
     new WeightedModifierType(modifierTypes.TERA_SHARD, 1),
-    new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => globalScene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 4 : 0),
+    new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => {
+      if (party.filter(p => !p.fusionSpecies).length > 1) {
+        if (globalScene.gameMode.isSplicedOnly) {
+          return 4;
+        } else if (globalScene.gameMode.isClassic && globalScene.eventManager.areFusionsBoosted()) {
+          return 1;
+        }
+      }
+      return 0;
+    }, 4),
     new WeightedModifierType(modifierTypes.VOUCHER, (_party: Pokemon[], rerollCount: number) => !globalScene.gameMode.isDaily ? Math.max(1 - rerollCount, 0) : 0, 1),
   ].map(m => {
     m.setTier(ModifierTier.GREAT); return m;
@@ -1879,7 +1888,7 @@ const modifierPool: ModifierPool = {
     new WeightedModifierType(modifierTypes.MULTI_LENS, 18),
     new WeightedModifierType(modifierTypes.VOUCHER_PREMIUM, (_party: Pokemon[], rerollCount: number) =>
       !globalScene.gameMode.isDaily && !globalScene.gameMode.isEndless && !globalScene.gameMode.isSplicedOnly ? Math.max(5 - rerollCount * 2, 0) : 0, 5),
-    new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => !globalScene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 24 : 0, 24),
+    new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => !(globalScene.gameMode.isClassic && globalScene.eventManager.areFusionsBoosted()) && !globalScene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 24 : 0, 24),
     new WeightedModifierType(modifierTypes.MINI_BLACK_HOLE, () => (globalScene.gameMode.isDaily || (!globalScene.gameMode.isFreshStartChallenge() && globalScene.gameData.isUnlocked(Unlockables.MINI_BLACK_HOLE))) ? 1 : 0, 1),
   ].map(m => {
     m.setTier(ModifierTier.MASTER); return m;
@@ -2538,7 +2547,7 @@ export function getPartyLuckValue(party: Pokemon[]): number {
     return DailyLuck.value;
   }
   const eventSpecies = globalScene.eventManager.getEventLuckBoostedSpecies();
-  const luck = Phaser.Math.Clamp(party.map(p => p.isAllowedInBattle() ? p.getLuck() + (eventSpecies.includes(p.species.speciesId) ? 1 : 0) : 0)
+  const luck = Phaser.Math.Clamp(party.map(p => p.isAllowedInBattle() ? p.getLuck() + (eventSpecies.includes(p.species.speciesId) ? 3 : 0) : 0)
     .reduce((total: number, value: number) => total += value, 0), 0, 14);
   return Math.min(globalScene.eventManager.getEventLuckBoost() + (luck ?? 0), 14);
 }
diff --git a/src/timed-event-manager.ts b/src/timed-event-manager.ts
index 7a9f0e59993..bebacf87ebc 100644
--- a/src/timed-event-manager.ts
+++ b/src/timed-event-manager.ts
@@ -27,6 +27,7 @@ interface EventBanner {
 interface EventEncounter {
   species: Species;
   blockEvolution?: boolean;
+  formIndex?: number;
 }
 
 interface EventMysteryEncounterTier {
@@ -49,6 +50,7 @@ interface TimedEvent extends EventBanner {
   weather?: WeatherPoolEntry[];
   mysteryEncounterTierChanges?: EventMysteryEncounterTier[];
   luckBoostedSpecies?: Species[];
+  boostFusions?: boolean; //MODIFIER REWORK PLEASE
 }
 
 const timedEvents: TimedEvent[] = [
@@ -144,6 +146,40 @@ const timedEvents: TimedEvent[] = [
       Species.ROARING_MOON,
       Species.BLOODMOON_URSALUNA
     ]
+  },
+  {
+    name: "Valentine",
+    eventType: EventType.SHINY,
+    startDate: new Date(Date.UTC(2025, 1, 10)),
+    endDate: new Date(Date.UTC(2025, 1, 21)),
+    boostFusions: true,
+    shinyMultiplier: 2,
+    bannerKey: "valentines2025event-",
+    scale: 0.21,
+    availableLangs: [ "en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN" ],
+    eventEncounters: [
+      { species: Species.NIDORAN_F },
+      { species: Species.NIDORAN_M },
+      { species: Species.IGGLYBUFF },
+      { species: Species.SMOOCHUM },
+      { species: Species.VOLBEAT },
+      { species: Species.ILLUMISE },
+      { species: Species.ROSELIA },
+      { species: Species.LUVDISC },
+      { species: Species.WOOBAT },
+      { species: Species.FRILLISH },
+      { species: Species.ALOMOMOLA },
+      { species: Species.FURFROU, formIndex: 1 }, // Heart trim
+      { species: Species.ESPURR },
+      { species: Species.SPRITZEE },
+      { species: Species.SWIRLIX },
+      { species: Species.APPLIN },
+      { species: Species.MILCERY },
+      { species: Species.INDEEDEE },
+      { species: Species.TANDEMAUS },
+      { species: Species.ENAMORUS }
+    ],
+    luckBoostedSpecies: [ Species.LUVDISC ]
   }
 ];
 
@@ -297,6 +333,10 @@ export class TimedEventManager {
     });
     return ret;
   }
+
+  areFusionsBoosted(): boolean {
+    return timedEvents.some((te) => this.isActive(te) && te.boostFusions);
+  }
 }
 
 export class TimedEventDisplay extends Phaser.GameObjects.Container {