Class: Gamefic::Director::Delegate
- Inherits:
-
Object
- Object
- Gamefic::Director::Delegate
- Defined in:
- lib/gamefic/director/delegate.rb
Class Method Summary collapse
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(actor, orders) ⇒ Delegate
constructor
A new instance of Delegate.
- #proceed ⇒ Object
Constructor Details
#initialize(actor, orders) ⇒ Delegate
Returns a new instance of Delegate.
18 19 20 21 22 23 |
# File 'lib/gamefic/director/delegate.rb', line 18 def initialize(actor, orders) @actor = actor @orders = orders @did = [] @validated = false end |
Class Method Details
.proceed_for(actor) ⇒ Object
6 7 8 9 |
# File 'lib/gamefic/director/delegate.rb', line 6 def proceed_for actor return if stack_map[actor].nil? stack_map[actor].last.proceed unless stack_map[actor].last.nil? end |
Instance Method Details
#execute ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/gamefic/director/delegate.rb', line 40 def execute return if @orders.length == 0 stack_map[@actor] ||= [] stack_map[@actor].push self proceed stack_map[@actor].pop stack_map.delete @actor if stack_map[@actor].empty? end |
#proceed ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gamefic/director/delegate.rb', line 25 def proceed return if @orders.length == 0 executed = false while !executed order = @orders.shift break if order.nil? # HACK: Make sure Character#proceed does not repeat an action next if @did.include?(order.action) @did.push order.action @last_action = order.action executed = attempt(order) return if order.canceled? end end |