# 游戏功能模块实现文档

## 概述
本文档记录了所有游戏功能模块的实现细节，包括命令、参数、响应处理和UI展示。

---

## 一、每日功能模块

### 1. 队伍阵容 (TeamStatus.vue)
**组件位置**: `src/components/TeamStatus.vue`

**功能描述**: 显示和切换队伍阵容

**命令**:
- 获取队伍信息: `presetteam_getinfo`
  - 参数: `{}`
  - 响应: 存储在 `tokenStore.gameData.presetTeam`
  
- 切换队伍: `presetteam_saveteam`
  - 参数: `{ teamId: number }`
  - 响应: 更新当前使用的队伍ID

**数据结构**:
```javascript
{
  useTeamId: number,  // 当前使用的队伍ID (1-4)
  teams: {
    [teamId]: {
      teamInfo: {
        [position]: {
          heroId: number,
          level: number,
          ...
        }
      }
    }
  }
}
```

**UI显示**:
- 队伍选择器 (1-4按钮)
- 当前队伍阵容 (英雄头像列表)
- 刷新按钮

---

### 2. 每日任务 (DailyTaskStatus.vue)
**组件位置**: `src/components/DailyTaskStatus.vue`

**功能描述**: 显示每日任务完成状态

**命令**: 
- 任务数据通过角色信息获取: `role_getroleinfo`
  - 参数: `{}`
  - 响应: 存储在 `tokenStore.gameData.roleInfo`

**UI显示**:
- 任务列表
- 完成状态标识
- 进度条

---

### 3. 咸将塔 (TowerStatus.vue)
**组件位置**: `src/components/TowerStatus.vue`

**功能描述**: 爬塔功能

**命令**:
- 获取塔信息: `tower_getinfo`
  - 参数: `{}`
  - 响应: 存储在 `tokenStore.gameData.roleInfo.role.tower`
  
- 开始爬塔: `fight_starttower`
  - 参数: `{}`
  - 响应: 爬塔结果

**数据结构**:
```javascript
{
  tower: {
    id: number,      // 塔层ID (floor*10 + layer)
    energy: number   // 剩余体力
  }
}
```

**UI显示**:
- 当前层数 (floor-layer)
- 剩余体力
- 爬塔按钮

---

### 4. 挂机时间
**组件位置**: `src/components/GameStatus.vue` (内联代码)

**功能描述**: 挂机时间管理

**命令**:
- 加钟: `system_mysharecallback`
  - 参数: `{ isSkipShareCard: true, type: 2 }`
  - 发送4次，间隔300ms
  
- 领取奖励: `system_claimhangupreward`
  - 参数: `{}`
  - 配合分享回调使用

**数据结构**:
```javascript
{
  hangUp: {
    lastTime: number,      // 开始挂机时间
    hangUpTime: number,    // 挂机总时长
    remainingTime: number, // 剩余时间
    elapsedTime: number    // 已挂机时间
  }
}
```

**UI显示**:
- 挂机倒计时
- 已挂机时间
- 加钟按钮
- 领取奖励按钮

---

### 5. 咸鱼大冲关
**组件位置**: `src/components/GameStatus.vue` (内联代码)

**功能描述**: 自动答题功能

**命令**:
- 开始答题: `study_startgame`
  - 参数: `{}`
  - 自动答题流程由 tokenStore 处理

**数据结构**:
```javascript
{
  studyStatus: {
    isAnswering: boolean,
    isCompleted: boolean,
    questionCount: number,
    answeredCount: number,
    status: string,
    timestamp: number
  }
}
```

**UI显示**:
- 答题状态标识
- 进度显示
- 一键答题按钮

---

### 6. 盐罐机器人
**组件位置**: `src/components/GameStatus.vue` (内联代码)

**功能描述**: 盐罐机器人管理

**命令**:
- 停止: `bottlehelper_stop`
  - 参数: `{}`
  
- 启动: `bottlehelper_start`
  - 参数: `{}`

**数据结构**:
```javascript
{
  bottleHelpers: {
    helperStopTime: number  // 停止时间戳
  }
}
```

**UI显示**:
- 运行状态
- 剩余时间倒计时
- 启动/重启按钮

---

## 二、俱乐部功能模块

### 1. 俱乐部签到
**组件位置**: `src/components/GameStatus.vue` (内联代码)

**功能描述**: 俱乐部每日签到

**命令**:
- 签到: `legion_signin`
  - 参数: `{}`
  - 响应: 更新角色信息

**数据结构**:
```javascript
{
  statisticsTime: {
    'legion:sign:in': number  // 签到时间戳
  }
}
```

**UI显示**:
- 签到状态
- 俱乐部名称
- 签到按钮

---

### 2. 俱乐部赛车 (CarManagement.vue)
**组件位置**: `src/components/CarManagement.vue`

**功能描述**: 赛车管理和比赛

**命令**: (需要查看CarManagement组件)
- 相关命令在该组件中定义

**UI显示**:
- 赛车信息
- 比赛状态
- 操作按钮

---

### 3. 俱乐部信息 (ClubInfo.vue)
**组件位置**: `src/components/ClubInfo.vue`

**功能描述**: 显示俱乐部详细信息

**命令**:
- 获取俱乐部信息: `legion_getinfo`
  - 参数: `{}`
  - 响应: 存储在 `tokenStore.gameData.legionInfo`

**数据结构**:
```javascript
{
  legionInfo: {
    info: {
      id: number,
      name: string,
      level: number,
      power: number,
      leaderId: number,
      members: { [roleId]: memberInfo }
    }
  }
}
```

**UI显示**:
- 俱乐部概览 (战力、段位、成员数等)
- 成员列表
- 盐场战绩

---

### 4. 俱乐部排位
**组件位置**: `src/components/GameStatus.vue` (内联代码)

**功能描述**: 俱乐部排位报名

**命令**:
- 报名排位: `legionmatch_rolesignup`
  - 参数: `{}`
  - 响应: 更新报名状态

**数据结构**:
```javascript
{
  statistics: {
    'last:legion:match:sign:up:time': number  // 报名时间戳
  }
}
```

**UI显示**:
- 报名状态
- 赛事说明
- 报名按钮

---

## 三、活动功能模块

### 1. 月度任务
**组件位置**: `src/components/GameStatus.vue` (内联代码)

**功能描述**: 月度钓鱼和竞技场任务管理

**命令**:
- 获取月度数据: `activity_get`
  - 参数: `{}`
  - 响应: 月度活动数据

- 钓鱼: `artifact_lottery`
  - 参数: `{ lotteryNumber: number, newFree: true, type: 1 }`
  - 免费3次后消耗资源

- 竞技场开始: `arena_startarea`
  - 参数: `{}`
  
- 获取目标: `arena_getareatarget`
  - 参数: `{ refresh: boolean }`
  
- 战斗: `fight_startareaarena`
  - 参数: `{ targetId: number }`

**数据结构**:
```javascript
{
  monthActivity: {
    myMonthInfo: {
      '2': { num: number }  // 钓鱼次数
    },
    myArenaInfo: {
      num: number  // 竞技场次数
    }
  }
}
```

**目标值**:
- 钓鱼: 320次/月
- 竞技场: 240次/月

**UI显示**:
- 钓鱼进度
- 竞技场进度
- 剩余天数
- 补齐按钮
- 一键完成按钮

---

### 2. 咸将升级模块 (UpgradeModule.vue)
**组件位置**: `src/components/UpgradeModule.vue`

**功能描述**: 批量咸将升星和图鉴升级

**命令**:
- 咸将升星: `hero_heroupgradestar`
  - 参数: `{ heroId: number }`
  - 批量执行

- 图鉴升级: `book_upgrade`
  - 参数: `{ heroId: number }`
  - 批量执行

- 领取图鉴奖励: `book_claimpointreward`
  - 参数: `{}`
  - 可配置次数

**咸将ID范围**:
- 第一批: 101-120
- 第二批: 201-228
- 第三批: 301-314

**配置项**:
- 升星次数: 1-100
- 图鉴升级次数: 1-100
- 领取奖励: 开关
- 领取奖励次数: 1-100

**执行顺序**: 固定为先升星后图鉴

**UI显示**:
- 进度条
- 当前操作说明
- 配置项输入
- 开始升级按钮

---

## 四、身份牌 (IdentityCard.vue)
**组件位置**: `src/components/IdentityCard.vue`

**功能描述**: 显示玩家基本信息

**数据来源**: `tokenStore.gameData.roleInfo`

**UI显示**:
- 玩家头像
- 玩家名称
- 等级、战力等基本信息
- 嵌入式显示模式

---

## 重构方案

### 新的组件结构
```
GameStatus.vue (使用 n-tabs)
├── IdentityCard (常驻顶部)
├── Tab 1: 每日
│   ├── TeamStatus
│   ├── DailyTaskStatus
│   ├── TowerStatus
│   ├── HangUpStatus (新建组件)
│   ├── StudyStatus (新建组件)
│   └── BottleHelperStatus (新建组件)
├── Tab 2: 俱乐部
│   ├── LegionSigninStatus (新建组件)
│   ├── CarManagement
│   ├── ClubInfo
│   └── LegionMatchStatus (新建组件)
└── Tab 3: 活动
    ├── MonthlyTaskStatus (新建组件)
    └── UpgradeModule
```

### 需要提取的内联组件
1. HangUpStatus - 挂机时间
2. StudyStatus - 咸鱼大冲关
3. BottleHelperStatus - 盐罐机器人
4. LegionSigninStatus - 俱乐部签到
5. LegionMatchStatus - 俱乐部排位
6. MonthlyTaskStatus - 月度任务

这些组件将保持原有的逻辑和UI，仅从GameStatus.vue中分离出来。

