module Multiattack
typed: false
Public Instance Methods
clear_multiattack!(battle)
click to toggle source
@param battle [Natural20::Battle]
# File lib/natural_20/concerns/multiattack.rb, line 32 def clear_multiattack!(battle) entity_state = battle.entity_state_for(self) entity_state[:multiattack] = {} end
multi_attack_actions(session, battle)
click to toggle source
Get available multiattack actions @param session [Natural20::Session] @param battle [Natural20::Battle] @return [Array]
# File lib/natural_20/concerns/multiattack.rb, line 11 def multi_attack_actions(session, battle) end
multiattack?(battle, npc_action)
click to toggle source
@param battle [Natural20::Battle] @param npc_action [Hash]
# File lib/natural_20/concerns/multiattack.rb, line 39 def multiattack?(battle, npc_action) return false unless npc_action return false unless class_feature?("multiattack") entity_state = battle.entity_state_for(self) return false unless entity_state[:multiattack] return false unless npc_action[:multiattack_group] entity_state[:multiattack].each do |_group, attacks| return true if attacks.include?(npc_action[:name]) end false end
reset_turn!(battle)
click to toggle source
@param battle [Natural20::Battle]
Calls superclass method
# File lib/natural_20/concerns/multiattack.rb, line 15 def reset_turn!(battle) entity_state = super battle return entity_state unless class_feature?("multiattack") multiattack_groups = {} @properties[:actions].select { |a| a[:multiattack_group] }.each do |a| multiattack_groups[a[:multiattack_group]] ||= [] multiattack_groups[a[:multiattack_group]] << a[:name] end entity_state[:multiattack] = multiattack_groups entity_state end
setup_attributes()
click to toggle source
Calls superclass method
# File lib/natural_20/concerns/multiattack.rb, line 3 def setup_attributes super end