diff --git a/lib/aethyr/core/actions/action.rb b/lib/aethyr/core/actions/action.rb index 474219f2c35db82429d18742956c2e3e4ce3b746..df067fab4b3cde2c11cdb0693aab2afbaad815b8 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 671e02268458a629dfc70f67492a980231ecca3d..344bcb95b40d15a7d65381427cb72c385e3c23a0 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