Skip to content

Commit

Permalink
add fletchling line (#2541)
Browse files Browse the repository at this point in the history
  • Loading branch information
sylvainpolletvillard authored Dec 6, 2024
1 parent a315dfc commit 79dcc01
Show file tree
Hide file tree
Showing 58 changed files with 216 additions and 29 deletions.
85 changes: 83 additions & 2 deletions app/core/abilities/abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6137,7 +6137,7 @@ export class LavaPlumeStrategy extends AbilityStrategy {
const damage = [20, 40, 80][pokemon.stars - 1] ?? 80

cells.forEach((cell) => {
board.addBoardEffect(cell.x, cell.y, Effect.LAVA, pokemon.simulation)
board.addBoardEffect(cell.x, cell.y, Effect.EMBER, pokemon.simulation)
if (cell.value && cell.value.team !== pokemon.team) {
cell.value.handleSpecialDamage(
damage,
Expand Down Expand Up @@ -10830,6 +10830,86 @@ export class MetalClawStrategy extends AbilityStrategy {
}
}

export class FirestarterStrategy extends AbilityStrategy {
process(
pokemon: PokemonEntity,
state: PokemonState,
board: Board,
target: PokemonEntity,
crit: boolean
) {
super.process(pokemon, state, board, target, crit, true)
const damage = [20, 40, 80][pokemon.stars - 1] ?? 80
const atkSpeedBuff = [10, 20, 40][pokemon.stars - 1] ?? 40

const farthestCoordinate =
board.getFarthestTargetCoordinateAvailablePlace(pokemon)
if (farthestCoordinate) {
const cells = board.getCellsBetween(
pokemon.positionX,
pokemon.positionY,
farthestCoordinate.x,
farthestCoordinate.y
)
cells.forEach((cell, i) => {
if (
cell.x === farthestCoordinate.x &&
cell.y === farthestCoordinate.y
) {
pokemon.commands.push(
new DelayedCommand(() => {
pokemon.addAttackSpeed(atkSpeedBuff, pokemon, 1, crit)
}, 500)
)
} else {
pokemon.commands.push(
new DelayedCommand(() => {
board.addBoardEffect(
cell.x,
cell.y,
Effect.EMBER,
pokemon.simulation
)
pokemon.simulation.room.broadcast(Transfer.ABILITY, {
id: pokemon.simulation.id,
skill: Ability.FIRESTARTER,
positionX: pokemon.positionX,
positionY: pokemon.positionY,
targetX: cell.x,
targetY: cell.y
})

if (cell.value && cell.value.team != pokemon.team) {
cell.value.handleSpecialDamage(
damage,
board,
AttackType.SPECIAL,
pokemon,
crit
)
}
}, i * 50)
)
pokemon.commands.push(
new DelayedCommand(
() => {
board.addBoardEffect(
cell.x,
cell.y,
Effect.EMBER,
pokemon.simulation
)
},
500 + i * 50
)
)
}
})
pokemon.moveTo(farthestCoordinate.x, farthestCoordinate.y, board)
}
}
}

export * from "./hidden-power"

export const AbilityStrategies: { [key in Ability]: AbilityStrategy } = {
Expand Down Expand Up @@ -11224,5 +11304,6 @@ export const AbilityStrategies: { [key in Ability]: AbilityStrategy } = {
[Ability.BURN_UP]: new BurnUpStrategy(),
[Ability.POWER_HUG]: new PowerHugStrategy(),
[Ability.MORTAL_SPIN]: new MortalSpinStrategy(),
[Ability.METAL_CLAW]: new MetalClawStrategy()
[Ability.METAL_CLAW]: new MetalClawStrategy(),
[Ability.FIRESTARTER]: new FirestarterStrategy()
}
5 changes: 4 additions & 1 deletion app/core/pokemon-state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -868,7 +868,10 @@ export default abstract class PokemonState {
pokemon.effects.delete(Effect.HAIL)
}

if (pokemon.effects.has(Effect.LAVA) && !pokemon.types.has(Synergy.FIRE)) {
if (
pokemon.effects.has(Effect.EMBER) &&
!(pokemon.types.has(Synergy.FIRE) || pokemon.types.has(Synergy.FLYING))
) {
pokemon.handleDamage({
damage: 10,
board,
Expand Down
49 changes: 48 additions & 1 deletion app/models/colyseus-models/pokemon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15366,6 +15366,50 @@ export class Glimmora extends Pokemon {
passive = Passive.GLIMMORA
}

export class Fletchling extends Pokemon {
types = new SetSchema<Synergy>([Synergy.FLYING, Synergy.FIRE])
rarity = Rarity.ULTRA
stars = 1
evolution = Pkm.FLETCHINDER
hp = 120
atk = 15
def = 3
speDef = 3
maxPP = 100
range = 2
skill = Ability.FIRESTARTER
attackSprite = AttackSprite.FIRE_RANGE
}

export class Fletchinder extends Pokemon {
types = new SetSchema<Synergy>([Synergy.FLYING, Synergy.FIRE])
rarity = Rarity.ULTRA
stars = 2
evolution = Pkm.TALONFLAME
hp = 230
atk = 30
def = 5
speDef = 5
maxPP = 100
range = 2
skill = Ability.FIRESTARTER
attackSprite = AttackSprite.FIRE_RANGE
}

export class Talonflame extends Pokemon {
types = new SetSchema<Synergy>([Synergy.FLYING, Synergy.FIRE])
rarity = Rarity.ULTRA
stars = 3
hp = 340
atk = 45
def = 7
speDef = 7
maxPP = 100
range = 2
skill = Ability.FIRESTARTER
attackSprite = AttackSprite.FIRE_RANGE
}

export const PokemonClasses: Record<
Pkm,
new (
Expand Down Expand Up @@ -16238,5 +16282,8 @@ export const PokemonClasses: Record<
[Pkm.STUFFUL]: Stufful,
[Pkm.BEWEAR]: Bewear,
[Pkm.GLIMMET]: Glimmet,
[Pkm.GLIMMORA]: Glimmora
[Pkm.GLIMMORA]: Glimmora,
[Pkm.FLETCHLING]: Fletchling,
[Pkm.FLETCHINDER]: Fletchinder,
[Pkm.TALONFLAME]: Talonflame
}
2 changes: 1 addition & 1 deletion app/models/precomputed/credits.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion app/models/precomputed/emotions-per-pokemon-index.json

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions app/models/precomputed/pokemons-data.csv
Original file line number Diff line number Diff line change
Expand Up @@ -660,6 +660,9 @@ Index,Name,Category,Tier,Additional pick,Type 1,Type 2,Type 3,Type 4,HP,Attack,D
0656,FROAKIE,HATCH,1,false,WATER,AQUATIC,DARK,,80,7,2,2,1,80,WATER_SHURIKEN,FROAKIE,WATER,AQUATIC,DARK,,false,false,3
0657,FROGADIER,HATCH,2,false,WATER,AQUATIC,DARK,,140,14,3,4,1,80,WATER_SHURIKEN,FROAKIE,WATER,AQUATIC,DARK,,false,false,3
0658,GRENINJA,HATCH,3,false,WATER,AQUATIC,DARK,,200,23,4,6,1,80,WATER_SHURIKEN,FROAKIE,WATER,AQUATIC,DARK,,false,false,3
0661,FLETCHLING,ULTRA,1,false,FLYING,FIRE,,,120,15,3,3,2,100,FIRESTARTER,FLETCHLING,FLYING,FIRE,,,false,false,3
0662,FLETCHINDER,ULTRA,2,false,FLYING,FIRE,,,230,30,5,5,2,100,FIRESTARTER,FLETCHLING,FLYING,FIRE,,,false,false,3
0663,TALONFLAME,ULTRA,3,false,FLYING,FIRE,,,340,45,7,7,2,100,FIRESTARTER,FLETCHLING,FLYING,FIRE,,,false,false,3
0669,FLABEBE,UNCOMMON,1,false,SOUND,FAIRY,FLORA,,60,5,1,1,3,90,FAIRY_WIND,FLABEBE,SOUND,FAIRY,FLORA,,false,false,3
0670,FLOETTE,UNCOMMON,2,false,SOUND,FAIRY,FLORA,,120,9,1,1,3,90,FAIRY_WIND,FLABEBE,SOUND,FAIRY,FLORA,,false,false,3
0671,FLORGES,UNCOMMON,3,false,SOUND,FAIRY,FLORA,,210,20,2,2,3,90,FAIRY_WIND,FLABEBE,SOUND,FAIRY,FLORA,,false,false,3
Expand Down
3 changes: 3 additions & 0 deletions app/public/dist/client/changelog/patch-5.9.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# New Pokemons:
- Fletchling
- Fletchinder
- Talonflame

# Changes to Pokemon & Abilities

Expand Down
13 changes: 9 additions & 4 deletions app/public/dist/client/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,8 @@
"CORE_ENFORCER": "Core Enforcer",
"POWER_HUG": "Power Hug",
"MORTAL_SPIN": "Mortal Spin",
"METAL_CLAW": "Metal Claw"
"METAL_CLAW": "Metal Claw",
"FIRESTARTER": "Firestarter"
},
"pkm": {
"DEFAULT": "MissingNo.",
Expand Down Expand Up @@ -1280,7 +1281,10 @@
"STUFFUL": "Stufful",
"BEWEAR": "Bewear",
"GLIMMET": "Glimmet",
"GLIMMORA": "Glimmora"
"GLIMMORA": "Glimmora",
"FLETCHLING": "Fletchling",
"FLETCHINDER": "Fletchinder",
"TALONFLAME": "Talonflame"
},
"ability_description": {
"SOFT_BOILED": "Cure all status conditions and grant [20,40,80,SP] SHIELD to all allied Pokémon.",
Expand Down Expand Up @@ -1416,7 +1420,7 @@
"SLUDGE": "Throw trash at the 3 enemy Pokémon in front of the user to inflict [2,3,4] stacks of POISONNED for [3,SP] seconds.",
"SLUDGE_WAVE": "Throw a spray of waste on the target and adjacent enemy Pokémon, dealing [10,20,40,SP] SPECIAL and inflict POISONNED for [2,3,4,SP] seconds.",
"SMOG": "Project a cloud of stinking gas onto the 3 tiles in front of the user, dealing [10,20,40,SP] SPECIAL. Gas stays on board until the end of the fight and reduces the accuracy of Pokémon inside by 50%.",
"LAVA_PLUME": "Project lava onto the 3 tiles in front of the user, dealing [20,40,80,SP] SPECIAL. Lava stay on the ground, dealing 10 SPECIAL and BURN non FIRE Pokémon that walk on it.",
"LAVA_PLUME": "Project lava onto the 3 tiles in front of the user, dealing [20,40,80,SP] SPECIAL. Lava stay on the ground, dealing 10 SPECIAL and BURN Pokémon that walk on it if not FLYING or FIRE.",
"SHELTER": "Gain [3,6,12,SP] DEF and project a smoke screen onto the 3 tiles in front of the user. Smoke stays on board until the end of the fight and reduces the accuracy of Pokémon inside by 50%.",
"AURORA_BEAM": "Fire a beam in a line. All enemy Pokémon hit take [25,50,100,SP] SPECIAL and may be inflicted with FREEZE (chance based on ICE synergy level and LUCK).",
"AGILITY": "Increase ATK_SPEED by [10,20,30,SP] % (stacks).",
Expand Down Expand Up @@ -1673,7 +1677,8 @@
"CORE_ENFORCER": "Deal [150,SP] SPECIAL to the target. The target is LOCKED and SILENCE for 3 seconds.",
"POWER_HUG": "Deal [40,80,SP] SPECIAL to the target. Inflict LOCKED and PARALYSIS for 3 seconds.",
"MORTAL_SPIN": "Knock back any Pokemon targeting the user in melee range. Deal [20,30,40,SP] SPECIAL to any enemies hit, and apply POISONNED for 4 seconds",
"METAL_CLAW": "Deal [10,20,40,SP] TRUE to the target and raise the user's ATK by [2,4,6]."
"METAL_CLAW": "Deal [10,20,40,SP] TRUE to the target and raise the user's ATK by [2,4,6].",
"FIRESTARTER": "Gain [10,20,40,SP]% ATK_SPEED and flies to the furthest ennemy, dropping embers on the cells in between. The embers inflict [20,40,80,SP] SPECIAL and remain on the ground, so any Pokémon that steps on them BURN and take 10 SPECIAL per second if not FLYING or FIRE."
},
"effect": {
"INGRAIN": "Ingrain",
Expand Down
2 changes: 1 addition & 1 deletion app/public/dist/client/locales/it/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -1415,7 +1415,7 @@
"SLUDGE": "Lancia spazzatura nelle tre celle di fronte, la quale applica [2,3,4] istanze di POISONNED per [3,SP] secondi.",
"SLUDGE_WAVE": "Lancia uno spruzzo di rifiuti sul bersaglio e sui nemici adiacenti, infliggendo [10,20,40,SP] SPECIAL e POISONNED per [2,3,4,SP] secondi",
"SMOG": "Proietta una nuova di gas puzzolente nelle tre celle di fronte, infliggendo [10,20,40,SP] SPECIAL. Il gas rimane sul campo fino alla fine del combattimento e riduce la precisione dei Pokèmon del 50%. ",
"LAVA_PLUME": "Proietta lava nelle 3 caselle in fronte all'utilizzatore, infliggendo [20,40,80,SP] SPECIAL. La lava rimane sul terreno, infliggendo 10 SPECIAL e causa BURN a tutti i Pokèmon non FIRE che ci camminano sopra.",
"LAVA_PLUME": "Proietta lava nelle 3 caselle in fronte all'utilizzatore, infliggendo [20,40,80,SP] SPECIAL. La lava rimane sul terreno, infliggendo 10 SPECIAL e causa BURN a tutti i Pokèmon non FIRE/FLYING che ci camminano sopra.",
"SHELTER": "Aumenta la DEF di [3,6,12,SP] e proietta un muro di fumo nelle 3 celle di fronte. Il fumo rimane sul campo fino alla fine del combattimento e riduce la precisione dei Pokèmon del 50%. ",
"AURORA_BEAM": "Spara un raggio in linea retta. Tutti i bersagli colpiti prendono [25,50,100,SP] SPECIAL e possono subire lo status FREEZE (probabilità basata sull'attuale livello di sinergia di ghiaccio).",
"AGILITY": "Aumenta la ATK_SPEED del [10,20,30,SP]%. L'effetto è cumulativo.",
Expand Down
2 changes: 1 addition & 1 deletion app/public/dist/client/sw.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* Change this cache name every time you want to force players
to invalidate their cache and download all assets again */

const CACHE_NAME = "CACHE v5.7.0.399"
const CACHE_NAME = "CACHE v5.8.0.403"

// Cache-first strategy
const cacheFirst = (event) => {
Expand Down
Binary file added app/public/src/assets/abilities{tps}/EMBER/000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/003.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/004.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/005.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/006.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/007.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/public/src/assets/abilities{tps}/EMBER/008.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/000.png
Binary file not shown.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/001.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/002.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/003.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/004.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/005.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/006.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/007.png
Diff not rendered.
Binary file removed app/public/src/assets/abilities{tps}/LAVA/008.png
Diff not rendered.
Loading

0 comments on commit 79dcc01

Please sign in to comment.