diff --git a/src/lib/DamageCalculator.svelte b/src/lib/DamageCalculator.svelte index 9067ab4..d8824f0 100644 --- a/src/lib/DamageCalculator.svelte +++ b/src/lib/DamageCalculator.svelte @@ -16,8 +16,6 @@ } } let attack_direction = "p1p2"; - let attack_type = "attack"; - let attack_power = 0; let total_max_damage = 0; let total_min_damage = 0; function calculate_damage() { @@ -52,12 +50,18 @@ // 最大ダメージと最小ダメージ maxDamage: 0, - minDamage: 0 - // この辺はあとまわしで + minDamage: 0, // 攻撃側タイプ + // TODO: try catchでエラーハンドリング + atk_type: JSON.parse(attacker.types),// 配列なのでjson parse // 防御側タイプ + def_type: JSON.parse(defender.types), + // 技タイプ + move_type: JSON.parse(attackData.types), // 範囲の計算で使用する } + + // 計算 let d = damage(data); total_max_damage = d.maxDamage; @@ -82,7 +86,22 @@ // 乱数補正 data.minDamage = getMinDamage(data) // タイプ一致補正 + let type_match = false + for (let i = 0; i < data.atk_type.length && !type_match; i++){ + for (let j = 0; j < data.move_type.length && !type_match; j++){ + if (data.atk_type[i] === data.move_type[j]){ + // タイプ一致したら判定終了 + type_match = true; + data.maxDamage = Math.trunc(data.maxDamage*1.5) + data.minDamage = Math.trunc(data.minDamage*1.5) + } + } + } + // 相性補正 + // 相性の計算の関数をとってくる + + // やけど補正 // 壁補正 // ブレインフォース補正