feat: Implement Objectives System with UI and Server Sync

- Added ObjectivesManager to track mission objectives and tasks.
- Created ObjectivesPanel for displaying objectives in a collapsible HUD.
- Integrated objectives state restoration from the server during game initialization.
- Implemented task completion and unlocking mechanisms via game actions.
- Added CSS styles for the objectives panel with a pixel-art aesthetic.
- Developed a test scenario to validate the objectives system functionality.
- Updated database schema to include fields for tracking completed objectives and tasks.
This commit is contained in:
Z. Cliffe Schreuders
2025-11-26 00:50:32 +00:00
parent 150518b4c4
commit 9d6d7709c3
16 changed files with 1571 additions and 124 deletions

View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2025_11_25_000002) do
ActiveRecord::Schema[7.2].define(version: 2025_11_25_100000) do
create_table "break_escape_cyboks", force: :cascade do |t|
t.string "ka"
t.string "topic"
@@ -44,6 +44,8 @@ ActiveRecord::Schema[7.2].define(version: 2025_11_25_000002) do
t.integer "score", default: 0, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "objectives_completed", default: 0
t.integer "tasks_completed", default: 0
t.index ["mission_id"], name: "index_break_escape_games_on_mission_id"
t.index ["player_type", "player_id", "mission_id"], name: "index_games_on_player_and_mission", unique: true
t.index ["player_type", "player_id"], name: "index_break_escape_games_on_player"