{
  "npcs": {
    "feral_dog": {
      "npc_id": "feral_dog",
      "name": "Feral Dog",
      "description": "A wild, mangy dog with desperate hunger in its eyes. Its ribs are visible beneath matted fur.",
      "emoji": "🐕",
      "hp_min": 15,
      "hp_max": 25,
      "damage_min": 3,
      "damage_max": 7,
      "defense": 0,
      "xp_reward": 10,
      "loot_table": [
        {
          "item_id": "raw_meat",
          "quantity_min": 1,
          "quantity_max": 2,
          "drop_chance": 0.6
        },
        {
          "item_id": "animal_hide",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.3
        }
      ],
      "corpse_loot": [
        {
          "item_id": "raw_meat",
          "quantity_min": 1,
          "quantity_max": 3,
          "required_tool": null
        },
        {
          "item_id": "animal_hide",
          "quantity_min": 1,
          "quantity_max": 1,
          "required_tool": "knife"
        }
      ],
      "flee_chance": 0.3,
      "status_inflict_chance": 0.15,
      "image_path": "images/npcs/feral_dog.webp",
      "death_message": "The feral dog whimpers and collapses. Perhaps it was just hungry..."
    },
    "raider_scout": {
      "npc_id": "raider_scout",
      "name": "Raider Scout",
      "description": "A lone raider wearing makeshift armor. They eye you with hostile intent.",
      "emoji": "🏴‍☠️",
      "hp_min": 30,
      "hp_max": 45,
      "damage_min": 5,
      "damage_max": 12,
      "defense": 2,
      "xp_reward": 25,
      "loot_table": [
        {
          "item_id": "water_bottle",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.4
        },
        {
          "item_id": "canned_food",
          "quantity_min": 1,
          "quantity_max": 2,
          "drop_chance": 0.5
        },
        {
          "item_id": "bandage",
          "quantity_min": 1,
          "quantity_max": 3,
          "drop_chance": 0.6
        },
        {
          "item_id": "rusty_pipe",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.3
        }
      ],
      "corpse_loot": [
        {
          "item_id": "scrap_metal",
          "quantity_min": 2,
          "quantity_max": 4,
          "required_tool": null
        },
        {
          "item_id": "cloth",
          "quantity_min": 1,
          "quantity_max": 2,
          "required_tool": "knife"
        }
      ],
      "flee_chance": 0.2,
      "status_inflict_chance": 0.1,
      "image_path": "images/npcs/raider_scout.webp",
      "death_message": "The raider scout falls with a final gasp. Their supplies are yours."
    },
    "mutant_rat": {
      "npc_id": "mutant_rat",
      "name": "Mutant Rat",
      "description": "A grotesquely large rat, its fur patchy and eyes glowing with unnatural light.",
      "emoji": "🐀",
      "hp_min": 10,
      "hp_max": 18,
      "damage_min": 2,
      "damage_max": 5,
      "defense": 0,
      "xp_reward": 8,
      "loot_table": [
        {
          "item_id": "raw_meat",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.4
        }
      ],
      "corpse_loot": [
        {
          "item_id": "raw_meat",
          "quantity_min": 1,
          "quantity_max": 2,
          "required_tool": null
        },
        {
          "item_id": "mutant_tissue",
          "quantity_min": 1,
          "quantity_max": 1,
          "required_tool": "knife"
        }
      ],
      "flee_chance": 0.5,
      "status_inflict_chance": 0.25,
      "image_path": "images/npcs/mutant_rat.webp",
      "death_message": "The mutant rat squeals its last and goes still."
    },
    "infected_human": {
      "npc_id": "infected_human",
      "name": "Infected Human",
      "description": "Once human, now something else. Their movements are jerky and their skin shows signs of advanced infection.",
      "emoji": "🧟",
      "hp_min": 35,
      "hp_max": 50,
      "damage_min": 6,
      "damage_max": 10,
      "defense": 1,
      "xp_reward": 30,
      "loot_table": [
        {
          "item_id": "medical_supplies",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.2
        },
        {
          "item_id": "antibiotics",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.15
        }
      ],
      "corpse_loot": [
        {
          "item_id": "infected_tissue",
          "quantity_min": 1,
          "quantity_max": 2,
          "required_tool": "knife"
        },
        {
          "item_id": "bone",
          "quantity_min": 1,
          "quantity_max": 3,
          "required_tool": "knife"
        }
      ],
      "flee_chance": 0.1,
      "status_inflict_chance": 0.3,
      "image_path": "images/npcs/infected_human.webp",
      "death_message": "The infected human finally finds peace in death."
    },
    "scavenger": {
      "npc_id": "scavenger",
      "name": "Hostile Scavenger",
      "description": "Another survivor, but this one sees you as competition. They won't share territory.",
      "emoji": "💀",
      "hp_min": 25,
      "hp_max": 40,
      "damage_min": 4,
      "damage_max": 9,
      "defense": 3,
      "xp_reward": 20,
      "loot_table": [
        {
          "item_id": "water_bottle",
          "quantity_min": 1,
          "quantity_max": 2,
          "drop_chance": 0.5
        },
        {
          "item_id": "canned_food",
          "quantity_min": 1,
          "quantity_max": 2,
          "drop_chance": 0.5
        },
        {
          "item_id": "bandage",
          "quantity_min": 1,
          "quantity_max": 2,
          "drop_chance": 0.4
        },
        {
          "item_id": "knife",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.2
        },
        {
          "item_id": "hiking_backpack",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.05
        },
        {
          "item_id": "flashlight",
          "quantity_min": 1,
          "quantity_max": 1,
          "drop_chance": 0.3
        }
      ],
      "corpse_loot": [
        {
          "item_id": "cloth",
          "quantity_min": 1,
          "quantity_max": 3,
          "required_tool": null
        },
        {
          "item_id": "scrap_metal",
          "quantity_min": 1,
          "quantity_max": 2,
          "required_tool": null
        }
      ],
      "flee_chance": 0.25,
      "status_inflict_chance": 0.05,
      "image_path": "images/npcs/scavenger.webp",
      "death_message": "The scavenger's struggle ends. Survival has no mercy."
    }
  },
  "danger_levels": {
    "start_point": {
      "danger_level": 0,
      "encounter_rate": 0.0,
      "wandering_chance": 0.0
    },
    "gas_station": {
      "danger_level": 0,
      "encounter_rate": 0.0,
      "wandering_chance": 0.0
    },
    "residential": {
      "danger_level": 1,
      "encounter_rate": 0.10,
      "wandering_chance": 0.20
    },
    "park": {
      "danger_level": 1,
      "encounter_rate": 0.10,
      "wandering_chance": 0.20
    },
    "clinic": {
      "danger_level": 2,
      "encounter_rate": 0.20,
      "wandering_chance": 0.35
    },
    "plaza": {
      "danger_level": 2,
      "encounter_rate": 0.15,
      "wandering_chance": 0.30
    },
    "warehouse": {
      "danger_level": 2,
      "encounter_rate": 0.18,
      "wandering_chance": 0.32
    },
    "warehouse_interior": {
      "danger_level": 2,
      "encounter_rate": 0.22,
      "wandering_chance": 0.40
    },
    "overpass": {
      "danger_level": 3,
      "encounter_rate": 0.30,
      "wandering_chance": 0.45
    },
    "office_building": {
      "danger_level": 3,
      "encounter_rate": 0.25,
      "wandering_chance": 0.40
    },
    "office_interior": {
      "danger_level": 3,
      "encounter_rate": 0.35,
      "wandering_chance": 0.50
    },
    "subway": {
      "danger_level": 4,
      "encounter_rate": 0.35,
      "wandering_chance": 0.50
    },
    "subway_tunnels": {
      "danger_level": 4,
      "encounter_rate": 0.45,
      "wandering_chance": 0.65
    }
  },
  "spawn_tables": {
    "start_point": [],
    "gas_station": [],
    "residential": [
      {
        "npc_id": "feral_dog",
        "weight": 60
      },
      {
        "npc_id": "mutant_rat",
        "weight": 40
      }
    ],
    "park": [
      {
        "npc_id": "feral_dog",
        "weight": 50
      },
      {
        "npc_id": "mutant_rat",
        "weight": 50
      }
    ],
    "clinic": [
      {
        "npc_id": "infected_human",
        "weight": 40
      },
      {
        "npc_id": "mutant_rat",
        "weight": 30
      },
      {
        "npc_id": "scavenger",
        "weight": 30
      }
    ],
    "plaza": [
      {
        "npc_id": "raider_scout",
        "weight": 40
      },
      {
        "npc_id": "scavenger",
        "weight": 35
      },
      {
        "npc_id": "feral_dog",
        "weight": 25
      }
    ],
    "warehouse": [
      {
        "npc_id": "raider_scout",
        "weight": 45
      },
      {
        "npc_id": "scavenger",
        "weight": 35
      },
      {
        "npc_id": "mutant_rat",
        "weight": 20
      }
    ],
    "warehouse_interior": [
      {
        "npc_id": "raider_scout",
        "weight": 50
      },
      {
        "npc_id": "scavenger",
        "weight": 30
      },
      {
        "npc_id": "mutant_rat",
        "weight": 20
      }
    ],
    "overpass": [
      {
        "npc_id": "raider_scout",
        "weight": 50
      },
      {
        "npc_id": "infected_human",
        "weight": 30
      },
      {
        "npc_id": "scavenger",
        "weight": 20
      }
    ],
    "office_building": [
      {
        "npc_id": "raider_scout",
        "weight": 45
      },
      {
        "npc_id": "infected_human",
        "weight": 35
      },
      {
        "npc_id": "scavenger",
        "weight": 20
      }
    ],
    "office_interior": [
      {
        "npc_id": "infected_human",
        "weight": 50
      },
      {
        "npc_id": "raider_scout",
        "weight": 30
      },
      {
        "npc_id": "scavenger",
        "weight": 20
      }
    ],
    "subway": [
      {
        "npc_id": "infected_human",
        "weight": 50
      },
      {
        "npc_id": "raider_scout",
        "weight": 30
      },
      {
        "npc_id": "mutant_rat",
        "weight": 20
      }
    ],
    "subway_tunnels": [
      {
        "npc_id": "infected_human",
        "weight": 60
      },
      {
        "npc_id": "raider_scout",
        "weight": 25
      },
      {
        "npc_id": "mutant_rat",
        "weight": 15
      }
    ]
  }
}
