jpskill.com
🛠️ 開発・MCP コミュニティ

combat-system-creator

Create and modify combat system components for SHINOBI WAY game following the dual-system architecture (CombatCalculationSystem + CombatWorkflowSystem). Use when user wants to add new combat mechanics, damage formulas, status effects, mitigation logic, turn phases, or refactor existing combat code. Guides through proper separation of pure calculations vs state management.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o combat-system-creator.zip https://jpskill.com/download/17756.zip && unzip -o combat-system-creator.zip && rm combat-system-creator.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17756.zip -OutFile "$d\combat-system-creator.zip"; Expand-Archive "$d\combat-system-creator.zip" -DestinationPath $d -Force; ri "$d\combat-system-creator.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して combat-system-creator.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → combat-system-creator フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
3

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Combat System Creator - SHINOBI WAY

デュアルシステムアーキテクチャ に従い、戦闘システムコンポーネントを作成します。純粋な計算は状態のワークフローから分離されます。

アーキテクチャの原則

Player Action → CombatCalculationSystem (純粋な数学) → CombatWorkflowSystem (状態に適用)

CombatCalculationSystem: 純粋関数、ミューテーションなし、完全な結果を返します CombatWorkflowSystem: 状態管理、計算された結果を適用、フローを制御

使用する場面

  • 新しいダメージ計算や数式を追加する
  • 新しい状態異常や軽減メカニズムを作成する
  • 新しい戦闘フェーズやターンロジックを追加する
  • 既存の戦闘コードをリファクタリングする
  • 戦闘のバランス調整や数値の変更を行う

クイックリファレンス

ダメージパイプライン (5ステップ)

1. Hit Check    → MELEE: Speed vs Speed | RANGED: Accuracy vs Speed | AUTO: 常に命中
2. Base Damage  → ScalingStat × damageMult
3. Element      → Super: 1.5× (+10% crit) | Resist: 0.5× | Neutral: 1.0×
4. Critical     → 8% + (DEX × 0.5) + ボーナス, 最大 75%, 倍率 1.75×
5. Defense      → Flat (最大 60% 軽減) その後 % (ソフトキャップ 75%)

軽減パイプライン (優先順位)

1. INVULNERABILITY → すべてのダメージをブロック (0 を返す)
2. REFLECTION      → 反射ダメージを計算 (呪いより前)
3. CURSE           → 増幅: damage × (1 + curseValue)
4. SHIELD          → HP の前にダメージを吸収
5. GUTS            → ロールが成功した場合、HP 1 で生き残る

防御の計算式

タイプ Flat Percent (ソフトキャップ)
Physical STR × 0.3 STR / (STR + 200)
Elemental SPI × 0.3 SPI / (SPI + 200)
Mental CAL × 0.25 CAL / (CAL + 150)

ダメージプロパティ

Property Flat Def % Def
NORMAL ✅ (最大 60%)
PIERCING
ARMOR_BREAK
TRUE

ワークフロー: 新しいメカニズムの追加

ステップ 1: システムの特定

質問: これは純粋な数学ですか、それとも状態管理ですか?

CombatCalculationSystem CombatWorkflowSystem
ダメージ計算式 HP へのダメージ適用
命中/ミス/回避ロール ターン順管理
クリティカル計算 バフの持続時間追跡
防御力減少 フェーズ遷移
効果発生ロール 戦闘ログ生成

ステップ 2: 計算インターフェースの設計

新しい計算のために、結果のインターフェースを定義します。

interface NewMechanicResult {
  // このメカニズムを適用するために必要なすべての値
  value: number;
  triggered: boolean;
  // ログ用のメタデータ
  logs: CombatLogEntry[];
}

ステップ 3: 純粋関数の実装

// CombatCalculationSystem 内
function calculateNewMechanic(
  attackerStats: DerivedStats,
  defenderStats: DerivedStats,
  context: CombatContext
): NewMechanicResult {
  // 純粋な計算 - 状態のミューテーションなし
  return { value, triggered, logs };
}

ステップ 4: ワークフローアプリケーションの実装

// CombatWorkflowSystem 内
function applyNewMechanic(
  state: CombatWorkflowState,
  result: NewMechanicResult
): CombatWorkflowState {
  // 結果を状態に適用 - 新しい状態を返す
  return { ...state, /* 更新された値 */ };
}

新しい状態異常の作成

利用可能な効果タイプ

// Damage Over Time
DOT, BLEED, BURN, POISON

// Crowd Control
STUN, CONFUSION, SILENCE

// Defensive
SHIELD, INVULNERABILITY, REFLECTION

// Stat Modifiers
BUFF, DEBUFF, CURSE

// Recovery
HEAL, REGEN, CHAKRA_DRAIN

効果インターフェース

interface SkillEffect {
  type: EffectType;
  value: number;           // ダメージ/回復量または倍率
  duration: number;        // ターン数 (-1 = 永続)
  chance: number;          // 0.0-1.0 適用確率
  targetStat?: PrimaryStat; // BUFF/DEBUFF 用
  damageType?: DamageType;  // DoTs 用
  damageProperty?: DamageProperty;
}

DoT ダメージ計算式

// DoTs は 50% の防御軽減を受ける
dotDamage = max(1, baseDamage - (flatDef × 0.5) - (damage × percentDef × 0.5))

新しい戦闘フェーズの作成

既存のターンフェーズ

プレイヤーターン:

  1. TURN_START → フラグのリセット
  2. UPKEEP → コストの切り替え、パッシブな回復
  3. MAIN_ACTION → スキル実行
  4. DEATH_CHECK → 勝利/敗北
  5. TURN_END → ターンの完了をマーク

敵ターン:

  1. DOT_ENEMY → 敵の DoTs を処理
  2. DOT_PLAYER → プレイヤーの DoTs を処理 (シールド経由)
  3. DEATH_CHECK_DOT → DoT によるキルを確認
  4. ENEMY_ACTION → AI スキル選択 + 実行
  5. DEATH_CHECK_ATTACK → 戦闘によるキルを確認
  6. RESOURCE_RECOVERY → クールダウン、チャクラ回復
  7. TERRAIN_HAZARDS → 環境ダメージ
  8. FINAL_DEATH_CHECK → ハザードによるキル

新しいフェーズの追加

// 1. CombatPhase 列挙型に追加
enum CombatPhase {
  // ... 既存の
  NEW_PHASE,
}

// 2. 計算関数を作成
function calculateNewPhaseEffects(state: CombatWorkflowState): NewPhaseResult;

// 3. ワークフローハンドラーを作成
function processNewPhase(state: CombatWorkflowState): CombatWorkflowState;

// 4. processEnemyTurn または executePlayerAction のターンフローに挿入

出力テンプレート

新しい計算関数

/**
 * [これが何を計算するかの説明]
 * @param attackerStats - 攻撃者の導出されたステータス
 * @param defenderStats - 防御者の導出されたステータス
 * @param skill - 使用されているスキル
 * @returns すべての計算の詳細を含む [ResultType]
 */
export function calculateX(
  attackerStats: DerivedStats,
  defenderStats: DerivedStats,
  skill: Skill
): XResult {
  const result: XResult = {
    // 結果オブジェクトの初期化
  };

  // ここに純粋な計算
  // 状態のミューテーションなし
  // ロールには Math.random() を使用

  return result;
}

新しいワークフロー関数


/**
 * [これがどのような状態変化を適用するかの説明]
 * @param state - 現在の戦闘状態
 * @param result - 適用する計算結果
 * @returns 変更が適用された新しい戦闘状態
 */
export function applyX(
  state: CombatWorkflowState,
  result: XResult
): CombatWorkflowState {
  // 新しい状態オブジェクトを作成 (イミュータブル)
  const newState = { .
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Combat System Creator - SHINOBI WAY

Create combat system components following the dual-system architecture: pure calculations separated from state workflow.

Architecture Principle

Player Action → CombatCalculationSystem (pure math) → CombatWorkflowSystem (apply to state)

CombatCalculationSystem: Pure functions, no mutations, returns complete results CombatWorkflowSystem: State management, applies calculated results, controls flow

When to Use

  • Add new damage calculations or formulas
  • Create new status effects or mitigation mechanics
  • Add new combat phases or turn logic
  • Refactor existing combat code
  • Balance or modify combat math

Quick Reference

Damage Pipeline (5 Steps)

1. Hit Check    → MELEE: Speed vs Speed | RANGED: Accuracy vs Speed | AUTO: Always hits
2. Base Damage  → ScalingStat × damageMult
3. Element      → Super: 1.5× (+10% crit) | Resist: 0.5× | Neutral: 1.0×
4. Critical     → 8% + (DEX × 0.5) + bonuses, max 75%, multiplier 1.75×
5. Defense      → Flat (max 60% reduction) then % (soft cap 75%)

Mitigation Pipeline (Priority Order)

1. INVULNERABILITY → Blocks ALL damage (return 0)
2. REFLECTION      → Calculate reflected damage (before curse)
3. CURSE           → Amplify: damage × (1 + curseValue)
4. SHIELD          → Absorb damage before HP
5. GUTS            → Survive at 1 HP if roll succeeds

Defense Formulas

Type Flat Percent (Soft Cap)
Physical STR × 0.3 STR / (STR + 200)
Elemental SPI × 0.3 SPI / (SPI + 200)
Mental CAL × 0.25 CAL / (CAL + 150)

Damage Properties

Property Flat Def % Def
NORMAL ✅ (max 60%)
PIERCING
ARMOR_BREAK
TRUE

Workflow: Adding New Mechanics

Step 1: Identify System

Ask: Is this pure math or state management?

CombatCalculationSystem CombatWorkflowSystem
Damage formulas Applying damage to HP
Hit/miss/evasion rolls Turn order management
Crit calculations Buff duration tracking
Defense reduction Phase transitions
Effect chance rolls Combat log generation

Step 2: Design the Calculation Interface

For new calculations, define the result interface:

interface NewMechanicResult {
  // All values needed to apply this mechanic
  value: number;
  triggered: boolean;
  // Metadata for logging
  logs: CombatLogEntry[];
}

Step 3: Implement Pure Function

// In CombatCalculationSystem
function calculateNewMechanic(
  attackerStats: DerivedStats,
  defenderStats: DerivedStats,
  context: CombatContext
): NewMechanicResult {
  // Pure calculation - NO state mutation
  return { value, triggered, logs };
}

Step 4: Implement Workflow Application

// In CombatWorkflowSystem
function applyNewMechanic(
  state: CombatWorkflowState,
  result: NewMechanicResult
): CombatWorkflowState {
  // Apply result to state - returns NEW state
  return { ...state, /* updated values */ };
}

Creating New Status Effects

Effect Types Available

// Damage Over Time
DOT, BLEED, BURN, POISON

// Crowd Control
STUN, CONFUSION, SILENCE

// Defensive
SHIELD, INVULNERABILITY, REFLECTION

// Stat Modifiers
BUFF, DEBUFF, CURSE

// Recovery
HEAL, REGEN, CHAKRA_DRAIN

Effect Interface

interface SkillEffect {
  type: EffectType;
  value: number;           // Damage/heal amount or multiplier
  duration: number;        // Turns (-1 = permanent)
  chance: number;          // 0.0-1.0 application chance
  targetStat?: PrimaryStat; // For BUFF/DEBUFF
  damageType?: DamageType;  // For DoTs
  damageProperty?: DamageProperty;
}

DoT Damage Formula

// DoTs get 50% defense mitigation
dotDamage = max(1, baseDamage - (flatDef × 0.5) - (damage × percentDef × 0.5))

Creating New Combat Phases

Existing Turn Phases

Player Turn:

  1. TURN_START → Reset flags
  2. UPKEEP → Toggle costs, passive regen
  3. MAIN_ACTION → Skill execution
  4. DEATH_CHECK → Victory/defeat
  5. TURN_END → Mark turn complete

Enemy Turn:

  1. DOT_ENEMY → Process enemy DoTs
  2. DOT_PLAYER → Process player DoTs (through shield)
  3. DEATH_CHECK_DOT → Check DoT kills
  4. ENEMY_ACTION → AI skill selection + execution
  5. DEATH_CHECK_ATTACK → Check combat kills
  6. RESOURCE_RECOVERY → Cooldowns, chakra regen
  7. TERRAIN_HAZARDS → Environmental damage
  8. FINAL_DEATH_CHECK → Hazard kills

Adding New Phase

// 1. Add to CombatPhase enum
enum CombatPhase {
  // ... existing
  NEW_PHASE,
}

// 2. Create calculation function
function calculateNewPhaseEffects(state: CombatWorkflowState): NewPhaseResult;

// 3. Create workflow handler
function processNewPhase(state: CombatWorkflowState): CombatWorkflowState;

// 4. Insert into turn flow in processEnemyTurn or executePlayerAction

Output Templates

New Calculation Function

/**
 * [Description of what this calculates]
 * @param attackerStats - Attacker's derived stats
 * @param defenderStats - Defender's derived stats
 * @param skill - The skill being used
 * @returns [ResultType] with all calculation details
 */
export function calculateX(
  attackerStats: DerivedStats,
  defenderStats: DerivedStats,
  skill: Skill
): XResult {
  const result: XResult = {
    // Initialize result object
  };

  // Pure calculations here
  // NO state mutation
  // Use Math.random() for rolls

  return result;
}

New Workflow Function

/**
 * [Description of what state changes this applies]
 * @param state - Current combat state
 * @param result - Calculation result to apply
 * @returns New combat state with changes applied
 */
export function applyX(
  state: CombatWorkflowState,
  result: XResult
): CombatWorkflowState {
  // Create new state object (immutable)
  const newState = { ...state };

  // Apply result values to state
  // Add combat logs
  // Check for combat end conditions

  return newState;
}

New Effect Implementation

// In constants/index.ts - Add to SKILLS
NEW_SKILL: {
  id: 'new_skill',
  name: 'New Skill Name',
  // ... other properties
  effects: [{
    type: EffectType.NEW_EFFECT,
    value: 10,
    duration: 3,
    chance: 0.8,
    damageType: DamageType.PHYSICAL,
    damageProperty: DamageProperty.NORMAL
  }]
}

// In CombatSystem.ts - Handle in applyMitigation or processDoT
if (buff.effect.type === EffectType.NEW_EFFECT) {
  // Calculate effect
  // Apply to appropriate target
}

Reference Files

Balance Constants

Resource Pools

  • HP: 50 + (WIL × 12)
  • Chakra: 30 + (CHA × 8)
  • HP Regen: maxHP × 0.02 × (WIL / 20)
  • Chakra Regen: INT × 2

Combat Constants

  • Base Hit: 92%
  • Hit Range: 30-98%
  • Base Crit: 8%
  • Crit Cap: 75%
  • Crit Mult: 1.75×
  • Flat Def Cap: 60% of damage
  • % Def Cap: 75%

Survival

  • Guts: WIL / (WIL + 200)
  • Status Resist: CAL / (CAL + 80)
  • Evasion: SPD / (SPD + 250)

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。