品质统一在boxset设定

This commit is contained in:
2025-08-18 21:03:47 +08:00
parent 3884b35829
commit 9e1459973c
18 changed files with 368 additions and 377 deletions

View File

@@ -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,12 +181,17 @@ 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<boolean> {
async spendGameProperty(property: string | Record<string, number>, value: any = undefined, autoSave: boolean = true): Promise<boolean> {
// 单字段扣除
if (typeof property === 'string') {
const currentValue = this.data[property] || 0;
if (currentValue < value) {
console.warn(`[SMC]: ${property} 不足,当前: ${currentValue}, 需要: ${value}`);
@@ -206,6 +204,33 @@ export class SingletonModuleComp extends ecs.Comp {
return true;
}
// 多字段扣除(原子性:全部满足才扣)
const deductions = property as Record<string, number>;
// 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;
}
}
export var smc: SingletonModuleComp = ecs.getSingleton(SingletonModuleComp);

View File

@@ -62,3 +62,9 @@ export enum HeroConSet{
INFO=0,
SELECT=1,
}
export enum QualitySet{
GREEN=0,
BLUE=1,
PURPLE=2,
ORANGE=3,
}

View File

@@ -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},
}

View File

@@ -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: [

View File

@@ -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:"解锁传说英雄 也可以直接兑换金币", },
}

View File

@@ -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 },
];
// 强化选项接口定义

View File

@@ -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));
}

View File

@@ -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<number, SkillConfig> = {
// ========== 基础攻击 ========== 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<number, SkillConfig> = {
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%几率击退敌人"

View File

@@ -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点
}
};

View File

@@ -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:"精英怪物-战士型"},

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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)
}

View File

@@ -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 [];

View File

@@ -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,6 +179,8 @@ async function spendDataField(db, openid, field, amount) {
};
}
// 处理单个字段的情况
if (typeof field === 'string') {
if (typeof amount !== 'number' || amount < 0) {
return {
code: -3,
@@ -194,11 +197,79 @@ async function spendDataField(db, openid, field, amount) {
}
return await addDataField(db, openid, field, -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 {
code: -3,
msg: "参数格式错误"
};
} catch (error) {
console.error(`消耗 ${field} 错误:`, error);
console.error(`消耗资源错误:`, error);
return {
code: -5,
msg: `消耗 ${field} 错误: ${error.message}`
msg: `消耗资源错误: ${error.message}`
};
}
}

View File

@@ -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;

View File

@@ -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();