class ShortRestAction
Attributes
as_bonus_action[RW]
Public Class Methods
apply!(battle, item)
click to toggle source
@param battle [Natural20::Battle]
# File lib/natural_20/actions/short_rest_action.rb, line 42 def self.apply!(battle, item) case (item[:type]) when :short_rest Natural20::EventManager.received_event({ source: item[:source], event: :short_rest, targets: item[:targets] }) item[:targets].each do |entity| entity.short_rest!(battle, prompt: true) end battle.session.increment_game_time!(60 * 60) # increment by an hour end end
build(session, source)
click to toggle source
# File lib/natural_20/actions/short_rest_action.rb, line 17 def self.build(session, source) action = ShortRestAction.new(session, source, :short_rest) action.build_map end
can?(entity, battle)
click to toggle source
@param entity [Natural20::Entity] @param battle [Natural20::Battle]
# File lib/natural_20/actions/short_rest_action.rb, line 6 def self.can?(entity, battle) battle && !battle.combat? && (entity.conscious? || entity.stable?) end
Public Instance Methods
build_map()
click to toggle source
# File lib/natural_20/actions/short_rest_action.rb, line 10 def build_map OpenStruct.new({ param: nil, next: -> { self } }) end
resolve(_session, _map, opts = {})
click to toggle source
@option opts battle [Natural20::Battle]
# File lib/natural_20/actions/short_rest_action.rb, line 23 def resolve(_session, _map, opts = {}) battle = opts[:battle] # determine who in the party is eligible for short rest entities = battle.current_party.select do |entity| entity.conscious? || entity.stable? end @result = [{ source: @source, targets: entities, type: :short_rest, battle: battle }] self end