Class: PfrpgCore::Skills

Inherits:
Object
  • Object
show all
Defined in:
lib/pfrpg_core/skills.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_levelObject (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

#skillsObject (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(options={})
  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_filtersObject



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