summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/game_controller.rb7
-rw-r--r--app/models/character.rb7
-rw-r--r--app/views/activities/_results.html.erb2
-rw-r--r--app/views/application/components/text/_title.html.erb2
4 files changed, 18 insertions, 0 deletions
diff --git a/app/controllers/game_controller.rb b/app/controllers/game_controller.rb
index 4b96b49..8c1acaf 100644
--- a/app/controllers/game_controller.rb
+++ b/app/controllers/game_controller.rb
@@ -57,6 +57,13 @@ class GameController < ApplicationController
if table_roll >= score
give_item_with_xp(table_entry, quantity)
+
+ table_entry[:titles]&.each do |title_data|
+ title = Title.find_by_gid(title_data[:gid])
+ if current_char.award_title(title)
+ @results.push({ type: "title", title: title })
+ end
+ end
break
end
end
diff --git a/app/models/character.rb b/app/models/character.rb
index 970ede1..92e84c7 100644
--- a/app/models/character.rb
+++ b/app/models/character.rb
@@ -150,6 +150,13 @@ class Character < ApplicationRecord
self.update(activity: nil, activity_started_at: nil, queued_actions: nil)
end
+ def award_title(title)
+ title = Title.find_by_gid(title) if title.is_a? String
+ # TODO: Simplify these lines?
+ return false if self.title_awards.exists?(title: title)
+ self.title_awards.create(title: title)
+ end
+
def equipment_stats
stats = {}
self.equipment.each do |eq|
diff --git a/app/views/activities/_results.html.erb b/app/views/activities/_results.html.erb
index e0e54cc..49de2d5 100644
--- a/app/views/activities/_results.html.erb
+++ b/app/views/activities/_results.html.erb
@@ -16,6 +16,8 @@
<p class="text-xs italic"><%= result[:monster].description %></p>
<% when "xp" %>
<p class="text-xs">You gained <%= result[:xp] %> <%= result[:skill].name %> XP.</p>
+ <% when "title" %>
+ <p>You earned the title <%= render "application/components/text/title", title: result[:title] %>!</p>
<% when "message" %>
<p><%= result[:body] %></p>
<% when "error" %>
diff --git a/app/views/application/components/text/_title.html.erb b/app/views/application/components/text/_title.html.erb
index 1cf13b7..edcf220 100644
--- a/app/views/application/components/text/_title.html.erb
+++ b/app/views/application/components/text/_title.html.erb
@@ -2,6 +2,8 @@
<% case title.gid %>
<% when "steward" %>
<span class="text-gray-200">Steward</span>
+ <% when "beryly" %>
+ <span class="text-yellow-400">Beryly</span>
<% else %>
<%= title.name %>
<% end %>