Просмотр исходного кода

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

tanghai 11 лет назад
Родитель
Сommit
f54e3ed712

+ 4 - 4
CSharp/Game/Controller/BuffComponentExtension.cs

@@ -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;
         }

+ 1 - 1
CSharp/Game/Controller/Controller.csproj

@@ -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>

+ 1 - 1
CSharp/Game/Controller/WorldEventType.cs → CSharp/Game/Controller/EventType.cs

@@ -1,6 +1,6 @@
 namespace Controller
 {
-    public static class WorldEventType
+    public static class EventType
     {
         public const int BeforeAddBuff = 0;
         public const int AfterAddBuff = 1;

+ 11 - 0
CSharp/Game/Model/EventAttribute.cs

@@ -0,0 +1,11 @@
+using Common.Event;
+
+namespace Model
+{
+    public class EventAttribute: AEventAttribute
+    {
+        public EventAttribute(int type): base(type)
+        {
+        }
+    }
+}

+ 1 - 2
CSharp/Game/Model/Model.csproj

@@ -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\" />

+ 0 - 11
CSharp/Game/Model/UnitEventAttribute.cs

@@ -1,11 +0,0 @@
-using Common.Event;
-
-namespace Model
-{
-    public class UnitEventAttribute: AEventAttribute
-    {
-        public UnitEventAttribute(int type): base(type)
-        {
-        }
-    }
-}

+ 0 - 11
CSharp/Game/Model/WorldEventAttribute.cs

@@ -1,11 +0,0 @@
-using Common.Event;
-
-namespace Model
-{
-    public class WorldEventAttribute: AEventAttribute
-    {
-        public WorldEventAttribute(int type): base(type)
-        {
-        }
-    }
-}

+ 1 - 1
CSharp/Game/MongoDBTest/MongoDBTest.cs

@@ -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>();