提交 f54e3ed7 编写于 作者: T tanghai

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

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