Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 49.89 KB | None | 0 0
  1. {
  2. name: "Choonmons δ",
  3. desc: ["Choonmons is a pet mod created by Choon. Yup.<br>&bullet; <a href=\"http://www.smogon.com/forums/threads/3546063/\">Choonmons Thread</a>"],
  4. section: "Choon-Approved Metagames",
  5. mod: 'choonmons',
  6. ruleset: ['Pokemon', 'Sleep Clause Mod', 'Species Clause', 'Moody Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
  7. banlist: ['Uber', 'Soul Dew', 'Lucarionite', 'Mawilite', 'Salamencite'],
  8.  
  9. onSwitchIn: function (pokemon) {
  10. let changed = {'Venusaur-Mega-X':true, 'Blastoise':true, 'Butterfree':true, 'Pikachu':true, 'Raichu':true, 'Golduck':true, 'Happiny':true, 'Blissey':true, 'Gyarados':true, 'Aerodactyl':true, 'Feraligatr-Mega':true, 'Sceptile':true};
  11. let bt = pokemon.baseTemplate;
  12. if (bt.baseSpecies in changed || (bt.actualSpecies && bt.actualSpecies in changed)) {
  13. let types = bt.types;
  14. let bTypes = (types.length === 1 || types[1] === 'caw') ? types[0] : types.join('/');
  15. this.add('-start', pokemon, 'typechange', bTypes, '[silent]');
  16. }
  17. if (bt.actualSpecies) this.add('-start', pokemon, bt.actualSpecies, '[silent]'); //Show the pokemon's actual species
  18. },
  19. onSwitchOut: function (pokemon) {
  20. if (pokemon.baseTemplate.actualSpecies) this.add('-end', pokemon, pokemon.baseTemplate.actualSpecies, '[silent]');
  21. },
  22. },
  23. 'use strict';
  24.  
  25. exports.BattleAbilities = {
  26. "bigpecks": {
  27. inherit: true,
  28. onBoost: function () {},
  29. onAfterEachBoost: function (boost, target, source) {
  30. if (!source || target.side === source.side) {
  31. return;
  32. }
  33. let statsLowered = false;
  34. for (let i in boost) {
  35. if (boost[i] < 0) {
  36. statsLowered = true;
  37. }
  38. }
  39. if (statsLowered) {
  40. this.boost({def: 2});
  41. }
  42. },
  43. },
  44. "healer": {
  45. inherit: true,
  46. onResidual: function (pokemon) {
  47. let allyActive = pokemon.side.active;
  48. if (allyActive.length === 1) {
  49. return;
  50. }
  51. for (let i = 0; i < allyActive.length; i++) {
  52. if (allyActive[i] && this.isAdjacent(pokemon, allyActive[i]) && allyActive[i].status && !this.random(6)) {
  53. this.debug('healer');
  54. this.add('-activate', pokemon, 'ability: Healer');
  55. allyActive[i].cureStatus();
  56. }
  57. }
  58. if (pokemon.hp && pokemon.status && !this.random(6)) {
  59. this.debug('healer');
  60. this.add('-activate', pokemon, 'ability: Healer');
  61. pokemon.cureStatus();
  62. }
  63. },
  64. },
  65. "keeneye": {
  66. inherit: true,
  67. onSourceAccuracy: function (accuracy) {
  68. if (typeof accuracy !== 'number') return;
  69. this.debug('keeneye - enhancing accuracy');
  70. return accuracy * 1.2;
  71. },
  72. },
  73. "leafguard": {
  74. inherit: true,
  75. onSetStatus: function () {},
  76. onTryHit: function () {},
  77. onResidualOrder: 5,
  78. onResidualSubOrder: 1,
  79. onResidual: function (pokemon) {
  80. if (pokemon.status && this.isWeather(['sunnyday', 'desolateland'])) {
  81. this.debug('leafguard');
  82. pokemon.cureStatus();
  83. }
  84. },
  85. },
  86. "parentalbond": {
  87. inherit: true,
  88. onPrepareHit: function (move, pokemon, target) {
  89. if (move.category !== 'Status' && !move.selfdestruct && !move.multihit && !move.damage && ((target.side && target.side.active.length < 2) || move.target in {any:1, normal:1, randomNormal:1})) {
  90. move.multihit = 2;
  91. pokemon.addVolatile('parentalbond');
  92. }
  93. },
  94. effect: {
  95. duration: 1,
  96. onBasePowerPriority: 8,
  97. onBasePower: function (basePower) {
  98. if (this.effectData.hit) {
  99. return this.chainModify(1/3);
  100. } else {
  101. this.effectData.hit = true;
  102. }
  103. },
  104. onModifyMove: function (move) {
  105. if (this.effectData.hitt) {
  106. if (move.secondaries) delete move.secondaries;
  107. if (move.seconadry) delete move.secondary;
  108. } else {
  109. this.effectData.hitt = true;
  110. }
  111. }
  112. },
  113. },
  114. "stall": {
  115. inherit: true,
  116. onSourceModifyDamage: function (damage, source, target, move) {
  117. this.debug('Stall neutralize');
  118. return this.chainModify(0.9);
  119. },
  120. },
  121. "tangledfeet": {
  122. inherit: true,
  123. onAccuracy: function (accuracy, target) {
  124. if (typeof accuracy !== 'number') return;
  125. if (target && target.volatiles['confusion']) {
  126. this.debug('Tangled Feet - nullifying accuracy');
  127. return 0;
  128. }
  129. },
  130. onModifyMove: function (move, pokemon, target) {
  131. if (pokemon.volatiles['confusion']) {
  132. this.debug('Tangled Feet - nullifying accuracy');
  133. move.accuracy = 0;
  134. }
  135. },
  136. },
  137. "wonderguard": {
  138. inherit: true,
  139. onDamage: function (damage, target, source, effect) {
  140. if (effect.effectType !== 'Move') {
  141. return false;
  142. }
  143. },
  144. onTryHit: function (target, source, move) {
  145. if (target.template.speciesid !== 'shedinja' || target === source || move.category === 'Status' || move.type === '???' || move.id === 'struggle' || move.isFutureMove) return;
  146. this.debug('Wonder Guard immunity: ' + move.id);
  147. if (target.runEffectiveness(move) <= 0) {
  148. this.add('-activate', target, 'ability: Wonder Guard');
  149. return null;
  150. }
  151. },
  152. },
  153. };
  154. 'use strict';
  155.  
  156. exports.BattleItems = {
  157. "lightball": {
  158. inherit: true,
  159. onModifyAtk: function (atk, pokemon) {
  160. if (pokemon.baseTemplate.baseSpecies === 'Pichu') {
  161. return this.chainModify(2);
  162. }
  163. },
  164. onModifySpA: function (spa, pokemon) {
  165. if (pokemon.baseTemplate.baseSpecies === 'Pichu') {
  166. return this.chainModify(2);
  167. }
  168. },
  169. },
  170. "luckypunch": {
  171. inherit: true,
  172. onModifyMove: function (move, user) {
  173. if (user.baseTemplate.species === 'Happiny' || user.baseTemplate.species === 'Chansey' || user.baseTemplate.species === 'Blissey') {
  174. move.critRatio += 2;
  175. }
  176. },
  177. },
  178.  
  179.  
  180. //////////////////////////////
  181. // ChoonMod: Custom Items //
  182. //////////////////////////////
  183.  
  184. "venusauritex": {
  185. id: "venusauritex",
  186. name: "Venusaurite X",
  187. spritenum: 608,
  188. megaStone: "Venusaur-Mega-X",
  189. megaEvolves: "Venusaur",
  190. onTakeItem: function (item, source) {
  191. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  192. return true;
  193. },
  194. num: -1100,
  195. gen: 6,
  196. desc: "If holder is a Venusaur, this item allows it to Mega Evolve in battle.",
  197. },
  198. "venusauritey": {
  199. id: "venusauritey",
  200. name: "Venusaurite Y",
  201. spritenum: 608,
  202. megaStone: "Venusaur-Mega-Y",
  203. megaEvolves: "Venusaur",
  204. onTakeItem: function (item, source) {
  205. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  206. return true;
  207. },
  208. num: 659,
  209. gen: 6,
  210. desc: "If holder is a Venusaur, this item allows it to Mega Evolve in battle.",
  211. },
  212. "blastoisinitex": {
  213. id: "blastoisinitex",
  214. name: "Blastoisinite X",
  215. spritenum: 583,
  216. megaStone: "Blastoise-Mega-X",
  217. megaEvolves: "Blastoise",
  218. onTakeItem: function (item, source) {
  219. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  220. return true;
  221. },
  222. num: -6,
  223. gen: 6,
  224. desc: "If holder is a Blastoise, this item allows it to Mega Evolve in battle.",
  225. },
  226. "blastoisinitey": {
  227. id: "blastoisinitey",
  228. name: "Blastoisinite Y",
  229. spritenum: 583,
  230. megaStone: "Blastoise-Mega-Y",
  231. megaEvolves: "Blastoise",
  232. onTakeItem: function (item, source) {
  233. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  234. return true;
  235. },
  236. num: -1101,
  237. gen: 6,
  238. desc: "If holder is a Blastoise, this item allows it to Mega Evolve in battle.",
  239. },
  240. "butterfrite": {
  241. id: "butterfrite",
  242. name: "Butterfrite",
  243. spritenum: 576,
  244. megaStone: "Butterfree-Mega",
  245. megaEvolves: "Butterfree",
  246. onTakeItem: function (item, source) {
  247. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  248. return true;
  249. },
  250. num: -1102,
  251. gen: 6,
  252. desc: "If holder is a Butterfree, this item allows it to Mega Evolve in battle.",
  253. },
  254. "fearowite": {
  255. id: "fearowite",
  256. name: "Fearowite",
  257. spritenum: 622,
  258. megaStone: "Fearow-Mega",
  259. megaEvolves: "Fearow",
  260. onTakeItem: function (item, source) {
  261. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  262. return true;
  263. },
  264. num: -1103,
  265. gen: 6,
  266. desc: "If holder is a Fearow, this item allows it to Mega Evolve in battle.",
  267. },
  268. "raichuite": {
  269. id: "raichuite",
  270. name: "Raichuite",
  271. spritenum: 0,
  272. megaStone: "Raichu-Mega",
  273. megaEvolves: "Raichu",
  274. onTakeItem: function (item, source) {
  275. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  276. return true;
  277. },
  278. num: -1104,
  279. gen: 6,
  280. desc: "If holder is a Raichu, this item allows it to Mega Evolve in battle.",
  281. },
  282. "machampite": {
  283. id: "machampite",
  284. name: "Machampite",
  285. spritenum: 621,
  286. megaStone: "Machamp-Mega",
  287. megaEvolves: "Machamp",
  288. onTakeItem: function (item, source) {
  289. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  290. return true;
  291. },
  292. num: -1105,
  293. gen: 6,
  294. desc: "If holder is a Machamp, this item allows it to Mega Evolve in battle.",
  295. },
  296. "slowkingite": {
  297. id: "slowkingite",
  298. name: "Slowkingite",
  299. spritenum: 621,
  300. megaStone: "Slowking-Mega",
  301. megaEvolves: "Slowking",
  302. onTakeItem: function (item, source) {
  303. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  304. return true;
  305. },
  306. num: -1106,
  307. gen: 6,
  308. desc: "If holder is a Slowking, this item allows it to Mega Evolve in battle.",
  309. },
  310. "mimezite": {
  311. id: "mimezite",
  312. name: "Mimezite",
  313. spritenum: 621,
  314. megaStone: "Mr. Mime-Mega",
  315. megaEvolves: "Mr. Mime",
  316. onTakeItem: function (item, source) {
  317. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  318. return true;
  319. },
  320. num: -1107,
  321. gen: 6,
  322. desc: "If holder is a Mr. Mime, this item allows it to Mega Evolve in battle.",
  323. },
  324. "meganiumite": {
  325. id: "meganiumite",
  326. name: "Meganiumite",
  327. spritenum: 608,
  328. megaStone: "Meganium-Mega",
  329. megaEvolves: "Meganium",
  330. onTakeItem: function (item, source) {
  331. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  332. return true;
  333. },
  334. num: -1108,
  335. gen: 6,
  336. desc: "If holder is a Meganium, this item allows it to Mega Evolve in battle.",
  337. },
  338. "typhlosionite": {
  339. id: "typhlosionite",
  340. name: "Typhlosionite",
  341. spritenum: 589,
  342. megaStone: "Typhlosion-Mega",
  343. megaEvolves: "Typhlosion",
  344. onTakeItem: function (item, source) {
  345. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  346. return true;
  347. },
  348. num: -1109,
  349. gen: 6,
  350. desc: "If holder is a Typhlosion, this item allows it to Mega Evolve in battle.",
  351. },
  352. "feraligatrite": {
  353. id: "feraligatrite",
  354. name: "Feraligatrite",
  355. spritenum: 589,
  356. megaStone: "Feraligatr-Mega",
  357. megaEvolves: "Feraligatr",
  358. onTakeItem: function (item, source) {
  359. if (item.megaEvolves === source.baseTemplate.baseSpecies) return false;
  360. return true;
  361. },
  362. num: -1110,
  363. gen: 6,
  364. desc: "If holder is a Feraligatr, this item allows it to Mega Evolve in battle.",
  365. },
  366. };
  367. 'use strict';
  368.  
  369. exports.BattleMovedex = {
  370. aurasphere: {
  371. inherit: true,
  372. accuracy: 100,
  373. basePower: 90,
  374. pp: 10,
  375. secondary: {
  376. chance: 10,
  377. boosts: {
  378. spd: -1
  379. }
  380. },
  381. },
  382. boomburst: {
  383. inherit: true,
  384. basePower: 100,
  385. },
  386. bubblebeam: {
  387. inherit: true,
  388. basePower: 90,
  389. pp: 10,
  390. },
  391. darkpulse: {
  392. inherit: true,
  393. basePower: 90,
  394. pp: 10,
  395. secondary: {
  396. chance: 10,
  397. volatileStatus: 'flinch'
  398. },
  399. },
  400. dazzlinggleam: {
  401. inherit: true,
  402. basePower: 90,
  403. pp: 10,
  404. secondary: {
  405. chance: 10,
  406. boosts: {
  407. spa: -1
  408. }
  409. },
  410. },
  411. dracometeor: {
  412. inherit: true,
  413. basePower: 140,
  414. },
  415. fissure: {
  416. inherit: true,
  417. basePower: 140,
  418. accuracy: 90,
  419. ohko: false,
  420. self: {
  421. boosts: {
  422. atk: -2
  423. }
  424. },
  425. },
  426. focusblast: {
  427. inherit: true,
  428. accuracy: 85,
  429. },
  430. freezedry: {
  431. inherit: true,
  432. basePower: 80,
  433. pp: 10,
  434. },
  435. guillotine: {
  436. inherit: true,
  437. basePower: 70,
  438. accuracy: 90,
  439. ohko: false,
  440. multihit: 2,
  441. },
  442. horndrill: {
  443. inherit: true,
  444. basePower: 100,
  445. accuracy: 90,
  446. ohko: false,
  447. willCrit: true,
  448. },
  449. hydropump: {
  450. inherit: true,
  451. basePower: 120,
  452. accuracy: 85,
  453. secondary: {
  454. chance: 10,
  455. volatileStatus: 'flinch'
  456. },
  457. },
  458. knockoff: {
  459. inherit: true,
  460. basePower: 70,
  461. onBasePower: function () {},
  462. },
  463. leafstorm: {
  464. inherit: true,
  465. basePower: 140,
  466. },
  467. leechlife: {
  468. inherit: true,
  469. basePower: 75,
  470. pp: 10,
  471. },
  472. lightofruin: {
  473. inherit: true,
  474. recoil: false,
  475. self: {
  476. boosts: {
  477. spa: -2
  478. }
  479. },
  480. },
  481. moonblast: {
  482. inherit: true,
  483. basePower: 120,
  484. accuracy: 85,
  485. pp: 5,
  486. secondary: {
  487. chance: 10,
  488. boosts: {
  489. spa: -1
  490. }
  491. },
  492. },
  493. muddywater: {
  494. inherit: true,
  495. basePower: 80,
  496. onEffectiveness: function (typeMod, type, move) {
  497. return typeMod + this.getEffectiveness('Ground', type);
  498. },
  499. },
  500. overheat: {
  501. inherit: true,
  502. basePower: 140,
  503. },
  504. scald: {
  505. inherit: true,
  506. basePower: 80,
  507. pp: 10,
  508. secondary: {
  509. chance: 10,
  510. status: 'brn'
  511. },
  512. onEffectiveness: function (typeMod, type) {
  513. if (type === 'Ice') return 1;
  514. },
  515. },
  516. shadowball: {
  517. inherit: true,
  518. basePower: 90,
  519. secondary: {
  520. chance: 10,
  521. boosts: {
  522. spd: -1
  523. }
  524. },
  525. },
  526. sheercold: {
  527. inherit: true,
  528. basePower: 140,
  529. accuracy: 90,
  530. ohko: false,
  531. self: {
  532. boosts: {
  533. spa: -2
  534. }
  535. },
  536. },
  537. sludgebomb: {
  538. inherit: true,
  539. secondary: {
  540. chance: 10,
  541. status: 'psn'
  542. },
  543. },
  544. sludgewave: {
  545. inherit: true,
  546. basePower: 100,
  547. secondary: false,
  548. },
  549. suckerpunch: {
  550. inherit: true,
  551. basePower: 40,
  552. pp: 48,
  553. onTry: function () {},
  554. },
  555. surf: {
  556. inherit: true,
  557. basePower: 100,
  558. pp: 10,
  559. },
  560. tailglow: {
  561. inherit: true,
  562. boosts: {
  563. spa: 1,
  564. spd: 2
  565. },
  566. },
  567. volttackle: {
  568. inherit: true,
  569. recoil: false,
  570. pp: 10,
  571. },
  572.  
  573.  
  574. //////////////////////////////
  575. // ChoonMod: Custom Moves //
  576. //////////////////////////////
  577.  
  578.  
  579. "bloodthirstyblade": {
  580. num: -1100,
  581. accuracy: 100,
  582. basePower: 100,
  583. category: "Physical",
  584. desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.",
  585. shortDesc: "User recovers 50% of the damage dealt.",
  586. id: "bloodthirstyblade",
  587. isViable: true,
  588. name: "Bloodthirsty Blade",
  589. pp: 5,
  590. priority: 0,
  591. flags: {protect: 1, mirror: 1},
  592. onPrepareHit: function (target, pokemon, move) {
  593. this.attrLastMove('[still]');
  594. this.add('-anim', pokemon, "Mean Look", target);
  595. this.add('-anim', pokemon, "Night Slash", target);
  596. },
  597. drain: [1, 2],
  598. target: "normal",
  599. type: "Steel",
  600. },
  601. "dynamocannon": {
  602. num: -1101,
  603. accuracy: 100,
  604. basePower: 120,
  605. category: "Special",
  606. desc: "Has a 10% chance to paralyze the target.",
  607. shortDesc: "10% chance to paralyze target.",
  608. id: "dynamocannon",
  609. isViable: true,
  610. name: "Dynamo Cannon",
  611. pp: 10,
  612. priority: 0,
  613. flags: {protect: 1, mirror: 1},
  614. onPrepareHit: function (target, pokemon, move) {
  615. this.attrLastMove('[still]');
  616. this.add('-anim', pokemon, "Recover", pokemon);
  617. this.add('-anim', pokemon, "Zap Cannon", target);
  618. },
  619. secondary: {
  620. chance: 10,
  621. status: 'par'
  622. },
  623. target: "normal",
  624. type: "Electric",
  625. },
  626. "genesisnova": {
  627. num: -1102,
  628. accuracy: 100,
  629. basePower: 180,
  630. category: "Special",
  631. desc: "Lowers the user's Speed, Defense, and Special Defense by 1 stage.",
  632. shortDesc: "Lowers the user's Defense, Sp. Def, Speed by 1.",
  633. id: "genesisnova",
  634. isViable: true,
  635. name: "Genesis Nova",
  636. pp: 5,
  637. priority: 0,
  638. flags: {protect: 1, mirror: 1},
  639. onPrepareHit: function (target, pokemon, move) {
  640. this.attrLastMove('[still]');
  641. this.add('-anim', pokemon, "Judgment", target);
  642. },
  643. self: {
  644. boosts: {
  645. def: -1,
  646. spd: -1,
  647. spe: -1
  648. }
  649. },
  650. target: "normal",
  651. type: "Psychic",
  652. },
  653. "heavenscrack": {
  654. num: -1103,
  655. accuracy: 100,
  656. basePower: 120,
  657. category: "Physical",
  658. desc: "This move can hit airborne Pokemon, which includes Flying-type Pokemon, Pokemon with the Ability Levitate, Pokemon holding an Air Balloon, and Pokemon under the effect of Magnet Rise or Telekinesis. This move can hit a target using Bounce, Fly, or Sky Drop. If this move hits a target under the effect of Bounce, Fly, Magnet Rise, or Telekinesis, the effect ends. If the target is a Flying type that has not used Roost this turn or a Pokemon with the Ability Levitate, it loses its immunity to Ground-type attacks and the Ability Arena Trap as long as it remains active. During the effect, Magnet Rise fails for the target and Telekinesis fails against the target.",
  659. shortDesc: "Grounds adjacent foes.",
  660. id: "heavenscrack",
  661. isViable: true,
  662. name: "Heaven's Crack",
  663. pp: 5,
  664. priority: 0,
  665. flags: {protect: 1, mirror: 1, nonsky: 1},
  666. onPrepareHit: function (target, pokemon, move) {
  667. this.attrLastMove('[still]');
  668. this.add('-anim', pokemon, "Rock Slide", target);
  669. this.add('-anim', pokemon, "Fissure", target);
  670. },
  671. volatileStatus: 'smackdown',
  672. ignoreImmunity: {'Ground': true},
  673. secondary: false,
  674. target: "allAdjacentFoes",
  675. type: "Ground",
  676. },
  677. "imprisonedstrike": {
  678. num: -1104,
  679. accuracy: 100,
  680. basePower: 100,
  681. category: "Physical",
  682. desc: "The user prevents all of its foes from using any moves that the user also knows as long as the user remains active.",
  683. shortDesc: "No foe can use any move known by the user.",
  684. id: "imprisonedstrike",
  685. isViable: true,
  686. name: "Imprisoned Strike",
  687. pp: 5,
  688. priority: 0,
  689. flags: {contact: 1, protect: 1, mirror: 1},
  690. onPrepareHit: function (target, pokemon, move) {
  691. this.attrLastMove('[still]');
  692. this.add('-anim', pokemon, "Topsy-Turvy", pokemon);
  693. this.add('-anim', pokemon, "Dragon Ascent", target);
  694. },
  695. self: {
  696. volatileStatus: 'imprison'
  697. },
  698. secondary: false,
  699. target: "normal",
  700. type: "Fighting",
  701. },
  702. "perfectglacialist": {
  703. num: -1105,
  704. accuracy: 99,
  705. basePower: 9,
  706. category: "Special",
  707. desc: "Hits nine times. Has a 0.9% chance to freeze the opponent each hit.",
  708. shortDesc: "Hits 9 times in one turn. 0.9% chance to freeze the target.",
  709. id: "perfectglacialist",
  710. isViable: true,
  711. name: "Perfect Glacialist",
  712. pp: 9,
  713. noPPBoosts: true,
  714. priority: 0,
  715. flags: {protect: 1, mirror: 1},
  716. onPrepareHit: function (target, pokemon, move) {
  717. this.attrLastMove('[still]');
  718. this.add('-anim', pokemon, "Blizzard", target);
  719. },
  720. secondary: {
  721. chance: 0.9,
  722. status: 'frz'
  723. },
  724. multihit: 9,
  725. target: "normal",
  726. type: "Ice",
  727. },
  728. "valkyriearrow": {
  729. num: -1106,
  730. accuracy: 100,
  731. basePower: 250,
  732. category: "Special",
  733. desc: "The user faints after using this move, even if this move fails for having no target.",
  734. shortDesc: "Hits adjacent foes. The user faints.",
  735. id: "valkyriearrow",
  736. isViable: true,
  737. name: "Valkyrie Arrow",
  738. pp: 5,
  739. priority: 0,
  740. flags: {protect: 1, mirror: 1},
  741. onPrepareHit: function (target, pokemon, move) {
  742. this.attrLastMove('[still]');
  743. this.add('-anim', pokemon, "Wish", pokemon);
  744. this.add('-anim', pokemon, "Psystrike", target);
  745. },
  746. selfdestruct: true,
  747. target: "normal",
  748. type: "Fairy",
  749. },
  750. };
  751. 'use strict';
  752.  
  753. exports.BattlePokedex = {
  754. venusaur: {
  755. inherit: true,
  756. baseStats: {hp:83, atk:85, def:89, spa:100, spd:109, spe:84},
  757. abilities: {0:"Overgrow", H:"Leaf Guard"},
  758. otherFormes: ["venusaurmegax", "venusaurmegay"],
  759. },
  760. venusaurmega: {
  761. inherit: true,
  762. baseStats: {hp:83, atk:100, def:130, spa:119, spd:144, spe:74},
  763. },
  764. charizard: {
  765. inherit: true,
  766. baseStats: {hp:78, atk:89, def:78, spa:109, spd:85, spe:100},
  767. },
  768. charizardmegax: {
  769. inherit: true,
  770. types: ["Fire", "Dragon", "caw"],
  771. baseStats: {hp:83, atk:140, def:107, spa:135, spd:85, spe:100},
  772. },
  773. charizardmegay: {
  774. inherit: true,
  775. baseStats: {hp:83, atk:109, def:84, spa:159, spd:115, spe:100},
  776. },
  777. blastoise: {
  778. inherit: true,
  779. types: ["Water", "Steel"],
  780. baseStats: {hp:84, atk:85, def:109, spa:89, spd:105, spe:83},
  781. otherFormes: ["blastoisemegax", "blastoisemegay"],
  782. },
  783. blastoisemega: {
  784. inherit: true,
  785. types: ["Water", "Steel"],
  786. baseStats: {hp:84, atk:100, def:119, spa:169, spd:115, spe:63},
  787. },
  788. butterfree: {
  789. inherit: true,
  790. types: ["Bug", "Psychic", "caw"],
  791. baseStats: {hp:105, atk:50, def:60, spa:110, spd:90, spe:65},
  792. abilities: {0:"Swarm", 1:"Tinted Lens", H:"Magic Guard"},
  793. otherFormes: ["butterfreemega"],
  794. },
  795. beedrill: {
  796. inherit: true,
  797. types: ["Bug", "Poison", "caw"],
  798. baseStats: {hp:65, atk:110, def:90, spa:50, spd:60, spe:105},
  799. abilities: {0:"Swarm", 1:"Technician", H:"Sniper"},
  800. },
  801. pidgeot: {
  802. inherit: true,
  803. baseStats: {hp:83, atk:60, def:85, spa:110, spd:90, spe:101},
  804. },
  805. pidgeotmega: {
  806. inherit: true,
  807. baseStats: {hp:83, atk:60, def:95, spa:150, spd:105, spe:136},
  808. },
  809. fearow: {
  810. inherit: true,
  811. baseStats: {hp:83, atk:105, def:80, spa:60, spd:75, spe:102},
  812. abilities: {0:"Defiant", 1:"Keen Eye", H:"Sniper"},
  813. otherFormes: ["fearowmega"],
  814. },
  815. pichu: {
  816. inherit: true,
  817. types: ["Electric", "Ground"],
  818. evos: ["pikachu","raichu"],
  819. },
  820. pikachu: {
  821. inherit: true,
  822. types: ["Electric", "Ground"],
  823. baseStats: {hp:66, atk:121, def:88, spa:110, spd:88, spe:132},
  824. abilities: {0:"Static", 1:"Lightning Rod", H:"Sheer Force"},
  825. evos: [],
  826. },
  827. pikachucosplay: {
  828. inherit: true,
  829. types: ["Electric", "Ground"],
  830. gender: '',
  831. baseStats: {hp:66, atk:121, def:88, spa:110, spd:88, spe:132},
  832. abilities: {0:"Static", 1:"Lightning Rod", H:"Sheer Force"},
  833. },
  834. pikachurockstar: {
  835. inherit: true,
  836. types: ["Electric", "Steel"],
  837. gender: '',
  838. baseStats: {hp:66, atk:132, def:110, spa:99, spd:77, spe:121},
  839. abilities: {0:"Static", 1:"Lightning Rod", H:"Filter"},
  840. },
  841. pikachubelle: {
  842. inherit: true,
  843. types: ["Electric", "Ice"],
  844. gender: '',
  845. baseStats: {hp:66, atk:110, def:121, spa:110, spd:121, spe:77},
  846. abilities: {0:"Static", 1:"Lightning Rod", H:"Magic Bounce"},
  847. },
  848. pikachupopstar: {
  849. inherit: true,
  850. types: ["Electric", "Fairy"],
  851. gender: '',
  852. baseStats: {hp:66, atk:88, def:88, spa:132, spd:121, spe:110},
  853. abilities: {0:"Static", 1:"Lightning Rod", H:"Magic Guard"},
  854. },
  855. pikachuphd: {
  856. inherit: true,
  857. types: ["Electric", "Psychic"],
  858. gender: '',
  859. baseStats: {hp:66, atk:132, def:99, spa:132, spd:110, spe:66},
  860. abilities: {0:"Static", 1:"Lightning Rod", H:"Analytic"},
  861. },
  862. pikachulibre: {
  863. inherit: true,
  864. types: ["Electric", "Fighting"],
  865. gender: '',
  866. baseStats: {hp:66, atk:143, def:121, spa:77, spd:121, spe:77},
  867. abilities: {0:"Static", 1:"Lightning Rod", H:"Iron Fist"},
  868. },
  869. raichu: {
  870. inherit: true,
  871. types: ["Electric", "Dark"],
  872. baseStats: {hp:65, atk:117, def:104, spa:117, spd:104, spe:78},
  873. abilities: {0:"Static", 1:"Lightning Rod", H:"Tough Claws"},
  874. otherFormes: ["raichumega"],
  875. },
  876. golduck: {
  877. inherit: true,
  878. types: ["Water", "Ghost"],
  879. baseStats: {hp:90, atk:82, def:78, spa:115, spd:90, spe:85},
  880. abilities: {0:"Cloud Nine", 1:"Swift Swim", H:"Drizzle"},
  881. },
  882. alakazam: {
  883. inherit: true,
  884. baseStats: {hp:55, atk:50, def:45, spa:135, spd:100, spe:120},
  885. },
  886. alakazammega: {
  887. inherit: true,
  888. types: ["Psychic", "caw"],
  889. baseStats: {hp:55, atk:50, def:65, spa:175, spd:110, spe:150},
  890. abilities: {0:"Technician"},
  891. },
  892. machamp: {
  893. inherit: true,
  894. otherFormes: ["machampmega"],
  895. },
  896. slowbro: {
  897. inherit: true,
  898. baseStats: {hp:95, atk:100, def:110, spa:75, spd:80, spe:30},
  899. },
  900. slowbromega: {
  901. inherit: true,
  902. baseStats: {hp:95, atk:130, def:180, spa:75, spd:80, spe:30},
  903. },
  904. slowking: {
  905. inherit: true,
  906. otherFormes: ["slowkingmega"],
  907. },
  908. gengar: {
  909. inherit: true,
  910. types: ["Ghost", "Poison", "caw"],
  911. abilities: {0:"Prankster"},
  912. },
  913. gengarmega: {
  914. inherit: true,
  915. types: ["Ghost", "Poison", "caw"],
  916. abilities: {0:"Prankster"},
  917. },
  918. happiny: {
  919. inherit: true,
  920. types: ["Normal", "Fairy"],
  921. baseStats: {hp:128, atk:10, def:80, spa:10, spd:80, spe:32},
  922. evos: ["chansey","blissey"],
  923. },
  924. chansey: {
  925. inherit: true,
  926. baseStats: {hp:255, atk:90, def:140, spa:15, spd:15, spe:55},
  927. evos: [],
  928. },
  929. blissey: {
  930. inherit: true,
  931. types: ["Fairy"],
  932. baseStats: {hp:255, atk:15, def:15, spa:90, spd:140, spe:55},
  933. prevo: "happiny",
  934. },
  935. mrmime: {
  936. inherit: true,
  937. baseStats: {hp:90, atk:45, def:105, spa:100, spd:130, spe:70},
  938. otherFormes: ["mrmimemega"],
  939. },
  940. pinsir: {
  941. inherit: true,
  942. baseStats: {hp:75, atk:130, def:100, spa:55, spd:70, spe:95},
  943. },
  944. pinsirmega: {
  945. inherit: true,
  946. baseStats: {hp:75, atk:160, def:120, spa:65, spd:90, spe:115},
  947. },
  948. gyarados: {
  949. inherit: true,
  950. types: ["Water", "Dark", "caw"],
  951. },
  952. gyaradosmega: {
  953. inherit: true,
  954. types: ["Water", "Dark", "caw"],
  955. },
  956. porygon: {
  957. inherit: true,
  958. types: ["Electric", "caw"],
  959. abilities: {0:"Trace", 1:"Download", H:"Lightningrod"},
  960. },
  961. porygon2: {
  962. inherit: true,
  963. baseStats: {hp:85, atk:60, def:125, spa:100, spd:135, spe:50},
  964. types: ["Electric", "Psychic", "caw"],
  965. abilities: {0:"Trace", 1:"Download", H:"Analytic"},
  966. evos: [],
  967. },
  968. porygonz: {
  969. inherit: true,
  970. baseStats: {hp:85, atk:90, def:60, spa:145, spd:65, spe:110},
  971. types: ["Electric", "Ghost", "caw"],
  972. abilities: {0:"Trace", 1:"Download", H:"Adaptability"},
  973. prevo: "porygon",
  974. },
  975. aerodactyl: {
  976. inherit: true,
  977. types: ["Rock", "Dragon", "caw"],
  978. },
  979. aerodactylmega: {
  980. inherit: true,
  981. types: ["Rock", "Dragon", "caw"],
  982. },
  983. meganium: {
  984. inherit: true,
  985. baseStats: {hp:90, atk:83, def:119, spa:68, spd:125, spe:65},
  986. abilities: {0:"Overgrow", H:"Leaf Guard"},
  987. otherFormes: ["meganiummega"],
  988. },
  989. typhlosion: {
  990. inherit: true,
  991. baseStats: {hp:78, atk:69, def:78, spa:129, spd:85, spe:106},
  992. abilities: {0:"Blaze", H:"Flash Fire"},
  993. otherFormes: ["typhlosionmega"],
  994. },
  995. feraligatr: {
  996. inherit: true,
  997. baseStats: {hp:85, atk:110, def:100, spa:84, spd:88, spe:83},
  998. abilities: {0:"Torrent", H:"Sheer Force"},
  999. otherFormes: ["feraligatrmega"],
  1000. },
  1001. xatu: {
  1002. inherit: true,
  1003. baseStats: {hp:80, atk:75, def:85, spa:100, spd:110, spe:90},
  1004. },
  1005. ampharosmega: {
  1006. inherit: true,
  1007. baseStats: {hp:90, atk:115, def:85, spa:155, spd:120, spe:45},
  1008. abilities: {0:"Fur Coat"},
  1009. },
  1010. sceptile: {
  1011. inherit: true,
  1012. baseStats: {hp:70, atk:85, def:75, spa:115, spd:85, spe:120},
  1013. types: ["Grass", "Dragon"],
  1014. },
  1015. sceptilemega: {
  1016. inherit: true,
  1017. baseStats: {hp:70, atk:100, def:95, spa:145, spd:95, spe:145},
  1018. },
  1019. blaziken: {
  1020. inherit: true,
  1021. baseStats: {hp:80, atk:120, def:70, spa:110, spd:70, spe:100},
  1022. abilities: {0:"Blaze", H:"Reckless"},
  1023. },
  1024. blazikenmega: {
  1025. inherit: true,
  1026. baseStats: {hp:80, atk:150, def:80, spa:140, spd:80, spe:120},
  1027. abilities: {0:"Reckless"},
  1028. },
  1029. swampert: {
  1030. inherit: true,
  1031. baseStats: {hp:100, atk:110, def:110, spa:75, spd:100, spe:60},
  1032. },
  1033. swampertmega: {
  1034. inherit: true,
  1035. baseStats: {hp:100, atk:150, def:130, spa:75, spd:120, spe:80},
  1036. },
  1037. gastrodon: {
  1038. inherit: true,
  1039. baseStats: {hp:123, atk:83, def:83, spa:100, spd:100, spe:51},
  1040. abilities: {0:"Sticky Hold", 1:"Storm Drain", H:"Regenerator"},
  1041. },
  1042. genesectdouse: {
  1043. inherit: true,
  1044. types: ["Bug","Water"],
  1045. },
  1046. genesectshock: {
  1047. inherit: true,
  1048. types: ["Bug","Electric"],
  1049. },
  1050. genesectburn: {
  1051. inherit: true,
  1052. types: ["Bug","Fire"],
  1053. },
  1054. genesectchill: {
  1055. inherit: true,
  1056. types: ["Bug","Ice"],
  1057. },
  1058. honedge: {
  1059. inherit: true,
  1060. evos: ["doublade", "aegislash"],
  1061. },
  1062. doublade: {
  1063. inherit: true,
  1064. baseStats: {hp:60, atk:125, def:150, spa:60, spd:70, spe:35},
  1065. evos: [],
  1066. },
  1067. aegislash: {
  1068. inherit: true,
  1069. baseStats: {hp:60, atk:100, def:150, spa:55, spd:85, spe:50},
  1070. },
  1071. aegislashblade: {
  1072. inherit: true,
  1073. baseStats: {hp:60, atk:150, def:100, spa:85, spd:55, spe:50},
  1074. },
  1075.  
  1076.  
  1077. /////////////////////////////
  1078. // ChoonMod: Custom Mons //
  1079. /////////////////////////////
  1080.  
  1081.  
  1082. venusaurmegax: {
  1083. num: 3,
  1084. species: "Venusaur-Mega-X",
  1085. baseSpecies: "Venusaur",
  1086. forme: "Mega-X",
  1087. formeLetter: "M",
  1088. types: ["Grass", "Fire"],
  1089. genderRatio: {M:0.875, F:0.125},
  1090. baseStats: {hp:83, atk:114, def:89, spa:150, spd:114, spe:100},
  1091. abilities: {0:"Chlorophyll"},
  1092. heightm: 2.4,
  1093. weightkg: 155.5,
  1094. color: "Green",
  1095. prevo: "ivysaur",
  1096. evoLevel: 32,
  1097. eggGroups: ["Monster", "Grass"],
  1098. },
  1099. venusaurmegay: {
  1100. num: 3,
  1101. species: "Venusaur-Mega-Y",
  1102. baseSpecies: "Venusaur",
  1103. forme: "Mega-Y",
  1104. formeLetter: "M",
  1105. types: ["Grass", "Poison"],
  1106. genderRatio: {M:0.875, F:0.125},
  1107. baseStats: {hp:83, atk:100, def:130, spa:119, spd:144, spe:74},
  1108. abilities: {0:"Thick Fat"},
  1109. heightm: 2.4,
  1110. weightkg: 155.5,
  1111. color: "Green",
  1112. prevo: "ivysaur",
  1113. evoLevel: 32,
  1114. eggGroups: ["Monster", "Grass"],
  1115. },
  1116. blastoisemegax: {
  1117. num: 9,
  1118. species: "Blastoise-Mega-X",
  1119. baseSpecies: "Blastoise",
  1120. forme: "Mega-X",
  1121. formeLetter: "M",
  1122. types: ["Water", "Steel"],
  1123. genderRatio: {M:0.875, F:0.125},
  1124. baseStats: {hp:84, atk:100, def:119, spa:169, spd:115, spe:68},
  1125. abilities: {0:"Mega Launcher"},
  1126. heightm: 1.6,
  1127. weightkg: 101.1,
  1128. color: "Blue",
  1129. prevo: "wartortle",
  1130. evoLevel: 36,
  1131. eggGroups: ["Monster", "Water 1"],
  1132. },
  1133. blastoisemegay: {
  1134. num: 9,
  1135. species: "Blastoise-Mega-Y",
  1136. baseSpecies: "Blastoise",
  1137. forme: "Mega-Y",
  1138. formeLetter: "M",
  1139. types: ["Water", "Steel"],
  1140. genderRatio: {M:0.875, F:0.125},
  1141. baseStats: {hp:84, atk:85, def:159, spa:109, spd:155, spe:63},
  1142. abilities: {0:"Shell Armor"},
  1143. heightm: 1.6,
  1144. weightkg: 123.4,
  1145. color: "Blue",
  1146. prevo: "wartortle",
  1147. evoLevel: 36,
  1148. eggGroups: ["Monster", "Water 1"],
  1149. },
  1150. butterfreemega: {
  1151. num: 12,
  1152. species: "Butterfree-Mega",
  1153. baseSpecies: "Butterfree",
  1154. forme: "Mega",
  1155. formeLetter: "M",
  1156. types: ["Bug", "Psychic"],
  1157. baseStats: {hp:105, atk:20, def:105, spa:160, spd:125, spe:65},
  1158. abilities: {0:"Magic Bounce"},
  1159. heightm: 1.1,
  1160. weightkg: 35,
  1161. color: "White",
  1162. prevo: "metapod",
  1163. evoLevel: 10,
  1164. eggGroups: ["Bug"],
  1165. },
  1166. fearowmega: {
  1167. num: 22,
  1168. species: "Fearow-Mega",
  1169. baseSpecies: "Fearow",
  1170. forme: "Mega",
  1171. formeLetter: "M",
  1172. types: ["Normal", "Flying"],
  1173. baseStats: {hp:65, atk:140, def:100, spa:60, spd:95, spe:132},
  1174. abilities: {0:"Reckless"},
  1175. heightm: 1.2,
  1176. weightkg: 50,
  1177. color: "Brown",
  1178. prevo: "spearow",
  1179. evoLevel: 20,
  1180. eggGroups: ["Flying"],
  1181. },
  1182. raichumega: {
  1183. num: 26,
  1184. species: "Raichu-Mega",
  1185. baseSpecies: "Raichu",
  1186. forme: "Mega",
  1187. formeLetter: "M",
  1188. types: ["Electric", "Dark"],
  1189. baseStats: {hp:65, atk:157, def:94, spa:157, spd:94, spe:118},
  1190. abilities: {0:"Aftermath"},
  1191. heightm: 1.3,
  1192. weightkg: 39,
  1193. color: "Yellow",
  1194. prevo: "pikachu",
  1195. evoLevel: 1,
  1196. eggGroups: ["Field", "Fairy"],
  1197. },
  1198. machampmega: {
  1199. num: 68,
  1200. species: "Machamp-Mega",
  1201. baseSpecies: "Fearow",
  1202. forme: "Mega",
  1203. formeLetter: "M",
  1204. types: ["Fighting"],
  1205. genderRatio: {M:0.75, F:0.25},
  1206. baseStats: {hp:90, atk:175, def:100, spa:50, spd:115, spe:75},
  1207. abilities: {0:"Guts"},
  1208. heightm: 1.6,
  1209. weightkg: 133.1,
  1210. color: "Gray",
  1211. prevo: "machoke",
  1212. evoLevel: 28,
  1213. eggGroups: ["Human-Like"],
  1214. },
  1215. slowkingmega: {
  1216. num: 199,
  1217. species: "Slowking-Mega",
  1218. baseSpecies: "Slowking",
  1219. forme: "Mega",
  1220. formeLetter: "M",
  1221. types: ["Water", "Psychic"],
  1222. baseStats: {hp:95, atk:75, def:80, spa:130, spd:180, spe:30},
  1223. abilities: {0:"Unaware"},
  1224. heightm: 2,
  1225. weightkg: 88.8,
  1226. color: "Pink",
  1227. prevo: "slowpoke",
  1228. evoLevel: 1,
  1229. eggGroups: ["Monster", "Water 1"],
  1230. },
  1231. mrmimemega: {
  1232. num: 122,
  1233. species: "Mr. Mime-Mega",
  1234. baseSpecies: "Mr. Mime",
  1235. forme: "Mega",
  1236. formeLetter: "M",
  1237. types: ["Psychic", "Fairy"],
  1238. baseStats: {hp:90, atk:45, def:155, spa:120, spd:170, spe:60},
  1239. abilities: {0:"Stall"},
  1240. heightm: 1.337,
  1241. weightkg: 45.4,
  1242. color: "Pink",
  1243. prevo: "mimejr",
  1244. evoLevel: 1,
  1245. eggGroups: ["Human-Like"],
  1246. },
  1247. meganiummega: {
  1248. num: 154,
  1249. species: "Meganium-Mega",
  1250. baseSpecies: "Meganium",
  1251. forme: "Mega",
  1252. formeLetter: "M",
  1253. types: ["Grass"],
  1254. baseStats: {hp:90, atk:118, def:149, spa:73, spd:155, spe:65},
  1255. abilities: {0:"Flower Veil"},
  1256. heightm: 2,
  1257. weightkg: 111.1,
  1258. color: "Grass",
  1259. prevo: "bayleef",
  1260. evoLevel: 32,
  1261. eggGroups: ["Monster", "Grass"],
  1262. },
  1263. typhlosionmega: {
  1264. num: 157,
  1265. species: "Typhlosion-Mega",
  1266. baseSpecies: "Typhlosion",
  1267. forme: "Mega",
  1268. formeLetter: "M",
  1269. types: ["Fire"],
  1270. baseStats: {hp:78, atk:94, def:98, spa:144, spd:105, spe:126},
  1271. abilities: {0:"Sheer Force"},
  1272. heightm: 1.8,
  1273. weightkg: 80.8,
  1274. color: "Yellow",
  1275. prevo: "quilava",
  1276. evoLevel: 36,
  1277. eggGroups: ["Field"],
  1278. },
  1279. feraligatrmega: {
  1280. num: 157,
  1281. species: "Feraligatr-Mega",
  1282. baseSpecies: "Feraligatr",
  1283. forme: "Mega",
  1284. formeLetter: "M",
  1285. types: ["Water", "Dragon"],
  1286. baseStats: {hp:85, atk:145, def:120, spa:104, spd:98, spe:98},
  1287. abilities: {0:"Sheer Force"},
  1288. heightm: 2.3,
  1289. weightkg: 88.8,
  1290. color: "Blue",
  1291. prevo: "croconaw",
  1292. evoLevel: 30,
  1293. eggGroups: ["Monster", "Water 1"],
  1294. },
  1295. };
  1296. 'use strict';
  1297.  
  1298. exports.BattleScripts = {
  1299. //Pokemon Modification:
  1300. init: function () {
  1301. for (let i in this.data.Pokedex) {
  1302. let learnset = (this.data.Learnsets[i]) ? this.data.Learnsets[i].learnset : false;
  1303. let pokemon = this.data.Pokedex[i];
  1304. if (learnset) {
  1305. //Everyone who has access to dazzling gleam now has access to moonblast.
  1306. if (learnset.dazzlinggleam) {
  1307. if (learnset.moonblast) {
  1308. this.modData('Learnsets', i).learnset.moonblast = learnset.moonblast.push('6M');
  1309. } else {
  1310. this.modData('Learnsets', i).learnset.moonblast = ['6M'];
  1311. }
  1312. }
  1313. //Defog is now a gen 6 HM.
  1314. if (learnset.defog) {
  1315. this.modData('Learnsets', i).learnset.defog = learnset.defog.push('6M');
  1316. }
  1317. //All ground types have access to Fissure.
  1318. if (pokemon.types.indexOf('Ground') > -1) {
  1319. if (learnset.fissure) {
  1320. this.modData('Learnsets', i).learnset.fissure = learnset.fissure.push('6T');
  1321. } else {
  1322. this.modData('Learnsets', i).learnset.fissure = ['6T'];
  1323. }
  1324. }
  1325. //All grass types have access to Leaf Storm.
  1326. if (pokemon.types.indexOf('Grass') > -1) {
  1327. if (learnset.leafstorm) {
  1328. this.modData('Learnsets', i).learnset.leafstorm = learnset.leafstorm.push('6T');
  1329. } else {
  1330. this.modData('Learnsets', i).learnset.leafstorm = ['6T'];
  1331. }
  1332. }
  1333. //All fire types have access to Overheat.
  1334. if (pokemon.types.indexOf('Fire') > -1) {
  1335. if (learnset.overheat) {
  1336. this.modData('Learnsets', i).learnset.overheat = learnset.overheat.push('6T');
  1337. } else {
  1338. this.modData('Learnsets', i).learnset.overheat = ['6T'];
  1339. }
  1340. }
  1341. //All fairy types have access to Light of Ruin.
  1342. if (pokemon.types.indexOf('Fairy') > -1) {
  1343. if (learnset.lightofruin) {
  1344. this.modData('Learnsets', i).learnset.lightofruin = learnset.lightofruin.push('6T');
  1345. } else {
  1346. this.modData('Learnsets', i).learnset.lightofruin = ['6T'];
  1347. }
  1348. }
  1349. //All ice types have access to Sheer Cold.
  1350. if (pokemon.types.indexOf('Ice') > -1) {
  1351. if (learnset.overheat) {
  1352. this.modData('Learnsets', i).learnset.sheercold = learnset.sheercold.push('6T');
  1353. } else {
  1354. this.modData('Learnsets', i).learnset.sheercold = ['6T'];
  1355. }
  1356. }
  1357. //All water types have access to Bubble Beam.
  1358. if (pokemon.types.indexOf('Water') > -1) {
  1359. if (learnset.bubblebeam) {
  1360. this.modData('Learnsets', i).learnset.bubblebeam = learnset.bubblebeam.push('6M');
  1361. } else {
  1362. this.modData('Learnsets', i).learnset.bubblebeam = ['6M'];
  1363. }
  1364. }
  1365. }
  1366. }
  1367. //Pidgeot slight buff
  1368. this.modData('Learnsets', 'pidgeot').learnset.hypervoice = ['6L1'];
  1369. this.modData('Learnsets', 'pidgeot').learnset.aurasphere = ['6L1'];
  1370.  
  1371. //Fearow slight buff
  1372. this.modData('Learnsets', 'fearow').learnset.bravebird = ['6L1'];
  1373.  
  1374. //Give Pika the event moves that it deserves, make volt tackle egg-independent, and add coverage. Do the same for Raichu since it branches off of Pichu.
  1375. let chu = {'pikachu':1, 'pikachucosplay':1, 'pikachurockstar':1, 'pikachubelle':1, 'pikachupopstar':1, 'pikachuphd':1, 'pikachulibre':1, 'raichu':1};
  1376. for (let i in chu) {
  1377. //Overlap the cosplay forms with Pikachu's moveset.
  1378. if (i !== 'pikachu' && i !== 'raichu') this.modData('Learnsets', i).learnset = this.data.Learnsets.pikachu.learnset;
  1379. //Do the thing
  1380. this.modData('Learnsets', i).learnset.extremespeed = ['6L1'];
  1381. this.modData('Learnsets', i).learnset.surf = ['6M'];
  1382. this.modData('Learnsets', i).learnset.fly = ['6M'];
  1383. this.modData('Learnsets', i).learnset.volttackle = ['6L1'];
  1384. this.modData('Learnsets', i).learnset.dynamocannon = ['6L1'];
  1385. this.modData('Learnsets', i).learnset.electricterrain = ['6L1'];
  1386. this.modData('Learnsets', i).learnset.flamethrower = ['6M'];
  1387. this.modData('Learnsets', i).learnset.firepunch = ['6T'];
  1388. this.modData('Learnsets', i).learnset.icepunch = ['6T'];
  1389. this.modData('Learnsets', i).learnset.dazzlinggleam = ['6M'];
  1390. this.modData('Learnsets', i).learnset.moonblast = ['6M'];
  1391. this.modData('Learnsets', i).learnset.icebeam = ['6M'];
  1392. this.modData('Learnsets', i).learnset.blizzard = ['6M'];
  1393. this.modData('Learnsets', i).learnset.focusblast = ['6M'];
  1394. this.modData('Learnsets', i).learnset.poisonjab = ['6M'];
  1395. this.modData('Learnsets', i).learnset.sludgebomb = ['6M'];
  1396. this.modData('Learnsets', i).learnset.surf = ['6M'];
  1397. this.modData('Learnsets', i).learnset.darkpulse = ['6M'];
  1398. this.modData('Learnsets', i).learnset.shadowball = ['6M'];
  1399. this.modData('Learnsets', i).learnset.hypervoice = ['6T'];
  1400. this.modData('Learnsets', i).learnset.stoneedge = ['6M'];
  1401. this.modData('Learnsets', i).learnset.rockslide = ['6M'];
  1402. this.modData('Learnsets', i).learnset.bulkup = ['6M'];
  1403. this.modData('Learnsets', i).learnset.swordsdance = ['6M'];
  1404. this.modData('Learnsets', i).learnset.calmmind = ['6M'];
  1405. this.modData('Learnsets', i).learnset.recover = ['6T'];
  1406. }
  1407. //Now for the bonus ducks.
  1408. this.modData('Learnsets', 'pikachu').learnset.earthquake = ['6M'];
  1409. this.modData('Learnsets', 'pikachu').learnset.earthpower = ['6T'];
  1410. this.modData('Learnsets', 'pikachu').learnset.fissure = ['6T'];
  1411. this.modData('Learnsets', 'pikachu').learnset.heavenscrack = ['6L1'];
  1412. this.modData('Learnsets', 'pikachucosplay').learnset.earthquake = ['6M'];
  1413. this.modData('Learnsets', 'pikachucosplay').learnset.earthpower = ['6T'];
  1414. this.modData('Learnsets', 'pikachucosplay').learnset.fissure = ['6T'];
  1415. this.modData('Learnsets', 'pikachucosplay').learnset.heavenscrack = ['6L1'];
  1416. this.modData('Learnsets', 'pikachurockstar').learnset.meteormash = ['6L1'];
  1417. this.modData('Learnsets', 'pikachurockstar').learnset.ironhead = ['6T'];
  1418. this.modData('Learnsets', 'pikachurockstar').learnset.flashcannon = ['6M'];
  1419. this.modData('Learnsets', 'pikachurockstar').learnset.bloodthirstyblade = ['6L1'];
  1420. this.modData('Learnsets', 'pikachubelle').learnset.iciclecrash = ['6L1'];
  1421. this.modData('Learnsets', 'pikachubelle').learnset.iceshard = ['6T'];
  1422. this.modData('Learnsets', 'pikachubelle').learnset.sheercold = ['6T'];
  1423. this.modData('Learnsets', 'pikachubelle').learnset.perfectglacialist = ['6L1'];
  1424. this.modData('Learnsets', 'pikachupopstar').learnset.drainingkiss = ['6L1'];
  1425. this.modData('Learnsets', 'pikachupopstar').learnset.lightofruin = ['6T'];
  1426. this.modData('Learnsets', 'pikachupopstar').learnset.playrough = ['6T'];
  1427. this.modData('Learnsets', 'pikachupopstar').learnset.valkyriearrow = ['6L1'];
  1428. this.modData('Learnsets', 'pikachuphd').learnset.psychic = ['6M'];
  1429. this.modData('Learnsets', 'pikachuphd').learnset.psyshock = ['6M'];
  1430. this.modData('Learnsets', 'pikachuphd').learnset.zenheadbutt = ['6T'];
  1431. this.modData('Learnsets', 'pikachuphd').learnset.genesisnova = ['6L1'];
  1432. this.modData('Learnsets', 'pikachulibre').learnset.flyingpress = ['6L1'];
  1433. this.modData('Learnsets', 'pikachulibre').learnset.closecombat = ['6T'];
  1434. this.modData('Learnsets', 'pikachulibre').learnset.superpower = ['6T'];
  1435. this.modData('Learnsets', 'pikachulibre').learnset.imprisonedstrike = ['6L1'];
  1436.  
  1437. // Happinny
  1438. this.modData('Learnsets', 'happiny').learnset.softboiled = ['6L1'];
  1439. this.modData('Learnsets', 'happiny').learnset.wish = ['6L1'];
  1440.  
  1441. // Mimez gets stallz
  1442. this.modData('Learnsets', 'mrmime').learnset.recover = ['6L1'];
  1443. this.modData('Learnsets', 'mrmime').learnset.partingshot = ['6L1'];
  1444. this.modData('Learnsets', 'mrmime').learnset.entrainment = ['6L1'];
  1445. this.modData('Learnsets', 'mrmime').learnset.metalburst = ['6L1'];
  1446. this.modData('Learnsets', 'mrmime').learnset.healbell = ['6L1'];
  1447. this.modData('Learnsets', 'mrmime').learnset.knockoff = ['6T'];
  1448.  
  1449. // Aero gets head smash
  1450. this.modData('Learnsets', 'aerodactyl').learnset.headsmash = ['6L1'];
  1451.  
  1452. // Meganium gets Power Whip
  1453. this.modData('Learnsets', 'meganium').learnset.powerwhip = ['6L1'];
  1454.  
  1455. // Xatu gets Whirlwind
  1456. this.modData('Learnsets', 'xatu').learnset.whirlwind = ['6L1'];
  1457.  
  1458. // Ampharos gets Tail Glow
  1459. this.modData('Learnsets', 'ampharos').learnset.tailglow = ['6L1'];
  1460.  
  1461. for (let i in this.data.FormatsData) {
  1462. // Every hidden ability becomes released. Nothing could possibly go wrong™
  1463. this.modData('FormatsData', i).unreleasedHidden = false;
  1464. // Make certain mons OU
  1465. let OUmons = {pikachu:1, pikachurockstar:1, pikachubelle:1, pikachupopstar:1, pikachuphd:1, pikachulibre:1, gengarmega:1, kangaskhanmega:1, blaziken:1, blazikenmega:1, aegislash:1}
  1466. if (i in OUmons) this.modData('FormatsData', i).tier = 'OU';
  1467. }
  1468. },
  1469. //Allow custom mega-evolutions without anything in terms of sprites breaking:
  1470. runMegaEvo: function (pokemon) {
  1471. let template = this.getTemplate(pokemon.canMegaEvo);
  1472. let side = pokemon.side;
  1473.  
  1474. // Pokémon affected by Sky Drop cannot mega evolve. Enforce it here for now.
  1475. let foeActive = side.foe.active;
  1476. for (let i = 0; i < foeActive.length; i++) {
  1477. if (foeActive[i].volatiles['skydrop'] && foeActive[i].volatiles['skydrop'].source === pokemon) {
  1478. return false;
  1479. }
  1480. }
  1481.  
  1482. //Prevent sprites from screwing with our stuff.
  1483. let forbid = {'Venusaur-Mega-X':'Venusaurite X', 'Blastoise-Mega-Y':'Blastoisinite Y', 'Butterfree-Mega':'Butterfrite', 'Fearow-Mega':'Fearowite', 'Raichu-Mega':'Raichuite', 'Machamp-Mega':'Machampite', 'Slowking-Mega':'Slowkingite', 'Mr. Mime-Mega':'Mimezite', 'Meganium-Mega':'Meganiumite', 'Typhlosion-Mega':'Typhlosionite', 'Feraligatr-Mega':'Feraligatrite'};
  1484. if (template.species in forbid) {
  1485. //Case 1: Sprites don't exist
  1486. template = Object.assign({}, template); //Prevent metagame crosstalk.
  1487. template.spriteid = toId(template.baseSpecies);
  1488. template.actualSpecies = template.species;
  1489. template.species = template.species.split('-')[0];
  1490. template.requiredItem = forbid[template.species];
  1491. } else if (template.species === 'Venusaur-Mega-Y') {
  1492. //Case 2: Sprites do exist, but the mega changed.
  1493. template = Object.assign({}, template);
  1494. template.spriteid = 'venusaur-mega';
  1495. template.species = 'Venusaur-Mega';
  1496. template.actualSpecies = 'Venusaur-Mega-Y'; //yes this is venusaur-mega-y
  1497. template.requiredItem = 'Venusaurite Y';
  1498. } else if (template.species === 'Blastoise-Mega-X') {
  1499. //Case 2: Sprites do exist, but the mega changed.
  1500. template = Object.assign({}, template);
  1501. template.spriteid = 'blastoise-mega';
  1502. template.species = 'Blastoise-Mega';
  1503. template.actualSpecies = 'Blastoise-Mega-X';
  1504. template.requiredItem = 'Blastoisinite X';
  1505. }
  1506. pokemon.formeChange(template);
  1507. pokemon.baseTemplate = template; // mega evolution is permanent
  1508. pokemon.details = template.species + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : '');
  1509. this.add('detailschange', pokemon, pokemon.details);
  1510. this.add('-mega', pokemon, template.baseSpecies, template.requiredItem);
  1511. pokemon.setAbility(template.abilities['0']);
  1512. pokemon.baseAbility = pokemon.ability;
  1513. let changed = {'Blastoise':true, 'Raichu':true, 'Aerodactyl':true, 'Feraligatr':true};
  1514. if (template.actualSpecies in forbid || template.species === 'Venusaur-Mega' || template.baseSpecies in changed) {
  1515. let types = template.types;
  1516. let bTypes = (types.length === 1 || types[1] === 'caw') ? types[0] : types.join('/');
  1517. this.add('-start', pokemon, 'typechange', bTypes, '[silent]');
  1518. }
  1519. if (template.actualSpecies) this.add('-start', pokemon, template.actualSpecies, '[silent]'); //Show the pokemon's actual species
  1520.  
  1521. // Limit one mega evolution
  1522. for (let i = 0; i < side.pokemon.length; i++) {
  1523. side.pokemon[i].canMegaEvo = false;
  1524. }
  1525. return true;
  1526. },
  1527. };
  1528. 'use strict';
  1529.  
  1530. exports.BattleStatuses = {
  1531. frz: {
  1532. inherit: true,
  1533. onBeforeMove: function (pokemon, target, move) {
  1534. if (move.flags['defrost']) return;
  1535. if (this.random(3) === 0) {
  1536. pokemon.cureStatus();
  1537. return;
  1538. }
  1539. this.add('cant', pokemon, 'frz');
  1540. return false;
  1541. },
  1542. },
  1543. };
  1544. 'use strict';
  1545.  
  1546. exports.BattleTypeChart = {
  1547. "Fairy": {
  1548. damageTaken: {
  1549. "Bug": 2,
  1550. "Dark": 1,
  1551. "Dragon": 3,
  1552. "Electric": 0,
  1553. "Fairy": 0,
  1554. "Fighting": 2,
  1555. "Fire": 0,
  1556. "Flying": 0,
  1557. "Ghost": 0,
  1558. "Grass": 0,
  1559. "Ground": 0,
  1560. "Ice": 0,
  1561. "Normal": 0,
  1562. "Poison": 1,
  1563. "Psychic": 0,
  1564. "Rock": 0,
  1565. "Steel": 1,
  1566. "Water": 0,
  1567. },
  1568. },
  1569. "Ice": {
  1570. damageTaken: {
  1571. hail: 3,
  1572. frz: 3,
  1573. "Bug": 0,
  1574. "Dark": 0,
  1575. "Dragon": 0,
  1576. "Electric": 0,
  1577. "Fairy": 0,
  1578. "Fighting": 1,
  1579. "Fire": 1,
  1580. "Flying": 0,
  1581. "Ghost": 0,
  1582. "Grass": 0,
  1583. "Ground": 0,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement