Module: Multiattack
- Included in:
- Natural20::Npc, Natural20::PlayerCharacter
- Defined in:
- lib/natural_20/concerns/multiattack.rb
Overview
typed: false
Instance Method Summary collapse
- #clear_multiattack!(battle) ⇒ Object
-
#multi_attack_actions(session, battle) ⇒ Array
Get available multiattack actions.
- #multiattack?(battle, npc_action) ⇒ Boolean
- #reset_turn!(battle) ⇒ Object
- #setup_attributes ⇒ Object
Instance Method Details
#clear_multiattack!(battle) ⇒ Object
32 33 34 35 |
# 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) ⇒ Array
Get available multiattack actions
11 12 |
# File 'lib/natural_20/concerns/multiattack.rb', line 11 def multi_attack_actions(session, battle) end |
#multiattack?(battle, npc_action) ⇒ Boolean
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# 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) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# 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 ⇒ Object
3 4 5 |
# File 'lib/natural_20/concerns/multiattack.rb', line 3 def setup_attributes super end |