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