装备添加
This commit is contained in:
@@ -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
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@@ -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: [],
|
||||
}
|
||||
// ... 可以继续添加更多装备
|
||||
}
|
||||
|
||||
|
||||
@@ -35,5 +35,9 @@ export enum GameEvent {
|
||||
MissionEnd = "MissionEnd",
|
||||
MissionComplete = "MissionComplete",//战斗结算完成
|
||||
CastHeroSkill = "CastHeroSkill",
|
||||
|
||||
EquipChange = "EquipChange",
|
||||
EquipAdd = "EquipAdd",
|
||||
EquipRemove = "EquipRemove",
|
||||
EquipSelect = "EquipSelect",
|
||||
EquipSelectEnd = "EquipSelectEnd",
|
||||
}
|
||||
@@ -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:无,1:冰,2:灼烧,3:眩晕,4:降低攻击,5:降低hp,6:降低防御,7:吸血,8:击退
|
||||
|
||||
Reference in New Issue
Block a user