fix(游戏平衡): 调整怪物生成参数和预算计算
- 修改MonSet中的坐标参数以优化怪物生成位置 - 降低基础预算值防止队列积压 - 增加怪物生成间隔时间并移除暂停机制
This commit is contained in:
@@ -66,12 +66,12 @@ export const MonSet = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export enum MonStart {
|
export enum MonStart {
|
||||||
SLINE_1=130, //上线y
|
SLINE_1=140, //上线y
|
||||||
SLINE_2=110, //下线y
|
SLINE_2=100, //下线y
|
||||||
SLINE_3=150, //下线y
|
SLINE_3=180, //下线y
|
||||||
SLINE_4=90, //y起始点
|
SLINE_4=60, //y起始点
|
||||||
START_X=240, //x起始点
|
START_X=360, //x起始点
|
||||||
START_I=60, //x轴间隔
|
START_I=90, //x轴间隔
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum HeroConf{
|
export enum HeroConf{
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ export class MissionMonCompComp extends CCComp {
|
|||||||
buffs: BuffConf[]
|
buffs: BuffConf[]
|
||||||
}> = [];
|
}> = [];
|
||||||
private isSpawning: boolean = false;// 是否正在生成怪物
|
private isSpawning: boolean = false;// 是否正在生成怪物
|
||||||
private spawnInterval: number = 0.1; // 每个怪物生成间隔时间
|
private spawnInterval: number = 0.6; // 每个怪物生成间隔时间(减半速度)
|
||||||
private spawnTimer: number = 0; // 生成计时器
|
private spawnTimer: number = 0; // 生成计时器
|
||||||
private spawnCount: number = 0; // 召唤计数器
|
private spawnCount: number = 0; // 召唤计数器
|
||||||
private pauseInterval: number = 5.0; // 暂停间隔时间(5秒)
|
// private pauseInterval: number = 5.0; // 暂停间隔时间(5秒)
|
||||||
private isPausing: boolean = false; // 是否正在暂停
|
// private isPausing: boolean = false; // 是否正在暂停
|
||||||
private eventProcessed: boolean = false; // 事件是否已处理
|
private eventProcessed: boolean = false; // 事件是否已处理
|
||||||
/** 全局生成顺序计数器,用于层级管理 */
|
/** 全局生成顺序计数器,用于层级管理 */
|
||||||
private globalSpawnOrder: number = 0;
|
private globalSpawnOrder: number = 0;
|
||||||
@@ -97,29 +97,10 @@ export class MissionMonCompComp extends CCComp {
|
|||||||
if (this.MonQueue.length > 0 && !this.isSpawning) {
|
if (this.MonQueue.length > 0 && !this.isSpawning) {
|
||||||
this.spawnTimer += dt;
|
this.spawnTimer += dt;
|
||||||
|
|
||||||
// 检查是否需要暂停(每召唤5次后暂停5秒)
|
|
||||||
if (this.isPausing) {
|
|
||||||
if (this.spawnTimer >= this.pauseInterval) {
|
|
||||||
// 暂停结束,重置状态
|
|
||||||
this.isPausing = false;
|
|
||||||
this.spawnCount = 0;
|
|
||||||
this.spawnTimer = 0;
|
|
||||||
// console.log("[MissionMonComp]: 暂停结束,继续召唤怪物");
|
|
||||||
}
|
|
||||||
return; // 暂停期间不召唤怪物
|
|
||||||
}
|
|
||||||
|
|
||||||
// 正常召唤间隔
|
// 正常召唤间隔
|
||||||
if (this.spawnTimer >= this.spawnInterval) {
|
if (this.spawnTimer >= this.spawnInterval) {
|
||||||
this.spawnNextMonster();
|
this.spawnNextMonster();
|
||||||
this.spawnTimer = 0;
|
this.spawnTimer = 0;
|
||||||
|
|
||||||
// 检查是否需要进入暂停状态
|
|
||||||
if (this.spawnCount >= 5) {
|
|
||||||
this.isPausing = true;
|
|
||||||
this.spawnTimer = 0; // 重置计时器用于暂停计时
|
|
||||||
// console.log("[MissionMonComp]: 已召唤5只怪物,开始暂停5秒");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -127,7 +108,7 @@ export class MissionMonCompComp extends CCComp {
|
|||||||
do_mon_wave(){
|
do_mon_wave(){
|
||||||
// 重置召唤相关状态
|
// 重置召唤相关状态
|
||||||
this.spawnCount = 0;
|
this.spawnCount = 0;
|
||||||
this.isPausing = false;
|
// this.isPausing = false;
|
||||||
this.spawnTimer = 0;
|
this.spawnTimer = 0;
|
||||||
this.eventProcessed = false;
|
this.eventProcessed = false;
|
||||||
|
|
||||||
|
|||||||
@@ -256,7 +256,8 @@ function getSpawnWeights(timeInSeconds: number): SpawnWeight[] {
|
|||||||
export function calculateBudget(timeInSeconds: number, heroHpRatio: number = 1.0): number {
|
export function calculateBudget(timeInSeconds: number, heroHpRatio: number = 1.0): number {
|
||||||
// 基础预算:每秒产生的点数
|
// 基础预算:每秒产生的点数
|
||||||
// 假设1分钟时为20点,公式: Budget = Base * (1 + 60/60 * 0.2) = Base * 1.2 = 20 => Base ≈ 16
|
// 假设1分钟时为20点,公式: Budget = Base * (1 + 60/60 * 0.2) = Base * 1.2 = 20 => Base ≈ 16
|
||||||
const Base_Budget = 16;
|
// 修改:降低基础预算,避免队列积压。每秒 1.5 点左右(减半)。
|
||||||
|
const Base_Budget = 1.5;
|
||||||
|
|
||||||
// 时间因子:随时间增加难度
|
// 时间因子:随时间增加难度
|
||||||
const timeFactor = 1 + (timeInSeconds / 60) * 0.2;
|
const timeFactor = 1 + (timeInSeconds / 60) * 0.2;
|
||||||
|
|||||||
Reference in New Issue
Block a user