Skip to content

Commit

Permalink
Add Lyna (#173)
Browse files Browse the repository at this point in the history
Co-authored-by: Kris Johnson <[email protected]>
  • Loading branch information
WarriorGallade and KrisXV authored Apr 17, 2024
1 parent ec268b7 commit 69148d6
Show file tree
Hide file tree
Showing 5 changed files with 150 additions and 0 deletions.
37 changes: 37 additions & 0 deletions data/mods/gen9ssb/abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1378,6 +1378,43 @@ export const Abilities: {[k: string]: ModdedAbilityData} = {
flags: {breakable: 1},
},

// Lyna
magicaura: {
shortDesc: "Magic Guard + Magic Bounce.",
name: "Magic Aura",
onDamage(damage, target, source, effect) {
if (effect.effectType !== 'Move') {
if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name);
return false;
}
},
onTryHitPriority: 1,
onTryHit(target, source, move) {
if (target === source || move.hasBounced || !move.flags['reflectable']) {
return;
}
const newMove = this.dex.getActiveMove(move.id);
newMove.hasBounced = true;
newMove.pranksterBoosted = false;
this.actions.useMove(newMove, target, source);
return null;
},
onAllyTryHitSide(target, source, move) {
if (target.isAlly(source) || move.hasBounced || !move.flags['reflectable']) {
return;
}
const newMove = this.dex.getActiveMove(move.id);
newMove.hasBounced = true;
newMove.pranksterBoosted = false;
this.actions.useMove(newMove, this.effectState.target, source);
return null;
},
condition: {
duration: 1,
},
flags: {breakable: 1},
},

// Mad Monty
climatechange: {
shortDesc: "1.5x SpA in sun, 1.5x Def/SpD in snow, heals 50% in rain. Changes forme/weather.",
Expand Down
68 changes: 68 additions & 0 deletions data/mods/gen9ssb/conditions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1374,6 +1374,74 @@ export const Conditions: {[k: string]: ModdedConditionData & {innateName?: strin
this.add(`c:|${getName('Lunell')}|*sad vaporeon noises*`);
},
},
lyna: {
noCopy: true,
onStart(pokemon) {
let phrase = '';
switch (this.toID(enemyStaff(pokemon))) {
case 'alex':
case 'nya':
this.add(`c:|${getName('Lyna 氷')}|Oh, a cat <3`);
break;
case 'r8':
case 'clementine':
case 'lionyx':
case 'teclis':
case 'swiffix':
case 'ironwater':
phrase = 'slt';
break;
default:
phrase = 'Hey <3';
break;
}
this.add(`c:|${getName('Lyna 氷')}|${phrase}`);
},
onSwitchOut(pokemon) {
let phrase = '';
switch (this.toID(enemyStaff(pokemon))) {
case 'alex':
case 'nya':
phrase = 'You\'re so cute, I can\'t hit you...';
break;
case 'r8':
case 'clementine':
case 'lionyx':
case 'teclis':
case 'swiffix':
case 'ironwater':
phrase = '**Tournoi Hebdo sur <<arcade>> !**';
break;
default:
phrase = 'Nvm I\'m too busy for that, cya!';
break;
}
this.add(`c:|${getName('Lyna 氷')}|${phrase}`);
},
onFaint(pokemon) {
let phrase = '';
switch (this.toID(enemyStaff(pokemon))) {
case 'alex':
case 'nya':
phrase = 'You\'re definitely too cute...';
break;
case 'r8':
phrase = 'ok mais on dit pain au chocolat.';
break;
case 'clementine':
case 'lionyx':
case 'teclis':
case 'swiffix':
case 'ironwater':
phrase = 't\'as de la chance que je sois sympa..';
break;
default:
phrase = 'The flames were too frozen...';
break;
}
this.add(`c:|${getName('Lyna 氷')}|${phrase}`);
},
},
madmonty: {
noCopy: true,
onStart() {
Expand Down
32 changes: 32 additions & 0 deletions data/mods/gen9ssb/moves.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3246,6 +3246,38 @@ export const Moves: {[k: string]: ModdedMoveData} = {
type: "Fairy",
},

// Lyna
wrathoffrozenflames: {
accuracy: 100,
basePower: 100,
category: "Physical",
shortDesc: "After use, 80% chance to get Ice type, 20% chance to get Fire type.",
name: "Wrath of Frozen Flames",
gen: 9,
pp: 10,
priority: 0,
flags: {protect: 1},
onTryMove() {
this.attrLastMove('[still]');
},
onPrepareHit(target, source) {
this.add('-anim', source, 'Clangorous Soulblaze', target);
},
onHit(target, source, move) {
if (source.terastallized) return;
if (this.randomChance(8, 10)) {
source.addType('Ice');
this.add('-start', source, 'typeadd', 'Ice', '[from] move: Wrath of Frozen Flames');
} else {
source.addType('Fire');
this.add('-start', source, 'typeadd', 'Fire', '[from] move: Wrath of Frozen Flames');
}
},
secondary: null,
target: "normal",
type: "Dragon",
},

// Mad Monty
stormshelter: {
accuracy: true,
Expand Down
7 changes: 7 additions & 0 deletions data/mods/gen9ssb/pokedex.ts
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,13 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = {
abilities: {0: "Low Tide, High Tide"},
},

// Lyna
dragonair: {
inherit: true,
baseStats: {hp: 82, atk: 80, def: 80, spa: 80, spd: 80, spe: 80},
abilities: {0: "Magic Aura"},
},

// Mad Monty
castform: {
inherit: true,
Expand Down
6 changes: 6 additions & 0 deletions data/mods/gen9ssb/random-teams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,12 @@ export const ssbSets: SSBSets = {
signatureMove: 'Praise the Moon',
evs: {hp: 252, def: 4, spa: 252}, nature: 'Calm', teraType: 'Fairy', shiny: 512,
},
'Lyna 氷': {
species: 'Dragonair', ability: 'Magic Aura', item: 'Eviolite', gender: 'F',
moves: ['Victory Dance', 'V-create', 'Glacial Lance'],
signatureMove: 'Wrath of Frozen Flames',
evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Dragon',
},
'Mad Monty': {
species: 'Castform', ability: 'Climate Change', item: 'Heavy-Duty Boots', gender: 'M',
moves: ['Weather Ball', 'Defog', ['Solar Beam', 'Thunder', 'Aurora Veil']],
Expand Down

0 comments on commit 69148d6

Please sign in to comment.