Sha256: aea02af5be39ba326ff9518a0df9b48ed34d553d75a7ea4bd40c5a764beacda0

Contents?: true

Size: 685 Bytes

Versions: 4

Compression:

Stored size: 685 Bytes

Contents

# Behavior is any type of behavior an actor can exibit.
class Behavior
  attr_accessor :actor, :opts

  def initialize(actor,opts={})
    @actor = actor
    @opts = opts
    req_behs = self.class.required_behaviors
    req_behs.each do |beh|
      unless @actor.is? beh
        @actor.is beh
      end
    end
    setup
  end

  def setup
  end

  def removed
  end

  def update(time)
  end

  def self.required_behaviors
    @required_behaviors ||= []
  end

  def self.requires_behaviors(*args)
    @required_behaviors ||= []
    for a in args
      @required_behaviors << a
    end
    @behaviors
  end

  def self.requires_behavior(*args)
    requires_behaviors(*args)
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gamebox-0.1.1 lib/gamebox/behavior.rb
gamebox-0.1.0 lib/gamebox/behavior.rb
gamebox-0.0.9 lib/gamebox/behavior.rb
gamebox-0.0.8 lib/gamebox/behavior.rb