From eeb547417fb8d71e3f206ff942eac217168532eb Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Mon, 22 Apr 2024 20:30:46 -0400 Subject: [PATCH] Endless biomes are short but connected --- public/images/pokemon/exp/back/381-mega.png | Bin 1581 -> 8444 bytes src/battle-scene.ts | 21 +++++++++++++++++++- src/data/pokemon-species.ts | 2 +- src/game-mode.ts | 6 ++++-- src/phases.ts | 7 +++++-- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/public/images/pokemon/exp/back/381-mega.png b/public/images/pokemon/exp/back/381-mega.png index 811231cbc3d1fd38444ffde1fb77973af99a2f13..d865e64c373ba843a854b0ef38a749e856ce49dc 100644 GIT binary patch literal 8444 zcmb7|cQjmIyZ8@67{OrlM2j$p38E8a7)JCKZL|o{jW8j48NGyv5`7RgB8g52(ITSP z=tQFT8ugCvd+)p6-~HpR^_#WMoSD7%dFGrsXFs3kvm>=NRVYBrAOHX;RFO)$_d&sHp9(s{&_NMJS31Ns5UH2*ZQ`02!H? z?5VH!lRmt!QM^(66*%g3zoVTlA(EmInE>MxA_G5cjt4l!l=RU`Itc}&!qB}rF)0nZp&=~Es!z(8WPeqvJMwqTZtRx?;t0PWP6rQPG7C?bXYOuoZ)@gtM3rWgQyH3j?QuJ^=A z!1@(bI9TA<3t$e}WwAYY&*(=VZ8ueW?++6g4Od|V6E{jPEH;rgdcLnuV=21*hajbR z?Ck}i@i$DyH|L)LwtZ*DkQdHOpE#w*B_t&Todukmpu+)XXX&qwo+q1Q12&nI*p6Ed z4gKFx03Ql$s(zk?JKNI%W@`l64d>xKmiK_DPfZv~KR4ETUvu5Ig}YDrOQ)t#Y6RJi zy!V#3PO>Qj6fJ!FbepEPep`9%B}%;V5K=T3cd_*@P-^?uyMX?C<4<<@G28VE3@bhL z8CO%pz1Ik(?gDjo_2eqkZ?qA_Z{T6_$JuGeRIL~JKkJesCyuH6lZ^=9axlyLvjR{) zYIZW8C;a_ee&ii0M1Omt2i~M+p7sS__!-u!UwotI3W&2-Q4+4D(dk`JJ2N2^VFwWM zM62>F%S5!z*Q%STYXPb`B0>dd#5Ffdp}Am4Jb@BB10=92hw*iAnI%sV2_}bHBt#6& z=n-T+Cn9kj7SwHdZHhowkTNTfcN_FW9*hnB2By;u_h482cJouHQ9R2c5wRk*_RZI% zcNF1BLOS`i9NnUuC1I;L+hx;bs0VXBK%rQZqhm*NLg#(`wjfzSi^&ISC*lfAEeX;% zEJI7zwy*>nEV!mQ2~Fe+-o$FPrp!?rf#iY;sRO~(Qn}HB)bwAK;R#+`WYip`@ih5_ z_VN?)todwpQOJbCZ>A6u1VTt#{WbY_HoDM-++^G%oLF9o&UNj~BH3YsVW

fLcS@ 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 A`v3p{ literal 1581 zcmaKsdpy&77{`ZUTc+R4w90ju*-=Jo)j`I_a_J{ovs5Tv>tZ&S zNX<%7r;EZ6%G`2G=jFPn6yiijI_q`n-}A@!`Mkf+^Sr+A|GpVJKn4=A1_6OUkRIFU zJ5|~6{lGL-wM*GprwZ&2Z>F0n0RRZwdyT`nb~?UaD(!D;o1LBgR@Ay{k7}mI*$MhV zsLH-j2t>2qgYLrQ4oqG7EpOCR#|^ca`_17)k`<{=E0c*|2lAL-n3L{4#?NAMbB^v0 z-6sFD*p7x9$q6+^qh68=%uvcrKpeCCISp4>*qAARttRod2IB%KX2IUjJ|DiYiB1qo zWf7TnY=+wcM;Y?=7+Zd?Vnsw`npX=t)PY>rR?z=4KEglkA-^x`MNg)HMDZ`ebt}x2 z3MwpK!`>hKT46c{<7vcxmV9+dny42ugjGH9cSB30nTn>G)pm< zNOa5E(y3)B^s(bdB>afk)Os%AKxLpeT7%Y&B8Qbg^dXUoy_!x;@^I0iApK3*mJ0*_ zC`5&LBeEnoMRbvcYN|a#FIj`d7UpCDuLo0USTH2doTXilm}XUx0C`-B1NU>sLz+vz zDbPkd8&UqdDZdG-DOS5#wZc_uHEhR5UTEww*aIgVDCX-zL!MVAr_CGc$o8}@ee5;D zv&py$_;TW8E(9>n#%xdPsI?qL;k>48J*ve!scz`ClQ|t4$tVZ}gi1{~5*aoTNUG^% zH6p{mg8SZQf-tJ{{H^H0<=vbm<%4)qFRU+*N6d;k5OmkH1;#+n%))|gQZ|2R1_C@c z!2-y>f-);e(xnY)3F#-@C#6XJu>6p2+#%Rj;z|AWt^{YY5yl>t3xBKb>k*S=qlO4Z zxa4l9u2P2(_-*)->VkH$csUUctDew=g`GGY@#<<9dJ+9Xvox%=(bs90#FV%k9=0mdhhd@(-8 zRDTKT+GFa)6gt!Sh))J-Wu%WTD!}~&q6%zXe{^K3o%&1wqqId8)-mlbmXR<{d_-IW zfC-h^5;Mz4g>?Z@O1D!ej5`y{IsBt#F=~KO-lv^Gm=m9?0hnuHcko2-cMcy5>l|rw z7OJNaDu?X5bpTI4wYc`D(SV+CTmwfxm4F=K`75nNRd(h|x{Mn$CLa#m@kU<6CG}Cd z1==)FN1%NgQ7`7+DkJF_z#m7^WL(miT+EG8-G7Wo|BvkKc1|rjJL`>{o&9~)0KOfR z3$z*k6_tbmLIv79FduW?x%v8?k=iR=%SY!c1dQ278L@)b$u$Cor?`1?uB1mruHt6v zo+yI;`3({tcs;tSoI3`YU!JVJX?#j34{LK_$jR{42 z!2}7zNQAh?73#8f_Fj#4!i@d07_aA{GH)#P^cmle>yNt9a5j=UIL<8B3E3x%&47}r zq8UQz&|fFb=4^zK=n%bTWf`?6?!@ITgPxN1RBPj0z2p(UZ>{~3MR&upBT+&;CzcKUmO!?rE6zDpbGuC`TaU8aSf@I(mTU06W80v zp$9F@Qfx|@=ft~KO~3<0h}(u8PK4tb^wD%iudLPY4U`p5n0)_wi}j%`DOOgGGS2NQ xGs)V9jV(8OLMc6i|Kn+OvdOcIppDA8m4jY+MI$FoUa9_eh=&_UuW)6j{0pT^yW9W( diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 98c1fc83e..c3f920acb 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -893,7 +893,26 @@ export default class BattleScene extends SceneBase { //this.pushPhase(new TrainerMessageTestPhase(this, TrainerType.RIVAL, TrainerType.RIVAL_2, TrainerType.RIVAL_3, TrainerType.RIVAL_4, TrainerType.RIVAL_5, TrainerType.RIVAL_6)); if (!waveIndex && lastBattle) { - const isNewBiome = !(lastBattle.waveIndex % 10) || (this.gameMode.isDaily && lastBattle.waveIndex === 49); + let isNewBiome = !(lastBattle.waveIndex % 10) || ((this.gameMode.hasShortBiomes || this.gameMode.isDaily) && (lastBattle.waveIndex % 50) === 49); + if (!isNewBiome && this.gameMode.hasShortBiomes) { + let w = lastBattle.waveIndex - ((lastBattle.waveIndex % 10) - 1); + let biomeWaves = 1; + while (w < lastBattle.waveIndex) { + let wasNewBiome = false; + this.executeWithSeedOffset(() => { + wasNewBiome = !Utils.randSeedInt(6 - biomeWaves); + }, w << 4); + if (wasNewBiome) + biomeWaves = 1; + else + biomeWaves++; + w++; + } + + this.executeWithSeedOffset(() => { + isNewBiome = !Utils.randSeedInt(6 - biomeWaves); + }, lastBattle.waveIndex << 4); + } const resetArenaState = isNewBiome || this.currentBattle.battleType === BattleType.TRAINER || this.currentBattle.battleSpec === BattleSpec.FINAL_BOSS; this.getEnemyParty().forEach(enemyPokemon => enemyPokemon.destroy()); this.trySpreadPokerus(); diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 72850fb05..ed55bbf4d 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -1782,7 +1782,7 @@ export function initSpecies() { new PokemonForm("Fancy Pattern", "fancy", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), new PokemonForm("Poké Ball Pattern", "poke-ball", Type.BUG, null, 0.3, 2.5, Abilities.SHIELD_DUST, Abilities.COMPOUND_EYES, Abilities.FRIEND_GUARD, 200, 38, 35, 40, 27, 25, 35, 255, 70, 40, false, ""), ), - new PokemonSpecies(Species.SPEWPA, 6, false, false, false, "Scatterdust Pokémon", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, GrowthRate.MEDIUM_FAST, 50, false, false, + new PokemonSpecies(Species.SPEWPA, 6, false, false, false, "Scatterdust Pokémon", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.SHED_SKIN, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, GrowthRate.MEDIUM_FAST, 50, false, false, new PokemonForm("Meadow Pattern", "meadow", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, false, ""), new PokemonForm("Icy Snow Pattern", "icy-snow", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, false, ""), new PokemonForm("Polar Pattern", "polar", Type.BUG, null, 0.3, 8.4, Abilities.SHED_SKIN, Abilities.NONE, Abilities.FRIEND_GUARD, 213, 45, 22, 60, 27, 30, 29, 120, 70, 75, false, ""), diff --git a/src/game-mode.ts b/src/game-mode.ts index f06c65826..0ac3f0503 100644 --- a/src/game-mode.ts +++ b/src/game-mode.ts @@ -20,6 +20,7 @@ interface GameModeConfig { hasTrainers?: boolean; hasFixedBattles?: boolean; hasNoShop?: boolean; + hasShortBiomes?: boolean; hasRandomBiomes?: boolean; hasRandomBosses?: boolean; isSplicedOnly?: boolean; @@ -33,6 +34,7 @@ export class GameMode implements GameModeConfig { public hasTrainers: boolean; public hasFixedBattles: boolean; public hasNoShop: boolean; + public hasShortBiomes: boolean; public hasRandomBiomes: boolean; public hasRandomBosses: boolean; public isSplicedOnly: boolean; @@ -174,7 +176,7 @@ export class GameMode implements GameModeConfig { export const gameModes = Object.freeze({ [GameModes.CLASSIC]: new GameMode(GameModes.CLASSIC, { isClassic: true, hasTrainers: true, hasFixedBattles: true }), - [GameModes.ENDLESS]: new GameMode(GameModes.ENDLESS, { isEndless: true, hasRandomBiomes: true, hasRandomBosses: true }), - [GameModes.SPLICED_ENDLESS]: new GameMode(GameModes.SPLICED_ENDLESS, { isEndless: true, hasRandomBiomes: true, hasRandomBosses: true, isSplicedOnly: true }), + [GameModes.ENDLESS]: new GameMode(GameModes.ENDLESS, { isEndless: true, hasShortBiomes: true, hasRandomBosses: true }), + [GameModes.SPLICED_ENDLESS]: new GameMode(GameModes.SPLICED_ENDLESS, { isEndless: true, hasShortBiomes: true, hasRandomBosses: true, isSplicedOnly: true }), [GameModes.DAILY]: new GameMode(GameModes.DAILY, { isDaily: true, hasTrainers: true, hasNoShop: true }) }); \ No newline at end of file diff --git a/src/phases.ts b/src/phases.ts index 038907d94..f59c6516e 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -1049,7 +1049,8 @@ export class SelectBiomePhase extends BattlePhase { }; if ((this.scene.gameMode.isClassic && this.scene.gameMode.isWaveFinal(this.scene.currentBattle.waveIndex + 9)) - || (this.scene.gameMode.isDaily && this.scene.gameMode.isWaveFinal(this.scene.currentBattle.waveIndex))) + || (this.scene.gameMode.isDaily && this.scene.gameMode.isWaveFinal(this.scene.currentBattle.waveIndex)) + || (this.scene.gameMode.hasShortBiomes && !(this.scene.currentBattle.waveIndex % 50))) setNextBiome(Biome.END); else if (this.scene.gameMode.hasRandomBiomes) setNextBiome(this.generateNextBiome()); @@ -1086,8 +1087,10 @@ export class SelectBiomePhase extends BattlePhase { }); } else setNextBiome(biomes[Utils.randSeedInt(biomes.length)]); - } else + } else if (biomeLinks.hasOwnProperty(currentBiome)) setNextBiome(biomeLinks[currentBiome] as Biome); + else + setNextBiome(this.generateNextBiome()); } generateNextBiome(): Biome {