172 lines
4.5 KiB
TypeScript
172 lines
4.5 KiB
TypeScript
/**
|
||
* 肉鸽模式配置脚本 - 增强版
|
||
*
|
||
* 功能说明:
|
||
* - 提供基础的刷怪配置:刷什么怪,刷多少怪
|
||
* - 支持程序化关卡生成逻辑,每一关的怪物组合、数量和强度应随关卡进度递增而变化
|
||
* - 支持随机事件系统
|
||
*
|
||
* @author 游戏开发团队
|
||
* @version 2.0 增强版
|
||
* @date 2025-10-19
|
||
*/
|
||
|
||
import { isModuleNamespaceObject } from "util/types";
|
||
import { getMonList, HeroInfo } from "../common/config/heroSet";
|
||
import { NATIVE } from "cc/env";
|
||
import { BuffConf } from "../common/config/SkillSet";
|
||
|
||
|
||
// 精英怪物配置表
|
||
export const EliteMonsterList = [ 5201, 5202, 5203,
|
||
// 可以添加更多精英怪物UUID
|
||
];
|
||
// Boss怪物配置表
|
||
export const BossMonsterList = [ 5201, 5202,
|
||
// 可以添加更多Boss怪物UUID
|
||
];
|
||
export enum IMons{
|
||
ORC=1,
|
||
NATIVE=2,
|
||
ELF=3,
|
||
}
|
||
export const Mons={
|
||
[IMons.ORC]:[5201,5202],
|
||
[IMons.NATIVE]:[5201,5202],
|
||
[IMons.ELF]:[5201,5202]
|
||
}
|
||
|
||
/**
|
||
* 怪物类型枚举
|
||
*/
|
||
export enum MonsterType {
|
||
NORMAL = 0, // 普通怪物
|
||
ELITE = 1, // 精英怪物
|
||
BOSS = 2 // Boss怪物
|
||
}
|
||
|
||
/**
|
||
* 关卡类型枚举
|
||
*/
|
||
export const EliteStage:any =(wave:number) => {
|
||
if(wave%5 == 0) return true
|
||
return false
|
||
}
|
||
export const BossStage:any =(wave:number) => {
|
||
if(wave%10 == 0) return true
|
||
return false
|
||
}
|
||
/**
|
||
* 随机事件类型枚举
|
||
*/
|
||
export enum EventType {
|
||
TREASURE = 1, // 额外奖励
|
||
TRAP =2, // 陷阱伤害
|
||
BUFF = 3, // 临时增益效果
|
||
DEBUFF = 4 // 临时减益效果
|
||
}
|
||
|
||
/**
|
||
* 关卡生怪物相关配置
|
||
*/
|
||
export const StageRule = {
|
||
MonsNum: 5, // 关卡中默认怪物数量
|
||
/** 额外怪物出现概率(在固定5个怪物基础上,有概率多刷1个) */
|
||
extraMonsterRate: 0.3, // 30%概率出现第6个怪物
|
||
|
||
/** 事件怪物出现概率(5个怪物中有1个替换为事件怪) */
|
||
eventMonsterRate: 0.25, // 25%概率出现事件怪物
|
||
|
||
/** 特殊属性怪物出现概率(5个怪物中有怪物携带特殊属性) */
|
||
specialAttributeRate: 0.4, // 40%概率出现特殊属性怪物
|
||
|
||
/** 特殊属性怪物数量范围 */
|
||
specialAttributeCount: { min: 1, max: 2 } // 出现时,1-2个怪物会有特殊属性
|
||
};
|
||
|
||
interface IMonsConfig {
|
||
/** 怪物波次 */
|
||
uuid: number; // 怪物ID
|
||
/** 怪物数量 */
|
||
buff: BuffConf[]; //附加属性
|
||
}
|
||
|
||
|
||
export enum MonAttrSet{
|
||
HP_MAX=1.1,
|
||
AP=1.05,
|
||
MP=1.1,
|
||
DEF=1.05,
|
||
MDEF=1.05,
|
||
MAP=1.05,
|
||
}
|
||
|
||
export const getMonAttr=(lv:number,uuid:number)=>{
|
||
let mon=HeroInfo[uuid]
|
||
let hp=mon.hp*lv*MonAttrSet.HP_MAX
|
||
let mp=mon.mp*lv*MonAttrSet.MP
|
||
let ap=mon.ap*lv*MonAttrSet.AP
|
||
let map=mon.map*lv*MonAttrSet.MAP
|
||
let def=mon.def*lv*MonAttrSet.DEF
|
||
let mdef=mon.mdef*lv*MonAttrSet.MDEF
|
||
return {hp:hp,mp:mp,ap:ap,map:map,def:def,mdef:mdef}
|
||
}
|
||
|
||
|
||
/**
|
||
* 特殊属性类型枚举
|
||
*/
|
||
export enum SpecialAttribute {
|
||
NONE = 0, // 无特殊属性
|
||
FAST = 1, // 快速移动
|
||
STRONG = 2, // 强力攻击
|
||
TANKY = 3, // 高生命值
|
||
REGENERATE = 4, // 生命恢复
|
||
SHIELD = 5, // 护盾
|
||
EXPLOSIVE = 6, // 爆炸伤害(死亡时)
|
||
VAMPIRE = 7 // 吸血
|
||
}
|
||
|
||
/**
|
||
* 特殊属性配置
|
||
*/
|
||
export const SpecialAttributeConfig = {
|
||
[SpecialAttribute.FAST]: {
|
||
name: "疾行",
|
||
description: "移动速度提升50%",
|
||
effect: { speedMultiplier: 1.5 }
|
||
},
|
||
[SpecialAttribute.STRONG]: {
|
||
name: "强力",
|
||
description: "攻击力提升30%",
|
||
effect: { attackMultiplier: 1.3 }
|
||
},
|
||
[SpecialAttribute.TANKY]: {
|
||
name: "坦克",
|
||
description: "生命值提升50%",
|
||
effect: { hpMultiplier: 1.5 }
|
||
},
|
||
[SpecialAttribute.REGENERATE]: {
|
||
name: "再生",
|
||
description: "每秒恢复最大生命值2%",
|
||
effect: { regenRate: 0.02 }
|
||
},
|
||
[SpecialAttribute.SHIELD]: {
|
||
name: "护盾",
|
||
description: "拥有相当于30%最大生命值的护盾",
|
||
effect: { shieldRatio: 0.3 }
|
||
},
|
||
[SpecialAttribute.EXPLOSIVE]: {
|
||
name: "爆炸",
|
||
description: "死亡时对周围造成范围伤害",
|
||
effect: { explosionDamageRatio: 0.5 }
|
||
},
|
||
[SpecialAttribute.VAMPIRE]: {
|
||
name: "吸血",
|
||
description: "攻击时恢复造成伤害20%的生命值",
|
||
effect: { vampireRatio: 0.2 }
|
||
}
|
||
};
|
||
|
||
|