summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorDavid Gay <david@davidgay.org>2021-06-15 22:30:47 -0400
committerDavid Gay <david@davidgay.org>2021-06-15 22:30:54 -0400
commit23d07f8badb2b2ce8139ee421157a96fb61455dc (patch)
tree7e518d66f8dd0ed512a64fdc6e19c2116bd79c8e /app/models
parent637adf2963f174c3e3e3d6cf9efbff314e306f3e (diff)
Add 7 new titles, awarded for MonsterKill quantity
Diffstat (limited to 'app/models')
-rw-r--r--app/models/monster_kill.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/models/monster_kill.rb b/app/models/monster_kill.rb
index 4096e8e..24519b1 100644
--- a/app/models/monster_kill.rb
+++ b/app/models/monster_kill.rb
@@ -4,4 +4,19 @@ class MonsterKill < ApplicationRecord
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