|
|
@@ -117,12 +117,16 @@ CREATE TABLE `farm_seeds` (
|
|
|
`growth_time` int(10) unsigned NOT NULL COMMENT '生长期时间(秒)',
|
|
|
`min_output` int(10) unsigned NOT NULL COMMENT '最小产出',
|
|
|
`max_output` int(10) unsigned NOT NULL COMMENT '最大产出',
|
|
|
+ `item_id` bigint(20) unsigned NOT NULL COMMENT '对应的物品ID',
|
|
|
+ `output_item_id` bigint(20) unsigned NOT NULL COMMENT '产出的物品ID',
|
|
|
`disaster_resistance` json DEFAULT NULL COMMENT '灾害抵抗',
|
|
|
`display_attributes` json DEFAULT NULL COMMENT '显示属性',
|
|
|
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
PRIMARY KEY (`id`),
|
|
|
- KEY `idx_type` (`type`)
|
|
|
+ KEY `idx_type` (`type`),
|
|
|
+ KEY `idx_item_id` (`item_id`),
|
|
|
+ KEY `idx_output_item_id` (`output_item_id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='种子配置表';
|
|
|
```
|
|
|
|
|
|
@@ -431,16 +435,82 @@ farm_land_upgrade_configs
|
|
|
}
|
|
|
```
|
|
|
|
|
|
+### 5.6 灾害JSON详细结构 (disasters)
|
|
|
+
|
|
|
+灾害JSON存储在作物表的disasters字段中,记录作物当前遭受的所有灾害:
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "disasters": [
|
|
|
+ {
|
|
|
+ "type": 1, // 灾害类型:1干旱,2虫害,3杂草
|
|
|
+ "occurred_at": "2023-05-01 12:00:00", // 灾害发生时间
|
|
|
+ "impact": 0.05, // 灾害影响程度(减产比例)
|
|
|
+ "status": 1 // 灾害状态:1未处理,2已处理
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": 3,
|
|
|
+ "occurred_at": "2023-05-01 14:30:00",
|
|
|
+ "impact": 0.05,
|
|
|
+ "status": 1
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
## 6. 数据初始化
|
|
|
|
|
|
### 6.1 种子数据
|
|
|
|
|
|
初始化基本的种子数据,包括普通种子、神秘种子和巨化种子。
|
|
|
|
|
|
+```sql
|
|
|
+INSERT INTO `farm_seeds` (`id`, `name`, `type`, `seed_time`, `sprout_time`, `growth_time`, `min_output`, `max_output`, `item_id`, `output_item_id`, `disaster_resistance`) VALUES
|
|
|
+(1, '萝卜种子', 1, 1800, 3600, 7200, 1000, 1500, 2001, 3001, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(2, '辣椒种子', 1, 3600, 7200, 14400, 1500, 2000, 2002, 3002, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(3, '苹果种子', 1, 7200, 14400, 28800, 2000, 2500, 2003, 3003, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(4, '西瓜种子', 1, 10800, 21600, 43200, 2500, 3000, 2004, 3004, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(5, '草莓种子', 1, 14400, 28800, 57600, 3000, 3500, 2005, 3005, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(6, '南瓜种子', 1, 18000, 36000, 72000, 3500, 4000, 2006, 3006, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(7, '核桃种子', 1, 21600, 43200, 86400, 4000, 4500, 2007, 3007, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(8, '可可种子', 1, 25200, 50400, 100800, 4500, 5000, 2008, 3008, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(9, '人参种子', 1, 28800, 57600, 115200, 5000, 5500, 2009, 3009, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(10, '玫瑰种子', 1, 32400, 64800, 129600, 5500, 6000, 2010, 3010, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
|
|
|
+(11, '神秘种子', 2, 0, 0, 0, 0, 0, 2011, 0, NULL),
|
|
|
+(101, '巨化草莓种子', 3, 14400, 28800, 57600, 4500, 5250, 2101, 3005, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
|
|
|
+(102, '巨化南瓜种子', 3, 18000, 36000, 72000, 5250, 6000, 2102, 3006, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
|
|
|
+(103, '巨化核桃种子', 3, 21600, 43200, 86400, 6000, 6750, 2103, 3007, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
|
|
|
+(104, '巨化可可种子', 3, 25200, 50400, 100800, 6750, 7500, 2104, 3008, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
|
|
|
+(105, '巨化人参种子', 3, 28800, 57600, 115200, 7500, 8250, 2105, 3009, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
|
|
|
+(106, '巨化玫瑰种子', 3, 32400, 64800, 129600, 8250, 9000, 2106, 3010, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}');
|
|
|
+```
|
|
|
+
|
|
|
### 6.2 房屋配置数据
|
|
|
|
|
|
初始化12级房屋的配置数据,包括产出加成、特殊土地上限、升级材料和降级天数。
|
|
|
|
|
|
+```sql
|
|
|
+INSERT INTO `farm_house_configs` (`level`, `output_bonus`, `special_land_limit`, `upgrade_materials`, `downgrade_days`) VALUES
|
|
|
+(1, 0.00, 0, '{"materials": [{"item_id": 1001, "amount": 20}]}', NULL),
|
|
|
+(2, 0.05, 0, '{"materials": [{"item_id": 1001, "amount": 30}, {"item_id": 1002, "amount": 10}]}', 7),
|
|
|
+(3, 0.10, 0, '{"materials": [{"item_id": 1001, "amount": 40}, {"item_id": 1002, "amount": 20}]}', 7),
|
|
|
+(4, 0.15, 0, '{"materials": [{"item_id": 1001, "amount": 50}, {"item_id": 1002, "amount": 30}, {"item_id": 1003, "amount": 5}]}', 7),
|
|
|
+(5, 0.20, 0, '{"materials": [{"item_id": 1001, "amount": 60}, {"item_id": 1002, "amount": 40}, {"item_id": 1003, "amount": 10}]}', 7),
|
|
|
+(6, 0.25, 0, '{"materials": [{"item_id": 1001, "amount": 70}, {"item_id": 1002, "amount": 50}, {"item_id": 1003, "amount": 15}]}', 7),
|
|
|
+(7, 0.30, 2, '{"materials": [{"item_id": 1001, "amount": 80}, {"item_id": 1002, "amount": 60}, {"item_id": 1003, "amount": 20}, {"item_id": 1004, "amount": 5}]}', 7),
|
|
|
+(8, 0.35, 4, '{"materials": [{"item_id": 1001, "amount": 90}, {"item_id": 1002, "amount": 70}, {"item_id": 1003, "amount": 25}, {"item_id": 1004, "amount": 10}]}', 7),
|
|
|
+(9, 0.40, 6, '{"materials": [{"item_id": 1001, "amount": 100}, {"item_id": 1002, "amount": 80}, {"item_id": 1003, "amount": 30}, {"item_id": 1004, "amount": 15}]}', 7),
|
|
|
+(10, 0.45, 8, '{"materials": [{"item_id": 1001, "amount": 120}, {"item_id": 1002, "amount": 90}, {"item_id": 1003, "amount": 35}, {"item_id": 1004, "amount": 20}]}', 7),
|
|
|
+(11, 0.50, 10, '{"materials": [{"item_id": 1001, "amount": 140}, {"item_id": 1002, "amount": 100}, {"item_id": 1003, "amount": 40}, {"item_id": 1004, "amount": 25}]}', 7),
|
|
|
+(12, 0.60, 12, '{"materials": [{"item_id": 1001, "amount": 160}, {"item_id": 1002, "amount": 120}, {"item_id": 1003, "amount": 50}, {"item_id": 1004, "amount": 30}]}', NULL);
|
|
|
+```
|
|
|
+
|
|
|
+其中物品ID对应关系:
|
|
|
+- 1001: 木材
|
|
|
+- 1002: 石材
|
|
|
+- 1003: 钢材
|
|
|
+- 1004: 钻石
|
|
|
+
|
|
|
### 6.3 土地类型配置数据
|
|
|
|
|
|
初始化土地类型配置数据:
|
|
|
@@ -461,13 +531,19 @@ INSERT INTO `farm_land_types` (`id`, `name`, `code`, `output_bonus`, `disaster_r
|
|
|
|
|
|
```sql
|
|
|
INSERT INTO `farm_land_upgrade_configs` (`from_type_id`, `to_type_id`, `materials`, `conditions`) VALUES
|
|
|
-(1, 2, '{"materials": [{"item_name": "木材", "amount": 10}]}', NULL),
|
|
|
-(2, 3, '{"materials": [{"item_name": "石材", "amount": 10}]}', NULL),
|
|
|
-(3, 4, '{"materials": [{"item_name": "钢材", "amount": 10}, {"item_name": "钻石", "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}'),
|
|
|
-(3, 5, '{"materials": [{"item_name": "钢材", "amount": 10}, {"item_name": "钻石", "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}'),
|
|
|
-(3, 6, '{"materials": [{"item_name": "钢材", "amount": 10}, {"item_name": "钻石", "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}');
|
|
|
+(1, 2, '{"materials": [{"item_id": 1001, "amount": 10}]}', NULL),
|
|
|
+(2, 3, '{"materials": [{"item_id": 1002, "amount": 10}]}', NULL),
|
|
|
+(3, 4, '{"materials": [{"item_id": 1003, "amount": 10}, {"item_id": 1004, "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}'),
|
|
|
+(3, 5, '{"materials": [{"item_id": 1003, "amount": 10}, {"item_id": 1004, "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}'),
|
|
|
+(3, 6, '{"materials": [{"item_id": 1003, "amount": 10}, {"item_id": 1004, "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}');
|
|
|
```
|
|
|
|
|
|
+其中物品ID对应关系:
|
|
|
+- 1001: 木材
|
|
|
+- 1002: 石材
|
|
|
+- 1003: 钢材
|
|
|
+- 1004: 钻石
|
|
|
+
|
|
|
### 6.5 新用户初始化
|
|
|
|
|
|
新用户注册时,需要:
|
|
|
@@ -505,3 +581,40 @@ INSERT INTO `farm_land_upgrade_configs` (`from_type_id`, `to_type_id`, `material
|
|
|
### 8.3 批量操作
|
|
|
|
|
|
使用批量插入和更新操作处理大量数据,如批量更新作物生长状态。
|
|
|
+
|
|
|
+## 9. 种子与作物系统数据示例
|
|
|
+
|
|
|
+### 9.1 普通种子列表
|
|
|
+
|
|
|
+| ID | 名称 | 种子期(秒) | 发芽期(秒) | 生长期(秒) | 最小产出 | 最大产出 |
|
|
|
+|----|------|-----------|-----------|-----------|---------|---------|
|
|
|
+| 1 | 萝卜种子 | 1800 | 3600 | 7200 | 1000 | 1500 |
|
|
|
+| 2 | 辣椒种子 | 3600 | 7200 | 14400 | 1500 | 2000 |
|
|
|
+| 3 | 苹果种子 | 7200 | 14400 | 28800 | 2000 | 2500 |
|
|
|
+| 4 | 西瓜种子 | 10800 | 21600 | 43200 | 2500 | 3000 |
|
|
|
+| 5 | 草莓种子 | 14400 | 28800 | 57600 | 3000 | 3500 |
|
|
|
+| 6 | 南瓜种子 | 18000 | 36000 | 72000 | 3500 | 4000 |
|
|
|
+| 7 | 核桃种子 | 21600 | 43200 | 86400 | 4000 | 4500 |
|
|
|
+| 8 | 可可种子 | 25200 | 50400 | 100800 | 4500 | 5000 |
|
|
|
+| 9 | 人参种子 | 28800 | 57600 | 115200 | 5000 | 5500 |
|
|
|
+| 10 | 玫瑰种子 | 32400 | 64800 | 129600 | 5500 | 6000 |
|
|
|
+
|
|
|
+### 9.2 巨化种子列表
|
|
|
+
|
|
|
+| ID | 名称 | 对应普通种子 | 产量倍率 |
|
|
|
+|----|------|------------|---------|
|
|
|
+| 101 | 巨化草莓种子 | 草莓种子 | 1.5 |
|
|
|
+| 102 | 巨化南瓜种子 | 南瓜种子 | 1.5 |
|
|
|
+| 103 | 巨化核桃种子 | 核桃种子 | 1.5 |
|
|
|
+| 104 | 巨化可可种子 | 可可种子 | 1.5 |
|
|
|
+| 105 | 巨化人参种子 | 人参种子 | 1.5 |
|
|
|
+| 106 | 巨化玫瑰种子 | 玫瑰种子 | 1.5 |
|
|
|
+
|
|
|
+### 9.3 神灵加持类型
|
|
|
+
|
|
|
+| 加持类型 | 值 | 效果描述 | 应用场景 |
|
|
|
+|---------|---|---------|---------|
|
|
|
+| 丰收之神 | 1 | 确保收获时获得最高产量 | 收获作物时直接使用种子的最大产量值 |
|
|
|
+| 雨露之神 | 2 | 防止干旱灾害 | 生成灾害时不会生成干旱类型的灾害 |
|
|
|
+| 屠草之神 | 3 | 防止杂草灾害 | 生成灾害时不会生成杂草类型的灾害 |
|
|
|
+| 拭虫之神 | 4 | 防止虫害灾害 | 生成灾害时不会生成虫害类型的灾害 |
|