From 19ef2774156f15498bcd9a63cf472a5b9892b297 Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Sun, 25 Nov 2012 01:49:19 -0800 Subject: [PATCH] NEXT: buff Ice Body, Victory Star, Selfdestruct, improve README --- mods/gennext/GEN-NEXT.md | 56 ++++++++++++++++-------- mods/gennext/abilities.js | 26 ++++++++++- mods/gennext/moves.js | 91 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 155 insertions(+), 18 deletions(-) diff --git a/mods/gennext/GEN-NEXT.md b/mods/gennext/GEN-NEXT.md index 0acef6883c..8789c60c10 100644 --- a/mods/gennext/GEN-NEXT.md +++ b/mods/gennext/GEN-NEXT.md @@ -10,14 +10,25 @@ things that could plausibly be done between gens. That means: 1. no base stat changes -2. only numbers that make sense like 60%, 30%, etc, not weird numbers like 65% -3. no buffing OU mons, except maybe tiny buffs to mons at the bottom of OU -4. no doing things that make zero sense flavor-wise +2. no removing from movepools +3. no removing from ability distribution +4. no typing changes without strong justification +5. only numbers that make sense like 60%, 30%, etc, not weird numbers like 65% +6. no buffing OU mons, except maybe tiny buffs to mons at the bottom of OU +7. no doing things that make zero sense flavor-wise A good example is what Game Freak did by giving Ditto the Imposter ability. This gave a Ditto a role in OU, while still making sense flavor-wise, and without removing anything it used to have. +A good example of what NEXT changes is Cherrim. We have taken an interesting +idea (ability designed for Sunny Day support) and made it viable in OU. + +This approach is in sharp contrast to many mods that do change many things on +NEXT's "don't change" list. The result is a metagame that feels a lot like +a new generation: existing OU threats stay mostly the same, but many new +threats and strategies are introduced. + Changes ------------------------------------------------------------------------ @@ -51,8 +62,16 @@ Major changes: - Silver Wind, Ominous Wind, and Avalanche deal 1.5x as much damage in Hail - Snow Cloak no longer modifies evasion, but instead decreases damage by 33% in Hail (and 20% out of Hail) + - Ice Body has 30% chance of freezing a contact move (and grants passive + healing out of Hail, too) - Thick Fat grants immunity to Hail damage   +- Freezing doesn't have a 20% thaw chance. Instead, thawing happens at the end + of the second turn. Because this new freeze effect is a nerf, Blizzard now + has a 30% chance of inflicting freeze. + +- Every DW ability other than on Chandelure is released. + - Moves with a charge turn are now a lot more powerful. They remove Protect and Substitute before hitting, they always crit (although their base power has been adjusted accordingly), they have perfect accuracy, and one other change @@ -74,8 +93,6 @@ Major changes: and they only recharge if they KO. Be careful - in return for a KO, they still give the foe a free switch-in _and_ a turn to set up. -- Every DW ability other than on Chandelure is released. - - Flower Gift now only boosts Sp. Def, but if Sunny Day is used while Cherrim is out, the next switch-in also receives +1 SpD @@ -100,10 +117,6 @@ Major changes: - Twister is now a 80 base power Flying move with a 30% confusion chance -- Freezing doesn't have a 20% thaw chance. Instead, thawing happens at the end - of the second turn. Because this new freeze effect is a nerf, Blizzard now - has a 30% chance of inflicting freeze. - - Drain Punch is now an 80 Base Power Poison-type move Minor move changes: @@ -157,9 +170,16 @@ Minor move changes: - Autotomize now gives +3 Speed -- Zoroark gets a significantly wider movepool: It now learns: Ice Beam, Giga Drain, Earthquake, Stone Edge, Superpower, X-Scissor +- Zoroark gets a significantly wider movepool: It now learns: Ice Beam, Giga + Drain, Earthquake, Stone Edge, Superpower, X-Scissor -- if Illusion is active, Night Daze now displays as a random non-Status move in the copied pokemon's moveset +- if Illusion is active, Night Daze now displays as a random non-Status move + in the copied pokemon's moveset + +- Selfdestruct and Explosion are now 140 and 180 base power autocrit moves, respectively + +- Protect does not protect Substitutes (with passive healing being more + common, Sub/Protect stalling could be overpowered) Minor learnset changes: @@ -189,15 +209,16 @@ Minor learnset changes: Minor ability changes: -- Compoundeyes now grants 1.6x accuracy +- Compoundeyes now grants 1.6x accuracy, Victory Star grants 1.5x - Solid Rock and Filter now reduce 1/2 damage of SE moves, not 1/4 - Outrage, Thrash, and Petal Dance don't lock if the user has Own Tempo -- Slow Start now only lasts 3 turns instead of 5 +- Slow Start now only lasts 2 turns instead of 5 -- Clear Body prevents all stat lowering (relevant: the Regis' Superpower and Metagross' Hammer Arm) +- Clear Body prevents all stat lowering (relevant: the Regis' Superpower and + Metagross' Hammer Arm) - Thick Fat grants half damage from Fighting @@ -209,7 +230,8 @@ Minor item changes: Tier changes: -- OU no longer has any tier-specific bans (DrizzleSwim and Soul Dew are no longer banned) +- OU no longer has any tier-specific bans (DrizzleSwim and Soul Dew are no + longer banned) -- Kyurem, Kyurem-B, Deoxys-D, Latios, and Latias are now Uber (by the time NEXT is done, they would presumably have - received enough buffs to be Uber) +- Kyurem, Kyurem-B, Deoxys-D, Latios, and Latias are now Uber (by the time + NEXT is done, they would presumably have received enough buffs to be Uber) diff --git a/mods/gennext/abilities.js b/mods/gennext/abilities.js index 9704a610d1..31ff0f4904 100644 --- a/mods/gennext/abilities.js +++ b/mods/gennext/abilities.js @@ -61,6 +61,22 @@ exports.BattleAbilities = { return basePower * 4/5; } }, + "icebody": { + inherit: true, + onImmunity: function(type, pokemon) { + if (type === 'hail') return false; + }, + onWeather: function(target, source, effect) { + this.heal(target.maxhp/16); + }, + onAfterDamage: function(damage, target, source, move) { + if (move && move.isContact && this.hasWeather('hail')) { + if (this.random(10) < 3) { + source.trySetStatus('frz', target, move); + } + } + } + }, "flowergift": { inherit: true, onModifyMove: function(move) { @@ -102,7 +118,7 @@ exports.BattleAbilities = { "slowstart": { inherit: true, effect: { - duration: 3, + duration: 2, onStart: function(target) { this.add('-start', target, 'Slow Start'); }, @@ -207,6 +223,14 @@ exports.BattleAbilities = { } } }, + "victorystar": { + inherit: true, + onAllyModifyMove: function(move) { + if (typeof move.accuracy === 'number') { + move.accuracy *= 1.5; + } + } + }, "telepathy": { inherit: true, onSwitchOut: function() {} diff --git a/mods/gennext/moves.js b/mods/gennext/moves.js index 3819a75080..44476f42ea 100644 --- a/mods/gennext/moves.js +++ b/mods/gennext/moves.js @@ -101,6 +101,64 @@ exports.BattleMovedex = { priority: 1 }, /****************************************************************** + Substitute: + - has precedence over Protect + + Justification: + - Sub/Protect stalling is annoying + ******************************************************************/ + substitute: { + inherit: true, + effect: { + onStart: function(target) { + this.add('-start', target, 'Substitute'); + this.effectData.hp = Math.floor(target.maxhp/4); + delete target.volatiles['partiallytrapped']; + }, + onTryHitPriority: 2, + onTryHit: function(target, source, move) { + if (target === source) { + this.debug('sub bypass: self hit'); + return; + } + if (move.category === 'Status') { + var SubBlocked = { + block:1, embargo:1, entrainment:1, gastroacid:1, healblock:1, healpulse:1, leechseed:1, lockon:1, meanlook:1, mindreader:1, nightmare:1, painsplit:1, psychoshift:1, simplebeam:1, skydrop:1, soak: 1, spiderweb:1, switcheroo:1, trick:1, worryseed:1, yawn:1 + }; + if (move.status || move.boosts || move.volatileStatus === 'confusion' || SubBlocked[move.id]) { + return false; + } + return; + } + var damage = this.getDamage(source, target, move); + if (!damage) { + return null; + } + damage = this.runEvent('SubDamage', target, source, move, damage); + if (!damage) { + return damage; + } + if (damage > target.volatiles['substitute'].hp) { + damage = target.volatiles['substitute'].hp; + } + target.volatiles['substitute'].hp -= damage; + source.lastDamage = damage; + if (target.volatiles['substitute'].hp <= 0) { + target.removeVolatile('substitute'); + this.runEvent('AfterSubDamage', target, source, move, damage); + return 0; // hit + } else { + this.add('-activate', target, 'Substitute', '[damage]'); + this.runEvent('AfterSubDamage', target, source, move, damage); + return 0; // hit + } + }, + onEnd: function(target) { + this.add('-end', target, 'Substitute'); + } + } + }, + /****************************************************************** Two-turn moves: - now a bit better @@ -782,6 +840,39 @@ exports.BattleMovedex = { } }, /****************************************************************** + Blizzard: + - 30% freeze chance + + Justification: + - freeze was nerfed, Blizzard can now have Thunder/Hurricane-like + secondary chances. + ******************************************************************/ + blizzard: { + inherit: true, + secondary: { + chance: 30, + status: 'frz' + } + }, + /****************************************************************** + Selfdestruct and Explosion: + - 120 and 180 base power autocrit + + Justification: + - these were nerfed unreasonably in gen 5, they're now somewhat + usable again. + ******************************************************************/ + selfdestruct: { + inherit: true, + basePower: 140, + willCrit: true + }, + explosion: { + inherit: true, + basePower: 180, + willCrit: true + }, + /****************************************************************** Echoed Voice: - change