提交 f54e3ed7 编写于 作者: T tanghai

EventComponent类搭配不同的attribute可以用来分发,例如可以分发:消息,buff效果,技能效果,事件等

上级 6ae99007
...@@ -27,13 +27,13 @@ namespace Controller ...@@ -27,13 +27,13 @@ namespace Controller
env[EnvKey.Unit] = buffComponent.Owner; env[EnvKey.Unit] = buffComponent.Owner;
env[EnvKey.Buff] = buff; env[EnvKey.Buff] = buff;
World.Instance.GetComponent<EventComponent<WorldEventAttribute>>().Trigger(WorldEventType.BeforeAddBuff, env); World.Instance.GetComponent<EventComponent<EventAttribute>>().Trigger(EventType.BeforeAddBuff, env);
buffComponent.buffs.Add(buff); buffComponent.buffs.Add(buff);
buffComponent.idBuff.Add(buff.Id, buff); buffComponent.idBuff.Add(buff.Id, buff);
buffComponent.typeBuff.Add(buff.Config.Type, buff); buffComponent.typeBuff.Add(buff.Config.Type, buff);
World.Instance.GetComponent<EventComponent<WorldEventAttribute>>().Trigger(WorldEventType.AfterAddBuff, env); World.Instance.GetComponent<EventComponent<EventAttribute>>().Trigger(EventType.AfterAddBuff, env);
} }
public static Buff GetById(this BuffComponent buffComponent, ObjectId id) public static Buff GetById(this BuffComponent buffComponent, ObjectId id)
...@@ -67,13 +67,13 @@ namespace Controller ...@@ -67,13 +67,13 @@ namespace Controller
env[EnvKey.Unit] = buffComponent.Owner; env[EnvKey.Unit] = buffComponent.Owner;
env[EnvKey.Buff] = buff; env[EnvKey.Buff] = buff;
World.Instance.GetComponent<EventComponent<UnitEventAttribute>>().Trigger(WorldEventType.BeforeRemoveBuff, env); World.Instance.GetComponent<EventComponent<EventAttribute>>().Trigger(EventType.BeforeRemoveBuff, env);
buffComponent.buffs.Remove(buff); buffComponent.buffs.Remove(buff);
buffComponent.idBuff.Remove(buff.Id); buffComponent.idBuff.Remove(buff.Id);
buffComponent.typeBuff.Remove(buff.Config.Type, buff); buffComponent.typeBuff.Remove(buff.Config.Type, buff);
World.Instance.GetComponent<EventComponent<UnitEventAttribute>>().Trigger(WorldEventType.AfterRemoveBuff, env); World.Instance.GetComponent<EventComponent<EventAttribute>>().Trigger(EventType.AfterRemoveBuff, env);
return true; return true;
} }
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<Compile Include="ConfigCategory\UnitCategory.cs" /> <Compile Include="ConfigCategory\UnitCategory.cs" />
<Compile Include="NodeType.cs" /> <Compile Include="NodeType.cs" />
<Compile Include="Factory\UnitFactory.cs" /> <Compile Include="Factory\UnitFactory.cs" />
<Compile Include="WorldEventType.cs" /> <Compile Include="EventType.cs" />
<Compile Include="UnitType.cs" /> <Compile Include="UnitType.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
namespace Controller namespace Controller
{ {
public static class WorldEventType public static class EventType
{ {
public const int BeforeAddBuff = 0; public const int BeforeAddBuff = 0;
public const int AfterAddBuff = 1; public const int AfterAddBuff = 1;
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
namespace Model namespace Model
{ {
public class UnitEventAttribute: AEventAttribute public class EventAttribute: AEventAttribute
{ {
public UnitEventAttribute(int type): base(type) public EventAttribute(int type): base(type)
{ {
} }
} }
......
...@@ -67,8 +67,7 @@ ...@@ -67,8 +67,7 @@
<Compile Include="Config\NodeConfig.cs" /> <Compile Include="Config\NodeConfig.cs" />
<Compile Include="Unit.cs" /> <Compile Include="Unit.cs" />
<Compile Include="World.cs" /> <Compile Include="World.cs" />
<Compile Include="UnitEventAttribute.cs" /> <Compile Include="EventAttribute.cs" />
<Compile Include="WorldEventAttribute.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Properties\" /> <Folder Include="Properties\" />
......
using Common.Event;
namespace Model
{
public class WorldEventAttribute: AEventAttribute
{
public WorldEventAttribute(int type): base(type)
{
}
}
}
...@@ -24,7 +24,7 @@ namespace MongoDBTest ...@@ -24,7 +24,7 @@ namespace MongoDBTest
// 加载配置 // 加载配置
world.AddComponent<ConfigComponent>(); world.AddComponent<ConfigComponent>();
world.AddComponent<EventComponent<WorldEventAttribute>>(); world.AddComponent<EventComponent<EventAttribute>>();
world.AddComponent<UnitComponent>(); world.AddComponent<UnitComponent>();
world.AddComponent<FactoryComponent<Unit>>(); world.AddComponent<FactoryComponent<Unit>>();
world.AddComponent<BehaviorTreeComponent>(); world.AddComponent<BehaviorTreeComponent>();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册