From 43a3e41f5c296f1af486483cbdde36b9c6acb1b1 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com>
Date: Thu, 4 Mar 2021 02:08:23 -0500
Subject: [PATCH] Restructured Event into an Openstruct

---
 lib/aethyr/core/actions/action.rb                | 16 +++++++++-------
 .../core/actions/commands/command_action.rb      | 10 ++++++----
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/lib/aethyr/core/actions/action.rb b/lib/aethyr/core/actions/action.rb
index 474219f..df067fa 100644
--- a/lib/aethyr/core/actions/action.rb
+++ b/lib/aethyr/core/actions/action.rb
@@ -1,14 +1,16 @@
+require 'aethyr/core/event'
+
 module Aethyr
   module Extend
-    module Action
-      def action; end
-    end
+    class Action < Event
+      def initialize(**data)
+        super(**data)
 
-    class Event
-      include Aethyr::Extend::Action
+        self.agent = data[:agent]
+        self.target = data[:target]
+      end
 
-      def initialize(**data)
-        @data = data.freeze
+      def action
       end
     end
   end
diff --git a/lib/aethyr/core/actions/commands/command_action.rb b/lib/aethyr/core/actions/commands/command_action.rb
index 671e022..344bcb9 100644
--- a/lib/aethyr/core/actions/commands/command_action.rb
+++ b/lib/aethyr/core/actions/commands/command_action.rb
@@ -2,19 +2,21 @@ require "aethyr/core/actions/action"
 
 module Aethyr
   module Extend
-    class CommandAction < Event
+    class CommandAction < Action
       def initialize(actor, **data)
-        super(**data)
+        new_data = data.dup
+        new_data[:actor] = actor
+        super(**new_data)
         @player = actor
       end
 
       #Looks in player's inventory and room for name.
       #Then checks at global level for GOID.
       def find_object(name, event)
-        if event[:player].nil?
+        if event[:actor].nil?
           return $manager.find(name, nil) || $manager.get_object(name)
         else
-          return $manager.find(name, event[:player]) || $manager.find(name, event[:player].container) || $manager.get_object(name)
+          return $manager.find(name, event[:actor]) || $manager.find(name, event[:actor].container) || $manager.get_object(name)
         end
       end
     end
-- 
GitLab