Class: PfrpgCore::Skills
- Inherits:
-
Object
- Object
- PfrpgCore::Skills
- Defined in:
- lib/pfrpg_core/skills.rb
Instance Attribute Summary collapse
-
#max_training_level ⇒ Object
readonly
Returns the value of attribute max_training_level.
-
#skills ⇒ Object
readonly
Returns the value of attribute skills.
Instance Method Summary collapse
- #as_json(options = {}) ⇒ Object
- #current_trained_ranks(name) ⇒ Object
- #get_skill(name) ⇒ Object
-
#initialize(character) ⇒ Skills
constructor
A new instance of Skills.
- #skill_filters ⇒ Object
- #skills_per_level(heroclass, favored_bonus) ⇒ Object
Constructor Details
#initialize(character) ⇒ Skills
Returns a new instance of Skills.
95 96 97 98 99 100 101 102 |
# File 'lib/pfrpg_core/skills.rb', line 95 def initialize(character) @character = character @bonuses = character.bonuses @attributes= character.attributes @skillz = character.base_skills || [] @max_training_level = character.hit_die @skills = @skillz.map { |x| PrettySkill.new(x, @character, skill_filters) } end |
Instance Attribute Details
#max_training_level ⇒ Object (readonly)
Returns the value of attribute max_training_level.
94 95 96 |
# File 'lib/pfrpg_core/skills.rb', line 94 def max_training_level @max_training_level end |
#skills ⇒ Object (readonly)
Returns the value of attribute skills.
94 95 96 |
# File 'lib/pfrpg_core/skills.rb', line 94 def skills @skills end |
Instance Method Details
#as_json(options = {}) ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/pfrpg_core/skills.rb', line 111 def as_json(={}) skillz = {} @skills.each do |s| skillz[s.name] = s end skillz end |
#current_trained_ranks(name) ⇒ Object
119 120 121 122 123 124 125 |
# File 'lib/pfrpg_core/skills.rb', line 119 def current_trained_ranks(name) begin get_skill(name).trained_rank rescue Exception => e return 0 end end |
#get_skill(name) ⇒ Object
127 128 129 |
# File 'lib/pfrpg_core/skills.rb', line 127 def get_skill(name) @skills.find { |x| x.name.downcase[name.downcase] } end |
#skill_filters ⇒ Object
104 105 106 107 108 109 |
# File 'lib/pfrpg_core/skills.rb', line 104 def skill_filters [ Filters::SkillFocusMod.new(@character), Filters::ProwessMod.new(@character) ] end |
#skills_per_level(heroclass, favored_bonus) ⇒ Object
131 132 133 134 135 136 137 138 |
# File 'lib/pfrpg_core/skills.rb', line 131 def skills_per_level(heroclass, favored_bonus) base = heroclass.skills_per_level i = @attributes.int_mod r = ((@character.race.name == 'Human') && 1) || 0 # +1 for Human f = ((favored_bonus == 'skill') && 1) || 0 # +1 for favored # puts "base #{base} + i #{i} + r #{r} + f #{f} = #{base + i + r + f}" return base + i + r + f end |