Skip to content

Commit

Permalink
Add Meteordash
Browse files Browse the repository at this point in the history
  • Loading branch information
KrisXV committed Jan 16, 2024
1 parent 27ecf14 commit 54be159
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 12 deletions.
2 changes: 1 addition & 1 deletion data/mods/gen9ssb/abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = {
flags: {},
},

// Eli
// Elly
stormsurge: {
shortDesc: "On switch-in, this Pokemon summons Storm Surge.",
name: "Storm Surge",
Expand Down
20 changes: 16 additions & 4 deletions data/mods/gen9ssb/conditions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,16 +212,16 @@ export const Conditions: {[k: string]: ModdedConditionData & {innateName?: strin
this.add(`c:|${getName('deftinwolf')}|Death is only the beginning.`);
},
},
eli: {
elly: {
noCopy: true,
onStart() {
this.add(`c:|${getName('Eli')}|any`);
this.add(`c:|${getName('Elly')}|any`);
},
onSwitchOut() {
this.add(`c:|${getName('Eli')}|ok bye`);
this.add(`c:|${getName('Elly')}|ok bye`);
},
onFaint(pokemon) {
this.add(`c:|${getName('Eli')}|that wasn't very nice, ${enemyStaff(pokemon)}.`);
this.add(`c:|${getName('Elly')}|that wasn't very nice, ${enemyStaff(pokemon)}.`);
},
},
ganjafin: {
Expand Down Expand Up @@ -496,6 +496,18 @@ export const Conditions: {[k: string]: ModdedConditionData & {innateName?: strin
this.add(`c:|${getName('Mathy')}|thanks for making my job harder :/`);
},
},
meteordash: {
noCopy: true,
onStart() {
this.add(`c:|${getName('Meteordash')}|hi`);
},
onSwitchOut() {
this.add(`c:|${getName('Meteordash')}|oh`);
},
onFaint() {
this.add(`c:|${getName('Meteordash')}|man.`);
},
},
mex: {
noCopy: true,
onStart() {
Expand Down
50 changes: 48 additions & 2 deletions data/mods/gen9ssb/moves.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
return -6;
}
},
flags: {},
flags: {failcopycat: 1},
onTryMove() {
this.attrLastMove('[still]');
},
Expand Down Expand Up @@ -474,7 +474,7 @@ export const Moves: {[k: string]: ModdedMoveData} = {
type: "Dark",
},

// Eli
// Elly
sustainedwinds: {
accuracy: 90,
basePower: 20,
Expand Down Expand Up @@ -1127,6 +1127,52 @@ export const Moves: {[k: string]: ModdedMoveData} = {
type: "Normal",
},

// Meteordash
plagiarism: {
accuracy: 100,
basePower: 0,
category: "Status",
name: "Plagiarism",
shortDesc: "Steals and uses the foe's sig move, imprisons.",
pp: 1,
priority: 1,
flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1},
onPrepareHit() {
this.attrLastMove('[anim] Mimic');
this.attrLastMove('[anim] Imprison');
},
onHit(target, source) {
const sigMoveName = ssbSets[target.name].signatureMove;
const move = this.dex.getActiveMove(sigMoveName);
if (move.flags['failcopycat'] || move.noSketch) {
return false;
}
const plagiarismIndex = source.moves.indexOf('plagiarism');
if (plagiarismIndex < 0) return false;
this.add(`c:|${getName('Meteordash')}|yoink`);
const plagiarisedMove = {
move: move.name,
id: move.id,
pp: move.pp,
maxpp: move.pp,
target: move.target,
disabled: false,
used: false,
};
source.moveSlots[plagiarismIndex] = plagiarisedMove;
source.baseMoveSlots[plagiarismIndex] = plagiarisedMove;
this.add('-activate', source, 'move: Plagiarism', move.name);
this.add('-message', `${source.name} plagiarised ${target.name}'s ${move.name}!`);
this.actions.useMove(move.id, source, target);
delete target.volatiles['imprison'];
source.addVolatile('imprison', source);
},
noSketch: true,
secondary: null,
target: "normal",
type: "Dark",
},

// Mex
timeskip: {
accuracy: true,
Expand Down
2 changes: 1 addition & 1 deletion data/mods/gen9ssb/pokedex.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = {
abilities: {0: "Sharpness"},
},

// Eli
// Elly
thundurus: {
inherit: true,
abilities: {0: "Storm Surge"},
Expand Down
11 changes: 9 additions & 2 deletions data/mods/gen9ssb/random-teams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ export const ssbSets: SSBSets = {
signatureMove: 'Trivial Pursuit',
evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Poison',
},
Eli: {
Elly: {
species: 'Thundurus', ability: 'Storm Surge', item: 'Heavy-Duty Boots', gender: 'F',
moves: ['Wildbolt Storm', 'Sandsear Storm', 'Volt Switch'],
signatureMove: 'Sustained Winds',
Expand Down Expand Up @@ -223,6 +223,12 @@ export const ssbSets: SSBSets = {
signatureMove: 'Breaking Change',
evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Ghost',
},
Meteordash: {
species: 'Tatsugiri', ability: 'Shadow Shield', item: 'Heavy-Duty Boots', gender: 'M',
moves: ['Fickle Beam', 'Scald', 'Glare'],
signatureMove: 'Plagiarism',
evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', teraType: 'Steel',
},
Mex: {
species: 'Dialga', ability: 'Time Dilation', item: 'Adamant Orb', gender: 'N',
moves: ['Dragon Pulse', 'Flash Cannon', ['Aura Sphere', 'Volt Switch', 'Meteor Beam']],
Expand Down Expand Up @@ -392,7 +398,8 @@ export class RandomStaffBrosTeams extends RandomTeams {
const team: PokemonSet[] = [];
const debug: string[] = []; // Set this to a list of SSB sets to override the normal pool for debugging.
const ruleTable = this.dex.formats.getRuleTable(this.format);
const monotype = ruleTable.has('sametypeclause') ? this.sample([...this.dex.types.names()]) : false;
const monotype = ruleTable.has('sametypeclause') ?
this.sample([...this.dex.types.names().filter(x => x !== 'Stellar')]) : false;

let pool = Object.keys(ssbSets);
if (debug.length) {
Expand Down
4 changes: 2 additions & 2 deletions data/mods/gen9ssb/scripts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ export function changeSet(context: Battle, pokemon: Pokemon, newSet: SSBSet, cha
if (!pokemon.m.datacorrupt) {
const newMoves = changeMoves(context, pokemon, newSet.moves.concat(newSet.signatureMove));
pokemon.moveSlots = newMoves;
// @ts-ignore Necessary so pokemon doesn't get 8 moves
pokemon.baseMoveSlots = newMoves;
// Necessary so pokemon doesn't get 8 moves
(pokemon as any).baseMoveSlots = newMoves;
}
pokemon.canMegaEvo = context.actions.canMegaEvo(pokemon);
pokemon.canUltraBurst = context.actions.canUltraBurst(pokemon);
Expand Down

0 comments on commit 54be159

Please sign in to comment.