/**
 * ボスキャラクターの定義
 */

const BOSS_DATA = {
  10: { name: '要塞型ガードユニット: B-10', hpMult: 6, atkMult: 1.2, drop: 'boss_plating', flavor: '廃墟の入り口を数十年守り続けている。' },
  20: { name: '自律式狙撃兵器: S-20', hpMult: 4, atkMult: 2.2, drop: 'boss_eye', flavor: '見えない場所から正確にコアを撃ち抜く。' },
  30: { name: '暴走重機: CRUSHER-30', hpMult: 8, atkMult: 1.8, drop: 'boss_core', flavor: '制御を失い、目に入るもの全てを粉砕する。' },
  40: { name: '高機動試作機: FALCON-40', hpMult: 5, atkMult: 2.5, drop: 'boss_wing', flavor: '音速を超えた機動力で敵を翻弄する。' },
  50: { name: '深淵の執行者: REAPER-50', hpMult: 10, atkMult: 3.0, drop: 'boss_soul', flavor: 'これより先は、生者の領域ではない。' },
  60: { name: '防衛マザーコンピュータ: CORE-60', hpMult: 15, atkMult: 2.0, drop: 'boss_plating', flavor: '廃墟全体のシステムを統括する。' },
  70: { name: '量産型殺戮兵器: ALPHA-70', hpMult: 12, atkMult: 3.5, drop: 'boss_eye', flavor: 'かつて都市を一夜で滅ぼした兵器の残党。' },
  80: { name: '巨神兵の残骸: TITAN-80', hpMult: 25, atkMult: 2.5, drop: 'boss_core', flavor: '朽ち果ててもなお、その威圧感は健在。' },
  90: { name: '時空の歪み: VOID-90', hpMult: 18, atkMult: 4.5, drop: 'boss_wing', flavor: '存在そのものが物理法則に反している。' },
  100: { name: 'ジャンク・コード: ZERO', hpMult: 50, atkMult: 5.0, drop: 'boss_soul', flavor: '全てのジャンクが辿り着く、無の終着点。' },
};

/**
 * フロアに応じたボスを生成する
 */
const generateBoss = (floor) => {
  const data = BOSS_DATA[floor];
  if (!data) return null;

  // 基本ステータス計算 (通常の敵と同じベースを使用)
  const baseHp = Math.floor(50 * Math.pow(1.2, floor - 1));
  const baseAtk = Math.floor(5 * Math.pow(1.15, floor - 1));

  return {
    id: `boss_${floor}`,
    name: data.name,
    maxHp: Math.floor(baseHp * data.hpMult),
    hp: Math.floor(baseHp * data.hpMult),
    atk: Math.floor(baseAtk * data.atkMult),
    maxGauge: 180, // 少し早い
    gauge: 0,
    isBoss: true,
    dropId: data.drop,
    flavor: data.flavor
  };
};

/**
 * ボス階層かどうかを判定
 */
const isBossFloor = (floor) => {
  return floor > 0 && floor % 10 === 0 && floor <= 100;
};
