class DashAction
typed: true
Attributes
as_bonus_action[RW]
Public Class Methods
apply!(battle, item)
click to toggle source
# File lib/natural_20/actions/dash_action.rb, line 25 def self.apply!(battle, item) case item[:type] when :dash Natural20::EventManager.received_event({ source: item[:source], event: :dash }) battle.entity_state_for(item[:source])[:movement] += item[:source].speed if as_bonus_action battle.entity_state_for(item[:source])[:bonus_action] -= 1 else battle.entity_state_for(item[:source])[:action] -= 1 end end end
can?(entity, battle, _options = {})
click to toggle source
# File lib/natural_20/actions/dash_action.rb, line 12 def self.can?(entity, battle, _options = {}) battle && entity.total_actions(battle).positive? end
Public Instance Methods
build_map()
click to toggle source
# File lib/natural_20/actions/dash_action.rb, line 5 def build_map OpenStruct.new({ param: nil, next: -> { self } }) end
resolve(_session, _map, opts = {})
click to toggle source
# File lib/natural_20/actions/dash_action.rb, line 16 def resolve(_session, _map, opts = {}) @result = [{ source: @source, type: :dash, battle: opts[:battle] }] self end