diff options
-rw-r--r-- | app/controllers/activities_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/characters/hearth_controller.rb | 1 | ||||
-rw-r--r-- | app/views/activities/show.html.erb | 5 | ||||
-rw-r--r-- | app/views/characters/hearth/index.html.erb | 24 | ||||
-rw-r--r-- | config/routes.rb | 5 | ||||
-rw-r--r-- | data/activities.yml | 16 | ||||
-rw-r--r-- | data/items.yml | 6 |
7 files changed, 49 insertions, 10 deletions
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" %> </div> -<%= 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 @@ <ul class="my-4"> <% @construct_activities.each do |activity| %> - <li><%= link_to activity.name, start_activity_path(activity), method: :post %> - (costs <%= activity.cost_string %>)</li> + <li> + <%= form_with url: start_activity_path do |f| %> + <%= f.hidden_field :id, value: activity.id %> + <%= f.submit activity.name %> + <% end %> + (costs <%= activity.cost_string %>) + </li> <% end %> </ul> @@ -17,14 +22,23 @@ <% current_char.hearth.built_hearth_amenities.each do |bhi| %> <div class="border-2 border-gray-800 rounded p-4"> <h2 class="text-lg font-bold"><%= bhi.hearth_amenity.name %></h2> - <p>Level <%= bhi.level %></p> - <p><%= bhi.hearth_amenity.description %></p> + <p class="mb-2">Level <%= bhi.level %></p> + <p class="mb-2"><%= bhi.hearth_amenity.description %></p> + <% 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 %> </div> <% end %> </div> <% else %> <p>You haven't built your hearth yet. First, you'll need to start with a foundation.</p> <% 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 %> diff --git a/config/routes.rb b/config/routes.rb index 21230a8..f3096f7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,9 +11,7 @@ Rails.application.routes.draw do put "users", to: "devise/registrations#update", as: "user_registration" end - resources :activities, only: [:show] do - post "start", on: :member - end + resources :activities, only: [:show] resources :characters, only: [:show, :new, :create] do scope module: :characters do @@ -24,5 +22,6 @@ Rails.application.routes.draw do resources :locations, only: [:index, :show] + post "/start_activity", to: "activities#start" post "/finish_activity", to: "game#finish_activity" end diff --git a/data/activities.yml b/data/activities.yml index cf494c1..2395f82 100644 --- a/data/activities.yml +++ b/data/activities.yml @@ -33,6 +33,22 @@ construct_forge_level1: - type: "hearth_amenity" gid: "forge" level: 1 +craft_pig_iron_ingot: + name: "Smelt Pig Iron Ingot" + description: "Smelt a pig iron ingot." + whatnot: + duration: + base: 70 + minimum: 35 + scaling: + otherforge: 2 + cost: + - type: "item" + gid: "crude_iron_ore" + quantity: 10 + results: + - type: "item" + gid: "pig_iron_ingot" quarry_floret_mines: name: "Quarry Floret Mines" description: "Planequarry at the Floret Mines." diff --git a/data/items.yml b/data/items.yml index 06bd627..3d1adef 100644 --- a/data/items.yml +++ b/data/items.yml @@ -43,6 +43,12 @@ yellow_beryl: whatnot: xp_value: planequarry: 50 +pig_iron_ingot: + name: "pig iron ingot" + description: "Low quality iron ingot meant to be remelted for further use." + whatnot: + xp_value: + otherforge: 15 iron_short_sword: name: "Iron short sword" description: "A short sword made of iron." |