Class: PfrpgCore::WeaponTrainingCalculator
- Inherits:
-
Object
- Object
- PfrpgCore::WeaponTrainingCalculator
- Defined in:
- lib/pfrpg_core/weapon_training_calculator.rb
Instance Attribute Summary collapse
-
#character ⇒ Object
readonly
Returns the value of attribute character.
-
#trained_types ⇒ Object
readonly
Returns the value of attribute trained_types.
Instance Method Summary collapse
- #feature_trained?(weapon, feature) ⇒ Boolean
- #gen_trained_types ⇒ Object
-
#initialize(character) ⇒ WeaponTrainingCalculator
constructor
A new instance of WeaponTrainingCalculator.
- #trained_value(weapon, feature) ⇒ Object
Constructor Details
#initialize(character) ⇒ WeaponTrainingCalculator
Returns a new instance of WeaponTrainingCalculator.
4 5 6 7 |
# File 'lib/pfrpg_core/weapon_training_calculator.rb', line 4 def initialize(character) @character = character @trained_types = gen_trained_types end |
Instance Attribute Details
#character ⇒ Object (readonly)
Returns the value of attribute character.
3 4 5 |
# File 'lib/pfrpg_core/weapon_training_calculator.rb', line 3 def character @character end |
#trained_types ⇒ Object (readonly)
Returns the value of attribute trained_types.
3 4 5 |
# File 'lib/pfrpg_core/weapon_training_calculator.rb', line 3 def trained_types @trained_types end |
Instance Method Details
#feature_trained?(weapon, feature) ⇒ Boolean
19 20 21 |
# File 'lib/pfrpg_core/weapon_training_calculator.rb', line 19 def feature_trained?(weapon, feature) PfrpgTables::Tables::Weapons.weapon_training_members(feature.ability_name).include? weapon.get_base_name end |
#gen_trained_types ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/pfrpg_core/weapon_training_calculator.rb', line 9 def gen_trained_types types = [] trains = character.class_features.select { |x| x.type['WeaponTraining'] } trains.sort! { |x,y| x.created < y.created } trains.each do |train| types << train.ability_name end types end |
#trained_value(weapon, feature) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/pfrpg_core/weapon_training_calculator.rb', line 23 def trained_value(weapon, feature) return 0 unless feature_trained?(weapon, feature) bonus = trained_types.size weapon_name = weapon.get_base_name trained_types.each do |t| if PfrpgTables::Tables::Weapons.weapon_training_members(t).include? weapon_name return bonus end bonus -= 1 end return 0 end |