Files
BreakEscape/app/controllers/break_escape/missions_controller.rb
Z. Cliffe Schreuders 19db2f530d Refactor whitespace and comments for consistency in BreakEscape controllers and models
- Cleaned up unnecessary whitespace in `games_controller.rb`, `missions_controller.rb`, `game.rb`, `mission.rb`, `routes.rb`, `seeds.rb`, and migration files to enhance code readability.
- Standardized comment formatting across various files to maintain consistency and improve clarity.
2025-11-30 00:06:54 +00:00

41 lines
1.2 KiB
Ruby

module BreakEscape
class MissionsController < ApplicationController
def index
@missions = if defined?(Pundit)
policy_scope(Mission)
else
Mission.published
end
# Filter by collection if specified
if params[:collection].present?
@missions = @missions.by_collection(params[:collection])
end
# Eager load CyBOK data for display
@missions = @missions.includes(:break_escape_cyboks)
end
def show
@mission = Mission.find(params[:id])
authorize @mission if defined?(Pundit)
if @mission.requires_vms?
# VM missions (Hacktivity or standalone) need explicit setup
# Redirect to games#new which shows appropriate UI:
# - Hacktivity mode: VM set selection
# - Standalone mode: Flag input form
redirect_to "/break_escape/games/new?mission_id=#{@mission.id}"
else
# Legacy behavior for non-VM missions - auto-create game
@game = Game.find_or_create_by!(
player: current_player,
mission: @mission
)
# Use explicit path instead of route helper to ensure it works in engine context
redirect_to "/break_escape/games/#{@game.id}"
end
end
end
end