export const GAME_CONFIG = {
  player: {
    initialStats: { 
      maxHp: 20, 
      hp: 20, 
      attack: 5, 
      defense: 2,
      level: 1,
      exp: 0,
      expToNextLevel: 10,
      statPoints: 0,
      skillPoints: 0,
      strength: 10,
      dexterity: 10,
      intelligence: 10,
      // Offensive
      critChance: 5,
      critMultiplier: 150,
      accuracy: 90,
      lifesteal: 0,
      // Defensive
      evasion: 5,
      blockChance: 0,
      // Utility
      luck: 0,
      passiveNodes: [] as string[]
    },
    speed: 100,
    viewRadius: 8
  },


  
  map: {
    width: 60,
    height: 40,
    minRooms: 8,
    maxRooms: 13,
    roomMinWidth: 5,
    roomMaxWidth: 12,
    roomMinHeight: 4,
    roomMaxHeight: 10
  },
  
  enemies: {
    rat: {
      baseHp: 8,
      baseAttack: 3,
      baseDefense: 0,
      minSpeed: 80,
      maxSpeed: 110,
      expValue: 5
    },
    bat: {
      baseHp: 6,
      baseAttack: 4,
      baseDefense: 0,
      minSpeed: 110,
      maxSpeed: 140,
      expValue: 8
    }
  },

  enemyScaling: {
    baseCount: 3,
    baseCountPerFloor: 3,
    hpPerFloor: 5,
    attackPerTwoFloors: 1,
  },
  
  leveling: {
    baseExpToNextLevel: 10,
    expMultiplier: 1.5,
    hpGainPerLevel: 5,
    attackGainPerLevel: 1,
    statPointsPerLevel: 5,
    skillPointsPerLevel: 1
  },

  
  rendering: {
    tileSize: 16,
    cameraZoom: 2,
    wallColor: 0x2b2b2b,
    floorColor: 0x161616,
    exitColor: 0xffd166,
    playerColor: 0x66ff66,
    enemyColor: 0xff6666,
    pathPreviewColor: 0x3355ff,
    expOrbColor: 0x33ccff,
    expTextColor: 0x33ccff,
    levelUpColor: 0xffff00,
    fogAlphaFloor: 0.15,
    fogAlphaWall: 0.35,
    visibleMinAlpha: 0.35,
    visibleMaxAlpha: 1.0,
    visibleStrengthFactor: 0.65
  },


  terrain: {
    empty: 1,
    wall: 4,
    water: 63,
    emptyDeco: 24,
    wallDeco: 12,
    exit: 8
  },
  
  ui: {
    minimapPanelWidth: 340,
    minimapPanelHeight: 220,
    minimapPadding: 20,
    menuPanelWidth: 340,
    menuPanelHeight: 220
  },
  
  gameplay: {
    energyThreshold: 100,
    actionCost: 100
  },

  assets: {
    spritesheets: [
      { key: "warrior", path: "assets/sprites/actors/player/warrior.png", frameConfig: { frameWidth: 12, frameHeight: 15 } },
      { key: "rat", path: "assets/sprites/actors/enemies/rat.png", frameConfig: { frameWidth: 16, frameHeight: 15 } },
      { key: "bat", path: "assets/sprites/actors/enemies/bat.png", frameConfig: { frameWidth: 15, frameHeight: 15 } },
      { key: "dungeon", path: "assets/tilesets/dungeon.png", frameConfig: { frameWidth: 16, frameHeight: 16 } },
    ],
    images: [
      { key: "splash_bg", path: "assets/ui/splash_bg.png" }
    ]
  }
} as const;

export type GameConfig = typeof GAME_CONFIG;
