From 5afdcd12f04102b5cf5d5a310981bc576a992119 Mon Sep 17 00:00:00 2001 From: David Gay Date: Wed, 19 May 2021 21:16:15 -0400 Subject: Implement crafting from the hearth forge --- app/controllers/activities_controller.rb | 2 +- app/controllers/characters/hearth_controller.rb | 1 + app/views/activities/show.html.erb | 5 ++++- app/views/characters/hearth/index.html.erb | 24 +++++++++++++++++++----- 4 files changed, 25 insertions(+), 7 deletions(-) (limited to 'app') diff --git a/app/controllers/activities_controller.rb b/app/controllers/activities_controller.rb index f72bc3a..934f617 100644 --- a/app/controllers/activities_controller.rb +++ b/app/controllers/activities_controller.rb @@ -7,7 +7,7 @@ class ActivitiesController < ApplicationController @activity = Activity.find(params[:id]) if current_char.can_do_activity?(@activity) current_char.start_activity(@activity) - redirect_to action: :show + redirect_to activity_path(@activity) else flash[:alert] = "You can't do that. Make sure you have the items and meet the requirements." redirect_to character_path(current_char) diff --git a/app/controllers/characters/hearth_controller.rb b/app/controllers/characters/hearth_controller.rb index f2d2bf7..abe8232 100644 --- a/app/controllers/characters/hearth_controller.rb +++ b/app/controllers/characters/hearth_controller.rb @@ -2,5 +2,6 @@ class Characters::HearthController < ApplicationController def index @all_amenities = HearthAmenity.all @construct_activities = Activity.where("gid like ?", "construct_%") + @forge_activities = Activity.where("gid like ?", "craft_%") end end diff --git a/app/views/activities/show.html.erb b/app/views/activities/show.html.erb index 6db2fb2..84c19a4 100644 --- a/app/views/activities/show.html.erb +++ b/app/views/activities/show.html.erb @@ -9,4 +9,7 @@ <%= render "timer" %> -<%= link_to "Start", start_activity_path(@activity), method: :post %> +<%= form_with url: start_activity_path do |f| %> + <%= f.hidden_field :id, value: @activity.id %> + <%= f.submit "Start" %> +<% end %> diff --git a/app/views/characters/hearth/index.html.erb b/app/views/characters/hearth/index.html.erb index 487bd46..6f2c444 100644 --- a/app/views/characters/hearth/index.html.erb +++ b/app/views/characters/hearth/index.html.erb @@ -8,8 +8,13 @@ @@ -17,14 +22,23 @@ <% current_char.hearth.built_hearth_amenities.each do |bhi| %>

<%= bhi.hearth_amenity.name %>

-

Level <%= bhi.level %>

-

<%= bhi.hearth_amenity.description %>

+

Level <%= bhi.level %>

+

<%= bhi.hearth_amenity.description %>

+ <% if bhi.hearth_amenity.gid == "forge" %> + <%= form_with url: start_activity_path, method: :post do |f| %> + <%= f.select :id, @forge_activities.map { |a| [a.name, a.id] } %> + <%= f.submit "Go" %> + <% end %> + <% end %>
<% end %> <% else %>

You haven't built your hearth yet. First, you'll need to start with a foundation.

<% construct_activity = foundation.construct_activity(1) %> - <%= link_to construct_activity.name, start_activity_path(construct_activity), method: :post %> + <%= form_with url: start_activity_path do |f| %> + <%= f.hidden_field :id, value: construct_activity.id %> + <%= f.submit construct_activity.name %> + <% end %> (costs <%= construct_activity.cost_string %>) <% end %> -- cgit v1.2.3