整合,清理掉很多冗余的东西

This commit is contained in:
2025-11-02 10:34:18 +08:00
parent b24f0e2afc
commit f35d755b74
41 changed files with 99 additions and 1798 deletions

View File

@@ -14,46 +14,22 @@ export enum BoxSet {
DEFAULT = 1,
MONSTER = 2,
HERO = 4,
MONSTER_SKILL = 8,
HERO_SKILL = 16,
PLAYER=32,
BOSS=64,
// MONSTER_SKILL = 8,
// HERO_SKILL = 16,
// PLAYER=32,
// BOSS=64,
BOX_WIDTH = 64,
BOX_HEIGHT = 64,
// BOX_WIDTH = 64,
// BOX_HEIGHT = 64,
//地图边界
LETF_END = -420,
RIGHT_END = 420,
HERO_START = -360,
MONSTER_START = 360,
END_POINT = 360,
//游戏地平线
GAME_LINE = 0,
CSKILL_X = 320,
CSKILL_Y = 400,
//攻击距离
ATK_RANGE_X = 150,
MOVE_RANGE_X = 20,
MAX_SKILL_SY = 50,
MAX_SKILL_BY = 80,
ATK_Y = 40,
ATK_X = 10,
}
export enum GameSet {
ATK_TO_ATK_RATIO=0.1,
ATK_TO_HP_RATIO=0.2,
ATK_TO_SHIELD_RATIO=2,
ATK_LINES = 3, //英雄数
MON_GOLD_ADD =2,
MON_COIN_ADD=2,
COIN_ADD=1,
DEF_RATE=0.7,
DODGE_MAX=70,
HERO_NUM=3,
AP_UPDATE_RATE=120,
AP_CHANGE_RATE=100,
}
export enum FacSet {
HERO=0,
MON=1,
@@ -106,3 +82,63 @@ export class NumberFormatter {
}
}
}
export enum FightSet {
FRIEND_WAVE_UP=3, //伙伴登场波次
BOSS_WAVE_UP_1=3, //boss登场波次
BOSS_WAVE_UP_2=5, //boss登场波次
BOSS_WAVE_UP_3=7, //boss登场波次
EQUIP_WAVE_UP_1=4, //装备登场波次
EQUIP_WAVE_UP_2=6, //装备登场波次
EQUIP_WAVE_UP_3=8, //装备登场波次
SKILL_WAVE_UP_1=2, //技能登场波次
SKILL_WAVE_UP_2=5, //技能登场波次
SKILL_WAVE_UP_3=7, //技能登场波次
MON_WAVE_TIME=10,//怪物波次时间
ATK_ADD_COUNT=4,//伙伴攻击力增加
ATK_ADD_GLOD=1,//金币增加
CRIT_DAMAGE=50,//暴击伤害
DOUBLE_ATK_RATE=100,//额外攻击默认概率
GREEN_GOLD=1,//绿色金币
BLUE_GOLD=2,//蓝色金币
PURPLE_GOLD=3,//紫色金币
ORANGE_GOLD=4,//橙色金币
BURN_COUNT=5,//默认易伤次数 5秒
STUN_TIME=0.5,//默认晕时间
WEAPON_LV=2,//武器等级
SHIELD_LV=3,//护盾等级
ARMOR_LV=4,//防具等级
ACCESSORY_LV=5,//饰品等级
ATKED_TO_POWER=15,//被攻击涨能量
ATK_TO_POWER=10,//攻击涨能量
CRIT_TO_POWER=15,//暴击涨能量
DODGE_TO_POWER=15,//闪避涨能量
ONE_WAVE_TIME=30,//单波时间
DOWN_TIME=5,//倒计时时间
MORE_RC=10,//更多次数 广告获取的次数
TAL_NUM=3,//天赋数量
HEARTPOS=-320,//基地位置
HERO_MAX_NUM=3,//英雄最大数量
// ATK_TO_ATK_RATIO=0.1,
// ATK_TO_HP_RATIO=0.2,
// ATK_TO_SHIELD_RATIO=2,
// ATK_LINES = 3, //英雄数
// MON_GOLD_ADD =2,
// MON_COIN_ADD=2,
// COIN_ADD=1,
// DEF_RATE=0.7,
// DODGE_MAX=70,
// HERO_NUM=3,
// AP_UPDATE_RATE=100,
// AP_CHANGE_RATE=0,
}
export const TooltipTypes = {
life:1,
health:2,
skill:3,
crit:4,
uskill:5,
lvup:6,
apup:7,
hpup:8,
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "26aee2e6-ab33-4155-a0aa-221c6be8d030",
"uuid": "ec307471-71c8-4cf5-ad7f-066bc2c12b72",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -10,27 +10,17 @@ import { LayerType, UIConfig } from "../../../../../extensions/oops-plugin-frame
export enum UIID {
/** 资源加载界面 */
Loading = 1,
/** 弹窗界面 */
// Window,
/** 加载与延时提示界面 */
Netinstable,
/** 角色控制 */
Role_Controller,
Victory,
Guide=1001,
// Shop_Page,
// Hero_Page,
}
/** 打开界面方式的配置数据 */
export var UIConfigData: { [key: number]: UIConfig } = {
[UIID.Loading]: { layer: LayerType.UI, prefab: "loading/prefab/loading", bundle: "resources" },
[UIID.Netinstable]: { layer: LayerType.PopUp, prefab: "common/prefab/netinstable" },
// [UIID.Window]: { layer: LayerType.Dialog, prefab: "common/prefab/window" },
[UIID.Role_Controller]: { layer: LayerType.UI, prefab: "gui/role_controller" },
[UIID.Victory]: { layer: LayerType.UI, prefab: "gui/element/victory" },
[UIID.Guide]: { layer: LayerType.UI, prefab: "gui/element/guide_step" },
// [UIID.Shop_Page]: { layer: LayerType.UI, prefab: "gui/shop_page" },
// [UIID.Hero_Page]: { layer: LayerType.UI, prefab: "gui/heros_page" },
// [UIID.Toast]: { layer: LayerType.PopUp, prefab: "common/prefab/toast" },
}

View File

@@ -1,283 +0,0 @@
import { oops } from "db://oops-framework/core/Oops";
import { smc } from "../SingletonModuleComp";
import { GameEvent } from "./GameEvent";
import { UIID } from "./GameUIConfig";
/** 引导步骤类型枚举 */
export enum GuideStepType {
/** 点击操作 */
CLICK = "click",
/** 拖拽操作 */
DRAG = "drag",
/** 显示提示 */
TIP = "tip",
/** 等待操作 */
WAIT = "wait",
}
export const finishCurrGuide=(key:number)=>{
if(key==0){
oops.message.dispatchEvent(GameEvent.GuideEnd,key)
}else{
if(smc.guides[key-1]===1&&smc.guides[key]===0){
oops.message.dispatchEvent(GameEvent.GuideEnd,key)
}
}
}
export const startGuide=(key:number)=>{
if(smc.guides[key-1]===1&&smc.guides[key]===0){
oops.message.dispatchEvent(GameEvent.GuideStart,key)
}
}
/** 引导步骤配置接口 */
export interface IGuideStep {
/** 步骤ID */
id: string;
/** 步骤类型 */
type: GuideStepType;
/** 目标节点路径(用于查找目标节点) */
key: number;
targetPath?: string;
tipParent?: string;
/** 提示文本 */
tipText?: string;
/** 提示文本偏移 */
tipOffset?: { x: number, y: number };
/** 手指动画位置偏移 */
handOffset?: { x: number, y: number };
/** 下一步骤ID */
nextStep?: string;
/** 是否可跳过 */
skippable?: boolean;
/** 触发条件 */
condition?: () => boolean;
/** 对应的UI界面ID */
uiId?: UIID;
/** 等待时间 */
waitTime?: number;
/** 结束事件 */
end_event?: string;
/** 是否禁用输入 */
noInput?: boolean;
}
/** 引导配置数据 */
export const GuideConfig: { [key: number]: IGuideStep } = {
0: {
id: "welcome", type: GuideStepType.WAIT,key:0,
targetPath: "root/gui/LayerUI/role_controller/mission_home/start/name",
tipText: "伟大的勇者,欢迎来到 『像素模拟战』",
handOffset: { x: 42, y: -45 },
nextStep: "start_battle", waitTime: 5, end_event: "click", noInput: true,
},
1: {
id: "start_battle", type: GuideStepType.CLICK,key:1,
targetPath: "root/gui/LayerUI/role_controller/mission_home/start/name",
tipText: "请带领您的英雄抵御兽人的入侵吧!",
handOffset: { x: 42, y: -45 },
// 42 45是手指的偏移量 0 0是提示的偏移量
},
2: {
id: "hero_page", type: GuideStepType.CLICK,key:2,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/role_controller/mission_home/btns/heros",
tipText: "在酒馆招募更多英雄增强队伍",
handOffset: { x: 42, y: -45 }, tipOffset: { x: 0, y: 600 },
},
3: {
id: "to_hero_info", type: GuideStepType.CLICK,key:3,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/role_controller/mission_home/heros_page",
handOffset: { x: 42, y: -45 },
},
4: {
id: "do_hero_info", type: GuideStepType.CLICK,key:4,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/Hinfo/unLock",
handOffset: { x: 42, y: -45 },
},
5: {
id: "up_lv_hero", type: GuideStepType.CLICK,key:5,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/Hinfo/upBtn",
handOffset: { x: 42, y: -45 },
},
6: {
id: "close_hinfo", type: GuideStepType.CLICK,key:6,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/Hinfo/back",
handOffset: { x: 42, y: -45 }
},
7: {
id: "to_mission", type: GuideStepType.CLICK,key:7,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/role_controller/mission_home/btns/fight",
handOffset: { x: 42, y: -45 },
},
8: {
id: "to_add_hero", type: GuideStepType.CLICK,key:8,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/role_controller/mission_home/readyheros/hero3",
tipText: "可以随时调整上阵英雄",
handOffset: { x: 42, y: -45 },
},
9: {
id: "to_hero_select", type: GuideStepType.CLICK,key:9,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/hero_select/main/view/heros/hero2",
handOffset: { x: 42, y: -45 },
},
10: {
id: "start_battle", type: GuideStepType.CLICK,key:10,
targetPath: "root/gui/LayerUI/role_controller/mission_home/start/name",
tipText: "享受战斗的乐趣吧!",
handOffset: { x: 42, y: -45 },
// 42 45是手指的偏移量 0 0是提示的偏移量
},
};
/** 引导配置数组(用于兼容性) */
export const GuideConfigArray: IGuideStep[] = Object.values(GuideConfig);
/** 结束事件到引导索引的映射 */
export const EndEventToKey: { [key: string]: number[] } = {
[GameEvent.UpdateFightHero]: [4],
[GameEvent.MonDead]: [1],
[GameEvent.HeroLvUp]: [5],
// 示例:一个事件对应多个引导步骤
// [GameEvent.BattleStart]: [2, 3, 4], // 战斗开始时触发多个引导
// [GameEvent.LevelUp]: [5, 6, 7], // 升级时触发多个引导
// [GameEvent.HeroUnlock]: [8, 9], // 解锁英雄时触发多个引导
// [GameEvent.MissionComplete]: [10, 11, 12], // 任务完成时触发多个引导
}
/** 通过 end_event 查找引导索引数组 */
export function findGuidesByEndEvent(event: string): number[] {
return EndEventToKey[event] || [];
}
/** 通过 end_event 查找引导索引(保持向后兼容) */
export function findGuideByEndEvent(event: string): number | undefined {
const guides = EndEventToKey[event];
return guides && guides.length > 0 ? guides[0] : undefined;
}
/** 通过引导ID查找引导索引 */
export function findGuideIndexById(guideId: string): number {
for (const [key, guide] of Object.entries(GuideConfig)) {
if (guide.id === guideId) {
return parseInt(key);
}
}
return -1;
}
/** 通过引导ID查找引导配置 */
export function findGuideById(guideId: string): IGuideStep | undefined {
for (const guide of Object.values(GuideConfig)) {
if (guide.id === guideId) {
return guide;
}
}
return undefined;
}
/** 通过数字ID查找引导配置 */
export function findGuideByNumberId(numberId: number): IGuideStep | undefined {
return GuideConfig[numberId];
}
/** 获取所有引导ID列表 */
export function getAllGuideIds(): number[] {
return Object.keys(GuideConfig).map(key => parseInt(key));
}
/** 获取引导配置总数 */
export function getGuideConfigCount(): number {
return Object.keys(GuideConfig).length;
}
/**
* 使用示例如何使用新的数字ID配置格式
*
* 1. 配置格式:
* export const GuideConfig: { [key: number]: IGuideStep } = {
* 0: { id: "welcome", ... },
* 1: { id: "start_battle", ... },
* 2: { id: "hero_page", ... },
* }
*
* 2. 通过数字ID查找引导
* const guide = findGuideByNumberId(0); // 直接通过数字ID查找
*
* 3. 通过字符串ID查找引导
* const guide = findGuideById("welcome"); // 通过字符串ID查找
*
* 4. 获取引导的数字索引:
* const index = findGuideIndexById("welcome"); // 返回 0
*
* 5. 事件映射配置:
* export const EndEventToKey: { [key: string]: number[] } = {
* [GameEvent.BattleStart]: [2, 3, 4], // 一个事件对应多个引导
* }
*
* 6. 启动引导:
* oops.message.dispatchEvent(GameEvent.GuideStart, 0); // 启动ID为0的引导
*
* 7. 优势:
* - 数字ID与 smc.guides 数组索引完全对应
* - 支持一个事件触发多个引导
* - 向后兼容,现有代码无需大幅修改
* - 便于扩展新的引导步骤
* - 数组索引从0开始符合编程习惯
*/
/** 引导管理器配置 */
export interface IGuideManagerConfig {
/** 是否启用引导 */
enabled: boolean;
/** 引导配置文件路径 */
configPath: string;
/** 引导进度保存键 */
progressKey: string;
/** 默认引导ID */
defaultGuideId: string;
/** 引导层优先级 */
layerPriority: number;
}
/** 默认引导管理器配置 */
export const DefaultGuideConfig: IGuideManagerConfig = {
enabled: true,
configPath: "config/Guide",
progressKey: "guide_progress",
defaultGuideId: "welcome",
layerPriority: 1000
};
/** 引导事件类型 */
export enum GuideEventType {
/** 引导开始 */
GUIDE_START = "guide_start",
/** 引导步骤完成 */
STEP_COMPLETE = "step_complete",
/** 引导跳过 */
GUIDE_SKIP = "guide_skip",
/** 引导完成 */
GUIDE_COMPLETE = "guide_complete",
/** 引导错误 */
GUIDE_ERROR = "guide_error"
}
/** 引导步骤状态 */
export enum GuideStepStatus {
/** 未开始 */
NOT_STARTED = "not_started",
/** 进行中 */
IN_PROGRESS = "in_progress",
/** 已完成 */
COMPLETED = "completed",
/** 已跳过 */
SKIPPED = "skipped"
}

View File

@@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "2a50d441-0bd3-4762-bd48-0f3007ad829f",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "28d11009-6d68-462a-9880-8b31cf5975fd",
"uuid": "45be33eb-bf68-484f-80d7-117b2532ec7f",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -1,60 +0,0 @@
export enum FightSet {
FRIEND_WAVE_UP=3, //伙伴登场波次
BOSS_WAVE_UP_1=3, //boss登场波次
BOSS_WAVE_UP_2=5, //boss登场波次
BOSS_WAVE_UP_3=7, //boss登场波次
EQUIP_WAVE_UP_1=4, //装备登场波次
EQUIP_WAVE_UP_2=6, //装备登场波次
EQUIP_WAVE_UP_3=8, //装备登场波次
SKILL_WAVE_UP_1=2, //技能登场波次
SKILL_WAVE_UP_2=5, //技能登场波次
SKILL_WAVE_UP_3=7, //技能登场波次
MON_WAVE_TIME=10,//怪物波次时间
ATK_ADD_COUNT=4,//伙伴攻击力增加
ATK_ADD_GLOD=1,//金币增加
CRIT_DAMAGE=50,//暴击伤害
DOUBLE_ATK_RATE=100,//额外攻击默认概率
GREEN_GOLD=1,//绿色金币
BLUE_GOLD=2,//蓝色金币
PURPLE_GOLD=3,//紫色金币
ORANGE_GOLD=4,//橙色金币
BURN_COUNT=5,//默认易伤次数 5秒
STUN_TIME=0.5,//默认晕时间
WEAPON_LV=2,//武器等级
SHIELD_LV=3,//护盾等级
ARMOR_LV=4,//防具等级
ACCESSORY_LV=5,//饰品等级
ATKED_TO_POWER=15,//被攻击涨能量
ATK_TO_POWER=10,//攻击涨能量
CRIT_TO_POWER=15,//暴击涨能量
DODGE_TO_POWER=15,//闪避涨能量
ONE_WAVE_TIME=30,//单波时间
DOWN_TIME=5,//倒计时时间
MORE_RC=10,//更多次数 广告获取的次数
TAL_NUM=3,//天赋数量
HEARTPOS=-320,//基地位置
HERO_MAX_NUM=3,//英雄最大数量
// ATK_TO_ATK_RATIO=0.1,
// ATK_TO_HP_RATIO=0.2,
// ATK_TO_SHIELD_RATIO=2,
// ATK_LINES = 3, //英雄数
// MON_GOLD_ADD =2,
// MON_COIN_ADD=2,
// COIN_ADD=1,
// DEF_RATE=0.7,
// DODGE_MAX=70,
// HERO_NUM=3,
// AP_UPDATE_RATE=100,
// AP_CHANGE_RATE=0,
}
export const TooltipTypes = {
life:1,
health:2,
skill:3,
crit:4,
uskill:5,
lvup:6,
apup:7,
hpup:8,
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "8668f7df-174a-4b7a-9c82-370e572d0d35",
"uuid": "c61d2d53-67ba-4933-8139-25a6bc271b8a",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -1,5 +1,5 @@
import { v3 } from "cc"
import { FacSet } from "./BoxSet"
import { FacSet } from "./GameSet"
import { smc } from "../SingletonModuleComp"
import { BuffConf } from "./SkillSet"