From 11ee81091b61d74cd24b6f3263bf769000d3cc40 Mon Sep 17 00:00:00 2001 From: shayebeadling Date: Tue, 23 Apr 2024 09:43:35 -0400 Subject: [PATCH] Implements hospitality (#252) * implements hospitality * 1/8 -> 1/4 * shows animation * Minor nitpicks --------- Co-authored-by: Flashfyre --- src/data/ability.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index bfc608dc7e0..e0bd24b4e62 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -1245,6 +1245,29 @@ export class PostSummonStatChangeAbAttr extends PostSummonAbAttr { } } +export class PostSummonAllyHealAbAttr extends PostSummonAbAttr { + private healRatio: number; + private showAnim: boolean; + + constructor(healRatio: number, showAnim: boolean = false) { + super(); + + this.healRatio = healRatio || 4; + this.showAnim = showAnim; + } + + applyPostSummon(pokemon: Pokemon, passive: boolean, args: any[]): boolean { + const target = pokemon.getAlly(); + if (target?.isActive(true)) { + target.scene.unshiftPhase(new PokemonHealPhase(target.scene, target.getBattlerIndex(), + Math.max(Math.floor(pokemon.getMaxHp() / this.healRatio), 1), getPokemonMessage(target, ` drank down all the\nmatcha that ${pokemon.name} made!`), true, !this.showAnim)); + return true; + } + + return false; + } +} + export class DownloadAbAttr extends PostSummonAbAttr { private enemyDef: integer; private enemySpDef: integer; @@ -3185,7 +3208,8 @@ export function initAbilities() { new Ability(Abilities.MINDS_EYE, "Mind's Eye (N)", "The Pokémon ignores changes to opponents' evasiveness, its accuracy can't be lowered, and it can hit Ghost types with Normal- and Fighting-type moves.", 9) .ignorable(), new Ability(Abilities.SUPERSWEET_SYRUP, "Supersweet Syrup (N)", "A sickly sweet scent spreads across the field the first time the Pokémon enters a battle, lowering the evasiveness of opposing Pokémon.", 9), - new Ability(Abilities.HOSPITALITY, "Hospitality (N)", "When the Pokémon enters a battle, it showers its ally with hospitality, restoring a small amount of the ally's HP.", 9), + new Ability(Abilities.HOSPITALITY, "Hospitality", "When the Pokémon enters a battle, it showers its ally with hospitality, restoring a small amount of the ally's HP.", 9) + .attr(PostSummonAllyHealAbAttr, 4, true), new Ability(Abilities.TOXIC_CHAIN, "Toxic Chain", "The power of the Pokémon's toxic chain may badly poison any target the Pokémon hits with a move.", 9) .attr(PostAttackApplyStatusEffectAbAttr, false, 30, StatusEffect.TOXIC), new Ability(Abilities.EMBODY_ASPECT_TEAL, "Embody Aspect", "The Pokémon's heart fills with memories, causing the Teal Mask to shine and the Pokémon's Speed stat to be boosted.", 9)