From d3acdac1bd7f5118c15983b536423d87b4ea0b03 Mon Sep 17 00:00:00 2001 From: WarriorGallade <100499523+WarriorGallade@users.noreply.github.com> Date: Fri, 5 Apr 2024 11:39:05 +0530 Subject: [PATCH 1/7] Add DianaNicole --- data/mods/gen9ssb/abilities.ts | 11 +++++++ data/mods/gen9ssb/conditions.ts | 12 ++++++++ data/mods/gen9ssb/moves.ts | 51 +++++++++++++++++++++++++++++++ data/mods/gen9ssb/pokedex.ts | 10 ++++++ data/mods/gen9ssb/random-teams.ts | 6 ++++ 5 files changed, 90 insertions(+) diff --git a/data/mods/gen9ssb/abilities.ts b/data/mods/gen9ssb/abilities.ts index 53dbe084f..4dda80a3d 100644 --- a/data/mods/gen9ssb/abilities.ts +++ b/data/mods/gen9ssb/abilities.ts @@ -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.", diff --git a/data/mods/gen9ssb/conditions.ts b/data/mods/gen9ssb/conditions.ts index 88c80d6e1..3fa70c463 100644 --- a/data/mods/gen9ssb/conditions.ts +++ b/data/mods/gen9ssb/conditions.ts @@ -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() { diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index 9096ad94d..e8e64e161 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1534,6 +1534,57 @@ export const Moves: {[k: string]: ModdedMoveData} = { type: "Fairy", }, + // DianaNicole + breathoftiamat: { + accuracy: 100, + 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 (let i = 0; i < moveAnims.length; i++) { + const index2 = Math.min(i, hitTypes.length - 1); + if (moveTypes[i] === hitTypes[index2]) { + hitAnims.push(moveAnims[i]); + } + } + this.add(`c:|${getName('dhelmise')}|the holy grail? idk man ${hitAnims}`); + this.add('-anim', source, hitAnims[move.hit], target); + } + }, + multihit: 5, + multiaccuracy: true, + forceSTAB: true, + secondary: null, + target: 'normal', + type: "Fire", + }, + // Elliot teaparty: { accuracy: true, diff --git a/data/mods/gen9ssb/pokedex.ts b/data/mods/gen9ssb/pokedex.ts index 99a38e125..88b49db61 100644 --- a/data/mods/gen9ssb/pokedex.ts +++ b/data/mods/gen9ssb/pokedex.ts @@ -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, diff --git a/data/mods/gen9ssb/random-teams.ts b/data/mods/gen9ssb/random-teams.ts index 366973849..85aa42fe5 100644 --- a/data/mods/gen9ssb/random-teams.ts +++ b/data/mods/gen9ssb/random-teams.ts @@ -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'], From d3a71189fbd05d857965ab91b2d27203904b77b3 Mon Sep 17 00:00:00 2001 From: WarriorGallade <100499523+WarriorGallade@users.noreply.github.com> Date: Fri, 5 Apr 2024 11:41:54 +0530 Subject: [PATCH 2/7] Update moves.ts --- data/mods/gen9ssb/moves.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index e8e64e161..2c5bed722 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1536,7 +1536,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { // DianaNicole breathoftiamat: { - accuracy: 100, + 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.", From a3fe4d98609b630456002b3c832166c5937e016f Mon Sep 17 00:00:00 2001 From: WarriorGallade <100499523+WarriorGallade@users.noreply.github.com> Date: Fri, 5 Apr 2024 11:46:23 +0530 Subject: [PATCH 3/7] Update moves.ts --- data/mods/gen9ssb/moves.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index 2c5bed722..f98864ad7 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1573,7 +1573,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { hitAnims.push(moveAnims[i]); } } - this.add(`c:|${getName('dhelmise')}|the holy grail? idk man ${hitAnims}`); this.add('-anim', source, hitAnims[move.hit], target); } }, From f7a3bca4f1e6c734d3dd1a89151c63f6afae2b75 Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Mon, 15 Apr 2024 22:12:30 -0600 Subject: [PATCH 4/7] Update data/mods/gen9ssb/moves.ts --- data/mods/gen9ssb/moves.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index f98864ad7..a6790a824 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1567,7 +1567,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { move.type = hitTypes[move.hit]; const moveAnims = ['Flamethrower', 'Ice Beam', 'Gunk Shot', 'Charge Beam', 'Sludge Bomb']; const hitAnims = []; - for (let i = 0; i < moveAnims.length; i++) { + for (const [anim, i] of moveAnims.entries()) { const index2 = Math.min(i, hitTypes.length - 1); if (moveTypes[i] === hitTypes[index2]) { hitAnims.push(moveAnims[i]); From a562e444aaf5d3b42652e3e31bdf53c3145abbcd Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Mon, 15 Apr 2024 22:12:33 -0600 Subject: [PATCH 5/7] Update data/mods/gen9ssb/conditions.ts --- data/mods/gen9ssb/conditions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/gen9ssb/conditions.ts b/data/mods/gen9ssb/conditions.ts index 3fa70c463..1d41f939b 100644 --- a/data/mods/gen9ssb/conditions.ts +++ b/data/mods/gen9ssb/conditions.ts @@ -619,7 +619,7 @@ export const Conditions: {[k: string]: ModdedConditionData & {innateName?: strin diananicole: { noCopy: true, onStart() { - this.add(`c:|${getName('DianaNicole')}|Ready for Initiative? Cause I’m gonna Clickity Clackity, Roll to Attackity!`); + 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`); From 82ad1f0007f422b5bf01c0323365af70e0cb6f2f Mon Sep 17 00:00:00 2001 From: Kris Johnson <11083252+KrisXV@users.noreply.github.com> Date: Mon, 15 Apr 2024 22:22:15 -0600 Subject: [PATCH 6/7] Update data/mods/gen9ssb/moves.ts --- data/mods/gen9ssb/moves.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index a6790a824..500f286c4 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1570,7 +1570,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { for (const [anim, i] of moveAnims.entries()) { const index2 = Math.min(i, hitTypes.length - 1); if (moveTypes[i] === hitTypes[index2]) { - hitAnims.push(moveAnims[i]); + hitAnims.push(anim); } } this.add('-anim', source, hitAnims[move.hit], target); From c9bb0f1a10bb1e10a9ed1d1eb3dc41ff18eec469 Mon Sep 17 00:00:00 2001 From: WarriorGallade <100499523+WarriorGallade@users.noreply.github.com> Date: Tue, 16 Apr 2024 12:58:43 +0530 Subject: [PATCH 7/7] Update moves.ts --- data/mods/gen9ssb/moves.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts index 500f286c4..f154440c9 100644 --- a/data/mods/gen9ssb/moves.ts +++ b/data/mods/gen9ssb/moves.ts @@ -1567,7 +1567,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { 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()) { + for (const [i, anim] of moveAnims.entries()) { const index2 = Math.min(i, hitTypes.length - 1); if (moveTypes[i] === hitTypes[index2]) { hitAnims.push(anim);