calc

star 44

ダメージ計算。攻撃側・防御側・技名を指定し、特性・持ち物・天候込みのダメージ乱数表を出力する。ダメージ計算・ダメ計・何発で落ちる等の質問時に使用。

pkdxtools By pkdxtools schedule Updated 6/11/2026

name: calc description: "ダメージ計算。攻撃側・防御側・技名を指定し、特性・持ち物・天候込みのダメージ乱数表を出力する。ダメージ計算・ダメ計・何発で落ちる等の質問時に使用。" allowed-tools: Bash, Read, AskUserQuestion

Damage Calculator

Lv50ダメージ計算スキル。特性・持ち物・天候・フィールド・テラスタル・急所・ランク補正に対応。16段階の乱数テーブルと確定数を出力する。

参照ドキュメント

特殊計算パターン (おやこあい / ばけのかわ / Psyshock 系 / シェルアームズ / 壁 / 連続技 / 可変威力技 / 急所のランク無視ルール / JSON 出力フィールド) の網羅仕様は references/special_cases.md に分離。pkdx damage の個別フラグの意味に迷ったらまずそちらを参照する。

パス定義

SKILL_DIR=(このSKILL.mdが置かれたディレクトリ)
REPO_ROOT=$SKILL_DIR/../../../..  (.claude/skills/calc/ → repo root)
PKDX=$REPO_ROOT/bin/pkdx

Phase 0: 初期化

0-1: DB存在確認

$PKDX query "ピカチュウ" --format json >/dev/null 2>&1 && echo "OK" || echo "NOT_FOUND"

NOT_FOUNDの場合、以下を案内してスキルを終了:

pkdx CLI または pokedex.db / champions.db が見つかりません。リポジトリルートで以下を実行してください:
  ./setup.sh

Phase 1: 入力取得(ステップ式)

ユーザーの発言から情報を抽出する。既に指定されている項目はスキップし、不足分のみ質問する。

Phase 1-1: ポケモン・技名(AskUserQuestion)

未指定の場合、AskUserQuestionで3問まとめて質問する。 各質問のオプションには「Otherで回答してください」等のガイドラベルを2つ設置し、ユーザーは「Other」で自由入力する。

AskUserQuestion(3問):

# 質問 header オプション multiSelect
1 攻撃ポケモンは? 攻撃側 "Otherで回答してください" (desc: ポケモン名を入力), "Otherで入力" (desc: 日英どちらも対応) false
2 防御ポケモンは? 防御側 "Otherで回答してください" (desc: ポケモン名を入力), "Otherで入力" (desc: 日英どちらも対応) false
3 技は?(日本語名) 技名 "Otherで回答してください" (desc: 技名を入力), "Otherで入力" (desc: 日本語名で入力) false

テンプレートのポケモン名や技名をオプションに含めてはならない。

Phase 1-2: 修飾子選択(AskUserQuestion一括)

ポケモン名確定後、$PKDX query のJSON出力から特性一覧を取得:

$PKDX query "<ポケモン名>" --version "<version>" --format json
# → ability1, ability2, dream_ability フィールドを参照

フォーム違いポケモンの扱い

フォーム違いはタイプ・種族値・特性が全て変わるのでダメージ計算結果が大きく異なる (例: ウォッシュロトム=でんき/みず/特攻105、ヒートロトム=でんき/ほのお、キュウコン(アローラ)=こおり/フェアリー/ゆきがくれ・ゆきふらし)。原種のデータで代用すると火力・耐久・タイプ一致・半減/無効判定が根本から狂うため、フォームは確実に解決してから Phase 2 以降へ進む。

手順:

  1. ユーザー入力名をそのまま pkdx query "<名前>" --version "<version>" --format json に渡す。以下は直接引ける:
    • 原種名に form 名を接頭/接尾した一意名: ウォッシュロトム / ヒートロトム / メガガブリアス / メガリザードンX
    • 合成された一意名: キュウコン(アローラ) / ランドロス(れいじゅう) / ガーディ(ヒスイ) / バクフーン(ヒスイ)
    • 英語名: Wash Rotom / Ninetales (Alolan)
  2. 見つからない場合 (Error: Pokemon not found) は原種名で再 query し、返り値の forms[] を確認:
    • forms[] はその version に実在するフォームの一意名配列。原種引き時のみ列挙され、フォーム直引き時や形態無しの場合は JSON キーごと省略 される
    • 例: pkdx query ロトム --version champions"forms":["ヒートロトム","ウォッシュロトム","フロストロトム","スピンロトム","カットロトム"]
    • 例: pkdx query キュウコン --version scarlet_violet"forms":["キュウコン(アローラ)"]
  3. ユーザー意図に合う一意名を選び、その名前で再度 query して該当フォームの type1 / type2 / ability1 / ability2 / dream_ability / 種族値を取得
  4. 取得したフォーム別の name / abilities / types / stats を pkdx damage--attacker / --defender および --atk-ability / --def-ability に渡す

注意点:

  • 戦闘面で base と完全に同じフォーム (トリミアン毛型・ビビヨン模様・フラベベ花色・Unown 文字・マホイップ flavor 等) は forms[] に現れない。これらは原種として扱って問題ない (例: 「ハーフトリム」指定は原種 トリミアン で計算)
  • 該当 version にそのフォームが実在しない場合は forms[] からも除外される (例: Champions にはランドロス(れいじゅう)未収録) — ユーザーにその旨を伝えて別 version を提案する
  • メガシンカも form の一種として forms[] に含まれる (メガガブリアス 等)。メガ名で query するとメガ進化後の type/ability/stats が得られる
  • 性別でステータス・タイプ・特性が異なる種 (イダイトウ / イエッサン / パフュートン / ニャオニクス) は性別を明示する: jpn イダイトウ(オス) / イダイトウ(メス)、eng Basculegion (Male) / Basculegion (Female)。性別未指定の イダイトウ は M base のステータスを返すため、F 個体を計算する際は必ず (メス) 付きで照合する (例: イダイトウ♂ atk 112 / spa 80、♀ atk 92 / spa 100 とダメージ計算結果が大きく変わる)。ユーザー入力が イダイトウ♂ / イダイトウ♀ (ゲーム内表記) で来た場合は ♂ → (オス) / ♀ → (メス) に正規化してから query する

AskUserQuestion 1(4問、左右キー選択):

# 質問 header オプション
1 攻撃側特性は? 攻撃特性 なし(default), {ability1}, {ability2}, {dream_ability}
2 防御側特性は? 防御特性 なし(default), {ability1}, {ability2}, {dream_ability}
3 攻撃側持ち物は? 攻撃持物 なし(default), こだわりハチマキ/メガネ, いのちのたま
4 防御側持ち物は? 防御持物 なし(default), しんかのきせき, とつげきチョッキ

特性オプションはDBから取得した実際の特性を表示する。空の特性は除外。

AskUserQuestion 2(4問 + 条件付き1問):

# 質問 header オプション
1 攻撃側の性格は? 攻撃性格 特化(default=+10%相当), Other(性格名 例:ようき/いじっぱり/まじめ)
2 防御側の性格は? 防御性格 無補正(default), Other(例:ずぶとい/しんちょう)
3 攻撃側の実数値は? 攻撃数値 デフォルト(SP=32 最大投資+性格で自動計算), Other(数値入力)
4 防御側の実数値は? 防御数値 デフォルト(SP=0 無投資+性格で自動計算), Other(数値入力)
5 天候は? 天候 なし(default), はれ, あめ, すなあらし

CLI のデフォルト実数値は 攻防非対称 (攻撃側 SP=32/EV=252 + 性格 1.1、防御側 SP=0/EV=0 無補正)。「指定なし = 無投資」では ない ので、ユーザーの個体がデフォルトと異なる場合は必ず実数値を逆算して --atk-stat / --def-stat / --def-hp で渡す。詳細は references/special_cases.md Section 0。

攻撃側特性が そうだいしょう または技が おはかまいり の場合、追加で以下を質問する:

# 質問 header オプション
6 味方のひんし数は? ひんし数 1, 2(default), 3, 4, 5

AskUserQuestion 3(2問、ランク補正):

# 質問 header オプション
1 攻撃側のランクは? 攻撃ランク 0(default), +1, +2, +4, -1, Other
2 防御側のランクは? 防御ランク 0(default), +1, +2, -1, -2, Other

ボディプレスが技として選択されている場合は、攻撃ランクの質問に「※ボディプレスでは攻撃ランク=Bランクを入力」と注記を追加する。

重要: --atk-stat / --def-stat を override 指定していても、ランク補正・特性・道具・天候などの後段補正はすべて適用される。override は「rank 前の実数値」として扱われる。


Phase 2: 計算実行

$PKDX damage "<攻撃側名>" "<防御側名>" "<技名>" \
  [--version <ver>] \                    # champions を指定可能
  [--regulation <reg>] \                # M-B 等(champions 時のみ有効)
  [--atk-ability <name>] [--def-ability <name>] \
  [--atk-item <name>] [--def-item <name>] \
  [--weather <type>] [--field <type>] \
  [--tera-type <type>] [--critical] \
  [--atk-nature <name>] [--def-nature <name>] \
  [--atk-stat <value>] [--def-stat <value>] [--def-hp <value>] \
  [--atk-rank <n>] [--def-rank <n>] \
  [--fainted-count <n>] \
  [--wall <kind>] [--pierce-screen] \
  [--atk-status <name>] [--def-status <name>] \
  [--atk-rank-up-count <n>] [--def-rank-up-count <n>] \
  [--atk-hp <ratio>] [--def-item-removable] \
  [--multi-hit <mode>] [--disguise-active] \
  [--protean-consumed] \
  --format json

「なし」が選択された修飾子はオプションを省略する。

rev2 オプションの意味

フラグ 意味 受け入れる値 (ja / en 両対応) 用途
--wall <kind> 防御側の壁 reflect / リフレクター, light-screen / ひかりのかべ, aurora-veil / オーロラベール 壁込みダメ計 (0.5x / ダブルは 0.667x)
--pierce-screen 壁貫通 move bool flag かわらわり / サイコファング等
--atk-status <name> 攻撃側状態異常 burn / やけど, paralyze / まひ, poison / どく, badpoison / もうどく, sleep / ねむり からげんき威力 2x 判定用 (まひ/やけど/どく/もうどく で発動)
--def-status <name> 防御側状態異常 同上 たたりめ威力 2x 判定用
--atk-rank-up-count <n> 攻撃側ランクアップ累積段数 0..6 アシストパワー威力 = 20 + 20×n
--def-rank-up-count <n> 防御側ランクアップ累積段数 0..6 つけあがる威力 = 20 + 20×n
--atk-hp <ratio> 攻撃側残 HP 比率 1/2, 50%, 1/3, 33% ... やけっぱち (HP ≤ 1/2 で威力 2x)
--def-item-removable 防御側が奪える持ち物を持つ bool flag はたきおとす威力 = 65 × 1.5 = 97
--multi-hit <mode> 連続技の回数固定 auto (既定, DB 参照), 1..5 (固定) 連続技の検証・Skill Link 再現
--disguise-active ばけのかわが剥がれる前 bool flag 通常ダメージに 1/8 HP chip を加算した damages[] を返す (disguise_blocked=true, disguise_chip=def_hp/8)。「ばけのかわ消費 + 実ダメージ」を 1 つの数で扱う
--protean-consumed へんげんじざい/リベロが既に発動済み bool flag 既定はその交代出しで初発動と見なし技タイプに STAB を付与。本フラグ指定時は発動済み(2手目以降)として Protean/Libero 由来 STAB を付与しない。変化後タイプと一致する技は攻撃側タイプにその実タイプを渡して通常 STAB で計算する。詳細は references/special_cases.md 参照

典型的な使用例

# ミミッキュ (ばけのかわ) の初撃検証
$PKDX damage "ガブリアス" "ミミッキュ" "じしん" --disguise-active --format json

# リフレクター下のガブリアス → カイリュー (物理)
$PKDX damage "ガブリアス" "カイリュー" "じしん" --wall reflect --format json

# アシストパワー (攻撃側が +2 を 2 stat = 計 4 段上がった状態)
$PKDX damage "ミュウツー" "ハピナス" "アシストパワー" --atk-rank-up-count 4 --format json

# やけっぱち (HP 半分以下で威力 2x)
$PKDX damage "パチリス" "ガブリアス" "やけっぱち" --atk-hp 1/2 --format json

# からげんき (攻撃側が状態異常で威力 2x)
$PKDX damage "カビゴン" "ハピナス" "からげんき" --atk-status burn --format json

# たたりめ (相手状態異常時 2x)
$PKDX damage "ゲンガー" "トゲキッス" "たたりめ" --def-status paralyze --format json

# はたきおとす (持ち物剥がせる相手に 1.5x)
$PKDX damage "サザンドラ" "ハピナス" "はたきおとす" --def-item-removable --format json

# Skill Link でロックブラスト 5 回固定
$PKDX damage "ドリュウズ" "ナットレイ" "ロックブラスト" \
  --atk-ability スキルリンク --multi-hit 5 --format json

計算条件(デフォルト)

  • レベル: 50
  • 攻撃側: 該当攻撃ステータス最大投資 + 性格補正↑(物理技→A特化、特殊技→C特化)
  • 防御側: HP最大投資 + 該当防御ステータス最大投資 + 性格補正なし
  • 投資量: Champions(デフォルト)ではSP=32が最大投資。deprecated バージョンではEV=252/IV=31
  • Champions ではIVは存在しない(SP に統合済み)
  • 性格指定: --atk-nature / --def-nature で性格の日本語名を渡す(例: いじっぱり, ずぶとい)。未指定時は上記デフォルト
  • カスタム数値指定: --atk-stat, --def-stat, --def-hp で実数値を直接指定可能。これは「rank 前の実数値」として扱われ、rank/特性/道具/天候などの後段補正はすべて適用される
    • 用途1 (ボディプレス): 攻撃側の Def 実数値を --atk-stat に渡す
    • 用途2 (イカサマ): 相手の ATK 実数値を --atk-stat に渡す
    • 用途3: SP≠32 / 特殊な努力値配分などを実数値で直接投入
  • ランク補正: --atk-rank, --def-rank で -6〜+6 の段階を指定(0 = 補正なし)

pkdx 出力形式(JSON)

{
  "attacker": "攻撃側名",
  "defender": "防御側名",
  "move": "技名",
  "damages": [d1, d2, ..., d16],
  "percents": [p1, p2, ..., p16],
  "min": min_damage,
  "max": max_damage,
  "defender_hp": hp,
  "hits_dealt": n,
  "ko": "確定数テキスト",
  "disguise_blocked": false,   // true なら damages に ばけのかわ chip が加算済み
  "disguise_chip": 0,          // ばけのかわ消費時の固定 1/8 HP chip。0 なら未加算
  "variants": [...],
  "input": {
    "attacker": {
      "name": "...",
      "types": ["type1", "type2"],
      "base_stats": {"hp": n, "atk": n, "def": n, "spa": n, "spd": n, "spe": n},
      "ability": "",          // 空文字 = 指定なし
      "item": "",
      "nature": "",           // 空文字 = 攻撃ステ特化相当 (+10%) を自動適用
      "rank": 0,
      "stat_override": 0,     // 0 = 未指定 (engine がデフォルトの実数値を計算)
      "status": "none",       // none / paralyze / burn / poison / badpoison / sleep / drowsy
      "rank_up_count": 0,
      "hp_num": 2, "hp_den": 2  // 攻撃側 HP 比 (やけっぱち用)、満タン = 2/2
    },
    "defender": {
      "name": "...",
      "types": [...],
      "base_stats": {...},
      "ability": "", "item": "", "nature": "",  // 防御側 nature 空文字 = 無補正
      "rank": 0,
      "stat_override": 0,
      "hp_override": 0,
      "status": "none",
      "rank_up_count": 0,
      "item_removable": false
    },
    "move": {"name": "...", "type": "...", "category": "物理|特殊|変化", "power": n, "accuracy": n},
    "tera_type": "",          // 空文字 = テラスタルなし
    "weather": "none",        // none / はれ / あめ / すなあらし / ゆき
    "field": "none",          // none / エレキ / グラス / サイコ / ミスト
    "critical": false,
    "wall": "none",           // none / reflect / light-screen / aurora-veil
    "screen_pierce": false,
    "fainted_count": 2,
    "is_double": false,
    "stat_system": "champions",  // champions / standard
    "multi_hit_mode": "auto",    // auto / fixed:N / expected
    "disguise_active": false
  }
}

重要: input フィールドは pkdx がダメ計に実際に使用した条件を echo back する。Phase 3 のテーブル整形では 必ず input.* の値を引用し、ユーザーへの問い合わせや AskUserQuestion で得た値を再現してはならない (typo や型違いで乖離する場合がある)。

input.* の意味:

  • 文字列フィールドの空文字 ("") は「未指定」を意味する。攻撃側 nature: "" は engine が「攻撃ステ特化相当 +10%」を自動適用、防御側 nature: "" は「無補正」。
  • stat_override/hp_override0 は「未指定 (engine が SP/EV/性格からデフォルト実数値を計算)」。非 0 ならユーザーが渡した rank 前の実数値そのもの。
  • weather/field"none" か canonical な JP 名 (はれ/あめ/...)。
  • status は canonical な英語短縮形 (burn/paralyze/...). counter 値 (BadPoison(n)/Sleep(n)/Drowsy(n)) は表現せず、種別のみ返す。
  • multi_hit_mode"auto" (DB 参照), "fixed:N" (1..5), "expected" (payoff 専用、damage CLI では発生しない)。

Phase 3: 結果出力

スクリプト出力を以下のMarkdownテーブルに整形して提示する。

フィードバック前提: 条件テーブルの値は すべて input.* フィールドから引くdamages/percents/ko だけを読んで「攻撃側は〇〇特化のはず」「天候ははれだったはず」と推論で補完してはならない (LLM が前提を取り違える典型箇所)。

タイプ相性の出力規律 (CRITICAL — 違反は Stop hook type-claim-guard がブロックする):

  • 「タイプ相性」欄の倍率は 必ず pkdx type-chart <技タイプ> <防御タイプ(,区切り)> を実行し、その出力倍率をそのまま転記する。技タイプは input.move.type、防御タイプは input.defender.types を使う。記憶や暗算で倍率を書いてはならない。

  • type-chart の出力倍率は最終集合 (例: ほのお→はがね/ひこう は 2x)。個別タイプの倍率を散文で分解して語ってはならない (「鋼に4倍だが飛行が等倍で複合2倍」のような説明は捏造の温床。type-chart は既に複合済みの値を返す)。

  • 出力は 下記テンプレートのテーブルと確定数のみ。テーブル外に相性評価・有利不利・推奨・「抜群です」等の散文を 書かない (CLAUDE.md「事実のみ返す」「タイプ相性は最も間違える箇所」)。ユーザーが解釈を明示的に求めた場合のみ、type-chart の実出力倍率に限って答える。

  • 攻撃側名・タイプは input.attacker.name / input.attacker.types

  • 攻撃側 特性 / 持ち物 / 性格 / ランクは input.attacker.ability / .item / .nature / .rank

  • 防御側も同様に input.defender.* から引く

  • 技名・タイプ・分類・威力は input.move.*

  • 天候 / フィールド / テラスタル / 急所 / 壁は input.weather / .field / .tera_type / .critical / .wall

  • 連続技回数は input.multi_hit_mode ("fixed:N" なら N 回固定、"auto" なら DB 解決) と hits_dealt を併記

空文字 ("") や "none" の項目は条件テーブル行ごと省略してよい。

## ダメージ計算結果

**{攻撃側名}** → **{防御側名}** / {技名}

### 条件
| 項目 | 値 |
|------|-----|
| 攻撃側 | {name} ({types}) |
| 攻撃特性 | {ability or なし} |
| 攻撃持ち物 | {item or なし} |
| 攻撃実数値 | {stat_name} {actual} ({detail}) |
| 攻撃ランク | {+n or -n} |
| 防御側 | {name} ({types}) |
| 防御特性 | {ability or なし} |
| 防御持ち物 | {item or なし} |
| HP実数値 | {hp_actual} ({detail}) |
| 防御実数値 | {stat_name} {actual} ({detail}) |
| 防御ランク | {+n or -n} |
| 天候 | {weather or なし} |
| 技 | {move_name} ({type}/{category}, 威力{power}) |
| タイプ一致 | {あり/なし} ({mult}x) |
| タイプ相性 | {eff}x |

### ダメージ乱数表
| | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
|---|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|-----|
| ダメージ | {d} | {d} | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | {d} |
| 割合 | {%} | {%} | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | {%} |

### 確定数
**{min_dmg} ~ {max_dmg} ({min_pct}% ~ {max_pct}%)**
→ {確定1発 / 乱数1発(X/16) / 確定2発 / ... / 5発以上}

修飾子がない項目は条件テーブルから省略してよい。

無効化系の表示ルール

ダメージが 0 になるケースでは 16 段階乱数表を省略し、確定数行を 無効化の理由 に置き換える。条件テーブルの「タイプ相性」欄には実効倍率を記す。

  • タイプ相性 / 特性で無効 (ko: "immune" 相当): Immune (0 damage) 平文のため JSON フィールドが取れないことに留意。乱数表行は「ダメージは発生しない(タイプ相性または特性により無効)」と一行で済ませ、確定数欄は 「無効(ダメージ0)」 とする
  • ばけのかわ加算 (disguise_blocked: true): damages[] には 1/8 HP chip が 既に加算済み。条件テーブル下に「ばけのかわ chip: disguise_chip HP (各乱数値に加算済み)」の一行を添えて、ユーザーが「実ダメージ + 消費 chip の合算値」と認識できるようにする。乱数表・確定数はそのまま通常通り表示する

Phase 4: 追加計算(オプション)

AskUserQuestionで追加計算を提案:

# 質問 header オプション
1 続けて計算しますか? 追加計算 別の技で計算, 別の相手で計算, 攻防入替, 構築ブログに貼り付け, 終了

選択に応じてPhase 1に戻る(既知の情報は保持)。終了を選んだ場合はスキルを終了。

Phase 4-1: 構築ブログに貼り付け (--attach-team)

ユーザーが「構築ブログに貼り付け」を選んだ場合、計算結果を box/teams/<slug>.meta.jsondamage_calcs[] に追記する。GitHub Pages (Astro) 側が読み取って構築記事ページに 16 段階の乱数テーブルとしてレンダリングする。

  1. box/teams/ 配下の *.meta.jsonls box/teams/*.meta.json で列挙し、AskUserQuestion でユーザーに選んでもらう
  2. 見出し (--attach-title) と任意コメント (--attach-note) を尋ねる
  3. 直前の $PKDX damage 呼び出しに --attach-team <path> --attach-title "<title>" --attach-note "<note>" を足して再実行する (計算結果は stdout にそのまま出るので表示ブロックはそのまま作れる)
$PKDX damage "<攻撃側名>" "<防御側名>" "<技名>" \
  --attach-team "box/teams/<slug>.meta.json" \
  --attach-title "vs <防御側名> (<一口メモ>)" \
  --attach-note "<任意コメント>" \
  <その他の修飾子オプション>

成功時は stderr に Attached damage calc to <path> と出るのでユーザーに通知する。同じ計算を複数回 attach すると単純に重複追加される — 誤登録に気付いた場合は .meta.jsondamage_calcs[] を手動で編集する必要があることを案内する。

ブログに表示される粒度:

  • 見出し (--attach-title) / 攻撃側・防御側のポケモン名・特性・持ち物・性格・ランク・テラスタイプ
  • 技名・タイプ・分類・威力
  • 天候・フィールド・急所有無
  • 16 段階の乱数割合 (%) / 確定数 (確定N発 のみ guaranteed_hits を付与 — 乱数系は rolls_percent から FE 側で再計算)
  • 任意コメント (--attach-note)

未記入フィールド (特性なし、性格なし等) は FE 側で非表示になる。


エラーハンドリング

pkdx が Error: で始まる出力を返した場合、またはJSON出力の ko"immune" の場合、以下に従って対処する。

状況 対応
pkdx / DB が見つからない セットアップ手順を案内しスキル終了
ポケモンが見つからない 名前の再入力を依頼。リージョンフォームの可能性を案内
技が見つからない 「技が見つかりません。日本語名で入力してください」→ 再入力を依頼
Immune (0 damage) 平文 / または JSON "ko": "immune" 「タイプ相性または特性により無効(ダメージ0)です」と案内(immune 時は --format json 指定でも平文を返すので、JSON parse 前に "Immune" prefix を判定する

対応している修飾子

攻撃側特性

ちからもち, ヨガパワー, はりきり, サンパワー, テクニシャン, てつのこぶし, がんじょうあご, メガランチャー, すてみ, すなのちから, すいほう, もらいび, てきおうりょく, フェアリースキン, スカイスキン, フリーズスキン, エレキスキン, こだいかっせい, クォークチャージ, トランジスタ, りゅうのあぎと, はがねのせいしん, ちからずく, アナライズ, いろめがね, そうだいしょう, かたいツメ, きれあじ, ひひいろのこどう, ハドロンエンジン, へんげんじざい, リベロ

防御側特性

ちょすい, よびみず, もらいび, ひらいしん, でんきエンジン, ふゆう, そうしょく, かんそうはだ, ファーコート, マルチスケイル, フィルター, ハードロック, こおりのりんぷん, あついしぼう, たいねつ, もふもふ, すいほう

攻撃側持ち物

こだわりハチマキ, こだわりメガネ, いのちのたま, たつじんのおび, ちからのハチマキ, ものしりメガネ, ふといホネ, でんきだま, 各タイプ強化アイテム(プレート・おこう系)

防御側持ち物

しんかのきせき, とつげきチョッキ, 各半減きのみ(オッカ・ヤチェ等全18種)

天候・フィールド

はれ, あめ, すなあらし, ゆき, エレキフィールド, グラスフィールド, サイコフィールド, ミストフィールド

その他

テラスタル(--tera-type), 急所(--critical), ランク補正(--atk-rank, --def-rank、-6〜+6、第3世代以降仕様。急所時は攻撃側の負ランク・防御側の正ランクを無視。--atk-stat/--def-stat の override は「rank 前の実数値」として扱われ、rank は常に乗る), 性格(--atk-nature, --def-nature, ja名), ひんし数(--fainted-count、0-5、そうだいしょう用)

rev2 で追加された威力可変技 / 壁 / 連続技 / 状態

  • 威力可変技: ウェザーボール (天候自動判定), つけあがる (--def-rank-up-count), アシストパワー (--atk-rank-up-count), やけっぱち (--atk-hp), はたきおとす (--def-item-removable), たたりめ (--def-status), からげんき (--atk-status)
  • カテゴリ / ランク override: サイコショック / サイコブレイク / しんぴのつるぎ (自動), シェルアームズ (自動), せいなるつるぎ (自動)
  • 特性: てんねん (atk/def_ability で自動), ばけのかわ (--disguise-active), おやこあい (atk_ability で自動, hits_dealt=2)
  • 壁: リフレクター / ひかりのかべ / オーロラベール (--wall), 貫通技 (--pierce-screen)
  • 連続技: 2 回固定 (ダブルチョップ等), 3 回固定 (トリプルキック等), 2-5 乱数 (--multi-hit auto は中央値 3, Skill Link で 5 固定), 任意固定 (--multi-hit 1..5)
Install via CLI
npx skills add https://github.com/pkdxtools/pkdx --skill calc
Repository Details
star Stars 44
call_split Forks 106
navigation Branch main
article Path SKILL.md
More from Creator