From 7b3495cfaa6c594cea99b08f1f18a1746b4414aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=94=E5=87=A4=E5=95=B8=E5=A4=A9?= <1379113792@qq.com> Date: Mon, 22 Jul 2019 15:54:25 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E7=A7=BB=E5=8A=A8hero=E8=87=B3event?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Engine/CLEngine.Core/CLEngine.Core.csproj | 1 - Engine/CLEngine.Core/framework/EventObject.cs | 115 +++++++++++++-- Engine/CLEngine.Core/framework/HeroObject.cs | 136 ------------------ Engine/CLEngine.Core/framework/ItemObject.cs | 1 - 4 files changed, 106 insertions(+), 147 deletions(-) delete mode 100644 Engine/CLEngine.Core/framework/HeroObject.cs diff --git a/Engine/CLEngine.Core/CLEngine.Core.csproj b/Engine/CLEngine.Core/CLEngine.Core.csproj index 02a0c60..c228931 100644 --- a/Engine/CLEngine.Core/CLEngine.Core.csproj +++ b/Engine/CLEngine.Core/CLEngine.Core.csproj @@ -296,7 +296,6 @@ - diff --git a/Engine/CLEngine.Core/framework/EventObject.cs b/Engine/CLEngine.Core/framework/EventObject.cs index 67c0796..73e3d26 100644 --- a/Engine/CLEngine.Core/framework/EventObject.cs +++ b/Engine/CLEngine.Core/framework/EventObject.cs @@ -17,6 +17,112 @@ namespace CLEngine.Core.framework [DataMember] private List _bindHero; [DataMember] private List _bindItem; [DataMember] private GameObject _gameObj; + [DataMember] private int _hp; + [DataMember] private int _maxHp; + [DataMember] private int _mp; + [DataMember] private int _maxMp; + [DataMember] private int _lv; + [DataMember] private int _maxLv; + [DataMember] private int _exp; + [DataMember] private int _maxExp; + [DataMember] private string _gender; + [DataMember] private string _occupation; + [DataMember] private Dictionary _skill; + [DataMember] private Dictionary _state; + [DataMember] private SkillObject _onSkill; + + /// + /// 添加技能 + /// + /// + public void AddSkill(string name) + { + var skill = SkillManager.GetWorldSkill(name); + if (skill == null) + { + throw new Exception("技能'" + name + "'不存在!"); + } + _skill.Add(name, skill); + } + /// + /// 删除技能 + /// + /// + public void RemoveSkill(string name) + { + _skill.Remove(name); + } + /// + /// 通过列表添加技能 + /// + /// + public void AddSkillByList(List list) + { + foreach (var skill in list) + { + AddSkill(skill); + } + } + /// + /// 通过列表删除技能 + /// + /// + public void RemoveSkillByList(List list) + { + foreach (var skill in list) + { + RemoveSkill(skill); + } + } + + /// + /// 状态表 + /// + public Dictionary State { get { return _state; } private set { _state = value; } } + /// + /// 技能表 + /// + public Dictionary Skill { get { return _skill; } private set { _skill = value; } } + /// + /// 升级所需最大经验值 + /// + public int MaxExp { get { return _maxExp; } set { _maxExp = value; } } + /// + /// 当前经验值 + /// + public int Exp { get { return _exp; } set { _exp = value; } } + /// + /// 性别 + /// + public string Gender { get { return _gender; } set { _gender = value; } } + /// + /// 职业 + /// + public string Occupation { get { return _occupation; } set { _occupation = value; } } + /// + /// 角色最大等级 + /// + public int MaxLv { get { return _maxLv; } set { _maxLv = value; } } + /// + /// 角色等级 + /// + public int Lv { get { return _lv; } set { _lv = value; } } + /// + /// 最大法力值 + /// + public int MaxMp { get { return _maxMp; } set { _maxMp = value; } } + /// + /// 蓝量 + /// + public int Mp { get { return _mp; } set { _mp = value; } } + /// + /// 最大生命值 + /// + public int MaxHp { get { return _maxHp; } set { _maxHp = value; } } + /// + /// 血量 + /// + public int Hp { get { return _hp; } set { _hp = value; } } /// /// 游戏对象 /// @@ -33,14 +139,5 @@ namespace CLEngine.Core.framework /// 绑定的物品 /// public List BindItem { get { return _bindItem; } set { _bindItem = value; } } - - /// - /// - /// - public void TrigEvent() - { - - } - } } diff --git a/Engine/CLEngine.Core/framework/HeroObject.cs b/Engine/CLEngine.Core/framework/HeroObject.cs deleted file mode 100644 index 302fe94..0000000 --- a/Engine/CLEngine.Core/framework/HeroObject.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; - -namespace CLEngine.Core.framework -{ -#if WIN - [Serializable] -#endif - [DataContract] - public class HeroObject - { - [DataMember] private string _name; - [DataMember] private int _hp; - [DataMember] private int _maxHp; - [DataMember] private int _mp; - [DataMember] private int _maxMp; - [DataMember] private int _lv; - [DataMember] private int _maxLv; - [DataMember] private int _exp; - [DataMember] private int _maxExp; - [DataMember] private string _gender; - [DataMember] private string _occupation; - [DataMember] private Dictionary _skill; - [DataMember] private Dictionary _state; - [DataMember] private SkillObject _onSkill; - - /// - /// 添加技能 - /// - /// - public void AddSkill(string name) - { - var skill = SkillManager.GetWorldSkill(name); - if (skill == null) - { - throw new Exception("技能'" + name + "'不存在!"); - } - _skill.Add(name, skill); - } - /// - /// 删除技能 - /// - /// - public void RemoveSkill(string name) - { - _skill.Remove(name); - } - /// - /// 通过列表添加技能 - /// - /// - public void AddSkillByList(List list) - { - foreach (var skill in list) - { - AddSkill(skill); - } - } - /// - /// 通过列表删除技能 - /// - /// - public void RemoveSkillByList(List list) - { - foreach (var skill in list) - { - RemoveSkill(skill); - } - } - - /// - /// 状态表 - /// - public Dictionary State { get { return _state; } private set { _state = value; } } - /// - /// 技能表 - /// - public Dictionary Skill { get { return _skill; } private set { _skill = value; } } - /// - /// 升级所需最大经验值 - /// - public int MaxExp { get { return _maxExp; } set { _maxExp = value; } } - /// - /// 当前经验值 - /// - public int Exp { get { return _exp; } set { _exp = value; } } - /// - /// 性别 - /// - public string Gender { get { return _gender; } set { _gender = value; } } - /// - /// 职业 - /// - public string Occupation { get { return _occupation; } set { _occupation = value; } } - /// - /// 角色最大等级 - /// - public int MaxLv { get { return _maxLv; } set { _maxLv = value; } } - /// - /// 角色等级 - /// - public int Lv { get { return _lv; } set { _lv = value; } } - /// - /// 最大法力值 - /// - public int MaxMp { get { return _maxMp; } set { _maxMp = value; } } - /// - /// 蓝量 - /// - public int Mp { get { return _mp; } set { _mp = value; } } - /// - /// 最大生命值 - /// - public int MaxHp { get { return _maxHp; } set { _maxHp = value; } } - /// - /// 血量 - /// - public int Hp { get { return _hp; } set { _hp = value; } } - /// - /// 人物名 - /// - public string Name { get { return _name; } set { _name = value; } } - /// - /// 初始化角色 - /// - public HeroObject() - { - _skill = new Dictionary(); - _state = new Dictionary(); - } - } -} \ No newline at end of file diff --git a/Engine/CLEngine.Core/framework/ItemObject.cs b/Engine/CLEngine.Core/framework/ItemObject.cs index b361295..52d15b1 100644 --- a/Engine/CLEngine.Core/framework/ItemObject.cs +++ b/Engine/CLEngine.Core/framework/ItemObject.cs @@ -134,7 +134,6 @@ namespace CLEngine.Core.framework { _dropIcon = null; Console.WriteLine("文件" + _dropIconPath + "不存在"); - return; } } } -- Gitee From cb3a287da2f216825bad26e24eebeed180bceba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=94=E5=87=A4=E5=95=B8=E5=A4=A9?= <1379113792@qq.com> Date: Mon, 22 Jul 2019 15:55:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Engine/CLEngine.Core/framework/EventObject.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Engine/CLEngine.Core/framework/EventObject.cs b/Engine/CLEngine.Core/framework/EventObject.cs index 73e3d26..988ac0a 100644 --- a/Engine/CLEngine.Core/framework/EventObject.cs +++ b/Engine/CLEngine.Core/framework/EventObject.cs @@ -14,7 +14,6 @@ namespace CLEngine.Core.framework public class EventObject : GameObject { [DataMember] private string _name; - [DataMember] private List _bindHero; [DataMember] private List _bindItem; [DataMember] private GameObject _gameObj; [DataMember] private int _hp; @@ -132,10 +131,6 @@ namespace CLEngine.Core.framework /// public string Name { get { return _name; } set { _name = value; } } /// - /// 绑定的角色 - /// - public List BindHero { get { return _bindHero; } set { _bindHero = value; } } - /// /// 绑定的物品 /// public List BindItem { get { return _bindItem; } set { _bindItem = value; } } -- Gitee From c74fef6e16698d3deb55fe3694f7effcda20acff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=94=E5=87=A4=E5=95=B8=E5=A4=A9?= <1379113792@qq.com> Date: Mon, 22 Jul 2019 16:02:37 +0800 Subject: [PATCH 3/5] --- Engine/CLEngine.Core/CLEngine.Core.csproj | 1 + Engine/CLEngine.Core/framework/StateManager.cs | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 Engine/CLEngine.Core/framework/StateManager.cs diff --git a/Engine/CLEngine.Core/CLEngine.Core.csproj b/Engine/CLEngine.Core/CLEngine.Core.csproj index c228931..95e34c7 100644 --- a/Engine/CLEngine.Core/CLEngine.Core.csproj +++ b/Engine/CLEngine.Core/CLEngine.Core.csproj @@ -301,6 +301,7 @@ + diff --git a/Engine/CLEngine.Core/framework/StateManager.cs b/Engine/CLEngine.Core/framework/StateManager.cs new file mode 100644 index 0000000..39bfebf --- /dev/null +++ b/Engine/CLEngine.Core/framework/StateManager.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CLEngine.Core.framework +{ + class StateManager + { + } +} -- Gitee From cf41982dcc568ab103c63ae7a7cbaa1ad53a3067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=94=E5=87=A4=E5=95=B8=E5=A4=A9?= <1379113792@qq.com> Date: Mon, 22 Jul 2019 19:05:12 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=96=B0=E5=A2=9EStateManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Engine/CLEngine.Core/framework/ItemManager.cs | 2 +- .../CLEngine.Core/framework/StateManager.cs | 212 +++++++++++++++++- Engine/CLEngine.Core/framework/StateObject.cs | 22 +- 3 files changed, 223 insertions(+), 13 deletions(-) diff --git a/Engine/CLEngine.Core/framework/ItemManager.cs b/Engine/CLEngine.Core/framework/ItemManager.cs index be4403a..169e638 100644 --- a/Engine/CLEngine.Core/framework/ItemManager.cs +++ b/Engine/CLEngine.Core/framework/ItemManager.cs @@ -104,7 +104,7 @@ namespace CLEngine.Core.framework _playerItem = (List)FrameworkManager.LoadFrameworkData("playerItem") ?? new List(); var worldId = FrameworkManager.LoadFrameworkData("worldId"); if (worldId != null) - WorldId = (int) worldId; + WorldId = (int)worldId; } /// diff --git a/Engine/CLEngine.Core/framework/StateManager.cs b/Engine/CLEngine.Core/framework/StateManager.cs index 39bfebf..0aac68d 100644 --- a/Engine/CLEngine.Core/framework/StateManager.cs +++ b/Engine/CLEngine.Core/framework/StateManager.cs @@ -1,12 +1,214 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.IO; +using System.Runtime.Serialization; +using Path = System.IO.Path; namespace CLEngine.Core.framework { - class StateManager + /// + /// 状态管理器 + /// +#if WIN + [Serializable] +#endif + [DataContract] + public class StateManager : IDataFramework { + /// + /// 全局状态 + /// + [DataMember] private static Dictionary _worldState; + /// + /// 玩家背包 + /// + [DataMember] private static List _playerState; + /// + /// 全局状态Id + /// + [DataMember] public static int WorldId { get; private set; } + + /// + /// 全局状态 + /// + public static Dictionary WorldState => _worldState; + + static StateManager() + { + _worldState = new Dictionary(); + _playerState = new List(); + WorldId = 1; + } + + /// + /// 创建状态 + /// + public static StateObject CreateState(string name) + { + var State = new StateObject(name) { Id = WorldId }; + _worldState.Add(name, State); + + WorldId++; + + return State; + } + + /// + /// 删除状态 + /// + /// + /// + public static StateObject RemoveState(string name) + { + var State = new StateObject(name); + _worldState.Remove(name); + + return State; + } + + /// + /// 删除状态 + /// + /// + /// + public static bool RemoveState(StateObject State) + { + foreach (var StateObject in _worldState) + { + if (StateObject.Value == State) + { + _worldState.Remove(StateObject.Key); + return true; + } + } + + return false; + } + + /// + /// 保存全局状态 + /// + public void SaveData() + { + FrameworkManager.SaveFrameworkData("worldState", _worldState); + FrameworkManager.SaveFrameworkData("playerState", _playerState); + FrameworkManager.SaveFrameworkData("worldId", WorldId); + } + + /// + /// 加载全局状态 + /// + public void LoadData() + { + _worldState = (Dictionary)FrameworkManager.LoadFrameworkData("worldState") ?? new Dictionary(); + _playerState = (List)FrameworkManager.LoadFrameworkData("playerState") ?? new List(); + var worldId = FrameworkManager.LoadFrameworkData("worldId"); + if (worldId != null) + WorldId = (int)worldId; + } + + /// + /// 世界状态中通过名称找状态 + /// + /// + /// + public static StateObject WorldFindStateByName(string name) + { + return _worldState[name]; + } + /// + /// 世界状态中通过编号找状态 + /// + /// + /// + public static StateObject WorldFindStateById(int id) + { + foreach (var State in _worldState) + { + if (State.Value.Id == id) + { + return State.Value; + } + } + return null; + } + /// + /// 背包中通过名字找状态,返回第一个找到的 + /// + /// + /// + public static StateObject PlayerFindStateByName(string name) + { + var max = _playerState.Count; + StateObject State; + for (int i = 0; i < max; i++) + { + State = _playerState[i]; + if (State.Name == name) + { + return State; + } + } + return null; + } + /// + /// 背包中通过名字找状态,返回所有符合的状态 + /// + /// + /// + public static List PlayerFindAllStateByName(string name) + { + var max = _playerState.Count; + var Statelist = new List(); + StateObject State; + for (int i = 0; i < max; i++) + { + State = _playerState[i]; + if (State.Name == name) + { + Statelist.Add(State); + } + } + return Statelist; + } + /// + /// 背包中通过编号找状态,返回第一个找到的 + /// + /// + /// + public static StateObject PlayerFindStateById(int id) + { + var max = _playerState.Count; + StateObject State; + for (int i = 0; i < max; i++) + { + State = _playerState[i]; + if (State.Id == id) + { + return State; + } + } + return null; + } + /// + /// 背包中通过编号找状态,返回所有找到的 + /// + /// + /// + public static List PlayerFindAllStateById(int id) + { + var max = _playerState.Count; + var Statelist = new List(); + StateObject State; + for (int i = 0; i < max; i++) + { + State = _playerState[i]; + if (State.Id == id) + { + Statelist.Add(State); + } + } + return Statelist; + } } -} +} \ No newline at end of file diff --git a/Engine/CLEngine.Core/framework/StateObject.cs b/Engine/CLEngine.Core/framework/StateObject.cs index c1d5b6b..73586c2 100644 --- a/Engine/CLEngine.Core/framework/StateObject.cs +++ b/Engine/CLEngine.Core/framework/StateObject.cs @@ -32,30 +32,38 @@ namespace CLEngine.Core.framework [DataMember] private int _affectHp; [DataMember] private int _affectMp; [DataMember] private int _affectSpeed; - + [DataMember] private int _id; + /// + /// ID + /// + public int Id { get { return _id; } internal set { _id = value; } } /// /// 持续时间 /// - public int ContinueTime{ get{ return _continueTime; }set{ _continueTime = value; } } + public int ContinueTime { get { return _continueTime; } set { _continueTime = value; } } /// /// 是否只生效一次 /// - public bool IsAffectOnce{ get{ return _isAffectOnce; }set{ _isAffectOnce = value; } } + public bool IsAffectOnce { get { return _isAffectOnce; } set { _isAffectOnce = value; } } /// /// 名称 /// - public string Name{ get{ return _name; }set{ _name = value; } } + public string Name { get { return _name; } set { _name = value; } } /// /// 对生命值影响 /// - public int AffectHp{ get{ return _affectHp; }set{ _affectHp = value; } } + public int AffectHp { get { return _affectHp; } set { _affectHp = value; } } /// /// 对法力值影响 /// - public int AffectMp{ get{ return _affectMp; }set{ _affectMp = value; } } + public int AffectMp { get { return _affectMp; } set { _affectMp = value; } } /// /// 对速度影响 /// - public int AffectSpeed{ get{ return _affectSpeed; }set{ _affectSpeed = value; } } + public int AffectSpeed { get { return _affectSpeed; } set { _affectSpeed = value; } } + public StateObject(string name) + { + Name = name; + } } } -- Gitee From 015669a0989856a95b7d55bc10520e27b5fec401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=94=E5=87=A4=E5=95=B8=E5=A4=A9?= <1379113792@qq.com> Date: Mon, 22 Jul 2019 19:08:54 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Engine/CLEngine.Core/framework/StateManager.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Engine/CLEngine.Core/framework/StateManager.cs b/Engine/CLEngine.Core/framework/StateManager.cs index 0aac68d..34572bf 100644 --- a/Engine/CLEngine.Core/framework/StateManager.cs +++ b/Engine/CLEngine.Core/framework/StateManager.cs @@ -20,7 +20,7 @@ namespace CLEngine.Core.framework /// [DataMember] private static Dictionary _worldState; /// - /// 玩家背包 + /// 玩家状态 /// [DataMember] private static List _playerState; /// @@ -133,7 +133,7 @@ namespace CLEngine.Core.framework return null; } /// - /// 背包中通过名字找状态,返回第一个找到的 + /// 状态表中通过名字找状态,返回第一个找到的 /// /// /// @@ -152,7 +152,7 @@ namespace CLEngine.Core.framework return null; } /// - /// 背包中通过名字找状态,返回所有符合的状态 + /// 状态表中通过名字找状态,返回所有符合的状态 /// /// /// @@ -172,7 +172,7 @@ namespace CLEngine.Core.framework return Statelist; } /// - /// 背包中通过编号找状态,返回第一个找到的 + /// 状态表中通过编号找状态,返回第一个找到的 /// /// /// @@ -191,7 +191,7 @@ namespace CLEngine.Core.framework return null; } /// - /// 背包中通过编号找状态,返回所有找到的 + /// 状态表中通过编号找状态,返回所有找到的 /// /// /// -- Gitee