# LBattleFrameWork **Repository Path**: lanzhipeng2011/lbattle-frame-work ## Basic Information - **Project Name**: LBattleFrameWork - **Description**: 回合制游戏战斗框架简版 - **Primary Language**: C# - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: https://gitee.com/lanzhipeng2011 - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 2 - **Created**: 2024-03-15 - **Last Updated**: 2025-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```markdown # LBattle FrameWork 这是一个基于 Unity 的战斗框架,适用于回合制战斗系统的设计与实现。框架采用模块化设计,便于扩展和维护,适用于开发策略类或 RPG 类游戏中战斗模块。 ## 功能特点 - **模块化设计**:框架分为战斗系统、角色系统、回合系统等多个模块,便于管理和扩展。 - **状态机管理**:使用状态机管理战斗和回合的不同状态,使逻辑清晰、易于维护。 - **事件中心**:通过 `MessageCenter` 实现全局事件广播,便于模块间通信。 - **数据驱动**:角色数据、战斗配置等通过数据类进行管理,便于调整和扩展。 ## 主要模块 - **战斗系统(BattleSystem)**:管理战斗的整体流程,包括战斗状态的切换与更新。 - **角色系统(CharacterSystem)**:管理战斗中的角色数据、角色对象的创建与销毁。 - **回合系统(RoundSystem)**:管理战斗中的回合流程,包括回合状态的切换与更新。 - **事件中心(MessageCenter)**:负责全局事件的注册、监听与广播。 ## 核心类说明 - `LBattleFacade`:战斗系统的外观类,提供统一的接口供外部调用。 - `BattleStateControl`:战斗状态控制器,管理不同的战斗状态。 - `RoundStateController`:回合状态控制器,管理不同的回合状态。 - `CharacterModel`:角色数据模型,管理角色的配置数据。 - `CharacterObj`:角色对象类,管理角色在战斗中的行为与状态。 ## 使用说明 1. **初始化战斗系统**: ```csharp LBattleFacade.Instance.Initinal(); ``` 2. **创建角色**: ```csharp LBattleFacade.Instance.CreatCharacter(); ``` 3. **创建回合**: ```csharp LBattleFacade.Instance.CreatRound(); ``` 4. **更新战斗系统**: ```csharp void Update() { LBattleFacade.Instance.Update(); } ``` ## 事件系统 通过 `MessageCenter` 注册和监听事件,例如: ```csharp MessageCenter.Instance.OnAddListener(MsgID.BattleEnd, OnBattleEnd); private void OnBattleEnd(object obj) { // 处理战斗结束逻辑 } ``` ## 扩展建议 - **新增战斗状态**:继承 `BattleStateBase`,实现 `Init`、`Update` 和 `Relese` 方法,并通过 `BattleStateControl` 注册。 - **新增回合状态**:继承 `RoundStateBase`,实现 `Init`、`Update` 和 `Relese` 方法,并通过 `RoundStateController` 注册。 - **角色数据扩展**:在 `CharacterData` 中添加新的属性以支持更多角色特性。 ## 许可证 本项目使用 MIT 许可证,详情请查看 LICENSE 文件。 ```