5 Commits

Author SHA1 Message Date
panFD
c2c1d5b520 feat(skill): 新增并重构火球术技能配置
1. 新增bm-1普攻预制体与动画资源
2. 将原6101火球技能重构为6014火球术,简化技能描述
3. 更新所有英雄与怪物的技能引用配置
4. 替换fb-2动画为fb-6动画并调整参数
5. 删除冗余的fb-6动画文件
2026-08-15 23:44:42 +08:00
panFD
dc2653b154 feat(config): 新增并调整技能配置数据
1.  新增6013闪电术技能配置
2.  修正6103技能名称为光闪并补全属性
3.  新增6104气斩、6105火焰斩、6106闪电斩技能
4.  更新部分技能的描述注释与生效逻辑说明
2026-08-15 23:44:31 +08:00
panFD
d49f4fb77e feat(buff): 新增出血debuff并实现暴击率加成逻辑
1.  在BuffSet中新增出血debuff的配置、图标映射与相关常量
2.  在HeroAtkSystem中添加出血层数带来的被暴击率加成计算逻辑
2026-08-15 22:40:14 +08:00
panFD
1f4a4c5936 feat(skill&hero): 添加新技能与英雄血条UI 2026-08-15 22:40:02 +08:00
panFD
93e02fa292 refactor(config): 按照技能配置规范重构技能配置
1. 移除SkillSet中硬编码的buff效果,将6104技能替换为通用6101底座
2. 所有英雄/怪物技能通过overrides注入buff和数值修改
3. 新增项目技能配置规范文档
2026-08-15 20:40:56 +08:00
19 changed files with 1835 additions and 1389 deletions

View File

@@ -57,3 +57,92 @@ alwaysApply: true
- 代码前指明使用了 oops-framework 哪个模块
- `oops` API 调用附带简明中文注释
- 检查所有监听是否在生命周期结束时注销
---
# SkillSet / heroSet 配置规则
## 核心原则
1. **技能底座纯净化**:SkillSet 中的技能只定义基础行为(伤害、弹道、命中),**禁止**在基础配置中写死 `timed_buff_id` / `buff_type` 等效果字段
2. **效果由引用处注入**:英雄/怪物引用技能时,通过 `HSkillInfo.overrides` 按需附加 debuff/buff,实现"同一技能、不同效果"
3. **数值覆盖优先**:`ap`(伤害百分比)、`hit_count`、`crt` 等数值差异,统一由 `overrides` 覆写,而非新建相似技能
## SkillSet 配置规范
### 技能 uuid 段位分配
| 段位 | 用途 | 示例 |
|------|------|------|
| 6001-6099 | 基础单体攻击(近战/远程通用底座) | 6001 飞剑、6004 攻击 |
| 6100-6199 | 中阶攻击技能(高阶特效/多命中) | 6101 火球、6102 飓风 |
| 6200-6299 | 高阶范围技能(AOE/必杀) | 6201 陨石术 |
| 6300-6399 | 辅助/治疗/护盾技能 | 6301 护盾、6302 治疗 |
| 6400-6499 | 永久属性强化(buff_type) | 6401 攻击强化 |
| 6500-6599 | 计时爆发技能(timed_buff_id) | 6501 复活 |
### 新增技能检查清单
- [ ] uuid 在对应段位内,且未与现有技能冲突
- [ ] `sp_name` / `icon` 与现有技能不重复(避免视觉混淆)
- [ ] `IType`(近战/远程/辅助)与 `RType`(弹道类型)匹配合理
- [ ] 基础配置**不含** `timed_buff_id` / `buff_type`(效果由引用处注入)
- [ ] `info` 描述只写基础效果,不写具体 debuff(如"造成攻击力100%的伤害")
## heroSet 配置规范
### 英雄 uuid 段位分配
| 段位 | 品质 | 说明 |
|------|------|------|
| 5001-5099 | card_lv=1 | 基础单体/默认范围 |
| 5101-5199 | card_lv=2 | 数值强化 |
| 5201-5299 | card_lv=3 | 范围扩大 |
| 5301-5399 | card_lv=4 | 数值+范围 |
| 5401-5499 | card_lv=5 | 双技能(+revive/field) |
### 怪物 uuid 段位分配
| 段位 | 类型 |
|------|------|
| 6001-6099 | 基础怪物(近战/远程/特殊位) |
| 6100-6199 | Boss 怪物 |
### 新增英雄/怪物检查清单
- [ ] `skills` 引用的技能 uuid 在 SkillSet 中存在
- [ ] 技能效果通过 `overrides` 按需注入,**禁止**直接修改 SkillSet 基础配置
- [ ] `overrides.ap` 明确写出(如 80/100/150),避免依赖基础配置的默认值
- [ ] `timed_buff_id` 指向 BuffList 中存在的 buff 配置
- [ ] 怪物技能引用优先使用 6001-6012 基础技能,Boss 可用 6101+ 中阶技能
### 触发技能配置规则
| 触发类型 | 字段 | 说明 |
|----------|------|------|
| 普通攻击 | `skills` | 携带技能,`overrides` 注入效果 |
| 受击触发 | `atked` | 按 s_uuid 分组,按 lv 升序 |
| 攻击后触发 | `atking` | 按 s_uuid 分组,按 lv 升序 |
| 死亡触发 | `dead` | 按 s_uuid 分组,按 lv 升序 |
| 战斗开始 | `fstart` | 按 s_uuid 分组,按 lv 升序 |
| 驻场光环 | `field` | `FieldEntry[]`,按 lv 升序 |
| 复活 | `revive` | `LvReviveEntry[]`,按 lv 升序 |
### 示例:同一技能不同效果
```typescript
// SkillSet 6101 火球 — 纯伤害底座,无 debuff
6101: {
uuid: 6101, name: "火球", sp_name: "fb-1", ...,
// 禁止写 timed_buff_id / buff_type
}
// heroSet 5004 破晓先知 — 冰冻版火球
skills: { 6101: { uuid: 6101, overrides: { ap: 80, timed_buff_id: 7003 } } }
// heroSet 5304 战吼术士 — 中毒版火球
skills: { 6101: { uuid: 6101, overrides: { ap: 80, timed_buff_id: 7005 } } }
// heroSet 6008 兽人火法 — 原版火球(ap=100,无 debuff)
skills: { 6101: { uuid: 6101 } }
```

View File

@@ -34,20 +34,20 @@
"__id__": 104
},
{
"__id__": 154
"__id__": 160
}
],
"_active": true,
"_components": [
{
"__id__": 192
"__id__": 198
},
{
"__id__": 194
"__id__": 200
}
],
"_prefab": {
"__id__": 196
"__id__": 202
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2412,22 +2412,25 @@
},
{
"__id__": 141
},
{
"__id__": 147
}
],
"_active": true,
"_components": [
{
"__id__": 147
"__id__": 153
},
{
"__id__": 149
"__id__": 155
},
{
"__id__": 151
"__id__": 157
}
],
"_prefab": {
"__id__": 153
"__id__": 159
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -3410,6 +3413,142 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Blood",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 104
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 148
},
{
"__id__": 150
}
],
"_prefab": {
"__id__": 152
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 37.5,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 147
},
"_enabled": true,
"__prefab": {
"__id__": 149
},
"_contentSize": {
"__type__": "cc.Size",
"width": 15,
"height": 15
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "63VeKhX09FEZh48s67mjl8"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 147
},
"_enabled": true,
"__prefab": {
"__id__": 151
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 0,
"b": 0,
"a": 255
},
"_spriteFrame": {
"__uuid__": "abc35b6e-b052-4835-a3a3-cb85abd47f4d@b9e62",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": true,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "58T0DOBFdIjYOp0YDM5mU8"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "a96dNbPZtGHIAUTPYO1eo7",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -3420,7 +3559,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 148
"__id__": 154
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3448,7 +3587,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 150
"__id__": 156
},
"_alignFlags": 4,
"_target": null,
@@ -3484,7 +3623,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 152
"__id__": 158
},
"_resizeMode": 0,
"_layoutType": 3,
@@ -3534,9 +3673,6 @@
"__id__": 1
},
"_children": [
{
"__id__": 155
},
{
"__id__": 161
},
@@ -3548,22 +3684,25 @@
},
{
"__id__": 179
},
{
"__id__": 185
}
],
"_active": false,
"_components": [
{
"__id__": 185
"__id__": 191
},
{
"__id__": 187
"__id__": 193
},
{
"__id__": 189
"__id__": 195
}
],
"_prefab": {
"__id__": 191
"__id__": 197
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -3600,20 +3739,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 154
"__id__": 160
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 156
"__id__": 162
},
{
"__id__": 158
"__id__": 164
}
],
"_prefab": {
"__id__": 160
"__id__": 166
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -3650,11 +3789,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 155
"__id__": 161
},
"_enabled": true,
"__prefab": {
"__id__": 157
"__id__": 163
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3678,11 +3817,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 155
"__id__": 161
},
"_enabled": true,
"__prefab": {
"__id__": 159
"__id__": 165
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -3736,20 +3875,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 154
"__id__": 160
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 162
"__id__": 168
},
{
"__id__": 164
"__id__": 170
}
],
"_prefab": {
"__id__": 166
"__id__": 172
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -3786,11 +3925,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 161
"__id__": 167
},
"_enabled": true,
"__prefab": {
"__id__": 163
"__id__": 169
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3814,11 +3953,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 161
"__id__": 167
},
"_enabled": true,
"__prefab": {
"__id__": 165
"__id__": 171
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -3872,20 +4011,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 154
"__id__": 160
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 168
"__id__": 174
},
{
"__id__": 170
"__id__": 176
}
],
"_prefab": {
"__id__": 172
"__id__": 178
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -3922,11 +4061,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 167
"__id__": 173
},
"_enabled": true,
"__prefab": {
"__id__": 169
"__id__": 175
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3950,11 +4089,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 167
"__id__": 173
},
"_enabled": true,
"__prefab": {
"__id__": 171
"__id__": 177
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -4008,20 +4147,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 154
"__id__": 160
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 174
"__id__": 180
},
{
"__id__": 176
"__id__": 182
}
],
"_prefab": {
"__id__": 178
"__id__": 184
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -4058,11 +4197,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 173
"__id__": 179
},
"_enabled": true,
"__prefab": {
"__id__": 175
"__id__": 181
},
"_contentSize": {
"__type__": "cc.Size",
@@ -4086,11 +4225,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 173
"__id__": 179
},
"_enabled": true,
"__prefab": {
"__id__": 177
"__id__": 183
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -4144,20 +4283,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 154
"__id__": 160
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 180
"__id__": 186
},
{
"__id__": 182
"__id__": 188
}
],
"_prefab": {
"__id__": 184
"__id__": 190
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -4194,11 +4333,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 179
"__id__": 185
},
"_enabled": true,
"__prefab": {
"__id__": 181
"__id__": 187
},
"_contentSize": {
"__type__": "cc.Size",
@@ -4222,11 +4361,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 179
"__id__": 185
},
"_enabled": true,
"__prefab": {
"__id__": 183
"__id__": 189
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -4280,11 +4419,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 154
"__id__": 160
},
"_enabled": true,
"__prefab": {
"__id__": 186
"__id__": 192
},
"_contentSize": {
"__type__": "cc.Size",
@@ -4308,11 +4447,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 154
"__id__": 160
},
"_enabled": true,
"__prefab": {
"__id__": 188
"__id__": 194
},
"_alignFlags": 4,
"_target": null,
@@ -4344,11 +4483,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 154
"__id__": 160
},
"_enabled": true,
"__prefab": {
"__id__": 190
"__id__": 196
},
"_resizeMode": 0,
"_layoutType": 3,
@@ -4399,7 +4538,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 193
"__id__": 199
},
"_contentSize": {
"__type__": "cc.Size",
@@ -4427,7 +4566,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 195
"__id__": 201
},
"hpProgressBar": {
"__id__": 47

View File

@@ -1,17 +1,17 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "atk01",
"_name": "atk02",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 24,
"sample": 30,
"speed": 1,
"wrapMode": 1,
"enableTrsBlending": false,
"_duration": 0.20833333333333334,
"_duration": 0.4,
"_hash": 500763545,
"_tracks": [
{
@@ -21,12 +21,12 @@
"_exoticAnimation": null,
"_events": [
{
"frame": 0.08333333333333333,
"frame": 0.13333333333333333,
"func": "",
"params": []
},
{
"frame": 0.08333333333333333,
"frame": 0.13333333333333333,
"func": "atk",
"params": []
}
@@ -80,12 +80,27 @@
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.041666666666666664,
0.08333333333333333,
0.125,
0.16666666666666666
0.03333333333333333,
0.06666666666666667,
0.1,
0.13333333333333333,
0.16666666666666666,
0.2,
0.23333333333333334,
0.26666666666666666,
0.3,
0.3333333333333333,
0.36666666666666664
],
"_values": [
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@c9de1",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@fae26",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@c9de1",
"__expectedType__": "cc.SpriteFrame"
@@ -105,6 +120,26 @@
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@360bd",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@2c4ee",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@82a83",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@7b4b4",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@dab14",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@5d13a",
"__expectedType__": "cc.SpriteFrame"
}
]
},

View File

@@ -0,0 +1,229 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "fb-2",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 14,
"speed": 1,
"wrapMode": 2,
"enableTrsBlending": false,
"_duration": 0.7142857142857143,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 7
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 13
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channel": {
"__id__": 5
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
{
"__id__": 4
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node"
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 6
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.07142857142857142,
0.14285714285714285,
0.21428571428571427,
0.2857142857142857,
0.35714285714285715,
0.42857142857142855,
0.5,
0.5714285714285714,
0.6428571428571429
],
"_values": [
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@260b5",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@d0af2",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4227a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@62e19",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@2a7dc",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@cb9ed",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4867c",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@6e917",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@0332a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@daea2",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 8
},
"proxy": null
},
"_channel": {
"__id__": 11
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 9
},
{
"__id__": 10
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node-001"
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 12
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.07142857142857142,
0.14285714285714285,
0.21428571428571427,
0.2857142857142857,
0.35714285714285715,
0.42857142857142855,
0.5,
0.5714285714285714,
0.6428571428571429
],
"_values": [
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@47d67",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@f657a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4b23b",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@248f8",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4a311",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@5b879",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@88e75",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@6e59d",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@03629",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@988ca",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@@ -2,12 +2,12 @@
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "7665c091-fac6-442c-aca7-66ba0728b29b",
"uuid": "a71379d4-b14d-4070-96ee-e7c889f25bbd",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "fb-6"
"name": "bm-1"
}
}

View File

@@ -1,36 +1,36 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "fb-2",
"_name": "fb-6",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 14,
"sample": 15,
"speed": 1,
"wrapMode": 2,
"enableTrsBlending": false,
"_duration": 0.7142857142857143,
"_duration": 0.4,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 7
"__id__": 12
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 13
"__id__": 18
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.ObjectTrack",
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
@@ -38,9 +38,21 @@
},
"proxy": null
},
"_channel": {
"__id__": 5
}
"_channels": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
@@ -48,8 +60,227 @@
{
"__id__": 3
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.2,
0.4
],
"_values": [
{
"__id__": 4
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -1.2000000476837158,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.2,
0.4
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0.800000011920929,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.2,
0.4
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 11
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 13
},
"proxy": null
},
"_channel": {
"__id__": 16
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 14
},
{
"__id__": 15
},
"spriteFrame"
]
@@ -65,158 +296,37 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 6
"__id__": 17
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.07142857142857142,
0.14285714285714285,
0.21428571428571427,
0.2857142857142857,
0.35714285714285715,
0.42857142857142855,
0.5,
0.5714285714285714,
0.6428571428571429
0.06666666666666667,
0.13333333333333333,
0.2,
0.26666666666666666
],
"_values": [
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@260b5",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@cb414",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@d0af2",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@d8e4f",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4227a",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@9e30a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@62e19",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@ebc30",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@2a7dc",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@cb9ed",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4867c",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@6e917",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@0332a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@daea2",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 8
},
"proxy": null
},
"_channel": {
"__id__": 11
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 9
},
{
"__id__": 10
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node-001"
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 12
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.07142857142857142,
0.14285714285714285,
0.21428571428571427,
0.2857142857142857,
0.35714285714285715,
0.42857142857142855,
0.5,
0.5714285714285714,
0.6428571428571429
],
"_values": [
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@47d67",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@f657a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4b23b",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@248f8",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@4a311",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@5b879",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@88e75",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@6e59d",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@03629",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@988ca",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@1011a",
"__expectedType__": "cc.SpriteFrame"
}
]

View File

@@ -2,7 +2,7 @@
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "a97c6de3-8bec-4809-8acc-18f95529cf7b",
"uuid": "7665c091-fac6-442c-aca7-66ba0728b29b",
"files": [
".cconb"
],

View File

@@ -1,339 +0,0 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "fb-6",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 15,
"speed": 1,
"wrapMode": 2,
"enableTrsBlending": false,
"_duration": 0.4,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 12
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 18
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channels": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.2,
0.4
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -1.2000000476837158,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.2,
0.4
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0.800000011920929,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.2,
0.4
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 11
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 13
},
"proxy": null
},
"_channel": {
"__id__": 16
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 14
},
{
"__id__": 15
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node"
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 17
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.06666666666666667,
0.13333333333333333,
0.2,
0.26666666666666666
],
"_values": [
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@cb414",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@d8e4f",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@9e30a",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@ebc30",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@1011a",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@@ -257,6 +257,7 @@
"endType": 0,
"speed": 720,
"time": 0,
"distance": 0,
"_id": ""
},
{

View File

@@ -173,7 +173,7 @@
"a": 255
},
"_spriteFrame": {
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@3c745",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@ead01",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
@@ -257,6 +257,7 @@
"endType": 0,
"speed": 720,
"time": 0,
"distance": 0,
"_id": ""
},
{

View File

@@ -1,7 +1,7 @@
[
{
"__type__": "cc.Prefab",
"_name": "fb-6",
"_name": "bm-1",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
@@ -13,35 +13,38 @@
},
{
"__type__": "cc.Node",
"_name": "fb-6",
"_name": "bm-1",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 8
}
],
"_active": true,
"_components": [
{
"__id__": 8
},
{
"__id__": 10
},
{
"__id__": 12
},
{
"__id__": 14
},
{
"__id__": 16
},
{
"__id__": 18
},
{
"__id__": 20
},
{
"__id__": 22
}
],
"_prefab": {
"__id__": 18
"__id__": 24
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -58,8 +61,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 0.8,
"y": 0.8,
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
@@ -108,8 +111,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": -1,
"y": 1,
"x": -0.5,
"y": 0.5,
"z": 1
},
"_mobility": 0,
@@ -136,13 +139,13 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 78,
"height": 30
"width": 277,
"height": 250
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
"y": 0
},
"_id": ""
},
@@ -173,12 +176,12 @@
"a": 255
},
"_spriteFrame": {
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@cb414",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@260b5",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
@@ -211,6 +214,139 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Node-001",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 9
},
{
"__id__": 11
}
],
"_prefab": {
"__id__": 13
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": -0.5,
"y": 0.5,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 10
},
"_contentSize": {
"__type__": "cc.Size",
"width": 122,
"height": 68
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "4blcTDlixIRI3qtyERLs2E"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 12
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e6QtagQwZA/50lsdWvOjb0"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "ed54OCubBD853t6+5pUPLQ",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -221,7 +357,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 9
"__id__": 15
},
"_contentSize": {
"__type__": "cc.Size",
@@ -231,7 +367,7 @@
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
"y": 0
},
"_id": ""
},
@@ -249,10 +385,10 @@
},
"_enabled": true,
"__prefab": {
"__id__": 11
"__id__": 17
},
"atk_x": 20,
"atk_y": 20,
"atk_x": 0,
"atk_y": 0,
"runType": 0,
"endType": 2,
"speed": 720,
@@ -274,7 +410,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 13
"__id__": 19
},
"enabledContactListener": true,
"bullet": false,
@@ -308,7 +444,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 15
"__id__": 21
},
"tag": 0,
"_group": 1,
@@ -319,7 +455,7 @@
"_offset": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
"y": 50
},
"_size": {
"__type__": "cc.Size",
@@ -342,17 +478,17 @@
},
"_enabled": true,
"__prefab": {
"__id__": 17
"__id__": 23
},
"playOnLoad": true,
"_clips": [
{
"__uuid__": "7665c091-fac6-442c-aca7-66ba0728b29b",
"__uuid__": "a71379d4-b14d-4070-96ee-e7c889f25bbd",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": {
"__uuid__": "7665c091-fac6-442c-aca7-66ba0728b29b",
"__uuid__": "a71379d4-b14d-4070-96ee-e7c889f25bbd",
"__expectedType__": "cc.AnimationClip"
},
"_id": ""

View File

@@ -2,12 +2,12 @@
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "8234d6b7-f362-49cc-97e1-1090e4d63e5e",
"uuid": "cebddd7c-10f2-4e45-968f-b61f0fb1ee25",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "fb-6"
"syncNodeName": "bm-1"
}
}

View File

@@ -20,31 +20,28 @@
"_children": [
{
"__id__": 2
},
{
"__id__": 8
}
],
"_active": true,
"_components": [
{
"__id__": 8
},
{
"__id__": 10
},
{
"__id__": 12
},
{
"__id__": 14
},
{
"__id__": 16
},
{
"__id__": 18
},
{
"__id__": 20
},
{
"__id__": 22
}
],
"_prefab": {
"__id__": 24
"__id__": 18
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -61,8 +58,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"x": 0.8,
"y": 0.8,
"z": 1
},
"_mobility": 0,
@@ -111,8 +108,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": -0.5,
"y": 0.5,
"x": -1,
"y": 1,
"z": 1
},
"_mobility": 0,
@@ -139,13 +136,13 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 277,
"height": 250
"width": 78,
"height": 30
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
"y": 0.5
},
"_id": ""
},
@@ -176,12 +173,12 @@
"a": 255
},
"_spriteFrame": {
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@260b5",
"__uuid__": "2842dc10-d89e-4ff6-8a11-6d09bf48cf20@cb414",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
@@ -214,139 +211,6 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Node-001",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 9
},
{
"__id__": 11
}
],
"_prefab": {
"__id__": 13
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": -0.5,
"y": 0.5,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 10
},
"_contentSize": {
"__type__": "cc.Size",
"width": 122,
"height": 68
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "4blcTDlixIRI3qtyERLs2E"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 8
},
"_enabled": true,
"__prefab": {
"__id__": 12
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e6QtagQwZA/50lsdWvOjb0"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "ed54OCubBD853t6+5pUPLQ",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -357,7 +221,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 15
"__id__": 9
},
"_contentSize": {
"__type__": "cc.Size",
@@ -367,7 +231,7 @@
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
"y": 0.5
},
"_id": ""
},
@@ -385,10 +249,10 @@
},
"_enabled": true,
"__prefab": {
"__id__": 17
"__id__": 11
},
"atk_x": 0,
"atk_y": 0,
"atk_x": 20,
"atk_y": 20,
"runType": 0,
"endType": 2,
"speed": 720,
@@ -410,7 +274,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 19
"__id__": 13
},
"enabledContactListener": true,
"bullet": false,
@@ -444,7 +308,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 21
"__id__": 15
},
"tag": 0,
"_group": 1,
@@ -455,7 +319,7 @@
"_offset": {
"__type__": "cc.Vec2",
"x": 0,
"y": 50
"y": 0
},
"_size": {
"__type__": "cc.Size",
@@ -478,17 +342,17 @@
},
"_enabled": true,
"__prefab": {
"__id__": 23
"__id__": 17
},
"playOnLoad": true,
"_clips": [
{
"__uuid__": "a97c6de3-8bec-4809-8acc-18f95529cf7b",
"__uuid__": "7665c091-fac6-442c-aca7-66ba0728b29b",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": {
"__uuid__": "a97c6de3-8bec-4809-8acc-18f95529cf7b",
"__uuid__": "7665c091-fac6-442c-aca7-66ba0728b29b",
"__expectedType__": "cc.AnimationClip"
},
"_id": ""

View File

@@ -2,7 +2,7 @@
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "645dfb6e-ad1c-4084-bbe8-ebd720c52af0",
"uuid": "8234d6b7-f362-49cc-97e1-1090e4d63e5e",
"files": [
".json"
],

File diff suppressed because it is too large Load Diff

View File

@@ -43,6 +43,7 @@ export enum DebuffIcon {
Penetration = "Penetration", // 穿透
Stun = "Stun", // 击晕
Poison = "Poison", // 中毒
Blood = "Blood", // 出血
}
/**
@@ -56,10 +57,15 @@ export const DEBUFF_ICON_MAP: Record<number, DebuffIcon> = {
7004: DebuffIcon.Stun, // 击晕
7005: DebuffIcon.Poison, // 中毒
7006: DebuffIcon.AttackDebuff, // 减攻
7007: DebuffIcon.Blood, // 出血
};
/** 易伤 buff 的 id(HeroAtkSystem 结算时按此 id 汇总易伤值) */
export const VULNERABLE_BUFF_ID = 7002;
/** 出血 buff 的 id(每层使目标被暴击率 +1%) */
export const BLEED_BUFF_ID = 7007;
/** 出血每层附加的被暴击率(百分点) */
export const BLEED_CRIT_PER_STACK = 1;
/** Buff 静态定义 */
export interface BuffConfig {
@@ -121,6 +127,13 @@ export const BuffList: Record<number, BuffConfig> = {
modifiers: [{ attr: Attrs.ap, op: ModOp.Flat, value: -10 }],
info: "攻击力降低 10 点,持续 5 秒",
},
// 出血(每层使目标被暴击率 +1%,微量伤害 DoT;暴击率加成由 HeroAtkSystem 按 BLEED_BUFF_ID 层数结算)
7007: {
id: 7007, name: "出血", icon: "Stat_Blood",
category: BuffCategory.Debuff, duration: 5, max_stack: 5,
tick: { interval: 0.5, damage_or_heal: -1, scale_by_ap_pct: 0 },
info: "微量出血,每层使自身被暴击率提升 1%,可叠加,持续 5 秒",
},
// 占卜师战前攻击强化(基础档:+30/5s;高阶通过 buff_value/buff_duration 覆写成长)
7111: {
id: 7111, name: "战前强攻", icon: "Stat_Attack_03",

View File

@@ -221,7 +221,6 @@ export const SkillSet: Record<number, SkillConfig> = {
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
},
6004: {
uuid: 6004, name: "攻击", sp_name: "atk1", icon: "Stat_Attack_01", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
@@ -268,23 +267,43 @@ export const SkillSet: Record<number, SkillConfig> = {
DTType: DTType.single, ap: 100, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
},
6101: {
uuid: 6101, name: "火球", sp_name: "fb-1", icon: "Stat_FireDamage", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
6013: {
uuid: 6013, name: "闪电术", sp_name: "fb-1", icon: "Stat_FireDamage", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, stun: 0, ap: 100, hit_count: 2, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害, 一定几率暴击, 高阶技能",
},
//怪物法师统一使用 暗影球
// 火球术 — 纯伤害底座,debuff/暴击由引用处通过 overrides 注入
6014: {
uuid: 6014, name: "火球术", sp_name: "fb-1", icon: "Stat_FireDamage", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 100, hit_count: 2, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
RType: RType.bezier, EType: EType.collision, info: "造成攻击力100%的伤害",
},
//大招
6102: {
uuid: 6102, name: "飓风", sp_name: "fb-2", icon: "Stat_Mana", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 100, hit_count: 2, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
RType: RType.linear, EType: EType.collision, info: "造成攻击力100%的伤害, 高阶技能",
},
// DoT 技能:命中附加易伤(7002,受到伤害附加固定值,可被易伤抗性减免)
6103: {
uuid: 6103, name: "光闪", sp_name: "atk3", icon: "Stat_Attack_01", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 150, hit_count: 5, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
RType: RType.bezier, EType: EType.collision, info: "对周围的敌人造成攻击力150%的伤害",//英雄配置技能的时候,可以叠加出血debuff
},
6104: {
uuid: 6104, name: "灼热火球", sp_name: "fb-1", icon: "Stat_FireDamage", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 80, hit_count: 2, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote,
RType: RType.bezier, EType: EType.collision, timed_buff_id: 7002, info: "造成攻击力80%的伤害, 命中附加易伤(5秒内受到伤害附加固定值)",
uuid: 6104, name: "气斩", sp_name: "atk2", icon: "Stat_Attack_01", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 150, hit_count: 5, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
RType: RType.bezier, EType: EType.collision, info: "对周围的敌人造成攻击力150%的伤害",//英雄配置技能的时候,可以叠加击退
},
6105: {
uuid: 6105, name: "火焰斩", sp_name: "atk5", icon: "Stat_Attack_01", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 150, hit_count: 5, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
RType: RType.bezier, EType: EType.collision, info: "对周围的敌人造成攻击力150%的伤害",//英雄配置技能的时候,可以叠加暴击debuff
},
6106: {
uuid: 6106, name: "闪电斩", sp_name: "atk5", icon: "Stat_Attack_01", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk",
DTType: DTType.single, ap: 150, hit_count: 5, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.Melee, is_accel: true,
RType: RType.bezier, EType: EType.collision, info: "对周围的敌人造成攻击力150%的伤害",//英雄配置技能的时候,可以疲惫触发6013闪电术
},
6201: {
uuid: 6201, name: "陨石术", sp_name: "fb-3", icon: "Stat_Tripleshot", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max",

View File

@@ -1,4 +1,4 @@
import { v3 } from "cc"
import { v3 } from "cc"
import { BoxSet, FacSet, FightSet } from "./GameSet"
import { SkillOverrides, TGroup, SkillSet, FieldSkillSet, SkillConfig, SkillKind, FieldSkillConfig, FieldSkillType, mergeSkillParams } from "./SkillSet"
import { BuffList, BuffConfig, ModOp } from "./BuffSet"
@@ -424,7 +424,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5004 破晓先知 — fstart 全队攻击
5004: {
uuid: 5004, name: "破晓先知", path: "hm1", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 143, ap: 32,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7003 } } },
fstart: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 3 } },
@@ -437,7 +437,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5005 战歌法师 — field 攻击光环
5005: {
uuid: 5005, name: "战歌法师", path: "hm2", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 143, ap: 32,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7006 } } },
field: [
{ lv: 1, uuids: [{ uuid: 7002, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7002, value: 0.2 }] },
@@ -490,7 +490,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5104 圣光祭司 — fstart 全队护盾(更高数值)
5104: {
uuid: 5104, name: "圣光祭司", path: "hm3", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 287, ap: 64,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7003 } } },
fstart: {
6301: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 3 } },
@@ -503,7 +503,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5105 风怒先知 — field 攻速光环
5105: {
uuid: 5105, name: "风怒先知", path: "hm1", fac: FacSet.HERO, card_lv: 2, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 287, ap: 64,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7006 } } },
field: [
{ lv: 1, uuids: [{ uuid: 7006, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7006, value: 0.2 }] },
@@ -569,7 +569,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5204 晨光贤者 — fstart 全队暴击(范围扩大)
5204: {
uuid: 5204, name: "晨光贤者", path: "hm2", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 430, ap: 96,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7002 } } },
fstart: {
6403: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7012, buff_value: 5, buff_duration: 5 } },
@@ -582,7 +582,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5205 精准术士 — field 暴击光环(范围扩大)
5205: {
uuid: 5205, name: "精准术士", path: "hm3", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 430, ap: 96,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7006 } } },
field: [
{ lv: 1, uuids: [{ uuid: 7004, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7004, value: 0.2 }] },
@@ -640,7 +640,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5304 战吼术士 — fstart 全队攻击+生命(双效果)
5304: {
uuid: 5304, name: "战吼术士", path: "hm1", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 573, ap: 128,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7005 } } },
fstart: {
6401: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 5 } },
@@ -658,7 +658,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5305 领域贤者 — field 暴伤+攻速光环(双效果)
5305: {
uuid: 5305, name: "领域贤者", path: "hm2", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Support, hp: 573, ap: 128,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7006 } } },
field: [
{ lv: 1, uuids: [{ uuid: 7005, value: 0.2 }, { uuid: 7006, value: 0.1 }] },
{ lv: 3, uuids: [{ uuid: 7005, value: 0.4 }, { uuid: 7006, value: 0.2 }] },
@@ -731,7 +731,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5404 涅槃贤者 — fstart 护盾+攻击 + revive(双技能)
5404: {
uuid: 5404, name: "涅槃贤者", path: "hm3", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: 717, ap: 160,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } },
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7004 } } },
fstart: {
6301: [
{ lv: 1, s_lv: SkillLv.Lv1, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 5 } },
@@ -814,7 +814,7 @@ export const HeroInfo: Record<number, heroInfo> = {
},
6008: {
uuid: 6008, name: "兽人火法", path: "m8", fac: FacSet.MON, lv: 1, type: HType.Long, monType: MonType.Summoner, hp: 220, ap: 24, speed: 70,
skills: { 6101: { uuid: 6101, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排召唤系法师怪"
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排召唤系法师怪"
},
// BOSS怪物 — 本表 hp/ap 仅作外观/技能档位参考,运行时面板由 RogueConfig 的
@@ -837,7 +837,7 @@ export const HeroInfo: Record<number, heroInfo> = {
},
6105: {
uuid: 6105, name: "亡灵首领-法师", path: "mb5", fac: FacSet.MON, lv: 6, type: HType.Long, monType: MonType.LongBoss, hp: 1000, ap: 30, speed: 110,
skills: { 6104: { uuid: 6104, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "后排高AP Boss"
skills: { 6014: { uuid: 6014, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 80, timed_buff_id: 7002 } } }, info: "后排高AP Boss"
},
6106: {
uuid: 6106, name: "亡灵首领-骑马战士", path: "mb6", fac: FacSet.MON, lv: 6, type: HType.Melee, monType: MonType.MeleeBoss, hp: 1800, ap: 20, speed: 130,

View File

@@ -19,7 +19,7 @@ import { getMonsterGoldDrop } from "../map/RogueConfig";
import { MissionEconomy } from "../map/MissionEconomy";
import { MoveComp } from "./MoveComp";
import { buffManager, BuffApplyOverrides } from "./BuffManager";
import { DEBUFF_ICON_MAP, VULNERABLE_BUFF_ID, BuffList } from "../common/config/BuffSet";
import { DEBUFF_ICON_MAP, VULNERABLE_BUFF_ID, BLEED_BUFF_ID, BLEED_CRIT_PER_STACK, BuffList } from "../common/config/BuffSet";
import { BuffComp } from "./BuffComp";
/** 最终伤害数据接口
@@ -135,8 +135,8 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
this.onAttacked(target);
// 暴击判定
// 使用施法者的暴击率属性(damageEvent.Attrs 快照),- 被攻击者的暴击抗性属
const criticalChance = (damageEvent.Attrs[Attrs.critical] || 0) - TAttrsComp.getFinalCriticalRes();
// 使用施法者的暴击率属性(damageEvent.Attrs 快照)- 被攻击者的暴击抗性 + 目标出血层数附加的被暴击率
const criticalChance = (damageEvent.Attrs[Attrs.critical] || 0) - TAttrsComp.getFinalCriticalRes() + this.getBleedCritBonus(target);
const isCrit = this.checkChance(criticalChance);
// 计算基础伤害:DoT 直接用固定 tick 值,普攻走 dmgCount 公式
@@ -462,6 +462,16 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
* @param damage 原始伤害值
* @returns {remainingDamage, absorbedDamage} 剩余伤害值和被护盾减免的伤害值
*/
/**
* 目标出血层数附加的被暴击率(每层 +BLEED_CRIT_PER_STACK 百分点)。
* @returns 附加的被暴击率(百分点)
*/
private getBleedCritBonus(target: ecs.Entity): number {
if (!target.has(BuffComp)) return 0;
const layers = target.get(BuffComp).buffs.get(BLEED_BUFF_ID);
return (layers?.length ?? 0) * BLEED_CRIT_PER_STACK;
}
/**
* 计算易伤附加伤害:汇总目标每层易伤 buff 的数值(value_override 优先),再被易伤抗性百分比减免。
* @returns 附加伤害值(向下取整,非负)