summaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorDavid Gay <david@davidgay.org>2021-06-15 19:13:55 -0400
committerDavid Gay <david@davidgay.org>2021-06-15 19:13:55 -0400
commit53c9df5feb8ad4ebef8f40840d29255a81edb6df (patch)
tree2b11367d054363e100db8b488bab3c816e070bf3 /app/views
parent362fcb62af0949b4c7ac1dfa052fa10b39d70b43 (diff)
Reboot omens and allow infixing items (like omens) into skills
Diffstat (limited to 'app/views')
-rw-r--r--app/views/characters/items/index.html.erb4
-rw-r--r--app/views/characters/skills/_infix_slot.html.erb3
-rw-r--r--app/views/characters/skills/index.html.erb59
3 files changed, 53 insertions, 13 deletions
diff --git a/app/views/characters/items/index.html.erb b/app/views/characters/items/index.html.erb
index 671e68f..57e8531 100644
--- a/app/views/characters/items/index.html.erb
+++ b/app/views/characters/items/index.html.erb
@@ -35,6 +35,10 @@
character_items: @character.character_items.ordered_by_item_name.select { |ci|
ci.item.has_tag?("currency") } %>
+<%= render "characters/items/inventory_section", heading: "Omens",
+ character_items: @character.character_items.ordered_by_item_name.select { |ci|
+ ci.item.has_tag?("omen") } %>
+
<%= render "characters/items/inventory_section", heading: "Seeds",
character_items: @character.character_items.ordered_by_item_name.select { |ci|
ci.item.has_tag?("seed") } %>
diff --git a/app/views/characters/skills/_infix_slot.html.erb b/app/views/characters/skills/_infix_slot.html.erb
new file mode 100644
index 0000000..0113596
--- /dev/null
+++ b/app/views/characters/skills/_infix_slot.html.erb
@@ -0,0 +1,3 @@
+<div class="flex justify-between items-center border-t border-gray-700 p-2">
+ <%= yield %>
+</div>
diff --git a/app/views/characters/skills/index.html.erb b/app/views/characters/skills/index.html.erb
index fd53870..f79b06e 100644
--- a/app/views/characters/skills/index.html.erb
+++ b/app/views/characters/skills/index.html.erb
@@ -1,23 +1,56 @@
<h2 class="text-3xl mb-2">Skills</h2>
<div class="grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
<% @character.character_skills.ordered_by_skill_name.each do |cs| %>
- <div class="rounded border border-gray-700">
- <div class="flex p-1">
- <div class="flex-grow">
- <div class="text-xl text-display mb-1">
- <%= cs.skill.name %>
+ <div>
+ <div class="rounded border border-gray-700">
+ <div class="flex p-1">
+ <div class="flex-grow">
+ <div class="text-xl text-display mb-1">
+ <%= cs.skill.name %>
+ </div>
+ <div class="flex items-center text-xs">
+ <span class="bg-gray-700 px-1 py-0.5 rounded mr-1">XP</span><%= cs.xp %>
+ </div>
</div>
- <div class="flex items-center text-xs">
- <span class="bg-gray-700 px-1 py-0.5 rounded mr-1">XP</span><%= cs.xp %>
+ <div class="text-xl m-2 text-display">
+ <%= cs.level %>
</div>
</div>
- <div class="text-xl m-2 text-display">
- <%= cs.level %>
- </div>
- </div>
- <div class="border border-gray-800 h-2 my-1">
- <div class="bg-gray-600 h-full" style="width: <%= cs.percentage_of_skill_level_completed %>%">
+ <div class="border border-gray-700 h-2 mt-1 -mb-px -mx-px">
+ <div class="bg-gray-600 h-full" style="width: <%= cs.percentage_of_skill_level_completed %>%">
+ </div>
</div>
+ <% @character.item_infixes.where(skill: cs.skill).each do |ii| %>
+ <%= render "characters/skills/infix_slot" do %>
+ <div>
+ <%= ii.item.name %>
+ </div>
+ <div>
+ <%= button_to "Remove", character_item_infix_path(id: ii.id), method: :delete %>
+ </div>
+ <% end %>
+ <% end %>
+ <% @character.available_infixes(cs.skill).times do %>
+ <%= render "characters/skills/infix_slot" do %>
+ <%# TODO: Don't load all into memory %>
+ <% infixable_items = @character.items.select {|i| i.infixable?(cs.skill)} %>
+ <% if infixable_items.any? %>
+ <%= form_with url: character_item_infixes_path, class: "w-full" do |f| %>
+ <div class="flex space-x-1">
+ <div class="flex-grow">
+ <%= f.select :item_id, infixable_items.map { |i| [i.name, i.id]}, {}, class: "w-full" %>
+ <%= f.hidden_field :skill_id, value: cs.skill.id %>
+ </div>
+ <div>
+ <%= f.submit "Infix" %>
+ </div>
+ </div>
+ <% end %>
+ <% else %>
+ <div class="text-gray-500">No items to infix.</div>
+ <% end %>
+ <% end %>
+ <% end %>
</div>
</div>
<% end %>