From 42d1ca5bd5c82b64e5c242d1171db44968d21e7f Mon Sep 17 00:00:00 2001 From: walkpan Date: Thu, 23 Apr 2026 22:27:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(gameplay):=20=E8=B0=83=E6=95=B4=E5=A4=87?= =?UTF-8?q?=E6=88=98=E6=9C=9F=E7=BB=8F=E6=B5=8E=E5=92=8C=E5=8D=A1=E7=89=8C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将备战期金币奖励改为固定25(从第2波开始),移除随波次增长逻辑 - 提高初始金币至11,降低英雄最高等级至1 - 统一卡牌成本为10,简化经济系统 --- assets/script/game/common/config/CardSet.ts | 50 ++++++++++----------- assets/script/game/map/MissionComp.ts | 24 +++++----- 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/assets/script/game/common/config/CardSet.ts b/assets/script/game/common/config/CardSet.ts index a20f111b..a840bb0e 100644 --- a/assets/script/game/common/config/CardSet.ts +++ b/assets/script/game/common/config/CardSet.ts @@ -51,7 +51,7 @@ export const CardsUpSet: Record = { } /**初始coin数 */ -export const CardInitCoins = 4 +export const CardInitCoins = 11 /** 卡池升级每波减免金额 */ export const CARD_POOL_UPGRADE_DISCOUNT_PER_WAVE = 10 /** 卡池默认初始等级 */ @@ -59,39 +59,39 @@ export const CARD_POOL_INIT_LEVEL = CardLV.LV1 /** 卡池等级上限 */ export const CARD_POOL_MAX_LEVEL = CardLV.LV3 /** 英雄最高等级限制 */ -export const CARD_HERO_MAX_LEVEL = 2 +export const CARD_HERO_MAX_LEVEL = 1 /** 基础卡池(英雄、技能、功能) */ export const CardPoolList: CardConfig[] = [ - { uuid: 5001, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5101, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5201, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5301, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5001, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5101, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5201, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5301, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5003, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5102, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5302, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5003, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5102, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5302, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 1, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5002, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5103, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5202, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5002, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5103, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5202, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5004, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5104, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5303, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5004, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5104, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5303, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 2, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5105, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 3, kind: CKind.Hero, hero_lv: 1 }, - { uuid: 5304, type: CardType.Hero, cost: 3, weight: 25, pool_lv: 3, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5105, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 3, kind: CKind.Hero, hero_lv: 1 }, + { uuid: 5304, type: CardType.Hero, cost: 10, weight: 25, pool_lv: 3, kind: CKind.Hero, hero_lv: 1 }, // 技能卡牌 (以增益/辅助为主,因为在备战期没有敌人) - { uuid: 6401, type: CardType.Skill, cost: 2, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "单体攻击", info: "随机1个友方+5攻击", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6402, type: CardType.Skill, cost: 2, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "单体生命", info: "随机1个友方+20最大生命值", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6403, type: CardType.Skill, cost: 3, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "单体全能", info: "随机1个友方+2攻击,+10最大生命值", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6404, type: CardType.Skill, cost: 4, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "群体攻击", info: "随机3个友方+2攻击", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6405, type: CardType.Skill, cost: 4, weight: 20, pool_lv: 2, kind: CKind.Skill, card_lv: 1, name: "群体生命", info: "随机3个友方+10最大生命值", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6406, type: CardType.Skill, cost: 5, weight: 20, pool_lv: 2, kind: CKind.Skill, card_lv: 1, name: "群体全能", info: "为随机3个友方单位增加攻击力和生命上限", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6304, type: CardType.Skill, cost: 3, weight: 20, pool_lv: 3, kind: CKind.Skill, card_lv: 1, name: "神圣治疗", info: "恢复场上随机3个友方单位的生命值", is_inst: true, t_times: 1, t_inv: 0 }, - { uuid: 6305, type: CardType.Skill, cost: 4, weight: 20, pool_lv: 3, kind: CKind.Skill, card_lv: 1, name: "群体护盾", info: "随机3个友方获得2次伤害免疫", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6401, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "单体攻击", info: "随机1个友方+5攻击", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6402, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "单体生命", info: "随机1个友方+20最大生命值", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6403, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "单体全能", info: "随机1个友方+2攻击,+10最大生命值", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6404, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 1, kind: CKind.Skill, card_lv: 1, name: "群体攻击", info: "随机3个友方+2攻击", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6405, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 2, kind: CKind.Skill, card_lv: 1, name: "群体生命", info: "随机3个友方+10最大生命值", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6406, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 2, kind: CKind.Skill, card_lv: 1, name: "群体全能", info: "为随机3个友方单位增加攻击力和生命上限", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6304, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 3, kind: CKind.Skill, card_lv: 1, name: "神圣治疗", info: "恢复场上随机3个友方单位的生命值", is_inst: true, t_times: 1, t_inv: 0 }, + { uuid: 6305, type: CardType.Skill, cost: 10, weight: 20, pool_lv: 3, kind: CKind.Skill, card_lv: 1, name: "群体护盾", info: "随机3个友方获得2次伤害免疫", is_inst: true, t_times: 1, t_inv: 0 }, // { uuid: 7101, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card }, // { uuid: 7102, type: CardType.SpecialRefresh, cost: 1, weight: 12, pool_lv: 1 ,kind: CKind.Card }, diff --git a/assets/script/game/map/MissionComp.ts b/assets/script/game/map/MissionComp.ts index 23b3bbe1..7c41936a 100644 --- a/assets/script/game/map/MissionComp.ts +++ b/assets/script/game/map/MissionComp.ts @@ -83,12 +83,12 @@ export class MissionComp extends CCComp { private maxMonsterCount: number = 5; /** 怪物数量恢复阈值(降至此值以下恢复刷怪) */ private resumeMonsterCount: number = 3; - /** 新一波金币奖励基础值 */ - private prepareBaseCoinReward: number = 100; - /** 每一波金币增长值 */ - private prepareCoinWaveGrow: number = 1; - /** 金币奖励上限 */ - private prepareCoinRewardCap: number = 500; + /** 新一波金币奖励基础值(现已固定,不再随波次增长) */ + private prepareBaseCoinReward: number = 25; + /** 每一波金币增长值(固定收益设为0) */ + private prepareCoinWaveGrow: number = 0; + /** 金币奖励上限(固定收益,此值不再生效) */ + private prepareCoinRewardCap: number = 100; /** 卡池升级波次配置:达到对应波次时,推送卡池升级事件 */ @property({ type: [CCInteger], tooltip: "卡池升级波次配置,例如 [10, 20] 表示第10波升到2级,第20波升到3级" }) cardPoolUpgradeWaves: number[] = [5, 10]; @@ -712,19 +712,17 @@ export class MissionComp extends CCComp { } /** - * 按波数发放金币奖励: - * reward = min(cap, base + (wave - 1) × grow) + * 按波数发放固定金币奖励(外加技能加成)。 + * 第1波不发放(使用初始金币),从第2波起发放。 * 仅在波数首次到达时发放,防止重复。 * * @param wave 当前波数 */ private grantPrepareCoinByWave(wave: number) { - if (wave <= 0) return; + if (wave <= 1) return; if (wave <= this.lastPrepareCoinWave) return; - const base = Math.max(0, Math.floor(this.prepareBaseCoinReward)); - const grow = Math.max(0, Math.floor(this.prepareCoinWaveGrow)); - const cap = Math.max(0, Math.floor(this.prepareCoinRewardCap)); - let reward = Math.min(cap, base + (wave - 1) * grow); + + let reward = Math.max(0, Math.floor(this.prepareBaseCoinReward)); // 增加驻场技能金币收益 const goldBoost = HeroAttrsComp.getFieldSkillTotalValue(FieldSkillType.WaveGold);