refactor: 统一将游戏内的「波次」术语替换为「回合」
本次提交将全项目中所有与「波次」相关的术语、注释、配置描述、UI文本全部替换为「回合」,包括: 1. 技能卡牌、怪物刷新、经济系统的相关注释与变量名 2. 配置表中的波次相关常量与描述文本 3. UI预制体中的波次显示文本 4. 所有相关的文档注释与接口说明 统一术语后,游戏的关卡流程描述将更符合常规肉鸽游戏的表达习惯,避免与「波次」字面含义混淆,提升代码可读性与团队协作一致性。
This commit is contained in:
@@ -88,7 +88,7 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
hero_num: 0,//英雄数量
|
||||
hero_max_num: FightSet.HERO_MAX_NUM,//英雄可召唤上限
|
||||
hero_extend_max_num: FightSet.HERO_MAX_NUM + 1,//英雄可拓展上限
|
||||
wave_time_num: 0,//波次时间
|
||||
wave_time_num: 0,//回合时间
|
||||
in_fight: false,
|
||||
fight_time: 0,//战斗时间
|
||||
level: 1,//关卡等级
|
||||
|
||||
@@ -46,7 +46,7 @@ export enum CardTriggerType {
|
||||
Interval = 2, // 定时循环:战斗中按 t_inv 间隔重复触发
|
||||
Field = 3, // 驻场光环(俗称「装备」):被动生效,由 field 数组驱动,支持单卡多词条
|
||||
FightStart = 4, // 战斗开始时触发
|
||||
FightEnd = 5, // 战斗结束时触发(每波结束)
|
||||
FightEnd = 5, // 战斗结束时触发(每回合结束)
|
||||
HeroDead = 6, // 场上己方英雄死亡时触发
|
||||
HeroCall = 7, // 英雄上场时触发(主角召唤 + 技能召唤 + 复活)
|
||||
}
|
||||
@@ -59,7 +59,7 @@ export interface CardConfig {
|
||||
weight: number
|
||||
kind: CKind
|
||||
card_lv: number // 卡牌等级(驱动 bg_node 颜色:1=green 2=blue 3=purple 4=red 5=yellow)
|
||||
wave?: number // 针对技能卡:仅在指定波次(wave)才能抽到
|
||||
wave?: number // 针对技能卡:仅在指定回合(wave)才能抽到
|
||||
hero_lv?: number
|
||||
base_card_lv?: number
|
||||
|
||||
@@ -71,7 +71,7 @@ export interface CardConfig {
|
||||
is_inst?: boolean // 是否即时起效
|
||||
t_times?: number // 触发次数
|
||||
t_inv?: number // 触发间隔(秒)
|
||||
keep_waves?: number // 维持的波次数(-1表示持续到战斗结束,0或undefined表示仅本波次)
|
||||
keep_waves?: number // 维持的回合数(-1表示持续到战斗结束,0或undefined表示仅本回合)
|
||||
overrides?: SkillOverrides // 技能参数覆写(如自定义伤害ap、buff值、金币数等)
|
||||
field?: number[] // 装备词条数组:驻场光环卡(trigger_type=Field)的属性词条,支持单卡多词条(如 [7002, 7004, 7005] 同时提供攻击/暴击/暴伤)
|
||||
|
||||
@@ -80,7 +80,7 @@ export interface CardConfig {
|
||||
/**
|
||||
* 事件型触发的全局次数上限(仅 FightStart/FightEnd/HeroDead/HeroCall 有效)
|
||||
* 默认 Infinity;达到上限后销毁节点
|
||||
* 注意:与 t_times 语义不同——t_times 控制每波内 Interval 的次数
|
||||
* 注意:与 t_times 语义不同——t_times 控制每回合内 Interval 的次数
|
||||
*/
|
||||
trigger_limit?: number;
|
||||
|
||||
@@ -242,7 +242,7 @@ export const drawCardsByRule = (
|
||||
})
|
||||
}
|
||||
|
||||
// 如果传入了波次并且是技能卡,则根据 wave 过滤
|
||||
// 如果传入了回合并且是技能卡,则根据 wave 过滤
|
||||
if (options.wave !== undefined) {
|
||||
pool = pool.filter(card => {
|
||||
if (card.type === CardType.Skill) {
|
||||
|
||||
@@ -23,9 +23,9 @@ export enum FacSet {
|
||||
MON = 1,
|
||||
}
|
||||
export enum FightSet {
|
||||
WAVE_COIN_BASE = 7, // 波次金币基础奖励
|
||||
WAVE_COIN_GROW = 2, // 波次金币递增值
|
||||
WAVE_COIN_MAX = 17, // 波次金币最大基础奖励
|
||||
WAVE_COIN_BASE = 7, // 回合金币基础奖励
|
||||
WAVE_COIN_GROW = 2, // 回合金币递增值
|
||||
WAVE_COIN_MAX = 17, // 回合金币最大基础奖励
|
||||
CRIT_DAMAGE = 50,//暴击伤害
|
||||
MORE_RC = 10,//更多次数 广告获取的次数
|
||||
HEARTPOS = -320,//基地位置
|
||||
@@ -55,11 +55,11 @@ export enum FightSet {
|
||||
}
|
||||
|
||||
/**
|
||||
* 技能卡牌出现的波次配置(单一数据源)。
|
||||
* 技能卡牌出现的回合配置(单一数据源)。
|
||||
* 数组索引 i 对应卡牌档位 card_lv = i + 1:
|
||||
* - 第 1 个波次 → LV1 档(基础强度)
|
||||
* - 第 2 个波次 → LV2 档(强度 ×2)
|
||||
* - 第 3 个波次 → LV3 档(强度 ×3)
|
||||
* - 第 1 个回合 → LV1 档(基础强度)
|
||||
* - 第 2 个回合 → LV2 档(强度 ×2)
|
||||
* - 第 3 个回合 → LV3 档(强度 ×3)
|
||||
* 需与 CardSet.SkillCardData 的 wave 字段严格对齐,否则抽卡时池子为空。
|
||||
*/
|
||||
export const SKILL_CARD_WAVES: number[] = [1, 5, 8];
|
||||
|
||||
@@ -29,7 +29,7 @@ interface SkillCardRaw {
|
||||
is_inst: boolean;
|
||||
t_times?: number; // 触发次数(未设置时按 is_inst 取默认值:即时=1,定时=3)
|
||||
t_inv?: number;
|
||||
keep_waves?: number; // 维持波次数(默认 0=仅本波次)
|
||||
keep_waves?: number; // 维持回合数(默认 0=仅本回合)
|
||||
trigger_type: CardTriggerType;
|
||||
overrides?: SkillOverrides;
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
||||
RType: RType.fixed, EType: EType.animationEnd, info: "召唤陨石范围攻击敌人,有概率击晕",
|
||||
},
|
||||
|
||||
//============================= ====== 辅助技能 技能卡牌 1 波技能 ====== ==========================
|
||||
//============================= ====== 辅助技能 技能卡牌 1 回合技能 ====== ==========================
|
||||
6301: {
|
||||
uuid: 6301, name: "护盾", sp_name: "buff_wind", icon: "Stat_Defense", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "", act: "atk",
|
||||
DTType: DTType.single, kind: SkillKind.Shield, ap: 3, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||||
@@ -328,7 +328,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
||||
DTType: DTType.single, kind: SkillKind.Heal, ap: 300, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||||
RType: RType.fixed, EType: EType.animationEnd, info: "治疗伙伴/自己",
|
||||
},
|
||||
//==========================buff 技能 也是 技能卡牌 5 波技能
|
||||
//==========================buff 技能 也是 技能卡牌 5 回合技能
|
||||
6303: {
|
||||
uuid: 6303, name: "获取金币", sp_name: "buff_wind", icon: "Stat_GoldGainIncrease_01", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "gold", act: "atk",
|
||||
DTType: DTType.single, kind: SkillKind.Gold, ap: 0, gold: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
|
||||
|
||||
@@ -304,9 +304,9 @@ export interface LvBonusEntry {
|
||||
* dead 战士/刺客 死亡触发,一次性全队遗产
|
||||
* fstart 法师 战斗开始前触发一次,必然生效的全队增益
|
||||
* field 法师 驻场光环,存活期间持续生效,死亡消失
|
||||
* fend 辅助 每波结束触发,跨波次累积增益
|
||||
* fend 辅助 每回合结束触发,跨回合累积增益
|
||||
*
|
||||
* 触发节奏:atked 3次/5次,atking 5次/7次,fstart/fend 1次/波
|
||||
* 触发节奏:atked 3次/5次,atking 5次/7次,fstart/fend 1次/回合
|
||||
*
|
||||
* skills[0]是普通攻击技能
|
||||
*/
|
||||
@@ -724,7 +724,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
5051: {
|
||||
uuid: 5051, name: "占卜师", path: "hm1", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Long, hp: 143, ap: 40,
|
||||
skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid3].cd, ccd: 0 } },
|
||||
// 战前计时 buff:每波开始全队 AP 限时提升(+30/5s → +60/7s → +90/10s)
|
||||
// 战前计时 buff:每回合开始全队 AP 限时提升(+30/5s → +60/7s → +90/10s)
|
||||
// 统一复用 7111 基础配置,通过 buff_value/buff_duration 覆写实现三档成长
|
||||
fstart: {
|
||||
6401: [
|
||||
@@ -810,7 +810,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
info: "<color=#27AE60>✧</color>光环全队提升攻击\n<color=#9B59B6>✦</color>追加提升攻速",
|
||||
},
|
||||
|
||||
// ========== fend + atking 类(辅助 · 治疗续航 + 波次增益) ==========
|
||||
// ========== fend + atking 类(辅助 · 治疗续航 + 回合增益) ==========
|
||||
5071: {
|
||||
uuid: 5071, name: "治愈牧师", path: "hh1", fac: FacSet.HERO, card_lv: 1, lv: 1, type: HType.Long, hp: 143, ap: 40,
|
||||
skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal3].cd, ccd: 0 } },
|
||||
@@ -831,21 +831,21 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
|
||||
// atking: [{ s_uuid: 6302, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 200 } }],
|
||||
// fend: [{ s_uuid: 6303, t_num: 1, overrides: { gold: 1 } }],
|
||||
// info: "攻击5次治疗全队,每波结束获得1金币"
|
||||
// info: "攻击5次治疗全队,每回合结束获得1金币"
|
||||
// },
|
||||
// 5073: {
|
||||
// uuid: 5073, name: "强化牧师", path: "hh3", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, hp: 430, ap: 120,
|
||||
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal3].cd, ccd: 0 } },
|
||||
// atking: [{ s_uuid: 6302, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 250 } }],
|
||||
// fend: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 10 } }],
|
||||
// info: "攻击5次治疗全队,每波结束全队永久+10攻击力"
|
||||
// info: "攻击5次治疗全队,每回合结束全队永久+10攻击力"
|
||||
// },
|
||||
// 5074: {
|
||||
// uuid: 5074, name: "生命牧师", path: "hh4", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, hp: 573, ap: 160,
|
||||
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal3].cd, ccd: 0 } },
|
||||
// atking: [{ s_uuid: 6302, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 250 } }],
|
||||
// fend: [{ s_uuid: 6402, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 80 } }],
|
||||
// info: "攻击5次治疗全队,每波结束全队永久+80最大生命值"
|
||||
// info: "攻击5次治疗全队,每回合结束全队永久+80最大生命值"
|
||||
// },
|
||||
// 5075: {
|
||||
// uuid: 5075, name: "全能牧师", path: "hh5", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, hp: 717, ap: 200,
|
||||
@@ -855,7 +855,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
// { s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 12 } },
|
||||
// { s_uuid: 6402, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 60 } }
|
||||
// ],
|
||||
// info: "攻击5次治疗全队300%AP,每波结束全队永久+12攻击力、+60最大生命值"
|
||||
// info: "攻击5次治疗全队300%AP,每回合结束全队永久+12攻击力、+60最大生命值"
|
||||
// },
|
||||
|
||||
|
||||
@@ -959,7 +959,7 @@ export const HeroList: number[] = [
|
||||
// 5053, 5054, 5055, 5056,
|
||||
// field 类(法师 · 驻场光环)
|
||||
5061,
|
||||
// fend + atking 类(辅助 · 治疗 + 波次增益)
|
||||
// fend + atking 类(辅助 · 治疗 + 回合增益)
|
||||
5071,
|
||||
// 5072, 5073, 5074, 5075,
|
||||
];
|
||||
@@ -971,7 +971,7 @@ export const HeroList: number[] = [
|
||||
* - W_HP: 每 1 点生命值折算 1 分(生命值不随时间变化)
|
||||
* - W_DPS_PER_SEC: 每 1 点 DPS 持续 1 秒折算 0.5 分
|
||||
* (默认 60 秒评估窗下,1 DPS ≈ 30 分,与旧版 W_DPS=30 等效)
|
||||
* - WAVE_DURATION / HITS_PER_WAVE: 波次参数,用于估算 atked/fstart/fend/dead 触发次数
|
||||
* - WAVE_DURATION / HITS_PER_WAVE: 回合参数,用于估算 atked/fstart/fend/dead 触发次数
|
||||
* - DEFAULT_EVAL_SECONDS: calcHeroPower 默认使用的评估时间窗
|
||||
*/
|
||||
export const HERO_POWER_WEIGHTS = {
|
||||
@@ -1086,7 +1086,7 @@ function getHitCount(seconds: number): number {
|
||||
return (seconds / weights.WAVE_DURATION) * weights.HITS_PER_WAVE;
|
||||
}
|
||||
|
||||
/** 计算目标时间窗内的波次数 */
|
||||
/** 计算目标时间窗内的回合数 */
|
||||
function getWaveCount(seconds: number): number {
|
||||
return seconds / HERO_POWER_WEIGHTS.WAVE_DURATION;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user