Add items and ability to summary

pull/1/head
Flashfyre 2023-04-23 18:40:21 -04:00
parent db5db61272
commit ebdfb7b4cb
5 changed files with 248 additions and 190 deletions

View File

@ -183,6 +183,8 @@ export default class BattleScene extends Phaser.Scene {
this.loadImage('summary_moves_overlay_row', 'ui'); this.loadImage('summary_moves_overlay_row', 'ui');
this.loadImage('summary_moves_overlay_pp', 'ui'); this.loadImage('summary_moves_overlay_pp', 'ui');
this.loadAtlas('summary_moves_cursor', 'ui'); this.loadAtlas('summary_moves_cursor', 'ui');
for (let t = 1; t <= 3; t++)
this.loadImage(`summary_tabs_${t}`, 'ui');
for (let o = 1; o <= 3; o++) for (let o = 1; o <= 3; o++)
this.loadImage(`option_select_window_${o}`, 'ui'); this.loadImage(`option_select_window_${o}`, 'ui');

View File

@ -187,174 +187,175 @@ export enum Abilities {
} }
export const abilities = [ export const abilities = [
new Ability(Abilities.AIR_LOCK, "Air Lock", "Eliminates the effects of weather.", 3), new Ability(Abilities.NONE, "- (N)", "", 3),
new Ability(Abilities.ARENA_TRAP, "Arena Trap", "Prevents the foe from fleeing.", 3), new Ability(Abilities.AIR_LOCK, "Air Lock (N)", "Eliminates the effects of weather.", 3),
new Ability(Abilities.BATTLE_ARMOR, "Battle Armor", "The POKéMON is protected against critical hits.", 3), new Ability(Abilities.ARENA_TRAP, "Arena Trap (N)", "Prevents the foe from fleeing.", 3),
new Ability(Abilities.BLAZE, "Blaze", "Powers up Fire-type moves in a pinch.", 3), new Ability(Abilities.BATTLE_ARMOR, "Battle Armor (N)", "The POKéMON is protected against critical hits.", 3),
new Ability(Abilities.CHLOROPHYLL, "Chlorophyll", "Boosts the POKéMON's SPEED in sunshine.", 3), new Ability(Abilities.BLAZE, "Blaze (N)", "Powers up FIRE-type moves in a pinch.", 3),
new Ability(Abilities.CLEAR_BODY, "Clear Body", "Prevents other POKéMON from lowering its stats.", 3), new Ability(Abilities.CHLOROPHYLL, "Chlorophyll (N)", "Boosts the POKéMON's SPEED in sunshine.", 3),
new Ability(Abilities.CLOUD_NINE, "Cloud Nine", "Eliminates the effects of weather.", 3), new Ability(Abilities.CLEAR_BODY, "Clear Body (N)", "Prevents other POKéMON from lowering its stats.", 3),
new Ability(Abilities.COLOR_CHANGE, "Color Change", "Changes the POKéMON's type to the foe's move.", 3), new Ability(Abilities.CLOUD_NINE, "Cloud Nine (N)", "Eliminates the effects of weather.", 3),
new Ability(Abilities.COMPOUND_EYES, "Compound Eyes", "The POKéMON's accuracy is boosted.", 3), new Ability(Abilities.COLOR_CHANGE, "Color Change (N)", "Changes the POKéMON's type to the foe's move.", 3),
new Ability(Abilities.CUTE_CHARM, "Cute Charm", "Contact with the POKéMON may cause infatuation.", 3), new Ability(Abilities.COMPOUND_EYES, "Compound Eyes (N)", "The POKéMON's accuracy is boosted.", 3),
new Ability(Abilities.DAMP, "Damp", "Prevents the use of self-destructing moves.", 3), new Ability(Abilities.CUTE_CHARM, "Cute Charm (N)", "Contact with the POKéMON may cause infatuation.", 3),
new Ability(Abilities.DRIZZLE, "Drizzle", "The POKéMON makes it rain when it enters a battle.", 3), new Ability(Abilities.DAMP, "Damp (N)", "Prevents the use of self-destructing moves.", 3),
new Ability(Abilities.DROUGHT, "Drought", "Turns the sunlight harsh when the POKéMON enters a battle.", 3), new Ability(Abilities.DRIZZLE, "Drizzle (N)", "The POKéMON makes it rain when it enters a battle.", 3),
new Ability(Abilities.EARLY_BIRD, "Early Bird", "The POKéMON awakens quickly from sleep.", 3), new Ability(Abilities.DROUGHT, "Drought (N)", "Turns the sunlight harsh when the POKéMON enters a battle.", 3),
new Ability(Abilities.EFFECT_SPORE, "Effect Spore", "Contact may poison or cause paralysis or sleep.", 3), new Ability(Abilities.EARLY_BIRD, "Early Bird (N)", "The POKéMON awakens quickly from sleep.", 3),
new Ability(Abilities.FLAME_BODY, "Flame Body", "Contact with the POKéMON may burn the attacker.", 3), new Ability(Abilities.EFFECT_SPORE, "Effect Spore (N)", "Contact may poison or cause paralysis or sleep.", 3),
new Ability(Abilities.FLASH_FIRE, "Flash Fire", "It powers up Fire-type moves if it's hit by one.", 3), new Ability(Abilities.FLAME_BODY, "Flame Body (N)", "Contact with the POKéMON may burn the attacker.", 3),
new Ability(Abilities.FORECAST, "Forecast", "Castform transforms with the weather.", 3), new Ability(Abilities.FLASH_FIRE, "Flash Fire (N)", "It powers up FIRE-type moves if it's hit by one.", 3),
new Ability(Abilities.GUTS, "Guts", "Boosts ATTACK if there is a status problem.", 3), new Ability(Abilities.FORECAST, "Forecast (N)", "Castform transforms with the weather.", 3),
new Ability(Abilities.HUGE_POWER, "Huge Power", "Raises the POKéMON's ATTACK stat.", 3), new Ability(Abilities.GUTS, "Guts (N)", "Boosts ATTACK if there is a status problem.", 3),
new Ability(Abilities.HUSTLE, "Hustle", "Boosts the ATTACK stat, but lowers accuracy.", 3), new Ability(Abilities.HUGE_POWER, "Huge Power (N)", "Raises the POKéMON's ATTACK stat.", 3),
new Ability(Abilities.HYPER_CUTTER, "Hyper Cutter", "Prevents other POKéMON from lowering ATTACK stat.", 3), new Ability(Abilities.HUSTLE, "Hustle (N)", "Boosts the ATTACK stat, but lowers accuracy.", 3),
new Ability(Abilities.ILLUMINATE, "Illuminate", "Raises the likelihood of meeting wild POKéMON.", 3), new Ability(Abilities.HYPER_CUTTER, "Hyper Cutter (N)", "Prevents other POKéMON from lowering ATTACK stat.", 3),
new Ability(Abilities.IMMUNITY, "Immunity", "Prevents the POKéMON from getting poisoned.", 3), new Ability(Abilities.ILLUMINATE, "Illuminate (N)", "Raises the likelihood of meeting wild POKéMON.", 3),
new Ability(Abilities.INNER_FOCUS, "Inner Focus", "The POKéMON is protected from flinching.", 3), new Ability(Abilities.IMMUNITY, "Immunity (N)", "Prevents the POKéMON from getting poisoned.", 3),
new Ability(Abilities.INSOMNIA, "Insomnia", "Prevents the POKéMON from falling asleep.", 3), new Ability(Abilities.INNER_FOCUS, "Inner Focus (N)", "The POKéMON is protected from flinching.", 3),
new Ability(Abilities.INTIMIDATE, "Intimidate", "Lowers the foe's ATTACK stat.", 3), new Ability(Abilities.INSOMNIA, "Insomnia (N)", "Prevents the POKéMON from falling asleep.", 3),
new Ability(Abilities.KEEN_EYE, "Keen Eye", "Prevents other POKéMON from lowering accuracy.", 3), new Ability(Abilities.INTIMIDATE, "Intimidate (N)", "Lowers the foe's ATTACK stat.", 3),
new Ability(Abilities.LEVITATE, "Levitate", "Gives immunity to Ground type moves.", 3), new Ability(Abilities.KEEN_EYE, "Keen Eye (N)", "Prevents other POKéMON from lowering accuracy.", 3),
new Ability(Abilities.LIGHTNING_ROD, "Lightning Rod", "Draws in all Electric-type moves to up SP. ATK.", 3), new Ability(Abilities.LEVITATE, "Levitate (N)", "Gives immunity to GROUND-type moves.", 3),
new Ability(Abilities.LIMBER, "Limber", "The POKéMON is protected from paralysis.", 3), new Ability(Abilities.LIGHTNING_ROD, "Lightning Rod (N)", "Draws in all ELECTRIC-type moves to up SP. ATK.", 3),
new Ability(Abilities.LIQUID_OOZE, "Liquid Ooze", "Damages attackers using any draining move.", 3), new Ability(Abilities.LIMBER, "Limber (N)", "The POKéMON is protected from paralysis.", 3),
new Ability(Abilities.MAGMA_ARMOR, "Magma Armor", "Prevents the POKéMON from becoming frozen.", 3), new Ability(Abilities.LIQUID_OOZE, "Liquid Ooze (N)", "Damages attackers using any draining move.", 3),
new Ability(Abilities.MAGNET_PULL, "Magnet Pull", "Prevents Steel-type POKéMON from escaping.", 3), new Ability(Abilities.MAGMA_ARMOR, "Magma Armor (N)", "Prevents the POKéMON from becoming frozen.", 3),
new Ability(Abilities.MARVEL_SCALE, "Marvel Scale", "Ups DEFENSE if there is a status problem.", 3), new Ability(Abilities.MAGNET_PULL, "Magnet Pull (N)", "Prevents STEEL-type POKéMON from escaping.", 3),
new Ability(Abilities.MINUS, "Minus", "Ups SP. ATK if another POKéMON has Plus or Minus.", 3), new Ability(Abilities.MARVEL_SCALE, "Marvel Scale (N)", "Ups DEFENSE if there is a status problem.", 3),
new Ability(Abilities.NATURAL_CURE, "Natural Cure", "All status problems heal when it switches out.", 3), new Ability(Abilities.MINUS, "Minus (N)", "Ups SP. ATK if another POKéMON has PLUS or MINUS.", 3),
new Ability(Abilities.OBLIVIOUS, "Oblivious", "Prevents it from becoming infatuated.", 3), new Ability(Abilities.NATURAL_CURE, "Natural Cure (N)", "All status problems heal when it switches out.", 3),
new Ability(Abilities.OVERGROW, "Overgrow", "Powers up Grass-type moves in a pinch.", 3), new Ability(Abilities.OBLIVIOUS, "Oblivious (N)", "Prevents it from becoming infatuated.", 3),
new Ability(Abilities.OWN_TEMPO, "Own Tempo", "Prevents the POKéMON from becoming confused.", 3), new Ability(Abilities.OVERGROW, "Overgrow (N)", "Powers up GRASS-type moves in a pinch.", 3),
new Ability(Abilities.PICKUP, "Pickup", "The POKéMON may pick up items.", 3), new Ability(Abilities.OWN_TEMPO, "Own Tempo (N)", "Prevents the POKéMON from becoming confused.", 3),
new Ability(Abilities.PLUS, "Plus", "Ups SP. ATK if another POKéMON has Plus or Minus.", 3), new Ability(Abilities.PICKUP, "Pickup (N)", "The POKéMON may pick up items.", 3),
new Ability(Abilities.POISON_POINT, "Poison Point", "Contact with the POKéMON may poison the attacker.", 3), new Ability(Abilities.PLUS, "Plus (N)", "Ups SP. ATK if another POKéMON has PLUS or MINUS.", 3),
new Ability(Abilities.PRESSURE, "Pressure", "The POKéMON raises the foe's PP usage.", 3), new Ability(Abilities.POISON_POINT, "Poison Point (N)", "Contact with the POKéMON may poison the attacker.", 3),
new Ability(Abilities.PURE_POWER, "Pure Power", "Raises the POKéMON's ATTACK stat.", 3), new Ability(Abilities.PRESSURE, "Pressure (N)", "The POKéMON raises the foe's PP usage.", 3),
new Ability(Abilities.RAIN_DISH, "Rain Dish", "The POKéMON gradually regains HP in rain.", 3), new Ability(Abilities.PURE_POWER, "Pure Power (N)", "Raises the POKéMON's ATTACK stat.", 3),
new Ability(Abilities.ROCK_HEAD, "Rock Head", "Protects the POKéMON from recoil damage.", 3), new Ability(Abilities.RAIN_DISH, "Rain Dish (N)", "The POKéMON gradually regains HP in rain.", 3),
new Ability(Abilities.ROUGH_SKIN, "Rough Skin", "Inflicts damage to the attacker on contact.", 3), new Ability(Abilities.ROCK_HEAD, "Rock Head (N)", "Protects the POKéMON from recoil damage.", 3),
new Ability(Abilities.RUN_AWAY, "Run Away", "Enables a sure getaway from wild POKéMON.", 3), new Ability(Abilities.ROUGH_SKIN, "Rough Skin (N)", "Inflicts damage to the attacker on contact.", 3),
new Ability(Abilities.SAND_STREAM, "Sand Stream", "The POKéMON summons a sandstorm in battle.", 3), new Ability(Abilities.RUN_AWAY, "Run Away (N)", "Enables a sure getaway from wild POKéMON.", 3),
new Ability(Abilities.SAND_VEIL, "Sand Veil", "Boosts the POKéMON's evasion in a sandstorm.", 3), new Ability(Abilities.SAND_STREAM, "Sand Stream (N)", "The POKéMON summons a sandstorm in battle.", 3),
new Ability(Abilities.SERENE_GRACE, "Serene Grace", "Boosts the likelihood of added effects appearing.", 3), new Ability(Abilities.SAND_VEIL, "Sand Veil (N)", "Boosts the POKéMON's evasion in a sandstorm.", 3),
new Ability(Abilities.SHADOW_TAG, "Shadow Tag", "Prevents the foe from escaping.", 3), new Ability(Abilities.SERENE_GRACE, "Serene Grace (N)", "Boosts the likelihood of added effects appearing.", 3),
new Ability(Abilities.SHED_SKIN, "Shed Skin", "The POKéMON may heal its own status problems.", 3), new Ability(Abilities.SHADOW_TAG, "Shadow Tag (N)", "Prevents the foe from escaping.", 3),
new Ability(Abilities.SHELL_ARMOR, "Shell Armor", "The POKéMON is protected against critical hits.", 3), new Ability(Abilities.SHED_SKIN, "Shed Skin (N)", "The POKéMON may heal its own status problems.", 3),
new Ability(Abilities.SHIELD_DUST, "Shield Dust", "Blocks the added effects of attacks taken.", 3), new Ability(Abilities.SHELL_ARMOR, "Shell Armor (N)", "The POKéMON is protected against critical hits.", 3),
new Ability(Abilities.SOUNDPROOF, "Soundproof", "Gives immunity to sound-based moves.", 3), new Ability(Abilities.SHIELD_DUST, "Shield Dust (N)", "Blocks the added effects of attacks taken.", 3),
new Ability(Abilities.SPEED_BOOST, "Speed Boost", "Its SPEED stat is gradually boosted.", 3), new Ability(Abilities.SOUNDPROOF, "Soundproof (N)", "Gives immunity to sound-based moves.", 3),
new Ability(Abilities.STATIC, "Static", "Contact with the POKéMON may cause paralysis.", 3), new Ability(Abilities.SPEED_BOOST, "Speed Boost (N)", "Its SPEED stat is gradually boosted.", 3),
new Ability(Abilities.STENCH, "Stench", "The stench may cause the target to flinch.", 3), new Ability(Abilities.STATIC, "Static (N)", "Contact with the POKéMON may cause paralysis.", 3),
new Ability(Abilities.STICKY_HOLD, "Sticky Hold", "Protects the POKéMON from item theft.", 3), new Ability(Abilities.STENCH, "Stench (N)", "The stench may cause the target to flinch.", 3),
new Ability(Abilities.STURDY, "Sturdy", "It cannot be knocked out with one hit.", 3), new Ability(Abilities.STICKY_HOLD, "Sticky Hold (N)", "Protects the POKéMON from item theft.", 3),
new Ability(Abilities.SUCTION_CUPS, "Suction Cups", "Negates all moves that force switching out.", 3), new Ability(Abilities.STURDY, "Sturdy (N)", "It cannot be knocked out with one hit.", 3),
new Ability(Abilities.SWARM, "Swarm", "Powers up Bug-type moves in a pinch.", 3), new Ability(Abilities.SUCTION_CUPS, "Suction Cups (N)", "Negates all moves that force switching out.", 3),
new Ability(Abilities.SWIFT_SWIM, "Swift Swim", "Boosts the POKéMON's SPEED in rain.", 3), new Ability(Abilities.SWARM, "Swarm (N)", "Powers up BUG-type moves in a pinch.", 3),
new Ability(Abilities.SYNCHRONIZE, "Synchronize", "Passes a burn, poison, or paralysis to the foe.", 3), new Ability(Abilities.SWIFT_SWIM, "Swift Swim (N)", "Boosts the POKéMON's SPEED in rain.", 3),
new Ability(Abilities.THICK_FAT, "Thick Fat", "Ups resistance to Fire- and Ice-type moves.", 3), new Ability(Abilities.SYNCHRONIZE, "Synchronize (N)", "Passes a burn, poison, or paralysis to the foe.", 3),
new Ability(Abilities.TORRENT, "Torrent", "Powers up Water-type moves in a pinch.", 3), new Ability(Abilities.THICK_FAT, "Thick Fat (N)", "Ups resistance to Fire- and ICE-type moves.", 3),
new Ability(Abilities.TRACE, "Trace", "The POKéMON copies a foe's Ability.", 3), new Ability(Abilities.TORRENT, "Torrent (N)", "Powers up WATER-type moves in a pinch.", 3),
new Ability(Abilities.TRUANT, "Truant", "POKéMON can't attack on consecutive turns.", 3), new Ability(Abilities.TRACE, "Trace (N)", "The POKéMON copies a foe's Ability.", 3),
new Ability(Abilities.VITAL_SPIRIT, "Vital Spirit", "Prevents the POKéMON from falling asleep.", 3), new Ability(Abilities.TRUANT, "Truant (N)", "POKéMON can't attack on consecutive turns.", 3),
new Ability(Abilities.VOLT_ABSORB, "Volt Absorb", "Restores HP if hit by an Electric-type move.", 3), new Ability(Abilities.VITAL_SPIRIT, "Vital Spirit (N)", "Prevents the POKéMON from falling asleep.", 3),
new Ability(Abilities.WATER_ABSORB, "Water Absorb", "Restores HP if hit by a Water-type move.", 3), new Ability(Abilities.VOLT_ABSORB, "Volt Absorb (N)", "Restores HP if hit by an ELECTRIC-type move.", 3),
new Ability(Abilities.WATER_VEIL, "Water Veil", "Prevents the POKéMON from getting a burn.", 3), new Ability(Abilities.WATER_ABSORB, "Water Absorb (N)", "Restores HP if hit by a WATER-type move.", 3),
new Ability(Abilities.WHITE_SMOKE, "White Smoke", "Prevents other POKéMON from lowering its stats.", 3), new Ability(Abilities.WATER_VEIL, "Water Veil (N)", "Prevents the POKéMON from getting a burn.", 3),
new Ability(Abilities.WONDER_GUARD, "Wonder Guard", "Only supereffective moves will hit.", 3), new Ability(Abilities.WHITE_SMOKE, "White Smoke (N)", "Prevents other POKéMON from lowering its stats.", 3),
new Ability(Abilities.ADAPTABILITY, "Adaptability", "Powers up moves of the same type.", 4), new Ability(Abilities.WONDER_GUARD, "Wonder Guard (N)", "Only supereffective moves will hit.", 3),
new Ability(Abilities.AFTERMATH, "Aftermath", "Damages the attacker landing the finishing hit.", 4), new Ability(Abilities.ADAPTABILITY, "Adaptability (N)", "Powers up moves of the same type.", 4),
new Ability(Abilities.ANGER_POINT, "Anger Point", "Maxes ATTACK after taking a critical hit.", 4), new Ability(Abilities.AFTERMATH, "Aftermath (N)", "Damages the attacker landing the finishing hit.", 4),
new Ability(Abilities.ANTICIPATION, "Anticipation", "Senses a foe's dangerous moves.", 4), new Ability(Abilities.ANGER_POINT, "Anger Point (N)", "Maxes ATTACK after taking a critical hit.", 4),
new Ability(Abilities.BAD_DREAMS, "Bad Dreams", "Reduces a sleeping foe's HP.", 4), new Ability(Abilities.ANTICIPATION, "Anticipation (N)", "Senses a foe's dangerous moves.", 4),
new Ability(Abilities.DOWNLOAD, "Download", "Adjusts power according to a foe's defenses.", 4), new Ability(Abilities.BAD_DREAMS, "Bad Dreams (N)", "Reduces a sleeping foe's HP.", 4),
new Ability(Abilities.DRY_SKIN, "Dry Skin", "Reduces HP if it is hot. Water restores HP.", 4), new Ability(Abilities.DOWNLOAD, "Download (N)", "Adjusts power according to a foe's defenses.", 4),
new Ability(Abilities.FILTER, "Filter", "Reduces damage from super-effective attacks.", 4), new Ability(Abilities.DRY_SKIN, "Dry Skin (N)", "Reduces HP if it is hot. Water restores HP.", 4),
new Ability(Abilities.FLOWER_GIFT, "Flower Gift", "Powers up party POKéMON when it is sunny.", 4), new Ability(Abilities.FILTER, "Filter (N)", "Reduces damage from super-effective attacks.", 4),
new Ability(Abilities.FOREWARN, "Forewarn", "Determines what moves a foe has.", 4), new Ability(Abilities.FLOWER_GIFT, "Flower Gift (N)", "Powers up party POKéMON when it is sunny.", 4),
new Ability(Abilities.FRISK, "Frisk", "The POKéMON can check a foe's held item.", 4), new Ability(Abilities.FOREWARN, "Forewarn (N)", "Determines what moves a foe has.", 4),
new Ability(Abilities.GLUTTONY, "Gluttony", "Encourages the early use of a held Berry.", 4), new Ability(Abilities.FRISK, "Frisk (N)", "The POKéMON can check a foe's held item.", 4),
new Ability(Abilities.HEATPROOF, "Heatproof", "Weakens the power of Fire-type moves.", 4), new Ability(Abilities.GLUTTONY, "Gluttony (N)", "Encourages the early use of a held Berry.", 4),
new Ability(Abilities.HONEY_GATHER, "Honey Gather", "The POKéMON may gather Honey from somewhere.", 4), new Ability(Abilities.HEATPROOF, "Heatproof (N)", "Weakens the power of FIRE-type moves.", 4),
new Ability(Abilities.HYDRATION, "Hydration", "Heals status problems if it is raining.", 4), new Ability(Abilities.HONEY_GATHER, "Honey Gather (N)", "The POKéMON may gather Honey from somewhere.", 4),
new Ability(Abilities.ICE_BODY, "Ice Body", "The POKéMON gradually regains HP in a hailstorm.", 4), new Ability(Abilities.HYDRATION, "Hydration (N)", "Heals status problems if it is raining.", 4),
new Ability(Abilities.IRON_FIST, "Iron Fist", "Boosts the power of punching moves.", 4), new Ability(Abilities.ICE_BODY, "Ice Body (N)", "The POKéMON gradually regains HP in a hailstorm.", 4),
new Ability(Abilities.KLUTZ, "Klutz", "The POKéMON can't use any held items.", 4), new Ability(Abilities.IRON_FIST, "Iron Fist (N)", "Boosts the power of punching moves.", 4),
new Ability(Abilities.LEAF_GUARD, "Leaf Guard", "Prevents problems with status in sunny weather.", 4), new Ability(Abilities.KLUTZ, "Klutz (N)", "The POKéMON can't use any held items.", 4),
new Ability(Abilities.MAGIC_GUARD, "Magic Guard", "Protects the POKéMON from indirect damage.", 4), new Ability(Abilities.LEAF_GUARD, "Leaf Guard (N)", "Prevents problems with status in sunny weather.", 4),
new Ability(Abilities.MOLD_BREAKER, "Mold Breaker", "Moves can be used regardless of Abilities.", 4), new Ability(Abilities.MAGIC_GUARD, "Magic Guard (N)", "Protects the POKéMON from indirect damage.", 4),
new Ability(Abilities.MOTOR_DRIVE, "Motor Drive", "Raises SPEED if hit by an Electric-type move.", 4), new Ability(Abilities.MOLD_BREAKER, "Mold Breaker (N)", "Moves can be used regardless of Abilities.", 4),
new Ability(Abilities.MULTITYPE, "Multitype", "Changes type to match the held Plate.", 4), new Ability(Abilities.MOTOR_DRIVE, "Motor Drive (N)", "Raises SPEED if hit by an ELECTRIC-type move.", 4),
new Ability(Abilities.NO_GUARD, "No Guard", "Ensures attacks by or against the POKéMON land.", 4), new Ability(Abilities.MULTITYPE, "Multitype (N)", "Changes type to match the held Plate.", 4),
new Ability(Abilities.NORMALIZE, "Normalize", "All the POKéMON's moves become the Normal type.", 4), new Ability(Abilities.NO_GUARD, "No Guard (N)", "Ensures attacks by or against the POKéMON land.", 4),
new Ability(Abilities.POISON_HEAL, "Poison Heal", "Restores HP if the POKéMON is poisoned.", 4), new Ability(Abilities.NORMALIZE, "Normalize (N)", "All the POKéMON's moves become the NORMAL type.", 4),
new Ability(Abilities.QUICK_FEET, "Quick Feet", "Boosts SPEED if there is a status problem.", 4), new Ability(Abilities.POISON_HEAL, "Poison Heal (N)", "Restores HP if the POKéMON is poisoned.", 4),
new Ability(Abilities.RECKLESS, "Reckless", "Powers up moves that have recoil damage.", 4), new Ability(Abilities.QUICK_FEET, "Quick Feet (N)", "Boosts SPEED if there is a status problem.", 4),
new Ability(Abilities.RIVALRY, "Rivalry", "Deals more damage to a POKéMON of same gender.", 4), new Ability(Abilities.RECKLESS, "Reckless (N)", "Powers up moves that have recoil damage.", 4),
new Ability(Abilities.SCRAPPY, "Scrappy", "Enables moves to hit Ghost-type POKéMON.", 4), new Ability(Abilities.RIVALRY, "Rivalry (N)", "Deals more damage to a POKéMON of same gender.", 4),
new Ability(Abilities.SIMPLE, "Simple", "Doubles all stat changes.", 4), new Ability(Abilities.SCRAPPY, "Scrappy (N)", "Enables moves to hit GHOST-type POKéMON.", 4),
new Ability(Abilities.SKILL_LINK, "Skill Link", "Increases the frequency of multi-strike moves.", 4), new Ability(Abilities.SIMPLE, "Simple (N)", "Doubles all stat changes.", 4),
new Ability(Abilities.SLOW_START, "Slow Start", "Temporarily halves ATTACK and SPEED.", 4), new Ability(Abilities.SKILL_LINK, "Skill Link (N)", "Increases the frequency of multi-strike moves.", 4),
new Ability(Abilities.SNIPER, "Sniper", "Powers up moves if they become critical hits.", 4), new Ability(Abilities.SLOW_START, "Slow Start (N)", "Temporarily halves ATTACK and SPEED.", 4),
new Ability(Abilities.SNOW_CLOAK, "Snow Cloak", "Raises evasion in a hailstorm.", 4), new Ability(Abilities.SNIPER, "Sniper (N)", "Powers up moves if they become critical hits.", 4),
new Ability(Abilities.SNOW_WARNING, "Snow Warning", "The POKéMON summons a hailstorm in battle.", 4), new Ability(Abilities.SNOW_CLOAK, "Snow Cloak (N)", "Raises evasion in a hailstorm.", 4),
new Ability(Abilities.SOLAR_POWER, "Solar Power", "In sunshine, SP. ATK is boosted but HP decreases.", 4), new Ability(Abilities.SNOW_WARNING, "Snow Warning (N)", "The POKéMON summons a hailstorm in battle.", 4),
new Ability(Abilities.SOLID_ROCK, "Solid Rock", "Reduces damage from super-effective attacks.", 4), new Ability(Abilities.SOLAR_POWER, "Solar Power (N)", "In sunshine, SP. ATK is boosted but HP decreases.", 4),
new Ability(Abilities.STALL, "Stall", "The POKéMON moves after all other POKéMON do.", 4), new Ability(Abilities.SOLID_ROCK, "Solid Rock (N)", "Reduces damage from super-effective attacks.", 4),
new Ability(Abilities.STEADFAST, "Steadfast", "Raises SPEED each time the POKéMON flinches.", 4), new Ability(Abilities.STALL, "Stall (N)", "The POKéMON moves after all other POKéMON do.", 4),
new Ability(Abilities.STORM_DRAIN, "Storm Drain", "Draws in all Water-type moves to up SP. ATK.", 4), new Ability(Abilities.STEADFAST, "Steadfast (N)", "Raises SPEED each time the POKéMON flinches.", 4),
new Ability(Abilities.SUPER_LUCK, "Super Luck", "Heightens the critical-hit ratios of moves.", 4), new Ability(Abilities.STORM_DRAIN, "Storm Drain (N)", "Draws in all WATER-type moves to up SP. ATK.", 4),
new Ability(Abilities.TANGLED_FEET, "Tangled Feet", "Raises evasion if the POKéMON is confused.", 4), new Ability(Abilities.SUPER_LUCK, "Super Luck (N)", "Heightens the critical-hit ratios of moves.", 4),
new Ability(Abilities.TECHNICIAN, "Technician", "Powers up the POKéMON's weaker moves.", 4), new Ability(Abilities.TANGLED_FEET, "Tangled Feet (N)", "Raises evasion if the POKéMON is confused.", 4),
new Ability(Abilities.TINTED_LENS, "Tinted Lens", "Powers up “not very effective” moves.", 4), new Ability(Abilities.TECHNICIAN, "Technician (N)", "Powers up the POKéMON's weaker moves.", 4),
new Ability(Abilities.UNAWARE, "Unaware", "Ignores any stat changes in the POKéMON.", 4), new Ability(Abilities.TINTED_LENS, "Tinted Lens (N)", "Powers up “not very effective” moves.", 4),
new Ability(Abilities.UNBURDEN, "Unburden", "Raises SPEED if a held item is used.", 4), new Ability(Abilities.UNAWARE, "Unaware (N)", "Ignores any stat changes in the POKéMON.", 4),
new Ability(Abilities.ANALYTIC, "Analytic", "Boosts move power when the POKéMON moves last.", 5), new Ability(Abilities.UNBURDEN, "Unburden (N)", "Raises SPEED if a held item is used.", 4),
new Ability(Abilities.BIG_PECKS, "Big Pecks", "Protects the POKéMON from DEFENSE-lowering attacks.", 5), new Ability(Abilities.ANALYTIC, "Analytic (N)", "Boosts move power when the POKéMON moves last.", 5),
new Ability(Abilities.CONTRARY, "Contrary", "Makes stat changes have an opposite effect.", 5), new Ability(Abilities.BIG_PECKS, "Big Pecks (N)", "Protects the POKéMON from DEFENSE-lowering attacks.", 5),
new Ability(Abilities.CURSED_BODY, "Cursed Body", "May disable a move used on the POKéMON.", 5), new Ability(Abilities.CONTRARY, "Contrary (N)", "Makes stat changes have an opposite effect.", 5),
new Ability(Abilities.DEFEATIST, "Defeatist", "Lowers stats when HP drops below half.", 5), new Ability(Abilities.CURSED_BODY, "Cursed Body (N)", "May disable a move used on the POKéMON.", 5),
new Ability(Abilities.DEFIANT, "Defiant", "Sharply raises ATTACK when the POKéMON's stats are lowered.", 5), new Ability(Abilities.DEFEATIST, "Defeatist (N)", "Lowers stats when HP drops below half.", 5),
new Ability(Abilities.FLARE_BOOST, "Flare Boost", "Powers up special attacks when burned.", 5), new Ability(Abilities.DEFIANT, "Defiant (N)", "Sharply raises ATTACK when the POKéMON's stats are lowered.", 5),
new Ability(Abilities.FRIEND_GUARD, "Friend Guard", "Reduces damage done to allies.", 5), new Ability(Abilities.FLARE_BOOST, "Flare Boost (N)", "Powers up special attacks when burned.", 5),
new Ability(Abilities.HARVEST, "Harvest", "May create another Berry after one is used.", 5), new Ability(Abilities.FRIEND_GUARD, "Friend Guard (N)", "Reduces damage done to allies.", 5),
new Ability(Abilities.HEALER, "Healer", "May heal an ally's status conditions.", 5), new Ability(Abilities.HARVEST, "Harvest (N)", "May create another Berry after one is used.", 5),
new Ability(Abilities.HEAVY_METAL, "Heavy Metal", "Doubles the POKéMON's weight.", 5), new Ability(Abilities.HEALER, "Healer (N)", "May heal an ally's status conditions.", 5),
new Ability(Abilities.ILLUSION, "Illusion", "Enters battle disguised as the last POKéMON in the party.", 5), new Ability(Abilities.HEAVY_METAL, "Heavy Metal (N)", "Doubles the POKéMON's weight.", 5),
new Ability(Abilities.IMPOSTER, "Imposter", "It transforms itself into the POKéMON it is facing.", 5), new Ability(Abilities.ILLUSION, "Illusion (N)", "Enters battle disguised as the last POKéMON in the party.", 5),
new Ability(Abilities.INFILTRATOR, "Infiltrator", "Passes through the foe's barrier and strikes.", 5), new Ability(Abilities.IMPOSTER, "Imposter (N)", "It transforms itself into the POKéMON it is facing.", 5),
new Ability(Abilities.IRON_BARBS, "Iron Barbs", "Inflicts damage to the POKéMON on contact.", 5), new Ability(Abilities.INFILTRATOR, "Infiltrator (N)", "Passes through the foe's barrier and strikes.", 5),
new Ability(Abilities.JUSTIFIED, "Justified", "Raises ATTACK when hit by a Dark-type move.", 5), new Ability(Abilities.IRON_BARBS, "Iron Barbs (N)", "Inflicts damage to the POKéMON on contact.", 5),
new Ability(Abilities.LIGHT_METAL, "Light Metal", "Halves the POKéMON's weight.", 5), new Ability(Abilities.JUSTIFIED, "Justified (N)", "Raises ATTACK when hit by a DARK-type move.", 5),
new Ability(Abilities.MAGIC_BOUNCE, "Magic Bounce", "Reflects status- changing moves.", 5), new Ability(Abilities.LIGHT_METAL, "Light Metal (N)", "Halves the POKéMON's weight.", 5),
new Ability(Abilities.MOODY, "Moody", "Raises one stat and lowers another.", 5), new Ability(Abilities.MAGIC_BOUNCE, "Magic Bounce (N)", "Reflects status- changing moves.", 5),
new Ability(Abilities.MOXIE, "Moxie", "Boosts ATTACK after knocking out any POKéMON.", 5), new Ability(Abilities.MOODY, "Moody (N)", "Raises one stat and lowers another.", 5),
new Ability(Abilities.MULTISCALE, "Multiscale", "Reduces damage when HP is full.", 5), new Ability(Abilities.MOXIE, "Moxie (N)", "Boosts ATTACK after knocking out any POKéMON.", 5),
new Ability(Abilities.MUMMY, "Mummy", "Contact with this POKéMON spreads this Ability.", 5), new Ability(Abilities.MULTISCALE, "Multiscale (N)", "Reduces damage when HP is full.", 5),
new Ability(Abilities.OVERCOAT, "Overcoat", "Protects the POKéMON from weather damage.", 5), new Ability(Abilities.MUMMY, "Mummy (N)", "Contact with this POKéMON spreads this Ability.", 5),
new Ability(Abilities.PICKPOCKET, "Pickpocket", "Steals an item when hit by another POKéMON.", 5), new Ability(Abilities.OVERCOAT, "Overcoat (N)", "Protects the POKéMON from weather damage.", 5),
new Ability(Abilities.POISON_TOUCH, "Poison Touch", "May poison targets when a POKéMON makes contact.", 5), new Ability(Abilities.PICKPOCKET, "Pickpocket (N)", "Steals an item when hit by another POKéMON.", 5),
new Ability(Abilities.PRANKSTER, "Prankster", "Gives priority to a status move.", 5), new Ability(Abilities.POISON_TOUCH, "Poison Touch (N)", "May poison targets when a POKéMON makes contact.", 5),
new Ability(Abilities.RATTLED, "Rattled", "Bug, Ghost or Dark type moves scare it and boost its SPEED.", 5), new Ability(Abilities.PRANKSTER, "Prankster (N)", "Gives priority to a status move.", 5),
new Ability(Abilities.REGENERATOR, "Regenerator", "Restores a little HP when withdrawn from battle.", 5), new Ability(Abilities.RATTLED, "Rattled (N)", "BUG, GHOST or DARK type moves scare it and boost its SPEED.", 5),
new Ability(Abilities.SAND_FORCE, "Sand Force", "Boosts certain moves' power in a sandstorm.", 5), new Ability(Abilities.REGENERATOR, "Regenerator (N)", "Restores a little HP when withdrawn from battle.", 5),
new Ability(Abilities.SAND_RUSH, "Sand Rush", "Boosts the POKéMON's SPEED in a sandstorm.", 5), new Ability(Abilities.SAND_FORCE, "Sand Force (N)", "Boosts certain moves' power in a sandstorm.", 5),
new Ability(Abilities.SAP_SIPPER, "Sap Sipper", "Boosts ATTACK when hit by a Grass-type move.", 5), new Ability(Abilities.SAND_RUSH, "Sand Rush (N)", "Boosts the POKéMON's SPEED in a sandstorm.", 5),
new Ability(Abilities.SHEER_FORCE, "Sheer Force", "Removes added effects to increase move damage.", 5), new Ability(Abilities.SAP_SIPPER, "Sap Sipper (N)", "Boosts ATTACK when hit by a GRASS-type move.", 5),
new Ability(Abilities.TELEPATHY, "Telepathy", "Anticipates an ally's ATTACK and dodges it.", 5), new Ability(Abilities.SHEER_FORCE, "Sheer Force (N)", "Removes added effects to increase move damage.", 5),
new Ability(Abilities.TERAVOLT, "Teravolt", "Moves can be used regardless of Abilities.", 5), new Ability(Abilities.TELEPATHY, "Telepathy (N)", "Anticipates an ally's ATTACK and dodges it.", 5),
new Ability(Abilities.TOXIC_BOOST, "Toxic Boost", "Powers up physical attacks when poisoned.", 5), new Ability(Abilities.TERAVOLT, "Teravolt (N)", "Moves can be used regardless of Abilities.", 5),
new Ability(Abilities.TURBOBLAZE, "Turboblaze", "Moves can be used regardless of Abilities.", 5), new Ability(Abilities.TOXIC_BOOST, "Toxic Boost (N)", "Powers up physical attacks when poisoned.", 5),
new Ability(Abilities.UNNERVE, "Unnerve", "Makes the foe nervous and unable to eat Berries.", 5), new Ability(Abilities.TURBOBLAZE, "Turboblaze (N)", "Moves can be used regardless of Abilities.", 5),
new Ability(Abilities.VICTORY_STAR, "Victory Star", "Boosts the accuracy of its allies and itself.", 5), new Ability(Abilities.UNNERVE, "Unnerve (N)", "Makes the foe nervous and unable to eat Berries.", 5),
new Ability(Abilities.WEAK_ARMOR, "Weak Armor", "Physical attacks lower DEFENSE and raise SPEED.", 5), new Ability(Abilities.VICTORY_STAR, "Victory Star (N)", "Boosts the accuracy of its allies and itself.", 5),
new Ability(Abilities.WONDER_SKIN, "Wonder Skin", "Makes status-changing moves more likely to miss.", 5), new Ability(Abilities.WEAK_ARMOR, "Weak Armor (N)", "Physical attacks lower DEFENSE and raise SPEED.", 5),
new Ability(Abilities.ZEN_MODE, "Zen Mode", "Changes form when HP drops below half.", 5), new Ability(Abilities.WONDER_SKIN, "Wonder Skin (N)", "Makes status-changing moves more likely to miss.", 5),
new Ability(Abilities.COMPETITIVE, "Competitive", "Sharply raises SP. ATK when the POKéMON's stats are lowered.", 6), new Ability(Abilities.ZEN_MODE, "Zen Mode (N)", "Changes form when HP drops below half.", 5),
new Ability(Abilities.DARK_AURA, "Dark Aura", "Raises power of Dark type moves for all POKéMON in battle.", 6), new Ability(Abilities.COMPETITIVE, "Competitive (N)", "Sharply raises SP. ATK when the POKéMON's stats are lowered.", 6),
new Ability(Abilities.FAIRY_AURA, "Fairy Aura", "Raises power of Fairy type moves for all POKéMON in battle.", 6), new Ability(Abilities.DARK_AURA, "Dark Aura (N)", "Raises power of DARK type moves for all POKéMON in battle.", 6),
new Ability(Abilities.PROTEAN, "Protean", "Changes the POKéMON's type to its last used move.", 6), new Ability(Abilities.FAIRY_AURA, "Fairy Aura (N)", "Raises power of FAIRY type moves for all POKéMON in battle.", 6),
new Ability(Abilities.SLUSH_RUSH, "Slush Rush", "Boosts the POKéMON's SPEED stat in a hailstorm.", 7), new Ability(Abilities.PROTEAN, "Protean (N)", "Changes the POKéMON's type to its last used move.", 6),
new Ability(Abilities.NEUTRALIZING_GAS, "Neutralizing Gas", "Neutralizes abilities of all POKéMON in battle.", 8) new Ability(Abilities.SLUSH_RUSH, "Slush Rush (N)", "Boosts the POKéMON's SPEED stat in a hailstorm.", 7),
new Ability(Abilities.NEUTRALIZING_GAS, "Neutralizing Gas (N)", "Neutralizes abilities of all POKéMON in battle.", 8)
]; ];

View File

@ -3,7 +3,7 @@ import { LearnMovePhase, LevelUpPhase, PokemonHealPhase } from "../battle-phases
import BattleScene from "../battle-scene"; import BattleScene from "../battle-scene";
import { getLevelTotalExp } from "../data/exp"; import { getLevelTotalExp } from "../data/exp";
import { PokeballType } from "../data/pokeball"; import { PokeballType } from "../data/pokeball";
import Pokemon, { EnemyPokemon, PlayerPokemon } from "../pokemon"; import Pokemon, { PlayerPokemon } from "../pokemon";
import { Stat } from "../data/pokemon-stat"; import { Stat } from "../data/pokemon-stat";
import { addTextObject, TextStyle } from "../ui/text"; import { addTextObject, TextStyle } from "../ui/text";
import { Type } from '../data/type'; import { Type } from '../data/type';
@ -111,7 +111,7 @@ export abstract class PersistentModifier extends Modifier {
return 99; return 99;
} }
getIcon(scene: BattleScene): Phaser.GameObjects.Container { getIcon(scene: BattleScene, forSummary?: boolean): Phaser.GameObjects.Container {
const container = scene.add.container(0, 0); const container = scene.add.container(0, 0);
const item = scene.add.sprite(0, 12, 'items'); const item = scene.add.sprite(0, 12, 'items');
@ -252,29 +252,32 @@ export abstract class PokemonHeldItemModifier extends PersistentModifier {
return super.shouldApply(args) && args.length && args[0] instanceof Pokemon && (this.pokemonId === -1 || (args[0] as Pokemon).id === this.pokemonId); return super.shouldApply(args) && args.length && args[0] instanceof Pokemon && (this.pokemonId === -1 || (args[0] as Pokemon).id === this.pokemonId);
} }
getIcon(scene: BattleScene): Phaser.GameObjects.Container { getIcon(scene: BattleScene, forSummary?: boolean): Phaser.GameObjects.Container {
const container = scene.add.container(0, 0); const container = !forSummary ? scene.add.container(0, 0) : super.getIcon(scene);
const pokemon = this.getPokemon(scene); if (!forSummary) {
const pokemonIcon = scene.add.sprite(0, 8, pokemon.species.getIconAtlasKey()); const pokemon = this.getPokemon(scene);
pokemonIcon.play(pokemon.getIconKey()).stop(); const pokemonIcon = scene.add.sprite(0, 8, pokemon.species.getIconAtlasKey());
pokemonIcon.setOrigin(0, 0.5); pokemonIcon.play(pokemon.getIconKey()).stop();
pokemonIcon.setOrigin(0, 0.5);
container.add(pokemonIcon); container.add(pokemonIcon);
const item = scene.add.sprite(16, this.virtualStackCount ? 8 : 16, 'items'); const item = scene.add.sprite(16, this.virtualStackCount ? 8 : 16, 'items');
item.setScale(0.5); item.setScale(0.5);
item.setOrigin(0, 0.5); item.setOrigin(0, 0.5);
item.setTexture('items', this.type.iconImage); item.setTexture('items', this.type.iconImage);
container.add(item); container.add(item);
const stackText = this.getIconStackText(scene); const stackText = this.getIconStackText(scene);
if (stackText) if (stackText)
container.add(stackText); container.add(stackText);
const virtualStackText = this.getIconStackText(scene, true); const virtualStackText = this.getIconStackText(scene, true);
if (virtualStackText) if (virtualStackText)
container.add(virtualStackText); container.add(virtualStackText);
} else
container.setScale(0.5);
return container; return container;
} }

View File

@ -22,6 +22,7 @@ import { Species } from './data/species';
import { WeatherType } from './data/weather'; import { WeatherType } from './data/weather';
import { TempBattleStat } from './data/temp-battle-stat'; import { TempBattleStat } from './data/temp-battle-stat';
import { WeakenTypeTag as WeakenMoveTypeTag } from './data/arena-tag'; import { WeakenTypeTag as WeakenMoveTypeTag } from './data/arena-tag';
import { Biome } from './data/biome';
export default abstract class Pokemon extends Phaser.GameObjects.Container { export default abstract class Pokemon extends Phaser.GameObjects.Container {
public id: integer; public id: integer;
@ -829,11 +830,15 @@ export default interface Pokemon {
} }
export class PlayerPokemon extends Pokemon { export class PlayerPokemon extends Pokemon {
public metBiome: Biome;
public metLevel: integer;
public compatibleTms: Moves[]; public compatibleTms: Moves[];
constructor(scene: BattleScene, species: PokemonSpecies, level: integer, abilityIndex: integer, formIndex: integer, gender?: Gender, shiny?: boolean, dataSource?: Pokemon) { constructor(scene: BattleScene, species: PokemonSpecies, level: integer, abilityIndex: integer, formIndex: integer, gender?: Gender, shiny?: boolean, dataSource?: Pokemon) {
super(scene, 106, 148, species, level, abilityIndex, formIndex, gender, shiny, dataSource); super(scene, 106, 148, species, level, abilityIndex, formIndex, gender, shiny, dataSource);
this.metBiome = scene.arena.biomeType;
this.metLevel = level;
this.generateCompatibleTms(); this.generateCompatibleTms();
} }

View File

@ -11,6 +11,8 @@ import { getGenderColor, getGenderSymbol } from "../data/gender";
import { getLevelTotalExp } from "../data/exp"; import { getLevelTotalExp } from "../data/exp";
import { BlendModes } from "phaser"; import { BlendModes } from "phaser";
import { Stat, getStatName } from "../data/pokemon-stat"; import { Stat, getStatName } from "../data/pokemon-stat";
import { abilities } from "../data/ability";
import { PokemonHeldItemModifier } from "../modifier/modifier";
enum Page { enum Page {
PROFILE, PROFILE,
@ -27,6 +29,7 @@ export default class SummaryUiHandler extends UiHandler {
private summaryUiMode: SummaryUiMode; private summaryUiMode: SummaryUiMode;
private summaryContainer: Phaser.GameObjects.Container; private summaryContainer: Phaser.GameObjects.Container;
private tabSprite: Phaser.GameObjects.Sprite;
private numberText: Phaser.GameObjects.Text; private numberText: Phaser.GameObjects.Text;
private pokemonSprite: Phaser.GameObjects.Sprite; private pokemonSprite: Phaser.GameObjects.Sprite;
private nameText: Phaser.GameObjects.Text; private nameText: Phaser.GameObjects.Text;
@ -74,6 +77,10 @@ export default class SummaryUiHandler extends UiHandler {
summaryBg.setOrigin(0, 1); summaryBg.setOrigin(0, 1);
this.summaryContainer.add(summaryBg); this.summaryContainer.add(summaryBg);
this.tabSprite = this.scene.add.sprite(134, (-summaryBg.displayHeight) + 16, 'summary_tabs_1');
this.tabSprite.setOrigin(1, 1);
this.summaryContainer.add(this.tabSprite);
this.numberText = addTextObject(this.scene, 17, -150, '000', TextStyle.SUMMARY); this.numberText = addTextObject(this.scene, 17, -150, '000', TextStyle.SUMMARY);
this.numberText.setOrigin(0, 1); this.numberText.setOrigin(0, 1);
this.summaryContainer.add(this.numberText); this.summaryContainer.add(this.numberText);
@ -353,6 +360,8 @@ export default class SummaryUiHandler extends UiHandler {
const forward = this.cursor < cursor; const forward = this.cursor < cursor;
this.cursor = cursor; this.cursor = cursor;
this.tabSprite.setTexture(`summary_tabs_${this.cursor + 1}`);
if (this.summaryPageContainer.visible) { if (this.summaryPageContainer.visible) {
this.transitioning = true; this.transitioning = true;
this.populatePageContainer(this.summaryPageTransitionContainer, forward ? cursor : cursor + 1); this.populatePageContainer(this.summaryPageTransitionContainer, forward ? cursor : cursor + 1);
@ -399,6 +408,34 @@ export default class SummaryUiHandler extends UiHandler {
pageBg.setTexture(this.getPageKey(page)); pageBg.setTexture(this.getPageKey(page));
switch (page) { switch (page) {
case Page.PROFILE:
const profileContainer = this.scene.add.container(0, -pageBg.height);
pageContainer.add(profileContainer);
const typeLabel = addTextObject(this.scene, 7, 28, 'TYPE/', TextStyle.WINDOW);
typeLabel.setOrigin(0, 0);
profileContainer.add(typeLabel);
const getTypeIcon = (index: integer, type: Type) => {
const typeIcon = this.scene.add.sprite(39 + 34 * index, 42, 'types', Type[type].toLowerCase());
typeIcon.setOrigin(0, 1);
return typeIcon;
};
profileContainer.add(getTypeIcon(0, this.pokemon.species.type1));
if (this.pokemon.species.type2)
profileContainer.add(getTypeIcon(1, this.pokemon.species.type2));
const ability = abilities[this.pokemon.species[`ability${!this.pokemon.abilityIndex ? '1' : '2'}`]];
const abilityNameText = addTextObject(this.scene, 7, 66, ability.name.toUpperCase(), TextStyle.SUMMARY);
abilityNameText.setOrigin(0, 1);
profileContainer.add(abilityNameText);
const abilityDescriptionText = addTextObject(this.scene, 7, 82, ability.description, TextStyle.WINDOW, { wordWrap: { width: 1212 } });
abilityDescriptionText.setOrigin(0, 1);
profileContainer.add(abilityDescriptionText);
break;
case Page.STATS: case Page.STATS:
const statsContainer = this.scene.add.container(0, -pageBg.height); const statsContainer = this.scene.add.container(0, -pageBg.height);
pageContainer.add(statsContainer); pageContainer.add(statsContainer);
@ -425,6 +462,16 @@ export default class SummaryUiHandler extends UiHandler {
statsContainer.add(statValue); statsContainer.add(statValue);
}); });
const itemModifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
&& (m as PokemonHeldItemModifier).pokemonId === this.pokemon.id, true) as PokemonHeldItemModifier[];
itemModifiers.forEach((item, i) => {
const icon = item.getIcon(this.scene, true);
icon.setPosition((i % 17) * 12 + 3, 14 * Math.floor(i / 17) + 15);
statsContainer.add(icon);
});
const totalLvExp = getLevelTotalExp(this.pokemon.level, this.pokemon.species.growthRate); const totalLvExp = getLevelTotalExp(this.pokemon.level, this.pokemon.species.growthRate);
const expRatio = this.pokemon.level < 100 ? this.pokemon.levelExp / totalLvExp : 0; const expRatio = this.pokemon.level < 100 ? this.pokemon.levelExp / totalLvExp : 0;