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 {