From 23d07f8badb2b2ce8139ee421157a96fb61455dc Mon Sep 17 00:00:00 2001 From: David Gay Date: Tue, 15 Jun 2021 22:30:47 -0400 Subject: Add 7 new titles, awarded for MonsterKill quantity --- app/models/monster_kill.rb | 15 +++++++++++++++ app/views/application/components/text/_title.html.erb | 14 ++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'app') 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 diff --git a/app/views/application/components/text/_title.html.erb b/app/views/application/components/text/_title.html.erb index a7c2a7e..5e1d5a2 100644 --- a/app/views/application/components/text/_title.html.erb +++ b/app/views/application/components/text/_title.html.erb @@ -10,6 +10,20 @@ Aspirant <% when "sentinel" %> Sentinel + <% when "spiteful" %> + Spiteful + <% when "hateful" %> + Hateful + <% when "vicious" %> + Vicious + <% when "slayer" %> + Slayer + <% when "butcher" %> + Butcher + <% when "slaughterer" %> + Slaughterer + <% when "massacrer" %> + Massacrer <% else %> <%= title.name %> <% end %> -- cgit v1.2.3