class HideAction
Attributes
as_bonus_action[RW]
Public Class Methods
apply!(battle, item)
click to toggle source
@param battle [Natural20::Battle]
# File lib/natural_20/actions/hide_action.rb, line 33 def self.apply!(battle, item) case (item[:type]) when :hide Natural20::EventManager.received_event({ source: item[:source], roll: item[:roll], event: :hide }) item[:source].hiding!(battle, item[:roll].result) if item[:bonus_action] battle.consume(item[:source], :bonus_action) else battle.consume(item[:source], :action) end end end
build(session, source)
click to toggle source
# File lib/natural_20/actions/hide_action.rb, line 15 def self.build(session, source) action = HideAction.new(session, source, :attack) action.build_map end
can?(entity, battle)
click to toggle source
# File lib/natural_20/actions/hide_action.rb, line 4 def self.can?(entity, battle) battle && entity.total_actions(battle).positive? end
Public Instance Methods
build_map()
click to toggle source
# File lib/natural_20/actions/hide_action.rb, line 8 def build_map OpenStruct.new({ param: nil, next: -> { self } }) end
resolve(_session, _map, opts = {})
click to toggle source
# File lib/natural_20/actions/hide_action.rb, line 20 def resolve(_session, _map, opts = {}) stealth_roll = @source.stealth_check!(opts[:battle]) @result = [{ source: @source, bonus_action: as_bonus_action, type: :hide, roll: stealth_roll, battle: opts[:battle] }] self end