6 Commits

Author SHA1 Message Date
957cd6d453 refactor(英雄视图): 重构buff清理逻辑,支持按增益/减益类型过滤
将removeBuff方法替换为更通用的clearBuffs方法,支持清理指定属性或所有属性的buff,并能区分增益和减益效果。新增私有方法clearBuffsForAttr处理具体清理逻辑,提高代码复用性。
2025-10-25 15:38:56 +08:00
e62eecd214 refactor(buff系统): 重构英雄的buff管理逻辑,支持多次叠加和临时效果
- 统一管理持久型和临时型buff,简化buff的添加和移除逻辑
- 更新buff的叠加规则,允许同一属性的多个buff实例共存
- 优化属性计算公式,确保所有buff在计算时被纳入考虑
- 新增清空buff和移除特定buff的辅助方法,提升管理灵活性
- 详细更新文档,提供API使用示例和数据结构说明
2025-10-25 15:29:25 +08:00
11f1f08c1d refactor(属性系统): 重构英雄属性系统,将属性定义移至HeroAttrs模块
- 将Attrs和DBuff相关定义从SkillSet迁移至HeroAttrs
- 新增NeAttrs枚举用于管理负面状态
- 重构HeroViewComp中的buff/debuff处理逻辑
- 优化属性分类和分组,增加新属性类型
- 移除旧的DBuff相关代码,改用统一的负面状态管理
2025-10-25 15:04:11 +08:00
91eb0c9f6e SkillSet.ts 文件中的 Attrs 枚举、getAttrs 函数和 AttrsType 配置对象移动到 HeroAttrs.ts 文件中 2025-10-25 12:46:53 +08:00
abbe4cc6a0 refactor(hero): 将英雄属性相关引用统一替换为 HeroAttrs
- 移除废弃的 AttributeExample 示例类文件
- 全面替换各模块中对技能属性配置 SkillSet 中 Attrs 的引用,改用 HeroAttrs 中的 Attrs
- 保持代码引用整理一致性,优化属性相关模块的导入顺序和结构
- 无功能性改动,仅代码结构和引用路径调整,提高代码维护性和模块解耦性
2025-10-25 10:34:55 +08:00
326ceaf3d1 refactor(config): 优化英雄和技能配置数据结构
- 删除《吸血鬼幸存者》英雄特性分析文档,清理无用参考资料
- 调整技能配置,统一攻击类型枚举命名以AtkedName代替AtkedType
- 新增DType枚举区分物理与魔法攻击类型,丰富技能攻击属性
- 更新基础攻击技能配置,添加攻击类型字段并修正部分技能数据
- 删除heroSet.ts中旧版英雄基础属性和计算逻辑,简化代码结构
- 精简英雄信息定义,修正英雄基础属性和技能配置,改进角色定位说明
- 重新整理怪物角色基础属性和技能,提升数值合理性与一致性
2025-10-24 23:08:20 +08:00
20 changed files with 1520 additions and 1047 deletions

View File

@@ -13,8 +13,8 @@
### 2. 奖励选择系统
- 每波怪物清理后提供三种奖励选项:弱、一般、强
- 不同奖励选项消耗不同的金币数量
- 奖励类型包括:英雄强化、技能升级、装备获取、属性提升等
- 奖励评分系统,评分越高,消耗金币越多
- 奖励类型包括:英雄强化、技能升级、装备获取、属性提升,新技能获得
- 每个奖励有一个战力评分,评分越高,能力越强,消耗金币越多
### 3. 金币经济系统
- 金币通过击败怪物固定掉落获得
@@ -30,7 +30,14 @@
- 稀有装备获取
### 5. 评分与成就系统
- 建立评分机制评价玩家每波奖励选择
- 建立评分机制评价:
- 装备评分:根据装备属性加成计算
- 技能评分:根据技能效果计算
- 杀怪数量评分:根据击败怪物数量计算
- 特殊事件奖励评分:根据特殊事件奖励计算
- 受伤评分:根据英雄受伤hp值和受伤次数进行评分
- DPS评分:根据英雄每秒伤害能力计算
- 最大伤害值评分:根据英雄最大伤害值计算
- 高评分可解锁特殊成就和奖励
## 游戏进程设计
@@ -47,7 +54,6 @@
- 特殊机制随进度解锁,增加游戏深度
## 英雄系统设计
### 英雄类型
- **战士型**:高生命值,近战输出
- **远程型**:远程攻击,较高攻击力
@@ -56,23 +62,24 @@
- **刺客类型**:高爆发,机动性强
### 英雄成长
- 通过消耗金币升级提升基础属性
- 解锁和升级技能获得更强战斗力
- 装备系统提供额外属性加成
## 装备与技能系统
### 装备系统
- 装备分为武器、防具、饰品等类型
- 品质分为绿色、蓝色、紫色、橙色四个等级
- 装备可升级,提升属性效果
- 稀有装备提供特殊被动技能
- 三选一奖励中,有属性提升,有技能升级,有新技能解锁,有装备获取
- 属性提升:
- 提升英雄基础属性,包括生命值、攻击力、防御力、速度等
- 提升属性值根据奖励评分确定
- 技能升级:
- 升级普通攻击技能或大招技能
- 升级后技能效果提升,消耗金币
- 新技能解锁:
- 解锁新技能,增加英雄战斗能力
- 解锁新技能后,可选择升级或不升级
- 装备获取:
- 获取新装备,增加英雄属性加成
- 装备属性根据奖励评分确定
### 技能系统
- 每个英雄拥有多个技能
- 技能分为主动技能和被动技能
- 技能可升级提升效果
- 特殊技能组合产生协同效应
- 每个英雄拥初始拥有1个普通攻击技能和大招技能,技能消耗mp值和固定cd
- 后续通过,每次的奖励可选择升级普通攻击技能、大招技能或新技能
-
## 策略深度设计

View File

@@ -1,225 +1,45 @@
## 《吸血鬼幸存者》英雄特性分析报告
# 《吸血鬼幸存者》角色特性总表
作为本游戏开发的参考,对《吸血鬼幸存者》中的英雄设计进行详细分析:
| 角色名称 | 解锁条件 | 初始武器 | 被动技能(核心特性) | 特点/备注 |
|---------|----------|----------|---------------------|-----------|
| **安东尼奥·贝尔帕斯** | 初始角色 | 鞭子 | 每10级增加10%伤害最高50% | 致敬《恶魔城》贝尔蒙特家族,前期扎实。 |
| **伊梅尔达·贝尔帕斯** | 10金币购买 | 魔杖 | 每5级增加10%经验获取最高30% | 升级更快,适合快速发育。 |
| **帕斯奎丽娜·贝尔帕斯** | 100金币购买 | 符文追踪器 | 每5级增加10%射弹速度最高30% | 提升武器飞行速度,增强命中率。 |
| **吉纳罗·贝尔帕斯** | 500金币购买 | 飞刀 | **永久投射物数量+1** | 核心神技,极大增强所有武器的清怪能力。 |
| **阿卡·拉多纳** | 火焰之杖4级后500金购买 | 火焰之杖 | 每10级减少5%冷却最高15% | 99级解锁隐藏至宝"火之心"。 |
| **波尔塔·拉多纳** | 闪电戒指4级后500金购买 | 闪电戒指 | 开局冷却-90%,随等级逐渐恢复正常 | 开局强势,前期优势大。 |
| **拉玛·拉多纳** | 诅咒≥10%时生存20分钟 | 斧头 | 每10级增加力量、移速、诅咒最高20% | 高风险高回报,后期属性强大。 |
| **波·拉奇奥** | 大蒜7级后500金购买 | 大蒜 | **永久拾取范围+25%**(生命-30 | 磁铁范围加成计算方式特殊可叠至233%。 |
| **苏奥尔·克莱里奇** | 累计恢复1000生命 | 圣水 | 开局范围+400%,随等级递减 | 前期圣水范围极大,安全度高。 |
| **多马利奥** | 单局赚5000金币 | 国王圣经 | 射弹速度+40%,持续时间+40%,移速-40% | **游戏中移动速度最慢的角色**。 |
| **克罗奇·弗赖托** | 总计击败10万敌人 | 十字架 | 1级和33级各获得一次复活 | 移动速度第二快,生存能力强。 |
| **克莉丝汀·达瓦因** | 五芒星7级后500金购买 | 五芒星 | 冷却时间-25%(生命、力量降低) | 高冷却缩减,需尽快进化五芒星避免损失经验。 |
| **刺·普罗沃拉** | 疯狂森林棺材中解锁 | 菲拉图普罗&八雀(双枪) | **每级力量+1%(无上限)** | 纯粹的大后期角色,成长性极高。 |
| **乔瓦娜·格拉纳** | 图书馆棺材中解锁 | 苦猫 | **每级投射物速度+1%(无上限)** | 搭配圣水、符文追踪器等武器效果佳。 |
| **萝·卜头** | 奶牛场棺材中解锁 | 魔法之歌 | **每级武器效果持续时间+1%(无上限)** | 增强圣水、国王圣经等持续型武器。 |
| **莫塔乔** | 总计击败3000骷髅 | 骨头 | 每20级投射物+1最高+3 | 20级前较弱60级后配合道具可达+6投射物。 |
| **雅塔·卡瓦洛** | 总计击败3000狮头 | 樱桃炸弹 | 每20级投射物+1最高+3 | 特性同莫塔乔20级前是弱势期。 |
| **比安卡·兰巴** | 总计击败3000牛奶精灵 | 卡雷洛 | 每20级投射物+1最高+3 | 特性同莫塔乔20级前是弱势期。 |
| **O'Sole** | 总计击败3000龙虾 | 天体除尘 | 每20级投射物+1最高+3 | 特性同莫塔乔,输入"PET"有隐藏彩蛋(治疗)。 |
| **御堂纲纪** | 在宫古城往东走,路过通往连接领域的大门后打开棺材解锁 | 花剑 | 每20级获得一个傀儡作为随从最多+4 | 濒死时触发"独秀专场"。需先解锁他才能解锁"腥风血雨"武器。 |
| **邦妮** | 完全进化武器"腥风血雨" | 冲拳 | 默认与福米娜组队进入关卡 | 解锁后可装备踢击。濒死时触发"独秀专场"。 |
| **福米娜** | 完全进化武器"踢击" | 利剑机枪 | 默认与邦妮组队进入关卡 | 解锁后可装备鹰隼神枪。濒死时触发"独秀专场"。 |
| **5号歌姬** | 完全进化武器"鹰隼神枪" | 超级导弹 | 拥有6种不同属性的皮肤 | 解锁后可装备双龙刀。所有皮肤状态下濒死时均触发"独秀专场"。 |
| **阿米亚** | 完全进化武器"双龙刀" | 精灵戒指或直觉 | 收集她召唤的猫时会变得更强 | 在濒死时会触发"独秀专场"。 |
| **西乌纳斯** | 击败连接领域所有部分的BOSS及最终BOSS后在东边打开棺材解锁 | 市剑 | 被击败的敌人会成为随从,生命值上限提高时随从上限也随之提高 | 在濒死时会触发"独秀专场"。 |
| **末代皇帝** | 使用邦妮或福米娜,在"翻转翡翠模型"中的格雷隆击败其恶魔形态 | 火焰大剑 | 触发点亮攻击的频率更高 | 在濒死时会触发"独秀专场"。 |
| **多洛雷斯** | 使用西乌纳斯,在"翻转翡翠模型"中的黄泉击败特定BOSS | 布洛瓦战斧 | 在"濒死遗迹"中,每次有角色复活(包括自己)时触发"独秀专场" | 机制独特,与复活体系联动。 |
| **玛查** | 使用阿米亚,在"翻转翡翠模型"中的阿瓦隆击败特定BOSS | 库库里匕首和隐藏的灾厄戒指 | 敌人生成数量+50% | 在濒死时会触发"独秀专场",高难度角色。 |
| **丽塔** | 使用纲纪,在"翻转翡翠模型"中的普尔克拉击败土龙 | 长柄刀 | 开局即可使用特技"天雷" | 在濒死时会触发"独秀专场"。 |
| **傀儡** | 在"翻转翡翠模型"中的宫古城击败木之神灵 | 双龙刀(武藏皮肤) | 具有四种皮肤每点亮一个新特技可获得1次复活和5%成长属性 | 皮肤对应不同初始武器:武藏(双龙刀)/小町(库库里匕首)/坊(鹰隼神枪)/宿祢(冲拳)。 |
| **老师** | 使用5号歌姬在"翻转翡翠模型"中的翻转普罗维登斯击败活体苦恼 | 直觉 | 每20级飞射物增加最多+4 | 点亮技能高超。 |
| **洛洛、嘶嘶、喵喵和呼噜** | 使用阿米亚,需要彪悍猫(升满级),通过各种方式尽量增加彪悍猫出现的数量 | (依形态而定) | 每次触发"独秀专场"时获得一名随从 | 此为阿米亚的不同形态,在濒死时会触发"独秀专场"。 |
| **喜纳** | 通关一次后,再次进入翡翠模型然后立即退出(若未解锁可尝试在角色触发独秀专场后再死亡) | 无 | 天生知晓特技"飞燕切"和"疾风剑" | 濒死触发"独秀专场"时获得额外力量。 |
| **今琥** | 使用5号歌姬和魔力歌谣击败活体苦恼 | 无 | 天生知晓特技"地狱断面"和"鲜血狂怒" | 濒死触发"独秀专场"时获得额外力量。 |
| **门之邪灵** | 在冰冻状态下击败格雷隆的BOSS如使用时之柳叶刀或卡牌时空的跨越等道具 | 鲜血圣杯 | 天生知晓"朱砂"特技 | 解锁方式特殊,需利用冰冻效果。 |
### 1. 核心设计理念
《吸血鬼幸存者》采用了极简的操作方式,玩家只需控制角色移动,所有攻击行为均为自动触发。这种设计让玩家能够专注于策略搭配和角色养成,而非复杂的操作。
### 2. 英雄定位分类
#### 2.1 输出型英雄
- **特点**:高攻击力,适合快速清理敌人
- **代表**:火法师、剑士等
- **适用场景**:前期快速发育,中期压制敌人数量
#### 2.2 辅助型英雄
- **特点**:提供范围控制或辅助效果
- **代表**:冰法师职业等
- **适用场景**:面对大量敌人时的控场
#### 2.3 生存型英雄
- **特点**:高生命值或特殊生存机制
- **代表**:战士类角色
- **适用场景**:高难度挑战
### 3. 初始属性倾向
#### 3.1 攻击导向型
- 初始攻击力较高
- 攻击速度快
- 生命值相对较低
- 适合激进打法
#### 3.2 平衡发展型
- 各项属性较为均衡
- 适应性强
- 适合新手玩家
#### 3.3 生存优先型
- 初始生命值高
- 移动速度较快
- 攻击属性偏低
- 适合保守打法
### 4. 专属武器/技能机制
#### 4.1 武器系统
- 每个英雄初始配备特定武器
- 武器可通过合成进化为更强形态
- 最多可同时携带6种武器
- 武器效果多样化:范围攻击、穿透攻击、追踪攻击等
#### 4.2 技能进化
- 武器达到特定等级后可合成新武器
- 不同武器组合产生不同效果
- 部分武器具有独特的终极形态
### 5. 独特机制/成长系统
#### 5.1 属性成长
- 力量:影响武器伤害
- 速度:影响移动速度和攻击速度
- 持续时间:影响技能持续时间
- 范围:影响攻击范围
- 效果持续时间:影响控制效果时长
#### 5.2 等级解锁机制
- 每升5级解锁新的能力或道具槽位
- 特定等级达成可解锁隐藏内容
- 成长曲线非线性,后期提升显著
#### 5.3 随机性元素
- 关卡内随机获得强化道具
- 武器合成具有一定随机性
- 每次游戏体验略有差异
### 6. 玩法特点
#### 6.1 自动战斗系统
- 玩家仅需控制移动
- 武器自动攻击最近敌人
- 降低操作门槛,提高爽快感
#### 6.2 Build构筑系统
- 通过不同武器组合形成特色Build
- 每个英雄适合多种玩法流派
- 鼓励重复游玩探索不同搭配
#### 6.3 时间推进机制
- 敌人随时间不断增强
- 每分钟刷新新类型敌人
- BOSS战提供阶段性挑战
#### 6.4 成长反馈循环
- 击杀敌人获得经验值升级
- 升级获得属性提升或新能力
- 强化道具进一步增强战斗力
- 形成正向成长循环
### 7. 对本项目的参考价值
#### 7.1 简化操作理念
- 可借鉴其简化操作的设计思路
- 让玩家专注于策略而非复杂操作
#### 7.2 多样化成长路径
- 英雄应具备多种发展方向
- 通过装备/技能系统实现差异化
#### 7.3 正向反馈机制
- 设计清晰的成长反馈循环
- 提供持续的游戏动力
#### 7.4 Build构筑深度
- 提供丰富的组合可能性
- 增加游戏重玩价值
## 《吸血鬼幸存者》英雄独特机制详析
### 1. 独特成长机制
#### 1.1 无限成长型
- **代表角色**Avatar Infernas阿凡达·因弗纳斯、Smith IV史密斯四世
- **机制特点**:每升一级获得固定属性加成,无上限
- **具体表现**
- Avatar Infernas每级+2%移速、+0.5%力量、-0.25%冷却、+0.5%诅咒
- Smith IV每级+0.01恢复、+0.7%力量/范围/投射物速度/持续时间、-0.25%冷却、+1%幸运
#### 1.2 条件触发成长型
- **代表角色**Bat Robbert蝙蝠罗伯特
- **机制特点**:在特定条件下触发成长效果
- **具体表现**生命值低于20%时触发技能增加最大生命值并恢复25%生命
#### 1.3 等级奖励成长型
- **代表角色**Queen Sigma女王西格玛
- **机制特点**:每升一级获得固定属性加成
- **具体表现**:每级+1%力量和+1%成长,无上限
#### 1.4 特殊资源成长型
- **代表角色**Big Trouser大裤衩
- **机制特点**:通过特定资源获取成长
- **具体表现**:每级+1%贪婪,金币狂热持续时间延长
### 2. 独特战斗机制
#### 2.1 冷却忽略机制
- **代表角色**Babi-Onna婆毗婆
- **机制特点**:忽略武器冷却时间,通过移动触发武器攻击
- **具体表现**:移动速度越快,武器冷却越短
#### 2.2 生存机制
- **代表角色**Queen Sigma女王西格玛
- **机制特点**:特殊生存能力
- **具体表现**:被白手击败时会变成光球向上飞升,实际上不会真正死亡
#### 2.3 武器限制机制
- **代表角色**Multiple characters with specific weapon synergies
- **机制特点**:某些角色与特定武器有极佳协同效应
- **具体表现**
- Babi-Onna最适合长冷却时间的强力武器
- Smith IV适合高幸运值影响的武器
#### 2.4 独特解锁机制
- **代表角色**:多个秘密角色
- **机制特点**:需要完成特殊条件才能解锁
- **具体表现**
- Avatar Infernas在倒置的镶嵌图书馆中完成钢琴谜题
- Big Trouser在Moongolow关卡中将所有16个配件升级到满级
- Smith IV在主菜单输入"spam",角色选择界面输入"spam",关卡选择界面输入"spam",游戏中输入"humbug"
### 3. 独特属性系统
#### 3.1 负面属性开局
- **代表角色**Smith IV
- **机制特点**:初始属性极低,但通过成长机制弥补
- **具体表现**-93最大生命值、-10%力量、-50%投射物速度等
#### 3.2 全属性强化
- **代表角色**Queen Sigma
- **机制特点**:初始属性全面强化
- **具体表现**+233最大生命值、+50%移速、+50%力量、+50%持续时间等
#### 3.3 特殊属性成长
- **代表角色**Avatar Infernas、Smith IV
- **机制特点**:多项属性随等级持续增长
- **具体表现**:每级获得多项属性加成,无上限
### 4. 独特游戏机制
#### 4.1 商店替换机制
- **代表角色**Queen Sigma
- **机制特点**:改变商店内容
- **具体表现**:黄金蛋被替换为糖果盒
#### 4.2 武器协同机制
- **代表角色**Bat Robbert
- **机制特点**:特定武器与角色技能高度协同
- **具体表现**Pako Battiliar初始武器和Mazo Familiar进化武器的伤害基于最大生命值
#### 4.3 弧光牌特殊机制
- **代表角色**Avatar Infernas初始拥有额外的XIX - Heart of Fire弧光牌
- **机制特点**:初始拥有额外的弧光牌
- **具体表现**:某些角色开始时就拥有特定的弧光牌
### 5. 对本项目的深度参考价值
#### 5.1 多样化的成长曲线设计
- 可设计多种成长模式:线性成长、指数成长、条件触发成长等
- 为不同类型的英雄设计不同的成长路径
#### 5.2 独特机制增加游戏深度
- 每个英雄应有1-2个独特机制使其在玩法上与众不同
- 独特机制应与角色背景故事相呼应
#### 5.3 解锁机制增强探索欲望
- 设计多样化的角色解锁条件,鼓励玩家探索游戏内容
- 秘密角色的解锁可作为游戏的长期目标
#### 5.4 协同效应提升策略深度
- 设计角色与技能、装备之间的协同效应
- 鼓励玩家探索不同的搭配组合
#### 5.5 特殊属性系统增加策略性
- 设计独特的属性成长系统,让玩家在角色培养上有更多选择
- 负面属性开局的角色可通过其他方式补偿,增加游戏平衡性
## 表格说明
* **加粗文本**表示该角色的核心优势或特色机制
* 角色按解锁难度和游戏进度大致排序
* 后期角色普遍与"翻转翡翠模型"游戏内容相关
* "独秀专场"是许多后期角色的共同濒死爆发机制

View File

@@ -0,0 +1,545 @@
import * as exp from "constants";
import { HType } from "./heroSet";
/**
* Buff类型枚举
* VALUE: 数值型 - 直接加减数值
* RATIO: 百分比型 - 按百分比计算
*/
export enum BType {
VALUE = 0, //数值型
RATIO = 1 //百分比型
}
export enum NeAttrs {
IN_FROST = 0,
IN_STUN = 1,
IN_BURN = 2,
IN_POISON = 3,
}
export const getNeAttrs = () => {
let reAttrs = {};
Object.keys(NeAttrs).forEach(key => {
if (!isNaN(Number(key))) {
reAttrs[Number(key)] = {
value: 0,
time: 0,
};
}
});
return reAttrs;
}
// ========== 属性枚举 ==========
/**
* 英雄属性枚举
* 定义所有可用的战斗属性类型
* 按逻辑分组排序:基础生存 → 攻击属性 → 防御属性 → 特殊效果 → 基础属性
*/
export enum Attrs {
// ========== 基础生存属性 (0-9) ==========
HP_MAX = 0, // 最大生命值
MP_MAX = 1, // 最大魔法值
SHIELD_MAX = 2, // 最大护盾值
HP_REGEN = 3, // 生命回复
MP_REGEN = 4, // 魔法回复
HEAL_EFFECT = 5, // 治疗效果
// ========== 攻击属性 (10-19) ==========
AP = 10, // 攻击力
MAP = 11, // 魔法攻击力
DIS = 12, // 攻击距离
AS = 13, // 攻击速度减少技能CD
SKILL_DURATION = 14, // 技能持续时间
AREA_OF_EFFECT = 15, // 作用范围
PIERCE = 16, // 穿透次数
// ========== 防御属性 (20-29) ==========
DEF = 20, // 物理防御
MDEF = 21, // 魔法防御
DODGE = 22, // 闪避率
BLOCK = 23, // 格挡率
DAMAGE_REDUCTION = 24, // 伤害减免
THORNS = 25, // 反伤
CRITICAL_RESIST = 26, // 暴击抗性
CON_RES = 27, // 控制抗性
MAGIC_RES = 28, // 魔法抗性
// ========== 暴击与命中属性 (30-39) ==========
CRITICAL = 30, // 暴击率
CRITICAL_DMG = 31, // 暴击伤害
HIT = 32, // 命中率
// ========== 元素属性 (40-49) ==========
ICE_RES = 40, // 冰冻抗性
FIRE_RES = 41, // 火焰抗性
WIND_RES = 42, // 自然抗性
ICE_POWER = 43, // 冰冻伤害加成
FIRE_POWER = 44, // 火焰伤害加成
WIND_POWER = 45, // 自然伤害加成
// ========== 特殊效果属性 (50-59) ==========
LIFESTEAL = 50, // 吸血比率
MANASTEAL = 51, // 吸蓝比率
FREEZE_CHANCE = 52, // 冰冻概率
BURN_CHANCE = 53, // 燃烧概率
STUN_CHANCE = 54, // 眩晕概率
KNOCKBACK = 55, // 击退概率
SLOW_CHANCE = 56, // 减速概率
POISON_CHANCE = 57, // 中毒概率
CHAIN_CHANCE = 58, // 连锁概率
EXPLOSION_CHANCE = 59, // 爆炸概率
// ========== 增益效果属性 (60-69) ==========
BUFF_UP = 60, // Buff效果提升
DBUFF_UP = 61, // Debuff效果提升
SHIELD_UP = 62, // 护盾效果提升
SPEED = 63, // 移动速度加成
EXP_GAIN = 64, // 经验获取
GOLD_GAIN = 65, // 金币获取
DROP_CHANCE = 66, // 掉落率
REVIVE_COUNT = 67, // 复活次数
REVIVE_TIME = 68, // 复活时间
INVINCIBLE_TIME = 69, // 无敌时间
// ========== 武器进化相关 (70-79) ==========
PUNCTURE = 70, // 穿刺次数
PUNCTURE_DMG = 71, // 穿刺伤害
BACK = 73, // 被击退概率(兼容旧代码)
MOVE_SPEED = 74, // 移动速度
BURN = 75, // 易伤效果
WFUNY = 77, // 风怒
// ========== 生存与恢复相关 (80-89) ==========
// ========== 负面状态相关 (90-99) ==========
// ========== 基础属性(影响其他属性)(100-104) ==========
STRENGTH = 90, // 力量(影响物理相关)
INTELLIGENCE = 91, // 智力(影响魔法相关)
AGILITY = 92, // 敏捷(影响速度和闪避)
SPIRIT = 93, // 精神(影响抗性和特殊效果)
LUCK = 94, // 幸运(影响暴击和特殊概率)
}
/**
* 初始化英雄属性对象
* 遍历 Attrs 枚举的所有数字值,返回一个属性初始值为 0 的对象
* @returns 属性映射对象 { 属性ID: 0 }
*/
export const getAttrs = () => {
// 遍历枚举的数字值(枚举会生成双向映射)
let reAttrs = {};
Object.keys(Attrs).forEach(key => {
if (!isNaN(Number(key))) {
reAttrs[Number(key)] = 0;
}
});
return reAttrs;
}
/**
* 属性类型配置表
* 用于区分每个属性是数值型还是百分比型
* - VALUE: 数值型属性(如生命值、攻击力等绝对数值)
* - RATIO: 百分比型属性(如暴击率、闪避率等百分比数值)
* 按新的Attrs枚举顺序重新组织
*/
export const AttrsType: Record<Attrs, BType> = {
// ========== 基础生存属性(数值型) ==========
[Attrs.HP_MAX]: BType.VALUE, // 最大生命值 - 数值型
[Attrs.MP_MAX]: BType.VALUE, // 最大魔法值 - 数值型
[Attrs.SHIELD_MAX]: BType.VALUE, // 最大护盾值 - 数值型
[Attrs.HP_REGEN]: BType.VALUE, // 生命回复 - 数值型
[Attrs.MP_REGEN]: BType.VALUE, // 魔法回复 - 数值型
[Attrs.HEAL_EFFECT]: BType.RATIO, // 治疗效果 - 百分比型
// ========== 攻击属性(数值型) ==========
[Attrs.AP]: BType.VALUE, // 攻击力 - 数值型
[Attrs.MAP]: BType.VALUE, // 魔法攻击力 - 数值型
[Attrs.DIS]: BType.VALUE, // 攻击距离 - 数值型
[Attrs.AS]: BType.RATIO, // 攻击速度 - 百分比型
[Attrs.SKILL_DURATION]: BType.RATIO, // 技能持续时间 - 百分比型
[Attrs.AREA_OF_EFFECT]: BType.VALUE, // 作用范围 - 数值型
[Attrs.PIERCE]: BType.VALUE, // 穿透次数 - 数值型
// ========== 防御属性(混合类型) ==========
[Attrs.DEF]: BType.VALUE, // 物理防御 - 数值型
[Attrs.MDEF]: BType.VALUE, // 魔法防御 - 数值型
[Attrs.DODGE]: BType.RATIO, // 闪避率 - 百分比型
[Attrs.BLOCK]: BType.RATIO, // 格挡率 - 百分比型
[Attrs.DAMAGE_REDUCTION]: BType.RATIO, // 伤害减免 - 百分比型
[Attrs.THORNS]: BType.RATIO, // 反伤 - 百分比型
// ========== 暴击与命中属性(百分比型) ==========
[Attrs.CRITICAL]: BType.RATIO, // 暴击率 - 百分比型
[Attrs.CRITICAL_DMG]: BType.RATIO, // 暴击伤害 - 百分比型
[Attrs.HIT]: BType.RATIO, // 命中率 - 百分比型
[Attrs.CRITICAL_RESIST]: BType.RATIO, // 暴击抗性 - 百分比型
[Attrs.CON_RES]: BType.RATIO, // 控制抗性 - 百分比型
[Attrs.MAGIC_RES]: BType.RATIO, // 魔法抗性 - 百分比型
// ========== 元素属性(百分比型) ==========
[Attrs.ICE_RES]: BType.RATIO, // 冰冻抗性 - 百分比型
[Attrs.FIRE_RES]: BType.RATIO, // 火焰抗性 - 百分比型
[Attrs.WIND_RES]: BType.RATIO, // 风抗性 - 百分比型
[Attrs.ICE_POWER]: BType.RATIO, // 冰冻伤害加成 - 百分比型
[Attrs.FIRE_POWER]: BType.RATIO, // 火焰伤害加成 - 百分比型
[Attrs.WIND_POWER]: BType.RATIO, // 风伤害加成 - 百分比型
// ========== 特殊效果属性(百分比型) ==========
[Attrs.LIFESTEAL]: BType.RATIO, // 吸血比率 - 百分比型
[Attrs.MANASTEAL]: BType.RATIO, // 吸蓝 - 百分比型
[Attrs.FREEZE_CHANCE]: BType.RATIO, // 冰冻概率 - 百分比型
[Attrs.BURN_CHANCE]: BType.RATIO, // 燃烧概率 - 百分比型
[Attrs.STUN_CHANCE]: BType.RATIO, // 眩晕概率 - 百分比型
[Attrs.KNOCKBACK]: BType.RATIO, // 击退 - 百分比型
[Attrs.SLOW_CHANCE]: BType.RATIO, // 减速概率 - 百分比型
[Attrs.POISON_CHANCE]: BType.RATIO, // 中毒概率 - 百分比型
[Attrs.CHAIN_CHANCE]: BType.RATIO, // 连锁概率 - 百分比型
[Attrs.EXPLOSION_CHANCE]: BType.RATIO, // 爆炸概率 - 百分比型
// ========== 增益效果属性(百分比型) ==========
[Attrs.BUFF_UP]: BType.RATIO, // Buff效果提升 - 百分比型
[Attrs.DBUFF_UP]: BType.RATIO, // Debuff效果提升 - 百分比型
[Attrs.SHIELD_UP]: BType.RATIO, // 护盾效果提升 - 百分比型
[Attrs.SPEED]: BType.RATIO, // 移动速度加成 - 百分比型
[Attrs.EXP_GAIN]: BType.RATIO, // 经验获取 - 百分比型
[Attrs.GOLD_GAIN]: BType.RATIO, // 金币获取 - 百分比型
[Attrs.DROP_CHANCE]: BType.RATIO, // 掉落率 - 百分比型
[Attrs.REVIVE_COUNT]: BType.VALUE, // 复活次数 - 数值型
[Attrs.REVIVE_TIME]: BType.RATIO, // 复活时间 - 百分比型
[Attrs.INVINCIBLE_TIME]: BType.RATIO, // 无敌时间 - 百分比型
// ========== 武器进化相关(混合类型) ==========
[Attrs.PUNCTURE]: BType.VALUE, // 穿刺次数 - 数值型
[Attrs.PUNCTURE_DMG]: BType.RATIO, // 穿刺伤害 - 百分比型
[Attrs.BACK]: BType.RATIO, // 被击退概率(兼容)- 百分比型
[Attrs.MOVE_SPEED]: BType.VALUE, // 移动速度 - 数值型
[Attrs.BURN]: BType.RATIO, // 易伤效果 - 百分比型
[Attrs.WFUNY]: BType.RATIO, // 未知特殊属性 - 百分比型
// ========== 生存与恢复相关(混合类型) ==========
// ========== 负面状态相关(混合类型) ==========
// ========== 基础属性(数值型) ==========
[Attrs.STRENGTH]: BType.VALUE, // 力量 - 数值型
[Attrs.INTELLIGENCE]: BType.VALUE, // 智力 - 数值型
[Attrs.AGILITY]: BType.VALUE, // 敏捷 - 数值型
[Attrs.SPIRIT]: BType.VALUE, // 精神 - 数值型
[Attrs.LUCK]: BType.VALUE, // 幸运 - 数值型
};
/**
* 判断属性是否为百分比型
* @param attrType 属性类型
* @returns true: 百分比型, false: 数值型
*/
export const isRatioAttr = (attrType: Attrs): boolean => {
return AttrsType[attrType] === BType.RATIO;
};
/**
* 职业属性增长系数配置
* 定义不同职业类型下,基础属性对战斗属性的差异化转化比例
*/
/**
* 基础属性增长映射接口
*/
export interface BaseAttrGrowthRate {
[targetAttr: number]: number; // 目标属性 -> 增长系数
}
/**
* 职业属性增长配置接口
*/
export interface HeroTypeAttrGrowth {
[baseAttr: number]: BaseAttrGrowthRate; // 基础属性 -> 目标属性增长配置
}
/**
* 职业属性增长配置表
* 体现不同职业的成长特色
*/
export const HeroTypeGrowthConfig: Record<HType, HeroTypeAttrGrowth> = {
// ========== 战士 (Warrior) ==========
// 特点:高生命、高物理攻击、高物理防御
[HType.warrior]: {
[Attrs.STRENGTH]: {
[Attrs.HP_MAX]: 3, // 力量 -> 生命值 (战士系数更高)
[Attrs.AP]: 1.5, // 力量 -> 攻击力 (战士系数更高)
[Attrs.DEF]: 0.8, // 力量 -> 物理防御
},
[Attrs.INTELLIGENCE]: {
[Attrs.MP_MAX]: 0.5, // 智力 -> 魔法值 (战士系数较低)
[Attrs.MAP]: 0.3, // 智力 -> 魔法攻击 (战士不擅长)
},
[Attrs.AGILITY]: {
[Attrs.CRITICAL]: 0.3, // 敏捷 -> 暴击率
[Attrs.DODGE]: 0.2, // 敏捷 -> 闪避 (战士较低)
[Attrs.AS]: 0.2, // 敏捷 -> 攻击速度
},
[Attrs.SPIRIT]: {
[Attrs.MP_MAX]: 0.5, // 精神 -> 魔法值
[Attrs.LIFESTEAL]: 0.4, // 精神 -> 吸血 (战士较高)
[Attrs.MDEF]: 0.3, // 精神 -> 魔法防御
[Attrs.HP_REGEN]: 0.2, // 精神 -> 生命回复
[Attrs.MP_REGEN]: 0.3, // 精神 -> 魔法回复
},
[Attrs.LUCK]: {
[Attrs.CRITICAL]: 0.8, // 幸运 -> 暴击率
[Attrs.CRITICAL_DMG]: 0.4, // 幸运 -> 暴击伤害
},
},
// ========== 远程 (Remote) ==========
// 特点:高敏捷、高攻速、高暴击
[HType.remote]: {
[Attrs.STRENGTH]: {
[Attrs.HP_MAX]: 1.5, // 力量 -> 生命值 (远程较低)
[Attrs.AP]: 1.2, // 力量 -> 攻击力
[Attrs.DEF]: 0.4, // 力量 -> 物理防御 (远程较低)
},
[Attrs.INTELLIGENCE]: {
[Attrs.MP_MAX]: 0.8, // 智力 -> 魔法值
[Attrs.MAP]: 0.5, // 智力 -> 魔法攻击
},
[Attrs.AGILITY]: {
[Attrs.CRITICAL]: 0.8, // 敏捷 -> 暴击率 (远程很高)
[Attrs.DODGE]: 0.6, // 敏捷 -> 闪避 (远程较高)
[Attrs.AS]: 0.5, // 敏捷 -> 攻击速度 (远程很高)
[Attrs.SPEED]: 0.3, // 敏捷 -> 移动速度
},
[Attrs.SPIRIT]: {
[Attrs.MP_MAX]: 0.6, // 精神 -> 魔法值
[Attrs.HIT]: 0.5, // 精神 -> 命中 (远程需要精准)
[Attrs.MDEF]: 0.3, // 精神 -> 魔法防御
},
[Attrs.LUCK]: {
[Attrs.CRITICAL]: 1.2, // 幸运 -> 暴击率 (远程最高)
[Attrs.CRITICAL_DMG]: 0.8, // 幸运 -> 暴击伤害 (远程很高)
[Attrs.HIT]: 0.4, // 幸运 -> 命中
},
},
// ========== 法师 (Mage) ==========
// 特点:高魔法攻击、高魔法值、高魔法防御
[HType.mage]: {
[Attrs.STRENGTH]: {
[Attrs.HP_MAX]: 1.2, // 力量 -> 生命值 (法师很低)
[Attrs.AP]: 0.3, // 力量 -> 攻击力 (法师不需要)
},
[Attrs.INTELLIGENCE]: {
[Attrs.MP_MAX]: 2, // 智力 -> 魔法值 (法师最高)
[Attrs.MAP]: 1.8, // 智力 -> 魔法攻击 (法师最高)
[Attrs.MDEF]: 0.8, // 智力 -> 魔法防御
[Attrs.AREA_OF_EFFECT]: 0.3, // 智力 -> 作用范围
},
[Attrs.AGILITY]: {
[Attrs.CRITICAL]: 0.4, // 敏捷 -> 暴击率
[Attrs.DODGE]: 0.3, // 敏捷 -> 闪避
[Attrs.AS]: 0.3, // 敏捷 -> 攻击速度
},
[Attrs.SPIRIT]: {
[Attrs.MP_MAX]: 1.5, // 精神 -> 魔法值 (法师较高)
[Attrs.MDEF]: 0.8, // 精神 -> 魔法防御 (法师较高)
[Attrs.CON_RES]: 0.3, // 精神 -> 控制抗性
},
[Attrs.LUCK]: {
[Attrs.CRITICAL]: 0.6, // 幸运 -> 暴击率
[Attrs.CRITICAL_DMG]: 0.5, // 幸运 -> 暴击伤害
},
},
// ========== 辅助 (Support) ==========
// 特点:高生命、高魔法值、高抗性、高辅助效果
[HType.support]: {
[Attrs.STRENGTH]: {
[Attrs.HP_MAX]: 2.5, // 力量 -> 生命值 (辅助较高)
[Attrs.AP]: 0.5, // 力量 -> 攻击力 (辅助较低)
[Attrs.DEF]: 0.6, // 力量 -> 物理防御
},
[Attrs.INTELLIGENCE]: {
[Attrs.MP_MAX]: 1.5, // 智力 -> 魔法值 (辅助需要)
[Attrs.MAP]: 0.8, // 智力 -> 魔法攻击
[Attrs.MDEF]: 0.6, // 智力 -> 魔法防御
},
[Attrs.AGILITY]: {
[Attrs.DODGE]: 0.4, // 敏捷 -> 闪避
[Attrs.AS]: 0.3, // 敏捷 -> 攻击速度
[Attrs.SPEED]: 0.4, // 敏捷 -> 移动速度
},
[Attrs.SPIRIT]: {
[Attrs.MP_MAX]: 2, // 精神 -> 魔法值 (辅助很高)
[Attrs.LIFESTEAL]: 0.5, // 精神 -> 吸血
[Attrs.MDEF]: 0.8, // 精神 -> 魔法防御 (辅助较高)
[Attrs.CON_RES]: 0.5, // 精神 -> 控制抗性 (辅助较高)
[Attrs.BUFF_UP]: 0.6, // 精神 -> Buff效果提升 (辅助特色)
},
[Attrs.LUCK]: {
[Attrs.CRITICAL]: 0.5, // 幸运 -> 暴击率
[Attrs.SHIELD_UP]: 0.8, // 幸运 -> 护盾效果提升 (辅助特色)
},
},
// ========== 刺客 (Assassin) ==========
// 特点:超高暴击、高敏捷、高爆发、低防御
[HType.assassin]: {
[Attrs.STRENGTH]: {
[Attrs.HP_MAX]: 1.8, // 力量 -> 生命值 (刺客较低)
[Attrs.AP]: 1.3, // 力量 -> 攻击力
[Attrs.DEF]: 0.3, // 力量 -> 物理防御 (刺客很低)
},
[Attrs.INTELLIGENCE]: {
[Attrs.MP_MAX]: 0.6, // 智力 -> 魔法值
[Attrs.MAP]: 0.4, // 智力 -> 魔法攻击
},
[Attrs.AGILITY]: {
[Attrs.CRITICAL]: 1, // 敏捷 -> 暴击率 (刺客超高)
[Attrs.DODGE]: 0.8, // 敏捷 -> 闪避 (刺客很高)
[Attrs.AS]: 0.6, // 敏捷 -> 攻击速度 (刺客很高)
[Attrs.SPEED]: 0.5, // 敏捷 -> 移动速度 (刺客很高)
},
[Attrs.SPIRIT]: {
[Attrs.MP_MAX]: 0.5, // 精神 -> 魔法值
[Attrs.LIFESTEAL]: 0.6, // 精神 -> 吸血 (刺客较高)
[Attrs.MDEF]: 0.2, // 精神 -> 魔法防御 (刺客很低)
},
[Attrs.LUCK]: {
[Attrs.CRITICAL]: 1.5, // 幸运 -> 暴击率 (刺客超高)
[Attrs.CRITICAL_DMG]: 1, // 幸运 -> 暴击伤害 (刺客超高)
[Attrs.HIT]: 0.3, // 幸运 -> 命中
},
},
};
/**
* 根据职业类型和基础属性,计算其他属性的增长值
* @param heroType 职业类型
* @param baseAttrType 基础属性类型STRENGTH, INTELLIGENCE, AGILITY, SPIRIT, LUCK
* @param baseAttrValue 基础属性点数
* @returns 其他属性的增长值映射表
*
* @example
* // 计算战士职业10点力量的属性增长
* const gains = calculateAttributeGains(HType.warrior, Attrs.STRENGTH, 10);
* // 返回:{ [Attrs.HP_MAX]: 30, [Attrs.AP]: 15, [Attrs.DEF]: 8 }
*/
export function calculateAttributeGains(
heroType: HType,
baseAttrType: Attrs,
baseAttrValue: number
): Partial<Record<Attrs, number>> {
const heroGrowthConfig = HeroTypeGrowthConfig[heroType];
if (!heroGrowthConfig) {
console.warn(`未找到职业类型 ${heroType} 的增长配置`);
return {};
}
const baseAttrGrowth = heroGrowthConfig[baseAttrType];
if (!baseAttrGrowth) {
console.warn(`职业 ${heroType} 不具有基础属性 ${baseAttrType} 的增长配置`);
return {};
}
const result: Partial<Record<Attrs, number>> = {};
for (const targetAttrStr in baseAttrGrowth) {
const targetAttr = Number(targetAttrStr) as Attrs;
const growthRate = baseAttrGrowth[targetAttr];
result[targetAttr] = baseAttrValue * growthRate;
}
return result;
}
/**
* 快捷方法:计算力量属性增长
* @param heroType 职业类型
* @param strengthPoints 力量点数
* @returns 其他属性的增长值
*/
export function addStrength(heroType: HType, strengthPoints: number): Partial<Record<Attrs, number>> {
return calculateAttributeGains(heroType, Attrs.STRENGTH, strengthPoints);
}
/**
* 快捷方法:计算智力属性增长
* @param heroType 职业类型
* @param intelligencePoints 智力点数
* @returns 其他属性的增长值
*/
export function addIntelligence(heroType: HType, intelligencePoints: number): Partial<Record<Attrs, number>> {
return calculateAttributeGains(heroType, Attrs.INTELLIGENCE, intelligencePoints);
}
/**
* 快捷方法:计算敏捷属性增长
* @param heroType 职业类型
* @param agilityPoints 敏捷点数
* @returns 其他属性的增长值
*/
export function addAgility(heroType: HType, agilityPoints: number): Partial<Record<Attrs, number>> {
return calculateAttributeGains(heroType, Attrs.AGILITY, agilityPoints);
}
/**
* 快捷方法:计算精神属性增长
* @param heroType 职业类型
* @param spiritPoints 精神点数
* @returns 其他属性的增长值
*/
export function addSpirit(heroType: HType, spiritPoints: number): Partial<Record<Attrs, number>> {
return calculateAttributeGains(heroType, Attrs.SPIRIT, spiritPoints);
}
/**
* 快捷方法:计算幸运属性增长
* @param heroType 职业类型
* @param luckPoints 幸运点数
* @returns 其他属性的增长值
*/
export function addLuck(heroType: HType, luckPoints: number): Partial<Record<Attrs, number>> {
return calculateAttributeGains(heroType, Attrs.LUCK, luckPoints);
}
/**
* 计算多个基础属性的总增长
* @param heroType 职业类型
* @param baseAttrs 基础属性映射表 { 属性ID: 属性值 }
* @returns 总增长值
*
* @example
* // 计算战士职业的总属性增长
* const totalGains = calculateTotalAttributeGains(HType.warrior, {
* [Attrs.STRENGTH]: 10,
* [Attrs.AGILITY]: 5,
* [Attrs.SPIRIT]: 3
* });
*/
export function calculateTotalAttributeGains(
heroType: HType,
baseAttrs: Partial<Record<Attrs, number>>
): Partial<Record<Attrs, number>> {
const totalGains: Partial<Record<Attrs, number>> = {};
for (const baseAttrStr in baseAttrs) {
const baseAttr = Number(baseAttrStr) as Attrs;
const baseAttrValue = baseAttrs[baseAttr];
if (baseAttrValue === undefined || baseAttrValue <= 0) continue;
const gains = calculateAttributeGains(heroType, baseAttr, baseAttrValue);
for (const targetAttrStr in gains) {
const targetAttr = Number(targetAttrStr) as Attrs;
const gainValue = gains[targetAttr];
if (gainValue !== undefined) {
totalGains[targetAttr] = (totalGains[targetAttr] || 0) + gainValue;
}
}
}
return totalGains;
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "ac54946f-ff4d-4d34-b1a3-234efe61f2fc",
"uuid": "6f2434a0-4835-4abf-9acb-30699979d1a8",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -1,3 +1,5 @@
// ========== 从 HeroAttrs.ts 导入属性相关定义 ==========
import { Attrs, NeAttrs,BType, getAttrs, AttrsType, isRatioAttr } from "./HeroAttrs";
export enum TGroup {
Self = 0, // 自身
Ally = 1, // 所有敌人
@@ -44,8 +46,8 @@ export enum SType {
zhaohuan = 10,
buff = 11,
}
export enum AtkedType {
//受伤动画名称
export enum AtkedName {
atked = "atked",
ice = "atked_ice",
fire = "atked_fire",
@@ -70,191 +72,8 @@ export enum EType {
}
//debuff类型
export enum DBuff {
STUN = 1, //眩晕 - 对应Attrs.CON_RES (控制抗性), BType.RATIO
SLOW = 2, //减速 - 对应Attrs.AS (攻击速度), BType.RATIO
FROST = 3, //冰冻 - 对应Attrs.ICE_RES (冰冻抗性), BType.RATIO
BURN = 4, //易伤 - 对应Attrs.DEF/MDEF (防御/魔防), BType.RATIO, 默认次数是5, 技能配置的devC是额外次数
AS = 5, //减速 - 对应Attrs.AS (攻击速度), BType.RATIO, 直接+技能cd
HP_MAX = 6, //减hp - 对应Attrs.HP_MAX (最大生命值), BType.RATIO
AP = 7, //减atk - 对应Attrs.AP (攻击力), BType.RATIO
MGP = 8, //减魔法伤害 - 对应Attrs.MAP (魔法攻击力), BType.RATIO
DEBACK = 9, //击退概率 - 对应Attrs.BACK (击退概率), BType.RATIO
CRITICAL = 10, //-暴击率 - 对应Attrs.CRITICAL (暴击率), BType.RATIO
CRIT_DAMAGE = 11, //-暴击伤害 - 对应Attrs.CRITICAL_DMG (暴击伤害), BType.RATIO
DODGE = 12, //-闪避 - 对应Attrs.DODGE (闪避), BType.RATIO
DBUFFUP=13, //edbuff效果提升
BUFF_DOWN = 14,// buff效果减弱
SPEED = 15, //移动速度下降 - 对应Attrs.MOVE_SPEED (移动速度), BType.RATIO
DEBURN= 16, //被攻击带易伤
}
export enum Attrs {
HP_MAX = 0, //生命值
MP_MAX = 1, //魔法值
SHIELD_MAX=2, //护盾
AP = 3, //攻击力
MAP=4, //魔法攻击力
DEF = 5, //防御
MDEF = 6, //魔法防御
CRITICAL =7, //暴击率
CRITICAL_DMG = 8, //暴击伤害
DODGE = 9, //闪避
HIT = 10, //命中
WFUNY = 11, // 风怒
AS = 12, //攻击速度,直接减技能cd
REFLICT = 13, //反伤比率
LIFESTEAL = 14, //吸血比率
BACK = 15, //攻击带击退概率
DEBACK = 16, //被攻击击退概率
CON_RES = 17, //控制抗性
ICE_RES = 18, //冰冻抗性
FIRE_RES = 19, //火抗性
WIND_RES = 20, //风抗性
ICE_POWER = 21, //冰冻伤害效果提升
FIRE_POWER = 22,//火伤害效果提升
WIND_POWER = 23,//风伤害效果提升
BUFF_UP = 24, //buff效果提升
DBUFF_UP=25, //debuff效果提升
DIS=26, //攻击距离
SPEED = 27, //移动速度加成,默认都是百分比
SHIELD_UP = 28, //护盾效果提升
BURN = 29, //攻击带易伤
DEBURN = 30, //被攻击易伤
PUNCTURE=31, // 穿刺次数
PUNCTURE_DMG=32, //穿刺伤害加成
// 基础属性
STRENGTH = 33, //力量
INTELLIGENCE = 34, //智力
AGILITY = 35, //敏捷
SPIRIT = 36, //精神
LUCK = 37, //幸运
}
export const getAttrs=()=>{
// 遍历枚举的数字值(枚举会生成双向映射)
let reAttrs = {};
Object.keys(Attrs).forEach(key => {
if (!isNaN(Number(key))) {
reAttrs[Number(key)] = 0;
}
});
return reAttrs;
}
/**
* Buff类型枚举
* VALUE: 数值型 - 直接加减数值
* RATIO: 百分比型 - 按百分比计算
*/
export enum BType {
VALUE=0, //数值型
RATIO=1 //百分比型
}
/**
* 属性类型配置表
* 用于区分每个属性是数值型还是百分比型
* - VALUE: 数值型属性(如生命值、攻击力等绝对数值)
* - RATIO: 百分比型属性(如暴击率、闪避率等百分比数值)
*/
export const AttrsType: Record<Attrs, BType> = {
// ========== 数值型属性 ==========
[Attrs.HP_MAX]: BType.VALUE, // 最大生命值 - 数值型
[Attrs.MP_MAX]: BType.VALUE, // 最大魔法值 - 数值型
[Attrs.SHIELD_MAX]: BType.VALUE, // 最大护盾值 - 数值型
[Attrs.AP]: BType.VALUE, // 攻击力 - 数值型
[Attrs.MAP]: BType.VALUE, // 魔法攻击力 - 数值型
[Attrs.DEF]: BType.VALUE, // 防御 - 数值型
[Attrs.MDEF]: BType.VALUE, // 魔法防御 - 数值型
[Attrs.DIS]: BType.VALUE, // 攻击距离 - 数值型
[Attrs.BURN]: BType.VALUE, // 易伤 - 数值型
[Attrs.DEBURN]: BType.VALUE, // 被攻击易伤 - 数值型
[Attrs.PUNCTURE]: BType.VALUE, // 穿刺次数 - 数值型
[Attrs.STRENGTH]: BType.VALUE, // 力量 - 数值型
[Attrs.INTELLIGENCE]: BType.VALUE, // 智力 - 数值型
[Attrs.AGILITY]: BType.VALUE, // 敏捷 - 数值型
[Attrs.SPIRIT]: BType.VALUE, // 精神 - 数值型
[Attrs.LUCK]: BType.VALUE, // 幸运 - 数值型
// ========== 百分比型属性 ==========
[Attrs.CRITICAL]: BType.RATIO, // 暴击率 - 百分比型
[Attrs.CRITICAL_DMG]: BType.RATIO, // 暴击伤害 - 百分比型
[Attrs.DODGE]: BType.RATIO, // 闪避 - 百分比型
[Attrs.HIT]: BType.RATIO, // 命中 - 百分比型
[Attrs.WFUNY]: BType.RATIO, // 风怒 - 百分比型
[Attrs.AS]: BType.RATIO, // 攻击速度 - 百分比型
[Attrs.REFLICT]: BType.RATIO, // 反伤比率 - 百分比型
[Attrs.LIFESTEAL]: BType.RATIO, // 吸血比率 - 百分比型
[Attrs.BACK]: BType.RATIO, // 击退概率 - 百分比型
[Attrs.CON_RES]: BType.RATIO, // 控制抗性 - 百分比型
[Attrs.ICE_RES]: BType.RATIO, // 冰冻抗性 - 百分比型
[Attrs.FIRE_RES]: BType.RATIO, // 火抗性 - 百分比型
[Attrs.WIND_RES]: BType.RATIO, // 风抗性 - 百分比型
[Attrs.ICE_POWER]: BType.RATIO, // 冰冻伤害效果提升 - 百分比型
[Attrs.FIRE_POWER]: BType.RATIO, // 火伤害效果提升 - 百分比型
[Attrs.WIND_POWER]: BType.RATIO, // 风伤害效果提升 - 百分比型
[Attrs.DEBACK]:BType.RATIO,
[Attrs.BUFF_UP]: BType.RATIO, // buff效果提升 - 百分比型
[Attrs.DBUFF_UP]: BType.RATIO, // debuff效果提升 - 百分比型
[Attrs.SPEED]: BType.RATIO, // 移动速度加成 - 百分比型
[Attrs.SHIELD_UP]: BType.RATIO, // 护盾效果提升 - 百分比型
[Attrs.PUNCTURE_DMG]: BType.RATIO,
};
/**
* 判断属性是否为百分比型
* @param attrType 属性类型
* @returns true: 百分比型, false: 数值型
*/
export const isRatioAttr = (attrType: Attrs): boolean => {
return AttrsType[attrType] === BType.RATIO;
};
/**
* DBuff 与 Attrs 的双向映射关系表
* 格式:[DBuff, Attrs 或 -1状态类]
*/
const DEBUFF_ATTR_MAP: [DBuff, number][] = [
[DBuff.STUN, -1], // 眩晕 - 状态类
[DBuff.SLOW, Attrs.SPEED], // 减速 -> 速度
[DBuff.FROST, -1], // 冰冻 - 状态类
[DBuff.DEBURN, Attrs.DEBURN], // 被易伤 -> 被易伤
[DBuff.BURN, Attrs.BURN], // 易伤 -> 易伤效果
[DBuff.AS, Attrs.AS], // 减cd -> 攻击速度
[DBuff.HP_MAX, Attrs.HP_MAX], // 减hp -> 最大生命值
[DBuff.AP, Attrs.AP], // 减atk -> 攻击力
[DBuff.MGP, Attrs.MAP], // 减魔法 -> 魔法攻击力
[DBuff.DEBACK, Attrs.DEBACK], // 被击退 -> 被击退概率
[DBuff.CRITICAL, Attrs.CRITICAL], // -暴击率 -> 暴击率
[DBuff.CRIT_DAMAGE, Attrs.CRITICAL_DMG], // -暴击伤害 -> 暴击伤害
[DBuff.DODGE, Attrs.DODGE], // -闪避 -> 闪避
[DBuff.DBUFFUP, Attrs.DBUFF_UP], // debuff提升 -> debuff提升
[DBuff.BUFF_DOWN, Attrs.BUFF_UP], // buff减弱 -> buff效果
[DBuff.SPEED, Attrs.SPEED], // 移动速度下降 -> 移动速度
];
/**
* 双向转换DBuff ⇄ Attrs
* @param key DBuff 或 Attrs 枚举值
* @param isDebuff true: key 是 DBuff, false: key 是 Attrs
* @returns 对应的转换值,未找到则返回 -1
*/
export const TransformBuffs = (key: number, isDebuff: boolean): number => {
if (isDebuff) {
// DBuff → Attrs
const found = DEBUFF_ATTR_MAP.find(([debuff]) => debuff === key);
return found ? found[1] : -1;
} else {
// Attrs → DBuff只返回第一个匹配
const found = DEBUFF_ATTR_MAP.find(([, attr]) => attr === key);
return found ? found[0] : -1;
}
};
/*
=== 技能配置系统使用说明 ===
@@ -262,7 +81,7 @@ export const TransformBuffs = (key: number, isDebuff: boolean): number => {
- uuid: 技能唯一ID
- name: 技能名称
- sp_name: 特效名称
- AtkedType: 攻击类型
- AtkedName: 攻击类型
- path: 图片资源路径
2. 目标和效果:
@@ -284,19 +103,15 @@ export const TransformBuffs = (key: number, isDebuff: boolean): number => {
- hitcd: 持续伤害的伤害间隔
- speed: 移动速度
- cost: 消耗值
*/
export enum DType {
ATK= 0, // 物理
MAGE=1, // 魔法
}
export const HeroSkillList = [6001,6001,6001,6001,6001,6001]
// Debuff配置接口
export interface DbuffConf {
debuff: DBuff; // debuff类型
BType:BType //buff是数值型还是百分比型
value: number; // 效果值
time: number; // 持续时间
chance: number; // 触发概率
}
export interface BuffConf {
buff:Attrs;
BType:BType
@@ -304,170 +119,30 @@ export interface BuffConf {
time:number; // 持续时间
chance:number; // 触发概率
}
export interface NeAttrsConf {
neAttrs:NeAttrs;
value:number;
time:number;
}
// 技能配置接口 - 按照6001格式排列
export interface SkillConfig {
uuid:number,name:string,sp_name:string,AtkedType:AtkedType,path:string,TGroup:TGroup,SType:SType,act:string,DTType:DTType,
uuid:number,name:string,sp_name:string,AtkedName:AtkedName,path:string,TGroup:TGroup,SType:SType,act:string,DTType:DTType,DType:DType,
ap:number,cd:number,t_num:number,hit_num:number,hit:number,hitcd:number,speed:number,cost:number,with:number,
buffs:BuffConf[],debuffs:DbuffConf[],info:string,hero?:number
buffs:BuffConf[],neAttrs:NeAttrsConf[],info:string,hero?:number
}
export const SkillSet: Record<number, SkillConfig> = {
// ========== 基础攻击 ========== 6001-6099
6001: {
uuid:6001,name:"挥击",sp_name:"atk_s1",AtkedType:AtkedType.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6001,name:"挥击",sp_name:"atk_s1",AtkedName:AtkedName.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.ATK,
ap:100,cd:1,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:0,with:0,
buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害"
},
6002: {
uuid:6002,name:"挥击",sp_name:"atk2",AtkedType:AtkedType.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害"
},
6003: {
uuid:6003,name:"射击",sp_name:"arrow",AtkedType:AtkedType.atked,path:"3037",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人释放箭矢,造成100%攻击的伤害"
},
6004: {
uuid:6004,name:"冰球",sp_name:"am_ice",AtkedType:AtkedType.atked,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"
buffs:[],neAttrs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害"
},
6005: {
uuid:6005,name:"火球术",sp_name:"atk_fires",AtkedType:AtkedType.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6005,name:"火球术",sp_name:"atk_fires",AtkedName:AtkedName.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.MAGE,
ap:100,cd:5,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:20,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
},
6006: {
uuid:6006,name:"能量波",sp_name:"am_blue",AtkedType:AtkedType.atked,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"
},
6007: {
uuid:6007,name:"圣光波",sp_name:"am_yellow",AtkedType:AtkedType.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
},
// ========== 大招 ========== 6100-6199
6101: {
uuid:6101,name:"护盾",sp_name:"shield",AtkedType:AtkedType.atked,path:"3045",TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single,
ap:0,cd:5,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)"
},
6102: {
uuid:6102,name:"寒冰箭",sp_name:"arrow_blue",AtkedType:AtkedType.atked,path:"3060",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:1,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"
},
6103: {
uuid:6103,name:"治疗",sp_name:"heath_small",AtkedType:AtkedType.atked,path:"3056",TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single,
ap:0,cd:5,t_num:1,hit_num:1,hit:0,hitcd:0,speed:0,cost:10,with:0,
buffs:[],debuffs:[],info:"回复最前排队友10%最大生命值的生命"
},
6104: {
uuid:6104,name:"烈焰斩击",sp_name:"max_fireatk",AtkedType:AtkedType.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害"
},
6105: {
uuid:6105,name:"烈火护盾",sp_name:"max_firedun",AtkedType:AtkedType.atked,path:"3061",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:1,speed:80,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤烈焰保护英雄,持续10秒,每秒对范围内的敌人造成100%伤害"
},
6106: {
uuid:6106,name:"龙卷风",sp_name:"bwind",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
},
6107: {
uuid:6107,name:"烈焰射击",sp_name:"arrow_yellow",AtkedType:AtkedType.atked,path:"3014",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"
buffs:[],neAttrs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
},
6108: {
uuid:6108,name:"火墙",sp_name:"max_fwall",AtkedType:AtkedType.atked,path:"3040",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:50,cd:5,t_num:1,hit_num:1,hit:1,hitcd:1,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"
},
6109: {
uuid:6109,name:"冰刺",sp_name:"icez",AtkedType:AtkedType.atked,path:"3049",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:300,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"
},
6110: {
uuid:6110,name:"潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"
},
6111: {
uuid:6111,name:"陨石术",sp_name:"max_yunshi",AtkedType:AtkedType.atked,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:500,cd:5,t_num:1,hit_num:0,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"
},
6112: {
uuid:6112,name:"冰墙",sp_name:"icet",AtkedType:AtkedType.atked,path:"3050",TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.range,
ap:400,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"
},
6113: {
uuid:6113,name:"剑雨",sp_name:"max_jianyu",AtkedType:AtkedType.atked,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:500,cd:5,t_num:1,hit_num:0,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"
},
//召唤取消
// 6031:{uuid:6031,name:"召唤骷髅",sp_name:"zhaohuan",AtkedType:AtkedType.atked,path:"3018",
// TGroup:TGroup.Self,SType:SType.zhaohuan,act:"max",DTType:DTType.single,fname:"max_blue",flash:true,with:90,
// debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:70,cd:60,t_num:1,hit_num:1,hit:1,hitcd:1,speed:720,hero:5221,cost:10,info:"召唤一个骷髅战士为我方而战"},
// ========== 超必杀 ========== 6200-6299
6201: {
uuid:6201,name:"满天火雨",sp_name:"atk_fires",AtkedType:AtkedType.atked,path:"3101",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
ap:100,cd:5,t_num:1,hit_num:1,hit:5,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"
},
6202: {
uuid:6202,name:"龙卷风爆",sp_name:"bwind",AtkedType:AtkedType.atked,path:"3069",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
},
6203: {
uuid:6203,name:"大潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"
},
// ==========增强型技能,被动技能,========== 6300-6399
6301: {
uuid:6301,name:"攻击生命强化Ⅰ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"增加20%攻击力和生命值"
},
6302: {
uuid:6302,name:"攻击生命强化Ⅱ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3093",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"增加40%攻击力和生命值"
},
6303: {
uuid:6303,name:"攻击生命强化Ⅲ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"增加60%攻击力和生命值"
},
6304: {
uuid:6304,name:"攻击生命强化Ⅳ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"增加80%攻击力和生命值"
},
};

View File

@@ -15,136 +15,7 @@ export enum HType {
assassin = 4,
}
// 英雄基础属性配置表
// 定义每种英雄类型的力量、智力、敏捷、精神、幸运基础值
export const HeroBaseAttributes: Record<HType, { strength: number; intelligence: number; agility: number; spirit: number; luck: number }> = {
[HType.warrior]: { strength: 10, intelligence: 3, agility: 5, spirit: 4, luck: 3 },
[HType.remote]: { strength: 5, intelligence: 6, agility: 10, spirit: 4, luck: 5 },
[HType.mage]: { strength: 3, intelligence: 10, agility: 4, spirit: 8, luck: 5 },
[HType.support]: { strength: 4, intelligence: 8, agility: 5, spirit: 10, luck: 3 },
[HType.assassin]: { strength: 7, intelligence: 5, agility: 10, spirit: 3, luck: 5 },
}
// 基础属性对战斗属性的影响配置
// 定义基础属性如何影响其他战斗属性的系数
export const AttributeInfluence: Record<string, { attribute: Attrs; ratio: number }> = {
// 力量影响
"strength_to_ap": { attribute: Attrs.AP, ratio: 2 }, // 力量影响攻击力 (每点力量增加2点攻击力)
"strength_to_hp": { attribute: Attrs.HP_MAX, ratio: 10 }, // 力量影响生命值 (每点力量增加10点生命值)
// 智力影响
"intelligence_to_map": { attribute: Attrs.MAP, ratio: 3 }, // 智力影响魔法攻击力 (每点智力增加3点魔法攻击力)
"intelligence_to_mp": { attribute: Attrs.MP_MAX, ratio: 15 }, // 智力影响魔法值 (每点智力增加15点魔法值)
"intelligence_to_mdef": { attribute: Attrs.MDEF, ratio: 1 }, // 智力影响魔法防御 (每点智力增加1点魔法防御)
// 敏捷影响
"agility_to_as": { attribute: Attrs.AS, ratio: 0.5 }, // 敏捷影响攻击速度 (每点敏捷增加0.5%攻击速度)
"agility_to_dodge": { attribute: Attrs.DODGE, ratio: 0.4 }, // 敏捷影响闪避 (每点敏捷增加0.4%闪避)
"agility_to_hit": { attribute: Attrs.HIT, ratio: 0.3 }, // 敏捷影响命中 (每点敏捷增加0.3%命中)
// 精神影响
"spirit_to_mdef": { attribute: Attrs.MDEF, ratio: 2 }, // 精神影响魔法防御 (每点精神增加2点魔法防御)
"spirit_to_hp": { attribute: Attrs.HP_MAX, ratio: 5 }, // 精神影响生命值 (每点精神增加5点生命值)
"spirit_to_mp": { attribute: Attrs.MP_MAX, ratio: 10 }, // 精神影响魔法值 (每点精神增加10点魔法值)
// 幸运影响
"luck_to_critical": { attribute: Attrs.CRITICAL, ratio: 0.6 }, // 幸运影响暴击率 (每点幸运增加0.6%暴击率)
"luck_to_lifesteal": { attribute: Attrs.LIFESTEAL, ratio: 0.2 }, // 幸运影响吸血比率 (每点幸运增加0.2%吸血比率)
};
/**
* 根据英雄类型和等级计算基础属性值
* @param heroType 英雄类型
* @param level 英雄等级
* @returns 包含所有基础属性值的对象
*/
export function calculateBaseAttributes(heroType: HType, level: number): { strength: number; intelligence: number; agility: number; spirit: number; luck: number } {
const baseAttrs = HeroBaseAttributes[heroType];
// 简单的等级成长公式每级增加1点基础属性
const growth = level - 1;
return {
strength: baseAttrs.strength + growth,
intelligence: baseAttrs.intelligence + growth,
agility: baseAttrs.agility + growth,
spirit: baseAttrs.spirit + growth,
luck: baseAttrs.luck + growth
};
}
/**
* 根据基础属性计算对战斗属性的影响
* @param baseAttributes 基础属性值
* @returns 属性影响映射表
*/
export function calculateAttributeInfluences(baseAttributes: { strength: number; intelligence: number; agility: number; spirit: number; luck: number }): Record<Attrs, number> {
// 初始化所有属性影响值为0
const influences: Record<Attrs, number> = {
[Attrs.HP_MAX]: 0,
[Attrs.MP_MAX]: 0,
[Attrs.SHIELD_MAX]: 0,
[Attrs.AP]: 0,
[Attrs.MAP]: 0,
[Attrs.DEF]: 0,
[Attrs.MDEF]: 0,
[Attrs.CRITICAL]: 0,
[Attrs.CRITICAL_DMG]: 0,
[Attrs.DODGE]: 0,
[Attrs.HIT]: 0,
[Attrs.WFUNY]: 0,
[Attrs.AS]: 0,
[Attrs.REFLICT]: 0,
[Attrs.LIFESTEAL]: 0,
[Attrs.BACK]: 0,
[Attrs.DEBACK]: 0,
[Attrs.CON_RES]: 0,
[Attrs.ICE_RES]: 0,
[Attrs.FIRE_RES]: 0,
[Attrs.WIND_RES]: 0,
[Attrs.ICE_POWER]: 0,
[Attrs.FIRE_POWER]: 0,
[Attrs.WIND_POWER]: 0,
[Attrs.BUFF_UP]: 0,
[Attrs.DBUFF_UP]: 0,
[Attrs.DIS]: 0,
[Attrs.SPEED]: 0,
[Attrs.SHIELD_UP]: 0,
[Attrs.BURN]: 0,
[Attrs.DEBURN]: 0,
[Attrs.PUNCTURE]: 0,
[Attrs.PUNCTURE_DMG]: 0,
[Attrs.STRENGTH]: 0,
[Attrs.INTELLIGENCE]: 0,
[Attrs.AGILITY]: 0,
[Attrs.SPIRIT]: 0,
[Attrs.LUCK]: 0
};
// 计算力量的影响
influences[Attrs.AP] += baseAttributes.strength * (AttributeInfluence["strength_to_ap"]?.ratio || 0);
influences[Attrs.HP_MAX] += baseAttributes.strength * (AttributeInfluence["strength_to_hp"]?.ratio || 0);
// 计算智力的影响
influences[Attrs.MAP] += baseAttributes.intelligence * (AttributeInfluence["intelligence_to_map"]?.ratio || 0);
influences[Attrs.MP_MAX] += baseAttributes.intelligence * (AttributeInfluence["intelligence_to_mp"]?.ratio || 0);
influences[Attrs.MDEF] += baseAttributes.intelligence * (AttributeInfluence["intelligence_to_mdef"]?.ratio || 0);
// 计算敏捷的影响
influences[Attrs.AS] += baseAttributes.agility * (AttributeInfluence["agility_to_as"]?.ratio || 0);
influences[Attrs.DODGE] += baseAttributes.agility * (AttributeInfluence["agility_to_dodge"]?.ratio || 0);
influences[Attrs.HIT] += baseAttributes.agility * (AttributeInfluence["agility_to_hit"]?.ratio || 0);
// 计算精神的影响
influences[Attrs.MDEF] += baseAttributes.spirit * (AttributeInfluence["spirit_to_mdef"]?.ratio || 0);
influences[Attrs.HP_MAX] += baseAttributes.spirit * (AttributeInfluence["spirit_to_hp"]?.ratio || 0);
influences[Attrs.MP_MAX] += baseAttributes.spirit * (AttributeInfluence["spirit_to_mp"]?.ratio || 0);
// 计算幸运的影响
influences[Attrs.CRITICAL] += baseAttributes.luck * (AttributeInfluence["luck_to_critical"]?.ratio || 0);
influences[Attrs.LIFESTEAL] += baseAttributes.luck * (AttributeInfluence["luck_to_lifesteal"]?.ratio || 0);
return influences;
}
export const HTypeName ={
0:"战士",
@@ -212,48 +83,56 @@ export interface heroInfo{
}
export const HeroInfo: Record<number, heroInfo> = {
//主将
// ========== 英雄角色 ==========
// 刘邦 - 领导型战士(善于用人,知人善任)
5001:{uuid:5001,name:"刘邦",path:"hk1", fac:FacSet.HERO, kind:1,
type:HType.warrior,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:100,speed:150,skills:[6001,6005],
buff:[],debuff:[],info:""},
type:HType.warrior,lv:1,hp:120,mp:80,map:10,def:8,ap:15,dis:100,speed:120,skills:[6001,6005],
buff:[],debuff:[],info:"汉朝开国皇帝,善于用人,领导型战士"},
// 荆轲 - 刺客(敏捷型,高速度和暴击率)
5002:{uuid:5002,name:"荆轲",path:"hc1", fac:FacSet.HERO, kind:1,
type:HType.warrior,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:100,speed:150,skills:[6001,6005],
buff:[],debuff:[],info:""},
type:HType.assassin,lv:1,hp:80,mp:60,map:5,def:3,ap:20,dis:120,speed:180,skills:[6001,6005],
buff:[],debuff:[],info:"战国刺客,高速度高暴击的敏捷型刺客"},
// 绿箭 - 远程射手(机动型,高移动速度和远程攻击)
5005:{uuid:5005,name:"绿箭",path:"ha1", fac:FacSet.HERO, kind:2,
type:HType.remote,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:400,speed:100,skills:[6001,6005],
buff:[],debuff:[],info:""},
type:HType.remote,lv:1,hp:90,mp:70,map:8,def:4,ap:18,dis:450,speed:140,skills:[6001,6005],
buff:[],debuff:[],info:"远程射手,机动型高远程输出"},
// 牧师 - 辅助治疗(辅助型,擅长治疗和支援)
5007:{uuid:5007,name:"牧师",path:"hh1", fac:FacSet.HERO, kind:2,
type:HType.mage,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:400,speed:100,skills:[6001,6005],
buff:[],debuff:[],info:""},
type:HType.support,lv:1,hp:100,mp:120,map:12,def:5,ap:8,dis:350,speed:100,skills:[6001,6005],
buff:[],debuff:[],info:"辅助治疗者,擅长治疗和支援队友"},
// 火女 - 元素法师(元素型,操控火焰元素)
5008:{uuid:5008,name:"火女",path:"hm1", fac:FacSet.HERO, kind:2,
type:HType.mage,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:400,speed:100,skills:[6001,6005],
buff:[],debuff:[],info:""},
type:HType.mage,lv:1,hp:85,mp:150,map:25,def:3,ap:6,dis:400,speed:90,skills:[6001,6005],
buff:[],debuff:[],info:"元素法师,操控火焰元素进行高魔法输出"},
// 魔法精灵 - 奥术法师(博学型,掌握多种魔法)
5009:{uuid:5009,name:"魔法精灵",path:"hm2", fac:FacSet.HERO, kind:2,
type:HType.mage,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:400,speed:100,skills:[6006,6006,6301,6302,6303],
buff:[],debuff:[],info:""},
type:HType.mage,lv:1,hp:80,mp:160,map:28,def:2,ap:5,dis:420,speed:95,skills:[6001,6005],
buff:[],debuff:[],info:"奥术法师,博学多才掌握多种魔法"},
// 德鲁伊 - 自然辅助(辅助型,自然魔法和召唤)
5010:{uuid:5010,name:"德鲁伊",path:"hz1", fac:FacSet.HERO, kind:2,
type:HType.mage,lv:1,hp:100,mp:100,map:100,def:5,ap:15,dis:400,speed:100,skills:[6007,6007,6301,6302,6303],
buff:[],debuff:[],info:""},
type:HType.support,lv:1,hp:95,mp:130,map:18,def:6,ap:10,dis:380,speed:105,skills:[6001,6005],
buff:[],debuff:[],info:"自然德鲁伊,精通自然魔法和生命治愈"},
//怪物
5201:{uuid:5201,name:"兽人战士",path:"mo1", fac:FacSet.MON, kind:1,
type:HType.warrior,lv:1,hp:25,mp:100,map:100,def:5,ap:5,dis:90,speed:100,skills:[6005],
type:HType.warrior,lv:1,hp:25,mp:100,map:10,def:5,ap:5,dis:90,speed:100,skills:[6005],
buff:[],debuff:[],info:"普通怪物-战士型"},
5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, kind:1,
type:HType.remote,lv:1,hp:20,mp:100,map:100,def:5,ap:5,dis:350,speed:100,skills:[6005],
type:HType.remote,lv:1,hp:20,mp:100,map:10,def:5,ap:5,dis:350,speed:100,skills:[6005],
buff:[],debuff:[],info:"普通怪物-战士型"},
5203:{uuid:5203,name:"兽人护卫",path:"mo1", fac:FacSet.MON, kind:1,
type:HType.warrior,lv:1,hp:25,mp:100,map:100,def:5,ap:5,dis:90,speed:100,skills:[6005],
type:HType.warrior,lv:1,hp:25,mp:100,map:10,def:5,ap:5,dis:90,speed:100,skills:[6005],
buff:[],debuff:[],info:"普通怪物-战士型"},
};

View File

@@ -4,7 +4,7 @@ import { ecs } from "../../../../../../extensions/oops-plugin-framework/assets/l
import { smc } from "../../SingletonModuleComp";
import { FacSet } from "../../config/BoxSet";
import { HType } from "../../config/heroSet";
import { Attrs, DBuff } from "../../config/SkillSet";
import { Attrs } from "../../config/HeroAttrs";
@ecs.register('BattleMoveSystem')
export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate {

View File

@@ -1,63 +0,0 @@
import { HType, calculateBaseAttributes, calculateAttributeInfluences } from "../common/config/heroSet";
import { Attrs } from "../common/config/SkillSet";
/**
* 英雄属性计算器使用示例
*/
export class AttributeExample {
/**
* 示例:计算指定类型和等级的英雄属性
* @param heroType 英雄类型
* @param level 英雄等级
*/
static calculateHeroAttributes(heroType: HType, level: number) {
// 1. 计算基础属性值
const baseAttributes = calculateBaseAttributes(heroType, level);
console.log("基础属性:", baseAttributes);
// 2. 计算基础属性对战斗属性的影响
const attributeInfluences = calculateAttributeInfluences(baseAttributes);
console.log("属性影响:", attributeInfluences);
// 3. 输出特定属性的影响值
console.log(`攻击力加成: ${attributeInfluences[Attrs.AP]}`);
console.log(`生命值加成: ${attributeInfluences[Attrs.HP_MAX]}`);
console.log(`魔法攻击力加成: ${attributeInfluences[Attrs.MAP]}`);
return {
baseAttributes,
attributeInfluences
};
}
/**
* 示例:为英雄应用属性影响
* @param hero 英雄对象
* @param level 英雄等级
*/
static applyAttributesToHero(hero: any, level: number) {
// 计算基础属性
const baseAttributes = calculateBaseAttributes(hero.type, level);
// 计算属性影响
const attributeInfluences = calculateAttributeInfluences(baseAttributes);
// 应用属性影响到英雄
hero.ap += attributeInfluences[Attrs.AP];
hero.hp += attributeInfluences[Attrs.HP_MAX];
hero.map += attributeInfluences[Attrs.MAP];
hero.mp += attributeInfluences[Attrs.MP_MAX];
hero.mdef += attributeInfluences[Attrs.MDEF];
hero.as += attributeInfluences[Attrs.AS];
hero.dodge += attributeInfluences[Attrs.DODGE];
hero.hit += attributeInfluences[Attrs.HIT];
hero.critical += attributeInfluences[Attrs.CRITICAL];
hero.lifesteal += attributeInfluences[Attrs.LIFESTEAL];
return hero;
}
}
// 使用示例
// const warriorAttrs = AttributeExample.calculateHeroAttributes(HType.warrior, 10);
// const mageAttrs = AttributeExample.calculateHeroAttributes(HType.mage, 10);

View File

@@ -8,8 +8,9 @@ import { BoxSet, FacSet } from "../common/config/BoxSet";
import { HeroInfo, HeroPos, HType } from "../common/config/heroSet";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { GameEvent } from "../common/config/GameEvent";
import { Attrs, getAttrs, SkillSet } from "../common/config/SkillSet";
import { SkillSet } from "../common/config/SkillSet";
import { time } from "console";
import { getNeAttrs, getAttrs ,Attrs} from "../common/config/HeroAttrs";
/** 角色实体 */
@ecs.register(`Hero`)
@@ -84,6 +85,7 @@ export class Hero extends ecs.Entity {
hv.base_dis=hero.dis
hv.base_speed=hero.speed
hv.Attrs=getAttrs()
hv.NeAttrs=getNeAttrs()
hv.hp=hv.Attrs[Attrs.HP_MAX]=hv.base_hp
hv.mp=hv.Attrs[Attrs.MP_MAX]=hv.base_mp
hv.Attrs[Attrs.DEF]=hv.base_def

View File

@@ -5,31 +5,70 @@ import { HeroSpine } from "./HeroSpine";
import { BoxSet, FacSet } from "../common/config/BoxSet";
import { smc } from "../common/SingletonModuleComp";
import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer";
import { Attrs, DBuff, SkillSet, BType, BuffConf, DbuffConf, TransformBuffs, AttrsType } from "../common/config/SkillSet";
import { BuffComp } from "./BuffComp";
import { SkillSet,BuffConf,} from "../common/config/SkillSet";
import { BuffComp } from "./BuffComp";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { FightSet, TooltipTypes } from "../common/config/Mission";
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
import { AttrSet, HeroInfo, HeroUpSet } from "../common/config/heroSet";
import { Attrs, AttrsType, BType, NeAttrs } from "../common/config/HeroAttrs";
const { ccclass, property } = _decorator;
/**
* ==================== BUFF 系统使用说明 ====================
*
* 1. 系统架构
* - BUFF_V/BUFFS_V: 数值型 buff持临时
* - BUFF_R/BUFFS_R: 百分比型 buff持临时
* - DBUFF_V/DBUFFS_V: 数值型 debuff持临时
* - DBUFF_R/DBUFFS_R: 百分比型 debuff持临时
* 1. 系统架构 - 支持多次叠加(简化设计)
* - BUFFS: 持久型buff数组持久存在直到主动移除
* - BUFFS_TEMP: 临时型buff数组持续指定时间时间到自动移除
* - 每个buff实例内包含BType字段区分数值型(VALUE)和百分比型(RATIO)
*
* 2. 智能覆盖规则
* - 值更小:不添加(弱效果不覆盖强效果
* - 值相同且临时:叠加时
* - 值更大:更新为新值(临时则更新值和时间
* 2. 叠加规则 - 核心特性
* - 同一属性允许多个buff实例同时存在数值型和百分比型混合
* - 每个buff实例保持独立的数据value、BType、remainTime
* - 所有buff实例在属性计算时都被纳入求和计算
* - 示例:若添加两个+10 AP的buff最终会累加 +20 AP
*
* 3. 数据结构 - 统一数组设计
* - BUFFS: Record<attrIndex: number, Array<{value, BType}>>
* - BUFFS_TEMP: Record<attrIndex: number, Array<{value, BType, remainTime}>>
* - 每个属性对应一个buff数组可混合存储数值型和百分比型buff
*
* 4. 属性计算公式 - 按BType区分
* - 数值型: (基础值 + 所有数值型buff之和) × (1 + 所有百分比buff之和/100)
* - 百分比: 基础值 + 所有数值型buff之和 + 所有百分比buff之和
*
* 5. API 使用示例
* // 添加buff自动根据time判断持久或临时
* const buffConf: BuffConf = {
* buff: Attrs.AP,
* BType: BType.VALUE,
* value: 10,
* time: 5, // 0表示持久>0表示临时
* chance: 100
* };
* hero.addBuff(buffConf);
*
* // 移除特定buff
* hero.removeBuff(Attrs.AP, 10, true); // 移除临时的+10 AP
*
* // 清空属性所有buff
* hero.clearBuffs(Attrs.AP);
*
* // 查询激活的buff数量
* const count = hero.getActiveBuffCount(Attrs.AP);
*
* 6. 临时buff自动更新
* - 每帧update中自动调用updateTemporaryBuffsDebuffs(dt)
* - 递减所有临时buff的remainTime
* - 当remainTime <= 0时自动移除buff并重新计算属性
*/
/** 角色显示组件 */
export interface BuffInfo {
attr: Attrs;
value: number;
remainTime?: number;
}
@ccclass('HeroViewComp') // 定义Cocos Creator 组件
@ecs.register('HeroView', false) // 定义ECS 组件
export class HeroViewComp extends CCComp {
@@ -66,24 +105,21 @@ export class HeroViewComp extends CCComp {
base_speed: number = 100; /** 角色移动速度 */
base_dis: number = 100;
Attrs:any=[]
// Buff/Debuff 字典结构,通过属性索引直接访
// 结构: { [attrIndex: number]: { value: number, remainTime?: number } }
DBUFF_V: Record<number, {value: number}> = {} // 持久型数debuff
DBUFF_R: Record<number, {value: number}> = {} // 持久型百分比 debuff
BUFF_V: Record<number, {value: number}> = {} // 持久型数buff
BUFF_R: Record<number, {value: number}> = {} // 持久型百分比 buff
DBUFFS_V: Record<number, {value: number, remainTime: number}> = {} // 临时型数debuff
DBUFFS_R: Record<number, {value: number, remainTime: number}> = {} // 临时型百分比 debuff
BUFFS_V: Record<number, {value: number, remainTime: number}> = {} // 临时型数buff
BUFFS_R: Record<number, {value: number, remainTime: number}> = {} // 临时型百分比 buff
NeAttrs:any=[]
// Buff debuff 统一管理
// 每个buff实例内包含BType用于区分数值型(VALUE)和百分比型(RATIO)
// [attrIndex: number]: Array<BuffInstance> - 允许多个buff实例独立存在
/** 持久型buff数组 - 不会自动过期 */
BUFFS: Record<number, Array<{value: number, BType: BType}>> = {}
/** 临时型buff数组 - 按时间自动过期 */
BUFFS_TEMP: Record<number, Array<{value: number, BType: BType, remainTime: number}>> = {}
atk_count: number = 0;
atked_count: number = 0;
private damageQueue: Array<{
damage: number,
isCrit: boolean,
@@ -126,14 +162,10 @@ export class HeroViewComp extends CCComp {
*/
initAttrs() {
// 清空现有 buff/debuff
this.BUFF_V = {};
this.BUFFS_V = {};
this.BUFF_R = {};
this.BUFFS_R = {};
this.DBUFF_V = {};
this.DBUFFS_V = {};
this.DBUFF_R = {};
this.DBUFFS_R = {};
this.BUFFS = {
};
this.BUFFS_TEMP = {
};
// 获取英雄配置
const heroInfo = HeroInfo[this.hero_uuid];
if (!heroInfo) return;
@@ -170,144 +202,43 @@ export class HeroViewComp extends CCComp {
this.addBuff(buffConf);
}
}
// 加载初始 debuff
if (heroInfo.debuff && heroInfo.debuff.length > 0) {
for (const dbuffConf of heroInfo.debuff) {
this.addDebuff(dbuffConf);
}
}
}
// ==================== BUFF管理 ====================
/**
* 添加 buff 效果(智能覆盖
* 添加 buff 效果(支持多次叠加
* @param buffConf buff 配置 (来自 SkillSet.BuffConf heroSet.buff)
*
* 智能覆盖规则
* 1. 值更小:不添
* 2. 值相同且都是临时:叠加时
* 3. 值更大:更新为新值(临时则更新值和时间
* 叠加规则
* 1. 持久型buff直接添加到数组中与现有buff独立存在
* 2. 临时型buff直接添加到数组中保持独立的剩余时间计算
* 3. 所有buff实例在属性计算时都被纳入求和计算
*/
addBuff(buffConf: BuffConf) {
const isValue = buffConf.BType === BType.VALUE;
const isPermanent = buffConf.time === 0;
const attrIndex = buffConf.buff;
// 根据类型选择对应buff 字典
const permanentBuffs = isValue ? this.BUFF_V : this.BUFF_R;
const temporaryBuffs = isValue ? this.BUFFS_V : this.BUFFS_R;
if (isPermanent) {
// 添加持久buff
const existing = permanentBuffs[attrIndex];
if (existing) {
// 值更小,不添
if (buffConf.value <= existing.value) {
return;
}
// 值更大,更新
existing.value = buffConf.value;
} else {
// 没有同类型,直接添加
permanentBuffs[attrIndex] = { value: buffConf.value };
// 添加持久buff到BUFFS - 直接追加到数组
if (!this.BUFFS[attrIndex]) {
this.BUFFS[attrIndex] = [];
}
this.BUFFS[attrIndex].push({ value: buffConf.value, BType: buffConf.BType });
} else {
// 添加临时buff
const existing = temporaryBuffs[attrIndex];
if (existing) {
if (buffConf.value < existing.value) {
// 值更小,不添
return;
} else if (buffConf.value === existing.value) {
// 值相同,叠加时间
existing.remainTime += buffConf.time;
return; // 时间叠加不需要重算属
} else {
// 值更大,更新值和时间
existing.value = buffConf.value;
existing.remainTime = buffConf.time;
}
} else {
// 没有同类型,直接添加
temporaryBuffs[attrIndex] = {
value: buffConf.value,
remainTime: buffConf.time
};
// 添加临时buff到BUFFS_TEMP - 直接追加到数组
if (!this.BUFFS_TEMP[attrIndex]) {
this.BUFFS_TEMP[attrIndex] = [];
}
this.BUFFS_TEMP[attrIndex].push({
value: buffConf.value,
BType: buffConf.BType,
remainTime: buffConf.time
});
}
this.recalculateSingleAttr(buffConf.buff);
// 重新计算受影响的属性
this.recalculateSingleAttr(attrIndex);
}
// ==================== DEBUFF管理 ====================
/**
* 添加 debuff 效果(智能覆盖)
* @param dbuffConf debuff 配置 (来自 SkillSet.DbuffConf heroSet.debuff)
*
* 支持两种 debuff
* 1. 属性型 debuff直接修改属性值有对应的 Attrs
* 2. 状态型 debuff只缓存状态无对应的 Attrs用于状态检查
*
* 智能覆盖规则
* 1. 值更小:不添
* 2. 值相同且都是临时:叠加时
* 3. 值更大:更新为新值(临时则更新值和时间
*/
addDebuff(dbuffConf: DbuffConf) {
// 获取 debuff 对应的属性字
const isValue = dbuffConf.BType === BType.VALUE;
const isPermanent = dbuffConf.time === 0;
// 根据类型选择对应debuff 字典
const permanentDebuffs = isValue ? this.DBUFF_V : this.DBUFF_R;
const temporaryDebuffs = isValue ? this.DBUFFS_V : this.DBUFFS_R;
// 状态类 debuff 使用 debuff 类型作为 key属性类 debuff 使用 attrField 作为 key
const key = dbuffConf.debuff;
if (isPermanent) {
// 添加持久debuff
const existing = permanentDebuffs[key];
if (existing) {
// 值更小,不添
if (dbuffConf.value <= existing.value) {
return;
}
// 值更大,更新
existing.value = dbuffConf.value;
} else {
// 没有同类型,直接添加
permanentDebuffs[key] = { value: dbuffConf.value };
}
} else {
// 添加临时debuff
const existing = temporaryDebuffs[key];
if (existing) {
if (dbuffConf.value < existing.value) {
// 值更小,不添
return;
} else if (dbuffConf.value === existing.value) {
// 值相同,叠加时间
existing.remainTime += dbuffConf.time;
return; // 时间叠加不需要重算属
} else {
// 值更大,更新值和时间
existing.value = dbuffConf.value;
existing.remainTime = dbuffConf.time;
}
} else {
// 没有同类型,直接添加
temporaryDebuffs[key] = {
value: dbuffConf.value,
remainTime: dbuffConf.time
};
}
}
let attrField = TransformBuffs(dbuffConf.debuff,true);
// 只重新计算受影响的属性(状态类 debuff 不需要计算)
if (attrField > 0 ) {
this.recalculateSingleAttr(attrField);
}
}
// ==================== 属性计算系====================
/**
@@ -315,8 +246,8 @@ export class HeroViewComp extends CCComp {
* @param attrIndex 属性索引
*
* 计算公式:
* - 数值型属性:最终值 = (基础值 + 数值型buff - 数值型debuff) × (1 + 百分比buff/100 - 百分比debuff/100)
* - 百分比型属性:最终值 = 基础值 + 数值型buff - 数值型debuff + 百分比buff - 百分比debuff
* - 数值型属性:最终值 = (基础值 + 所有数值型buff之和 - 所有数值型debuff之和) × (1 + 所有百分比buff之和/100 - 所有百分比debuff之和/100)
* - 百分比型属性:最终值 = 基础值 + 所有数值型buff之和 - 所有数值型debuff之和 + 所有百分比buff之和 - 所有百分比debuff之和
*/
private recalculateSingleAttr(attrIndex: number) {
// 1. 获取基础值
@@ -332,49 +263,46 @@ export class HeroViewComp extends CCComp {
const baseVal = baseValues[attrIndex] !== undefined ? baseValues[attrIndex] : 0;
// 2. 收集所有数值型 buff/debuff
// 2. 收集所有数值型 buff/debuff - 遍历所有buff数组并按BType筛选求和
let totalValue = baseVal;
// Buff直接使用 Attrs 索引
if (this.BUFF_V[attrIndex]) {
totalValue += this.BUFF_V[attrIndex].value;
}
if (this.BUFFS_V[attrIndex]) {
totalValue += this.BUFFS_V[attrIndex].value;
}
// Debuff需要通过 DBuff key 查找
const deKey = TransformBuffs(attrIndex, false);
if (deKey !== -1) {
if (this.DBUFF_V[deKey]) {
totalValue -= this.DBUFF_V[deKey].value;
}
if (this.DBUFFS_V[deKey]) {
totalValue -= this.DBUFFS_V[deKey].value;
// 遍历持久buff数组
if (this.BUFFS[attrIndex] && this.BUFFS[attrIndex].length > 0) {
for (const buff of this.BUFFS[attrIndex]) {
if (buff.BType === BType.VALUE) {
totalValue += buff.value;
}
}
}
// 3. 收集所有百分比型 buff/debuff
// 遍历临时buff数组
if (this.BUFFS_TEMP[attrIndex] && this.BUFFS_TEMP[attrIndex].length > 0) {
for (const buff of this.BUFFS_TEMP[attrIndex]) {
if (buff.BType === BType.VALUE) {
totalValue += buff.value;
}
}
}
// 3. 收集所有百分比型 buff/debuff - 遍历所有buff数组并按BType筛选求和
let totalRatio = 0; // 总百分比(可正可负)
// Buff直接使用 Attrs 索引
if (this.BUFF_R[attrIndex]) {
totalRatio += this.BUFF_R[attrIndex].value;
}
if (this.BUFFS_R[attrIndex]) {
totalRatio += this.BUFFS_R[attrIndex].value;
}
// Debuff需要通过 DBuff key 查找
if (deKey !== -1) {
if (this.DBUFF_R[deKey]) {
totalRatio -= this.DBUFF_R[deKey].value;
}
if (this.DBUFFS_R[deKey]) {
totalRatio -= this.DBUFFS_R[deKey].value;
// 遍历持久buff数组
if (this.BUFFS[attrIndex] && this.BUFFS[attrIndex].length > 0) {
for (const buff of this.BUFFS[attrIndex]) {
if (buff.BType === BType.RATIO) {
totalRatio += buff.value;
}
}
}
// 遍历临时buff数组
if (this.BUFFS_TEMP[attrIndex] && this.BUFFS_TEMP[attrIndex].length > 0) {
for (const buff of this.BUFFS_TEMP[attrIndex]) {
if (buff.BType === BType.RATIO) {
totalRatio += buff.value;
}
}
}
// 4. 根据属性类型计算最终值
const attrType = AttrsType[attrIndex];
const isRatioAttr = attrType === BType.RATIO;
@@ -421,45 +349,48 @@ export class HeroViewComp extends CCComp {
updateTemporaryBuffsDebuffs(dt: number) {
const affectedAttrs = new Set<number>();
// 更新临时型数buff
for (const attrIndex in this.BUFFS_V) {
const buff = this.BUFFS_V[attrIndex];
buff.remainTime -= dt;
if (buff.remainTime <= 0) {
delete this.BUFFS_V[attrIndex];
for (const attrIndex in this.BUFFS_TEMP) {
const buffs = this.BUFFS_TEMP[attrIndex];
buffs.forEach(buff => {
buff.remainTime -= dt;
if (buff.remainTime <= 0) {
// 从数组中移除
const index = buffs.indexOf(buff);
if (index > -1) {
buffs.splice(index, 1);
}
}
});
if (buffs.length === 0) {
delete this.BUFFS_TEMP[attrIndex];
affectedAttrs.add(parseInt(attrIndex));
}
}
// 更新临时型百分比 buff
for (const attrIndex in this.BUFFS_R) {
const buff = this.BUFFS_R[attrIndex];
buff.remainTime -= dt;
if (buff.remainTime <= 0) {
delete this.BUFFS_R[attrIndex];
for (const attrIndex in this.BUFFS_TEMP) {
const buffs = this.BUFFS_TEMP[attrIndex];
buffs.forEach(buff => {
buff.remainTime -= dt;
if (buff.remainTime <= 0) {
// 从数组中移除
const index = buffs.indexOf(buff);
if (index > -1) {
buffs.splice(index, 1);
}
}
});
if (buffs.length === 0) {
delete this.BUFFS_TEMP[attrIndex];
affectedAttrs.add(parseInt(attrIndex));
}
}
// 更新临时型数debuff
for (const key in this.DBUFFS_V) {
const debuff = this.DBUFFS_V[key];
// 负面状态更新
for (const key in this.NeAttrs) {
const debuff = this.NeAttrs[key];
debuff.remainTime -= dt;
if (debuff.remainTime <= 0) {
delete this.DBUFFS_V[key];
const keyNum = parseInt(key);
const attrField = TransformBuffs(keyNum,true)
if(attrField > 0) affectedAttrs.add(attrField);
}
}
// 更新临时型百分比 debuff
for (const key in this.DBUFFS_R) {
const debuff = this.DBUFFS_R[key];
debuff.remainTime -= dt;
if (debuff.remainTime <= 0) {
delete this.DBUFFS_R[key];
const keyNum = parseInt(key);
const attrField = TransformBuffs(keyNum,true)
if(attrField > 0) affectedAttrs.add(attrField);
debuff.remainTime = 0;
}
}
@@ -469,11 +400,79 @@ export class HeroViewComp extends CCComp {
});
}
// ==================== BUFF 辅助方法 ====================
/**
* 清空buff
* @param attrIndex 属性索引如果为空则清理所有buff包括临时和持久
* @param isBuff true时清理value>0的增益bufffalse时清理value<0的减益buff
*/
clearBuffs(attrIndex?: number, isBuff: boolean = true): void {
if (attrIndex === undefined) {
// 清理所有buff根据isBuff过滤
for (const attrIndex in this.BUFFS_TEMP) {
this.clearBuffsForAttr(parseInt(attrIndex), isBuff);
}
} else {
// 清理指定属性的buff根据isBuff过滤
this.clearBuffsForAttr(attrIndex, isBuff);
}
}
/**
* 清理指定属性的buff根据增益/减益类型过滤
* @param attrIndex 属性索引
* @param isBuff true清理增益bufffalse清理减益buff
*/
private clearBuffsForAttr(attrIndex: number, isBuff: boolean): void {
const buffContainer = this.BUFFS_TEMP;
if (!buffContainer[attrIndex]) return;
// 过滤buff数组保留不符合清理条件的buff
buffContainer[attrIndex] = buffContainer[attrIndex].filter(buff => {
const shouldClear = isBuff ? buff.value > 0 : buff.value < 0;
return !shouldClear;
});
// 如果数组为空,删除该属性条目
if (buffContainer[attrIndex].length === 0) {
delete buffContainer[attrIndex];
}
// 重新计算该属性
this.recalculateSingleAttr(attrIndex);
}
// ==================== NeAttrs负面状态管理 ====================
/**
* 清理单个NeAttr负面状态
* @param neAttrIndex NeAttrs索引如NeAttrs.IN_STUN、NeAttrs.IN_FROST等
* 清理即将该状态的value和time都设为0
*/
clearNeAttr(neAttrIndex: number): void {
if (this.NeAttrs[neAttrIndex]) {
this.NeAttrs[neAttrIndex].value = 0;
this.NeAttrs[neAttrIndex].time = 0;
}
}
/**
* 清理所有NeAttrs负面状态
* 清理即将所有状态的value和time都设为0
*/
clearAllNeAttrs(): void {
for (const key in this.NeAttrs) {
this.NeAttrs[key].value = 0;
this.NeAttrs[key].time = 0;
}
}
public isStun() {
return this.DBUFFS_V[DBuff.STUN] !== undefined?true:false
return this.NeAttrs[NeAttrs.IN_STUN].time > 0;
}
public isFrost() {
return this.DBUFFS_V[DBuff.FROST] !== undefined?true:false
return this.NeAttrs[NeAttrs.IN_FROST].time > 0;
}
update(dt: number){
@@ -619,7 +618,7 @@ export class HeroViewComp extends CCComp {
}
// this.update_vm
this.back()
this.showDamage(damage, is_crit,SConf.AtkedType);
this.showDamage(damage, is_crit,SConf.AtkedName);
}
//后退
back(){

View File

@@ -8,7 +8,8 @@ import { HeroInfo } from "../common/config/heroSet";
import { MonModelComp } from "./MonModelComp";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { SkillConComp } from "./SkillConComp";
import { Attrs, getAttrs, SkillSet } from "../common/config/SkillSet";
import { SkillSet } from "../common/config/SkillSet";
import { getNeAttrs, getAttrs ,Attrs} from "../common/config/HeroAttrs";
/** 角色实体 */
@ecs.register(`Monster`)
export class Monster extends ecs.Entity {
@@ -89,7 +90,8 @@ export class Monster extends ecs.Entity {
hv.base_mp=hero.mp
hv.hp=hv.base_hp
hv.mp=hv.base_mp
hv.Attrs=getAttrs()
hv.Attrs=getAttrs()
hv.NeAttrs=getNeAttrs()
hv.Attrs[Attrs.HP_MAX]=hv.base_hp
hv.Attrs[Attrs.MP_MAX]=hv.base_mp
hv.Attrs[Attrs.DEF]=hv.base_def

View File

@@ -1,6 +1,6 @@
import { _decorator, Component, Node, ProgressBar, v3, Vec3 } from 'cc';
import { HeroViewComp } from './HeroViewComp';
import { Attrs, DBuff, SkillSet, SType, TGroup, } from '../common/config/SkillSet';
import { SkillSet, SType, TGroup, } from '../common/config/SkillSet';
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
import { GameEvent } from '../common/config/GameEvent';
import { FacSet } from '../common/config/BoxSet';
@@ -9,6 +9,7 @@ import { CCComp } from 'db://oops-framework/module/common/CCComp';
import { MonModelComp } from './MonModelComp';
import { HeroModelComp } from './HeroModelComp';
import { SkillEnt } from '../skill/SkillEnt';
import { Attrs } from '../common/config/HeroAttrs';
const { ccclass, property } = _decorator;
@ccclass('SkillCon')

View File

@@ -2,11 +2,12 @@ import { _decorator, Animation, CCBoolean, Collider2D, Contact2DType, Tween, UIT
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { BezierMove } from "../BezierMove/BezierMove";
import { Attrs, DTType, EType, SkillSet, SType } from "../common/config/SkillSet";
import { DTType, EType, SkillSet, SType } from "../common/config/SkillSet";
import { BoxSet, FacSet } from "../common/config/BoxSet";
import { HeroViewComp } from "../hero/HeroViewComp";
import { GameEvent } from "../common/config/GameEvent";
import { smc } from "../common/SingletonModuleComp";
import { Attrs } from "../common/config/HeroAttrs";
const { ccclass, property } = _decorator;
/** 视图层对象 */

View File

@@ -2,7 +2,7 @@ import { _decorator, CCBoolean, CCFloat, CCInteger, instantiate, Node, Prefab, v
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { HeroViewComp } from "../hero/HeroViewComp";
import { getAttrs, RType, SkillSet } from "../common/config/SkillSet";
import { getAttrs, RType, SkillSet } from "../common/config/SkillSet";
import { AtkConCom } from "./AtkConCom";
import { BoxSet } from "../common/config/BoxSet";

View File

@@ -174,7 +174,7 @@ export class SkillCom extends CCComp {
// this.burn_count,this.burn_value,
// this.stun_time,this.stun_ratio,
// this.frost_time,this.frost_ratio,
// this.skillConfig.AtkedType
// this.skillConfig.AtkedName
// ) // ap 及暴击 属性已经在skill.ts 处理
// console.log("[SkillCom]:single_damage t:tp:rtp",this.node.position,this.targetPos,target.node.position)
if(this.skillConfig.debuff>0){

View File

@@ -117,63 +117,183 @@
### 15. 吴起
- **历史简介**:战国时期军事家,与孙武并称"孙吴"。善于用兵,著有《吴子兵法》,在魏、楚两国都曾为将。
- **初始属性倾向**:用兵型(高机动性和适应性)
- **职业定位**warrior全能战士
- **能力成长方向**
- 用兵专精:提升攻击速度和移动速度
- 治军强化:增强自身防御和生命值
- 变法突进:根据战场情况调整战术
### 16. 孙膑
- **历史简介**:战国时期齐国军事家,孙武后代。著有《孙膑兵法》,曾在桂陵之战、马陵之战中大败魏军。
- **初始属性倾向**:谋略型(高智力和战术)
- **职业定位**mage战术法师
- **能力成长方向**
- 围魏救赵:战术技能冷却降低
- 减灶诱敌:提升敌人受到的伤害
- 兵法奥义:魔法伤害大幅提升
### 17. 乐毅
- **历史简介**:战国时期燕国名将,曾率五国联军攻破齐国七十余城,几乎灭齐。
- **初始属性倾向**:统帅型(范围攻击和持续战斗)
- **职业定位**warrior攻城战士
- **能力成长方向**
- 破城专精:对防御型敌人伤害提升
- 联军指挥:范围伤害增强
- 持久作战:战斗时间越长属性越强
### 18. 田单
- **历史简介**:战国时期齐国将领,以火牛阵大破燕军,收复齐国失地七十余城。
- **初始属性倾向**:创新型(特殊战术和爆发)
- **职业定位**mage火焰法师
- **能力成长方向**
- 火牛阵:火焰范围伤害
- 绝地反击:低血量时爆发强大战力
- 守城专精:防御状态下伤害提升
### 19. 范蠡
- **历史简介**:春秋末期越国政治家、军事家和商人。辅佐越王勾践灭吴复国,后隐退经商成为巨富。
- **初始属性倾向**:智谋商贾型(资源增益和策略)
- **职业定位**support经济辅助
- **能力成长方向**
- 卧薪尝胆:持续获得资源加成
- 商业奇才:提升金币收益
- 功成身退:危机时刻提供强大护盾
### 20. 伍子胥
- **历史简介**:春秋时期吴国大夫、军事家。率军攻破楚国,报父兄之仇。刚直不阿,最终被吴王夫差赐死。
- **初始属性倾向**:复仇型(高爆发和持续伤害)
- **职业定位**assassin复仇刺客
- **能力成长方向**
- 血海深仇:对特定目标伤害大幅提升
- 鞭尸怨念:击杀敌人后获得额外伤害
- 刚烈之志:濒死时爆发极限战力
### 21. 管仲
- **历史简介**:春秋时期齐国政治家、改革家。辅佐齐桓公成为春秋五霸之首,推行经济、军事改革。
- **初始属性倾向**:改革型(全面强化和资源管理)
- **职业定位**support战略辅助
- **能力成长方向**
- 九合诸侯:提升团队整体属性
- 经济改革:增加资源获取
- 富国强兵:攻防双重加成
### 22. 晏婴
- **历史简介**:春秋时期齐国政治家,以节俭力行、谏诤直言著称。身材矮小但智慧超群。
- **初始属性倾向**:辩才型(控制和削弱)
- **职业定位**support辩士辅助
- **能力成长方向**
- 巧言善辩:延长控制效果时长
- 节俭美德:降低技能消耗
- 使楚不辱:反弹敌人部分伤害
### 23. 李斯
- **历史简介**:秦朝丞相,法家代表人物。协助秦始皇统一六国,统一文字、度量衡,推行郡县制。
- **初始属性倾向**:法治型(规则限制和强制执行)
- **职业定位**mage法术控制
- **能力成长方向**
- 以法治国:强制性控制技能
- 统一天下:降低敌人抗性
- 焚书坑儒:魔法伤害爆发
## 楚汉争霸时期英雄
### 16. 刘邦
### 24. 刘邦
- **历史简介**:汉朝开国皇帝,出身平民,推翻秦朝后在楚汉战争中击败项羽,建立汉朝。善于用人,知人善任。
- **初始属性倾向**:领导型(提升团队整体能力)
- **职业定位**warrior领袖战士
- **能力成长方向**
- 适应能力:根据战场情况调整属性
- 坚韧恢复:受伤后快速恢复能力
- 领导增益:提升自身各项属性
### 17. 项羽
- **历史简介**:西楚霸王,楚国名将项燕之孙。力能扛鼎,作战勇猛,推翻秦朝的主要力量之一。在楚汉战争中与刘邦争夺天下,最终乌江自
### 25. 项羽
- **历史简介**:西楚霸王,楚国名将项燕之孙。力能扛鼎,作战勇猛,推翻秦朝的主要力量之一。在楚汉战争中与刘邦争夺天下,最终乌江自
- **初始属性倾向**:狂暴型(攻击力随怒气值提升)
- **职业定位**warrior霸王战士
- **能力成长方向**
- 怒气增伤:攻击力随怒气值提升
- 冲锋击退:快速冲锋并击退敌人
- 悲剧爆发:濒死时爆发巨大威力
### 18. 韩信
### 26. 韩信
- **历史简介**:汉初三杰之一,杰出的军事家。为刘邦统一天下立下汗马功劳,被誉为"兵仙"、"国士无双"。精通兵法,善于用兵。
- **初始属性倾向**:策略突击型(根据敌方阵容制定战术)
- **职业定位**warrior兵仙战士
- **能力成长方向**
- 背水战术:根据战场情况调整战术
- 侧翼突袭:从侧翼发动强力
- 侧翼突袭:从侧翼发动强力
- 指挥增益:提升自身攻击力和速度
### 19. 张良
### 27. 张良
- **历史简介**:汉初三杰之一,杰出的谋士。为刘邦统一天下出谋划策,以智谋著称。精通黄老之道,晚年随赤松子云游。
- **初始属性倾向**:智谋型(预测敌人行动并制定对策)
- **职业定位**mage谋略法师
- **能力成长方向**
- 运筹帷幄:预测敌人行动并制定对策
- 辅助强化:为自己提供强大的增益效果
- 洞察弱点:识别并利用敌人弱点
### 20. 萧何
### 28. 萧何
- **历史简介**:汉初三杰之一,西汉开国功臣。刘邦的重要助手,负责后勤保障和制度建设。制定《九章律》,为汉朝建立完整的法律制度。
- **初始属性倾向**:后勤型(提供持续资源补给)
- **职业定位**support后勤辅助
- **能力成长方向**
- 后勤保障:持续获得资源补给
- 治理效率:提升自身行动效率
- 法律约束:通过规则限制敌人行动
### 29. 陈平
- **历史简介**:秦末起义领袖,与吴广一起发动中国历史上第一次大规模农民起义,提出"王侯将相宁有种乎"。
- **初始属性倾向**:革命型(高士气和群体召唤)
- **职业定位**warrior起义领袖
- **能力成长方向**
- 王侯将相:提升所有属性
- 农民起义:召唤农民士兵协同作战
- 士气鼓舞:战斗时间越长攻击力越高
### 30. 英布
- **历史简介**:秦末汉初名将,初随项羽,后归附刘邦。勇猛善战,被称为"万人敌"。
- **初始属性倾向**:狂战士型(极高攻击力和突进)
- **职业定位**warrior狂战士
- **能力成长方向**
- 万人敌:对多目标伤害提升
- 勇猛突进:冲锋技能冷却降低
- 背叛之力:每次转换阵营获得增益
### 31. 彭越
- **历史简介**:西汉开国功臣,刘邦的好友和重要将领。参与楚汉战争,屡建战功。
- **初始属性倾向**:忠诚型(高防御和坚韧)
- **职业定位**warrior忠诚卫士
- **能力成长方向**
- 忠诚不二:防御力持续提升
- 补过拾遮:吸收伤害保护友军
- 老兵不死:生命值越低防御越高
### 32. 周勃
- **历史简介**:西汉开国功臣,刘邦的重要谋士和将领。善于谋略,多次为刘邦出谋划策。
- **初始属性倾向**:谋略型(策略控制和辅助)
- **职业定位**support谋士辅助
- **能力成长方向**
- 谋略百出:提供多种辅助效果
- 奇计辭出:随机获得强力技能
- 运筹帷幄:降低敌人命中率
## 女性英雄角色
### 21. 西施
### 33. 西施
- **历史简介**:春秋时期越国美女,被越王勾践献给吴王夫差,以美色迷惑吴王,为越国复仇计划发挥了重要作用。
- **初始属性倾向**:迷惑型(通过美色影响敌人)
- **职业定位**support控制辅助
- **能力成长方向**
- 迷惑效果:使敌人混乱攻击队友
- 魅力增益:通过魅力获得属性加成
- 舞蹈强化:通过舞蹈获得战斗增益
### 34. 赵姬
- **历史简介**:战国时期赵国公主,秦始皇母亲。以舞技和智谋闻名,对秦国政治有重要影响。
- **初始属性倾向**:智谋舞姬型(控制和增益)
- **职业定位**support宫廷辅助
### 22. 貂蝉
- **历史简介**:中国古代四大美女之一,传说在东汉末年以连环计离间董卓与吕布,为诛杀国贼做出贡献。
- **初始属性倾向**:连环型(同时影响多个敌人)
@@ -208,20 +328,47 @@
## 英雄能力成长体系
### 职业系统 (HType)
1. **warrior (战士)** - 高生命、高防御、近战输出
- 代表英雄:刘邦、项羽、韩信、白起、吴起、乐毅、陈平、英布、彭越
2. **remote (远程)** - 高攻速、高暴击、远程输出
- 代表英雄:赵武灵王
3. **mage (法师)** - 高魔法攻击、元素控制
- 代表英雄:屈原、春申君、孙膑、田单、李斯、张良
4. **support (辅助)** - 治疗、增益、资源支援
- 代表英雄:萧何、增子、孟尝君、范蠡、管仲、晏婴、周勃、西施、赵姬
5. **assassin (刺客)** - 超高暴击、高速度、高爆发
- 代表英雄:荆轲、伍子胥
### 初始属性倾向分类
1. **攻击导向型**:高攻击力,适合快速清理敌人
2. **防御优先型**:高生命值和防御力
3. **突击型**:高爆发伤害,适合快速击杀
4. **敏捷型**:高速度和暴击率
5. **狂战士职业**:攻击力随战斗持续提升
6. **防御反击型**:高生存能力,受击反击
7. **机动型**:高移动速度和远程攻击
8. **控制型**:通过策略控制战场
9. **领导型**:提升团队整体能力
10. **迷惑型**:通过美色影响敌人
1. **攻击导向型** → warrior/remote
2. **防御优先型** → warrior
3. **突击型** → assassin/warrior
4. **敏捷型** → assassin
5. **狂战士** → warrior
6. **防御反击型** → warrior
7. **机动型** → remote
8. **控制型** → mage/support
9. **领导型** → warrior/support
10. **迷惑型** → support
11. **元素型** → mage
12. **辅助型** → support
13. **谋略型** → mage/support
14. **后勤型** → support
15. **复仇型** → assassin
### 能力成长方向
每种英雄都有3个具体的能力成长方向针对特定属性进行强化
1. **数值型属性**:如攻击力、生命值、防御力等
2. **效果型属性**:如暴击率、闪避率、技能冷却等
3. **特殊型属性**:如独特的机制和技能组合
3. **特殊型属性**:如独特的机制和技能组合
### 英雄统计
- **春秋战国时期**23位英雄
- **楚汉争霸时期**9位英雄
- **女性英雄**2位可继续扩充
- **总计**34位可玩英雄

374
assets/script/heros2.md Normal file
View File

@@ -0,0 +1,374 @@
# 英雄设计
## 春秋战国时期名人英雄
### 1. 孙武
- **历史简介**:春秋时期军事家,被誉为"兵圣"。著有《孙子兵法》,是中国古代军事学的奠基人。
- **初始属性倾向**:攻击导向型(高攻击力,适合快速清理敌人)
- **能力成长方向**
- 攻击速度:提升普通攻击频率
- 范围伤害:增加技能攻击范围
- 暴击效果:提升暴击伤害倍数
### 2. 墨子(墨翟)
- **历史简介**:战国时期思想家,墨家学派创始人。主张"兼爱"、"非攻",提倡节俭和实用主义。
- **初始属性倾向**:防御优先型(高生命值和防御力)
- **能力成长方向**
- 生命值:增加最大生命值
- 护盾效果:提升护盾技能强度
- 治疗效果:增强自我治疗能力
### 3. 商鞅
- **历史简介**:战国时期政治家、改革家。在秦国实施变法,为秦统一六国奠定基础。主张法治,强调军功爵制。
- **初始属性倾向**:突击型(高爆发伤害,适合快速击杀)
- **能力成长方向**
- 攻击力:提升基础攻击力
- 技能冷却:减少技能冷却时间
- 移动速度:增加角色移动速度
### 4. 荆轲
- **历史简介**:战国时期刺客,著名勇士。受燕太子丹之托刺杀秦王嬴政,虽未成功但留下了"风萧萧兮易水寒"的千古绝唱。
- **初始属性倾向**:敏捷型(高速度和暴击率)
- **能力成长方向**
- 暴击率:增加暴击概率
- 闪避率:提升闪避攻击概率
- 穿透效果:增加攻击穿透能力
### 5. 白起
- **历史简介**:战国时期秦国名将,被誉为"杀神"。一生攻城七十余座,歼敌百万以上,为秦国统一立下赫赫战功。
- **初始属性倾向**:狂战士职业(攻击力随战斗持续提升)
- **能力成长方向**
- 杀戮增益:击杀敌人后获得攻击力加成
- 持续伤害:攻击附带持续伤害效果
- 士气压制:降低敌人攻击力和士气
### 6. 廉颇
- **历史简介**:战国时期赵国名将,以勇猛著称。数次击败秦军,保卫赵国。晚年因谗言被免职,后投奔魏国。
- **初始属性倾向**:防御反击型(高生存能力,受击反击)
- **能力成长方向**
- 防御力:提升基础防御能力
- 反击概率:受击时反击概率增加
- 老兵强化:随时间推移增强属性
### 7. 赵武灵王
- **历史简介**:战国时期赵国君主,推行"胡服骑射"改革,使赵国军事实力大增。是中国历史上第一位大规模组建骑兵的君主。
- **初始属性倾向**:机动型(高移动速度和远程攻击)
- **能力成长方向**
- 远程伤害:提升远程攻击伤害
- 移动速度:增加角色移动速度
- 攻击速度:提升远程攻击频率
### 8. 苏秦
- **历史简介**:战国时期纵横家,提出"合纵"策略,促成六国联合抗秦。佩六国相印,是历史上著名的外交家和谋略家。
- **初始属性倾向**:控制型(通过策略控制战场)
- **能力成长方向**
- 控制时长:延长控制技能持续时间
- 范围控制:增加控制技能范围
- 策略效果:提升控制技能成功率
### 9. 张仪
- **历史简介**:战国时期纵横家,与苏秦齐名,提出"连横"策略,为秦国服务,成功瓦解六国合纵联盟。
- **初始属性倾向**:瓦解型(削弱敌人能力)
- **能力成长方向**
- 削弱效果:降低敌人攻击力和防御力
- 迷惑概率:使敌人混乱攻击队友
- 分化能力:根据敌人数量调整效果
### 10. 屈原
- **历史简介**:战国时期楚国诗人、政治家。中国浪漫主义文学的奠基人,著有《离骚》等不朽诗篇。因忠而被谤,投汨罗江而死。
- **初始属性倾向**:元素型(操控自然元素)
- **能力成长方向**
- 元素伤害:提升元素攻击伤害
- 低血增益:低血量时获得属性加成
- 诗韵效果:通过诗歌获得各种增益
### 11. 孟尝君(田文)
- **历史简介**:战国时期齐国宗室大臣,以广招宾客、礼贤下士闻名,门下有食客数千人,是"战国四公子"之一。
- **初始属性倾向**:辅助型(擅长召唤和支援)
- **能力成长方向**
- 召唤强化:提升食客召唤数量和质量
- 礼贤效果:增强团队整体属性
- 门客增益:根据食客数量获得额外加成
### 12. 信陵君(魏无忌)
- **历史简介**:战国时期魏国宗室大臣,"战国四公子"之一。曾窃符救赵,展现了卓越的智谋和胆识。
- **初始属性倾向**:策略型(根据战场情况调整战术)
- **能力成长方向**
- 窃符技能:临时获得强力技能效果
- 救赵强化:危急时刻爆发战斗力
- 公子策略:根据局势调整战斗方式
### 13. 春申君(黄歇)
- **历史简介**:战国时期楚国大臣,"战国四公子"之一。博学多才,善于辞令,为楚国的发展做出重要贡献。
- **初始属性倾向**:博学型(掌握多种技能类型)
- **能力成长方向**
- 博学专精:掌握多种元素技能
- 辞令强化:提升控制技能效果
- 治国策略:根据战场情况调整属性
### 14. 平原君(赵胜)
- **历史简介**:战国时期赵国宗室大臣,"战国四公子"之一。以善于识人和养士闻名,门下有食客数千人。
- **初始属性倾向**:识人型(善于识别敌人弱点)
- **能力成长方向**
- 识人专精:识别敌人弱点并加以利用
- 养士强化:召唤强力食客协助战斗
- 宗室防护:提升自身防御能力
### 15. 吴起
- **历史简介**:战国时期军事家,与孙武并称"孙吴"。善于用兵,著有《吴子兵法》,在魏、楚两国都曾为将。
- **初始属性倾向**:用兵型(高机动性和适应性)
- **职业定位**warrior全能战士
- **能力成长方向**
- 用兵专精:提升攻击速度和移动速度
- 治军强化:增强自身防御和生命值
- 变法突进:根据战场情况调整战术
### 16. 孙膑
- **历史简介**:战国时期齐国军事家,孙武后代。著有《孙膑兵法》,曾在桂陵之战、马陵之战中大败魏军。
- **初始属性倾向**:谋略型(高智力和战术)
- **职业定位**mage战术法师
- **能力成长方向**
- 围魏救赵:战术技能冷却降低
- 减灶诱敌:提升敌人受到的伤害
- 兵法奥义:魔法伤害大幅提升
### 17. 乐毅
- **历史简介**:战国时期燕国名将,曾率五国联军攻破齐国七十余城,几乎灭齐。
- **初始属性倾向**:统帅型(范围攻击和持续战斗)
- **职业定位**warrior攻城战士
- **能力成长方向**
- 破城专精:对防御型敌人伤害提升
- 联军指挥:范围伤害增强
- 持久作战:战斗时间越长属性越强
### 18. 田单
- **历史简介**:战国时期齐国将领,以火牛阵大破燕军,收复齐国失地七十余城。
- **初始属性倾向**:创新型(特殊战术和爆发)
- **职业定位**mage火焰法师
- **能力成长方向**
- 火牛阵:火焰范围伤害
- 绝地反击:低血量时爆发强大战力
- 守城专精:防御状态下伤害提升
### 19. 范蠡
- **历史简介**:春秋末期越国政治家、军事家和商人。辅佐越王勾践灭吴复国,后隐退经商成为巨富。
- **初始属性倾向**:智谋商贾型(资源增益和策略)
- **职业定位**support经济辅助
- **能力成长方向**
- 卧薪尝胆:持续获得资源加成
- 商业奇才:提升金币收益
- 功成身退:危机时刻提供强大护盾
### 20. 伍子胥
- **历史简介**:春秋时期吴国大夫、军事家。率军攻破楚国,报父兄之仇。刚直不阿,最终被吴王夫差赐死。
- **初始属性倾向**:复仇型(高爆发和持续伤害)
- **职业定位**assassin复仇刺客
- **能力成长方向**
- 血海深仇:对特定目标伤害大幅提升
- 鞭尸怨念:击杀敌人后获得额外伤害
- 刚烈之志:濒死时爆发极限战力
### 21. 管仲
- **历史简介**:春秋时期齐国政治家、改革家。辅佐齐桓公成为春秋五霸之首,推行经济、军事改革。
- **初始属性倾向**:改革型(全面强化和资源管理)
- **职业定位**support战略辅助
- **能力成长方向**
- 九合诸侯:提升团队整体属性
- 经济改革:增加资源获取
- 富国强兵:攻防双重加成
### 22. 晏婴
- **历史简介**:春秋时期齐国政治家,以节俭力行、谏诤直言著称。身材矮小但智慧超群。
- **初始属性倾向**:辩才型(控制和削弱)
- **职业定位**support辩士辅助
- **能力成长方向**
- 巧言善辩:延长控制效果时长
- 节俭美德:降低技能消耗
- 使楚不辱:反弹敌人部分伤害
### 23. 李斯
- **历史简介**:秦朝丞相,法家代表人物。协助秦始皇统一六国,统一文字、度量衡,推行郡县制。
- **初始属性倾向**:法治型(规则限制和强制执行)
- **职业定位**mage法术控制
- **能力成长方向**
- 以法治国:强制性控制技能
- 统一天下:降低敌人抗性
- 焚书坑儒:魔法伤害爆发
## 楚汉争霸时期英雄
### 24. 刘邦
- **历史简介**:汉朝开国皇帝,出身平民,推翻秦朝后在楚汉战争中击败项羽,建立汉朝。善于用人,知人善任。
- **初始属性倾向**:领导型(提升团队整体能力)
- **职业定位**warrior领袖战士
- **能力成长方向**
- 适应能力:根据战场情况调整属性
- 坚韧恢复:受伤后快速恢复能力
- 领导增益:提升自身各项属性
### 25. 项羽
- **历史简介**:西楚霸王,楚国名将项燕之孙。力能扛鼎,作战勇猛,推翻秦朝的主要力量之一。在楚汉战争中与刘邦争夺天下,最终乌江自刨。
- **初始属性倾向**:狂暴型(攻击力随怒气值提升)
- **职业定位**warrior霸王战士
- **能力成长方向**
- 怒气增伤:攻击力随怒气值提升
- 冲锋击退:快速冲锋并击退敌人
- 悲剧爆发:濒死时爆发巨大威力
### 26. 韩信
- **历史简介**:汉初三杰之一,杰出的军事家。为刘邦统一天下立下汗马功劳,被誉为"兵仙"、"国士无双"。精通兵法,善于用兵。
- **初始属性倾向**:策略突击型(根据敌方阵容制定战术)
- **职业定位**warrior兵仙战士
- **能力成长方向**
- 背水战术:根据战场情况调整战术
- 侧翼突袭:从侧翼发动强力政击
- 指挥增益:提升自身攻击力和速度
### 27. 张良
- **历史简介**:汉初三杰之一,杰出的谋士。为刘邦统一天下出谋划策,以智谋著称。精通黄老之道,晚年随赤松子云游。
- **初始属性倾向**:智谋型(预测敌人行动并制定对策)
- **职业定位**mage谋略法师
- **能力成长方向**
- 运筹帷幄:预测敌人行动并制定对策
- 辅助强化:为自己提供强大的增益效果
- 洞察弱点:识别并利用敌人弱点
### 28. 萧何
- **历史简介**:汉初三杰之一,西汉开国功臣。刘邦的重要助手,负责后勤保障和制度建设。制定《九章律》,为汉朝建立完整的法律制度。
- **初始属性倾向**:后勤型(提供持续资源补给)
- **职业定位**support后勤辅助
- **能力成长方向**
- 后勤保障:持续获得资源补给
- 治理效率:提升自身行动效率
- 法律约束:通过规则限制敌人行动
### 29. 陈平
- **历史简介**:秦末起义领袖,与吴广一起发动中国历史上第一次大规模农民起义,提出"王侯将相宁有种乎"。
- **初始属性倾向**:革命型(高士气和群体召唤)
- **职业定位**warrior起义领袖
- **能力成长方向**
- 王侯将相:提升所有属性
- 农民起义:召唤农民士兵协同作战
- 士气鼓舞:战斗时间越长攻击力越高
### 30. 英布
- **历史简介**:秦末汉初名将,初随项羽,后归附刘邦。勇猛善战,被称为"万人敌"。
- **初始属性倾向**:狂战士型(极高攻击力和突进)
- **职业定位**warrior狂战士
- **能力成长方向**
- 万人敌:对多目标伤害提升
- 勇猛突进:冲锋技能冷却降低
- 背叛之力:每次转换阵营获得增益
### 31. 彭越
- **历史简介**:西汉开国功臣,刘邦的好友和重要将领。参与楚汉战争,屡建战功。
- **初始属性倾向**:忠诚型(高防御和坚韧)
- **职业定位**warrior忠诚卫士
- **能力成长方向**
- 忠诚不二:防御力持续提升
- 补过拾遮:吸收伤害保护友军
- 老兵不死:生命值越低防御越高
### 32. 周勃
- **历史简介**:西汉开国功臣,刘邦的重要谋士和将领。善于谋略,多次为刘邦出谋划策。
- **初始属性倾向**:谋略型(策略控制和辅助)
- **职业定位**support谋士辅助
- **能力成长方向**
- 谋略百出:提供多种辅助效果
- 奇计辭出:随机获得强力技能
- 运筹帷幄:降低敌人命中率
## 女性英雄角色
### 33. 西施
- **历史简介**:春秋时期越国美女,被越王勾践献给吴王夫差,以美色迷惑吴王,为越国复仇计划发挥了重要作用。
- **初始属性倾向**:迷惑型(通过美色影响敌人)
- **职业定位**support控制辅助
- **能力成长方向**
- 迷惑效果:使敌人混乱攻击队友
- 魅力增益:通过魅力获得属性加成
- 舞蹈强化:通过舞蹈获得战斗增益
### 34. 赵姬
- **历史简介**:战国时期赵国公主,秦始皇母亲。以舞技和智谋闻名,对秦国政治有重要影响。
- **初始属性倾向**:智谋舞姬型(控制和增益)
- **职业定位**support宫廷辅助
### 22. 貂蝉
- **历史简介**:中国古代四大美女之一,传说在东汉末年以连环计离间董卓与吕布,为诛杀国贼做出贡献。
- **初始属性倾向**:连环型(同时影响多个敌人)
- **能力成长方向**
- 连环控制:同时影响多个敌人
- 离间效果:降低敌人协同作战能力
- 美人计策:根据敌人数量调整效果
### 23. 妇好
- **历史简介**:商朝君主武丁的王后,是中国历史上第一位有据可查的女性军事统帅,曾多次率军出征,战功卓著。
- **初始属性倾向**:征战型(高攻击力和范围伤害)
- **能力成长方向**
- 征战强化:提升攻击力和范围伤害
- 统帅能力:增强自身防御和生命值
- 王后爆发:关键时刻爆发强大战斗力
### 24. 钟无艳
- **历史简介**:战国时期齐国无盐邑人,才德兼备但相貌丑陋。后成为齐宣王的王后,以智慧和才能辅佐君王。
- **初始属性倾向**:才德型(高智力和技能效果)
- **能力成长方向**
- 才德增益:提升智力和技能效果
- 丑貌反差:通过反差获得特殊能力
- 王后守护:危急时刻保护自身
### 25. 李夫人
- **历史简介**:汉武帝宠妃,出身倡家,以美貌和才艺著称。死后被追封为孝武皇后,是中国历史上第一位追封的皇后。
- **初始属性倾向**:才艺型(通过歌舞获得增益)
- **能力成长方向**
- 才艺强化:通过歌舞获得增益效果
- 美貌魅力:提升魅力影响技能
- 追封效果:特殊状态下技能增强
## 英雄能力成长体系
### 职业系统 (HType)
1. **warrior (战士)** - 高生命、高防御、近战输出
- 代表英雄:刘邦、项羽、韩信、白起、吴起、乐毅、陈平、英布、彭越
2. **remote (远程)** - 高攻速、高暴击、远程输出
- 代表英雄:赵武灵王
3. **mage (法师)** - 高魔法攻击、元素控制
- 代表英雄:屈原、春申君、孙膑、田单、李斯、张良
4. **support (辅助)** - 治疗、增益、资源支援
- 代表英雄:萧何、增子、孟尝君、范蠡、管仲、晏婴、周勃、西施、赵姬
5. **assassin (刺客)** - 超高暴击、高速度、高爆发
- 代表英雄:荆轲、伍子胥
### 初始属性倾向分类
1. **攻击导向型** → warrior/remote
2. **防御优先型** → warrior
3. **突击型** → assassin/warrior
4. **敏捷型** → assassin
5. **狂战士型** → warrior
6. **防御反击型** → warrior
7. **机动型** → remote
8. **控制型** → mage/support
9. **领导型** → warrior/support
10. **迷惑型** → support
11. **元素型** → mage
12. **辅助型** → support
13. **谋略型** → mage/support
14. **后勤型** → support
15. **复仇型** → assassin
### 能力成长方向
每种英雄都有3个具体的能力成长方向针对特定属性进行强化
1. **数值型属性**:如攻击力、生命值、防御力等
2. **效果型属性**:如暴击率、闪避率、技能冷却等
3. **特殊型属性**:如独特的机制和技能组合
### 英雄统计
- **春秋战国时期**23位英雄
- **楚汉争霸时期**9位英雄
- **女性英雄**2位可继续扩充
- **总计**34位可玩英雄

View File

@@ -0,0 +1,11 @@
{
"ver": "1.0.1",
"importer": "text",
"imported": true,
"uuid": "a0f43271-04b8-4076-ad98-59501e4cda5b",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,62 @@
# 英雄设计 - 结构化表格
## 春秋战国时期英雄
| 序号 | 姓名 | 职业 | 初始AP | 初始HP | 初始MP | 初始DEF | 特性/天赋 | 属性倾向 | 能力成长方向1 | 能力成长方向2 | 能力成长方向3 |
|------|------|------|---------|---------|---------|----------|------------|------------|----------------|----------------|----------------|
| 1 | 孙武 | warrior | 15 | 120 | 80 | 8 | 兵圣战术 | 攻击导向型 | 攻击速度:提升普通攻击频率 | 范围伤害:增加技能攻击范围 | 暴击效果:提升暴击伤害倍数 |
| 2 | 墨子 | warrior | 8 | 140 | 100 | 12 | 兼爱非攻 | 防御优先型 | 生命值:增加最大生命值 | 护盾效果:提升护盾技能强度 | 治疗效果:增强自我治疗能力 |
| 3 | 商鞅 | assassin | 20 | 90 | 70 | 5 | 变法改革 | 突击型 | 攻击力:提升基础攻击力 | 技能冷却:减少技能冷却时间 | 移动速度:增加角色移动速度 |
| 4 | 荆轲 | assassin | 22 | 80 | 60 | 3 | 刺杀专精 | 敏捷型 | 暴击率:增加暴击概率 | 闪避率:提升闪避攻击概率 | 穿透效果:增加攻击穿透能力 |
| 5 | 白起 | warrior | 18 | 130 | 90 | 10 | 杀神降世 | 狂战士型 | 杀戮增益:击杀敌人后获得攻击力加成 | 持续伤害:攻击附带持续伤害效果 | 士气压制:降低敌人攻击力和士气 |
| 6 | 廉颇 | warrior | 12 | 135 | 85 | 14 | 老将防御 | 防御反击型 | 防御力:提升基础防御能力 | 反击概率:受击时反击概率增加 | 老兵强化:随时间推移增强属性 |
| 7 | 赵武灵王 | remote | 18 | 100 | 80 | 6 | 胡服骑射 | 机动型 | 远程伤害:提升远程攻击伤害 | 移动速度:增加角色移动速度 | 攻击速度:提升远程攻击频率 |
| 8 | 苏秦 | mage | 10 | 95 | 120 | 7 | 合纵策略 | 控制型 | 控制时长:延长控制技能持续时间 | 范围控制:增加控制技能范围 | 策略效果:提升控制技能成功率 |
| 9 | 张仪 | mage | 12 | 90 | 110 | 6 | 连横瓦解 | 瓦解型 | 削弱效果:降低敌人攻击力和防御力 | 迷惑概率:使敌人混乱攻击队友 | 分化能力:根据敌人数量调整效果 |
| 10 | 屈原 | mage | 16 | 85 | 140 | 4 | 离骚诗韵 | 元素型 | 元素伤害:提升元素攻击伤害 | 低血增益:低血量时获得属性加成 | 诗韵效果:通过诗歌获得各种增益 |
| 11 | 吴起 | warrior | 16 | 125 | 95 | 11 | 用兵如神 | 用兵型 | 用兵专精:提升攻击速度和移动速度 | 治军强化:增强自身防御和生命值 | 变法突进:根据战场情况调整战术 |
| 12 | 孙膑 | mage | 14 | 92 | 135 | 6 | 兵法谋略 | 谋略型 | 围魏救赵:战术技能冷却降低 | 减灶诱敌:提升敌人受到的伤害 | 兵法奥义:魔法伤害大幅提升 |
| 13 | 乐毅 | warrior | 17 | 128 | 88 | 10 | 统帅联军 | 统帅型 | 破城专精:对防御型敌人伤害提升 | 联军指挥:范围伤害增强 | 持久作战:战斗时间越长属性越强 |
| 14 | 田单 | mage | 15 | 90 | 145 | 5 | 火牛阵法 | 创新型 | 火牛阵:火焰范围伤害 | 绝地反击:低血量时爆发强大战力 | 守城专精:防御状态下伤害提升 |
| 15 | 范蠡 | support | 8 | 100 | 140 | 9 | 商贾智谋 | 智谋商贾型 | 卧薪尝胆:持续获得资源加成 | 商业奇才:提升金币收益 | 功成身退:危机时刻提供强大护盾 |
| 16 | 伍子胥 | assassin | 21 | 85 | 75 | 4 | 复仇爆发 | 复仇型 | 血海深仇:对特定目标伤害大幅提升 | 鞭尸怨念:击杀敌人后获得额外伤害 | 刚烈之志:濒死时爆发极限战力 |
| 17 | 管仲 | support | 9 | 108 | 125 | 8 | 改革强国 | 改革型 | 九合诸侯:提升团队整体属性 | 经济改革:增加资源获取 | 富国强兵:攻防双重加成 |
| 18 | 晏婴 | support | 7 | 102 | 120 | 10 | 辩才智慧 | 辩才型 | 巧言善辩:延长控制效果时长 | 节俭美德:降低技能消耗 | 使楚不辱:反弹敌人部分伤害 |
| 19 | 李斯 | mage | 17 | 87 | 130 | 4 | 法治统一 | 法治型 | 以法治国:强制性控制技能 | 统一天下:降低敌人抗性 | 焚书坑儒:魔法伤害爆发 |
## 楚汉争霸时期英雄
| 序号 | 姓名 | 职业 | 初始AP | 初始HP | 初始MP | 初始DEF | 特性/天赋 | 属性倾向 | 能力成长方向1 | 能力成长方向2 | 能力成长方向3 |
|------|------|------|---------|---------|---------|----------|------------|------------|----------------|----------------|----------------|
| 20 | 刘邦 | warrior | 15 | 125 | 85 | 9 | 领导统御 | 领导型 | 适应能力:根据战场情况调整属性 | 坚韧恢复:受伤后快速恢复能力 | 领导增益:提升自身各项属性 |
| 21 | 项羽 | warrior | 19 | 140 | 80 | 11 | 霸王怒气 | 狂暴型 | 怒气增伤:攻击力随怒气值提升 | 冲锋击退:快速冲锋并击退敌人 | 悲剧爆发:濒死时爆发巨大威力 |
| 22 | 韩信 | warrior | 16 | 120 | 90 | 8 | 兵仙战术 | 策略突击型 | 背水战术:根据战场情况调整战术 | 侧翼突袭:从侧翼发动强力攻击 | 指挥增益:提升自身攻击力和速度 |
| 23 | 张良 | mage | 15 | 88 | 135 | 5 | 运筹帷幄 | 智谋型 | 运筹帷幄:预测敌人行动并制定对策 | 辅助强化:为自己提供强大的增益效果 | 洞察弱点:识别并利用敌人弱点 |
| 24 | 萧何 | support | 8 | 115 | 145 | 10 | 后勤保障 | 后勤型 | 后勤保障:持续获得资源补给 | 治理效率:提升自身行动效率 | 法律约束:通过规则限制敌人行动 |
| 25 | 陈平 | warrior | 13 | 118 | 95 | 7 | 起义领袖 | 革命型 | 王侯将相:提升所有属性 | 农民起义:召唤农民士兵协同作战 | 士气鼓舞:战斗时间越长攻击力越高 |
| 26 | 英布 | warrior | 18 | 135 | 75 | 12 | 万人敌 | 狂战士型 | 万人敌:对多目标伤害提升 | 勇猛突进:冲锋技能冷却降低 | 背叛之力:每次转换阵营获得增益 |
| 27 | 彭越 | warrior | 14 | 130 | 85 | 13 | 忠诚卫士 | 忠诚型 | 忠诚不二:防御力持续提升 | 补过拾遮:吸收伤害保护友军 | 老兵不死:生命值越低防御越高 |
| 28 | 周勃 | support | 9 | 112 | 125 | 9 | 谋略百出 | 谋略型 | 谋略百出:提供多种辅助效果 | 奇计频出:随机获得强力技能 | 运筹帷幄:降低敌人命中率 |
## 女性英雄角色
| 序号 | 姓名 | 职业 | 初始AP | 初始HP | 初始MP | 初始DEF | 特性/天赋 | 属性倾向 | 能力成长方向1 | 能力成长方向2 | 能力成长方向3 |
|------|------|------|---------|---------|---------|----------|------------|------------|----------------|----------------|----------------|
| 29 | 西施 | support | 8 | 95 | 120 | 6 | 美人计 | 迷惑型 | 迷惑效果:使敌人混乱攻击队友 | 魅力增益:通过魅力获得属性加成 | 舞蹈强化:通过舞蹈获得战斗增益 |
| 30 | 赵姬 | support | 9 | 92 | 125 | 5 | 宫廷舞技 | 智谋舞姬型 | 舞技控制:通过舞蹈控制敌人 | 宫廷智谋:提升控制技能效果 | 太后威严:增强团队整体属性 |
| 31 | 貂蝉 | support | 10 | 88 | 115 | 4 | 连环计 | 连环型 | 连环控制:同时影响多个敌人 | 离间效果:降低敌人协同作战能力 | 美人计策:根据敌人数量调整效果 |
| 32 | 妇好 | warrior | 17 | 115 | 95 | 11 | 女将统帅 | 征战型 | 征战强化:提升攻击力和范围伤害 | 统帅能力:增强自身防御和生命值 | 王后爆发:关键时刻爆发强大战斗力 |
| 33 | 钟无艳 | support | 6 | 105 | 135 | 12 | 才德兼备 | 才德型 | 才德增益:提升智力和技能效果 | 丑貌反差:通过反差获得特殊能力 | 王后守护:危急时刻保护自身 |
| 34 | 李夫人 | support | 7 | 90 | 140 | 5 | 歌舞才艺 | 才艺型 | 才艺强化:通过歌舞获得增益效果 | 美貌魅力:提升魅力影响技能 | 追封效果:特殊状态下技能增强 |
## 英雄职业分布统计
| 职业类型 | 英雄数量 | 代表英雄 |
|----------|----------|----------|
| warrior (战士) | 15 | 孙武、白起、刘邦、项羽、韩信等 |
| mage (法师) | 8 | 苏秦、张仪、屈原、孙膑、张良等 |
| support (辅助) | 12 | 墨子、萧何、西施、貂蝉等 |
| assassin (刺客) | 2 | 荆轲、伍子胥 |
| remote (远程) | 1 | 赵武灵王 |
**总计34位英雄**

View File

@@ -0,0 +1,11 @@
{
"ver": "1.0.1",
"importer": "text",
"imported": true,
"uuid": "a4506f9d-ae20-4d46-8946-e009d3ece18b",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}