refactor(hero): 将英雄属性相关引用统一替换为 HeroAttrs
- 移除废弃的 AttributeExample 示例类文件 - 全面替换各模块中对技能属性配置 SkillSet 中 Attrs 的引用,改用 HeroAttrs 中的 Attrs - 保持代码引用整理一致性,优化属性相关模块的导入顺序和结构 - 无功能性改动,仅代码结构和引用路径调整,提高代码维护性和模块解耦性
This commit is contained in:
@@ -0,0 +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(如使用时之柳叶刀或卡牌时空的跨越等道具) | 鲜血圣杯 | 天生知晓"朱砂"特技 | 解锁方式特殊,需利用冰冻效果。 |
|
||||
|
||||
## 表格说明
|
||||
* **加粗文本**表示该角色的核心优势或特色机制
|
||||
* 角色按解锁难度和游戏进度大致排序
|
||||
* 后期角色普遍与"翻转翡翠模型"游戏内容相关
|
||||
* "独秀专场"是许多后期角色的共同濒死爆发机制
|
||||
9
assets/script/game/common/config/HeroAttrs.ts.meta
Normal file
9
assets/script/game/common/config/HeroAttrs.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "6f2434a0-4835-4abf-9acb-30699979d1a8",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@@ -120,21 +120,19 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
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:40,mp:50,map:5,def:6,ap:8,dis:90,speed:100,skills:[6001],
|
||||
buff:[],debuff:[],info:"普通近战怪物,具有基础政击和防御能力"},
|
||||
|
||||
// 兽人刺客 - 敏捷刺客怪物
|
||||
5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, kind:1,
|
||||
type:HType.assassin,lv:1,hp:30,mp:40,map:3,def:3,ap:12,dis:120,speed:150,skills:[6001],
|
||||
buff:[],debuff:[],info:"敏捷刺客怪物,高速度低防御"},
|
||||
//怪物
|
||||
5201:{uuid:5201,name:"兽人战士",path:"mo1", fac:FacSet.MON, kind:1,
|
||||
type:HType.warrior,lv:1,hp:25,mp:100,map:10,def:5,ap:5,dis:90,speed:100,skills:[6005],
|
||||
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||
|
||||
// 兽人护卫 - 重装战士怪物
|
||||
5203:{uuid:5203,name:"兽人护卫",path:"mo1", fac:FacSet.MON, kind:1,
|
||||
type:HType.warrior,lv:1,hp:50,mp:50,map:5,def:10,ap:6,dis:90,speed:80,skills:[6001],
|
||||
buff:[],debuff:[],info:"重装护卫怪物,高防御高生命"},
|
||||
5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, kind:1,
|
||||
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:10,def:5,ap:5,dis:90,speed:100,skills:[6005],
|
||||
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||
|
||||
};
|
||||
@@ -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);
|
||||
11
assets/script/heros2.md.meta
Normal file
11
assets/script/heros2.md.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"ver": "1.0.1",
|
||||
"importer": "text",
|
||||
"imported": true,
|
||||
"uuid": "a0f43271-04b8-4076-ad98-59501e4cda5b",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
Reference in New Issue
Block a user