Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add DianaNicole #170

Merged
merged 7 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions data/mods/gen9ssb/abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,17 @@ export const Abilities: {[k: string]: ModdedAbilityData} = {
flags: {},
},

// DianaNicole
snowproblem: {
shortDesc: "On switch-in, this Pokemon summons snow and its Sp. Atk is raised by 1 stage.",
name: "Snow Problem",
onStart(source) {
this.field.setWeather('snow');
this.boost({spa: 1}, source);
},
flags: {},
},

// Elly
stormsurge: {
shortDesc: "On switch-in, this Pokemon summons Storm Surge.",
Expand Down
12 changes: 12 additions & 0 deletions data/mods/gen9ssb/conditions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,18 @@ export const Conditions: {[k: string]: ModdedConditionData & {innateName?: strin
this.add(`c:|${getName('dhelmise')}|ok`);
},
},
diananicole: {
noCopy: true,
onStart() {
this.add(`c:|${getName('DianaNicole')}|Ready for Initiative? Cause I'm gonna Clickity Clackity, Roll to Attackity!`);
},
onSwitchOut() {
this.add(`c:|${getName('DianaNicole')}|Dropping out of Initiative`);
},
onFaint() {
this.add(`c:|${getName('DianaNicole')}|Guess I didn't roll high enough`);
},
},
elliot: {
noCopy: true,
onStart() {
Expand Down
50 changes: 50 additions & 0 deletions data/mods/gen9ssb/moves.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1534,6 +1534,56 @@
type: "Fairy",
},

// DianaNicole
breathoftiamat: {
accuracy: 95,
basePower: 20,
category: "Special",
shortDesc: "Hits 5 times. In order, each hit's type is Fire, Ice, Poison, Electric, Poison. Skips hits if a foe would be immune.",
name: "Breath of Tiamat",
pp: 20,
priority: 0,
flags: {protect: 1},
onTryMove() {
this.attrLastMove('[still]');
},
onPrepareHit(target, source, move) {
if (target.runImmunity('Fire')) {
this.add('-anim', source, 'Flamethrower', target);
}
},
onHit(target, source, move) {
const moveTypes = ['Fire', 'Ice', 'Poison', 'Electric', 'Poison'];
const hitTypes = moveTypes.filter(x => target.runImmunity(x));
if (move.hit >= hitTypes.length) {
move.basePower = 0;
move.category = 'Status';
/* Problem here - we can't retroactively change the multihit parameter.
With this specific code, the move functions as intended, but will display the incorrect
number of hits if a target is immune to any of them. Even if you try to return false, null, etc
during this step, it will not interrupt the move. Nor will a this.add(-fail) do so either.
This seems to be the only way to get it to work and is a decent enough compromise for now. */
} else {
move.type = hitTypes[move.hit];
const moveAnims = ['Flamethrower', 'Ice Beam', 'Gunk Shot', 'Charge Beam', 'Sludge Bomb'];
const hitAnims = [];
for (const [anim, i] of moveAnims.entries()) {
const index2 = Math.min(i, hitTypes.length - 1);
if (moveTypes[i] === hitTypes[index2]) {
hitAnims.push(anim);
}
}
this.add('-anim', source, hitAnims[move.hit], target);
}
},
multihit: 5,
multiaccuracy: true,
forceSTAB: true,
secondary: null,
target: 'normal',
type: "Fire",
},

// Elliot
teaparty: {
accuracy: true,
Expand Down Expand Up @@ -1572,8 +1622,8 @@
newMove = 'bodypress';
backupMove = 'steameruption';
if (!pokemon.hasType('Fighting') && pokemon.addType('Fighting')) {
this.add('-start', pokemon, 'typeadd', 'Fighting', '[from] move: Tea Party');

Check failure on line 1625 in data/mods/gen9ssb/moves.ts

View workflow job for this annotation

GitHub Actions / build (16.x)

Argument of type 'string' is not assignable to parameter of type 'number'.
}

Check failure on line 1626 in data/mods/gen9ssb/moves.ts

View workflow job for this annotation

GitHub Actions / build (16.x)

Element implicitly has an 'any' type because index expression is not of type 'number'.
this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|BOVRIL TIME`);
}
// -start for beefed and boiled is not necessary, i put it in there for an indicator
Expand Down
10 changes: 10 additions & 0 deletions data/mods/gen9ssb/pokedex.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,16 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = {
abilities: {0: "Cacophony"},
},

// DianaNicole
abomasnow: {
inherit: true,
abilities: {0: "Snow Problem"},
},
abomasnowmega: {
inherit: true,
abilities: {0: "Flash Fire"},
},

// Elliot
sinistea: {
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 @@ -306,6 +306,12 @@ export const ssbSets: SSBSets = {
signatureMove: 'ok',
evs: {hp: 252, def: 4, spa: 252}, nature: 'Quiet', teraType: 'Normal',
},
DianaNicole: {
species: 'Abomasnow', ability: 'Snow Problem', item: 'Abomasite', gender: 'F',
moves: ['Giga Drain', 'Earth Power', 'Blizzard'],
signatureMove: 'Breath of Tiamat',
evs: {hp: 252, def: 4, spa: 252}, nature: 'Modest', shiny: true,
},
Elliot: {
species: 'Sinistea', ability: 'Natural Cure', item: 'Focus Sash', gender: 'N',
moves: ['Moonblast', 'Shadow Ball', 'Teatime'],
Expand Down
Loading