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