// ==UserScript== // @name xpd // @namespace http://d.hatena.ne.jp/gengar/ // @description GLCのパーティ構築システムの一括変更を使いやすくするスクリプト // @include http://psense.lib.net/_/PDINPUT.cgi* // // ==/UserScript== /* * version 0.8.4 * Copyright (C) 2009 kaki * This software is distributed under GPL without any warranty. */ var $d = document.wrappedJSObject || document; if (!$d.forms[0].S2) throw "一括変更で使用して下さい."; if (window.xpd) throw "二重に実行しようとしました."; var xpd = { version: "0.8.4" }; var browser = { camino: false, firefox: false, safari: false, msie: false }; if (navigator.userAgent.indexOf("Camino") != -1) { browser.camino = true; } else if (navigator.userAgent.indexOf("Firefox") != -1) { browser.firefox = true; } else if (navigator.userAgent.indexOf("Safari") != -1) { browser.safari = true; } else if (navigator.userAgent.indexOf("MSIE") != -1) { browser.msie = true; } var platform = { windows: false, macosx: false }; if (navigator.userAgent.indexOf("Windows") != -1) { platform.windows = true; } else if (navigator.userAgent.indexOf("Mac OS X") != -1) { platform.macosx = true; } var pref = new function() {}; pref.defaults = pref.constructor.prototype; function PokeData(name, hp, spd, female) { this.name = name; this.hp = hp; this.spd = spd; this.female = female; } var pokelist = new Array; pokelist[1] = new PokeData("フシギダネ", 45, 45, 2); pokelist[2] = new PokeData("フシギソウ", 60, 60, 2); pokelist[3] = new PokeData("フシギバナ", 80, 80, 2); pokelist[4] = new PokeData("ヒトカゲ", 39, 65, 2); pokelist[5] = new PokeData("リザード", 58, 80, 2); pokelist[6] = new PokeData("リザードン", 78, 100, 2); pokelist[7] = new PokeData("ゼニガメ", 44, 43, 2); pokelist[8] = new PokeData("カメール", 59, 58, 2); pokelist[9] = new PokeData("カメックス", 79, 78, 2); pokelist[10] = new PokeData("キャタピー", 45, 45, 8); pokelist[11] = new PokeData("トランセル", 50, 30, 8); pokelist[12] = new PokeData("バタフリー", 60, 70, 8); pokelist[13] = new PokeData("ビードル", 40, 50, 8); pokelist[14] = new PokeData("コクーン", 45, 35, 8); pokelist[15] = new PokeData("スピアー", 65, 75, 8); pokelist[16] = new PokeData("ポッポ", 40, 56, 8); pokelist[17] = new PokeData("ピジョン", 63, 71, 8); pokelist[18] = new PokeData("ピジョット", 83, 91, 8); pokelist[19] = new PokeData("コラッタ", 30, 72, 8); pokelist[20] = new PokeData("ラッタ", 55, 97, 8); pokelist[21] = new PokeData("オニスズメ", 40, 70, 8); pokelist[22] = new PokeData("オニドリル", 65, 100, 8); pokelist[23] = new PokeData("アーボ", 35, 55, 8); pokelist[24] = new PokeData("アーボック", 60, 80, 8); pokelist[25] = new PokeData("ピカチュウ", 35, 90, 8); pokelist[26] = new PokeData("ライチュウ", 60, 100, 8); pokelist[27] = new PokeData("サンド", 50, 40, 8); pokelist[28] = new PokeData("サンドパン", 75, 65, 8); pokelist[29] = new PokeData("ニドラン♀", 55, 41, 16); pokelist[30] = new PokeData("ニドリーナ", 70, 56, 16); pokelist[31] = new PokeData("ニドクイン", 90, 76, 16); pokelist[32] = new PokeData("ニドラン♂", 46, 50, 0); pokelist[33] = new PokeData("ニドリーノ", 61, 65, 0); pokelist[34] = new PokeData("ニドキング", 81, 85, 0); pokelist[35] = new PokeData("ピッピ", 70, 35, 12); pokelist[36] = new PokeData("ピクシー", 95, 60, 12); pokelist[37] = new PokeData("ロコン", 38, 65, 12); pokelist[38] = new PokeData("キュウコン", 73, 100, 12); pokelist[39] = new PokeData("プリン", 115, 20, 12); pokelist[40] = new PokeData("プクリン", 140, 45, 12); pokelist[41] = new PokeData("ズバット", 40, 55, 8); pokelist[42] = new PokeData("ゴルバット", 75, 90, 8); pokelist[43] = new PokeData("ナゾノクサ", 45, 30, 8); pokelist[44] = new PokeData("クサイハナ", 60, 40, 8); pokelist[45] = new PokeData("ラフレシア", 75, 50, 8); pokelist[46] = new PokeData("パラス", 35, 25, 8); pokelist[47] = new PokeData("パラセクト", 60, 30, 8); pokelist[48] = new PokeData("コンパン", 60, 45, 8); pokelist[49] = new PokeData("モルフォン", 70, 90, 8); pokelist[50] = new PokeData("ディグダ", 10, 95, 8); pokelist[51] = new PokeData("ダグトリオ", 35, 120, 8); pokelist[52] = new PokeData("ニャース", 40, 90, 8); pokelist[53] = new PokeData("ペルシアン", 65, 115, 8); pokelist[54] = new PokeData("コダック", 50, 55, 8); pokelist[55] = new PokeData("ゴルダック", 80, 85, 8); pokelist[56] = new PokeData("マンキー", 40, 70, 8); pokelist[57] = new PokeData("オコリザル", 65, 95, 8); pokelist[58] = new PokeData("ガーディ", 55, 60, 4); pokelist[59] = new PokeData("ウインディ", 90, 95, 4); pokelist[60] = new PokeData("ニョロモ", 40, 90, 8); pokelist[61] = new PokeData("ニョロゾ", 65, 90, 8); pokelist[62] = new PokeData("ニョロボン", 90, 70, 8); pokelist[63] = new PokeData("ケーシィ", 25, 90, 4); pokelist[64] = new PokeData("ユンゲラー", 40, 105, 4); pokelist[65] = new PokeData("フーディン", 55, 120, 4); pokelist[66] = new PokeData("ワンリキー", 70, 35, 4); pokelist[67] = new PokeData("ゴーリキー", 80, 45, 4); pokelist[68] = new PokeData("カイリキー", 90, 55, 4); pokelist[69] = new PokeData("マダツボミ", 50, 40, 8); pokelist[70] = new PokeData("ウツドン", 65, 55, 8); pokelist[71] = new PokeData("ウツボット", 80, 70, 8); pokelist[72] = new PokeData("メノクラゲ", 40, 70, 8); pokelist[73] = new PokeData("ドククラゲ", 80, 100, 8); pokelist[74] = new PokeData("イシツブテ", 40, 20, 8); pokelist[75] = new PokeData("ゴローン", 55, 35, 8); pokelist[76] = new PokeData("ゴローニャ", 80, 45, 8); pokelist[77] = new PokeData("ポニータ", 50, 90, 8); pokelist[78] = new PokeData("ギャロップ", 65, 105, 8); pokelist[79] = new PokeData("ヤドン", 90, 15, 8); pokelist[80] = new PokeData("ヤドラン", 95, 30, 8); pokelist[81] = new PokeData("コイル", 25, 45, -1); pokelist[82] = new PokeData("レアコイル", 50, 70, -1); pokelist[83] = new PokeData("カモネギ", 52, 60, 8); pokelist[84] = new PokeData("ドードー", 35, 75, 8); pokelist[85] = new PokeData("ドードリオ", 60, 100, 8); pokelist[86] = new PokeData("パウワウ", 65, 45, 8); pokelist[87] = new PokeData("ジュゴン", 90, 70, 8); pokelist[88] = new PokeData("ベトベター", 80, 25, 8); pokelist[89] = new PokeData("ベトベトン", 105, 50, 8); pokelist[90] = new PokeData("シェルダー", 30, 40, 8); pokelist[91] = new PokeData("パルシェン", 50, 70, 8); pokelist[92] = new PokeData("ゴース", 30, 80, 8); pokelist[93] = new PokeData("ゴースト", 45, 95, 8); pokelist[94] = new PokeData("ゲンガー", 60, 110, 8); pokelist[95] = new PokeData("イワーク", 35, 70, 8); pokelist[96] = new PokeData("スリープ", 60, 42, 8); pokelist[97] = new PokeData("スリーパー", 85, 67, 8); pokelist[98] = new PokeData("クラブ", 30, 50, 8); pokelist[99] = new PokeData("キングラー", 55, 75, 8); pokelist[100] = new PokeData("ビリリダマ", 40, 100, -1); pokelist[101] = new PokeData("マルマイン", 60, 140, -1); pokelist[102] = new PokeData("タマタマ", 60, 40, 8); pokelist[103] = new PokeData("ナッシー", 95, 55, 8); pokelist[104] = new PokeData("カラカラ", 50, 35, 8); pokelist[105] = new PokeData("ガラガラ", 60, 45, 8); pokelist[106] = new PokeData("サワムラー", 50, 87, 0); pokelist[107] = new PokeData("エビワラー", 50, 76, 0); pokelist[108] = new PokeData("ベロリンガ", 90, 30, 8); pokelist[109] = new PokeData("ドガース", 40, 35, 8); pokelist[110] = new PokeData("マタドガス", 65, 60, 8); pokelist[111] = new PokeData("サイホーン", 80, 25, 8); pokelist[112] = new PokeData("サイドン", 105, 40, 8); pokelist[113] = new PokeData("ラッキー", 250, 50, 16); pokelist[114] = new PokeData("モンジャラ", 65, 60, 8); pokelist[115] = new PokeData("ガルーラ", 105, 90, 16); pokelist[116] = new PokeData("タッツー", 30, 60, 8); pokelist[117] = new PokeData("シードラ", 55, 85, 8); pokelist[118] = new PokeData("トサキント", 45, 63, 8); pokelist[119] = new PokeData("アズマオウ", 80, 68, 8); pokelist[120] = new PokeData("ヒトデマン", 30, 85, -1); pokelist[121] = new PokeData("スターミー", 60, 115, -1); pokelist[122] = new PokeData("バリヤード", 40, 90, 8); pokelist[123] = new PokeData("ストライク", 70, 105, 8); pokelist[124] = new PokeData("ルージュラ", 65, 95, 16); pokelist[125] = new PokeData("エレブー", 65, 105, 4); pokelist[126] = new PokeData("ブーバー", 65, 93, 4); pokelist[127] = new PokeData("カイロス", 65, 85, 8); pokelist[128] = new PokeData("ケンタロス", 75, 110, 0); pokelist[129] = new PokeData("コイキング", 20, 80, 8); pokelist[130] = new PokeData("ギャラドス", 95, 81, 8); pokelist[131] = new PokeData("ラプラス", 130, 60, 8); pokelist[132] = new PokeData("メタモン", 48, 48, -1); pokelist[133] = new PokeData("イーブイ", 55, 55, 2); pokelist[134] = new PokeData("シャワーズ", 130, 65, 2); pokelist[135] = new PokeData("サンダース", 65, 130, 2); pokelist[136] = new PokeData("ブースター", 65, 65, 2); pokelist[137] = new PokeData("ポリゴン", 65, 40, -1); pokelist[138] = new PokeData("オムナイト", 35, 35, 2); pokelist[139] = new PokeData("オムスター", 70, 55, 2); pokelist[140] = new PokeData("カブト", 30, 55, 2); pokelist[141] = new PokeData("カブトプス", 60, 80, 2); pokelist[142] = new PokeData("プテラ", 80, 130, 2); pokelist[143] = new PokeData("カビゴン", 160, 30, 2); pokelist[144] = new PokeData("フリーザー", 90, 85, -1); pokelist[145] = new PokeData("サンダー", 90, 100, -1); pokelist[146] = new PokeData("ファイヤー", 90, 90, -1); pokelist[147] = new PokeData("ミニリュウ", 41, 50, 8); pokelist[148] = new PokeData("ハクリュー", 61, 70, 8); pokelist[149] = new PokeData("カイリュー", 91, 80, 8); pokelist[150] = new PokeData("ミュウツー", 106, 130, -1); pokelist[151] = new PokeData("ミュウ", 100, 100, -1); pokelist[152] = new PokeData("チコリータ", 45, 45, 2); pokelist[153] = new PokeData("ベイリーフ", 60, 60, 2); pokelist[154] = new PokeData("メガニウム", 80, 80, 2); pokelist[155] = new PokeData("ヒノアラシ", 39, 65, 2); pokelist[156] = new PokeData("マグマラシ", 58, 80, 2); pokelist[157] = new PokeData("バクフーン", 78, 100, 2); pokelist[158] = new PokeData("ワニノコ", 50, 43, 2); pokelist[159] = new PokeData("アリゲイツ", 65, 58, 2); pokelist[160] = new PokeData("オーダイル", 85, 78, 2); pokelist[161] = new PokeData("オタチ", 35, 20, 8); pokelist[162] = new PokeData("オオタチ", 85, 90, 8); pokelist[163] = new PokeData("ホーホー", 60, 50, 8); pokelist[164] = new PokeData("ヨルノズク", 100, 70, 8); pokelist[165] = new PokeData("レディバ", 40, 55, 8); pokelist[166] = new PokeData("レディアン", 55, 85, 8); pokelist[167] = new PokeData("イトマル", 40, 30, 8); pokelist[168] = new PokeData("アリアドス", 70, 40, 8); pokelist[169] = new PokeData("クロバット", 85, 130, 8); pokelist[170] = new PokeData("チョンチー", 75, 67, 8); pokelist[171] = new PokeData("ランターン", 125, 67, 8); pokelist[172] = new PokeData("ピチュー", 20, 60, 8); pokelist[173] = new PokeData("ピィ", 50, 15, 12); pokelist[174] = new PokeData("ププリン", 90, 15, 12); pokelist[175] = new PokeData("トゲピー", 35, 20, 2); pokelist[176] = new PokeData("トゲチック", 55, 40, 2); pokelist[177] = new PokeData("ネイティ", 40, 70, 8); pokelist[178] = new PokeData("ネイティオ", 65, 95, 8); pokelist[179] = new PokeData("メリープ", 55, 35, 8); pokelist[180] = new PokeData("モココ", 70, 45, 8); pokelist[181] = new PokeData("デンリュウ", 90, 55, 8); pokelist[182] = new PokeData("キレイハナ", 75, 50, 8); pokelist[183] = new PokeData("マリル", 70, 40, 8); pokelist[184] = new PokeData("マリルリ", 100, 50, 8); pokelist[185] = new PokeData("ウソッキー", 70, 30, 8); pokelist[186] = new PokeData("ニョロトノ", 90, 70, 8); pokelist[187] = new PokeData("ハネッコ", 35, 50, 8); pokelist[188] = new PokeData("ポポッコ", 55, 80, 8); pokelist[189] = new PokeData("ワタッコ", 75, 110, 8); pokelist[190] = new PokeData("エイパム", 55, 85, 8); pokelist[191] = new PokeData("ヒマナッツ", 30, 30, 8); pokelist[192] = new PokeData("キマワリ", 75, 30, 8); pokelist[193] = new PokeData("ヤンヤンマ", 65, 95, 8); pokelist[194] = new PokeData("ウパー", 55, 15, 8); pokelist[195] = new PokeData("ヌオー", 95, 35, 8); pokelist[196] = new PokeData("エーフィ", 65, 110, 2); pokelist[197] = new PokeData("ブラッキー", 95, 65, 2); pokelist[198] = new PokeData("ヤミカラス", 60, 91, 8); pokelist[199] = new PokeData("ヤドキング", 95, 30, 8); pokelist[200] = new PokeData("ムウマ", 60, 85, 8); pokelist[201] = new PokeData("アンノーン", 48, 48, -1); pokelist[202] = new PokeData("ソーナンス", 190, 33, 8); pokelist[203] = new PokeData("キリンリキ", 70, 85, 8); pokelist[204] = new PokeData("クヌギダマ", 50, 15, 8); pokelist[205] = new PokeData("フォレトス", 75, 40, 8); pokelist[206] = new PokeData("ノコッチ", 100, 45, 8); pokelist[207] = new PokeData("グライガー", 65, 85, 8); pokelist[208] = new PokeData("ハガネール", 75, 30, 8); pokelist[209] = new PokeData("ブルー", 60, 30, 12); pokelist[210] = new PokeData("グランブル", 90, 45, 12); pokelist[211] = new PokeData("ハリーセン", 65, 85, 8); pokelist[212] = new PokeData("ハッサム", 70, 65, 8); pokelist[213] = new PokeData("ツボツボ", 20, 5, 8); pokelist[214] = new PokeData("ヘラクロス", 80, 85, 8); pokelist[215] = new PokeData("ニューラ", 55, 115, 8); pokelist[216] = new PokeData("ヒメグマ", 60, 40, 8); pokelist[217] = new PokeData("リングマ", 90, 55, 8); pokelist[218] = new PokeData("マグマッグ", 40, 20, 8); pokelist[219] = new PokeData("マグカルゴ", 50, 30, 8); pokelist[220] = new PokeData("ウリムー", 50, 50, 8); pokelist[221] = new PokeData("イノムー", 100, 50, 8); pokelist[222] = new PokeData("サニーゴ", 55, 35, 12); pokelist[223] = new PokeData("テッポウオ", 35, 65, 8); pokelist[224] = new PokeData("オクタン", 75, 45, 8); pokelist[225] = new PokeData("デリバード", 45, 75, 8); pokelist[226] = new PokeData("マンタイン", 65, 70, 8); pokelist[227] = new PokeData("エアームド", 65, 70, 8); pokelist[228] = new PokeData("デルビル", 45, 65, 8); pokelist[229] = new PokeData("ヘルガー", 75, 95, 8); pokelist[230] = new PokeData("キングドラ", 75, 85, 8); pokelist[231] = new PokeData("ゴマゾウ", 90, 40, 8); pokelist[232] = new PokeData("ドンファン", 90, 50, 8); pokelist[233] = new PokeData("ポリゴン2", 85, 60, -1); pokelist[234] = new PokeData("オドシシ", 73, 85, 8); pokelist[235] = new PokeData("ドーブル", 55, 75, 8); pokelist[236] = new PokeData("バルキー", 35, 35, 0); pokelist[237] = new PokeData("カポエラー", 50, 70, 0); pokelist[238] = new PokeData("ムチュール", 45, 65, 16); pokelist[239] = new PokeData("エレキッド", 45, 95, 4); pokelist[240] = new PokeData("ブビィ", 45, 83, 4); pokelist[241] = new PokeData("ミルタンク", 95, 100, 16); pokelist[242] = new PokeData("ハピナス", 255, 55, 16); pokelist[243] = new PokeData("ライコウ", 90, 115, -1); pokelist[244] = new PokeData("エンテイ", 115, 100, -1); pokelist[245] = new PokeData("スイクン", 100, 85, -1); pokelist[246] = new PokeData("ヨーギラス", 50, 41, 8); pokelist[247] = new PokeData("サナギラス", 70, 51, 8); pokelist[248] = new PokeData("バンギラス", 100, 61, 8); pokelist[249] = new PokeData("ルギア", 106, 110, -1); pokelist[250] = new PokeData("ホウオウ", 106, 90, -1); pokelist[251] = new PokeData("セレビィ", 100, 100, -1); function MoveData(name, pp) { this.name = name; this.pp = pp; } var movelist = new Array; movelist[0] = new MoveData("", 0); movelist[2] = new MoveData("はたく", 35); movelist[3] = new MoveData("からてチョップ", 25); movelist[4] = new MoveData("おうふくビンタ", 20); movelist[5] = new MoveData("れんぞくパンチ", 15); movelist[6] = new MoveData("メガトンパンチ", 20); movelist[7] = new MoveData("ネコにこばん", 20); movelist[8] = new MoveData("ほのおのパンチ", 15); movelist[9] = new MoveData("れいとうパンチ", 15); movelist[10] = new MoveData("かみなりパンチ", 15); movelist[11] = new MoveData("ひっかく", 35); movelist[12] = new MoveData("はさむ", 30); movelist[13] = new MoveData("ハサミギロチン", 5); movelist[14] = new MoveData("かまいたち", 10); movelist[15] = new MoveData("つるぎのまい", 30); movelist[16] = new MoveData("いあいぎり", 30); movelist[17] = new MoveData("かぜおこし", 35); movelist[18] = new MoveData("つばさでうつ", 35); movelist[19] = new MoveData("ふきとばし", 20); movelist[20] = new MoveData("そらをとぶ", 15); movelist[21] = new MoveData("しめつける", 20); movelist[22] = new MoveData("たたきつける", 20); movelist[23] = new MoveData("つるのムチ", 10); movelist[24] = new MoveData("ふみつけ", 20); movelist[25] = new MoveData("にどげり", 30); movelist[26] = new MoveData("メガトンキック", 5); movelist[27] = new MoveData("とびげり", 25); movelist[28] = new MoveData("まわしげり", 15); movelist[29] = new MoveData("すなかけ", 15); movelist[30] = new MoveData("ずつき", 15); movelist[31] = new MoveData("つのでつく", 25); movelist[32] = new MoveData("みだれづき", 20); movelist[33] = new MoveData("つのドリル", 5); movelist[34] = new MoveData("たいあたり", 35); movelist[35] = new MoveData("のしかかり", 15); movelist[36] = new MoveData("まきつく", 20); movelist[37] = new MoveData("とっしん", 20); movelist[38] = new MoveData("あばれる", 20); movelist[39] = new MoveData("すてみタックル", 15); movelist[40] = new MoveData("しっぽをふる", 30); movelist[41] = new MoveData("どくばり", 35); movelist[42] = new MoveData("ダブルニードル", 20); movelist[43] = new MoveData("ミサイルばり", 20); movelist[44] = new MoveData("にらみつける", 30); movelist[45] = new MoveData("かみつく", 25); movelist[46] = new MoveData("なきごえ", 40); movelist[47] = new MoveData("ほえる", 20); movelist[48] = new MoveData("うたう", 15); movelist[49] = new MoveData("ちょうおんぱ", 20); movelist[50] = new MoveData("ソニックブーム", 20); movelist[51] = new MoveData("かなしばり", 20); movelist[52] = new MoveData("ようかいえき", 30); movelist[53] = new MoveData("ひのこ", 25); movelist[54] = new MoveData("かえんほうしゃ", 15); movelist[55] = new MoveData("しろいきり", 30); movelist[56] = new MoveData("みずでっぽう", 25); movelist[57] = new MoveData("ハイドロポンプ", 5); movelist[58] = new MoveData("なみのり", 15); movelist[59] = new MoveData("れいとうビーム", 10); movelist[60] = new MoveData("ふぶき", 5); movelist[61] = new MoveData("サイケこうせん", 20); movelist[62] = new MoveData("バブルこうせん", 20); movelist[63] = new MoveData("オーロラビーム", 20); movelist[64] = new MoveData("はかいこうせん", 5); movelist[65] = new MoveData("つつく", 35); movelist[66] = new MoveData("ドリルくちばし", 20); movelist[67] = new MoveData("じごくぐるま", 25); movelist[68] = new MoveData("けたぐり", 20); movelist[69] = new MoveData("カウンター", 20); movelist[70] = new MoveData("ちきゅうなげ", 20); movelist[71] = new MoveData("かいりき", 15); movelist[72] = new MoveData("すいとる", 20); movelist[73] = new MoveData("メガドレイン", 10); movelist[74] = new MoveData("やどりぎのタネ", 10); movelist[75] = new MoveData("せいちょう", 40); movelist[76] = new MoveData("はっぱカッター", 25); movelist[77] = new MoveData("ソーラービーム", 10); movelist[78] = new MoveData("どくのこな", 35); movelist[79] = new MoveData("しびれごな", 30); movelist[80] = new MoveData("ねむりごな", 15); movelist[81] = new MoveData("はなびらのまい", 20); movelist[82] = new MoveData("いとをはく", 40); movelist[83] = new MoveData("りゅうのいかり", 10); movelist[84] = new MoveData("ほのおのうず", 15); movelist[85] = new MoveData("でんきショック", 30); movelist[86] = new MoveData("10まんボルト", 15); movelist[87] = new MoveData("でんじは", 20); movelist[88] = new MoveData("かみなり", 10); movelist[89] = new MoveData("いわおとし", 15); movelist[90] = new MoveData("じしん", 10); movelist[91] = new MoveData("じわれ", 5); movelist[92] = new MoveData("あなをほる", 10); movelist[93] = new MoveData("どくどく", 10); movelist[94] = new MoveData("ねんりき", 25); movelist[95] = new MoveData("サイコキネシス", 10); movelist[96] = new MoveData("さいみんじゅつ", 20); movelist[97] = new MoveData("ヨガのポーズ", 40); movelist[98] = new MoveData("こうそくいどう", 30); movelist[99] = new MoveData("でんこうせっか", 30); movelist[100] = new MoveData("いかり", 20); movelist[101] = new MoveData("テレポート", 20); movelist[102] = new MoveData("ナイトヘッド", 15); movelist[103] = new MoveData("ものまね", 10); movelist[104] = new MoveData("いやなおと", 40); movelist[105] = new MoveData("かげぶんしん", 15); movelist[106] = new MoveData("じこさいせい", 20); movelist[107] = new MoveData("かたくなる", 30); movelist[108] = new MoveData("ちいさくなる", 20); movelist[109] = new MoveData("えんまく", 20); movelist[110] = new MoveData("あやしいひかり", 16); movelist[111] = new MoveData("からにこもる", 40); movelist[112] = new MoveData("まるくなる", 40); movelist[113] = new MoveData("バリアー", 30); movelist[114] = new MoveData("ひかりのかべ", 30); movelist[115] = new MoveData("くろいきり", 30); movelist[116] = new MoveData("リフレクター", 20); movelist[117] = new MoveData("きあいだめ", 30); movelist[118] = new MoveData("がまん", 10); movelist[119] = new MoveData("ゆびをふる", 10); movelist[120] = new MoveData("オウムがえし", 20); movelist[121] = new MoveData("じばく", 5); movelist[122] = new MoveData("タマゴばくだん", 10); movelist[123] = new MoveData("したでなめる", 30); movelist[124] = new MoveData("スモッグ", 20); movelist[125] = new MoveData("ヘドロこうげき", 20); movelist[126] = new MoveData("ホネこんぼう", 20); movelist[127] = new MoveData("だいもんじ", 5); movelist[128] = new MoveData("たきのぼり", 15); movelist[129] = new MoveData("からではさむ", 10); movelist[130] = new MoveData("スピードスター", 20); movelist[131] = new MoveData("ロケットずつき", 15); movelist[132] = new MoveData("とげキャノン", 15); movelist[133] = new MoveData("からみつく", 35); movelist[134] = new MoveData("ドわすれ", 20); movelist[135] = new MoveData("スプーンまげ", 15); movelist[136] = new MoveData("タマゴうみ", 10); movelist[137] = new MoveData("とびひざげり", 20); movelist[138] = new MoveData("へびにらみ", 30); movelist[139] = new MoveData("ゆめくい", 15); movelist[140] = new MoveData("どくガス", 40); movelist[141] = new MoveData("たまなげ", 20); movelist[142] = new MoveData("きゅうけつ", 15); movelist[143] = new MoveData("あくまのキッス", 10); movelist[144] = new MoveData("ゴッドバード", 5); movelist[145] = new MoveData("へんしん", 10); movelist[146] = new MoveData("あわ", 30); movelist[147] = new MoveData("ピヨピヨパンチ", 10); movelist[148] = new MoveData("キノコのほうし", 15); movelist[149] = new MoveData("フラッシュ", 20); movelist[150] = new MoveData("サイコウェーブ", 15); movelist[151] = new MoveData("はねる", 40); movelist[152] = new MoveData("とける", 40); movelist[153] = new MoveData("クラブハンマー", 10); movelist[154] = new MoveData("だいばくはつ", 5); movelist[155] = new MoveData("みだれひっかき", 15); movelist[156] = new MoveData("ホネブーメラン", 10); movelist[157] = new MoveData("ねむる", 10); movelist[158] = new MoveData("いわなだれ", 10); movelist[159] = new MoveData("ひっさつまえば", 15); movelist[160] = new MoveData("かくばる", 30); movelist[161] = new MoveData("テクスチャー", 30); movelist[162] = new MoveData("トライアタック", 10); movelist[163] = new MoveData("いかりのまえば", 10); movelist[164] = new MoveData("きりさく", 20); movelist[165] = new MoveData("みがわり", 10); movelist[166] = new MoveData("わるあがき", -1); movelist[167] = new MoveData("スケッチ", 1); movelist[168] = new MoveData("トリプルキック", 10); movelist[169] = new MoveData("どろぼう", 10); movelist[170] = new MoveData("クモのす", 15); movelist[171] = new MoveData("こころのめ", 5); movelist[172] = new MoveData("あくむ", 15); movelist[173] = new MoveData("かえんぐるま", 25); movelist[174] = new MoveData("いびき", 15); movelist[175] = new MoveData("のろい", 10); movelist[176] = new MoveData("じたばた", 15); movelist[177] = new MoveData("テクスチャー2", 30); movelist[178] = new MoveData("エアロブラスト", 5); movelist[179] = new MoveData("わたほうし", 40); movelist[180] = new MoveData("きしかいせい", 15); movelist[181] = new MoveData("うらみ", 10); movelist[182] = new MoveData("こなゆき", 25); movelist[183] = new MoveData("まもる", 10); movelist[184] = new MoveData("マッハパンチ", 30); movelist[185] = new MoveData("こわいかお", 10); movelist[186] = new MoveData("だましうち", 20); movelist[187] = new MoveData("てんしのキッス", 10); movelist[188] = new MoveData("はらだいこ", 10); movelist[189] = new MoveData("ヘドロばくだん", 10); movelist[190] = new MoveData("どろかけ", 10); movelist[191] = new MoveData("オクタンほう", 10); movelist[192] = new MoveData("まきびし", 20); movelist[193] = new MoveData("でんじほう", 5); movelist[194] = new MoveData("みやぶる", 40); movelist[195] = new MoveData("みちづれ", 5); movelist[196] = new MoveData("ほろびのうた", 5); movelist[197] = new MoveData("こごえるかぜ", 15); movelist[198] = new MoveData("みきり", 5); movelist[199] = new MoveData("ボーンラッシュ", 10); movelist[200] = new MoveData("ロックオン", 5); movelist[201] = new MoveData("げきりん", 15); movelist[202] = new MoveData("すなあらし", 10); movelist[203] = new MoveData("ギガドレイン", 5); movelist[204] = new MoveData("こらえる", 10); movelist[205] = new MoveData("あまえる", 20); movelist[206] = new MoveData("ころがる", 10); movelist[207] = new MoveData("みねうち", 40); movelist[208] = new MoveData("いばる", 10); movelist[209] = new MoveData("ミルクのみ", 10); movelist[210] = new MoveData("スパーク", 20); movelist[211] = new MoveData("れんぞくぎり", 20); movelist[212] = new MoveData("はがねのつばさ", 25); movelist[213] = new MoveData("くろいまなざし", 5); movelist[214] = new MoveData("メロメロ", 15); movelist[215] = new MoveData("ねごと", 10); movelist[216] = new MoveData("いやしのすず", 5); movelist[217] = new MoveData("おんがえし", 20); movelist[218] = new MoveData("プレゼント", 15); movelist[219] = new MoveData("やつあたり", 20); movelist[220] = new MoveData("しんぴのまもり", 25); movelist[221] = new MoveData("いたみわけ", 20); movelist[222] = new MoveData("せいなるほのお", 5); movelist[223] = new MoveData("マグニチュード", 30); movelist[224] = new MoveData("ばくれつパンチ", 5); movelist[225] = new MoveData("メガホーン", 10); movelist[226] = new MoveData("りゅうのいぶき", 20); movelist[227] = new MoveData("バトンタッチ", 40); movelist[228] = new MoveData("アンコール", 5); movelist[229] = new MoveData("おいうち", 20); movelist[230] = new MoveData("こうそくスピン", 40); movelist[231] = new MoveData("あまいかおり", 20); movelist[232] = new MoveData("アイアンテール", 15); movelist[233] = new MoveData("メタルクロー", 30); movelist[234] = new MoveData("あてみなげ", 10); movelist[235] = new MoveData("あさのひざし", 5); movelist[236] = new MoveData("こうごうせい", 5); movelist[237] = new MoveData("つきのひかり", 5); movelist[238] = new MoveData("めざめるパワー", 15); movelist[239] = new MoveData("クロスチョップ", 5); movelist[240] = new MoveData("たつまき", 20); movelist[241] = new MoveData("あまごい", 5); movelist[242] = new MoveData("にほんばれ", 5); movelist[243] = new MoveData("かみくだく", 15); movelist[244] = new MoveData("ミラーコート", 20); movelist[245] = new MoveData("じこあんじ", 10); movelist[246] = new MoveData("しんそく", 5); movelist[247] = new MoveData("げんしのちから", 5); movelist[248] = new MoveData("シャドーボール", 15); movelist[249] = new MoveData("みらいよち", 15); movelist[250] = new MoveData("いわくだき", 15); movelist[251] = new MoveData("うずしお", 15); movelist[252] = new MoveData("ふくろだたき", 10); var itemlist = new Array; itemlist[0] = ""; itemlist[2] = "マスターボール"; itemlist[3] = "ハイパーボール"; itemlist[4] = "ひかりのこな"; itemlist[5] = "スーパーボール"; itemlist[6] = "モンスターボール"; itemlist[7] = "カビチュウ"; itemlist[8] = "じてんしゃ"; itemlist[9] = "つきのいし"; itemlist[10] = "どくけし"; itemlist[11] = "やけどなおし"; itemlist[12] = "こおりなおし"; itemlist[13] = "ねむけざまし"; itemlist[14] = "まひなおし"; itemlist[15] = "かいふくのくすり"; itemlist[16] = "まんたんのくすり"; itemlist[17] = "すごいキズぐすり"; itemlist[18] = "いいキズぐすり"; itemlist[19] = "キズぐすり"; itemlist[20] = "あなぬけのヒモ"; itemlist[21] = "むしよけスプレー"; itemlist[22] = "ピーピーマックス"; itemlist[23] = "ほのおのいし"; itemlist[24] = "かみなりのいし"; itemlist[25] = "みずのいし"; itemlist[27] = "マックスアップ"; itemlist[28] = "タウリン"; itemlist[29] = "ブロムヘキシン"; itemlist[30] = "インドメタシン"; itemlist[31] = "ラッキーパンチ"; itemlist[32] = "リゾチウム"; itemlist[33] = "ふしぎなアメ"; itemlist[34] = "ヨクアタール"; itemlist[35] = "リーフのいし"; itemlist[36] = "メタルパウダー"; itemlist[37] = "きんのたま"; itemlist[38] = "ピッピにんぎょう"; itemlist[39] = "なんでもなおし"; itemlist[40] = "げんきのかけら"; itemlist[41] = "げんきのかたまり"; itemlist[42] = "エフェクトガード"; itemlist[43] = "シルバースプレー"; itemlist[44] = "ゴールドスプレー"; itemlist[45] = "クリティカッター"; itemlist[47] = "おいしいみず"; itemlist[48] = "サイコソーダ"; itemlist[49] = "ミックスオレ"; itemlist[50] = "プラスパワー"; itemlist[52] = "ディフェンダー"; itemlist[53] = "スピーダー"; itemlist[54] = "スペシャルアップ"; itemlist[55] = "コインケース"; itemlist[56] = "ダウジングマシン"; itemlist[58] = "がくしゅうそうち"; itemlist[59] = "ぼろのつりざお"; itemlist[60] = "いいつりざお"; itemlist[61] = "ぎんのはっぱ"; itemlist[62] = "すごいつりざお"; itemlist[63] = "ポイントアップ"; itemlist[64] = "ピーピーエイド"; itemlist[65] = "ピーピーリカバー"; itemlist[66] = "ピーピーエイダー"; itemlist[67] = "あかいウロコ"; itemlist[68] = "ひでんのくすり"; itemlist[69] = "ふねのチケット"; itemlist[70] = "ふしぎなタマゴ"; itemlist[72] = "ぎんいろのはね"; itemlist[73] = "モーモーミルク"; itemlist[74] = "せんせいのツメ"; itemlist[75] = "どくけしのみ"; itemlist[76] = "きんのはっぱ"; itemlist[77] = "やわらかいすな"; itemlist[78] = "するどいくちばし"; itemlist[79] = "まひなおしのみ"; itemlist[80] = "やけたきのみ"; itemlist[81] = "こおったきのみ"; itemlist[82] = "どくバリ"; itemlist[83] = "おうじゃのしるし"; itemlist[84] = "にがいきのみ"; itemlist[85] = "はっかのみ"; itemlist[86] = "あかぼんぐり"; itemlist[87] = "ちいさなキノコ"; itemlist[88] = "おおきなキノコ"; itemlist[89] = "ぎんのこな"; itemlist[90] = "あおぼんぐり"; itemlist[92] = "おまもりこばん"; itemlist[93] = "きぼんぐり"; itemlist[94] = "みどぼんぐり"; itemlist[95] = "きよめのおふだ"; itemlist[96] = "しんぴのしずく"; itemlist[97] = "まがったスプーン"; itemlist[98] = "しろぼんぐり"; itemlist[99] = "くろおび"; itemlist[100] = "くろぼんぐり"; itemlist[102] = "ももぼんぐり"; itemlist[103] = "くろいめがね"; itemlist[104] = "おいしいシッポ"; itemlist[105] = "ピンクのリボン"; itemlist[106] = "ながねぎ"; itemlist[107] = "けむりだま"; itemlist[108] = "とけないこおり"; itemlist[109] = "じしゃく"; itemlist[110] = "きせきのみ"; itemlist[111] = "しんじゅ"; itemlist[112] = "おおきなしんじゅ"; itemlist[113] = "かわらずのいし"; itemlist[114] = "のろいのおふだ"; itemlist[115] = "いかりまんじゅう"; itemlist[118] = "きせきのタネ"; itemlist[119] = "ふといホネ"; itemlist[120] = "きあいのハチマキ"; itemlist[122] = "ちからのこな"; itemlist[123] = "ちからねっこ"; itemlist[124] = "ばんのうごな"; itemlist[125] = "ふっかつそう"; itemlist[126] = "かたいいし"; itemlist[127] = "しあわせタマゴ"; itemlist[128] = "カードキー"; itemlist[129] = "きかいのぶひん"; itemlist[131] = "おとしもの"; itemlist[132] = "ほしのすな"; itemlist[133] = "ほしのかけら"; itemlist[134] = "ちかのカギ"; itemlist[135] = "ていきけん"; itemlist[139] = "もくたん"; itemlist[140] = "きのみジュース"; itemlist[141] = "ピントレンズ"; itemlist[144] = "メタルコート"; itemlist[145] = "りゅうのキバ"; itemlist[147] = "たべのこし"; itemlist[151] = "ふしぎなきのみ"; itemlist[152] = "りゅうのウロコ"; itemlist[153] = "はかいのいでんし"; itemlist[157] = "せいなるはい"; itemlist[158] = "ヘビーボール"; itemlist[159] = "はながらメール"; itemlist[160] = "レベルボール"; itemlist[161] = "ルアーボール"; itemlist[162] = "スピードボール"; itemlist[164] = "でんきだま"; itemlist[165] = "フレンドボール"; itemlist[166] = "ムーンボール"; itemlist[167] = "ラブラブボール"; itemlist[168] = "きのはこ"; itemlist[169] = "きりのはこ"; itemlist[170] = "たいようのいし"; itemlist[171] = "みずたまリボン"; itemlist[173] = "アップグレード"; itemlist[174] = "きのみ"; itemlist[175] = "おうごんのみ"; itemlist[176] = "ゼニガメじょうろ"; itemlist[178] = "パークボール"; itemlist[179] = "にじいろのはね"; itemlist[181] = "かわらのかけら"; itemlist[182] = "なみのりメール"; itemlist[183] = "みずいろメール"; itemlist[184] = "にがおえメール"; itemlist[185] = "ラブリーメール"; itemlist[186] = "ブイブイメール"; itemlist[187] = "へんしんメール"; itemlist[188] = "あおぞらメール"; itemlist[189] = "おんぷメール"; itemlist[190] = "まぼろしメール"; itemlist[192] = "わざマシン01"; itemlist[193] = "わざマシン02"; itemlist[194] = "わざマシン03"; itemlist[195] = "わざマシン04"; itemlist[197] = "わざマシン05"; itemlist[198] = "わざマシン06"; itemlist[199] = "わざマシン07"; itemlist[200] = "わざマシン08"; itemlist[201] = "わざマシン09"; itemlist[202] = "わざマシン10"; itemlist[203] = "わざマシン11"; itemlist[204] = "わざマシン12"; itemlist[205] = "わざマシン13"; itemlist[206] = "わざマシン14"; itemlist[207] = "わざマシン15"; itemlist[208] = "わざマシン16"; itemlist[209] = "わざマシン17"; itemlist[210] = "わざマシン18"; itemlist[211] = "わざマシン19"; itemlist[212] = "わざマシン20"; itemlist[213] = "わざマシン21"; itemlist[214] = "わざマシン22"; itemlist[215] = "わざマシン23"; itemlist[216] = "わざマシン24"; itemlist[217] = "わざマシン25"; itemlist[218] = "わざマシン26"; itemlist[219] = "わざマシン27"; itemlist[220] = "わざマシン28"; itemlist[222] = "わざマシン29"; itemlist[223] = "わざマシン30"; itemlist[224] = "わざマシン31"; itemlist[227] = "わざマシン50"; itemlist[228] = "ひでんマシン01"; itemlist[229] = "ひでんマシン02"; itemlist[230] = "ひでんマシン03"; itemlist[231] = "ひでんマシン04"; itemlist[232] = "ひでんマシン05"; itemlist[233] = "ひでんマシン06"; itemlist[234] = "ひでんマシン07"; /* http://la.ma.la/misc/js/roma.js JavaScriptによるローマ字仮名変換ライブラリ ver 2.0 インスパイア http://www.karlson.ru/jstoys/index.php?module=input_ja 改造と高速化 by ma.la 一部改変 by kaki (2009/5/15) */ function roma2reg(text){ var nstr = []; var temp,kana; var hira,kata; var skip = 0; var h = "hiragana"; var k = "katakana"; var latin = /[0-2a-zA-Z.,-]/; for(var pos=0;pos 0) {skip--;continue;} temp = text.charAt(pos); if(!latin.test(temp)){nstr.push([temp]);continue;} var slen = 5; var f = false; while(--slen){ temp = text.slice(pos,pos+slen); if(!roma[h].hasOwnProperty(temp)) continue; f = true; hira = roma[h][temp]; kata = roma[k][temp]; skip = (slen == 2) ? 1 : slen-1; /*「っ」の場合、一文字戻す */ slen == 2 && hira.charAt(0) == roma[h].tt && pos--; var last_m = nstr[nstr.length-1] ? nstr[nstr.length-1][0] : ""; nstr.push( (hira == kata) ? [temp,hira] : /* tta → [tt,っ],[a,た] */ (last_m && roma[h][last_m] == roma[h].tt && last_m.length == 2 && temp.charAt(0) == last_m.charAt(1) ) ? [temp.slice(1),hira,kata] : [temp,hira,kata] ); break; } !f && nstr.push([temp]); } nstr.toString = function(){ var to_esc = {"-" : "\\-" , "." : "\\."}; var reg_esc = "\\[](){}+*?^$|"; var buf = []; for(var i=0; i 1) { for (var i = 1; i < ary.length; i++) { r = commonPrefix(r, ary[i]); if (r == "") break; } if (makeCompleteRegExp(node.value).test(r)) node.value = r; } else if (ary.length == 1) { node.value = ary[0]; } message(ary.length == 0 ? "[No match]" : ary.length == 1 ? "[Sole completion]" : ary.length < pref.completeListingMax ? ary.sort().join("
") : "[" + ary.length.toString() + " possibilities]"); } } complete.sourceTable = { POKE: completeFromPoke, WAZA: completeFromMove, ITEM: completeFromItem }; function autoMessageCandidates(e) { var ary = completeGetCandidates(e.target); if (ary != null) { message(ary.length == 0 ? "[No match]" : ary.length == 1 ? ary[0] : ary.length < pref.completeListingMax ? ary.sort().join("
") : "[" + ary.length.toString() + " possibilityies]"); } } var autoCompleteMode = true; function initializeAutoCompleteMode() { var i; $d.forms[0].onkeyup = onKeyUp; for (i = 48; i <= 50; i++) { keyupmap[i] = autoMessageCandidates; } for (i = 65; i <= 90; i++) { keyupmap[i] = autoMessageCandidates; } keyupmap[109] = autoMessageCandidates; keydownmap[Key.shift + 9] = keydownmap[9] = function (e) { complete(e); return true; }; } function completeAndStrip(e) { var node = e.target; if (node.tagName.toLowerCase() == "input" && node.type == "text") { complete(e); node.onkeyup = function (e) { node.value = node.value.replace(/ /g, ""); node.onkeyup = null; }; } } /*speed*/ var speedList; var speed2pokes; /* spd -> array of pokedata */ var ruleTable = {}; ruleTable[2000] = [3, 6, 9, 12, 15, 18, 20, 22, 24, 25, 26, 28, 31, 34, 36, 38, 40, 45, 47, 49, 51, 53, 55, 57, 59, 62, 65, 68, 71, 73, 76, 78, 80, 82, 83, 85, 87, 89, 91, 93, 94, 97, 99, 101, 103, 105, 106, 107, 108, 110, 112, 113, 114, 115, 119, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 134, 135, 136, 139, 141, 142, 143, 144, 145, 146, 148, 149, 154, 157, 160, 162, 164, 166, 168, 169, 171, 176, 178, 181, 182, 184, 185, 186, 189, 190, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 217, 219, 221, 222, 224, 225, 226, 227, 229, 230, 232, 233, 234, 235, 237, 241, 242, 243, 244, 245, 248]; pref.defaults.rule = 2000; function eachPokeInRule(f) { if (pref.rule) { for (var i = 0; i < ruleTable[pref.rule].length; i++) { f(pokelist[ruleTable[pref.rule][i]]); } } else { for (var i = 1; i < pokelist.length; i++) { f(pokelist[i]); } } } function makeSpeedTableBases() { speedList = []; speed2pokes = {}; eachPokeInRule(function (poke) { var spd = poke.spd; if (speed2pokes[spd]) { speed2pokes[spd].push(poke); } else { speed2pokes[spd] = [poke]; speedList.push(spd); } }); speedList.sort(function (x, y) {return x - y;}); } function calcSpeed(lv, spd, ko, ef) { return Math.floor(((spd + (ko == undefined ? 15 : ko)) * 2 + (ef == undefined ? 63 : ef)) * lv / 100) + 5; } var speedTable; pref.defaults.speedTableBorder = 1; pref.defaults.speedTableDetailed = true; function createSpeedTable() { makeSpeedTableBases(); speedTable = $d.createElement("table"); speedTable.border = pref.speedTableBorder; speedTable.setAttribute("style", "empty-cells: show; float: left"); for (var i = 0; i < speedList.length; i++) { var row = speedTable.insertRow(0); row.className = "speed-table-row" + speedList[i]; var cell0 = row.insertCell(0); cell0.className = "number-cell"; cell0.innerHTML = speedList[i]; for (var lv = 50; lv <= 55; lv++) { var cell = row.insertCell(-1); var speed = calcSpeed(lv, speedList[i]); cell.className = "number-cell speed-table" + speed; cell.innerHTML = speed; } if (pref.speedTableDetailed) { var last_cell = row.insertCell(-1); var ary = speed2pokes[speedList[i]].map(function (x) { return x.name; }); if (ary.length > 10) { last_cell.style.fontSize = "xx-small"; } else if (ary.length > 10) { last_cell.style.fontSize = "x-small"; } else if (ary.length > 8) { last_cell.style.fontSize = "small"; } else { last_cell.style.fontSize = "smaller"; } last_cell.innerHTML = ary.join(","); } } var hrow = speedTable.insertRow(0); hrow.appendChild($d.createElement("th")); for (i = 50; i <= 55; i++) { var th = $d.createElement("th"); th.innerHTML = i; hrow.appendChild(th); } if (pref.speedTableDetailed) { var th = $d.createElement("th"); hrow.appendChild(th); } } function cssInsertRule(sheet, selector, body, index) { return browser.msie ? sheet.addRule(selector, body, index) : sheet.insertRule(selector + "{" + body + "}", index); } function cssDeleteRule(sheet, index) { return browser.msie ? sheet.removeRule(index) : sheet.deleteRule(index); } var speedTableSheet = (function () { var element = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild(element); cssInsertRule(element.sheet, ".number-cell", "text-align: right", 0); return element.sheet; })(); pref.defaults.sameSpeedCellStyle = "color: red"; pref.defaults.sameSpeedRowStyle = "background-color: #ffe4e4"; displaySpeedTable.partial = false; displaySpeedTable.previousNumber = null; function displaySpeedTable(e) { var number = /\d/.exec(e.target.name)[0]; var form = e.target.form; var box = form["POKE" + number]; var poke = pokelist[name_to_i(box.value)]; if (!poke) { throw "種族名が不正です"; } var lv = Number(box.form["LV" + box.name.slice(-1)].value); if (isNaN(lv) || lv < 1) { throw "Lvが不正です"; } var ko = parseInt(get_id(number)[2], 16); var ef = parseInt(form["EF" + number + "_3"].value); var speed = calcSpeed(lv, poke.spd, ko, ef); var speedMax = calcSpeed(55, poke.spd, ko, ef); var speedMin = calcSpeed(50, poke.spd, ko, ef); var rows = speedTable.rows; var partialFlag = previousCommand === displaySpeedTable && displaySpeedTable.partial && displaySpeedTable.previousNumber == number; for (var i = 1; i < rows.length; i++) { var row = rows[i]; var spd = Number(row.cells[0].innerHTML); if (partialFlag || calcSpeed(50, spd) <= speedMax && calcSpeed(55, spd) >= speedMin) { row.style.display = ""; } else { row.style.display = "none"; } } displaySpeedTable.partial = !partialFlag; displaySpeedTable.previousNumber = number; while (speedTableSheet.cssRules[displaySpeedTable.csslen]) { cssDeleteRule(speedTableSheet, displaySpeedTable.csslen); } if (pref.sameSpeedCellStyle) { cssInsertRule(speedTableSheet, ".speed-table" + speed, pref.sameSpeedCellStyle, displaySpeedTable.csslen); } if (pref.sameSpeedRowStyle) { cssInsertRule(speedTableSheet, ".speed-table-row" + poke.spd, pref.sameSpeedRowStyle, displaySpeedTable.csslen); } var mini = $d.getElementById("mini-buffer"); mini.innerHTML = ""; var div = $d.createElement("div"); div.innerHTML = speed; div.setAttribute("style", "float: left; width: 2.5em"); mini.appendChild(div); mini.appendChild(speedTable); } displaySpeedTable.csslen = speedTableSheet.cssRules.length; function nextLine(e) { complete(e); var n = Number(/\d/.exec(e.target.name)[0]); $d.forms[0][RegExp.leftContext + (n + 1) % 6 + RegExp.rightContext].focus(); } function previousLine(e) { complete(e); var n = Number(/\d/.exec(e.target.name)[0]); $d.forms[0][RegExp.leftContext + (n + 5) % 6 + RegExp.rightContext].focus(); } function killLine(e) { var n = getLineNumber(e.target); var f = $d.forms[0]; f["LV" + n].value = ""; f["POKE" + n].value = ""; for (var i = 0; i < 4; i++) { f["WAZA" + n + "_" + i].value = ""; } f["ITEM" + n].value = ""; f["KO" + n].value = "FFFF"; for (i = 0; i < 5; i++) { f["EF" + n + "_" + i].value = "63"; } set_status(); } /*key*/ Key = {}; Key.shift = 256; Key.ctrl = Key.shift << 8; Key.alt = Key.ctrl << 8; function keyNumber(e) { var n = e.charCode || e.keyCode; if (e.shiftKey) n += Key.shift; if (e.ctrlKey) n += Key.ctrl; if (e.altKey) n += Key.alt; return n; } var previousCommand; function runCommand(f, e) { if (f) { try { return f(e) ? true : false; } catch (er) { message(er); } finally { previousCommand = f; } } return true; } function onKeyPress(e) { if (e.charCode && (e.ctrlKey || e.altKey)) { var c = e.charCode; keyupIgnoreMap[17] = true; keyupIgnoreMap[c >= 97 && c <= 122 ? c - 32 : c] = true; } return runCommand(keymap[keyNumber(e)], e); } function onKeyUp(e) { if (keyupIgnoreMap[keyNumber(e)]) { keyupIgnoreMap[keyNumber(e)] = false; return true; } else { return runCommand(keyupmap[keyNumber(e)], e); } } function onKeyDown(e) { return runCommand(keydownmap[keyNumber(e)], e); } function swap_value(a, b) { var temp = a.value; a.value = b.value; b.value = temp; } function swap_poke() { var ary = []; for (var i = 0; i < 6; i++) { if ($d.forms[0]["swap" + i].checked) ary.push(i); } if (ary.length == 2) { var f = $d.forms[0]; var attrs = ["LV", "POKE", "ITEM", "KO"]; for (i = 0; i < attrs.length; i++) { swap_value(f[attrs[i] + ary[0]], f[attrs[i] + ary[1]]); } for (i = 0; i < 4; i++) { swap_value(f["WAZA" + ary[0] + "_" + i], f["WAZA" + ary[1] + "_" + i]); } for (i = 0; i < 5; i++) { swap_value(f["EF" + ary[0] + "_" + i], f["EF" + ary[1] + "_" + i]); } set_status(); for (i = 0; i < 6; i++) { $d.forms[0]["swap" + i].checked = false; } } } function get_no() { return $d.forms[0].CBAN.value-0; } function get_cookie() { var a = $d.cookie.split(";"); for (var i = 0; i < a.length; i++) { if (new RegExp("PD" + (get_no() - 1) + "=(.+)").exec(a[i])) { return RegExp.$1.slice(4).split("_x_"); } } return null; } /*PDの形式からポケモンオブジェクトを生成するコンストラクタ*/ function Poke(pd_str) { var a = pd_str.split("_"); this.no = a[0]; this.lv = a[1]; this.id = [a[2], a[3], a[4], a[5]]; this.ef = [a[6], a[7], a[8], a[9], a[10]]; this.mv = [a[11], a[12], a[13], a[14]]; this.pp = [a[15], a[16], a[17], a[18]]; this.p_up = [a[19], a[20], a[21], a[22]]; this.hp = a[23]; this.item = a[25]; } /* "−" -> "ー" */ function nobashi(str) { return str.replace(/−|-/g, "ー").replace(/10/g, "10"); } function name_to_i(name) { name = nobashi(name); for (var i = 0; i < pokelist.length; i++) { if (pokelist[i] && name == pokelist[i].name) return i; } return -1; } function move_to_i(move) { move = nobashi(move); for (var i = 0; i < movelist.length; i++) { if (movelist[i] && move == movelist[i].name) return i; } return -1; } function item_to_i(item) { item = nobashi(item); for (var i = 0; i < itemlist.length; i++) { if (item == itemlist[i]) return i; } return -1; } function get_poke_num() { return $d.getElementsByTagName('table')[0].rows.length - 1; } function calc_hp(no, lv, hp_id, hp_ef) { return Math.floor(((pokelist[no].hp + hp_id) * 2 + hp_ef) * lv / 100) + lv + 10; } function calc_hp_id(id) { var result = 0; for (var i = 0; i < 4; i++) { result += (Number("0x" + id[i]) % 2) * Math.pow(2, 3 - i); } return result; } function get_id(n) { var ko = $d.forms[0]["KO" + n].value; if (ko.length != 4 || isNaN(Number("0x" + ko))) throw (Number(n) + 1) + "匹目の個体値が不正です."; return ko.split(""); } function set_poke() { var poke_num = get_poke_num(); var f = $d.forms[0]; for (var i = 0; i < poke_num; i++) { var lv = Number(f["LV" + i].value); if (isNaN(lv) || lv < 2 || lv > 100) throw (i + 1) + "匹目のレベルが不正です."; poke[i].lv = lv; var no = name_to_i(f["POKE" + i].value); if (!pokelist[no]) throw (i + 1) + "匹目の種族名が不正です."; poke[i].no = no; for (var j = 0; j < 4; j++) { var mv = move_to_i(f["WAZA" + i + "_" + j].value); if (!movelist[mv]) throw (i + 1) + "匹目の技" + (j + 1) + "が不正です."; poke[i].mv[j] = mv; poke[i].pp[j] = movelist[mv].pp * (5 + Number(poke[i].p_up[j])) / 5; } poke[i].id = get_id(i); for (j = 0; j < 5; j++) { var ef = Number(f["EF" + i + "_" + j].value); if (isNaN(ef) || ef < 0 || ef > 63) throw (i + 1) + "匹目の努力値が不正です."; poke[i].ef[j] = ef; } var item = item_to_i(f["ITEM" + i].value); if (itemlist[item] == undefined) throw (i + 1) + "匹目のアイテム名が不正です."; poke[i].item = item; with(poke[i]) { poke[i].hp = calc_hp(no, lv, calc_hp_id(id), Number(ef[0])); } } } /*pokeの状態からPDに値をセット*/ function set_PD() { var poke_num = get_poke_num(); var ary = new Array(poke_num); for (var i = 0; i < poke_num; i++) { with(poke[i]) { ary[i] = [no, lv, id.join("_"), ef.join("_"), mv.join("_"), pp.join("_"), p_up.join("_"), hp, 0, item].join("_"); } } $d.forms[0].PD.value = ary.join("_x_"); } function change() { try { set_poke(); set_PD(); } catch (e) { message(e); return false; } return true; } function set_hp() { for (var i = 0; i < 6; i++) { var no = name_to_i($d.forms[0]["POKE" + i].value); var hp; if (no >= 0) { var lv = Number($d.forms[0]["LV" + i].value); var ef = Number($d.forms[0]["EF" + i + "_" + 0].value); hp = calc_hp(no, lv, calc_hp_id(get_id(i)), ef); } else { hp = ""; } get_table().rows[i + 1].cells[9].innerHTML = hp; } } function set_sex() { for (var i = 0; i < 6; i++) { var str; try { var female = pokelist[name_to_i($d.forms[0]["POKE" + i].value)].female; if (female < 0) { str = " "; } else if (female > Number("0x" + $d.forms[0]["KO" + i].value.slice(0, 1))) { str = "♀"; } else { str = "♂"; } } catch (e) { str = " "; } get_table().rows[i + 1].cells[3].innerHTML = str; } } function set_status() { try { set_sex(); set_hp(); } catch (e) { message(e); } } function set_c() { var r = change(); $d.forms[0].C.value = "1_x_" + $d.forms[0].PD.value; $d.forms[0].ACTION.value = "RECEPT"; return r; } function setTableStyleNowrap() { var element = document.createElement('style'); element.appendChild(document.createTextNode('')); document.getElementsByTagName('head')[0].appendChild(element); if (browser.msie) { element.sheet.addRule("td", "white-space:nowrap", 0); } else if (!browser.camino) { element.sheet.insertRule("td{white-space:nowrap;}", 0); } } var poke; var keymap = {}; var keyupmap = {}; var keydownmap = {}; var keyupIgnoreMap = {}; function initializeKeymap() { keymap[32] = complete; keymap[Key.ctrl + 108] = complete; keymap[Key.alt + 108] = complete; keymap[Key.ctrl + 110] = nextLine; keymap[Key.alt + 110] = nextLine; keymap[Key.ctrl + 112] = previousLine; keymap[Key.alt + 112] = previousLine; keymap[Key.shift + 75] = killLine; if (browser.safari) { keymap[Key.ctrl + 19] = keymap[Key.alt + 19] = displaySpeedTable; } else { keymap[Key.ctrl + 115] = keymap[Key.alt + 115] = displaySpeedTable; } } pref.defaults.formSizeEconomyMode = true; function initialize() { var a = get_cookie(); poke = new Array(a.length); for (var i = 0; i < a.length; i++) { poke[i] = new Poke(a[i]); } try { stripTableHeader(); pref.formSizeEconomyMode && fixFormSizes(); setTableStyleNowrap(); $d.forms[0].onkeypress = onKeyPress; $d.forms[0].onkeyup = onKeyUp; $d.forms[0].onkeydown = onKeyDown; setInputs(); setButtons(); createEffortColumn(); createHPColumn(); createSexColumn(); createSwapCheckBox(); setOnChange(); set_status(); createMiniBuffer(); createSpeedTable(); initializeKeymap(); autoCompleteMode && initializeAutoCompleteMode(); } catch (e) { alert(e); } } with (pref) { /* beginning of preferences */ /*formSizeEconomyMode = false;*/ /* end of preferences */ } initialize();