blob: 24519b1ff3697038fee9ac25c5f2bc1a9e334944 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class MonsterKill < ApplicationRecord
belongs_to :monster
belongs_to :character
validates :quantity, numericality: { greater_than_or_equal_to: 0, only_integer: true }
scope :ordered_by_monster_name, -> { includes(:monster).order("monsters.name") }
after_save :award_titles
private
def award_titles
character.award_title("spiteful") if quantity >= 1000
character.award_title("hateful") if quantity >= 10_000
character.award_title("vicious") if quantity >= 100_000
all_kills_quantity = character.monster_kills.sum(:quantity)
character.award_title("slayer") if all_kills_quantity >= 1_000
character.award_title("butcher") if all_kills_quantity >= 10_000
character.award_title("slaughterer") if all_kills_quantity >= 100_000
character.award_title("massacrer") if all_kills_quantity >= 1_000_000
end
end
|