@@ -1388,15 +1388,18 @@ export const PassiveEffects: Partial<
13881388 ] ,
13891389 [ Passive . FINIZEN ] : [
13901390 new OnSimulationStartEffect ( ( { simulation, entity } ) => {
1391+ if ( entity . name === Pkm . PALAFIN_HERO ) return
13911392 let alliesKo = 0
13921393 let alliesNb = 0
1394+ let transformed = false
13931395 simulation . board . forEach ( ( x , y , pkm ) => {
13941396 if ( pkm && pkm . team === entity . team && pkm . id !== entity . id ) {
13951397 alliesNb ++
13961398 pkm . effectsSet . add (
13971399 new OnDeathEffect ( ( ) => {
13981400 alliesKo ++
1399- if ( alliesKo >= 5 || alliesKo >= alliesNb ) {
1401+ if ( ! transformed && ( alliesKo >= 5 || alliesKo >= alliesNb ) ) {
1402+ transformed = true
14001403 entity . index = PkmIndex [ Pkm . PALAFIN_HERO ]
14011404 entity . name = Pkm . PALAFIN_HERO
14021405 // TODO: update stats to match the hero form
@@ -1417,6 +1420,22 @@ export const PassiveEffects: Partial<
14171420 )
14181421 }
14191422 } )
1423+
1424+ // edge case no allies
1425+ if ( alliesNb === 0 ) {
1426+ entity . index = PkmIndex [ Pkm . PALAFIN_HERO ]
1427+ entity . name = Pkm . PALAFIN_HERO
1428+ entity . addAttack ( 18 , entity , 0 , false )
1429+ entity . addSpeed ( 16 , entity , 0 , false )
1430+ entity . addDefense ( 5 , entity , 0 , false )
1431+ entity . addSpecialDefense ( 5 , entity , 0 , false )
1432+ entity . hp = entity . maxHP
1433+ if ( entity . player ) {
1434+ entity . player . pokemonsPlayed . add ( Pkm . PALAFIN_HERO )
1435+ entity . player . transformPokemon ( entity . refToBoardPokemon as Pokemon , Pkm . PALAFIN )
1436+ }
1437+ }
1438+
14201439 } )
14211440 ]
14221441}
0 commit comments