From 9e1459973c1fcf028853f7167afbcb1d749efd93 Mon Sep 17 00:00:00 2001 From: panfudan Date: Mon, 18 Aug 2025 21:03:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=81=E8=B4=A8=E7=BB=9F=E4=B8=80=E5=9C=A8bo?= =?UTF-8?q?xset=E8=AE=BE=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../script/game/common/SingletonModuleComp.ts | 63 +++++++---- assets/script/game/common/config/BoxSet.ts | 6 + assets/script/game/common/config/CardSet.ts | 21 ++-- assets/script/game/common/config/Equips.ts | 99 ++++++++--------- assets/script/game/common/config/Items.ts | 41 +++---- assets/script/game/common/config/LevelUp.ts | 41 ++++--- assets/script/game/common/config/Mission.ts | 14 +-- assets/script/game/common/config/SkillSet.ts | 60 +++++----- assets/script/game/common/config/TalentSet.ts | 75 ++++++------- assets/script/game/common/config/heroSet.ts | 60 +++++----- assets/script/game/map/CardComp.ts | 31 +++--- assets/script/game/map/CardsComp.ts | 11 +- assets/script/game/map/HCardUICom.ts | 20 ++-- assets/script/game/map/MissionHeroComp.ts | 3 +- assets/script/game/map/RogueConfig.ts | 11 +- .../cocos_cloud/modules/gameData.js | 103 +++++++++++++++--- .../cocos_cloud/modules/heros.js | 15 +-- test_equipment.js | 71 ------------ 18 files changed, 368 insertions(+), 377 deletions(-) delete mode 100644 test_equipment.js diff --git a/assets/script/game/common/SingletonModuleComp.ts b/assets/script/game/common/SingletonModuleComp.ts index 9d1821ad..620bad64 100644 --- a/assets/script/game/common/SingletonModuleComp.ts +++ b/assets/script/game/common/SingletonModuleComp.ts @@ -35,14 +35,7 @@ export class SingletonModuleComp extends ecs.Comp { diamond:100, //商店购买 及 双倍奖励资源 meat:0, exp:0, //升级经验 - ghstone:0, //英雄石 绿色 普通英雄升星 - bhstone:0, //英雄石 蓝色 稀有英雄升星 - phlestone:0, //英雄石 紫色 史诗英雄升星 - rhstone:0, //英雄石 红色 传说英雄升星 - herocard:0, //英雄卡,抽卡凭证 - ckey:0, //铜钥匙 解锁稀有英雄 也可以直接兑换金币 - skey:0, //银钥匙 解锁史诗英雄 也可以直接兑换金币 - gkey:0, //金钥匙 解锁传说英雄 也可以直接兑换金币 + } fight_heros:any={ 0:5001, 1:5005, 2:0, 3:0, 4:0, } heros:any = { @@ -188,21 +181,53 @@ export class SingletonModuleComp extends ecs.Comp { /** * 消耗游戏数据属性(统一接口) - * @param property 属性名 - * @param value 消耗的值 + * - 支持单个字段:spendGameProperty('gold', 10) + * - 支持多个字段:spendGameProperty({ gold: 10, exp: 5 }) + * 只有当所有字段都满足扣除条件时,才会一次性扣减 + * @param property 属性名或属性映射 + * @param value 消耗的值(当 property 为字符串时有效) * @param autoSave 是否自动保存 (默认true) * @returns 是否成功消耗 */ - async spendGameProperty(property: string, value: any, autoSave: boolean = true): Promise { - const currentValue = this.data[property] || 0; - if (currentValue < value) { - console.warn(`[SMC]: ${property} 不足,当前: ${currentValue}, 需要: ${value}`); - return false; + async spendGameProperty(property: string | Record, value: any = undefined, autoSave: boolean = true): Promise { + // 单字段扣除 + if (typeof property === 'string') { + const currentValue = this.data[property] || 0; + if (currentValue < value) { + console.warn(`[SMC]: ${property} 不足,当前: ${currentValue}, 需要: ${value}`); + return false; + } + const newValue = currentValue - value; + this.data[property] = newValue; + this.vmdata.data[property] = newValue; + console.log(`[SMC]: 消耗游戏数据 ${property} = ${value}, 当前值: ${newValue}`); + return true; } - const newValue = currentValue - value; - this.data[property] = newValue; - this.vmdata.data[property] = newValue; - console.log(`[SMC]: 消耗游戏数据 ${property} = ${value}, 当前值: ${newValue}`); + + // 多字段扣除(原子性:全部满足才扣) + const deductions = property as Record; + // 1) 校验是否全部满足 + for (const key in deductions) { + if (!Object.prototype.hasOwnProperty.call(deductions, key)) continue; + const need = deductions[key] ?? 0; + const current = this.data[key] || 0; + if (current < need) { + console.warn(`[SMC]: ${key} 不足,当前: ${current}, 需要: ${need}`); + return false; + } + } + + // 2) 统一扣减 + for (const key in deductions) { + if (!Object.prototype.hasOwnProperty.call(deductions, key)) continue; + const need = deductions[key] ?? 0; + const current = this.data[key] || 0; + const next = current - need; + this.data[key] = next; + this.vmdata.data[key] = next; + console.log(`[SMC]: 消耗游戏数据 ${key} = ${need}, 当前值: ${next}`); + } + return true; } diff --git a/assets/script/game/common/config/BoxSet.ts b/assets/script/game/common/config/BoxSet.ts index be1a5a14..51608325 100644 --- a/assets/script/game/common/config/BoxSet.ts +++ b/assets/script/game/common/config/BoxSet.ts @@ -62,3 +62,9 @@ export enum HeroConSet{ INFO=0, SELECT=1, } +export enum QualitySet{ + GREEN=0, + BLUE=1, + PURPLE=2, + ORANGE=3, +} diff --git a/assets/script/game/common/config/CardSet.ts b/assets/script/game/common/config/CardSet.ts index a870f287..fd68e9fa 100644 --- a/assets/script/game/common/config/CardSet.ts +++ b/assets/script/game/common/config/CardSet.ts @@ -7,6 +7,7 @@ import { BuffAttr, getSkills, HeroSkillList, SkillSet } from "./SkillSet" import { equip_list, weapons, armors, accessorys, getEquipUUIDsByType } from "./Equips" import { getEnhancement } from "./LevelUp" import { TalentList } from "./TalentSet" +import { QualitySet } from "./BoxSet" //1:伙伴 2:技能 3:装备的出现概率配置 export const CardProbability={ @@ -154,24 +155,18 @@ export const CTarget={ ENEMY:2, //敌人 ALL:3, //所有 } -export const Quality={ - WHITE:1, - GREEN:2, - BLUE:3, - PURPLE:4, - ORANGE:5, -} + export const SuperCardsList=[3101,3102,3103,3104,3105,3106]; export const SuperCards={ - 3101:{uuid:3101,name:"陨石爆",quality:Quality.GREEN,path:"3101",CTarget:CTarget.ENEMY,type:SuperCardsType.AOE,value1:SkillSet[6005].uuid,value2:1,value3:0, + 3101:{uuid:3101,name:"陨石爆",quality:QualitySet.GREEN,path:"3101",CTarget:CTarget.ENEMY,type:SuperCardsType.AOE,value1:SkillSet[6005].uuid,value2:1,value3:0, info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"}, - 3102:{uuid:3102,name:"龙卷群",quality:Quality.BLUE,path:"3104",CTarget:CTarget.ENEMY,type:SuperCardsType.AOE,value1:SkillSet[6006].uuid,value2:1,value3:0, + 3102:{uuid:3102,name:"龙卷群",quality:QualitySet.BLUE,path:"3104",CTarget:CTarget.ENEMY,type:SuperCardsType.AOE,value1:SkillSet[6006].uuid,value2:1,value3:0, info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"}, - 3103:{uuid:3103,name:"大海啸",quality:Quality.PURPLE,path:"3105",CTarget:CTarget.ENEMY,type:SuperCardsType.AOE,value1:SkillSet[6007].uuid,value2:1,value3:0, + 3103:{uuid:3103,name:"大海啸",quality:QualitySet.PURPLE,path:"3105",CTarget:CTarget.ENEMY,type:SuperCardsType.AOE,value1:SkillSet[6007].uuid,value2:1,value3:0, info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"}, - 3104:{uuid:3104,name:"攻击力",quality:Quality.ORANGE,path:"3106",CTarget:CTarget.MASTER,type:SuperCardsType.BUFF,value1:BuffAttr.AP,value2:5,value3:0}, - 3105:{uuid:3105,name:"生命值",quality:Quality.ORANGE,path:"3107",CTarget:CTarget.MASTER,type:SuperCardsType.BUFF,value1:BuffAttr.HP_MAX,value2:5,value3:0}, - 3106:{uuid:3106,name:"防御值",quality:Quality.ORANGE,path:"3108",CTarget:CTarget.MASTER,type:SuperCardsType.BUFF,value1:BuffAttr.DEF,value2:5,value3:0}, + 3104:{uuid:3104,name:"攻击力",quality:QualitySet.ORANGE,path:"3106",CTarget:CTarget.MASTER,type:SuperCardsType.BUFF,value1:BuffAttr.AP,value2:5,value3:0}, + 3105:{uuid:3105,name:"生命值",quality:QualitySet.ORANGE,path:"3107",CTarget:CTarget.MASTER,type:SuperCardsType.BUFF,value1:BuffAttr.HP_MAX,value2:5,value3:0}, + 3106:{uuid:3106,name:"防御值",quality:QualitySet.ORANGE,path:"3108",CTarget:CTarget.MASTER,type:SuperCardsType.BUFF,value1:BuffAttr.DEF,value2:5,value3:0}, } diff --git a/assets/script/game/common/config/Equips.ts b/assets/script/game/common/config/Equips.ts index aa6fd764..ddaa4c30 100644 --- a/assets/script/game/common/config/Equips.ts +++ b/assets/script/game/common/config/Equips.ts @@ -1,3 +1,4 @@ +import { QualitySet } from "./BoxSet"; import { BuffAttr } from "./SkillSet"; // 装备路径配置表 @@ -98,14 +99,6 @@ export enum EquipSpecialAttr { ATKED_ADD_SKILL_STONE=12, //被攻击增加技能石 ATK_ADD_VALUE=13, //攻击n次后触发属性增加的值 额外增加值 } -export enum Quality { - WHITE = 1, - GREEN = 2, - BLUE = 3, - PURPLE = 4, - ORANGE = 5, - RED = 6, -} // 剑类武器UUID列表 - 根据wp.md配置 export const swordWeapons = [ @@ -316,7 +309,7 @@ export interface EquipData { uuid: number; // 装备唯一ID name: string; // 装备名称 type: EquipType; // 装备类型 - quality: Quality; // 装备品质 + quality: QualitySet; // 装备品质 path: string; // 文件名 info: string; // 装备描述 special_attr: EquipSpecialAttrData[]; // 特殊属性数组 @@ -331,7 +324,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 2101, name: "穿刺短剑", type: EquipType.WEAPON, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["穿刺短剑"], info: "攻击力增加170%,穿透1个目标", special_attr: [], @@ -346,7 +339,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 2102, name: "寒锋长剑", type: EquipType.WEAPON, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["寒锋长剑"], info: "攻击力增加230%,穿透2个目标,30%穿刺伤害", special_attr: [], @@ -362,7 +355,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 2103, name: "龙鳞穿刺者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["龙鳞穿刺者"], info: "攻击力增加290%,穿透3个目标,40%穿刺伤害", special_attr: [], @@ -378,7 +371,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 2104, name: "冰霜穿刺者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["冰霜穿刺者"], info: "攻击力增加290%,穿透3个目标,冰冻概率25%", special_attr: [], @@ -398,7 +391,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 3101, name: "风暴战斧", type: EquipType.WEAPON, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["风暴战斧"], info: "攻击力增加220%,风怒概率40%", special_attr: [], @@ -413,7 +406,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 3102, name: "寒锋巨斧", type: EquipType.WEAPON, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["寒锋巨斧"], info: "攻击力增加280%,风怒概率50%", special_attr: [], @@ -428,7 +421,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 3105, name: "龙鳞撕裂者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["龙鳞撕裂者"], info: "攻击力增加340%,风怒概率60%,击退概率27%", special_attr: [], @@ -444,7 +437,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 3106, name: "泰坦撕裂者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["泰坦撕裂者"], info: "攻击力增加300%,风怒概率60%,击晕概率12.5%", special_attr: [], @@ -465,7 +458,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 5101, name: "碎骨战锤", type: EquipType.WEAPON, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["碎骨战锤"], info: "攻击力增加240%,暴击率20%,暴击伤害+35%", special_attr: [], @@ -481,7 +474,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 5102, name: "雷霆重锤", type: EquipType.WEAPON, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["雷霆重锤"], info: "攻击力增加310%,暴击率25%,暴击伤害+45%", special_attr: [], @@ -497,7 +490,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 5103, name: "龙鳞粉碎者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["龙鳞粉碎者"], info: "攻击力增加360%,暴击率30%,暴击伤害+70%,击晕概率+15%", special_attr: [], @@ -514,7 +507,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 5104, name: "泰坦粉碎者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["泰坦粉碎者"], info: "攻击力增加360%,暴击率30%,击晕概率30%", special_attr: [], @@ -535,7 +528,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 6101, name: "影刃", type: EquipType.WEAPON, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["影刃"], info: "攻击力增加180%,攻击施加易伤(25%)", special_attr: [], @@ -550,7 +543,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 6102, name: "寒月双刃", type: EquipType.WEAPON, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["寒月双刃"], info: "攻击力增加245%,攻击施加易伤(35%)", special_attr: [], @@ -565,7 +558,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 6103, name: "龙鳞切割者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["龙鳞切割者"], info: "攻击力增加300%,攻击施加易伤(45%),易伤持续次数+1", special_attr: [], @@ -581,7 +574,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 6104, name: "冰霜切割者", type: EquipType.WEAPON, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["冰霜切割者"], info: "攻击力增加300%,攻击施加易伤(45%),冰冻概率25%", special_attr: [], @@ -604,7 +597,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4101, name: "风影圆盾", type: EquipType.ARMOR, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["风影圆盾"], info: "生命值+40%,闪避40%", special_attr: [], @@ -617,7 +610,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4102, name: "流光护盾", type: EquipType.ARMOR, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["流光护盾"], info: "生命值+45%,闪避40%,Debuff减免15%", special_attr: [], @@ -631,7 +624,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4103, name: "量子闪避者", type: EquipType.ARMOR, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["量子闪避者"], info: "生命值+50%,闪避45%,免伤15%", special_attr: [], @@ -650,7 +643,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4111, name: "荆棘木盾", type: EquipType.ARMOR, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["荆棘木盾"], info: "生命值+85%,反伤30%", special_attr: [], @@ -663,7 +656,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4112, name: "钢铁尖刺", type: EquipType.ARMOR, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["钢铁尖刺"], info: "生命值+90%,反伤30%,Debuff减免15%", special_attr: [], @@ -677,7 +670,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4113, name: "龙鳞反伤者", type: EquipType.ARMOR, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["龙鳞反伤者"], info: "生命值+110%,反伤35%,免伤15%", special_attr: [], @@ -697,7 +690,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4121, name: "守护圆盾", type: EquipType.ARMOR, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["守护圆盾"], info: "生命值+65%,免伤20%", special_attr: [], @@ -710,7 +703,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4122, name: "圣光壁垒", type: EquipType.ARMOR, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["圣光壁垒"], info: "生命值+70%,免伤20%,Debuff减免15%", special_attr: [], @@ -724,7 +717,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 4123, name: "永恒守护者", type: EquipType.ARMOR, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["永恒守护者"], info: "生命值+75%,免伤25%,闪避15%", special_attr: [], @@ -743,7 +736,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7401, name: "磐石戒指", type: EquipType.ACCESSORY, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["磐石戒指"], info: "生命值+60%", special_attr: [], @@ -756,7 +749,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7402, name: "刚玉戒指", type: EquipType.ACCESSORY, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["刚玉戒指"], info: "免伤+25%", special_attr: [], @@ -770,7 +763,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7403, name: "烈阳戒指", type: EquipType.ACCESSORY, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["烈阳戒指"], info: "攻击+55%", special_attr: [], @@ -783,7 +776,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7404, name: "雷暴耳饰", type: EquipType.ACCESSORY, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["雷暴耳饰"], info: "暴伤+40%", special_attr: [], @@ -797,7 +790,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7405, name: "迷雾耳饰", type: EquipType.ACCESSORY, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["迷雾耳饰"], info: "闪避+15%", special_attr: [], @@ -810,7 +803,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7406, name: "荆棘耳饰", type: EquipType.ACCESSORY, - quality: Quality.GREEN, + quality: QualitySet.GREEN, path: EPath["荆棘耳饰"], info: "反伤+20%", special_attr: [], @@ -825,7 +818,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7421, name: "星辉耳饰", type: EquipType.ACCESSORY, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["星辉耳饰"], info: "生命值+40%,免伤+20%", special_attr: [], @@ -839,7 +832,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7422, name: "霜晶耳饰", type: EquipType.ACCESSORY, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["霜晶耳饰"], info: "攻击+40%,暴伤+30%", special_attr: [], @@ -853,7 +846,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7423, name: "流光吊坠", type: EquipType.ACCESSORY, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["流光吊坠"], info: "生命值+35%,闪避+15%", special_attr: [], @@ -867,7 +860,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7424, name: "地脉指环", type: EquipType.ACCESSORY, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["地脉指环"], info: "免伤+20%,反伤+15%", special_attr: [], @@ -881,7 +874,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7425, name: "炎阳戒指", type: EquipType.ACCESSORY, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["炎阳戒指"], info: "攻击+45%,闪避+10%", special_attr: [], @@ -896,7 +889,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7426, name: "潮汐戒指", type: EquipType.ACCESSORY, - quality: Quality.BLUE, + quality: QualitySet.BLUE, path: EPath["潮汐戒指"], info: "暴伤+35%,反伤+15%", special_attr: [], @@ -913,7 +906,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7441, name: "天穹戒指", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["天穹戒指"], info: "生命值+45%,免伤+20%,攻击触发属性增加额外加值+2", special_attr: [ @@ -930,7 +923,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7442, name: "神木戒指", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["神木戒指"], info: "攻击+50%,暴伤+35%,暴击+10%", special_attr: [], @@ -945,7 +938,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7443, name: "日曜戒指", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["日曜戒指"], info: "生命值+40%,攻击+45%,攻击触发增加主将攻击力+2", special_attr: [ @@ -962,7 +955,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7444, name: "月影项链", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["月影项链"], info: "免伤+20%,暴伤+35%,攻击触发增加主将生命值10", special_attr: [ @@ -978,7 +971,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7445, name: "星尘项链", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["星尘项链"], info: "闪避+15%,攻击+50%,技能冷却减少20%", special_attr: [], @@ -993,7 +986,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7446, name: "深渊戒指", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["深渊戒指"], info: "反伤+15%,生命值+50%,穿刺+2", special_attr: [], @@ -1008,7 +1001,7 @@ export const EquipInfo: { [key: number]: EquipData } = { uuid: 7447, name: "永夜戒指", type: EquipType.ACCESSORY, - quality: Quality.PURPLE, + quality: QualitySet.PURPLE, path: EPath["永夜戒指"], info: "免伤+25%,暴伤+35%,双倍受击触发+2", special_attr: [ diff --git a/assets/script/game/common/config/Items.ts b/assets/script/game/common/config/Items.ts index 42dc5b40..f20272dc 100644 --- a/assets/script/game/common/config/Items.ts +++ b/assets/script/game/common/config/Items.ts @@ -2,29 +2,30 @@ type: 1 普通消耗品,武器升级或技能升级原材料 2 可双击打开,如宝箱, + ghstone:0, //英雄石 绿色 普通英雄升星 + bhstone:0, //英雄石 蓝色 稀有英雄升星 + phlestone:0, //英雄石 紫色 史诗英雄升星 + rhstone:0, //英雄石 红色 传说英雄升星 + herocard:0, //英雄卡,抽卡凭证 + ckey:0, //铜钥匙 解锁稀有英雄 也可以直接兑换金币 + skey:0, //银钥匙 解锁史诗英雄 也可以直接兑换金币 + gkey:0, //金钥匙 解锁传说英雄 也可以直接兑换金币 + */ -export const Items={ +import { QualitySet } from "./BoxSet"; - 1001:{uuid: 1001,path: "1001",type:1,lv:2,name: "宝箱",info:"随机获取物品", }, - 1002:{uuid: 1002,path: "1002",type:1,lv:3,name: "稀有宝箱",info:"随机获取少量英雄碎片", }, - 1003:{uuid: 1003,path: "1003",type:1,lv:4,name: "勇者宝箱",info:"可以获取英雄碎片", }, - // 1004:{uuid: 1004,path: "1004",type:1,lv:3,name: "xxx",info:"英雄升级三星需要的凭证", }, - // 1005:{uuid: 1005,path: "1005",type:1,lv:3,name: "xxx",info:"英雄升级四星需要的凭证", }, - // 1006:{uuid: 1006,path: "1006",type:1,lv:4,name: "xxx",info:"英雄升级五星需要的凭证", }, - // 1007:{uuid: 1007,path: "1007",type:1,lv:4,name: "xxx",info:"英雄升级五星需要的凭证", }, - // 1008:{uuid: 1008,path: "1008",type:1,lv:4,name: "黄色叶子",info:"未知功能", }, - // 1009:{uuid: 1009,path: "1001",type:1,lv:1,name: "普通攻击石",info:"增加装备攻击力10,成功几率20%", }, - // 1010:{uuid: 1010,path: "1010",type:1,lv:2,name: "高级攻击石",info:"增加装备攻击力10,成功几率30%", }, - // 1011:{uuid: 1011,path: "1011",type:1,lv:3,name: "稀有攻击石",info:"增加装备攻击力10,成功几率40%", }, - // 1012:{uuid: 1012,path: "1012",type:1,lv:4,name: "传说攻击石",info:"增加装备攻击力10,成功几率50%", }, - // 1013:{uuid: 1013,path: "1013",type:1,lv:1,name: "普通生命石",info:"增加装备生命值50,成功几率20%", }, - // 1014:{uuid: 1015,path: "1014",type:1,lv:2,name: "高级生命石",info:"增加装备生命值50,成功几率30%", }, - // 1015:{uuid: 1015,path: "1015",type:1,lv:3,name: "稀有生命石",info:"增加装备生命值50,成功几率40%", }, - // 1016:{uuid: 1016,path: "1016",type:1,lv:4,name: "传说生命石",info:"增加装备生命值50,成功几率50%", }, - 9001:{uuid: 9001,path: "9001",type:1,lv:0,name: "金币",info:"金币不是万能的,但是没有金币是万万不能的", }, - // 9002:{uuid: 9002,path: "9002",type:1,lv:1,name: "叶子",info:"提升英雄等级的神奇叶子", }, - // 9003:{uuid: 9003,path: "9003",type:1,lv:1,name: "经验",info:"提升英雄等级", }, + +export const Items={ + 1001:{uuid: 1001,path: "1001",type:1,quality:QualitySet.GREEN,name: "经验药水",info:"增加英雄经验", }, + 1002:{uuid: 1002,path: "1002",type:1,quality:QualitySet.BLUE,name: "绿色英雄石",info:"稀有英雄升星必须材料", }, + 1003:{uuid: 1003,path: "1003",type:1,quality:QualitySet.BLUE,name: "蓝色英雄石",info:"史诗英雄升星必须材料", }, + 1004:{uuid: 1004,path: "1004",type:1,quality:QualitySet.PURPLE,name: "紫色英雄石",info:"传说英雄升星必须材料", }, + 1005:{uuid: 1005,path: "1005",type:1,quality:QualitySet.ORANGE,name: "红色英雄石",info:"传说英雄升星必须材料", }, + 1006:{uuid: 1006,path: "1006",type:1,quality:QualitySet.GREEN,name: "招募劵",info:"可以在英雄酒馆招募英雄", }, + 1007:{uuid: 1007,path: "1007",type:1,quality:QualitySet.BLUE,name: "铜钥匙",info:"解锁稀有英雄 也可以直接兑换金币", }, + 1008:{uuid: 1008,path: "1008",type:1,quality:QualitySet.PURPLE,name: "银钥匙",info:"解锁史诗英雄 也可以直接兑换金币", }, + 1009:{uuid: 1009,path: "1009",type:1,quality:QualitySet.ORANGE,name: "金钥匙",info:"解锁传说英雄 也可以直接兑换金币", }, } diff --git a/assets/script/game/common/config/LevelUp.ts b/assets/script/game/common/config/LevelUp.ts index fb97e8e8..c310c717 100644 --- a/assets/script/game/common/config/LevelUp.ts +++ b/assets/script/game/common/config/LevelUp.ts @@ -4,7 +4,7 @@ */ import { BuffAttr } from "./SkillSet" -import { Quality } from "./CardSet" +import { QualitySet } from "./BoxSet"; // 强化类型枚举 export const EnhancementType = { @@ -40,29 +40,26 @@ export const defaultEnhancements=()=>{ // 强化选项配置表(一维数组格式) export const EnhancementOptions: EnhancementOption[] = [ // 攻击力强化选项 - { uuid: 1001, type: EnhancementType.ATTACK, lv: 1, name: "力量训练 I", description: "攻击力 +5", buffType: BuffAttr.ATK, value: 5, icon: "3058", rarity: Quality.GREEN }, - { uuid: 1002, type: EnhancementType.ATTACK, lv: 2, name: "力量训练 II", description: "攻击力 +12", buffType: BuffAttr.ATK, value: 12, icon: "3058", rarity: Quality.GREEN }, - { uuid: 1003, type: EnhancementType.ATTACK, lv: 3, name: "力量训练 III", description: "攻击力 +20", buffType: BuffAttr.ATK, value: 20, icon: "3058", rarity: Quality.BLUE }, - { uuid: 1004, type: EnhancementType.ATTACK, lv: 4, name: "力量训练 IV", description: "攻击力 +35", buffType: BuffAttr.ATK, value: 35, icon: "3058", rarity: Quality.BLUE }, - { uuid: 1005, type: EnhancementType.ATTACK, lv: 5, name: "力量训练 V", description: "攻击力 +50", buffType: BuffAttr.ATK, value: 50, icon: "3058", rarity: Quality.PURPLE }, + { uuid: 1001, type: EnhancementType.ATTACK, lv: 1, name: "力量训练 I", description: "攻击力 +5", buffType: BuffAttr.ATK, value: 5, icon: "3058", rarity: QualitySet.GREEN }, + { uuid: 1002, type: EnhancementType.ATTACK, lv: 2, name: "力量训练 II", description: "攻击力 +12", buffType: BuffAttr.ATK, value: 12, icon: "3058", rarity: QualitySet.GREEN }, + { uuid: 1003, type: EnhancementType.ATTACK, lv: 3, name: "力量训练 III", description: "攻击力 +20", buffType: BuffAttr.ATK, value: 20, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 1004, type: EnhancementType.ATTACK, lv: 4, name: "力量训练 IV", description: "攻击力 +35", buffType: BuffAttr.ATK, value: 35, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 1005, type: EnhancementType.ATTACK, lv: 5, name: "力量训练 V", description: "攻击力 +50", buffType: BuffAttr.ATK, value: 50, icon: "3058", rarity: QualitySet.PURPLE }, // 生命值强化选项 - { uuid: 2001, type: EnhancementType.HEALTH, lv: 1, name: "体质增强 I", description: "生命值 +10", buffType: BuffAttr.HP, value: 10, icon: "3058", rarity: Quality.GREEN }, - { uuid: 2002, type: EnhancementType.HEALTH, lv: 2, name: "体质增强 II", description: "生命值 +25", buffType: BuffAttr.HP, value: 25, icon: "3058", rarity: Quality.GREEN }, - { uuid: 2003, type: EnhancementType.HEALTH, lv: 3, name: "体质增强 III", description: "生命值 +40", buffType: BuffAttr.HP, value: 40, icon: "3058", rarity: Quality.BLUE }, - { uuid: 2004, type: EnhancementType.HEALTH, lv: 4, name: "体质增强 IV", description: "生命值 +65", buffType: BuffAttr.HP, value: 65, icon: "3058", rarity: Quality.BLUE }, - { uuid: 2005, type: EnhancementType.HEALTH, lv: 5, name: "体质增强 V", description: "生命值 +100", buffType: BuffAttr.HP, value: 100, icon: "3058", rarity: Quality.PURPLE }, - // 攻击速度强化选项 - { uuid: 3001, type: EnhancementType.ATTACK_SPEED, lv: 1, name: "快速出手 I", description: "攻击速度 +1%", buffType: BuffAttr.ATK_CD, value: 1, icon: "3058", rarity: Quality.GREEN }, - { uuid: 3002, type: EnhancementType.ATTACK_SPEED, lv: 2, name: "快速出手 II", description: "攻击速度 +2%", buffType: BuffAttr.ATK_CD, value: 2, icon: "3058", rarity: Quality.GREEN }, - { uuid: 3003, type: EnhancementType.ATTACK_SPEED, lv: 3, name: "快速出手 III", description: "攻击速度 +3%", buffType: BuffAttr.ATK_CD, value: 3, icon: "3058", rarity: Quality.BLUE }, - { uuid: 3004, type: EnhancementType.ATTACK_SPEED, lv: 4, name: "快速出手 IV", description: "攻击速度 +4%", buffType: BuffAttr.ATK_CD, value: 4, icon: "3058", rarity: Quality.BLUE }, - { uuid: 3005, type: EnhancementType.ATTACK_SPEED, lv: 5, name: "快速出手 V", description: "攻击速度 +5%", buffType: BuffAttr.ATK_CD, value: 5, icon: "3058", rarity: Quality.PURPLE }, + { uuid: 2001, type: EnhancementType.HEALTH, lv: 1, name: "体质增强 I", description: "生命值 +10", buffType: BuffAttr.HP, value: 10, icon: "3058", rarity: QualitySet.GREEN }, + { uuid: 2002, type: EnhancementType.HEALTH, lv: 2, name: "体质增强 II", description: "生命值 +25", buffType: BuffAttr.HP, value: 25, icon: "3058", rarity: QualitySet.GREEN }, + { uuid: 2003, type: EnhancementType.HEALTH, lv: 3, name: "体质增强 III", description: "生命值 +40", buffType: BuffAttr.HP, value: 40, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 2004, type: EnhancementType.HEALTH, lv: 4, name: "体质增强 IV", description: "生命值 +65", buffType: BuffAttr.HP, value: 65, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 2005, type: EnhancementType.HEALTH, lv: 5, name: "体质增强 V", description: "生命值 +100", buffType: BuffAttr.HP, value: 100, icon: "3058", rarity: QualitySet.PURPLE }, + { uuid: 3003, type: EnhancementType.ATTACK_SPEED, lv: 3, name: "快速出手 III", description: "攻击速度 +3%", buffType: BuffAttr.ATK_CD, value: 3, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 3004, type: EnhancementType.ATTACK_SPEED, lv: 4, name: "快速出手 IV", description: "攻击速度 +4%", buffType: BuffAttr.ATK_CD, value: 4, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 3005, type: EnhancementType.ATTACK_SPEED, lv: 5, name: "快速出手 V", description: "攻击速度 +5%", buffType: BuffAttr.ATK_CD, value: 5, icon: "3058", rarity: QualitySet.PURPLE }, // 特殊效果强化选项 - { uuid: 4001, type: EnhancementType.DEF, lv: 1, name: "绝对防御 I", description: "免伤 +1%", buffType: BuffAttr.DEF, value: 1, icon: "3058", rarity: Quality.GREEN }, - { uuid: 4002, type: EnhancementType.DEF, lv: 2, name: "绝对防御 II", description: "免伤 +2%", buffType: BuffAttr.DEF, value: 2, icon: "3058", rarity: Quality.GREEN }, - { uuid: 4003, type: EnhancementType.DEF, lv: 3, name: "绝对防御 III", description: "免伤 +3%", buffType: BuffAttr.DEF, value: 3, icon: "3058", rarity: Quality.BLUE }, - { uuid: 4004, type: EnhancementType.DEF, lv: 4, name: "绝对防御 IV", description: "免伤 +4%", buffType: BuffAttr.DEF, value: 4, icon: "3058", rarity: Quality.BLUE }, - { uuid: 4005, type: EnhancementType.DEF, lv: 5, name: "绝对防御 V", description: "免伤 +5%", buffType: BuffAttr.DEF, value: 5, icon: "3058", rarity: Quality.PURPLE }, + { uuid: 4001, type: EnhancementType.DEF, lv: 1, name: "绝对防御 I", description: "免伤 +1%", buffType: BuffAttr.DEF, value: 1, icon: "3058", rarity: QualitySet.GREEN }, + { uuid: 4002, type: EnhancementType.DEF, lv: 2, name: "绝对防御 II", description: "免伤 +2%", buffType: BuffAttr.DEF, value: 2, icon: "3058", rarity: QualitySet.GREEN }, + { uuid: 4003, type: EnhancementType.DEF, lv: 3, name: "绝对防御 III", description: "免伤 +3%", buffType: BuffAttr.DEF, value: 3, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 4004, type: EnhancementType.DEF, lv: 4, name: "绝对防御 IV", description: "免伤 +4%", buffType: BuffAttr.DEF, value: 4, icon: "3058", rarity: QualitySet.BLUE }, + { uuid: 4005, type: EnhancementType.DEF, lv: 5, name: "绝对防御 V", description: "免伤 +5%", buffType: BuffAttr.DEF, value: 5, icon: "3058", rarity: QualitySet.PURPLE }, ]; // 强化选项接口定义 diff --git a/assets/script/game/common/config/Mission.ts b/assets/script/game/common/config/Mission.ts index 39dcc024..4dc80817 100644 --- a/assets/script/game/common/config/Mission.ts +++ b/assets/script/game/common/config/Mission.ts @@ -1,10 +1,10 @@ -import { HQuality } from "./heroSet"; +import { QualitySet } from "./BoxSet"; // 获取装备石掉落数量 export const getStoneDrops = (monsterType: number, level: number = 1): {type: string, count: number} => { const baseDrops = { - [HQuality.GREEN]: 2, // 普通怪物 - [HQuality.BLUE]: 4, // 精英怪物 - [HQuality.PURPLE]: 8 // Boss怪物 + [QualitySet.GREEN]: 2, // 普通怪物 + [QualitySet.BLUE]: 4, // 精英怪物 + [QualitySet.PURPLE]: 8 // Boss怪物 }; // 50%概率掉落装备石,50%概率掉落技能石 @@ -19,9 +19,9 @@ export const getStoneDrops = (monsterType: number, level: number = 1): {type: st export const getExpDrops = (monsterType: number, level: number = 1): number => { const baseDrops = { - [HQuality.GREEN]: 10, // 普通怪物 - [HQuality.BLUE]: 20, // 精英怪物 - [HQuality.PURPLE]: 40 // Boss怪物 + [QualitySet.GREEN]: 10, // 普通怪物 + [QualitySet.BLUE]: 20, // 精英怪物 + [QualitySet.PURPLE]: 40 // Boss怪物 }; return Math.floor(baseDrops[monsterType] * (1 + (level - 1) * 0.2)); } diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index 81736f19..fa659931 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -1,4 +1,5 @@ import { log } from "cc" +import { QualitySet } from "./BoxSet" export enum TGroup { Self = 0, // 自身 @@ -203,15 +204,6 @@ export const geDebuffNum=()=>{ } - - -export enum Quality{ - WHITE=1, - GREEN=2, - BLUE=3, - PURPLE=4, - ORANGE=5, -} /* === 技能配置系统使用说明 === @@ -301,7 +293,7 @@ export interface BuffConfig { } // 技能配置接口 - 按照6001格式排列 export interface SkillConfig { - uuid:number,name:string,for_hero:boolean,sp_name:string,AtkedType:AtkedType,path:string,quality:Quality,TType:TType, + uuid:number,name:string,for_hero:boolean,sp_name:string,AtkedType:AtkedType,path:string,quality:QualitySet,TType:TType, TGroup:TGroup,SType:SType,act:string,DTType:DTType,CdType:CdType,AType:AType,EType:EType, ap:number,cd:number,in:number,hit_num:number,hit:number,hited:number,speed:number,cost:number,fname:string,flash:boolean,with:number,maxC:number, buffs:BuffConfig[],debuffs:DebuffConfig[],info:string,hero?:number @@ -311,83 +303,83 @@ export interface SkillConfig { export const SkillSet: Record = { // ========== 基础攻击 ========== 6001-6099 6001: { - uuid:6001,name:"挥击",for_hero:false,sp_name:"atk1",AtkedType:AtkedType.atked,path:"3036",quality:Quality.WHITE,TType:TType.Frontline, + uuid:6001,name:"挥击",for_hero:false,sp_name:"atk1",AtkedType:AtkedType.atked,path:"3036",quality:QualitySet.GREEN,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:0.2,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害" }, 6002: { - uuid:6002,name:"挥击",for_hero:false,sp_name:"atk2",AtkedType:AtkedType.atked,path:"3036",quality:Quality.WHITE,TType:TType.Frontline, + uuid:6002,name:"挥击",for_hero:false,sp_name:"atk2",AtkedType:AtkedType.atked,path:"3036",quality:QualitySet.GREEN,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:0.2,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害" }, 6003: { - uuid:6003,name:"射击",for_hero:false,sp_name:"arrow",AtkedType:AtkedType.atked,path:"3037",quality:Quality.WHITE,TType:TType.Frontline, + uuid:6003,name:"射击",for_hero:false,sp_name:"arrow",AtkedType:AtkedType.atked,path:"3037",quality:QualitySet.GREEN,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:3,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[],debuffs:[],info:"向最前方敌人释放箭矢,造成100%攻击的伤害" }, 6004: { - uuid:6004,name:"冰球",for_hero:false,sp_name:"am_ice",AtkedType:AtkedType.ice,path:"3034",quality:Quality.WHITE,TType:TType.Frontline, + uuid:6004,name:"冰球",for_hero:false,sp_name:"am_ice",AtkedType:AtkedType.ice,path:"3034",quality:QualitySet.GREEN,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:3,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害" }, 6005: { - uuid:6005,name:"火球术",for_hero:true,sp_name:"am_fire",AtkedType:AtkedType.fire,path:"3039",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6005,name:"火球术",for_hero:true,sp_name:"am_fire",AtkedType:AtkedType.fire,path:"3039",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:2,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.STUN,dev:0,deC:1,deR:50}],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧" }, 6006: { - uuid:6006,name:"能量波",for_hero:false,sp_name:"am_blue",AtkedType:AtkedType.ice,path:"3034",quality:Quality.WHITE,TType:TType.Frontline, + uuid:6006,name:"能量波",for_hero:false,sp_name:"am_blue",AtkedType:AtkedType.ice,path:"3034",quality:QualitySet.GREEN,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:3,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害" }, 6007: { - uuid:6007,name:"圣光波",for_hero:true,sp_name:"am_yellow",AtkedType:AtkedType.fire,path:"3039",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6007,name:"圣光波",for_hero:true,sp_name:"am_yellow",AtkedType:AtkedType.fire,path:"3039",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:2,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.STUN,dev:0,deC:1,deR:50}],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧" }, // ========== 大招 ========== 6100-6199 6101: { - uuid:6101,name:"护盾",for_hero:true,sp_name:"shield",AtkedType:AtkedType.atked,path:"3045",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6101,name:"护盾",for_hero:true,sp_name:"shield",AtkedType:AtkedType.atked,path:"3045",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd, ap:0,cd:5,in:0,hit_num:1,hit:1,hited:3,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[{buff:BuffAttr.SHIELD,buV:2,buC:0,buR:100}],debuffs:[],info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)" }, 6102: { - uuid:6102,name:"寒冰箭",for_hero:true,sp_name:"arrow_blue",AtkedType:AtkedType.ice,path:"3060",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6102,name:"寒冰箭",for_hero:true,sp_name:"arrow_blue",AtkedType:AtkedType.ice,path:"3060",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.linear,EType:EType.collision, ap:100,cd:1,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.FROST,dev:1,deC:0,deR:100}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人" }, 6103: { - uuid:6103,name:"治疗",for_hero:true,sp_name:"heath_small",AtkedType:AtkedType.atked,path:"3056",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6103,name:"治疗",for_hero:true,sp_name:"heath_small",AtkedType:AtkedType.atked,path:"3056",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single,CdType:CdType.cd,AType:AType.StartEnd,EType:EType.timeEnd, ap:0,cd:5,in:0,hit_num:1,hit:0,hited:0,speed:0,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[{buff:BuffAttr.HP,buV:20,buC:0,buR:100}],debuffs:[],info:"回复最前排队友10%最大生命值的生命" }, 6104: { - uuid:6104,name:"烈焰斩击",for_hero:false,sp_name:"max_fireatk",AtkedType:AtkedType.fire,path:"3036",quality:Quality.WHITE,TType:TType.Frontline, + uuid:6104,name:"烈焰斩击",for_hero:false,sp_name:"max_fireatk",AtkedType:AtkedType.fire,path:"3036",quality:QualitySet.GREEN,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.cd,AType:AType.fixedStart,EType:EType.animationEnd, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:0.2,speed:720,cost:10,fname:"max",flash:false,with:0,maxC:1, buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害" }, 6105: { - uuid:6105,name:"烈火护盾",for_hero:true,sp_name:"max_firedun",AtkedType:AtkedType.atked,path:"3061",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6105,name:"烈火护盾",for_hero:true,sp_name:"max_firedun",AtkedType:AtkedType.atked,path:"3061",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedStart,EType:EType.timeEnd, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:1,speed:80,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[],info:"召唤烈焰保护英雄,持续10秒,每秒对范围内的敌人造成100%伤害" }, 6106: { - uuid:6106,name:"龙卷风",for_hero:true,sp_name:"bwind",AtkedType:AtkedType.wind,path:"3065",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6106,name:"龙卷风",for_hero:true,sp_name:"bwind",AtkedType:AtkedType.wind,path:"3065",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.power,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:1,speed:360,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:100}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人" @@ -396,73 +388,73 @@ export const SkillSet: Record = { 6107: { - uuid:6107,name:"烈焰射击",for_hero:false,sp_name:"arrow_yellow",AtkedType:AtkedType.fire,path:"3014",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6107,name:"烈焰射击",for_hero:false,sp_name:"arrow_yellow",AtkedType:AtkedType.fire,path:"3014",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,CdType:CdType.power,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.STUN,dev:0.5,deC:0,deR:50}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人" }, 6108: { - uuid:6108,name:"火墙",for_hero:true,sp_name:"max_fwall",AtkedType:AtkedType.atked,path:"3040",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6108,name:"火墙",for_hero:true,sp_name:"max_fwall",AtkedType:AtkedType.atked,path:"3040",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:CdType.cd,AType:AType.fixedEnd,EType:EType.timeEnd, ap:50,cd:5,in:0,hit_num:1,hit:1,hited:1,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害" }, 6109: { - uuid:6109,name:"冰刺",for_hero:true,sp_name:"icez",AtkedType:AtkedType.atked,path:"3049",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6109,name:"冰刺",for_hero:true,sp_name:"icez",AtkedType:AtkedType.atked,path:"3049",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd, ap:300,cd:5,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.FROST,dev:0,deC:0,deR:100}],info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人" }, 6110: { - uuid:6110,name:"潮汐",for_hero:true,sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6110,name:"潮汐",for_hero:true,sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:100}],info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人" }, 6111: { - uuid:6111,name:"陨石术",for_hero:true,sp_name:"max_yunshi",AtkedType:AtkedType.fire,path:"3123",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6111,name:"陨石术",for_hero:true,sp_name:"max_yunshi",AtkedType:AtkedType.fire,path:"3123",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd, ap:500,cd:5,in:0,hit_num:0,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害" }, 6112: { - uuid:6112,name:"冰墙",for_hero:false,sp_name:"icet",AtkedType:AtkedType.atked,path:"3050",quality:Quality.GREEN,TType:TType.Frontline, + uuid:6112,name:"冰墙",for_hero:false,sp_name:"icet",AtkedType:AtkedType.atked,path:"3050",quality:QualitySet.BLUE,TType:TType.Frontline, TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.range,CdType:CdType.cd,AType:AType.linear,EType:EType.animationEnd, ap:400,cd:5,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:100}],info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人" }, 6113: { - uuid:6113,name:"剑雨",for_hero:true,sp_name:"max_jianyu",AtkedType:AtkedType.fire,path:"3123",quality:Quality.BLUE,TType:TType.Frontline, + uuid:6113,name:"剑雨",for_hero:true,sp_name:"max_jianyu",AtkedType:AtkedType.fire,path:"3123",quality:QualitySet.PURPLE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd, ap:500,cd:5,in:0,hit_num:0,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:1, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害" }, //召唤取消 - // 6031:{uuid:6031,name:"召唤骷髅",for_hero:true,sp_name:"zhaohuan",AtkedType:AtkedType.atked,path:"3018",quality:Quality.GREEN, TType:TType.Frontline,maxC:1, + // 6031:{uuid:6031,name:"召唤骷髅",for_hero:true,sp_name:"zhaohuan",AtkedType:AtkedType.atked,path:"3018",quality:QualitySet.BLUE, TType:TType.Frontline,maxC:1, // TGroup:TGroup.Self,SType:SType.zhaohuan,act:"max",DTType:DTType.single,CdType:CdType.power,AType:AType.fixedStart,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90, // debuff:0,deV:0,deC:0,deR:100,in:0.8,ap:70,cd:60,in:0,hit_num:1,hit:1,hited:1,speed:720,hero:5221,cost:10,info:"召唤一个骷髅战士为我方而战"}, // ========== 超必杀 ========== 6200-6299 6201: { - uuid:6201,name:"陨石风暴",for_hero:true,sp_name:"fireys",AtkedType:AtkedType.atked,path:"3101",quality:Quality.PURPLE,TType:TType.Frontline, + uuid:6201,name:"陨石风暴",for_hero:true,sp_name:"fireys",AtkedType:AtkedType.atked,path:"3101",quality:QualitySet.ORANGE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd, ap:500,cd:5,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:5, buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害" }, 6202: { - uuid:6202,name:"龙卷风爆",for_hero:true,sp_name:"bwind",AtkedType:AtkedType.atked,path:"3069",quality:Quality.PURPLE,TType:TType.Frontline, + uuid:6202,name:"龙卷风爆",for_hero:true,sp_name:"bwind",AtkedType:AtkedType.atked,path:"3069",quality:QualitySet.ORANGE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.linear,EType:EType.collision, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:1,speed:360,cost:10,fname:"max",flash:false,with:90,maxC:5, buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:50}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人" }, 6203: { - uuid:6203,name:"大潮汐",for_hero:true,sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",quality:Quality.PURPLE,TType:TType.Frontline, + uuid:6203,name:"大潮汐",for_hero:true,sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",quality:QualitySet.ORANGE,TType:TType.Frontline, TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,CdType:CdType.power,AType:AType.fixedEnd,EType:EType.animationEnd, ap:100,cd:5,in:0,hit_num:1,hit:1,hited:0.3,speed:720,cost:10,fname:"max",flash:false,with:90,maxC:5, buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:50}],info:"召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人" diff --git a/assets/script/game/common/config/TalentSet.ts b/assets/script/game/common/config/TalentSet.ts index bffb0f39..6c4876de 100644 --- a/assets/script/game/common/config/TalentSet.ts +++ b/assets/script/game/common/config/TalentSet.ts @@ -1,17 +1,14 @@ +import { QualitySet } from "./BoxSet"; import { BuffAttr } from "./SkillSet" -// 天赋品质枚举 -export enum TalentQuality { - BLUE = 3, // 蓝色品质 - PURPLE = 4, // 紫色品质 -} + // 天赋配置接口 export interface TalentConfig { uuid: number; name: string; path: string; - quality: TalentQuality; + quality: QualitySet; buffType: BuffAttr; value: number; info: string; @@ -53,36 +50,36 @@ export const TalentSlot = { // 天赋列表配置 export const TalentList: { [key: number]: TalentConfig } = { // ==================== 蓝色品质天赋 ==================== - 1001: {uuid:1001,name:"攻击强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.ATK,value:30,info:"攻击力+30%"}, - 1002: {uuid:1002,name:"暴击强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.CRITICAL,value:15,info:"暴击率+15%"}, - 1003: {uuid:1003,name:"暴击伤害强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.CRITICAL_DMG,value:30,info:"暴击伤害+30%"}, - 1004: {uuid:1004,name:"闪避强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.DODGE,value:9,info:"闪避率+9%"}, - 1005: {uuid:1005,name:"多重攻击",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.WFUNY,value:20,info:"额外攻击概率+10%"}, - 1006: {uuid:1006,name:"生命强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.HP,value:60,info:"生命值+60%"}, - 1007: {uuid:1007,name:"免伤强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.DEF,value:9,info:"免伤+9%"}, - 1008: {uuid:1008,name:"穿透强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.PUNCTURE,value:1,info:"普通攻击穿透+1"}, - 1009: {uuid:1009,name:"攻击加速",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.ATK_CD,value:24,info:"攻击速度+24%"}, - 1010: {uuid:1010,name:"技能加速",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.SKILL_CD,value:24,info:"技能冷却缩减+24%"}, - 1011: {uuid:1011,name:"冰冻强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.FROST_RATIO,value:6,info:"冰冻概率+6%"}, - 1012: {uuid:1012,name:"击退强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.KNOCKBACK,value:6,info:"击退概率+6%"}, - 1013: {uuid:1013,name:"击晕强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.STUN_RATIO,value:6,info:"击晕概率+6%"}, - 1014: {uuid:1015,name:"吸血强化",path:"3063",quality:TalentQuality.BLUE,buffType:BuffAttr.LIFESTEAL,value:12,info:"吸血+12%"}, + 1001: {uuid:1001,name:"攻击强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.ATK,value:30,info:"攻击力+30%"}, + 1002: {uuid:1002,name:"暴击强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.CRITICAL,value:15,info:"暴击率+15%"}, + 1003: {uuid:1003,name:"暴击伤害强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.CRITICAL_DMG,value:30,info:"暴击伤害+30%"}, + 1004: {uuid:1004,name:"闪避强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.DODGE,value:9,info:"闪避率+9%"}, + 1005: {uuid:1005,name:"多重攻击",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.WFUNY,value:20,info:"额外攻击概率+10%"}, + 1006: {uuid:1006,name:"生命强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.HP,value:60,info:"生命值+60%"}, + 1007: {uuid:1007,name:"免伤强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.DEF,value:9,info:"免伤+9%"}, + 1008: {uuid:1008,name:"穿透强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.PUNCTURE,value:1,info:"普通攻击穿透+1"}, + 1009: {uuid:1009,name:"攻击加速",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.ATK_CD,value:24,info:"攻击速度+24%"}, + 1010: {uuid:1010,name:"技能加速",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.SKILL_CD,value:24,info:"技能冷却缩减+24%"}, + 1011: {uuid:1011,name:"冰冻强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.FROST_RATIO,value:6,info:"冰冻概率+6%"}, + 1012: {uuid:1012,name:"击退强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.KNOCKBACK,value:6,info:"击退概率+6%"}, + 1013: {uuid:1013,name:"击晕强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.STUN_RATIO,value:6,info:"击晕概率+6%"}, + 1014: {uuid:1015,name:"吸血强化",path:"3063",quality:QualitySet.BLUE,buffType:BuffAttr.LIFESTEAL,value:12,info:"吸血+12%"}, // ==================== 紫色品质天赋 ==================== - 2001: {uuid:2001,name:"攻击大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.ATK,value:50,info:"攻击力+50%"}, - 2002: {uuid:2002,name:"暴击大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.CRITICAL,value:25,info:"暴击率+25%"}, - 2003: {uuid:2003,name:"暴击伤害大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.CRITICAL_DMG,value:50,info:"暴击伤害+50%"}, - 2004: {uuid:2004,name:"闪避大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.DODGE,value:15,info:"闪避率+15%"}, - 2005: {uuid:2005,name:"多重攻击大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.WFUNY,value:30,info:"额外攻击概率+30%"}, - 2006: {uuid:2006,name:"生命大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.HP,value:100,info:"生命值+100%"}, - 2007: {uuid:2007,name:"免伤大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.DEF,value:15,info:"免伤+15%"}, - 2008: {uuid:2008,name:"穿透大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.PUNCTURE,value:1,info:"普通攻击穿透+1"}, - 2009: {uuid:2009,name:"攻击加速大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.ATK_CD,value:40,info:"攻击速度+40%"}, - 2010: {uuid:2010,name:"技能加速大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.SKILL_CD,value:40,info:"技能冷却缩减+40%"}, - 2011: {uuid:2011,name:"冰冻大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.FROST_RATIO,value:10,info:"冰冻概率+10%"}, - 2012: {uuid:2012,name:"击退大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.KNOCKBACK,value:10,info:"击退概率+10%"}, - 2013: {uuid:2013,name:"击晕大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.STUN_RATIO,value:10,info:"击晕概率+10%"}, - 2014: {uuid:2015,name:"吸血大师",path:"3063",quality:TalentQuality.PURPLE,buffType:BuffAttr.LIFESTEAL,value:20,info:"吸血+20%"}, + 2001: {uuid:2001,name:"攻击大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.ATK,value:50,info:"攻击力+50%"}, + 2002: {uuid:2002,name:"暴击大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.CRITICAL,value:25,info:"暴击率+25%"}, + 2003: {uuid:2003,name:"暴击伤害大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.CRITICAL_DMG,value:50,info:"暴击伤害+50%"}, + 2004: {uuid:2004,name:"闪避大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.DODGE,value:15,info:"闪避率+15%"}, + 2005: {uuid:2005,name:"多重攻击大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.WFUNY,value:30,info:"额外攻击概率+30%"}, + 2006: {uuid:2006,name:"生命大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.HP,value:100,info:"生命值+100%"}, + 2007: {uuid:2007,name:"免伤大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.DEF,value:15,info:"免伤+15%"}, + 2008: {uuid:2008,name:"穿透大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.PUNCTURE,value:1,info:"普通攻击穿透+1"}, + 2009: {uuid:2009,name:"攻击加速大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.ATK_CD,value:40,info:"攻击速度+40%"}, + 2010: {uuid:2010,name:"技能加速大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.SKILL_CD,value:40,info:"技能冷却缩减+40%"}, + 2011: {uuid:2011,name:"冰冻大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.FROST_RATIO,value:10,info:"冰冻概率+10%"}, + 2012: {uuid:2012,name:"击退大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.KNOCKBACK,value:10,info:"击退概率+10%"}, + 2013: {uuid:2013,name:"击晕大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.STUN_RATIO,value:10,info:"击晕概率+10%"}, + 2014: {uuid:2015,name:"吸血大师",path:"3063",quality:QualitySet.PURPLE,buffType:BuffAttr.LIFESTEAL,value:20,info:"吸血+20%"}, }; // 获取天赋配置 @@ -91,7 +88,7 @@ export const getTalentConfig = (uuid: number): TalentConfig | null => { }; // 获取指定品质的所有天赋 -export const getTalentsByQuality = (quality: TalentQuality): TalentConfig[] => { +export const getTalentsByQuality = (quality: QualitySet): TalentConfig[] => { return Object.values(TalentList).filter(talent => talent.quality === quality); }; @@ -102,12 +99,12 @@ export const getTalentsByBuffType = (buffType: BuffAttr): TalentConfig[] => { // 获取所有蓝色品质天赋 export const getBlueTalents = (): TalentConfig[] => { - return getTalentsByQuality(TalentQuality.BLUE); + return getTalentsByQuality(QualitySet.BLUE); }; // 获取所有紫色品质天赋 export const getPurpleTalents = (): TalentConfig[] => { - return getTalentsByQuality(TalentQuality.PURPLE); + return getTalentsByQuality(QualitySet.PURPLE); }; // 天赋流派配置 @@ -263,7 +260,7 @@ export const TalentSystemConfig = { blueQualityMultiplier: 0.6, // 蓝色品质为基础值的60%(降低40%) purpleQualityMultiplier: 1.0, // 紫色品质为基础值(最高品质) talentCost: { - [TalentQuality.BLUE]: 1, // 蓝色天赋消耗1点 - [TalentQuality.PURPLE]: 2 // 紫色天赋消耗2点 + [QualitySet.BLUE]: 1, // 蓝色天赋消耗1点 + [QualitySet.PURPLE]: 2 // 紫色天赋消耗2点 } }; \ No newline at end of file diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index bbe0b23e..4c8148dd 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -1,5 +1,5 @@ import { v3 } from "cc" -import { FacSet } from "./BoxSet" +import { FacSet, QualitySet } from "./BoxSet" import { smc } from "../SingletonModuleComp" /** * kind :1:烈焰 2:寒冰 3:自然 4:暗影 5:神圣 @@ -75,14 +75,6 @@ export const MonSet = { 7:{pos:v3(560,0,0)}, } -export const HQuality = { - WHITE:1, - GREEN:2, - BLUE:3, - PURPLE:4, - ORANGE:5, -} - @@ -90,108 +82,108 @@ export const HQuality = { export const HeroInfo = { //主将 - 5001:{uuid:5001,name:"火焰骑士",path:"hk1", fac:FacSet.HERO, quality:HQuality.GREEN,lv:1,kind:1, + 5001:{uuid:5001,name:"火焰骑士",path:"hk1", fac:FacSet.HERO, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.warrior,hp:100,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001], buff:[],info:"剑类专精,穿刺伤害额外+10%"}, - 5002:{uuid:5002,name:"hk1",path:"hk1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:1, + 5002:{uuid:5002,name:"hk1",path:"hk1", fac:FacSet.HERO, quality:QualitySet.BLUE,lv:1,kind:1, type:HType.warrior,hp:100,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001], buff:[],info:"斧类专精,风怒概率增加10%"}, -// 5003:{uuid:5003,name:"碎颅.赫克托",path:"k4", quality:HQuality.BLUE,lv:1,kind:1, +// 5003:{uuid:5003,name:"碎颅.赫克托",path:"k4", quality:QualitySet.BLUE,lv:1,kind:1, // type:HType.warrior,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6010,6021,6001], // buff:[],info:"锤类专精,暴击概率增加10%"}, -// 5004:{uuid:5004,name:"裂伤.塔米拉",path:"k3", quality:HQuality.BLUE,lv:1,kind:1, +// 5004:{uuid:5004,name:"裂伤.塔米拉",path:"k3", quality:QualitySet.BLUE,lv:1,kind:1, // type:HType.warrior,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6010,6021,6001], // buff:[],info:"刀类专精,易伤效果额外持续1次"}, - 5005:{uuid:5005,name:"ha1",path:"ha1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2, + 5005:{uuid:5005,name:"ha1",path:"ha1", fac:FacSet.HERO, quality:QualitySet.BLUE,lv:1,kind:2, type:HType.remote,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6003,6003], buff:[],info:"说明"}, - 5007:{uuid:5007,name:"mh1",path:"hmh1", fac:FacSet.HERO, quality:HQuality.PURPLE,lv:1,kind:2, + 5007:{uuid:5007,name:"mh1",path:"hmh1", fac:FacSet.HERO, quality:QualitySet.PURPLE,lv:1,kind:2, type:HType.mage,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6004], buff:[],info:"说明"}, - 5008:{uuid:5008,name:"mf1",path:"hmf1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2, + 5008:{uuid:5008,name:"mf1",path:"hmf1", fac:FacSet.HERO, quality:QualitySet.BLUE,lv:1,kind:2, type:HType.mage,hp:100,ap:15,dis:400,cd:1.5,speed:100,skills:[6005], buff:[],info:"说明"}, - 5009:{uuid:5009,name:"风暴精灵",path:"hk1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2, + 5009:{uuid:5009,name:"风暴精灵",path:"hk1", fac:FacSet.HERO, quality:QualitySet.BLUE,lv:1,kind:2, type:HType.mage,hp:100,ap:15,dis:400,cd:1.5,speed:100,skills:[6006], buff:[],info:"说明"}, - 5010:{uuid:5010,name:"战争祭祀",path:"hk1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2, + 5010:{uuid:5010,name:"战争祭祀",path:"hk1", fac:FacSet.HERO, quality:QualitySet.BLUE,lv:1,kind:2, type:HType.mage,hp:100,ap:15,dis:400,cd:1.5,speed:100,skills:[6007], buff:[],info:"说明"}, - 5011:{uuid:5011,name:"ha2",path:"ha2", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2, + 5011:{uuid:5011,name:"ha2",path:"ha2", fac:FacSet.HERO, quality:QualitySet.BLUE,lv:1,kind:2, type:HType.remote,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6003], buff:[],info:"说明"}, //怪物 - 5201:{uuid:5201,name:"兽人战士",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5201:{uuid:5201,name:"兽人战士",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.remote,hp:20,ap:5,dis:350,cd:1,speed:100,skills:[6007], buff:[],info:"普通怪物-战士型"}, - 5203:{uuid:5203,name:"兽人护卫",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5203:{uuid:5203,name:"兽人护卫",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5204:{uuid:5204,name:"石卫", path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5204:{uuid:5204,name:"石卫", path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.mage,hp:18,ap:5,dis:90,cd:2.5,speed:100,skills:[6001], buff:[],info:"法师怪物-高伤害脆弱"}, - 5205:{uuid:5205,name:"土卫", path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5205:{uuid:5205,name:"土卫", path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.mage,hp:18,ap:5,dis:90,cd:2.5,speed:100,skills:[6001], buff:[],info:"法师怪物-高伤害脆弱"}, - 5206:{uuid:5206,name:"树卫", path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5206:{uuid:5206,name:"树卫", path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.mage,hp:18,ap:5,dis:90,cd:2.5,speed:100,skills:[6001], buff:[],info:"法师怪物-高伤害脆弱"}, - 5219:{uuid:5219,name:"牛头战士",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:2,kind:1, + 5219:{uuid:5219,name:"牛头战士",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:2,kind:1, type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5220:{uuid:5220,name:"牛头战士",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5220:{uuid:5220,name:"牛头战士",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5221:{uuid:5221,name:"牛头战士",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5221:{uuid:5221,name:"牛头战士",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.remote,hp:20,ap:5,dis:350,cd:1.5,speed:100,skills:[6007], buff:[],info:"普通怪物-战士型"}, - 5222:{uuid:5222,name:"独眼巨人",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5222:{uuid:5222,name:"独眼巨人",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5223:{uuid:5223,name:"独眼巨人",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5223:{uuid:5223,name:"独眼巨人",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5224:{uuid:5224,name:"独眼巨人",path:"mo1", fac:FacSet.MON, quality:HQuality.GREEN,lv:1,kind:1, + 5224:{uuid:5224,name:"独眼巨人",path:"mo1", fac:FacSet.MON, quality:QualitySet.GREEN,lv:1,kind:1, type:HType.remote,hp:20,ap:5,dis:350,cd:1.5,speed:100,skills:[6001], buff:[],info:"普通怪物-战士型"}, - 5225:{uuid:5225,name:"精英独眼",path:"mo1", fac:FacSet.MON, quality:HQuality.BLUE,lv:1,kind:1, + 5225:{uuid:5225,name:"精英独眼",path:"mo1", fac:FacSet.MON, quality:QualitySet.BLUE,lv:1,kind:1, type:HType.warrior,hp:45,ap:12,dis:300,cd:2,speed:100,skills:[6006], buff:[],info:"精英怪物-战士型"}, - 5226:{uuid:5226,name:"精英牛头",path:"mo1", fac:FacSet.MON, quality:HQuality.BLUE,lv:1,kind:1, + 5226:{uuid:5226,name:"精英牛头",path:"mo1", fac:FacSet.MON, quality:QualitySet.BLUE,lv:1,kind:1, type:HType.warrior,hp:45,ap:12,dis:300,cd:2,speed:100,skills:[6007], buff:[],info:"精英怪物-战士型"}, - 5227:{uuid:5227,name:"精英兽人",path:"mo1", fac:FacSet.MON, quality:HQuality.BLUE,lv:1,kind:1, + 5227:{uuid:5227,name:"精英兽人",path:"mo1", fac:FacSet.MON, quality:QualitySet.BLUE,lv:1,kind:1, type:HType.warrior,hp:45,ap:12,dis:300,cd:2,speed:100,skills:[6005], buff:[],info:"精英怪物-战士型"}, diff --git a/assets/script/game/map/CardComp.ts b/assets/script/game/map/CardComp.ts index 25750724..d760f26b 100644 --- a/assets/script/game/map/CardComp.ts +++ b/assets/script/game/map/CardComp.ts @@ -9,11 +9,12 @@ import { HeroModelComp } from "../hero/HeroModelComp"; import { HeroViewComp } from "../hero/HeroViewComp"; import { smc } from "../common/SingletonModuleComp"; import { HeroSkillList, SkillSet } from "../common/config/SkillSet"; -import { cardType, getRandomCardUUID, Quality, SuperCards } from "../common/config/CardSet"; +import { cardType, getRandomCardUUID, SuperCards } from "../common/config/CardSet"; import { EquipInfo, EquipType } from "../common/config/Equips"; import { FightSet } from "../common/config/Mission"; import { EnhancementOptions } from "../common/config/LevelUp"; import { TalentList } from "../common/config/TalentSet"; +import { QualitySet } from "../common/config/BoxSet"; const { ccclass, property } = _decorator; @@ -232,7 +233,7 @@ export class CardComp extends CCComp { show.getChildByName("info").getComponent(Label).string=data.description } - do_card_bg_show(q:number=Quality.WHITE){ + do_card_bg_show(q:number=QualitySet.GREEN){ let show=this.node.getChildByName("show") show.getChildByName("ap").active=false show.getChildByName("hp").active=false @@ -275,32 +276,30 @@ export class CardComp extends CCComp { show.getChildByName("mask").getChildByName("func").active=true break } - show.getChildByName("q1").active=q==Quality.WHITE - show.getChildByName("q2").active=q==Quality.GREEN - show.getChildByName("q3").active=q==Quality.BLUE - show.getChildByName("q4").active=q==Quality.PURPLE - show.getChildByName("q5").active=q==Quality.ORANGE - show.getChildByName("fq1").active=q==Quality.WHITE - show.getChildByName("fq2").active=q==Quality.GREEN - show.getChildByName("fq3").active=q==Quality.BLUE - show.getChildByName("fq4").active=q==Quality.PURPLE - show.getChildByName("fq5").active=q==Quality.ORANGE + show.getChildByName("q2").active=q==QualitySet.GREEN + show.getChildByName("q3").active=q==QualitySet.BLUE + show.getChildByName("q4").active=q==QualitySet.PURPLE + show.getChildByName("q5").active=q==QualitySet.ORANGE + show.getChildByName("fq2").active=q==QualitySet.GREEN + show.getChildByName("fq3").active=q==QualitySet.BLUE + show.getChildByName("fq4").active=q==QualitySet.PURPLE + show.getChildByName("fq5").active=q==QualitySet.ORANGE // this.node.getChildByName("show").getChildByName("coins").active=false // this.node.getChildByName("show").getChildByName("coins").getChildByName("num").getComponent(Label).string=this.get_cost_gold(q).toString() } get_cost_gold(quality:number){ switch(quality){ - case Quality.GREEN: + case QualitySet.GREEN: return FightSet.GREEN_GOLD - case Quality.BLUE: + case QualitySet.BLUE: return FightSet.BLUE_GOLD - case Quality.PURPLE: + case QualitySet.PURPLE: return FightSet.PURPLE_GOLD - case Quality.ORANGE: + case QualitySet.ORANGE: return FightSet.ORANGE_GOLD default: return 0 diff --git a/assets/script/game/map/CardsComp.ts b/assets/script/game/map/CardsComp.ts index e2a39ecc..eea4a441 100644 --- a/assets/script/game/map/CardsComp.ts +++ b/assets/script/game/map/CardsComp.ts @@ -7,11 +7,12 @@ import { cardType, getRandomCardsByType } from "../common/config/CardSet"; import { smc } from "../common/SingletonModuleComp"; import { RandomManager } from "db://oops-framework/core/common/random/RandomManager"; import { EquipType } from "../common/config/Equips"; -import { getSkills, Quality } from "../common/config/SkillSet"; +import { getSkills } from "../common/config/SkillSet"; import { getEnhancement } from "../common/config/LevelUp"; import { FightSet } from "../common/config/Mission"; import { oops } from "db://oops-framework/core/Oops"; import { getHeroList } from "../common/config/heroSet"; +import { QualitySet } from "../common/config/BoxSet"; const { ccclass, property } = _decorator; @@ -112,7 +113,7 @@ export class CardsCompComp extends CCComp { } talent_select(data:any){ - let list=getRandomCardsByType(cardType.TALENT,3,Quality.GREEN) + let list=getRandomCardsByType(cardType.TALENT,3,QualitySet.GREEN) console.log("[CardsComp]:天赋选择卡牌列表",list) this.card1c.talent_select(list[0],data) this.card2c.talent_select(list[1],data) @@ -138,11 +139,11 @@ export class CardsCompComp extends CCComp { hero_skill_select(data:any){ let list=[] if(data.slot=="skill1"){ - list =getRandomCardsByType(cardType.SKILL,3,Quality.GREEN) + list =getRandomCardsByType(cardType.SKILL,3,QualitySet.GREEN) }else if(data.slot=="skill2"){ - list=getRandomCardsByType(cardType.SKILL,3,Quality.BLUE) + list=getRandomCardsByType(cardType.SKILL,3,QualitySet.BLUE) }else if(data.slot=="skill3"){ - list=getRandomCardsByType(cardType.SKILL,3,Quality.PURPLE) + list=getRandomCardsByType(cardType.SKILL,3,QualitySet.PURPLE) } console.log("[CardsComp]:技能选择卡牌列表",list) this.card1c.hero_skill_select(list[0],data) diff --git a/assets/script/game/map/HCardUICom.ts b/assets/script/game/map/HCardUICom.ts index 72c0e6e0..1e158623 100644 --- a/assets/script/game/map/HCardUICom.ts +++ b/assets/script/game/map/HCardUICom.ts @@ -1,9 +1,9 @@ import { _decorator, Animation, AnimationClip, Component, Label, Node, resources } from 'cc'; -import { HeroInfo, HQuality, HType } from '../common/config/heroSet'; +import { HeroInfo, HType } from '../common/config/heroSet'; import { smc } from '../common/SingletonModuleComp'; import { oops } from 'db://oops-framework/core/Oops'; import { UIID } from '../common/config/GameUIConfig'; -import { GameSet, HeroConSet } from '../common/config/BoxSet'; +import { GameSet, HeroConSet, QualitySet } from '../common/config/BoxSet'; import { HttpReturn } from 'db://oops-framework/libs/network/HttpRequest'; import { GameEvent } from '../common/config/GameEvent'; const { ccclass, property } = _decorator; @@ -44,14 +44,14 @@ export class HCardUICom extends Component { // this.node.getChildByName("slv").getChildByName("lv3").active=smc.heros[uuid].slv>=3 // this.node.getChildByName("slv").getChildByName("lv4").active=smc.heros[uuid].slv>=4 // this.node.getChildByName("slv").getChildByName("lv5").active=smc.heros[uuid].slv>=5 - this.node.getChildByName("g").active=hero_data.quality==HQuality.GREEN - this.node.getChildByName("gg").active=hero_data.quality==HQuality.GREEN - this.node.getChildByName("b").active=hero_data.quality==HQuality.BLUE - this.node.getChildByName("bg").active=hero_data.quality==HQuality.BLUE - this.node.getChildByName("p").active=hero_data.quality==HQuality.PURPLE - this.node.getChildByName("pg").active=hero_data.quality==HQuality.PURPLE - this.node.getChildByName("y").active=hero_data.quality==HQuality.ORANGE - this.node.getChildByName("yg").active=hero_data.quality==HQuality.ORANGE + this.node.getChildByName("g").active=hero_data.quality==QualitySet.GREEN + this.node.getChildByName("gg").active=hero_data.quality==QualitySet.GREEN + this.node.getChildByName("b").active=hero_data.quality==QualitySet.BLUE + this.node.getChildByName("bg").active=hero_data.quality==QualitySet.BLUE + this.node.getChildByName("p").active=hero_data.quality==QualitySet.PURPLE + this.node.getChildByName("pg").active=hero_data.quality==QualitySet.PURPLE + this.node.getChildByName("y").active=hero_data.quality==QualitySet.ORANGE + this.node.getChildByName("yg").active=hero_data.quality==QualitySet.ORANGE this.node.getChildByName("type").getChildByName("w").active=hero_data.type==HType.warrior this.node.getChildByName("type").getChildByName("r").active=hero_data.type==HType.remote this.node.getChildByName("type").getChildByName("m").active=hero_data.type==HType.mage diff --git a/assets/script/game/map/MissionHeroComp.ts b/assets/script/game/map/MissionHeroComp.ts index c8759c38..c19445e8 100644 --- a/assets/script/game/map/MissionHeroComp.ts +++ b/assets/script/game/map/MissionHeroComp.ts @@ -10,6 +10,7 @@ import { HeroViewComp } from "../hero/HeroViewComp"; import { oops } from "db://oops-framework/core/Oops"; import { HeroPos } from "../common/config/heroSet"; import { FightSet } from "../common/config/Mission"; +import { QualitySet } from "../common/config/BoxSet"; const { ccclass, property } = _decorator; /** 视图层对象 */ @@ -112,7 +113,7 @@ export class MissionHeroCompComp extends CCComp { this.current_hero_uuid = uuid this.heros[this.current_hero_num].uuid = uuid this.heros[this.current_hero_num].count = 1 - this.heros[this.current_hero_num].quality = 0 + this.heros[this.current_hero_num].quality = QualitySet.GREEN this.addHero(uuid, false) } diff --git a/assets/script/game/map/RogueConfig.ts b/assets/script/game/map/RogueConfig.ts index 9756e491..1882c218 100644 --- a/assets/script/game/map/RogueConfig.ts +++ b/assets/script/game/map/RogueConfig.ts @@ -11,8 +11,9 @@ * @date 2025-07-12 */ +import { QualitySet } from "../common/config/BoxSet"; import { BuffAttr } from "../common/config/SkillSet"; -import { getMonList, HQuality } from "../common/config/heroSet"; +import { getMonList } from "../common/config/heroSet"; /** * 怪物类型枚举 @@ -273,13 +274,13 @@ export function generateStageConfig(stageNumber: number, level: number = 1): Mon export function getMonsterUUIDsByType(monsterType: MonsterType): number[] { switch (monsterType) { case MonsterType.NORMAL: - return getMonList(HQuality.GREEN); // 绿色品质为普通怪物 + return getMonList(QualitySet.GREEN); // 绿色品质为普通怪物 case MonsterType.ELITE: - return getMonList(HQuality.BLUE); // 蓝色品质为精英怪物 + return getMonList(QualitySet.BLUE); // 蓝色品质为精英怪物 case MonsterType.BOSS: // 紫色及以上品质为Boss怪物 - const purpleMonsters = getMonList(HQuality.PURPLE); - const orangeMonsters = getMonList(HQuality.ORANGE); + const purpleMonsters = getMonList(QualitySet.PURPLE); + const orangeMonsters = getMonList(QualitySet.ORANGE); return [...purpleMonsters, ...orangeMonsters]; default: return []; diff --git a/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/gameData.js b/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/gameData.js index bb2fd4d2..f4b1f1be 100644 --- a/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/gameData.js +++ b/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/gameData.js @@ -164,12 +164,13 @@ async function addDataField(db, openid, field, amount) { * 消耗指定字段的数值 * @param {Object} db 数据库实例 * @param {string} openid 用户openid - * @param {string} field 字段名 - * @param {number} amount 消耗的数量 + * @param {string|Object[]} field 字段名或字段对象数组 [{field: 字段名, amount: 数量}] + * @param {number} [amount] 消耗的数量 (当field为字符串时使用) * @returns {Object} 操作结果 */ async function spendDataField(db, openid, field, amount) { try { + const _ = db.command; let user = await getOrCreaterUser(db, openid); if (!user) { return { @@ -178,27 +179,97 @@ async function spendDataField(db, openid, field, amount) { }; } - if (typeof amount !== 'number' || amount < 0) { - return { - code: -3, - msg: "数量必须是正数" - }; + // 处理单个字段的情况 + if (typeof field === 'string') { + if (typeof amount !== 'number' || amount < 0) { + return { + code: -3, + msg: "数量必须是正数" + }; + } + + const currentValue = user.data[field] || 0; + if (currentValue < amount) { + return { + code: -6, + msg: `${field} 不足, 当前: ${currentValue}, 需要: ${amount}` + }; + } + + return await addDataField(db, openid, field, -amount); } - const currentValue = user.data[field] || 0; - if (currentValue < amount) { - return { - code: -6, - msg: `${field} 不足, 当前: ${currentValue}, 需要: ${amount}` - }; + // 处理多个字段的情况 + if (Array.isArray(field)) { + const fieldsToSpend = field; + + // 验证参数格式 + for (const item of fieldsToSpend) { + if (!item.field || typeof item.amount !== 'number' || item.amount < 0) { + return { + code: -3, + msg: "字段参数格式错误,需要 {field, amount} 结构,且amount必须是正数" + }; + } + } + + // 检查所有资源是否足够 + for (const item of fieldsToSpend) { + const currentValue = user.data[item.field] || 0; + if (currentValue < item.amount) { + return { + code: -6, + msg: `${item.field} 不足, 当前: ${currentValue}, 需要: ${item.amount}` + }; + } + } + + // 所有资源都足够,开始扣除 + const updateData = {}; + const changes = []; + + for (const item of fieldsToSpend) { + const currentValue = user.data[item.field] || 0; + const newValue = Math.max(0, currentValue - item.amount); + updateData[`data.${item.field}`] = _.set(newValue); + + changes.push({ + field: item.field, + old_value: currentValue, + new_value: newValue, + change: -item.amount + }); + } + + // 更新数据库 + updateData['last_save_time'] = _.set(Date.now()); + let updateRes = await db.collection(user_db_name).doc(user._id).update({ + data: updateData + }); + + if (updateRes?.stats?.updated >= 1) { + return { + code: 200, + data: changes, + msg: "资源消耗成功" + }; + } else { + return { + code: -1, + msg: "资源消耗失败" + }; + } } - return await addDataField(db, openid, field, -amount); + return { + code: -3, + msg: "参数格式错误" + }; } catch (error) { - console.error(`消耗 ${field} 错误:`, error); + console.error(`消耗资源错误:`, error); return { code: -5, - msg: `消耗 ${field} 错误: ${error.message}` + msg: `消耗资源错误: ${error.message}` }; } } diff --git a/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/heros.js b/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/heros.js index c63ccb00..4af6893a 100644 --- a/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/heros.js +++ b/build-templates/wechatgame/cloud_functions/cocos_cloud/modules/heros.js @@ -314,20 +314,11 @@ async function levelUpHero(db, openid, heroId, exp,gold,levels = 1) { msg: "等级必须为正数" }; } - - let exp_result=await spendDataField(db, openid, 'exp', exp); - if(exp_result.code!==200){ + let result=await spendDataField(db, openid, {'exp':exp,'gold':gold}); + if(result.code!==200){ return { code: -1, - msg: `升级失败,经验不足` - }; - } - let gold_result=await spendDataField(db, openid, 'gold', gold); - if(gold_result.code!==200){ - await addDataField(db, openid, 'exp', exp); - return { - code: -1, - msg: `升级失败,金币不足` + msg: `升级失败,${result.msg}` }; } const currentLevel = user.heros[heroId].lv || 1; diff --git a/test_equipment.js b/test_equipment.js deleted file mode 100644 index a36bac42..00000000 --- a/test_equipment.js +++ /dev/null @@ -1,71 +0,0 @@ -// 测试装备配置 -console.log("=== 剑类武器配置测试 ==="); - -// 模拟装备数据 -const EquipInfo = { - // 等级1 剑类武器 - 2101: { uuid: 2101, name: "穿刺短剑(Lv1)", quality: 2, info: "攻击力增加50%,穿透1个目标" }, - 2102: { uuid: 2102, name: "寒锋长剑(Lv1)", quality: 3, info: "攻击力增加70%,穿透2个目标,10%冰冻比率" }, - 2103: { uuid: 2103, name: "虚空穿心剑(Lv1)", quality: 4, info: "攻击力增加95%,穿透3个目标,20%冰冻比率" }, - - // 等级2 剑类武器 - 2201: { uuid: 2201, name: "穿刺短剑(Lv2)", quality: 2, info: "攻击力增加80%,穿透1个目标" }, - 2202: { uuid: 2202, name: "寒锋长剑(Lv2)", quality: 3, info: "攻击力增加110%,穿透2个目标,15%冰冻比率" }, - 2203: { uuid: 2203, name: "虚空穿心剑(Lv2)", quality: 4, info: "攻击力增加140%,穿透3个目标,25%冰冻比率" }, - - // 等级3 剑类武器 - 2301: { uuid: 2301, name: "穿刺短剑(Lv3)", quality: 2, info: "攻击力增加110%,穿透1个目标" }, - 2302: { uuid: 2302, name: "寒锋长剑(Lv3)", quality: 3, info: "攻击力增加150%,穿透2个目标,20%冰冻比率" }, - 2303: { uuid: 2303, name: "虚空穿心剑(Lv3)", quality: 4, info: "攻击力增加185%,穿透3个目标,30%冰冻比率" }, - - // 等级4 剑类武器 - 2401: { uuid: 2401, name: "穿刺短剑(Lv4)", quality: 2, info: "攻击力增加140%,穿透1个目标" }, - 2402: { uuid: 2402, name: "寒锋长剑(Lv4)", quality: 3, info: "攻击力增加190%,穿透2个目标,25%冰冻比率" }, - 2403: { uuid: 2403, name: "虚空穿心剑(Lv4)", quality: 4, info: "攻击力增加240%,穿透3个目标,35%冰冻比率" }, - - // 等级5 剑类武器 - 2501: { uuid: 2501, name: "穿刺短剑(Lv5)", quality: 2, info: "攻击力增加170%,穿透1个目标" }, - 2502: { uuid: 2502, name: "寒锋长剑(Lv5)", quality: 3, info: "攻击力增加230%,穿透2个目标,30%冰冻比率" }, - 2503: { uuid: 2503, name: "虚空穿心剑(Lv5)", quality: 4, info: "攻击力增加290%,穿透3个目标,40%冰冻比率" }, -}; - -// 测试函数 -function testEquipmentConfig() { - console.log("剑类武器总数:", Object.keys(EquipInfo).length); - - // 按等级分组显示 - for (let level = 1; level <= 5; level++) { - console.log(`\n=== 等级${level} 剑类武器 ===`); - const levelPrefix = level * 100 + 2000; - - for (let quality = 1; quality <= 3; quality++) { - const uuid = levelPrefix + quality; - const equip = EquipInfo[uuid]; - if (equip) { - const qualityName = quality === 1 ? "绿" : quality === 2 ? "蓝" : "紫"; - console.log(`${qualityName}色: ${equip.name} - ${equip.info}`); - } - } - } - - // 验证CD修正 - console.log("\n=== CD修正验证 ==="); - console.log("所有剑类武器CD修正: -20%"); - console.log("基准CD: 1.5秒"); - console.log("实际CD: 1.5 × (1 - 0.2) = 1.2秒"); - - // 验证穿刺效果 - console.log("\n=== 穿刺效果验证 ==="); - console.log("穿刺短剑系列: 穿透1个目标"); - console.log("寒锋长剑系列: 穿透2个目标"); - console.log("虚空穿心剑系列: 穿透3个目标"); - - // 验证冰冻比率 - console.log("\n=== 冰冻比率验证 ==="); - console.log("穿刺短剑系列: 无冰冻效果"); - console.log("寒锋长剑系列: 10%-30%冰冻比率"); - console.log("虚空穿心剑系列: 20%-40%冰冻比率"); -} - -// 运行测试 -testEquipmentConfig(); \ No newline at end of file