Full source of "Fred". To run these files, you must have python 2.7. Copy the source to notepad/python and save as ~(you can't change the name without changing the source).py. But please, we don't need 5 bots. |
| | -Moves.xml-(another huge post) | |
| | Author | Message |
---|
Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: -Moves.xml-(another huge post) Wed Sep 21, 2011 8:16 pm | |
| -C-h-a-n-g-e-s-------------------- --(Code writer in source) Pulled source from http://trac.poke-lab.com/browser------------------------------------- -S-o-u-r-c-e----------------------- - Code:
-
<!-- File: moves.xml Author: Catherine Created on April 6 2009, 6:37 AM This file is a part of Shoddy Battle. Copyright (C) 2009 Catherine Fitzpatrick This program is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, visit the Free Software Foundation, Inc. online at http://gnu.org. --> <shoddybattle> <move name="Absorb" id="0"> <type>Grass</type> <class>Special</class> <power>20</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeRecoilMove(this, -2); ]]> </init> </move> <move name="Acid" id="1"> <type>Poison</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move> <move name="Acid Armor" id="2"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 2)); ]]> </use> </move> <move name="Acupressure" id="3"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User or ally</target> <flags> <snatch/> </flags> <use> <![CDATA[ var stats = []; for (var i = 1; i < 8; ++i) { if (target.getStatLevel(i) < 6) { stats.push(i); } } var length = stats.length; if (length == 0) { field.print(Text.battle_messages(0)); return; } var stat = stats[field.random(0, length - 1)]; target.applyStatus(user, new StatChangeEffect(stat, 2)); ]]> </use> </move> <move name="Aerial Ace" id="4"> <type>Flying</type> <class>Physical</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Aeroblast" id="5"> <type>Flying</type> <class>Special</class> <power>100</power> <accuracy>0.95</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move> <move name="Agility" id="6"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPEED, 2)); ]]> </use> </move> <move name="Air Cutter" id="7"> <type>Flying</type> <class>Special</class> <power>55</power> <accuracy>0.95</accuracy> <pp>25</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move> <move name="Air Slash" id="8"> <type>Flying</type> <class>Special</class> <power>75</power> <accuracy>0.95</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move> <move name="Amnesia" id="9"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPDEFENCE, 2)); ]]> </use> </move> <move name="AncientPower" id="10"> <type>Rock</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeAllStatBoostMove(this); ]]> </init> </move> <move name="Aqua Jet" id="11"> <type>Water</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Aqua Ring" id="12"> <type>Water</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> </flags> <use> <![CDATA[ if (user.getStatus("AquaRingEffect")) { field.print(Text.battle_messages(0)); return; } var move_ = this; var effect = new StatusEffect("AquaRingEffect"); effect.tier = 6; effect.subtier = 1; effect.tick = function() { var max = this.subject.getStat(Stat.HP); if (this.subject.hp == max) return; var delta = Math.floor(max / 16); if (this.subject.sendMessage("informRecoilDamage", -delta, move_)) return; var adjusted = this.subject.sendMessage("informAbsorbHealth", this.subject, delta); if (adjusted) { delta = adjusted; } field.print(Text.battle_messages_unique(56, this.subject, move_)); this.subject.hp += delta; }; user.applyStatus(user, effect); ]]> </use> </move> <move name="Aqua Tail" id="13"> <type>Water</type> <class>Physical</class> <power>90</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Arm Thrust" id="14"> <type>Fighting</type> <class>Physical</class> <power>15</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move> <move name="Aromatherapy" id="15"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeStatusCureMove(this); ]]> </init> </move> <move name="Assist" id="16"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>None</target> <flags> </flags> <init> <![CDATA[ this.forbidden_ = ["Metronome", "Struggle", "Sketch", "Mimic", "Chatter", "Sleep Talk", "Assist", "Mirror Move", "Counter", "Mirror Coat", "Protect", "Detect", "Endure", "Destiny Bond", "Thief", "Follow Me", "Snatch", "Helping Hand", "Covet", "Trick", "Focus Punch", "Feint", "Copycat", "Me First", "Switcheroo"]; ]]> </init> <use> <![CDATA[ var choices = []; var size = field.getPartySize(user.party); for (var i = 0; i < size; ++i) { var p = field.getPokemon(user.party, i); if (p == user) continue; for (var j = 0; j < p.moveCount; ++j) { var move = p.getMove(j); if (this.forbidden_.indexOf(move.name) == -1) { choices.push(move); } } } var length = choices.length; if (length == 0) { field.print(Text.battle_messages(0)); return; } var choice = choices[field.random(0, length - 1)]; user.execute(choice); ]]> </use> </move> <move name="Assurance" id="17"> <type>Dark</type> <class>Physical</class> <power>50</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; if (target.damaged) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move> <move name="Astonish" id="18"> <type>Ghost</type> <class>Physical</class> <power>30</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move> <move name="Attack Order" id="19"> <type>Bug</type> <class>Physical</class> <power>90</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move> <move name="Attract" id="20"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[AttractEffect]]); ]]> </init> </move> <move name="Aura Sphere" id="21"> <type>Fighting</type> <class>Special</class> <power>90</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Aurora Beam" id="22"> <type>Ice</type> <class>Special</class> <power>65</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, -1), 0.1]]); ]]> </init> </move> <move name="Avalanche" id="23"> <type>Ice</type> <class>Physical</class> <priority>-4</priority> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRevengeMove(this); ]]> </init> </move> <move name="Barrage" id="24"> <type>Normal</type> <class>Physical</class> <power>15</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move> <move name="Barrier" id="25"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 2)); ]]> </use> </move> <move name="Baton Pass" id="26"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> </flags> <init> <![CDATA[ this.effects_ = ["AquaRingEffect", "TrappingEffect", "ConfusionEffect", "CurseEffect", "EmbargoEffect", "HighCriticalEffect", "GastroAcidEffect", "IngrainEffect", "LeechSeedEffect", "LockOnEffect", "MagnetRiseEffect", "PerishSongEffect", "PowerTrickEffect", "SubstituteEffect"]; ]]> </init> <use> <![CDATA[ var selection = field.requestInactivePokemon(user); if (!selection) { field.print(Text.battle_messages(0)); return; } for (var i = 0; i <= Stat.EVASION; ++i) { var level = user.getStatLevel(i); if (level != 0) { var effect = new StatChangeEffect(i, level); effect.silent = true; selection.applyStatus(selection, effect); } } this.effects_.forEach(function(i) { var effect = user.getStatus(i); if (effect) { field.narration = false; selection.applyStatus(selection, effect); field.narration = true; } }); field.sendMessage("informBatonPass", user); var slot = user.position; user.switchOut(); selection.sendOut(slot); ]]> </use> </move> <move name="Beat Up" id="27"> <type>Dark</type> <class>Physical</class> <power>10</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; if (user.getStatus("HelpingHandEffect")) { this.power *= 1.5; } var defence = target.base[Stat.DEFENCE]; var size = field.getPartySize(user.party); for (var i = 0; i < size; ++i) { var p = field.getPokemon(user.party, i); if (p.fainted || p.getStatus(StatusEffect.SPECIAL_EFFECT)) continue; // TODO: There needs to some function to inform the client about the other // pokemon in the user of Beat Up's party. field.print(Text.battle_messages_unique(7, p)); // TODO (!) var damage = Math.floor(Math.floor((Math.floor(p.level * 2 / 5) + 2) * this.power * p.base[Stat.ATTACK] / 50) / defence) + 2; if (field.isCriticalHit(this, user, target)) { damage *= user.sendMessage("informCritical") || 2; field.print(Text.battle_messages(9)); target.sendMessage("informCriticalHit"); } damage = Math.floor(damage * Math.floor(field.random(217, 255) * 100 / 255) / 100); target.hp -= damage; } ]]> </use> </move> <move name="Belly Drum" id="28"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var delta = Math.floor(user.getStat(Stat.HP) / 2); if ((delta >= user.hp) || (user.getStatLevel(Stat.ATTACK) == 6)) { field.print(Text.battle_messages(0)); return; } user.sendMessage("forceDirectDamage"); user.hp -= delta; var effect = new StatChangeEffect(Stat.ATTACK, 12); http://effect.silent = true; user.applyStatus(user, effect); // TODO: Belly Drum-specific message? ]]> </use> </move> <move name="Bide" id="29"> <type>Normal</type> <class>Physical</class> <priority>1</priority> <power>1</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <contact/> <protect/> <flinch/> </flags> <use> <![CDATA[ var effect = user.getStatus("BideEffect"); if (!effect) { effect = new StatusEffect("BideEffect"); effect.name = Text.battle_messages_unique(103); effect.turns_ = 3; effect.damage = 0; effect.vetoSwitch = function(subject) { return (subject == this.subject); }; effect.unapplyEffect = function() { this.subject.clearForcedMove(); }; effect.informFreeze = effect.informSleep = function() { this.subject.removeStatus(this); }; effect.informFinishedSubjectExecution = function() { if (!this.subject.lastMove) { this.subject.removeStatus(this); } }; effect.informDamaged = function(user, move, damage) { if ((move.name != "Pain Split") && (damage > 0)) { this.damage += damage; this.party_ = user.party; this.position_ = user.position; } }; effect = user.applyStatus(user, effect); } if (--effect.turns_ != 0) { user.setForcedMove(this, null, false); field.print(Text.battle_messages_unique(104, user)); return; } var damage = effect.damage * 2; var party_ = effect.party_; var position_ = effect.position_; user.removeStatus(effect); if (damage == 0) { field.print(Text.battle_messages(0)); return; } var p = field.getActivePokemon(party_, position_); if (!p && !(p = field.getRandomTarget(1 - user.party))) { field.print(Text.battle_messages(3)); return; } field.print(Text.battle_messages_unique(105, user)); p.hp -= damage; ]]> </use> </move> <move name="Bind" id="30"> <type>Normal</type> <class>Physical</class> <power>15</power> <accuracy>0.75</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(72)); ]]> </init> </move> <move name="Bite" id="31"> <type>Dark</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move> <move name="Blast Burn" id="32"> <type>Fire</type> <class>Special</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move> <move name="Blaze Kick" id="33"> <type>Fire</type> <class>Physical</class> <power>85</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move> <move name="Blizzard" id="34"> <type>Ice</type> <class>Special</class> <power>120</power> <accuracy>0.70</accuracy> <pp>5</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FreezeEffect, 0.1]]); var accuracy_ = this.accuracy; this.attemptHit = function(field, user, target) { this.accuracy = accuracy_; var flags = getGlobalController(field).getFlags(); if (flags[GlobalEffect.HAIL]) { this.accuracy = 0; // TODO: maybe apply effect for x0 instead... } return field.attemptHit(this, user, target); }; ]]> </init> </move> <move name="Block" id="35"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeTrappingMove(this); ]]> </init> </move> <move name="Body Slam" id="36"> <type>Normal</type> <class>Physical</class> <power>85</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move> <move name="Bone Club" id="37"> <type>Ground</type> <class>Physical</class> <power>65</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1]]); ]]> </init> </move> <move name="Bone Rush" id="38"> <type>Ground</type> <class>Physical</class> <power>25</power> <accuracy>0.80</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move> <move name="Bonemerang" id="39"> <type>Ground</type> <class>Physical</class> <power>50</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTwoHitMove(this); ]]> </init> </move> <move name="Bounce" id="40"> <type>Flying</type> <class>Physical</class> <power>85</power> <accuracy>0.85</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); makeChargeMove(this, Text.battle_messages_charge.wrap(7), ["Gust", "Thunder", "Twister", "Sky Uppercut"]); ]]> </init> </move> <move name="Brave Bird" id="41"> <type>Flying</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 3); ]]> </init> </move> <move name="Brick Break" id="42"> <type>Fighting</type> <class>Physical</class> <power>75</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var removed = false; for (var i = 0; i < 2; ++i) { var effect = target.getStatus("BuffEffect" + i); if (effect) { field.removeStatus(effect); removed = true; } } if (removed) { field.print(Text.battle_messages_unique(20)); } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move> <move name="Brine" id="43"> <type>Water</type> <class>Special</class> <power>65</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; if ((target.hp * 2) <= target.getStat(Stat.HP)) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move> <move name="Bubble" id="44"> <type>Water</type> <class>Special</class> <power>20</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 0.1]]); ]]> </init> </move> <move name="BubbleBeam" id="45"> <type>Water</type> <class>Special</class> <power>65</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 0.1]]); ]]> </init> </move> <move name="Bug Bite" id="46"> <type>Bug</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makePluckMove(this); ]]> </init> </move> <move name="Bug Buzz" id="47"> <type>Bug</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move> <move name="Bulk Up" id="48"> <type>Fighting</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 1)); user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 1)); ]]> </use> </move> <move name="Bullet Punch" id="49"> <type>Steel</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
Last edited by Admin on Wed Sep 21, 2011 10:50 pm; edited 3 times in total (Reason for editing : codebox to preserve indents (edited all codes for this)) | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Wed Sep 21, 2011 8:26 pm | |
| - Code:
-
>
<move name="Bullet Seed" id="50"> <type>Grass</type> <class>Physical</class> <power>10</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Calm Mind" id="51"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPATTACK, 1)); user.applyStatus(user, new StatChangeEffect(Stat.SPDEFENCE, 1)); ]]> </use> </move>
<move name="Camouflage" id="52"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ // Camouflage always changes the user to normal type in a link battle. const type = Type.NORMAL; if (user.isType(type)) { field.print(Text.battle_messages(0)); return; } user.setTypes([type]); field.print(Text.battle_messages_unique(9, user, Text.types(type))); ]]> </use> </move>
<move name="Captivate" id="53"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, -2)]]); var parent = this.use; this.use = function(field, user, target, targets) { if (!isOppositeGender(user, target)) { field.print(Text.battle_messages(0)); return; } parent.call(this, field, user, target, targets); }; ]]> </init> </move>
<move name="Charge" id="54"> <type>Electric</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var effect = user.getStatus("ChargeEffect"); if (effect) { user.removeStatus(effect); } effect = new StatusEffect("ChargeEffect"); effect.name = Text.battle_messages_unique(67); effect.tier = 0; effect.turns = 2; effect.tick = function() { if (--this.turns <= 0) { this.subject.removeStatus(this); } }; // @mod 0, 2, Charge effect.modifier = function(field, user, target, move, critical) { if (user != this.subject) return null; if (move.type != Type.ELECTRIC) return null; // x2 multiplier in base power; priority of 2. return [0, 2, 2]; }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(68, user)); user.applyStatus(user, new StatChangeEffect(Stat.SPDEFENCE, 1)); ]]> </use> </move>
<move name="Charge Beam" id="55"> <type>Electric</type> <class>Special</class> <power>50</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, 1), 0.7, true]]); ]]> </init> </move>
<move name="Charm" id="56"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, -2)]]); ]]> </init> </move>
<move name="Chatter" id="57"> <type>Flying</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <sound/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (damage == 0) { return; } target.hp -= damage; if (user.getStatus("TransformEffect") || target.sendMessage("informSecondaryEffect")) { return; } if (field.random(0.31)) { target.applyStatus(user, new ConfusionEffect()); } ]]> </use> </move>
<move name="Clamp" id="58"> <type>Water</type> <class>Physical</class> <power>35</power> <accuracy>0.75</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(73)); ]]> </init> </move>
<move name="Close Combat" id="59"> <type>Fighting</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.DEFENCE, -1), 1, true], [new StatChangeEffect(Stat.SPDEFENCE, -1), 1, true] ]); ]]> </init> </move>
<move name="Comet Punch" id="60"> <type>Normal</type> <class>Physical</class> <power>18</power> <accuracy>0.85</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Confuse Ray" id="61"> <type>Ghost</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Confusion" id="62"> <type>Psychic</type> <class>Special</class> <power>50</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect, 0.1]]); ]]> </init> </move>
<move name="Constrict" id="63"> <type>Normal</type> <class>Physical</class> <power>10</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 0.1]]); ]]> </init> </move>
<move name="Conversion" id="64"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ var choices = []; for (var i = 0; i < user.moveCount; ++i) { var move = user.getMove(i); var type = move.type; if ((type != Type.TYPELESS) && !user.isType(type)) { choices.push(type); } } var length = choices.length; if (length == 0) { field.print(Text.battle_messages(0)); return; } var choice = choices[field.random(0, length - 1)]; user.setTypes([choice]); field.print(Text.battle_messages_unique(9, user, Text.types(choice))); ]]> </use> </move>
<move name="Conversion 2" id="65"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ var move = user.memory; if (!move) { field.print(Text.battle_messages(0)); return; } var type = move.type; var choices = []; for (var idx in Type) { var i = Type[idx]; if (field.getTypeEffectiveness(type, i) < 1.0) { choices.push(i); } } var length = choices.length; if (length == 0) { field.print(Text.battle_messages(0)); return; } var choice = choices[field.random(0, length - 1)]; user.setTypes([choice]); field.print(Text.battle_messages_unique(9, user, Text.types(choice))); ]]> </use> </move>
<move name="Copycat" id="66"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>None</target> <flags>
</flags> <init> <![CDATA[ this.forbidden_ = ["Assist", "Chatter", "Copycat", "Counter", "Covet", "Destiny Bond", "Detect", "Endure", "Feint", "Focus Punch", "Follow Me", "Helping Hand", "Me First", "Metronome", "Mimic", "Mirror Coat", "Mirror Move", "Protect", "Sketch", "Sleep Talk", "Snatch", "Struggle", "Switcheroo", "Thief", "Trick"]; ]]> </init> <use> <![CDATA[ var move = field.lastMove; if (!move || (this.forbidden_.indexOf(move.name) != -1)) { field.print(Text.battle_messages(0)); return; } user.execute(move); ]]> </use> </move>
<move name="Cosmic Power" id="67"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.DEFENCE, 1), 1, true], [new StatChangeEffect(Stat.SPDEFENCE, 1), 1, true] ]); ]]> </init> </move>
<move name="Cotton Spore" id="68"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0.85</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -2)]]); ]]> </init> </move>
<move name="Counter" id="69"> <type>Fighting</type> <class>Physical</class> <priority>-5</priority> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>None</target> <flags> <contact/> </flags> <init> makeCounterMove(this, MoveClass.PHYSICAL, 2); </init> </move>
<move name="Covet" id="70"> <type>Normal</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeThiefMove(this); ]]> </init> </move>
<move name="Crabhammer" id="71"> <type>Water</type> <class>Physical</class> <power>90</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Cross Chop" id="72"> <type>Fighting</type> <class>Physical</class> <power>100</power> <accuracy>0.80</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Cross Poison" id="73"> <type>Poison</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.1]]); ]]> </init> </move>
<move name="Crunch" id="74"> <type>Dark</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1), 0.2]]); ]]> </init> </move>
<move name="Crush Claw" id="75"> <type>Normal</type> <class>Physical</class> <power>75</power> <accuracy>0.95</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1), 0.5]]); ]]> </init> </move>
<move name="Crush Grip" id="76"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTargetHealthMove(this); ]]> </init> </move>
<move name="Curse" id="77"> <type>Typeless</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <!-- Note: Curse always has single non-user target for the purpose of failure due to lack of a target. However, when selecting a move, Curse appears to be user target if the user's type does not include Ghost; in fact, a random target is silently chosen from among the available enemies. --> <target>Non-user</target> <flags>
</flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, 1), 1.0, true], [new StatChangeEffect(Stat.DEFENCE, 1), 1.0, true], [new StatChangeEffect(Stat.SPEED, -1), 1.0, true]]); var parent = this.use; this.use = function(field, user, target, targets) { if (!user.isType(Type.GHOST)) { parent.call(this, field, user, target, targets); return; } if (target.getStatus("CurseEffect") || target.getStatus("SubstituteEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("CurseEffect"); effect.name = Text.battle_messages_unique(88); effect.tier = 6; effect.subtier = 6; effect.tick = function() { field.print(Text.battle_messages_unique(90, this.subject)); this.subject.hp -= Math.floor(this.subject.getStat(Stat.HP) / 4); }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(89, user, target)); user.hp -= Math.floor(user.getStat(Stat.HP) / 2); }; ]]> </init> </move>
<move name="Cut" id="78"> <type>Normal</type> <class>Physical</class> <power>50</power> <accuracy>0.95</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Dark Pulse" id="79"> <type>Dark</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.2]]); ]]> </init> </move>
<move name="Dark Void" id="80"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>0.80</accuracy> <pp>10</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Defend Order" id="81"> <type>Bug</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.DEFENCE, 1), 1, true], [new StatChangeEffect(Stat.SPDEFENCE, 1), 1, true] ]); ]]> </init> </move>
<move name="Defense Curl" id="82"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 1)); user.applyStatus(user, new StatusEffect("MomentumBoostEffect")); ]]> </use> </move>
<move name="Defog" id="83"> <type>Flying</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ this.effects_ = ["BuffEffect0", // Reflect "BuffEffect1", // Light Screen "SafeguardEffect", "MistEffect"]; ]]> </init> <use> <![CDATA[ target.applyStatus(user, new StatChangeEffect(Stat.EVASION, -1)); this.effects_.forEach(function(id) { var effect = target.getStatus(id); if (effect) { field.removeStatus(effect); } }); getHazardController(target).clearHazards(target.party); ]]> </use> </move>
<move name="Destiny Bond" id="84"> <type>Ghost</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ var effect = user.getStatus("DestinyBondEffect"); if (effect) { user.removeStatus(effect); } effect = new StatusEffect("DestinyBondEffect"); effect.turns_ = 2; effect.informDamaged = function(user, move, damage) { var subject = this.subject; if ((subject.hp <= 0) && (damage > 0) && (user.party != subject.party)) { field.print(Text.battle_messages_unique(62, subject, user)); user.faint(); } }; effect.informFinishedSubjectExecution = function() { if (--this.turns_ == 0) { this.subject.removeStatus(this); } }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(61, user)); ]]> </use> </move>
<move name="Detect" id="85"> <type>Fighting</type> <class>Other</class> <priority>3</priority> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags>
</flags> <init> <![CDATA[ makeProtectMove(this); ]]> </init> </move>
<move name="Dig" id="86"> <type>Ground</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(4), ["Earthquake", "Magnitude"]); ]]> </init> </move>
<move name="Disable" id="87"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.80</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("DisableEffect")) { field.print(Text.battle_messages(0)); return; } // Fails if the target doesn't know the last move it used or if that move // has zero PP or if the target's last move is null. var move = target.lastMove; if (!move || (target.getPp(move) <= 0)) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("DisableEffect"); effect.name = Text.battle_messages_unique(69); effect.move = move; effect.turns = field.random(4, 7); effect.vetoSelection = function(user, move) { if (user != this.subject) return false; return (move.name == this.move.name); }; effect.vetoTier = 2; effect.vetoExecution = function(field, user, target, move) { if (target != null) return false; if (user != this.subject) return false; if (move.name != this.move.name) return false; field.print(Text.battle_messages_unique(71, user, move)); return true; }; effect.informFinishedSubjectExecution = function() { if ((--this.turns <= 0) || (this.subject.getPp(this.move) <= 0)) { this.subject.removeStatus(this); } }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(70, target, move)); ]]> </use> </move>
<move name="Discharge" id="88"> <type>Electric</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move>
<move name="Dive" id="89"> <type>Water</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(6), ["Surf", "Whirlpool"]); ]]> </init> </move>
<move name="Dizzy Punch" id="90"> <type>Normal</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect, 0.2]]); ]]> </init> </move>
<move name="Doom Desire" id="91"> <type>Steel</type> <class>Special</class> <power>120</power> <accuracy>0.85</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <no-critical/> </flags> <init> <![CDATA[ makeDelayedAttackMove(this); ]]> </init> </move>
<move name="Double Hit" id="92"> <type>Normal</type> <class>Physical</class> <power>35</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTwoHitMove(this); ]]> </init> </move>
<move name="Double Kick" id="93"> <type>Fighting</type> <class>Physical</class> <power>30</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTwoHitMove(this); ]]> </init> </move>
<move name="Double Team" id="94"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>15</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ this.isEvasionMove_ = true; ]]> </init> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.EVASION, 1)); ]]> </use> </move>
<move name="Double-Edge" id="95"> <type>Normal</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 3); ]]> </init> </move>
<move name="DoubleSlap" id="96"> <type>Normal</type> <class>Physical</class> <power>15</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Draco Meteor" id="97"> <type>Dragon</type> <class>Special</class> <power>140</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, -2), 1, true]]); ]]> </init> </move>
<move name="Dragon Claw" id="98"> <type>Dragon</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Dragon Dance" id="99"> <type>Dragon</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 1)); user.applyStatus(user, new StatChangeEffect(Stat.SPEED, 1)); ]]> </use> </move>
Last edited by Admin on Wed Sep 21, 2011 10:51 pm; edited 1 time in total | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Wed Sep 21, 2011 8:27 pm | |
| - Code:
-
<move name="Dragon Pulse" id="100"> <type>Dragon</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Dragon Rage" id="101"> <type>Dragon</type> <class>Special</class> <power>1</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } target.hp -= 40; ]]> </use> </move> <move name="Dragon Rush" id="102"> <type>Dragon</type> <class>Physical</class> <power>100</power> <accuracy>0.75</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move> <move name="DragonBreath" id="103"> <type>Dragon</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move> <move name="Drain Punch" id="104"> <type>Fighting</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, -2); ]]> </init> </move> <move name="Dream Eater" id="105"> <type>Psychic</type> <class>Special</class> <power>100</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeRecoilMove(this, -2); var parent = this.use; this.use = function(field, user, target, targets) { if (target.getStatus("SleepEffect") == null) { field.print(Text.battle_messages(0)); return; } parent.call(this, field, user, target, targets); }; ]]> </init> </move> <move name="Drill Peck" id="106"> <type>Flying</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> <move name="DynamicPunch" id="107"> <type>Fighting</type> <class>Physical</class> <power>100</power> <accuracy>0.50</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move> <move name="Earth Power" id="108"> <type>Ground</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move> <move name="Earthquake" id="109"> <type>Ground</type> <class>Physical</class> <power>100</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = target.getStatus("ChargeMoveEffect"); if (effect && (effect.move.name == "Dig")) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move> <move name="Egg Bomb" id="110"> <type>Normal</type> <class>Physical</class> <power>100</power> <accuracy>0.75</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Embargo" id="111"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("EmbargoEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("EmbargoEffect"); effect.name = Text.battle_messages_unique(116); effect.tier = 8.1; // TODO: Research required. effect.turns_ = 5; effect.tick = function() { if (--this.turns_ == 0) { field.print(Text.battle_messages_unique(118, this.subject)); this.subject.removeStatus(this); } }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(117, target)); ]]> </use> </move> <move name="Ember" id="112"> <type>Fire</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move> <move name="Encore" id="113"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ this.forbidden_ = ["Transform", "Mimic", "Sketch", "Mirror Move", "Encore", "Struggle"]; ]]> </init> <use> <![CDATA[ if (target.getStatus("EncoreEffect")) { field.print(Text.battle_messages(0)); return; } var move = target.lastMove; if (!move || (this.forbidden_.indexOf(move.name) != -1) || (target.getPp(move) <= 0)) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("EncoreEffect"); effect.name = Text.battle_messages_unique(154); effect.tier = 0; effect.move_ = move; var id_ = target.getMoveId(move) effect.turns_ = field.random(4, 8); effect.choice_ = !target.forcedMove; effect.informBeginExecution = function() { var turn = this.subject.turn; if (this.subject.isSelectable(this.move_)) { turn.move = id_; } else { turn.move = -1; this.subject.setForcedMove(field.getMove("Struggle"), null, true); } turn.target = -1; }; var this_ = this; effect.informFinishedSubjectExecution = function(move) { if (this.choice_ && this.subject.lastMove) { this.subject.setPp(move, this.subject.getPp(move) - 1); } var move_ = this.subject.getMove(id_); if (!move_ || (this.subject.getPp(move_) <= 0) || (this.move_.name != move_.name)) { this.subject.removeStatus(this); return; } if ((this.turns_ > 1) && (this.choice_ = !this.subject.forcedTurn)) { this.subject.setForcedMove(this_, null, true); } }; effect.tick = function() { if (--this.turns_ == 0) { field.print(Text.battle_messages_unique(156, this.subject)); this.subject.removeStatus(this); } }; target.applyStatus(user, effect); target.setForcedMove(this, null, true); field.print(Text.battle_messages_unique(155, target)); ]]> </use> </move> <move name="Endeavor" id="114"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var damage = target.hp - user.hp; if (damage <= 0) { field.print(Text.battle_messages(0)); return; } if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } target.hp -= damage; ]]> </use> </move> <move name="Endure" id="115"> <type>Normal</type> <class>Other</class> <priority>3</priority> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> </flags> <init> <![CDATA[ makeProtectTypeMove(this, function(field, user) { var effect = new StatusEffect("EndureEffect"); effect.tier = 0; effect.tick = function() { this.subject.removeStatus(this); }; effect.transformHealthChange = function(delta, user, indirect) { if (indirect || (delta < 0)) return delta; var effect = this.subject.getStatus("SubstituteEffect"); if (effect && (effect.hp_ != 0)) return delta; if (this.subject.hp > delta) return delta; field.print(Text.battle_messages_unique(150, this.subject)); return this.subject.hp - 1; }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(149, user)); }); ]]> </init> </move> <move name="Energy Ball" id="116"> <type>Grass</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move> <move name="Eruption" id="117"> <type>Fire</type> <class>Special</class> <power>150</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeUserHealthMove(this); ]]> </init> </move> <move name="Explosion" id="118"> <type>Normal</type> <class>Physical</class> <power>250</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeExplosionMove(this); ]]> </init> </move> <move name="Extrasensory" id="119"> <type>Psychic</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1]]); ]]> </init> </move> <move name="ExtremeSpeed" id="120"> <type>Normal</type> <class>Physical</class> <priority>1</priority> <power>80</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Facade" id="121"> <type>Normal</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; if (user.getStatus(StatusEffect.SPECIAL_EFFECT)) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move> <move name="Faint Attack" id="122"> <type>Dark</type> <class>Physical</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> <move name="Fake Out" id="123"> <type>Normal</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect]]); var parent = this.use; this.use = function(field, user, target, targets) { if (user.acted) { field.print(Text.battle_messages(0)); return; } parent.call(this, field, user, target, targets); }; ]]> </init> </move> <move name="Fake Tears" id="124"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -2)]]); ]]> </init> </move> <move name="False Swipe" id="125"> <type>Normal</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (damage >= target.hp) { target.hp = 1; } else { target.hp -= damage; } ]]> </use> </move> <move name="FeatherDance" id="126"> <type>Flying</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, -2)]]); ]]> </init> </move> <move name="Feint" id="127"> <type>Normal</type> <class>Physical</class> <priority>2</priority> <power>50</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> </flags> <use> <![CDATA[ var effect = target.getStatus("ProtectEffect"); if (!effect) { field.print(Text.battle_messages(0)); return; } target.removeStatus(effect); target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move> <move name="Fire Blast" id="128"> <type>Fire</type> <class>Special</class> <power>120</power> <accuracy>0.85</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move> <move name="Fire Fang" id="129"> <type>Fire</type> <class>Physical</class> <power>65</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1], [BurnEffect, 0.1]]); ]]> </init> </move> <move name="Fire Punch" id="130"> <type>Fire</type> <class>Physical</class> <power>75</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move> <move name="Fire Spin" id="131"> <type>Fire</type> <class>Special</class> <power>15</power> <accuracy>0.70</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(74)); ]]> </init> </move> <move name="Fissure" id="132"> <type>Ground</type> <class>Physical</class> <power>1</power> <accuracy>0.30</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeOneHitKillMove(this); ]]> </init> </move> <move name="Flail" id="133"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeUserLowHealthMove(this); ]]> </init> </move> <move name="Flame Wheel" id="134"> <type>Fire</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move> <move name="Flamethrower" id="135"> <type>Fire</type> <class>Special</class> <power>95</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move> <move name="Flare Blitz" id="136"> <type>Fire</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); makeRecoilMove(this, 3); ]]> </init> </move> <move name="Flash" id="137"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1)]]); ]]> </init> </move> <move name="Flash Cannon" id="138"> <type>Steel</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move> <move name="Flatter" id="139"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect], [new StatChangeEffect(Stat.SPATTACK, 1)]] ); ]]> </init> </move> <move name="Fling" id="140"> <type>Dark</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ var table_ = { "Cheri Berry": [10], "Chesto Berry": [10], "Pecha Berry": [10], "Rawst Berry": [10], "Aspear Berry": [10], "Leppa Berry": [10], "Oran Berry": [10], "Persim Berry": [10], "Lum Berry": [10], "Sitrus Berry": [10], "Figy Berry": [10], "Wiki Berry": [10], "Mago Berry": [10], "Aguav Berry": [10], "Iapapa Berry": [10], "Razz Berry": [10], "Bluk Berry": [10], "Nanab Berry": [10], "Wepear Berry": [10], "Pinap Berry": [10], "Pomeg Berry": [10], "Kelpsy Berry": [10], "Qualot Berry": [10], "Hondew Berry": [10], "Grepa Berry": [10], "Tamato Berry": [10], "Cornn Berry": [10], "Magost Berry": [10], "Rabuta Berry": [10], "Nomel Berry": [10], "Spelon Berry": [10], "Pamtre Berry": [10], "Watmel Berry": [10], "Durin Berry": [10], "Belue Berry": [10], "Occa Berry": [10], "Passho Berry": [10], "Wacan Berry": [10], "Rindo Berry": [10], "Yache Berry": [10], "Chople Berry": [10], "Kebia Berry": [10], "Shuca Berry": [10], "Coba Berry": [10], "Payapa Berry": [10], "Tanga Berry": [10], "Charti Berry": [10], "Kasib Berry": [10], "Haban Berry": [10], "Colbur Berry": [10], "Babiri Berry": [10], "Chilan Berry": [10], "Liechi Berry": [10], "Ganlon Berry": [10], "Salac Berry": [10], "Petaya Berry": [10], "Apicot Berry": [10], "Lansat Berry": [10], "Starf Berry": [10], "Enigma Berry": [10], "Micle Berry": [10], "Custap Berry": [10], "Jaboca Berry": [10], "Rowap Berry": [10], "BrightPowder": [10], "White Herb": [10], "Soothe Bell": [10], "Mental Herb": [10], "Choice Band": [10], "SilverPowder": [10], "Focus Band": [10], "Leftovers": [10], "Soft Sand": [10], "Silk Scarf": [10], "Sea Incense": [10], "Lax Incense": [10], "Metal Powder": [10], "Red Scarf": [10], "Blue Scarf": [10], "Pink Scarf": [10], "Green Scarf": [10], "Yellow Scarf": [10], "Wide Lens": [10], "Muscle Band": [10], "Wise Glasses": [10], "Expert Belt": [10], "Power Herb": [10], "Quick Powder": [10], "Focus Sash": [10], "Zoom Lens": [10], "Lagging Tail": [10], "Destiny Knot": [10], "Smooth Rock": [10], "Choice Scarf": [10], "Shed Shell": [10], "Big Root": [10], "Choice Specs": [10], "Odd Incense": [10], "Rock Incense": [10], "Full Incense": [10], "Wave Incense": [10], "Rose Incense": [10], "Luck Incense": [10], "Pure Incense": [10], "Reaper Cloth": [10], "Potion": [30], "Antidote": [30], "Burn Heal": [30], "Ice Heal": [30], "Awakening": [30], "Parlyz Heal": [30], "Full Restore": [30], "Max Potion": [30], "Hyper Potion": [30], "Super Potion": [30], "Full Heal": [30], "Revive": [30], "Max Revive": [30], "Fresh Water": [30], "Soda Pop": [30], "Lemonade": [30], "Moomoo Milk": [30], "EnergyPowder": [30], "Energy Root": [30], "Heal Powder": [30], "Revival Herb": [30], "Ether": [30], "Max Ether": [30], "Elixir": [30], "Max Elixir": [30], "Lava Cookie": [30], "Berry Juice": [30], "Sacred Ash": [30], "HP Up": [30], "Protein": [30], "Iron": [30], "Carbos": [30], "Calcium": [30], "Rare Candy": [30], "PP Up": [30], "Zinc": [30], "PP Max": [30], "Old Gateau": [30], "Guard Spec.": [30], "Dire Hit": [30], "X Attack": [30], "X Defend": [30], "X Speed": [30], "X Accuracy": [30], "X Special": [30], "X Sp. Def": [30], "Pokà Doll": [30], "Fluffy Tail": [30], "Blue Flute": [30], "Yellow Flute": [30], "Red Flute": [30], "Black Flute": [30], "White Flute": [30], "Shoal Salt": [30], "Shoal Shell": [30], "Red Shard": [30], "Blue Shard": [30], "Yellow Shard": [30], "Green Shard": [30], "Super Repel": [30], "Max Repel": [30], "Escape Rope": [30], "Repel": [30], "Sun Stone": [30], "Moon Stone": [30], "Fire Stone": [30], "Thunderstone": [30], "Water Stone": [30], "Leaf Stone": [30], "TinyMushroom": [30], "Big Mushroom": [30], "Pearl": [30], "Big Pearl": [30], "Stardust": [30], "Star Piece": [30], "Nugget": [30], "Heart Scale": [30], "Honey": [30], "Growth Mulch": [30], "Damp Mulch": [30], "Stable Mulch": [30], "Gooey Mulch": [30], "Exp. Share": [30], "King's Rock": [30, FlinchEffect], "Amulet Coin": [30], "Cleanse Tag": [30], "Soul Dew": [30], "DeepSeaScale": [30], "Smoke Ball": [30], "Everstone": [30], "Lucky Egg": [30], "Scope Lens": [30], "Metal Coat": [30], "Dragon Scale": [30], "Light Ball": [30, ParalysisEffect], "Miracle Seed": [30], "BlackGlasses": [30], "Black Belt": [30], "Magnet": [30], "Mystic Water": [30], "NeverMeltIce": [30], "Spell Tag": [30], "TwistedSpoon": [30], "Charcoal": [30], "Up-Grade": [30], "Shell Bell": [30], "Light Clay": [30], "Life Orb": [30], "Toxic Orb": [30, ToxicEffect], "Flame Orb": [30, BurnEffect], "Metronome": [30], "Black Sludge": [30], "Razor Fang": [30, FlinchEffect], "Lucky Punch": [40], "Icy Rock": [40], "Sharp Beak": [50], "Dubious Disc": [50], "Adamant Orb": [60], "Lustrous Orb": [60], "Macho Brace": [60], "Stick": [60], "Heat Rock": [60], "Damp Rock": [60], "Poison Barb": [70, PoisonEffect], "Dragon Fang": [70], "Power Bracer": [70], "Power Belt": [70], "Power Lens": [70], "Power Band": [70], "Power Anklet": [70], "Power Weight": [70], "Shiny Stone": [80], "Dusk Stone": [80], "Dawn Stone": [80], "Oval Stone": [80], "Odd Keystone": [80], "Quick Claw": [80], "Sticky Barb": [80], "Protector": [80], "Electirizer": [80], "Magmarizer": [80], "Razor Claw": [80], "DeepSeaTooth": [90], "Thick Club": [90], "Grip Claw": [90], "Flame Plate": [90], "Splash Plate": [90], "Zap Plate": [90], "Meadow Plate": [90], "Icicle Plate": [90], "Fist Plate": [90], "Toxic Plate": [90], "Earth Plate": [90], "Sky Plate": [90], "Mind Plate": [90], "Insect Plate": [90], "Stone Plate": [90], "Spooky Plate": [90], "Draco Plate": [90], "Dread Plate": [90], "Iron Plate": [90], "Root Fossil": [100], "Claw Fossil": [100], "Helix Fossil": [100], "Dome Fossil": [100], "Old Amber": [100], "Armor Fossil": [100], "Skull Fossil": [100], "Rare Bone": [100], "Hard Stone": [100], "Iron Ball": [130] }; var power_ = this.power; this.prepareSelf = function(field, user) { this.power = power_; this.usable_ = false; var item = user.item && user.item.id; var entry = item && table_[item]; if (entry) { this.usable_ = true; this.power = entry[0]; this.effect_ = entry[1] ? entry[1] : null; } }; this.use = function(field, user, target, targets) { if (!this.usable_ || user.getStatus("EmbargoEffect")) { field.print(Text.battle_messages(0)); return; } field.print(Text.battle_messages_unique(157, user, user.item)); var damage = field.calculate(this, user, target, targets); target.hp -= damage; if ((damage != 0) && !target.getStatus("EmbargoEffect")) { if (this.effect_ && !target.sendMessage("informSecondaryEffect")) { var effect = new this.effect_(); target.applyStatus(user, effect); } var id = user.item.id; if (user.item.berry_ || (id == "White Herb") || (id == "Mental Herb")) { field.print(Text.battle_messages_unique(147, target, user, user.item)); user.item.use(target); // consumes item } } if (user.item) { user.item.consume(); } }; ]]> </init> </move> <move name="Fly" id="141"> <type>Flying</type> <class>Physical</class> <power>90</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(5), ["Gust", "Thunder", "Twister", "Sky Uppercut"]); ]]> </init> </move> <move name="Focus Blast" id="142"> <type>Fighting</type> <class>Special</class> <power>120</power> <accuracy>0.70</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move> <move name="Focus Energy" id="143"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ if (user.getStatus("HighCriticalEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("HighCriticalEffect"); effect.name = Text.battle_messages_unique(63); effect.criticalModifier = function() { return 2; }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(64, user)); ]]> </use> </move> <move name="Focus Punch" id="144"> <type>Fighting</type> <class>Physical</class> <priority>-3</priority> <power>150</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> </flags> <init> <![CDATA[ this.beginTurn = function(field, user) { if (!user.sendMessage("informBeginTurn")) { field.print(Text.battle_messages_unique(22, user)); } var effect = new StatusEffect("FocusPunchEffect"); effect.vetoTier = 11; // TODO: Get the correct tier. effect.tier = 0; effect.tick = function() { this.subject.removeStatus(this); }; effect.informDamaged = function(user, move) { if (move.name != "Pain Split") { this.lostFocus = true; } }; effect.vetoExecution = function(field, user, target, move) { if (target != null) return false; if (!this.lostFocus) return false; if (user != this.subject) return false; field.print(Text.battle_messages_unique(23, user)); return true; }; user.applyStatus(user, effect); } ]]> </init> </move> <move name="Follow Me" id="145"> <type>Normal</type> <class>Other</class> <priority>3</priority> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <unimplemented/> </flags> <use> <![CDATA[ ]]> </use> </move> <move name="Force Palm" id="146"> <type>Fighting</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move> <move name="Foresight" id="147"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeForesightMove(this, [Type.NORMAL, Type.FIGHTING]); ]]> </init> </move> <move name="Frenzy Plant" id="148"> <type>Grass</type> <class>Special</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move> <move name="Frustration" id="149"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { this.power = Math.floor((255 - user.happiness) * 2 / 5); }; ]]> </init> </move>
Last edited by Admin on Wed Sep 21, 2011 10:53 pm; edited 1 time in total | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Wed Sep 21, 2011 8:28 pm | |
| - Code:
-
<move name="Fury Attack" id="150"> <type>Normal</type> <class>Physical</class> <power>15</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Fury Cutter" id="151"> <type>Bug</type> <class>Physical</class> <power>10</power> <accuracy>0.95</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <attemptHit> <![CDATA[ if (field.attemptHit(this, user, target)) return true; var effect = user.getStatus("FuryCutterEffect"); if (effect) { user.removeStatus(effect); } return false; ]]> </attemptHit> <use> <![CDATA[ var effect = user.getStatus("FuryCutterEffect"); if (!effect) { effect = new StatusEffect("FuryCutterEffect"); effect.multiplier = 0; effect.informFreeze = effect.informSleep = function() { this.subject.removeStatus(this); }; effect.informFinishedSubjectExecution = function(move) { if ((move.name == "Fury Cutter") && !this.subject.lastMove) { this.subject.removeStatus(this); } }; effect = user.applyStatus(user, effect); } this.power = this.power_ << effect.multiplier; var damage = field.calculate(this, user, target, targets); if (damage == 0) { user.removeStatus(effect); return; } target.hp -= damage; if (effect.multiplier < 4) { ++effect.multiplier; } ]]> </use> </move>
<move name="Fury Swipes" id="152"> <type>Normal</type> <class>Physical</class> <power>18</power> <accuracy>0.80</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Future Sight" id="153"> <type>Psychic</type> <class>Special</class> <power>80</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <no-critical/> </flags> <init> <![CDATA[ makeDelayedAttackMove(this); ]]> </init> </move>
<move name="Gastro Acid" id="154"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("GastroAcidEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("GastroAcidEffect"); target.applyStatus(user, effect); field.print(Text.battle_messages_unique(38, target)); ]]> </use> </move>
<move name="Giga Drain" id="155"> <type>Grass</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeRecoilMove(this, -2); ]]> </init> </move>
<move name="Giga Impact" id="156"> <type>Normal</type> <class>Physical</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move>
<move name="Glare" id="157"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect]]); ]]> </init> </move>
<move name="Grass Knot" id="158"> <type>Grass</type> <class>Special</class> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMassBasedMove(this); ]]> </init> </move>
<move name="GrassWhistle" id="159"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0.55</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Gravity" id="160"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { var effect = getGlobalController(field); if (effect.flags[GlobalEffect.GRAVITY]) { field.print(Text.battle_messages(0)); return; } effect.applyGlobalEffect(user, GlobalEffect.GRAVITY); field.print(Text.battle_messages_unique(113)); }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Growl" id="161"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>40</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, -1)]]); ]]> </init> </move>
<move name="Growth" id="162"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPATTACK, 1)); ]]> </use> </move>
<move name="Grudge" id="163"> <type>Ghost</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ var effect = user.getStatus("GrudgeEffect"); if (effect) { user.removeStatus(effect); } effect = new StatusEffect("GrudgeEffect"); effect.name = Text.battle_messages_unique(98); effect.turns_ = 2; effect.informDamaged = function(user, move, damage) { var subject = this.subject; if ((subject.hp <= 0) && (damage > 0) && (user.party != subject.party)) { var turn = user.turn; if (turn) { move = user.getMove(turn.move); user.setPp(move, 0); field.print(Text.battle_messages_unique(100, move)); } } }; effect.informFinishedSubjectExecution = function() { if (--this.turns_ == 0) { this.subject.removeStatus(this); } }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(99, user)); ]]> </use> </move>
<move name="Guard Swap" id="164"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatLevelSwapMove(this, [Stat.DEFENCE, Stat.SPDEFENCE]); ]]> </init> </move>
<move name="Guillotine" id="165"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>0.30</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeOneHitKillMove(this); ]]> </init> </move>
<move name="Gunk Shot" id="166"> <type>Poison</type> <class>Physical</class> <power>120</power> <accuracy>0.70</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.3]]); ]]> </init> </move>
<move name="Gust" id="167"> <type>Flying</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = target.getStatus("ChargeMoveEffect"); if (effect) { var name = effect.move.name; if ((name == "Fly") || (name == "Bounce")) { this.power *= 2; } } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Gyro Ball" id="168"> <type>Steel</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var speed = user.getStat(Stat.SPEED); if (speed < 1) speed = 1; this.power = Math.floor((target.getStat(Stat.SPEED) * 25) / speed) + 1; if (this.power > 150) { this.power = 150; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Hail" id="169"> <type>Ice</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ makeWeatherMove(this, GlobalEffect.HAIL); ]]> </init> </move>
<move name="Hammer Arm" id="170"> <type>Fighting</type> <class>Physical</class> <power>100</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 1, true]]); ]]> </init> </move>
<move name="Harden" id="171"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 1)); ]]> </use> </move>
<move name="Haze" id="172"> <type>Ice</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>All</target> <flags>
</flags> <!-- TODO: This move might have a message in prepareSelf. --> <use> <![CDATA[ var effect = null; while (effect = target.getStatus("StatChangeEffect")) { target.removeStatus(effect); } ]]> </use> </move>
<move name="Head Smash" id="173"> <type>Rock</type> <class>Physical</class> <power>150</power> <accuracy>0.80</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 2); ]]> </init> </move>
<move name="Headbutt" id="174"> <type>Normal</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move>
<move name="Heal Bell" id="175"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>Allies</target> <flags> <snatch/> <sound/> </flags> <init> <![CDATA[ makeStatusCureMove(this); ]]> </init> </move>
<move name="Heal Block" id="176"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ this.forbidden_ = ["Heal Order", "Milk Drink", "Moonlight", "Morning Sun", "Recover", "Rest", "Roost", "Slack Off", "Softboiled", "Swallow", "Synthesis", "Wish"]; ]]> </init> <use> <![CDATA[ // TODO: Handle interaction with Big Root (they both use the same message)! if (target.getStatus("HealBlockEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("HealBlockEffect"); effect.name = Text.battle_messages_unique(126); effect.radius = StatusEffect.RADIUS_GLOBAL; effect.vetoTier = 4; // TODO: Get the correct tier for Heal Block. Note that it actually matters // whether Heal Block is before or after Aqua Ring / Ingrain healing. effect.tier = 6; effect.subtier = 3; effect.turns = 5; var forbidden_ = this.forbidden_; effect.vetoSelection = function(user, move) { if (user != this.subject) return false; return (forbidden_.indexOf(move.name) != -1); }; effect.vetoExecution = function(field, user, target, move) { if (target != null) return false; if (user != this.subject) return false; if (forbidden_.indexOf(move.name) == -1) return false; field.print(Text.battle_messages_unique(128, this.subject, move)); return true; }; effect.tick = function() { if (--this.turns <= 0) { field.print(Text.battle_messages_unique(129, this.subject)); this.subject.removeStatus(this); } }; effect.informRecoilDamage = function(recoil) { return (recoil < 0); }; effect.informHealing = function() { return true; }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(127, target)); ]]> </use> </move>
<move name="Heal Order" id="177"> <type>Bug</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeRecoveryMove(this); ]]> </init> </move>
<move name="Healing Wish" id="178"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <init> <![CDATA[ makeSacrificeMove(this, function(field, p) { p.hp = p.getStat(Stat.HP); var effect = p.getStatus(StatusEffect.SPECIAL_EFFECT); if (effect) { field.print(Text.battle_messages_unique(1, p, effect)); p.removeStatus(effect); } }); ]]> </init> </move>
<move name="Heart Swap" id="179"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatLevelSwapMove(this, [Stat.ATTACK, Stat.DEFENCE, Stat.SPEED, Stat.SPATTACK, Stat.SPDEFENCE, Stat.ACCURACY, Stat.EVASION]); ]]> </init> </move>
<move name="Heat Wave" id="180"> <type>Fire</type> <class>Special</class> <power>100</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.1]]); ]]> </init> </move>
<move name="Helping Hand" id="181"> <type>Normal</type> <class>Other</class> <priority>5</priority> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Ally</target> <flags>
</flags> <use> <![CDATA[ if ((user == target) || !target.turn || target.getStatus("HelpingHandEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("HelpingHandEffect"); // @mod 0, -1, Helping Hand effect.modifier = function(field, user, target, move, critical) { if (user != this.subject) return null; return [0, 1.5, -1]; }; effect.informFinishedSubjectExecution = function() { this.subject.removeStatus(this); }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(93, user, target)); ]]> </use> </move>
<move name="Hi Jump Kick" id="182"> <type>Fighting</type> <class>Physical</class> <power>100</power> <accuracy>0.90</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeJumpKickMove(this); ]]> </init> </move>
<move name="Hidden Power" id="183"> <type>Normal</type> <class>Special</class> <power>1</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ var types_ = [ Type.FIGHTING, Type.FLYING, Type.POISON, Type.GROUND, Type.ROCK, Type.BUG, Type.GHOST, Type.STEEL, Type.FIRE, Type.WATER, Type.GRASS, Type.ELECTRIC, Type.PSYCHIC, Type.ICE, Type.DRAGON, Type.DARK ]; this.prepareSelf = function(field, user) { var power = 0; var type = 0; var ivs = user.iv; for (var i = 0; i < 6; ++i) { var iv = ivs[i]; var increment = 1 << i; if (iv % 2) { type += increment; } if (((iv % 4) == 2) || ((iv % 4) == 3)) { power += increment; } } this.power = Math.floor(power * 40.0 / 63.0 + 30.0); type = Math.floor(type * 15 / 63); this.type = types_[type]; }; ]]> </init> </move>
<move name="Horn Attack" id="184"> <type>Normal</type> <class>Physical</class> <power>65</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Horn Drill" id="185"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>0.30</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeOneHitKillMove(this); ]]> </init> </move>
<move name="Howl" id="186"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 1)); ]]> </use> </move>
<move name="Hydro Cannon" id="187"> <type>Water</type> <class>Special</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move>
<move name="Hydro Pump" id="188"> <type>Water</type> <class>Special</class> <power>120</power> <accuracy>0.80</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Hyper Beam" id="189"> <type>Normal</type> <class>Special</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move>
<move name="Hyper Fang" id="190"> <type>Normal</type> <class>Physical</class> <power>80</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1]]); ]]> </init> </move>
<move name="Hyper Voice" id="191"> <type>Normal</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <sound/> </flags> </move>
<move name="Hypnosis" id="192"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0.60</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> // TODO: generation-specific accuracy makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Ice Ball" id="193"> <type>Ice</type> <class>Physical</class> <power>30</power> <accuracy>0.90</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMomentumMove(this); ]]> </init> </move>
<move name="Ice Beam" id="194"> <type>Ice</type> <class>Special</class> <power>95</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FreezeEffect, 0.1]]); ]]> </init> </move>
<move name="Ice Fang" id="195"> <type>Ice</type> <class>Physical</class> <power>65</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1], [FreezeEffect, 0.1]]); ]]> </init> </move>
<move name="Ice Punch" id="196"> <type>Ice</type> <class>Physical</class> <power>75</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FreezeEffect, 0.1]]); ]]> </init> </move>
<move name="Ice Shard" id="197"> <type>Ice</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Icicle Spear" id="198"> <type>Ice</type> <class>Physical</class> <power>10</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Icy Wind" id="199"> <type>Ice</type> <class>Special</class> <power>55</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 1.0]]); ]]> </init> </move>
Last edited by Admin on Wed Sep 21, 2011 10:54 pm; edited 1 time in total | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Wed Sep 21, 2011 8:28 pm | |
| - Code:
-
<move name="Imprison" id="200"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ if (user.getStatus("ImprisonEffect")) { field.print(Text.battle_messages(0)); return; } var moves = []; for (var i = 0; i < user.moveCount; ++i) { moves.push(user.getMove(i)); } var success = false; var party = 1 - user.party; for (var i = 0; i < field.partySize; ++i) { var p = field.getActivePokemon(party, i); if (p) { moves.forEach(function(move) { if (p.getPp(move) != -1) { success = true; } }); } } if (!success) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("ImprisonEffect"); effect.name = Text.battle_messages_unique(101); effect.radius = StatusEffect.RADIUS_ENEMY_PARTY; effect.vetoTier = 3; effect.vetoExecution = function(field, user, target, move) { if (user.party == this.subject.party) return false; if (target != null) return false; if (this.subject.getPp(move) == -1) return false; field.print(Text.battle_messages_unique(148, user, move)); return true; }; effect.vetoSelection = function(user, move) { if (user.party == this.subject.party) return false; if (this.subject.getPp(move) == -1) return false; return true; }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(102, user)); ]]> </use> </move>
<move name="Ingrain" id="201"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ if (user.getStatus("IngrainEffect")) { field.print(Text.battle_messages(0)); return; } var move_ = this; var effect = new StatusEffect("IngrainEffect"); effect.name = Text.battle_messages_unique(142); effect.tier = 6; effect.subtier = 1; effect.tick = function() { var max = this.subject.getStat(Stat.HP); if (this.subject.hp == max) return; var delta = Math.floor(max / 16); if (this.subject.sendMessage("informRecoilDamage", -delta, move_)) return; var adjusted = this.subject.sendMessage("informAbsorbHealth", this.subject, delta); if (adjusted) delta = adjusted; field.print(Text.battle_messages_unique(144, this.subject)); this.subject.hp += delta; }; effect.vulnerability = function(user, target) { if (target != this.subject) return -1; return Type.GROUND; }; effect.vetoSwitch = function(subject) { return (subject == this.subject); }; effect.informRandomSwitch = function() { // Block Roar and Whirlwind. return true; }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(143, user)); ]]> </use> </move>
<move name="Iron Defense" id="202"> <type>Steel</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>15</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 2)); ]]> </use> </move>
<move name="Iron Head" id="203"> <type>Steel</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move>
<move name="Iron Tail" id="204"> <type>Steel</type> <class>Physical</class> <power>100</power> <accuracy>0.75</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1), 0.3]]); ]]> </init> </move>
<move name="Judgment" id="205"> <type>Normal</type> <class>Special</class> <power>100</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ var type_ = this.type; this.prepareSelf = function(field, user) { this.type = (user.item && user.item.plate_ && user.item.type_) || type_; }; ]]> </init> </move>
<move name="Jump Kick" id="206"> <type>Fighting</type> <class>Physical</class> <power>85</power> <accuracy>0.95</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeJumpKickMove(this); ]]> </init> </move>
<move name="Karate Chop" id="207"> <type>Fighting</type> <class>Physical</class> <power>50</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Kinesis" id="208"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0.80</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1)]]); ]]> </init> </move>
<move name="Knock Off" id="209"> <type>Dark</type> <class>Physical</class> <power>20</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (damage) { target.hp -= damage; if (target.item && !target.sendMessage("informRemoveItem")) { field.print(Text.battle_messages_unique(12, user, target, target.item)); target.item = null; } } ]]> </use> </move>
<move name="Last Resort" id="210"> <type>Normal</type> <class>Physical</class> <power>130</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var usable = false; var count = user.moveCount; if (count != 1) { usable = true; for (var i = 0; i < count; ++i) { if (user.getMove(i) != this) { if (!user.isMoveUsed(i)) { usable = false; break; } } } } if (usable) { target.hp -= field.calculate(this, user, target, targets); } else { field.print(Text.battle_messages(0)); } ]]> </use> </move>
<move name="Lava Plume" id="211"> <type>Fire</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.3]]); ]]> </init> </move>
<!-- TODO: This move has lower power (70) in RSE. --> <move name="Leaf Blade" id="212"> <type>Grass</type> <class>Physical</class> <power>90</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Leaf Storm" id="213"> <type>Grass</type> <class>Special</class> <power>140</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, -2), 1, true]]); ]]> </init> </move>
<move name="Leech Life" id="214"> <type>Bug</type> <class>Physical</class> <power>20</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeRecoilMove(this, -2); ]]> </init> </move>
<move name="Leech Seed" id="215"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("LeechSeedEffect") || target.isType(Type.GRASS)) { field.print(Text.battle_messages(0)); return; } var party_ = user.party; var position_ = user.position; var effect = new StatusEffect("LeechSeedEffect"); effect.name = Text.status_effects_leech_seed(0); effect.tier = 6; effect.subtier = 3; effect.tick = function() { var p = field.getActivePokemon(party_, position_); if (!p) return; field.print(Text.status_effects_leech_seed(2, this.subject)); var damage = Math.floor(this.subject.getStat(Stat.HP) / 8); if (damage < 1) damage = 1; this.subject.hp -= damage; if (target.sendMessage("informDrainHealth", p, damage)) return; var adjusted = this.subject.sendMessage("informAbsorbHealth", this.subject, damage); if (adjusted) { damage = adjusted; } p.hp += damage; }; target.applyStatus(user, effect); field.print(Text.status_effects_leech_seed(1, target)); ]]> </use> </move>
<move name="Leer" id="216"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1)]]); ]]> </init> </move>
<move name="Lick" id="217"> <type>Ghost</type> <class>Physical</class> <power>20</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move>
<move name="Light Screen" id="218"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ makePartyBuffMove(this, MoveClass.SPECIAL); ]]> </init> </move>
<move name="Lock-On" id="219"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeLockOnMove(this); ]]> </init> </move>
<move name="Lovely Kiss" id="220"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Low Kick" id="221"> <type>Fighting</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMassBasedMove(this); ]]> </init> </move>
<move name="Lucky Chant" id="222"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>Allies</target> <flags>
</flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { if (user.getStatus("LuckyChantEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("LuckyChantEffect"); effect.name = Text.battle_messages_unique(123); effect.radius = StatusEffect.RADIUS_USER_PARTY; effect.turns = 5; var party_ = user.party; effect.applyEffect = function() { return (this.subject.party == party_); }; effect.beginTick = function() { if (--this.turns != 0) return; field.print(Text.battle_messages_unique(125)); field.removeStatus(this); }; effect.informAttemptCritical = function() { return true; }; field.print(Text.battle_messages_unique(124, user)); field.applyStatus(effect); }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Lunar Dance" id="223"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <init> <![CDATA[ makeSacrificeMove(this, function(field, p) { p.hp = p.getStat(Stat.HP); var effect = p.getStatus(StatusEffect.SPECIAL_EFFECT); if (effect) { field.print(Text.battle_messages_unique(1, p, effect)); p.removeStatus(effect); } for (var i = 0; i < p.moveCount; ++i) { var move = p.getMove(i); p.setPp(move, p.getMaxPp(move)); } }); ]]> </init> </move>
<move name="Luster Purge" id="224"> <type>Psychic</type> <class>Special</class> <power>70</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.5]]); ]]> </init> </move>
<move name="Mach Punch" id="225"> <type>Fighting</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Magic Coat" id="226"> <type>Psychic</type> <class>Other</class> <priority>4</priority> <power>0</power> <accuracy>0</accuracy> <pp>15</pp> <target>None</target> <flags>
</flags> <use> <![CDATA[ var effect = new StatusEffect("MagicCoatEffect"); effect.tier = 0; effect.vetoExecution = function(field, user, target, move) { if (target != this.subject) return false; if (!move.flags[Flag.REFLECT]) return false; if (move.prepareSelf) { move.prepareSelf(field, target, user); } if (move.use) { move.use(field, target, user, 1); } return true; }; effect.tick = function() { this.subject.removeStatus(this); }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(43, user)); ]]> </use> </move>
<move name="Magical Leaf" id="227"> <type>Grass</type> <class>Special</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Magma Storm" id="228"> <type>Fire</type> <class>Special</class> <power>120</power> <accuracy>0.70</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(74)); ]]> </init> </move>
<move name="Magnet Bomb" id="229"> <type>Steel</type> <class>Physical</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Magnet Rise" id="230"> <type>Electric</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ if (user.getStatus("MagnetRiseEffect") || user.getStatus("IngrainEffect") || user.hasAbility("Levitate")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("MagnetRiseEffect"); effect.name = Text.battle_messages_unique(130); effect.tier = 0; effect.turns = 5; effect.immunity = function(user, target) { if (target != this.subject) return -1; return Type.GROUND; }; effect.tick = function() { if (--this.turns <= 0) { field.print(Text.battle_messages_unique(132, this.subject)); this.subject.removeStatus(this); } }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(131, user)); ]]> </use> </move>
<move name="Magnitude" id="231"> <type>Ground</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { var magnitude; var rand = field.random(0, 100); if (rand < 5) { this.power_ = 10; magnitude = 4; } else if (rand < 15) { this.power_ = 30; magnitude = 5; } else if (rand < 35) { this.power_ = 50; magnitude = 6; } else if (rand < 65) { this.power_ = 70; magnitude = 7; } else if (rand < 85) { this.power_ = 90; magnitude = 8; } else if (rand < 95) { this.power_ = 110; magnitude = 9; } else { this.power_ = 150; magnitude = 10; } field.print(Text.battle_messages_unique(14, magnitude)); }; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = target.getStatus("ChargeMoveEffect"); if (effect && (effect.move.name == "Dig")) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Me First" id="232"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemy</target> <flags> <protect/> </flags> <init> <![CDATA[ this.forbidden_ = ["Counter", "Mirror Coat", "Thief", "Covet", "Focus Punch", "Chatter"]; ]]> </init> <use> <![CDATA[ var turn = target.turn; if (!turn) { // The target has already processed its turn, so Me First fails. field.print(Text.battle_messages(0)); return; } /** * TODO: RESEARCH QUESTION * Does Me First fail if the target has a forced move and did not select its * move freely? */ var move = target.getMove(turn.move); if ((move.moveClass == MoveClass.OTHER) || (this.forbidden_.indexOf(move.name) != -1)) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("MeFirstEffect"); // @mod 2, 1, Me First effect.modifier = function(field, user) { if (user != this.subject) return null; return [2, 1.5, 1]; }; effect = user.applyStatus(user, effect); user.execute(move); user.removeStatus(effect); ]]> </use> </move>
<move name="Mean Look" id="233"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeTrappingMove(this); ]]> </init> </move>
<move name="Meditate" id="234"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 1)); ]]> </use> </move>
<move name="Mega Drain" id="235"> <type>Grass</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeRecoilMove(this, -2); ]]> </init> </move>
<move name="Mega Kick" id="236"> <type>Normal</type> <class>Physical</class> <power>120</power> <accuracy>0.75</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Mega Punch" id="237"> <type>Normal</type> <class>Physical</class> <power>80</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Megahorn" id="238"> <type>Bug</type> <class>Physical</class> <power>120</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Memento" id="239"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, -2)], [new StatChangeEffect(Stat.SPATTACK, -2)]]); this.prepareSelf = function(field, user) { user.faint(); }; ]]> </init> </move>
<move name="Metal Burst" id="240"> <type>Steel</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>None</target> <flags> <memorable/> </flags> <init> makeCounterMove(this, undefined, 1.5); </init> </move>
<move name="Metal Claw" id="241"> <type>Steel</type> <class>Physical</class> <power>50</power> <accuracy>0.95</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, 1), 0.1, true]]); ]]> </init> </move>
<move name="Metal Sound" id="242"> <type>Steel</type> <class>Other</class> <power>0</power> <accuracy>0.85</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -2)]]); ]]> </init> </move>
<move name="Meteor Mash" id="243"> <type>Steel</type> <class>Physical</class> <power>100</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ATTACK, 1), 0.2, true]]); ]]> </init> </move>
<move name="Metronome" id="244"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>None</target> <flags>
</flags> <use> <![CDATA[ var forbidden = ["Metronome", "Struggle", "Sketch", "Mimic", "Chatter", "Sleep Talk", "Assist", "Mirror Move", "Counter", "Mirror Coat", "Protect", "Detect", "Endure", "Destiny Bond", "Thief", "Follow Me", "Snatch", "Helping Hand", "Covet", "Trick", "Focus Punch", "Feint", "Copycat", "Me First", "Switcheroo"]; for (var i = 0; i < user.moveCount; ++i) { var move = user.getMove(i); forbidden.push(move.name); } var length = field.getMoveCount(); var move = null; while (!move || (forbidden.indexOf(move.name) != -1) || move.flags[Flag.INTERNAL]) { move = field.getMove(field.random(0, length - 1)); } user.execute(move); ]]> </use> </move>
<move name="Milk Drink" id="245"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeRecoveryMove(this); ]]> </init> </move>
<move name="Mimic" id="246"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> </flags> <init> <![CDATA[ this.forbidden_ = ["Metronome", "Struggle", "Sketch", "Mimic", "Chatter"]; ]]> </init> <use> <![CDATA[ var move = target.lastMove; if (user.getStatus("TransformEffect") || !move || (this.forbidden_.indexOf(move.name) != -1) || (user.getPp(move) != -1)) { field.print(Text.battle_messages(0)); return; } var id_ = user.getMoveId(this); var original_ = user.getMove(id_); var pp_ = user.getPp(original_); var maxPp_ = user.getMaxPp(original_); var effect = new StatusEffect("MimicEffect"); effect.unapplyEffect = function() { this.subject.setMove(id_, original_, pp_, maxPp_); }; user.applyStatus(user, effect); user.setMove(id_, move, 5, 5); field.print(Text.battle_messages_unique(37, user, move)); ]]> </use> </move>
<move name="Mind Reader" id="247"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeLockOnMove(this); ]]> </init> </move>
<move name="Minimize" id="248"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <init> this.isEvasionMove_ = true; </init> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.EVASION, 1)); var effect = new StatusEffect("MinimiseEffect"); user.applyStatus(user, effect); ]]> </use> </move>
<move name="Miracle Eye" id="249"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeForesightMove(this, [Type.PSYCHIC]); ]]> </init> </move> | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Wed Sep 21, 2011 10:57 pm | |
| - Code:
-
<move name="Mirror Coat" id="250"> <type>Psychic</type> <class>Special</class> <priority>-5</priority> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>None</target> <flags>
</flags> <init> makeCounterMove(this, MoveClass.SPECIAL, 2); </init> </move>
<move name="Mirror Move" id="251"> <type>Flying</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>None</target> <flags>
</flags> <use> <![CDATA[ var move = user.memory; if ((move == null) || (move.name == "Encore")) { // Note: Mirror Move specifically fails when copying Encore field.print(Text.battle_messages(0)); return; }
// Execute the move on a randomised target. user.execute(move); ]]> </use> </move>
<move name="Mirror Shot" id="252"> <type>Steel</type> <class>Special</class> <power>65</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1), 0.3]]); ]]> </init> </move>
<move name="Mist" id="253"> <type>Ice</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { if (user.getStatus("MistEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("MistEffect"); effect.name = Text.battle_messages_unique(106); effect.radius = StatusEffect.RADIUS_USER_PARTY; effect.turns = 5; var party_ = user.party; effect.applyEffect = function() { return (this.subject.party == party_); }; effect.beginTick = function() { if (--this.turns != 0) return; // TODO: Reference trainer name in the message. field.print(Text.battle_messages_unique(108, this.subject)); field.removeStatus(this); }; effect.transformStatus = function(subject, status) { if (subject.party != party_) return status; if (status.inducer == subject) return status; if (status.id != "StatChangeEffect") return status; if (status.delta_ > 0) return status; return null; }; field.print(Text.battle_messages_unique(107, user)); field.applyStatus(effect); }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Mist Ball" id="254"> <type>Psychic</type> <class>Special</class> <power>70</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, -1), 0.5]]); ]]> </init> </move>
<move name="Moonlight" id="255"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeWeatherBasedHealingMove(this); ]]> </init> </move>
<move name="Morning Sun" id="256"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeWeatherBasedHealingMove(this); ]]> </init> </move>
<move name="Mud Bomb" id="257"> <type>Ground</type> <class>Special</class> <power>65</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1), 0.3]]); ]]> </init> </move>
<move name="Mud Shot" id="258"> <type>Ground</type> <class>Special</class> <power>55</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 0.1]]); ]]> </init> </move>
<move name="Mud Sport" id="259"> <type>Ground</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>15</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ makeTypeWeakeningMove(this, Type.ELECTRIC); ]]> </init> </move>
<move name="Mud-Slap" id="260"> <type>Ground</type> <class>Special</class> <power>20</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1), 1.0]]); ]]> </init> </move>
<move name="Muddy Water" id="261"> <type>Water</type> <class>Special</class> <power>95</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1), 0.3]]); ]]> </init> </move>
<move name="Nasty Plot" id="262"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPATTACK, 2)); ]]> </use> </move>
<move name="Natural Gift" id="263"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ var table_ = { "Cheri Berry": [Type.FIRE, 60], "Chesto Berry": [Type.WATER, 60], "Pecha Berry": [Type.ELECTRIC, 60], "Rawst Berry": [Type.GRASS, 60], "Aspear Berry": [Type.ICE, 60], "Leppa Berry": [Type.FIGHTING, 60], "Oran Berry": [Type.POISON, 60], "Persim Berry": [Type.GROUND, 60], "Lum Berry": [Type.FLYING, 60], "Sitrus Berry": [Type.PSYCHIC, 60], "Figy Berry": [Type.BUG, 60], "Wiki Berry": [Type.ROCK, 60], "Mago Berry": [Type.GHOST, 60], "Aguav Berry": [Type.DRAGON, 60], "Iapapa Berry": [Type.DARK, 60], "Razz Berry": [Type.STEEL, 60], "Bluk Berry": [Type.FIRE, 70], "Nanab Berry": [Type.WATER, 70], "Wepear Berry": [Type.ELECTRIC, 70], "Pinap Berry": [Type.GRASS, 70], "Pomeg Berry": [Type.ICE, 70], "Kelpsy Berry": [Type.FIGHTING, 70], "Qualot Berry": [Type.POISON, 70], "Hondew Berry": [Type.GROUND, 70], "Grepa Berry": [Type.FLYING, 70], "Tamato Berry": [Type.PSYCHIC, 70], "Cornn Berry": [Type.BUG, 70], "Magost Berry": [Type.ROCK, 70], "Rabuta Berry": [Type.GHOST, 70], "Nomel Berry": [Type.DRAGON, 70], "Spelon Berry": [Type.DARK, 70], "Pamtre Berry": [Type.STEEL, 70], "Watmel Berry": [Type.FIRE, 80], "Durin Berry": [Type.WATER, 80], "Belue Berry": [Type.ELECTRIC, 80], "Occa Berry": [Type.FIRE, 60], "Passho Berry": [Type.WATER, 60], "Wacan Berry": [Type.ELECTRIC, 60], "Rindo Berry": [Type.GRASS, 60], "Yache Berry": [Type.ICE, 60], "Chople Berry": [Type.FIGHTING, 60], "Kebia Berry": [Type.POISON, 60], "Shuca Berry": [Type.GROUND, 60], "Coba Berry": [Type.FLYING, 60], "Payapa Berry": [Type.PSYCHIC, 60], "Tanga Berry": [Type.BUG, 60], "Charti Berry": [Type.ROCK, 60], "Kasib Berry": [Type.GHOST, 60], "Haban Berry": [Type.DRAGON, 60], "Colbur Berry": [Type.DARK, 60], "Babiri Berry": [Type.STEEL, 60], "Chilan Berry": [Type.NORMAL, 60], "Liechi Berry": [Type.GRASS, 80], "Ganlon Berry": [Type.ICE, 80], "Salac Berry": [Type.FIGHTING, 80], "Petaya Berry": [Type.POISON, 80], "Apicot Berry": [Type.GROUND, 80], "Lansat Berry": [Type.FLYING, 80], "Starf Berry": [Type.PSYCHIC, 80], "Enigma Berry": [Type.BUG, 80], "Micle Berry": [Type.ROCK, 80], "Custap Berry": [Type.GHOST, 80], "Jaboca Berry": [Type.DRAGON, 80], "Rowap Berry": [Type.DARK, 80], }; var power_ = this.power; var type_ = this.type; this.prepareSelf = function(field, user) { this.power = power_; this.type = type_; this.usable_ = false; var item = user.item && user.item.id; var entry = item && table_[item]; if (entry) { this.usable_ = true; this.type = entry[0]; this.power = entry[1]; } }; this.use = function(field, user, target, targets) { if (user.hasAbility("Klutz") || user.getStatus("EmbargoEffect") || !this.usable_) { field.print(Text.battle_messages(0)); return; } target.hp -= field.calculate(this, user, target, targets); user.item.consume(); }; ]]> </init> </move>
<move name="Nature Power" id="264"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>None</target> <flags>
</flags> <use> <![CDATA[ // Nature Power always uses Tri Attack in link battles. user.execute(field.getMove("Tri Attack")); ]]> </use> </move>
<move name="Needle Arm" id="265"> <type>Grass</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move>
<move name="Night Shade" id="266"> <type>Ghost</type> <class>Special</class> <power>1</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } target.hp -= user.level; ]]> </use> </move>
<move name="Night Slash" id="267"> <type>Dark</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Nightmare" id="268"> <type>Ghost</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (!target.getStatus("SleepEffect") || target.getStatus("NightmareEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("NightmareEffect"); effect.name = Text.battle_messages_unique(85); effect.tier = 6; effect.subtier = 4; effect.tick = function() { field.print(Text.battle_messages_unique(87, this.subject)); this.subject.hp -= Math.floor(this.subject.getStat(Stat.HP) / 4); }; effect.informWakeUp = function() { this.subject.removeStatus(this); }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(86, target)); ]]> </use> </move>
<move name="Octazooka" id="269"> <type>Water</type> <class>Special</class> <power>65</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1), 0.5]]); ]]> </init> </move>
<move name="Odor Sleuth" id="270"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeForesightMove(this, [Type.NORMAL, Type.FIGHTING]); ]]> </init> </move>
<move name="Ominous Wind" id="271"> <type>Ghost</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeAllStatBoostMove(this); ]]> </init> </move>
<move name="Outrage" id="272"> <type>Dragon</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Randenemy</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRampageMove(this); ]]> </init> </move>
<move name="Overheat" id="273"> <type>Fire</type> <class>Special</class> <power>140</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, -2), 1, true]]); ]]> </init> </move>
<move name="Pain Split" id="274"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ var hp = Math.floor((target.hp + user.hp) / 2); user.sendMessage("forceDirectDamage"); user.hp = hp; target.hp = hp; ]]> </use> </move>
<move name="Pay Day" id="275"> <type>Normal</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ target.hp -= field.calculate(this, user, target, targets); field.print(Text.battle_messages_unique(3)); ]]> </use> </move>
<move name="Payback" id="276"> <type>Dark</type> <class>Physical</class> <power>50</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; if (!target.turn) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Peck" id="277"> <type>Flying</type> <class>Physical</class> <power>35</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Perish Song" id="278"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>All</target> <flags> <sound/> </flags> <init> <![CDATA[ this.prepareSelf = function(field) { field.print(Text.battle_messages_unique(50)); }; ]]> </init> <use> <![CDATA[ if (target.getStatus("PerishSongEffect")) { return; } var effect = new StatusEffect("PerishSongEffect"); effect.name = Text.battle_messages_unique(49); effect.turns = 4; effect.tier = 8; effect.subtier = 0; effect.tick = function() { --this.turns; this.subject.field.print(Text.battle_messages_unique( 51, this.subject, this.turns)); if (this.turns > 0) return; this.subject.faint(); }; target.applyStatus(user, effect); ]]> </use> </move>
<move name="Petal Dance" id="279"> <type>Grass</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Randenemy</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRampageMove(this); ]]> </init> </move>
<move name="Pin Missile" id="280"> <type>Bug</type> <class>Physical</class> <power>14</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Pluck" id="281"> <type>Flying</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makePluckMove(this); ]]> </init> </move>
<move name="Poison Fang" id="282"> <type>Poison</type> <class>Physical</class> <power>50</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ToxicEffect, 0.3]]); ]]> </init> </move>
<move name="Poison Gas" id="283"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0.55</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect]]); ]]> </init> </move>
<move name="Poison Jab" id="284"> <type>Poison</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.3]]); ]]> </init> </move>
<move name="Poison Sting" id="285"> <type>Poison</type> <class>Physical</class> <power>15</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.3]]); ]]> </init> </move>
<move name="Poison Tail" id="286"> <type>Poison</type> <class>Physical</class> <power>50</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.1]]); ]]> </init> </move>
<move name="PoisonPowder" id="287"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect]]); ]]> </init> </move>
<move name="Pound" id="288"> <type>Normal</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Powder Snow" id="289"> <type>Ice</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>25</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FreezeEffect, 0.1]]); ]]> </init> </move>
<move name="Power Gem" id="290"> <type>Rock</type> <class>Special</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Power Swap" id="291"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatLevelSwapMove(this, [Stat.ATTACK, Stat.SPATTACK]); ]]> </init> </move>
<move name="Power Trick" id="292"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ field.print(Text.battle_messages_unique(120, user)); var effect = user.getStatus("PowerTrickEffect"); if (effect) { user.removeStatus(effect); return; } effect = new StatusEffect("PowerTrickEffect"); effect.name = Text.battle_messages_unique(119); effect.applyEffect = effect.unapplyEffect = function() { var attack = this.subject.getRawStat(Stat.ATTACK); var defence = this.subject.getRawStat(Stat.DEFENCE); this.subject.setRawStat(Stat.ATTACK, defence); this.subject.setRawStat(Stat.DEFENCE, attack); return true; }; user.applyStatus(user, effect); ]]> </use> </move>
<move name="Power Whip" id="293"> <type>Grass</type> <class>Physical</class> <power>120</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Present" id="294"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ var rand = field.random(0, 255); if (rand < 52) { user.hp += Math.floor(user.getStat(Stat.HP) / 4); } else { if (rand < 154) { this.power = 40; } else if (rand < 230) { this.power = 80; } else { this.power = 120; } target.hp -= field.calculate(this, user, target, targets); } ]]> </use> </move>
<move name="Protect" id="295"> <type>Normal</type> <class>Other</class> <priority>3</priority> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <init> <![CDATA[ makeProtectMove(this); ]]> </init> </move>
<move name="Psybeam" id="296"> <type>Psychic</type> <class>Special</class> <power>65</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect, 0.1]]); ]]> </init> </move>
<move name="Psych Up" id="297"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <snatch/> </flags> <use> <![CDATA[ for (var i = 1; i < 8; ++i) { var level = target.getStatLevel(i) - user.getStatLevel(i); if (level) { var effect = new StatChangeEffect(i, level); effect.silent = true; user.applyStatus(user, effect); } } field.print(Text.battle_messages_unique(17, user)); ]]> </use> </move>
<move name="Psychic" id="298"> <type>Psychic</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.1]]); ]]> </init> </move>
<move name="Psycho Boost" id="299"> <type>Psychic</type> <class>Special</class> <power>140</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPATTACK, -2), 1, true]]); ]]> </init> </move> | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Thu Sep 22, 2011 7:03 pm | |
| - Code:
-
<move name="Psycho Cut" id="300"> <type>Psychic</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Psycho Shift" id="301"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ var effect = user.getStatus(StatusEffect.SPECIAL_EFFECT); if (!effect || !target.applyStatus(user, effect)) { field.print(Text.battle_messages(0)); return; } user.removeStatus(effect); ]]> </use> </move>
<move name="Psywave" id="302"> <type>Psychic</type> <class>Special</class> <power>1</power> <accuracy>0.80</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } var damage = Math.floor(user.level * (field.random(0, 10) * 10 + 50) / 100); target.hp -= damage; ]]> </use> </move>
<move name="Punishment" id="303"> <type>Dark</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var n = 0; for (var i = 1; i < 8; ++i) { var level = target.getStatLevel(i); if (level > 0) { n += level; } } this.power = 60 + 20 * n; if (this.power > 200) { this.power = 200; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Pursuit" id="304"> <type>Dark</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ this.power_ = this.power; var move = this; this.beginTurn = function(field, user, target) { if (user.sendMessage("informBeginTurn")) { return; } var effect = new StatusEffect("PursuitEffect"); effect.vetoTier = -5; // TODO (?) effect.target = target; effect.tier = 0; effect.tick = function() { this.subject.removeStatus(this); }; effect.informWithdraw = function(subject) { if (subject != this.target) return; this.executed = true; this.subject.executePendingAction(); }; user.applyStatus(user, effect); }; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = user.getStatus("PursuitEffect"); var switching = effect && effect.executed; if (switching) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); if (target.fainted && switching && (user.party == field.host)) { getGlobalController(field).simulateBufferOverflow(); } ]]> </use> </move>
<move name="Quick Attack" id="305"> <type>Normal</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Rage" id="306"> <type>Normal</type> <class>Physical</class> <power>20</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (damage == 0) { return; } target.hp -= damage; var effect = user.getStatus("RageEffect"); if (effect) { user.removeStatus(effect); } effect = new StatusEffect("RageEffect"); effect.turns_ = 2; effect.informFinishedSubjectExecution = function() { if (--this.turns_ == 0) { this.subject.removeStatus(this); } }; effect.activate_ = function() { var effect = new StatChangeEffect(Stat.ATTACK, 1); effect.silent = true; if (this.subject.applyStatus(this.subject, effect)) { field.print(Text.battle_messages_unique(42, this.subject)); } }; effect.informDamaged = function(user, move, damage) { if (damage > 0) { this.activate_(); } }; user.applyStatus(user, effect); ]]> </use> </move>
<move name="Rain Dance" id="307"> <type>Water</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ makeWeatherMove(this, GlobalEffect.RAIN); ]]> </init> </move>
<move name="Rapid Spin" id="308"> <type>Normal</type> <class>Physical</class> <power>20</power> <accuracy>1.00</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (damage == 0) return; target.hp -= damage; var released = false; ["LeechSeedEffect", "TemporaryTrappingEffect"].forEach(function(id) { var effect = user.getStatus(id); if (effect) { released = true; user.removeStatus(effect); } }); if (released) { field.print(Text.battle_messages_unique(18, user)); } var hazards = getHazardController(user); var effects = hazards.effects_[user.party]; for (var i in effects) { var layers = effects[i]; if (layers > 0) { field.print(Text.battle_messages_unique(19, user, EntryHazard[i].name)); } } hazards.clearHazards(user.party); ]]> </use> </move>
<move name="Razor Leaf" id="309"> <type>Grass</type> <class>Physical</class> <power>55</power> <accuracy>0.95</accuracy> <pp>25</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Razor Wind" id="310"> <type>Normal</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(1)); ]]> </init> </move>
<move name="Recover" id="311"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeRecoveryMove(this); ]]> </init> </move>
<move name="Recycle" id="312"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ var effect = user.getStatus("ItemConsumedEffect"); if (user.item || !effect) { field.print(Text.battle_messages(0)); return; } user.item = HoldItem[effect.item_]; field.print(Text.battle_messages_unique(146, user, user.item)); ]]> </use> </move>
<move name="Reflect" id="313"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ makePartyBuffMove(this, MoveClass.PHYSICAL); ]]> </init> </move>
<move name="Refresh" id="314"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var effect = user.getStatus(StatusEffect.SPECIAL_EFFECT); if (!effect || (effect.id == "SleepEffect")) { field.print(Text.battle_messages(0)); return; } field.print(Text.battle_messages_unique(1, user, effect)); user.removeStatus(effect); ]]> </use> </move>
<move name="Rest" id="315"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var max = user.getStat(Stat.HP); if (user.getStatus("SleepEffect") || (user.hp == max)) { field.print(Text.battle_messages(0)); return; } var status = user.getStatus(StatusEffect.SPECIAL_EFFECT); var effect = new SleepEffect(); effect.lock = 0; if (status) { effect.text_ = Text.battle_messages_unique.wrap(5); } effect = user.applyStatus(user, effect); if (!effect) { field.print(Text.battle_messages(0)); return; } effect.lock = StatusEffect.SPECIAL_EFFECT; effect.turns = 2; if (status) { user.removeStatus(status); } user.hp = max; ]]> </use> </move>
<move name="Return" id="316"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { this.power = Math.floor(user.happiness * 2 / 5); }; ]]> </init> </move>
<move name="Revenge" id="317"> <type>Fighting</type> <class>Physical</class> <priority>-4</priority> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRevengeMove(this); ]]> </init> </move>
<move name="Reversal" id="318"> <type>Fighting</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeUserLowHealthMove(this); ]]> </init> </move>
<move name="Roar" id="319"> <type>Normal</type> <class>Other</class> <priority>-6</priority> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeRandomSwitchMove(this); ]]> </init> </move>
<move name="Roar of Time" id="320"> <type>Dragon</type> <class>Special</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <sound/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move>
<move name="Rock Blast" id="321"> <type>Rock</type> <class>Physical</class> <power>25</power> <accuracy>0.80</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Rock Climb" id="322"> <type>Normal</type> <class>Physical</class> <power>90</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect, 0.2]]); ]]> </init> </move>
<move name="Rock Polish" id="323"> <type>Rock</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPEED, 2)); ]]> </use> </move>
<move name="Rock Slide" id="324"> <type>Rock</type> <class>Physical</class> <power>75</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move>
<move name="Rock Smash" id="325"> <type>Fighting</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1), 0.5]]); ]]> </init> </move>
<move name="Rock Throw" id="326"> <type>Rock</type> <class>Physical</class> <power>50</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Rock Tomb" id="327"> <type>Rock</type> <class>Physical</class> <power>50</power> <accuracy>0.80</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1), 0.1]]); ]]> </init> </move>
<move name="Rock Wrecker" id="328"> <type>Rock</type> <class>Physical</class> <power>150</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRechargeMove(this); ]]> </init> </move>
<move name="Role Play" id="329"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags>
</flags> <use> <![CDATA[ if (!target.ability || target.hasAbility("Wonder Guard") || target.hasAbility("Multitype")) { field.print(Text.battle_messages(0)); return; } user.ability = target.ability; field.print(Text.battle_messages_unique(16, user)); user.ability.switchIn(); ]]> </use> </move>
<move name="Rolling Kick" id="330"> <type>Fighting</type> <class>Physical</class> <power>60</power> <accuracy>0.85</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); ]]> </init> </move>
<move name="Rollout" id="331"> <type>Rock</type> <class>Physical</class> <power>30</power> <accuracy>0.90</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMomentumMove(this); ]]> </init> </move>
<move name="Roost" id="332"> <type>Flying</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var max = user.getStat(Stat.HP); if (user.hp == max) { field.print(Text.battle_messages(0)); return; } user.hp += Math.floor(max / 2); var types = user.getTypes(); var resultant = types.filter(function(type) { return (type != Type.FLYING); }); if (types.length == resultant.length) { return; } // NOTE (TODO): There is a bug here with the extremely unlikely interaction // of a Colour Change pokemon changing type in the same turn it // uses Roost. This isn't worth dealing with right now. user.setTypes(resultant); var effect = new StatusEffect("RoostEffect"); effect.tier = 0; effect.tick = function() { this.subject.setTypes(types); this.subject.removeStatus(this); }; user.applyStatus(user, effect); ]]> </use> </move>
<move name="Sacred Fire" id="333"> <type>Fire</type> <class>Physical</class> <power>100</power> <accuracy>0.95</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect, 0.5]]); ]]> </init> </move>
<move name="Safeguard" id="334"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>25</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { if (user.getStatus("SafeguardEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("SafeguardEffect"); effect.name = Text.battle_messages_unique(109); effect.radius = StatusEffect.RADIUS_USER_PARTY; effect.turns = 5; var party_ = user.party; effect.applyEffect = function() { return (this.subject.party == party_); }; effect.beginTick = function() { if (--this.turns != 0) return; // TODO: Reference trainer name in the message. field.print(Text.battle_messages_unique(111, this.subject)); field.removeStatus(this); }; effect.transformStatus = function(subject, status) { if (subject.party != party_) return status; if (status.inducer == subject) return status; if ((status.lock != StatusEffect.SPECIAL_EFFECT) && (status.id != "ConfusionEffect")) return status; return null; }; effect.vetoExecution = function(field, user, target, move) { if (!target || (target.party != party_)) return false; if (move.name != "Yawn") return false; field.print(Text.battle_messages(0)); return true; }; field.print(Text.battle_messages_unique(110, user)); field.applyStatus(effect); }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Sand Tomb" id="335"> <type>Ground</type> <class>Physical</class> <power>15</power> <accuracy>0.70</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(74)); ]]> </init> </move>
<move name="Sand-Attack" id="336"> <type>Ground</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1)]]); ]]> </init> </move>
<move name="Sandstorm" id="337"> <type>Rock</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ makeWeatherMove(this, GlobalEffect.SAND); ]]> </init> </move>
<move name="Scary Face" id="338"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -2)]]); ]]> </init> </move>
<move name="Scratch" id="339"> <type>Normal</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Screech" id="340"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.85</accuracy> <pp>40</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -2)]]); ]]> </init> </move>
<move name="Secret Power" id="341"> <type>Normal</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ // Secret Power's secondary effect is always paralysis in a link battle. makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move>
<move name="Seed Bomb" id="342"> <type>Grass</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Seed Flare" id="343"> <type>Grass</type> <class>Special</class> <power>120</power> <accuracy>0.85</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -2), 0.4]]); ]]> </init> </move>
<move name="Seismic Toss" id="344"> <type>Fighting</type> <class>Physical</class> <power>1</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } target.hp -= user.level; ]]> </use> </move>
<move name="Selfdestruct" id="345"> <type>Normal</type> <class>Physical</class> <power>200</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeExplosionMove(this); ]]> </init> </move>
<move name="Shadow Ball" id="346"> <type>Ghost</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPDEFENCE, -1), 0.2]]); ]]> </init> </move>
<move name="Shadow Claw" id="347"> <type>Ghost</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Shadow Force" id="348"> <type>Ghost</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(8), []); ]]> </init> </move>
<move name="Shadow Punch" id="349"> <type>Ghost</type> <class>Physical</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move> | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Thu Sep 22, 2011 7:04 pm | |
| - Code:
-
<move name="Shadow Sneak" id="350"> <type>Ghost</type> <class>Physical</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Sharpen" id="351"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 1)); ]]> </use> </move>
<move name="Sheer Cold" id="352"> <type>Ice</type> <class>Special</class> <power>1</power> <accuracy>0.30</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeOneHitKillMove(this); ]]> </init> </move>
<move name="Shock Wave" id="353"> <type>Electric</type> <class>Special</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Signal Beam" id="354"> <type>Bug</type> <class>Special</class> <power>75</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect, 0.1]]); ]]> </init> </move>
<move name="Silver Wind" id="355"> <type>Bug</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeAllStatBoostMove(this); ]]> </init> </move>
<move name="Sing" id="356"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.55</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Sketch" id="357"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>1</pp> <target>Non-user</target> <flags> <unimplemented/> </flags> <use> <![CDATA[
]]> </use> </move>
<move name="Skill Swap" id="358"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (!user.ability || !target.ability || user.hasAbility("Wonder Guard") || user.hasAbility("Multitype") || target.hasAbility("Wonder Guard") || target.hasAbility("Multitype")) { field.print(Text.battle_messages(0)); return; } field.print(Text.battle_messages_unique(15, user)); var id_ = user.ability.id; user.ability = target.ability; target.ability = Ability[id_]; // Note (TODO): The following two lines happen only in Platinum, not DP. user.ability.switchIn(); target.ability.switchIn(); ]]> </use> </move>
<move name="Skull Bash" id="359"> <type>Normal</type> <class>Physical</class> <power>100</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(2)); this.additional = function(user) { // Additional effect on charge turn: +1 defence. user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 1)); }; ]]> </init> </move>
<move name="Sky Attack" id="360"> <type>Flying</type> <class>Physical</class> <power>140</power> <accuracy>0.90</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); makeChargeMove(this, Text.battle_messages_charge.wrap(3)); ]]> </init> </move>
<move name="Sky Uppercut" id="361"> <type>Fighting</type> <class>Physical</class> <power>85</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Slack Off" id="362"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeRecoveryMove(this); ]]> </init> </move>
<move name="Slam" id="363"> <type>Normal</type> <class>Physical</class> <power>80</power> <accuracy>0.75</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Slash" id="364"> <type>Normal</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Sleep Powder" id="365"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Sleep Talk" id="366"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>None</target> <flags>
</flags> <init> <![CDATA[ this.forbidden_ = ["Assist", "Bide", "Chatter", "Copycat", "Focus Punch", "Me First", "Metronome", "Mirror Move", "Sleep Talk", "Uproar", "Skull Bash", "Razor Wind", "Sky Attack", "SolarBeam", "Fly", "Dig", "Dive", "Bounce", "Shadow Force"]; ]]> </init> <use> <![CDATA[ if (!user.getStatus("SleepEffect") || user.getStatus("EncoreEffect")) { field.print(Text.battle_messages(0)); return; } var choices = []; for (var i = 0; i < user.moveCount; ++i) { var move = user.getMove(i); if ((user.getPp(move) > 0) && (this.forbidden_.indexOf(move.name) == -1) && user.isSelectable(move)) { choices.push(move); } } var length = choices.length; if (length == 0) { field.print(Text.battle_messages(0)); return; } var move = choices[field.random(0, length - 1)]; user.execute(move); ]]> </use> </move>
<move name="Sludge" id="367"> <type>Poison</type> <class>Special</class> <power>65</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.3]]); ]]> </init> </move>
<move name="Sludge Bomb" id="368"> <type>Poison</type> <class>Special</class> <power>90</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.3]]); ]]> </init> </move>
<move name="SmellingSalt" id="369"> <type>Normal</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = target.getStatus("ParalysisEffect"); if (target.getStatus("SubstituteEffect")) { effect = null; } if (effect) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); if (effect) { target.removeStatus(effect); } ]]> </use> </move>
<move name="Smog" id="370"> <type>Poison</type> <class>Special</class> <power>20</power> <accuracy>0.70</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.4]]); ]]> </init> </move>
<move name="SmokeScreen" id="371"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.ACCURACY, -1)]]); ]]> </init> </move>
<move name="Snatch" id="372"> <type>Dark</type> <class>Other</class> <priority>4</priority> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>None</target> <flags> <unimplemented/> </flags> <use> <![CDATA[
]]> </use> </move>
<move name="Snore" id="373"> <type>Normal</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); var parent = this.use; this.use = function(field, user, target, targets) { if (user.getStatus("SleepEffect") == null) { field.print(Text.battle_messages(0)); return; } parent.call(this, field, user, target, targets); }; ]]> </init> </move>
<move name="Softboiled" id="374"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeRecoveryMove(this); ]]> </init> </move>
<move name="SolarBeam" id="375"> <type>Grass</type> <class>Special</class> <power>120</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeChargeMove(this, Text.battle_messages_charge.wrap(0)); var parentPrepareSelf = this.prepareSelf; var parentUse = this.use; var power_ = this.power; this.prepareSelf = function(field, user, target) { var flags = getGlobalController(field).getFlags(); if (flags[GlobalEffect.SUN]) { return; } parentPrepareSelf.call(this, field, user, target); }; this.use = function(field, user, target, targets) { this.power = power_; var flags = getGlobalController(field).getFlags(); if (flags[GlobalEffect.RAIN] || flags[GlobalEffect.SAND] || flags[GlobalEffect.HAIL]) { this.power /= 2; } if (flags[GlobalEffect.SUN]) { target.hp -= field.calculate(this, user, target, targets); return; } parentUse.call(this, field, user, target, targets); }; ]]> </init> </move>
<move name="SonicBoom" id="376"> <type>Normal</type> <class>Special</class> <power>1</power> <accuracy>0.90</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <sound/> </flags> <use> <![CDATA[ if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } target.hp -= 20; ]]> </use> </move>
<move name="Spacial Rend" id="377"> <type>Dragon</type> <class>Special</class> <power>100</power> <accuracy>0.95</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Spark" id="378"> <type>Electric</type> <class>Physical</class> <power>65</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.3]]); ]]> </init> </move>
<move name="Spider Web" id="379"> <type>Bug</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeTrappingMove(this); ]]> </init> </move>
<move name="Spike Cannon" id="380"> <type>Normal</type> <class>Physical</class> <power>20</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeMultipleHitMove(this); ]]> </init> </move>
<move name="Spikes" id="381"> <type>Ground</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemyfield</target> <flags>
</flags> <init> <![CDATA[ makeEntryHazardMove(this, EntryHazard.SPIKES); ]]> </init> </move>
<move name="Spit Up" id="382"> <type>Normal</type> <class>Special</class> <power>1</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <flinch/> </flags> <attemptHit> <![CDATA[ return true; ]]> </attemptHit> <use> <![CDATA[ var effect = user.getStatus("StockpileEffect"); if (!effect) { field.print(Text.status_effects_stockpile(2)); return; } if (field.attemptHit(this, user, target)) { this.power = effect.levels * 100; // Note: Damage weighting (randomisation) is not performed by this attack, // which is the significance of the final parameter to calculate() // being false. target.hp -= field.calculate(this, user, target, targets, false); } else { field.print(Text.battle_messages(2, user, target)); } user.removeStatus(effect); ]]> </use> </move>
<move name="Spite" id="383"> <type>Ghost</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ var move = target.lastMove; var pp = -1; if (!move || ((pp = target.getPp(move)) == 0)) { field.print(Text.battle_messages(0)); return; } const PP_LOSS = 4; target.setPp(move, pp - PP_LOSS); field.print(Text.battle_messages_unique(60, target, move, PP_LOSS)); ]]> </use> </move>
<move name="Splash" id="384"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ field.print(Text.battle_messages_unique(2)); ]]> </use> </move>
<move name="Spore" id="385"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> makeStatusMove(this, [[SleepEffect]]); </init> </move>
<move name="Stealth Rock" id="386"> <type>Rock</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemyfield</target> <flags>
</flags> <init> <![CDATA[ makeEntryHazardMove(this, EntryHazard.STEALTH_ROCK); ]]> </init> </move>
<move name="Steel Wing" id="387"> <type>Steel</type> <class>Physical</class> <power>70</power> <accuracy>0.90</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, 1), 0.1, true]]); ]]> </init> </move>
<move name="Stockpile" id="388"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var effect = user.getStatus("StockpileEffect"); if (effect) { effect.addLevel(); return; } effect = new StatusEffect("StockpileEffect"); effect.name = Text.status_effects_stockpile(0); effect.levels = 0; effect.boosts_ = []; effect.addBoost = function(stat) { var boost = new StatChangeEffect(stat, 1); boost.silent = true; boost = this.subject.applyStatus(this.subject, boost); if (boost) { this.boosts_.push(boost); } }; effect.addLevel = function() { var subject = this.subject; if (this.levels == 3) { field.print(Text.status_effects_stockpile(4, subject)); return; } ++this.levels; field.print(Text.status_effects_stockpile(1, subject, this.levels)); this.addBoost(Stat.DEFENCE); this.addBoost(Stat.SPDEFENCE); }; effect.unapplyEffect = function() { this.boosts_.forEach(this.subject.removeStatus, this.subject); }; effect = user.applyStatus(user, effect); effect.addLevel(); ]]> </use> </move>
<move name="Stomp" id="389"> <type>Normal</type> <class>Physical</class> <power>65</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.3]]); var parent_ = this.use; var power_ = this.power; this.use = function(field, user, target, targets) { this.power = power_; if (target.getStatus("MinimiseEffect")) { this.power *= 2; } parent_.call(this, field, user, target, targets); }; ]]> </init> </move>
<move name="Stone Edge" id="390"> <type>Rock</type> <class>Physical</class> <power>100</power> <accuracy>0.80</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> <high-critical/> </flags> </move>
<move name="Strength" id="391"> <type>Normal</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="String Shot" id="392"> <type>Bug</type> <class>Other</class> <power>0</power> <accuracy>0.95</accuracy> <pp>40</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.SPEED, -1)]]); ]]> </init> </move>
<move name="Struggle" id="393"> <type>Normal</type> <class>Physical</class> <power>50</power> <accuracy>0</accuracy> <pp>1</pp> <target>Randenemy</target> <flags> <contact/> <protect/> <flinch/> </flags> <use> <![CDATA[ var type_ = this.type; this.type = Type.TYPELESS; target.hp -= field.calculate(this, user, target, targets); this.type = type_;
var recoil = Math.floor(user.getStat(Stat.HP) / 4); if (recoil < 1) recoil = 1; user.sendMessage("forceDirectDamage"); user.hp -= recoil; ]]> </use> </move>
<move name="Stun Spore" id="394"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect]]); ]]> </init> </move>
<move name="Submission" id="395"> <type>Fighting</type> <class>Physical</class> <power>80</power> <accuracy>0.80</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 4); ]]> </init> </move>
<move name="Substitute" id="396"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ this.forbidden_ = ["Acupressure", "Block", "Dream Eater", "Embargo", "Gastro Acid", "Grudge", "Heal Block", "Leech Seed", "Lock-On", "Mean Look", "Mimic", "Mind Reader", "Nightmare", "Pain Split", "Psycho Shift", "Spider Web", "Sketch", "Switcheroo", "Trick", "Worry Seed", "Yawn", "Swagger", "Flatter"]; ]]> </init> <use> <![CDATA[ var hp = Math.floor(user.getStat(Stat.HP) / 4); if (user.getStatus("SubstituteEffect") || (user.hp <= hp)) { field.print(Text.battle_messages(0)); return; } user.sendMessage("forceDirectDamage"); user.hp -= hp; var effect = new StatusEffect("SubstituteEffect"); effect.name = Text.battle_messages_unique(133); effect.hp_ = effect.max_ = hp; effect.getEffectiveHp = function() { return [this.hp_, this.max_]; }; effect.takeDamage = function(delta) { this.hp_ -= delta; if (delta > 0) { field.print(Text.battle_messages_unique(135, this.subject)); } if (this.hp_ > 0) return false; this.hp_ = 0; field.print(Text.battle_messages_unique(136, this.subject)); return true; }; effect.transformHealthChange = function(delta, user, indirect) { if ((this.hp_ == 0) || indirect || (delta < 0)) return delta; if (this.takeDamage(delta)) { var this_ = this; var effect_ = new StatusEffect("SubstituteUnapplyEffect"); effect_.informFinishedExecution = function() { this.subject.removeStatus(this_); this.subject.removeStatus(this); }; this.subject.applyStatus(this.subject, effect_); } return 0; }; var forbidden_ = this.forbidden_; effect.vetoExecution = function(field, user, target, move) { if (target != this.subject) return false; if (forbidden_.indexOf(move.name) == -1) return false; field.print(Text.battle_messages(0)); return true; }; effect.transformStatus = function(subject, effect) { if (subject != this.subject) return effect; if (effect.inducer == subject) return effect; if (effect.lock == StatusEffect.SPECIAL_EFFECT) return null; if (effect.id == "ConfusionEffect") return null; if (effect.id == "FlinchEffect") return null; if (effect.id != "StatChangeEffect") return effect; if (effect.delta_ > 0) return effect; return null; }; effect.informRemoveItem = function() { return true; }; user.applyStatus(user, effect); field.print(Text.battle_messages_unique(134, user)); ]]> </use> </move>
<move name="Sucker Punch" id="397"> <type>Dark</type> <class>Physical</class> <priority>1</priority> <power>80</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var turn = target.turn; if (!turn) { field.print(Text.battle_messages(0)); return; } /** * TODO: RESEARCH QUESTION * Does Sucker Punch fail if the target has a forced move and did not select * its move freely? */ var move = target.getMove(turn.move); if (move.moveClass == MoveClass.OTHER) { field.print(Text.battle_messages(0)); return; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Sunny Day" id="398"> <type>Fire</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ makeWeatherMove(this, GlobalEffect.SUN); ]]> </init> </move>
<move name="Super Fang" id="399"> <type>Normal</type> <class>Physical</class> <power>1</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.isImmune(this)) { field.print(Text.battle_messages(1, target)); return; } var damage = target.hp / 2; target.hp -= damage; ]]> </use> </move> | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Thu Sep 22, 2011 7:06 pm | |
| - Code:
-
<move name="Superpower" id="400"> <type>Fighting</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.ATTACK, -1), 1, true], [new StatChangeEffect(Stat.DEFENCE, -1), 1, true] ]); ]]> </init> </move>
<move name="Supersonic" id="401"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.55</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Surf" id="402"> <type>Water</type> <class>Special</class> <power>95</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Swagger" id="403"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect], [new StatChangeEffect(Stat.ATTACK, 2)]] ); ]]> </init> </move>
<move name="Swallow" id="404"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var effect = user.getStatus("StockpileEffect"); if (!effect) { field.print(Text.status_effects_stockpile(3)); return; } var max = user.getStat(Stat.HP); if (user.hp != max) { var factor = 0.5 * Math.pow(2, effect.levels - 2); user.hp += Math.floor(max * factor); } user.removeStatus(effect); ]]> </use> </move>
<move name="Sweet Kiss" id="405"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Sweet Scent" id="406"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.EVASION, -1)]]); ]]> </init> </move>
<move name="Swift" id="407"> <type>Normal</type> <class>Special</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Switcheroo" id="408"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeItemSwitchMove(this); ]]> </init> </move>
<move name="Swords Dance" id="409"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 2)); ]]> </use> </move>
<move name="Synthesis" id="410"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeWeatherBasedHealingMove(this); ]]> </init> </move>
<move name="Tackle" id="411"> <type>Normal</type> <class>Physical</class> <power>35</power> <accuracy>0.95</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Tail Glow" id="412"> <type>Bug</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPATTACK, 2)); ]]> </use> </move>
<move name="Tail Whip" id="413"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1)]]); ]]> </init> </move>
<move name="Tailwind" id="414"> <type>Flying</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { if (user.getStatus("TailwindEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("TailwindEffect"); effect.name = Text.battle_messages_unique(137); effect.radius = StatusEffect.RADIUS_USER_PARTY; effect.turns = 3; var party_ = user.party; effect.applyEffect = function() { return (this.subject.party == party_); }; effect.beginTick = function() { if (--this.turns != 0) return; // TODO: Reference trainer name in the message. field.print(Text.battle_messages_unique(139, this.subject)); field.removeStatus(this); }; // @stat SPEED, 9, Tailwind effect.statModifier = function(field, stat, subject) { if (subject.party != party_) return null; if (stat != Stat.SPEED) return null; // doubles speed, priority of 9 return [2, 9]; }; field.print(Text.battle_messages_unique(138, user)); field.applyStatus(effect); }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Take Down" id="415"> <type>Normal</type> <class>Physical</class> <power>90</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 4); ]]> </init> </move>
<move name="Taunt" id="416"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("TauntEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("TauntEffect"); effect.name = Text.battle_messages_unique(29); effect.turns = field.random(3, 5); effect.tier = 0; effect.vetoTier = 7; effect.applyEffect = function() { field.print(Text.battle_messages_unique(28, this.subject)); return true; }; effect.tick = function() { if (--this.turns <= 0) { field.print(Text.battle_messages_unique(26, this.subject)); this.subject.removeStatus(this); } }; effect.vetoSelection = function(user, move) { if (user != this.subject) return false; return (move.moveClass == MoveClass.OTHER); }; effect.vetoExecution = function(field, user, target, move) { if (target != null) return false; if (user != this.subject) return false; if (move.moveClass != MoveClass.OTHER) return false; field.print(Text.battle_messages_unique(27, this.subject, move)); return true; }; target.applyStatus(user, effect); ]]> </use> </move>
<move name="Teeter Dance" id="417"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Others</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Teleport" id="418"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ field.print(Text.battle_messages(0)); ]]> </use> </move>
<move name="Thief" id="419"> <type>Dark</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeThiefMove(this); ]]> </init> </move>
<move name="Thrash" id="420"> <type>Normal</type> <class>Physical</class> <power>90</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Randenemy</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRampageMove(this); ]]> </init> </move>
<move name="Thunder" id="421"> <type>Electric</type> <class>Special</class> <power>120</power> <accuracy>0.70</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ /** * TODO: WARNING! Mechanics MADE UP by me here. */ makeStatusMove(this, [[ParalysisEffect, 0.3]]); var accuracy_ = this.accuracy; this.attemptHit = function(field, user, target) { this.accuracy = accuracy_; var flags = getGlobalController(field).getFlags(); if (flags[GlobalEffect.RAIN]) { this.accuracy = 0; // TODO: maybe apply effect for x0 instead... } else if (flags[GlobalEffect.SUN]) { this.accuracy = 0.50; } return field.attemptHit(this, user, target); }; ]]> </init> </move>
<move name="Thunder Fang" id="422"> <type>Electric</type> <class>Physical</class> <power>65</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1], [ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="Thunder Wave" id="423"> <type>Electric</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect]], true); ]]> </init> </move>
<move name="Thunderbolt" id="424"> <type>Electric</type> <class>Special</class> <power>95</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="ThunderPunch" id="425"> <type>Electric</type> <class>Physical</class> <power>75</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="ThunderShock" id="426"> <type>Electric</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="Tickle" id="427"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.ATTACK, -1)], [new StatChangeEffect(Stat.DEFENCE, -1)] ]); ]]> </init> </move>
<move name="Torment" id="428"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("TormentEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("TormentEffect"); effect.name = Text.battle_messages_unique(65); effect.vetoSelection = function(user, move) { if (user != this.subject) return false; if (!this.set_) { this.move = user.lastMove; this.set_ = true; } if (!this.move) return false; return (this.move.name == move.name); }; effect.informFinishedSubjectExecution = function() { this.move = this.subject.lastMove; this.set_ = true; }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(66, target)); ]]> </use> </move>
<move name="Toxic" id="429"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ToxicEffect]]); ]]> </init> </move>
<move name="Toxic Spikes" id="430"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemyfield</target> <flags>
</flags> <init> <![CDATA[ makeEntryHazardMove(this, EntryHazard.TOXIC_SPIKES); ]]> </init> </move>
<move name="Transform" id="431"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <unimplemented/> </flags> <use> <![CDATA[
]]> </use> </move>
<move name="Tri Attack" id="432"> <type>Normal</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ var effect = function(field) { var rand = field.random(1, 3); if (rand == 1) return BurnEffect; if (rand == 2) return FreezeEffect; return ParalysisEffect; }; effect.delayed = true; makeStatusMove(this, [[effect, 0.20]]); ]]> </init> </move>
<move name="Trick" id="433"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeItemSwitchMove(this); ]]> </init> </move>
<move name="Trick Room" id="434"> <type>Psychic</type> <class>Other</class> <priority>-7</priority> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { var effect = getGlobalController(field); if (effect.flags[GlobalEffect.TRICK_ROOM]) { effect.removeGlobalEffect(field, GlobalEffect.TRICK_ROOM); } else { effect.applyGlobalEffect(user, GlobalEffect.TRICK_ROOM); field.print(Text.battle_messages_unique(24, user)); } }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Triple Kick" id="435"> <type>Fighting</type> <class>Physical</class> <power>10</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <attemptHit> <![CDATA[ return true; ]]> </attemptHit> <use> <![CDATA[ target.sendMessage("informPartialDamage"); var i = 0; for (; i < 3; ++i) { if (target.fainted) break; if (!field.attemptHit(this, user, target)) { field.print(Text.battle_messages(2, user, target)); break; } this.power = this.power_ * (i + 1); target.hp -= field.calculate(this, user, target, targets);
// Todo: Count how many actually hit } field.print(Text.battle_messages_unique(0, i)); ]]> </use> </move>
<move name="Trump Card" id="436"> <type>Normal</type> <class>Special</class> <power>1</power> <accuracy>0</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ // Note that the relevant move for the purposes of deciding Trump Card's power // is the move that the user actually selected, not necessarily this object. var move = user.getMove(user.turn.move); var pp = user.getPp(move); if (pp <= 1) { this.power = 200; } else if (pp == 2) { this.power = 80; } else if (pp == 3) { this.power = 60; } else if (pp == 4) { this.power = 50; } else { this.power = 40; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Twineedle" id="437"> <type>Bug</type> <class>Physical</class> <power>25</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.2]]); makeTwoHitMove(this); ]]> </init> </move>
<move name="Twister" id="438"> <type>Dragon</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ var power_ = this.power; this.prepare = function(field, user, target, targets) { this.power = power_; var effect = target.getStatus("ChargeMoveEffect"); if (effect) { var name = effect.move.name; if ((name == "Fly") || (name == "Bounce")) { this.power *= 2; } } }; makeStatusMove(this, [[FlinchEffect, 0.20]]); ]]> </init> </move>
<move name="U-turn" id="439"> <type>Bug</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (!damage) return; target.hp -= damage; if (user.hp <= 0) { return; } if (field.getAliveCount(target.party) == 0) { return; } var selection = field.requestInactivePokemon(user); if (selection) { user.replaceBy(selection); var trainer = field.getTrainer(user.party); field.print(Text.battle_messages_unique(96, user, trainer)); } ]]> </use> </move>
<move name="Uproar" id="440"> <type>Normal</type> <class>Special</class> <power>50</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Randenemy</target> <flags> <protect/> <memorable/> <flinch/> <sound/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { user.setForcedMove(this, null, false); if (user.getStatus("RampageEffect")) return; var effect = new StatusEffect("RampageEffect"); effect.tier = 6.1; // Arbitrary, but needs to be after sleep. effect.turns = field.random(2, 5); effect.vetoSwitch = function(subject) { return (subject == this.subject); }; effect.unapplyEffect = function() { this.subject.clearForcedMove(); var effect = field.getStatus("UproarEffect"); if (effect) { effect.removeUser(); } if (!this.subject.fainted) { field.print(Text.battle_messages_unique(153, this.subject)); } }; // The side effects of unapplyEffect must run when the subject faints, so // this function is necessary. effect.informReplacePokemon = function(subject) { if (subject == this.subject) { this.subject.removeStatus(this); } }; effect.informFreeze = effect.informSleep = function() { this.subject.removeStatus(this); }; effect.informFinishedSubjectExecution = function() { if (!this.subject.lastMove) { this.subject.removeStatus(this); } }; effect.tick = function() { if (--this.turns == 0) { this.subject.removeStatus(this); } }; user.applyStatus(user, effect); effect = field.getStatus("UproarEffect"); if (!effect) { effect = getGlobalController(field).applyGlobalEffect(user, GlobalEffect.UPROAR); } ++effect.users_; field.print(Text.battle_messages_unique(152, user)); }; ]]> </init> </move>
<move name="Vacuum Wave" id="441"> <type>Fighting</type> <class>Special</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="ViceGrip" id="442"> <type>Normal</type> <class>Physical</class> <power>55</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Vine Whip" id="443"> <type>Grass</type> <class>Physical</class> <power>35</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Vital Throw" id="444"> <type>Fighting</type> <class>Physical</class> <priority>-1</priority> <power>70</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Volt Tackle" id="445"> <type>Electric</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); makeRecoilMove(this, 3); ]]> </init> </move>
<move name="Wake-Up Slap" id="446"> <type>Fighting</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = target.getStatus("SleepEffect"); if (target.getStatus("SubstituteEffect")) { effect = null; } if (effect) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); if (effect) { target.removeStatus(effect); } ]]> </use> </move>
<move name="Water Gun" id="447"> <type>Water</type> <class>Special</class> <power>40</power><move name="Superpower" id="400"> <type>Fighting</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.ATTACK, -1), 1, true], [new StatChangeEffect(Stat.DEFENCE, -1), 1, true] ]); ]]> </init> </move>
<move name="Supersonic" id="401"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.55</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> <sound/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Surf" id="402"> <type>Water</type> <class>Special</class> <power>95</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Others</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Swagger" id="403"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect], [new StatChangeEffect(Stat.ATTACK, 2)]] ); ]]> </init> </move>
<move name="Swallow" id="404"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ var effect = user.getStatus("StockpileEffect"); if (!effect) { field.print(Text.status_effects_stockpile(3)); return; } var max = user.getStat(Stat.HP); if (user.hp != max) { var factor = 0.5 * Math.pow(2, effect.levels - 2); user.hp += Math.floor(max * factor); } user.removeStatus(effect); ]]> </use> </move>
<move name="Sweet Kiss" id="405"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Sweet Scent" id="406"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.EVASION, -1)]]); ]]> </init> </move>
<move name="Swift" id="407"> <type>Normal</type> <class>Special</class> <power>60</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move> | |
| | | Admin Admin
Posts : 22 Join date : 2011-09-21
| Subject: Re: -Moves.xml-(another huge post) Thu Sep 22, 2011 7:07 pm | |
| - Code:
-
<move name="Switcheroo" id="408"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeItemSwitchMove(this); ]]> </init> </move>
<move name="Swords Dance" id="409"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.ATTACK, 2)); ]]> </use> </move>
<move name="Synthesis" id="410"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>User</target> <flags> <snatch/> </flags> <init> <![CDATA[ makeWeatherBasedHealingMove(this); ]]> </init> </move>
<move name="Tackle" id="411"> <type>Normal</type> <class>Physical</class> <power>35</power> <accuracy>0.95</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Tail Glow" id="412"> <type>Bug</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.SPATTACK, 2)); ]]> </use> </move>
<move name="Tail Whip" id="413"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Enemies</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[new StatChangeEffect(Stat.DEFENCE, -1)]]); ]]> </init> </move>
<move name="Tailwind" id="414"> <type>Flying</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>30</pp> <target>Allies</target> <flags> <snatch/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { if (user.getStatus("TailwindEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("TailwindEffect"); effect.name = Text.battle_messages_unique(137); effect.radius = StatusEffect.RADIUS_USER_PARTY; effect.turns = 3; var party_ = user.party; effect.applyEffect = function() { return (this.subject.party == party_); }; effect.beginTick = function() { if (--this.turns != 0) return; // TODO: Reference trainer name in the message. field.print(Text.battle_messages_unique(139, this.subject)); field.removeStatus(this); }; // @stat SPEED, 9, Tailwind effect.statModifier = function(field, stat, subject) { if (subject.party != party_) return null; if (stat != Stat.SPEED) return null; // doubles speed, priority of 9 return [2, 9]; }; field.print(Text.battle_messages_unique(138, user)); field.applyStatus(effect); }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Take Down" id="415"> <type>Normal</type> <class>Physical</class> <power>90</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 4); ]]> </init> </move>
<move name="Taunt" id="416"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("TauntEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("TauntEffect"); effect.name = Text.battle_messages_unique(29); effect.turns = field.random(3, 5); effect.tier = 0; effect.vetoTier = 7; effect.applyEffect = function() { field.print(Text.battle_messages_unique(28, this.subject)); return true; }; effect.tick = function() { if (--this.turns <= 0) { field.print(Text.battle_messages_unique(26, this.subject)); this.subject.removeStatus(this); } }; effect.vetoSelection = function(user, move) { if (user != this.subject) return false; return (move.moveClass == MoveClass.OTHER); }; effect.vetoExecution = function(field, user, target, move) { if (target != null) return false; if (user != this.subject) return false; if (move.moveClass != MoveClass.OTHER) return false; field.print(Text.battle_messages_unique(27, this.subject, move)); return true; }; target.applyStatus(user, effect); ]]> </use> </move>
<move name="Teeter Dance" id="417"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Others</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect]]); ]]> </init> </move>
<move name="Teleport" id="418"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ field.print(Text.battle_messages(0)); ]]> </use> </move>
<move name="Thief" id="419"> <type>Dark</type> <class>Physical</class> <power>40</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeThiefMove(this); ]]> </init> </move>
<move name="Thrash" id="420"> <type>Normal</type> <class>Physical</class> <power>90</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Randenemy</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRampageMove(this); ]]> </init> </move>
<move name="Thunder" id="421"> <type>Electric</type> <class>Special</class> <power>120</power> <accuracy>0.70</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ /** * TODO: WARNING! Mechanics MADE UP by me here. */ makeStatusMove(this, [[ParalysisEffect, 0.3]]); var accuracy_ = this.accuracy; this.attemptHit = function(field, user, target) { this.accuracy = accuracy_; var flags = getGlobalController(field).getFlags(); if (flags[GlobalEffect.RAIN]) { this.accuracy = 0; // TODO: maybe apply effect for x0 instead... } else if (flags[GlobalEffect.SUN]) { this.accuracy = 0.50; } return field.attemptHit(this, user, target); }; ]]> </init> </move>
<move name="Thunder Fang" id="422"> <type>Electric</type> <class>Physical</class> <power>65</power> <accuracy>0.95</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.1], [ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="Thunder Wave" id="423"> <type>Electric</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect]], true); ]]> </init> </move>
<move name="Thunderbolt" id="424"> <type>Electric</type> <class>Special</class> <power>95</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="ThunderPunch" id="425"> <type>Electric</type> <class>Physical</class> <power>75</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="ThunderShock" id="426"> <type>Electric</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); ]]> </init> </move>
<move name="Tickle" id="427"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [ [new StatChangeEffect(Stat.ATTACK, -1)], [new StatChangeEffect(Stat.DEFENCE, -1)] ]); ]]> </init> </move>
<move name="Torment" id="428"> <type>Dark</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("TormentEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("TormentEffect"); effect.name = Text.battle_messages_unique(65); effect.vetoSelection = function(user, move) { if (user != this.subject) return false; if (!this.set_) { this.move = user.lastMove; this.set_ = true; } if (!this.move) return false; return (this.move.name == move.name); }; effect.informFinishedSubjectExecution = function() { this.move = this.subject.lastMove; this.set_ = true; }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(66, target)); ]]> </use> </move>
<move name="Toxic" id="429"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0.85</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ToxicEffect]]); ]]> </init> </move>
<move name="Toxic Spikes" id="430"> <type>Poison</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>20</pp> <target>Enemyfield</target> <flags>
</flags> <init> <![CDATA[ makeEntryHazardMove(this, EntryHazard.TOXIC_SPIKES); ]]> </init> </move>
<move name="Transform" id="431"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <unimplemented/> </flags> <use> <![CDATA[
]]> </use> </move>
<move name="Tri Attack" id="432"> <type>Normal</type> <class>Special</class> <power>80</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ var effect = function(field) { var rand = field.random(1, 3); if (rand == 1) return BurnEffect; if (rand == 2) return FreezeEffect; return ParalysisEffect; }; effect.delayed = true; makeStatusMove(this, [[effect, 0.20]]); ]]> </init> </move>
<move name="Trick" id="433"> <type>Psychic</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeItemSwitchMove(this); ]]> </init> </move>
<move name="Trick Room" id="434"> <type>Psychic</type> <class>Other</class> <priority>-7</priority> <power>0</power> <accuracy>0</accuracy> <pp>5</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { var effect = getGlobalController(field); if (effect.flags[GlobalEffect.TRICK_ROOM]) { effect.removeGlobalEffect(field, GlobalEffect.TRICK_ROOM); } else { effect.applyGlobalEffect(user, GlobalEffect.TRICK_ROOM); field.print(Text.battle_messages_unique(24, user)); } }; this.use = function() { // Does nothing. }; ]]> </init> </move>
<move name="Triple Kick" id="435"> <type>Fighting</type> <class>Physical</class> <power>10</power> <accuracy>0.90</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <attemptHit> <![CDATA[ return true; ]]> </attemptHit> <use> <![CDATA[ target.sendMessage("informPartialDamage"); var i = 0; for (; i < 3; ++i) { if (target.fainted) break; if (!field.attemptHit(this, user, target)) { field.print(Text.battle_messages(2, user, target)); break; } this.power = this.power_ * (i + 1); target.hp -= field.calculate(this, user, target, targets);
// Todo: Count how many actually hit } field.print(Text.battle_messages_unique(0, i)); ]]> </use> </move>
<move name="Trump Card" id="436"> <type>Normal</type> <class>Special</class> <power>1</power> <accuracy>0</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ // Note that the relevant move for the purposes of deciding Trump Card's power // is the move that the user actually selected, not necessarily this object. var move = user.getMove(user.turn.move); var pp = user.getPp(move); if (pp <= 1) { this.power = 200; } else if (pp == 2) { this.power = 80; } else if (pp == 3) { this.power = 60; } else if (pp == 4) { this.power = 50; } else { this.power = 40; } target.hp -= field.calculate(this, user, target, targets); ]]> </use> </move>
<move name="Twineedle" id="437"> <type>Bug</type> <class>Physical</class> <power>25</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[PoisonEffect, 0.2]]); makeTwoHitMove(this); ]]> </init> </move>
<move name="Twister" id="438"> <type>Dragon</type> <class>Special</class> <power>40</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Enemies</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ var power_ = this.power; this.prepare = function(field, user, target, targets) { this.power = power_; var effect = target.getStatus("ChargeMoveEffect"); if (effect) { var name = effect.move.name; if ((name == "Fly") || (name == "Bounce")) { this.power *= 2; } } }; makeStatusMove(this, [[FlinchEffect, 0.20]]); ]]> </init> </move>
<move name="U-turn" id="439"> <type>Bug</type> <class>Physical</class> <power>70</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <use> <![CDATA[ var damage = field.calculate(this, user, target, targets); if (!damage) return; target.hp -= damage; if (user.hp <= 0) { return; } if (field.getAliveCount(target.party) == 0) { return; } var selection = field.requestInactivePokemon(user); if (selection) { user.replaceBy(selection); var trainer = field.getTrainer(user.party); field.print(Text.battle_messages_unique(96, user, trainer)); } ]]> </use> </move>
<move name="Uproar" id="440"> <type>Normal</type> <class>Special</class> <power>50</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Randenemy</target> <flags> <protect/> <memorable/> <flinch/> <sound/> </flags> <init> <![CDATA[ this.prepareSelf = function(field, user) { user.setForcedMove(this, null, false); if (user.getStatus("RampageEffect")) return; var effect = new StatusEffect("RampageEffect"); effect.tier = 6.1; // Arbitrary, but needs to be after sleep. effect.turns = field.random(2, 5); effect.vetoSwitch = function(subject) { return (subject == this.subject); }; effect.unapplyEffect = function() { this.subject.clearForcedMove(); var effect = field.getStatus("UproarEffect"); if (effect) { effect.removeUser(); } if (!this.subject.fainted) { field.print(Text.battle_messages_unique(153, this.subject)); } }; // The side effects of unapplyEffect must run when the subject faints, so // this function is necessary. effect.informReplacePokemon = function(subject) { if (subject == this.subject) { this.subject.removeStatus(this); } }; effect.informFreeze = effect.informSleep = function() { this.subject.removeStatus(this); }; effect.informFinishedSubjectExecution = function() { if (!this.subject.lastMove) { this.subject.removeStatus(this); } }; effect.tick = function() { if (--this.turns == 0) { this.subject.removeStatus(this); } }; user.applyStatus(user, effect); effect = field.getStatus("UproarEffect"); if (!effect) { effect = getGlobalController(field).applyGlobalEffect(user, GlobalEffect.UPROAR); } ++effect.users_; field.print(Text.battle_messages_unique(152, user)); }; ]]> </init> </move>
<move name="Vacuum Wave" id="441"> <type>Fighting</type> <class>Special</class> <priority>1</priority> <power>40</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="ViceGrip" id="442"> <type>Normal</type> <class>Physical</class> <power>55</power> <accuracy>1.00</accuracy> <pp>30</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Vine Whip" id="443"> <type>Grass</type> <class>Physical</class> <power>35</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Vital Throw" id="444"> <type>Fighting</type> <class>Physical</class> <priority>-1</priority> <power>70</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Volt Tackle" id="445"> <type>Electric</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect, 0.1]]); makeRecoilMove(this, 3); ]]> </init> </move>
<move name="Wake-Up Slap" id="446"> <type>Fighting</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ this.power_ = this.power; ]]> </init> <use> <![CDATA[ this.power = this.power_; var effect = target.getStatus("SleepEffect"); if (target.getStatus("SubstituteEffect")) { effect = null; } if (effect) { this.power *= 2; } target.hp -= field.calculate(this, user, target, targets); if (effect) { target.removeStatus(effect); } ]]> </use> </move> <accuracy>1.00</accuracy> <pp>25</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Water Pulse" id="448"> <type>Water</type> <class>Special</class> <power>60</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ConfusionEffect, 0.2]]); ]]> </init> </move>
<move name="Water Sport" id="449"> <type>Water</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>15</pp> <target>All</target> <flags>
</flags> <init> <![CDATA[ makeTypeWeakeningMove(this, Type.FIRE); ]]> </init> </move>
<move name="Water Spout" id="450"> <type>Water</type> <class>Special</class> <power>150</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Enemies</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeUserHealthMove(this); ]]> </init> </move>
<move name="Waterfall" id="451"> <type>Water</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.2]]); ]]> </init> </move>
<move name="Weather Ball" id="452"> <type>Normal</type> <class>Special</class> <power>50</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ var power_ = this.power; var type_ = this.type; this.prepareSelf = function(field, user) { // TODO (NOTE): More mechanics made up by me. this.type = type_; this.power = power_; var flags = getGlobalController(field).getFlags(); if (flags[GlobalEffect.SUN]) { this.type = Type.FIRE; } else if (flags[GlobalEffect.RAIN]) { this.type = Type.WATER; } else if (flags[GlobalEffect.SAND]) { this.type = Type.ROCK; } else if (flags[GlobalEffect.HAIL]) { this.type = Type.ICE; } if ((this.type != type_) || flags[GlobalEffect.FOG]) { this.power *= 2; } }; ]]> </init> </move>
<move name="Whirlpool" id="453"> <type>Water</type> <class>Special</class> <power>15</power> <accuracy>0.70</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(74)); ]]> </init> </move>
<move name="Whirlwind" id="454"> <type>Normal</type> <class>Other</class> <priority>-6</priority> <power>0</power> <accuracy>1.00</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeRandomSwitchMove(this); ]]> </init> </move>
<move name="Will-O-Wisp" id="455"> <type>Fire</type> <class>Other</class> <power>0</power> <accuracy>0.75</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[BurnEffect]]); ]]> </init> </move>
<move name="Wing Attack" id="456"> <type>Flying</type> <class>Physical</class> <power>60</power> <accuracy>1.00</accuracy> <pp>35</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Wish" id="457"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>User</target> <flags>
</flags> <use> <![CDATA[ if (user.getStatus("WishEffect")) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("WishEffect"); effect.name = "Wish"; effect.turns = 2; effect.party_ = user.party; effect.position_ = user.position; effect.tier = 2; effect.subtier = 0; effect.applyEffect = function() { if (this.subject.party != this.party_) return false; if (this.subject.position != this.position_) return false; return true; }; effect.tick = function() { if (this.turns != 1) return; if (this.subject.sendMessage("informHealing")) return; this.subject.field.print(Text.battle_messages_unique(78)); var hp = Math.floor(this.subject.getStat(Stat.HP) / 2); if (hp < 1) hp = 1; this.subject.hp += hp; }; effect.endTick = function(field) { if (--this.turns <= 0) { field.removeStatus(this); } }; field.print(Text.battle_messages_unique(77, user)); field.applyStatus(effect); ]]> </use> </move>
<move name="Withdraw" id="458"> <type>Water</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>40</pp> <target>User</target> <flags> <snatch/> </flags> <use> <![CDATA[ user.applyStatus(user, new StatChangeEffect(Stat.DEFENCE, 1)); ]]> </use> </move>
<move name="Wood Hammer" id="459"> <type>Grass</type> <class>Physical</class> <power>120</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeRecoilMove(this, 3); ]]> </init> </move>
<move name="Worry Seed" id="460"> <type>Grass</type> <class>Other</class> <power>0</power> <accuracy>1.00</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <use> <![CDATA[ if (target.ability && (target.ability.id == "Multitype")) { field.print(Text.battle_messages(0)); return; } target.ability = Ability["Insomnia"]; field.print(Text.battle_messages_unique(140, target, target.ability)); ]]> </use> </move>
<move name="Wrap" id="461"> <type>Normal</type> <class>Physical</class> <power>15</power> <accuracy>0.85</accuracy> <pp>20</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTemporaryTrappingMove(this, Text.battle_messages_unique.wrap(75)); ]]> </init> </move>
<move name="Wring Out" id="462"> <type>Normal</type> <class>Special</class> <power>1</power> <accuracy>1.00</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeTargetHealthMove(this); ]]> </init> </move>
<move name="X-Scissor" id="463"> <type>Bug</type> <class>Physical</class> <power>80</power> <accuracy>1.00</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> </move>
<move name="Yawn" id="464"> <type>Normal</type> <class>Other</class> <power>0</power> <accuracy>0</accuracy> <pp>10</pp> <target>Non-user</target> <flags> <protect/> <reflect/> <memorable/> </flags> <use> <![CDATA[ if (target.getStatus("YawnEffect") || target.getStatus(StatusEffect.SPECIAL_EFFECT)) { field.print(Text.battle_messages(0)); return; } var effect = new StatusEffect("YawnEffect"); effect.name = Text.battle_messages_unique(91); effect.tier = 6; effect.subtier = 10; effect.turns_ = 2; effect.tick = function() { if (--this.turns_ > 0) return; this.subject.applyStatus(user, new SleepEffect()); this.subject.removeStatus(this); }; target.applyStatus(user, effect); field.print(Text.battle_messages_unique(92, target)); ]]> </use> </move>
<move name="Zap Cannon" id="465"> <type>Electric</type> <class>Special</class> <power>120</power> <accuracy>0.50</accuracy> <pp>5</pp> <target>Non-user</target> <flags> <protect/> <memorable/> </flags> <init> <![CDATA[ makeStatusMove(this, [[ParalysisEffect]]); ]]> </init> </move>
<move name="Zen Headbutt" id="466"> <type>Psychic</type> <class>Physical</class> <power>80</power> <accuracy>0.90</accuracy> <pp>15</pp> <target>Non-user</target> <flags> <contact/> <protect/> <memorable/> <flinch/> </flags> <init> <![CDATA[ makeStatusMove(this, [[FlinchEffect, 0.2]]); ]]> </init> </move>
<!-- This is the move that a pokemon uses when it hits itself in confusion. It is referenced only by the implementation of confusion in statuses.js. --> <move name="__confusion" id="467"> <type>Typeless</type> <class>Physical</class> <power>40</power> <accuracy>0</accuracy> <pp>0</pp> <target>Non-user</target> <flags> <no-critical/> <internal/> </flags> </move>
</shoddybattle> | |
| | | Sponsored content
| Subject: Re: -Moves.xml-(another huge post) | |
| |
| | | | -Moves.xml-(another huge post) | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |
|