装备添加

This commit is contained in:
2025-06-08 23:16:40 +08:00
parent 63f4d1067e
commit 094b55f349
50 changed files with 20810 additions and 62152 deletions

View File

@@ -1,32 +1,122 @@
/*
CardList type: 1:精灵 2:技能 3:装备
CardList type: 1:伙伴 2:技能 3:装备
*/
export const CardList={
1:[
{uuid:9001,type:1},{uuid:9002,type:1},{uuid:9011,type:1},{uuid:9021,type:1},{uuid:9031,type:1},{uuid:9041,type:1}
// {uuid:9007,type:1},{uuid:9008,type:1},{uuid:9009,type:1},{uuid:9010,type:1},{uuid:9011,type:1},{uuid:9012,type:1},
],
2:[
{uuid:9001,type:1},{uuid:9002,type:1},{uuid:9011,type:1},{uuid:9021,type:1},{uuid:9031,type:1},{uuid:9041,type:1}
],
3:[
{uuid:9001,type:1},{uuid:9002,type:1},{uuid:9011,type:1},{uuid:9021,type:1},{uuid:9031,type:1},{uuid:9041,type:1}
],
4:[
{uuid:9001,type:1},{uuid:9002,type:1},{uuid:9011,type:1},{uuid:9021,type:1},{uuid:9031,type:1},{uuid:9041,type:1}
],
5:[
{uuid:1001,type:2},{uuid:1002,type:2},{uuid:4011,type:2},{uuid:4012,type:2},
{uuid:6001,type:3},{uuid:6004,type:3},{uuid:6101,type:3},{uuid:6002,type:3},{uuid:6003,type:3},{uuid:6005,type:3},{uuid:6006,type:3},
{uuid:6102,type:3},{uuid:6103,type:3}, {uuid:6210,type:3},{uuid:6213,type:3},{uuid:6216,type:3},{uuid:6211,type:3},{uuid:6212,type:3},
{uuid:6214,type:3},{uuid:6215,type:3},{uuid:6217,type:3},{uuid:6218,type:3},
// {uuid:9007,type:1},{uuid:9008,type:1},{uuid:9009,type:1},{uuid:9010,type:1},{uuid:9011,type:1},{uuid:9012,type:1},
],
6:[
{uuid:1001,type:2},{uuid:1002,type:2},{uuid:4011,type:2},{uuid:4012,type:2},
{uuid:6001,type:3},{uuid:6004,type:3},{uuid:6101,type:3},{uuid:6002,type:3},{uuid:6003,type:3},{uuid:6005,type:3},{uuid:6006,type:3},
{uuid:6102,type:3},{uuid:6103,type:3}, {uuid:6210,type:3},{uuid:6213,type:3},{uuid:6216,type:3},{uuid:6211,type:3},{uuid:6212,type:3},
{uuid:6214,type:3},{uuid:6215,type:3},{uuid:6217,type:3},{uuid:6218,type:3},
],
import { HeroList } from "./heroSet"
import { HeroSkillList } from "./SkillSet"
import { equip_list } from "./Equips"
//1:伙伴 2:技能 3:装备的出现概率配置
export const CardProbability={
1:0.5,
2:0.3,
3:0.2,
}
export const cardType={
HERO:1,
SKILL:2,
EQUIP:3,
}
// 获取随机卡牌UUID
export function getRandomCardUUID(
heroRate: number = 1, // 伙伴出现概率修正系数
skillRate: number = 1, // 技能出现概率修正系数
equipRate: number = 1 // 装备出现概率修正系数
): { type: number; uuid: number } {
// 计算修正后的概率
const adjustedProbability = {
1: CardProbability[1] * heroRate,
2: CardProbability[2] * skillRate,
3: CardProbability[3] * equipRate
};
// 计算总概率
const totalProbability = Object.values(adjustedProbability).reduce((sum, prob) => sum + prob, 0);
// 生成0-1之间的随机数
const random = Math.random() * totalProbability;
let cumulativeProbability = 0;
// 根据修正后的概率确定卡牌类型
let cardType = 1; // 默认类型为伙伴
for (const [type, probability] of Object.entries(adjustedProbability)) {
cumulativeProbability += probability;
if (random <= cumulativeProbability) {
cardType = parseInt(type);
break;
}
}
// 根据类型获取对应的卡牌列表
let cardList: number[] = [];
switch (cardType) {
case 1: // 伙伴
cardList = HeroList;
break;
case 2: // 技能
cardList = HeroSkillList;
break;
case 3: // 装备
cardList = equip_list;
break;
}
// 从对应类型的卡牌列表中随机选择一个
const randomIndex = Math.floor(Math.random() * cardList.length);
return {type:cardType,uuid:cardList[randomIndex]};
}
// 获取指定类型的随机卡牌UUID
export function getRandomCardUUIDByType(type: number): number {
let cardList: number[] = [];
switch (type) {
case 1: // 伙伴
cardList = HeroList;
break;
case 2: // 技能
cardList = HeroSkillList;
break;
case 3: // 装备
cardList = equip_list;
break;
default:
throw new Error(`Invalid card type: ${type}`);
}
const randomIndex = Math.floor(Math.random() * cardList.length);
return cardList[randomIndex];
}
// 获取多个不重复的指定类型卡牌
export function getRandomCardsByType(
type: number,
count: number
): { type: number; uuid: number }[] {
let cardList: number[] = [];
switch (type) {
case cardType.HERO:
cardList = HeroList;
break;
case cardType.SKILL:
cardList = HeroSkillList; // 直接使用HeroSkillList数组
break;
case cardType.EQUIP:
cardList = equip_list;
break;
default:
throw new Error(`Invalid card type: ${type}`);
}
// 确保请求数量不超过可用卡牌数量
count = Math.min(count, cardList.length);
// 打乱数组顺序
const shuffled = [...cardList].sort(() => Math.random() - 0.5);
// 返回指定数量的卡牌
return shuffled.slice(0, count).map(uuid => ({
type,
uuid
}));
}

View File

@@ -1,3 +1,5 @@
import { app } from "electron";
// 装备类型
export enum EquipType {
WEAPON = 1, // 武器
@@ -5,225 +7,90 @@ export enum EquipType {
ACCESSORY = 3 // 饰品
}
// 基础效果类型
export enum EffectType {
// 基础属性加成
export enum EquipAttr {
ATK = 1, // 攻击力
HP = 3, // 生命值
ATK_COUNT = 4, // 攻击个数
HP = 2, // 生命值
ATK_COUNT = 3, // 攻击个数
ATK_SPEED = 4, // 攻击速度
CRIT_RATE = 5, // 暴击率
CRIT_DMG = 6, // 暴击伤害
SKILL_DMG = 7, // 技能伤害提升
SKILL_CD = 8, // 技能冷却缩减
RANGE = 9 // 攻击范围
SKILL_DMG = 5, // 技能伤害提升
SKILL_SPEED = 6, // 技能冷却缩减
}
//装备属性起效对象
export enum EquipAttrTarget {
ALL = 0, // 所有
SELF = 1, // 自身
FRIEND = 2, // 伙伴
ENEMY = 3, // 敌人
}
//buff debuff起效技能类型
export enum SkillTarget {
ALL = 0,
FIRE = 1,
WATER = 2,
EARTH = 3,
WIND = 4,
LIGHT = 5,
DARK = 6,
}
// 套装ID
export enum SuitType {
DRAGON = 1, // 龙之套装
EAGLE = 2, // 鹰眼套装
FROST = 3, // 寒冰套装
export enum EquipQuality {
WHITE = 1,
GREEN = 2,
BLUE = 3,
PURPLE = 4,
ORANGE = 5,
RED = 6,
}
// 基础效果接口
export interface Effect {
type: EffectType;
value: number; // 具体数
isPercent?: boolean;// 是否为百分比加成
// 装备属性加成接口
export interface EquipAttribute {
type: EquipAttr; // 属性类型
value: number; // 属性
target?: EquipAttrTarget; // 属性作用目标(可选)
}
// 技能效果接口
export interface SkillEffect {
skillId: number; // 技能ID
effects: {
dmgBonus?: number; // 伤害提升
cdReduce?: number; // 冷却缩减
rangeBonus?: number; // 范围提升
special?: string; // 特殊效果描述
}
// 装备基础接口
export interface EquipData {
uuid: number; // 装备唯一ID
name: string; // 装备名称
type: EquipType; // 装备类型
quality: EquipQuality; // 装备品质
attributes: EquipAttribute[]; // 属性加成列表
skills: number[]; // 技能列表
buffs: number[]; // buff列表
debuffs: number[]; // debuff列表
range?: number; // 攻击范围(可选)
}
// 套装效果接口
export interface SuitEffect {
suitType: SuitType;
require: number; // 需要件数
effects: Effect[];
skillEffects?: SkillEffect[];
}
// 装备配置接口
export interface EquipConfig {
id: number;
name: string;
type: EquipType;
quality: number; // 1-5星
suitType: SuitType;
effects: Effect[];
skillEffects?: SkillEffect[];
description: string;
}
// 套装效果配置
export const SuitEffects: { [key in SuitType]: SuitEffect[] } = {
[SuitType.DRAGON]: [
{
suitType: SuitType.DRAGON,
require: 2,
effects: [
{ type: EffectType.ATK, value: 15, isPercent: true }
]
},
{
suitType: SuitType.DRAGON,
require: 4,
effects: [
{ type: EffectType.ATK, value: 25, isPercent: true },
{ type: EffectType.SKILL_DMG, value: 20, isPercent: true }
],
skillEffects: [
{
skillId: 1001, // 龙息技能
effects: {
dmgBonus: 30,
rangeBonus: 20,
special: "技能额外造成燃烧效果"
}
}
]
}
],
[SuitType.EAGLE]: [
{
suitType: SuitType.EAGLE,
require: 2,
effects: [
{ type: EffectType.CRIT_RATE, value: 15, isPercent: true }
]
},
{
suitType: SuitType.EAGLE,
require: 4,
effects: [
{ type: EffectType.CRIT_RATE, value: 25, isPercent: true },
{ type: EffectType.CRIT_DMG, value: 50, isPercent: true }
],
skillEffects: [
{
skillId: 1002, // 精准射击
effects: {
cdReduce: 30,
special: "必定暴击且无视目标50%防御"
}
}
]
}
],
[SuitType.FROST]: [
{
suitType: SuitType.FROST,
require: 2,
effects: [
{ type: EffectType.ATK_SPEED, value: 10, isPercent: true }
]
},
{
suitType: SuitType.FROST,
require: 4,
effects: [
{ type: EffectType.ATK_SPEED, value: 20, isPercent: true },
{ type: EffectType.SKILL_CD, value: 15, isPercent: true }
],
skillEffects: [
{
skillId: 1003, // 冰霜新星
effects: {
rangeBonus: 30,
special: "技能额外造成冰冻效果"
}
}
]
}
]
}
// 装备配置数据
export const Equips: { [key: number]: EquipConfig } = {
// 龙之套装
1001: {
id: 1001,
name: "龙王之刃",
type: EquipType.WEAPON,
quality: 5,
suitType: SuitType.DRAGON,
effects: [
{ type: EffectType.ATK, value: 100 },
{ type: EffectType.SKILL_DMG, value: 15, isPercent: true }
],
skillEffects: [
{
skillId: 1001,
effects: {
dmgBonus: 20
}
}
],
description: "传说中由远古巨龙鳞片打造的神器"
},
1002: {
id: 1002,
name: "龙鳞胸甲",
type: EquipType.ARMOR,
quality: 5,
suitType: SuitType.DRAGON,
effects: [
{ type: EffectType.HP, value: 500 },
],
description: "蕴含龙之力量的铠甲"
},
// 鹰眼套装
export const equip_list=[2001,2002]
export const EquipInfo: { [key: number]: EquipData } = {
2001: {
id: 2001,
name: "鹰眼瞄准镜",
type: EquipType.ACCESSORY,
quality: 5,
suitType: SuitType.EAGLE,
effects: [
{ type: EffectType.CRIT_RATE, value: 20, isPercent: true },
{ type: EffectType.RANGE, value: 15, isPercent: true }
],
skillEffects: [
{
skillId: 1002,
effects: {
dmgBonus: 15
}
}
],
description: "能够看穿敌人弱点的神奇瞄准镜"
},
// 寒冰套装
3001: {
id: 3001,
name: "永冻之杖",
uuid: 2001,
name: "新手剑",
type: EquipType.WEAPON,
quality: 5,
suitType: SuitType.FROST,
effects: [
{ type: EffectType.ATK, value: 80 },
{ type: EffectType.SKILL_CD, value: 10, isPercent: true }
quality: EquipQuality.WHITE,
attributes: [
{ type: EquipAttr.ATK, value: 10, target: EquipAttrTarget.SELF },
{ type: EquipAttr.ATK_SPEED, value: 0.1, target: EquipAttrTarget.SELF }
],
skillEffects: [
{
skillId: 1003,
effects: {
dmgBonus: 25,
special: "技能附带20%减速效果"
}
}
skills: [],
buffs: [],
debuffs: [],
range: 1
},
2002: {
uuid: 2002,
name: "守护者铠甲",
type: EquipType.ARMOR,
quality: EquipQuality.GREEN,
attributes: [
{ type: EquipAttr.HP, value: 100, target: EquipAttrTarget.SELF },
{ type: EquipAttr.SKILL_DMG, value: 0.05, target: EquipAttrTarget.SELF }
],
description: "蕴含着永恒冰霜之力的法杖"
skills: [],
buffs: [],
debuffs: [],
}
// ... 可以继续添加更多装备
}

View File

@@ -35,5 +35,9 @@ export enum GameEvent {
MissionEnd = "MissionEnd",
MissionComplete = "MissionComplete",//战斗结算完成
CastHeroSkill = "CastHeroSkill",
EquipChange = "EquipChange",
EquipAdd = "EquipAdd",
EquipRemove = "EquipRemove",
EquipSelect = "EquipSelect",
EquipSelectEnd = "EquipSelectEnd",
}

View File

@@ -54,6 +54,25 @@ export enum endType {
collision = 3,
countEnd = 4,
}
export enum Debuff {
STUN = 1, //眩晕
SILENCE = 2, //沉默
FROST = 3, //冰冻
POISON = 4, //中毒
BURN = 5, //燃烧
BLEED = 6, //流血
SLOW = 7, //减速
SPEED = 8, //加速
}
export enum Buff {
SHIELD = 1, //护盾
HEAL = 2, //治疗
DOUBLE_ATK = 3, //双倍攻击
THREE_ATK = 4, //三倍攻击
}
/*
path: 图片地址
[debuff] : 0:无12灼烧3眩晕4降低攻击5降低hp6降低防御7吸血8击退