SSB: Add Imperial

This commit is contained in:
Kris Johnson 2024-09-28 13:25:19 -06:00
parent 8c3da840ba
commit d3bfe8eacd
5 changed files with 115 additions and 0 deletions

View File

@ -1049,6 +1049,27 @@ export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTa
},
},
// Imperial
frozenfortuity: {
shortDesc: "On switch-in, changes the Pokemon to Kyurem-Black if the target's Defense is lower, otherwise Kyurem-White.",
name: "Frozen Fortuity",
onStart(pokemon) {
let totaldef = 0;
let totalspd = 0;
for (const target of pokemon.foes()) {
totaldef += target.getStat('def', false, true);
totalspd += target.getStat('spd', false, true);
}
this.add('-ability', pokemon, 'Frozen Fortuity');
if (totaldef < totalspd) {
changeSet(this, pokemon, ssbSets['Imperial-Black']);
} else {
changeSet(this, pokemon, ssbSets['Imperial-White']);
}
},
flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1},
},
// in the hills
illiterit: {
shortDesc: "Immune to moves with 12 or more alphanumeric characters.",

View File

@ -1048,6 +1048,21 @@ export const Conditions: {[id: IDEntry]: ModdedConditionData & {innateName?: str
}
},
},
imperial: {
noCopy: true,
onStart() {
this.add(`c:|${getName('Imperial')}|gmcat`);
},
onSwitchOut(pokemon) {
const foe = pokemon.side.foes()[0]?.name;
if (foe) {
this.add(`c:|${getName('Imperial')}|ofc u have ${foe}. bad mu as always...`);
}
},
onFaint() {
this.add(`c:|${getName('Imperial')}|crazy rng`);
},
},
inthehills: {
noCopy: true,
onStart() {

View File

@ -2612,6 +2612,41 @@ export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = {
type: "Electric",
},
// Imperial
snowshroud: {
accuracy: 100,
basePower: 95,
category: "Special",
name: "Snow Shroud",
shortDesc: "Physical + contact if stronger.",
desc: "This move becomes a physical attack that makes contact if the value of ((((2 * the user's level / 5 + 2) * 90 * X) / Y) / 50), where X is the user's Attack stat and Y is the target's Defense stat, is greater than the same value where X is the user's Special Attack stat and Y is the target's Special Defense stat. No stat modifiers other than stat stage changes are considered for this purpose. If the two values are equal, this move chooses a damage category at random.",
pp: 10,
priority: 0,
flags: {protect: 1, mirror: 1},
onTryMove() {
this.attrLastMove('[still]');
},
onPrepareHit(target, source) {
this.add('-anim', source, 'Clangorous Soulblaze', target);
},
onModifyMove(move, pokemon, target) {
if (!target) return;
const atk = pokemon.getStat('atk', false, true);
const spa = pokemon.getStat('spa', false, true);
const def = target.getStat('def', false, true);
const spd = target.getStat('spd', false, true);
const physical = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * atk) / def) / 50);
const special = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * spa) / spd) / 50);
if (physical > special || (physical === special && this.random(2) === 0)) {
move.category = 'Physical';
move.flags.contact = 1;
}
},
secondary: null,
target: "normal",
type: "Dragon",
},
// in the hills
"102040": {
accuracy: 100,

View File

@ -424,6 +424,20 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
types: ["Electric", "Water"],
},
// Imperial
kyurem: {
inherit: true,
abilities: {0: "Frozen Fortuity"},
},
kyuremblack: {
inherit: true,
abilities: {0: "Frozen Fortuity"},
},
kyuremwhite: {
inherit: true,
abilities: {0: "Frozen Fortuity"},
},
// in the hills
gligar: {
inherit: true,
@ -683,6 +697,12 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
abilities: {0: "Last Hymn"},
},
// pants
annihilape: {
inherit: true,
abilities: {0: "Drifting"},
},
// PartMan
chandelure: {
inherit: true,
@ -779,6 +799,12 @@ export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable
abilities: {0: "Monke See Monke Do"},
},
// Rissoux
arcaninehisui: {
inherit: true,
abilities: {0: "Hard Headed"},
},
// RSB
growlithe: {
inherit: true,

View File

@ -457,6 +457,24 @@ export const ssbSets: SSBSets = {
signatureMove: 'Hydrostatics',
evs: {def: 4, spa: 252, spe: 252}, nature: 'Modest', teraType: 'Water', shiny: 2,
},
Imperial: {
species: 'Kyurem', ability: 'Frozen Fortuity', item: 'Never-Melt Ice', gender: 'N',
moves: ['Chilly Reception', 'Fusion Bolt', 'Fusion Flare'],
signatureMove: 'Storm Shroud',
evs: {atk: 128, spa: 128, spe: 252}, nature: 'Docile', teraType: 'Ice', shiny: 193,
},
'Imperial-Black': {
species: 'Kyurem-Black', ability: 'Frozen Fortuity', item: 'Never-Melt Ice', gender: 'N',
moves: ['Mountain Gale', 'Fusion Bolt', 'Ice Shard'],
signatureMove: 'Storm Shroud',
evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', teraType: 'Electric', shiny: 193, skip: 'Imperial',
},
'Imperial-White': {
species: 'Kyurem-White', ability: 'Frozen Fortuity', item: 'Never-Melt Ice', gender: 'N',
moves: ['Ice Beam', 'Freeze-Dry', 'Fusion Flare'],
signatureMove: 'Storm Shroud',
evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', teraType: 'Fire', shiny: 193, skip: 'Imperial',
},
'in the hills': {
species: 'Gligar', ability: 'Illiterit', item: 'Eviolite', gender: 'M',
moves: ['Roost', 'Knock Off', 'Tidy Up'],