品质统一在boxset设定
This commit is contained in:
@@ -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);
|
||||
@@ -62,3 +62,9 @@ export enum HeroConSet{
|
||||
INFO=0,
|
||||
SELECT=1,
|
||||
}
|
||||
export enum QualitySet{
|
||||
GREEN=0,
|
||||
BLUE=1,
|
||||
PURPLE=2,
|
||||
ORANGE=3,
|
||||
}
|
||||
|
||||
@@ -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},
|
||||
}
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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:"解锁传说英雄 也可以直接兑换金币", },
|
||||
}
|
||||
|
||||
|
||||
@@ -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 },
|
||||
];
|
||||
|
||||
// 强化选项接口定义
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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%几率击退敌人"
|
||||
|
||||
@@ -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点
|
||||
}
|
||||
};
|
||||
@@ -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:"精英怪物-战士型"},
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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 [];
|
||||
|
||||
@@ -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}`
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
Reference in New Issue
Block a user