# isNuclearWeapon 核武器功能实装

## 功能概述

实现了 `itmpara` 字段中的 `isNuclearWeapon` 键值，使武器具有群体攻击效果。当玩家使用含有该键值的武器战斗并对敌人造成伤害时，会对战斗区域内的所有人（包括自己和敌人）造成额外的伤害。

## 实装内容

1. 在 `gamedata/cache/itmpara_tooltip.php` 文件中添加了 `isNuclearWeapon` 的 tooltip 配置
2. 在 `include/game/revattr.func.php` 文件的 `get_hurt_events` 函数中添加了核武器效果的处理逻辑

## 实装细节

### 1. Tooltip 配置

在 `itmpara_tooltip.php` 文件中添加了以下配置：

```php
// 核武器相关
'isNuclearWeapon' => [
    'title' => '群体攻击武器',
    'format' => '此武器会对战斗区域内的所有人造成伤害',
    'suffix' => '',
    'condition' => function($item_type, $value) {
        return $value == 1;
    }
],
```

这样，当玩家查看含有 `isNuclearWeapon` 键值的武器时，会在 tooltip 中看到"群体攻击武器：此武器会对战斗区域内的所有人造成伤害"的提示。

### 2. 核武器效果实现

在 `revattr.func.php` 文件的 `get_hurt_events` 函数中添加了核武器效果的处理逻辑：

1. **伤害池计算**：
   - 根据 `$clbpara['randver1']` 的值和本次战斗伤害计算伤害池
   - 当 `randver1` 等于 128 时，伤害池 = 战斗伤害 * 7.77
   - 当 `randver1` 大于 64 时，伤害池 = 战斗伤害 * 1.2
   - 否则，伤害池 = 战斗伤害 * 0.8
   - 如果 `randver1` 不存在，默认使用 0.8 倍率

2. **目标选择**：
   - 随机选择 2 到 22 个玩家
   - 从数据库中获取与攻击者处于同一位置的所有玩家
   - 将攻击者和防守者也加入目标列表
   - 随机打乱目标列表并限制数量

3. **伤害分配**：
   - 计算每个玩家受到的伤害 = 伤害池 / 玩家数量
   - 对于拥有 `fireseed3` 或 `fireseed4` 技能的玩家，或防御值超过 10000 的玩家，只受到 1 点伤害
   - 对于其他玩家，受到平均伤害，但生命值不会低于 1
   - 更新受影响玩家的生命值

4. **日志输出**：
   - 在战斗日志中显示核武器效果的触发
   - 显示每个受影响玩家受到的伤害

## 使用方法

1. 为武器添加 `isNuclearWeapon` 键值：
   ```php
   $itmpara = '{"isNuclearWeapon":1}';
   ```

2. 当玩家使用该武器战斗并造成伤害时，会自动触发核武器效果

## 注意事项

1. 核武器效果会影响战斗区域内的所有人，包括攻击者自己
2. 伤害池的计算受 `$clbpara['randver1']` 的影响，可以通过调整该值来控制核武器的威力
3. 拥有 `fireseed3` 或 `fireseed4` 技能的玩家，或防御值超过 10000 的玩家，只会受到 1 点伤害
4. 核武器造成的伤害不会导致玩家死亡，最低会保留 1 点生命值
