class Demiurge::DSL::LocationBuilder
Declare a “location” block in a World File.
Public Class Methods
new(name, engine, options = {})
click to toggle source
Constructor for a “location” DSL
block
Calls superclass method
Demiurge::DSL::ActionItemBuilder::new
# File lib/demiurge/dsl.rb, line 553 def initialize(name, engine, options = {}) options["type"] ||= "Location" super @agents = [] end
Public Instance Methods
agent(name, options = {}, &block)
click to toggle source
Declare an agent in this location.
# File lib/demiurge/dsl.rb, line 565 def agent(name, options = {}, &block) state = { "position" => @name, "zone" => @state["zone"], "home_zone" => @state["zone"] } builder = AgentBuilder.new(name, @engine, options.merge("state" => state) ) builder.instance_eval(&block) @built_item.state["contents"] << name nil end
description(d)
click to toggle source
Declare a description for this location.
# File lib/demiurge/dsl.rb, line 560 def description(d) @state["description"] = d end