24 lines
844 B
Ruby
24 lines
844 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Skill < ApplicationRecord
|
|
has_many :skill_values
|
|
has_many :skill_effects
|
|
has_many :effects, through: :skill_effects
|
|
has_many :character_skills
|
|
has_many :weapon_skills
|
|
has_many :summon_calls
|
|
has_many :charge_attacks
|
|
has_many :alt_character_skills, class_name: 'CharacterSkill', foreign_key: 'alt_skill_id'
|
|
has_many :alt_summon_calls, class_name: 'SummonCall', foreign_key: 'alt_skill_id'
|
|
has_many :alt_charge_attacks, class_name: 'ChargeAttack', foreign_key: 'alt_skill_id'
|
|
|
|
validates :name_en, presence: true
|
|
validates :skill_type, presence: true
|
|
|
|
enum skill_type: { character: 1, weapon: 2, summon_call: 3, charge_attack: 4 }
|
|
enum border_type: { damage: 1, healing: 2, buff: 3, debuff: 4, field: 5 }
|
|
|
|
def value_at_level(level)
|
|
skill_values.find_by(level: level)
|
|
end
|
|
end
|