Zitat Zitat
Würde es ncht vielfach einfacher sein die Interaktion dieser 17 Goblins in einer Methode zu verwirklichen und diese durch die Goblins aufrufen zu lassen anstatt jedem Goblin diese Methode speichern zu lassen?
Das dürfte ziemlich egal sein. Ich würde aber eine Klasse für Interaktionen schreiben und den Goblins Instanzen dieser Klassen geben.
Code:
module Interaction
  
  class DoManyThings
    def initialize(interactions)
      @interactions = interactions
    end

    def execute_by(npc)
      @interactions.each {|action| action.execute_by(npc)}  
    end
  end

  class SaySomething
    def initialize(text)
      @text = text
    end

    def execute_by(npc)
      print @text
    end
  end

  # ...
  
end

# ...

@npcs = []
goblin = Goblin.new
@npcs << goblin
goblin.interaction = SaySomething.new("*Zieht eine Fratze*")