32 Commits

Author SHA1 Message Date
Jacob Schmidt
da5dccd2c0 Persist runtime task catalog entries on backend failure
- Track runtime catalog entries and status locally
- Fall back to cached entries when backend catalog/status lookups fail
- Clear cached runtime task state when tasks are removed
2026-05-20 19:12:23 -05:00
Jacob Schmidt
12dc262136 Refactor task store into modular services
- Add task chain prerequisite parsing and startup gating
- Split lifecycle, catalog, entity, participant, and reward logic into service objects
- Update task modules and docs for chained task flow
2026-05-20 18:50:46 -05:00
Jacob Schmidt
9b31184f0c Separate CAD task assignment from task acceptance
- Reserve tasks as `available`/`assigned` before leader acknowledgement
- Update CAD and task lifecycle handling and docs to reflect the new flow
- Remove startup heartbeat reset and reset task backend explicitly in preInit
2026-05-17 10:12:15 -05:00
Jacob Schmidt
e49b4e4dd9 feat: Add reset functionality to TaskStore initialization for mission state management 2026-05-16 23:44:17 -05:00
Jacob Schmidt
54c5b415e4 feat: Enhance task and assignment handling with new payload structures and logging 2026-05-16 23:21:49 -05:00
Jacob Schmidt
96718996b2 feat: Implement task store reset functionality and update documentation for server launch prerequisites 2026-05-16 22:12:57 -05:00
Jacob Schmidt
c176837a2c Verify and fix module documentation accuracy
- Add missing forge_server_actor runtime dependency to phone module (critical)
- Clarify that garage and locker are event bus listeners, not emitters
- Document economy runtime-only dependencies (bank, org)
- Add TaskStore public API documentation (27 methods organized by category)
- Update task module event emissions and hooks documentation

All documentation now aligns with actual implementation verified against codebase.
2026-05-15 20:46:19 -05:00
Jacob Schmidt
b1959ee06d Refactor event listener registration and update logging settings for task events 2026-05-15 20:22:42 -05:00
Jacob Schmidt
c6a0982450 Emit task and CAD state changes on the event bus
- Add task reward, notification, and rating events
- Emit CAD assignment, request, and group updates
- Route org and bank sync through event bus listeners
2026-05-15 19:57:19 -05:00
Jacob Schmidt
9deb73ec8e Migrate task logic to object classes
- Move task implementations from prototype scripts into `functions/objects`
- Keep public task functions as compatibility adapters
- Update docs and init wiring for the new object-based layout
2026-05-15 18:50:28 -05:00
Jacob Schmidt
732433f848 Add task lifecycle event bus integration
- Add a common in-process event bus
- Emit task lifecycle events from task store and instances
- Register CAD listeners to invalidate task state
2026-05-14 22:11:23 -05:00
Jacob Schmidt
e6eceac4ec Add defend wave templates and standardize task endings
- Let defend tasks use synced enemy groups as wave templates
- Record task status changes on fail/success
- Route end conditions through the server-side mission end helper
2026-05-14 19:20:44 -05:00
Jacob Schmidt
53a2bb4280 Add review-only task prototype classes
- Add defend, delivery, destroy, and HVT prototype task flows
- Add supporting entity controller prototypes and init settings
- Gate mission manager PFH behind `enableGenerator`
2026-05-02 21:54:23 -05:00
Jacob Schmidt
c3582460f9 Keep generated missions unaccepted until players accept them
- Skip auto-binding ownership for mission-manager tasks
- Add quiet logging for catalog task lookups
- Log mission cleanup before completing generators
2026-05-02 02:35:36 -05:00
Jacob Schmidt
0cd6509337 Refactor phone and task systems around repositories
- Rename phone class to repository and update client event handlers
- Split task helpers/modules/prototypes and add mission generator flow
- Add reward parsing, mission manager startup, and attack logging
2026-05-02 01:29:25 -05:00
Jacob Schmidt
1b000af2e6 Add prototypes for entity and hostage task management
- Introduced `EntityControllerBaseClass` for managing object-based entity controllers.
- Added `HostageEntityController` to handle hostage-specific behaviors and interactions.
- Created `HostageTaskBaseClass` to define the structure and logic for hostage-related tasks.
- Updated `README.md` to include new prototypes and their purposes.
- Refactored `taskObjectPrototypes.sqf` to load new classes and maintain organization.
2026-04-30 22:48:52 -05:00
Jacob Schmidt
3535484079 docs: add mission designer setup guide to TASK_USAGE_GUIDE.md 2026-04-28 23:55:37 -05:00
Jacob Schmidt
07d5422091 Refactor task management system with object prototypes and enhanced logging
- Updated fnc_extCall.sqf to suppress logging for specific functions.
- Added object model prototypes for task instances in prototypes/taskObjectPrototypes.sqf.
- Enhanced README.md to document the new object model and its purpose.
- Modified XEH_postInit.sqf to improve event handling for defuse tasks.
- Updated various task functions (fnc_attack, fnc_defend, fnc_defuse, fnc_delivery, fnc_destroy, fnc_heartBeat, fnc_hostage, fnc_hvt) to include task acceptance checks.
- Improved fnc_makeHostage and fnc_makeIED to ensure proper task registration and state management.
- Introduced new methods in task object prototypes for better state management and task flow control.
2026-04-28 23:04:22 -05:00
Jacob Schmidt
355e784628 feat: enhance locker initialization with dynamic class assignment 2026-04-26 16:49:04 -05:00
Jacob Schmidt
22eca1f6cd fix: update function call for taskDefend to use CFUNC 2026-04-26 00:19:30 -05:00
Jacob Schmidt
3668223f11 feat: add defend task module with configurable parameters and attributes 2026-04-26 00:05:45 -05:00
Jacob Schmidt
b8fef9be98 Enhance task module documentation with CAD compatibility details and BIS task prerequisites 2026-04-18 12:32:50 -05:00
Jacob Schmidt
0cfaec86d0 Add CAD compatibility section to task module documentation 2026-04-18 12:15:24 -05:00
Jacob Schmidt
81baca90d3 Enhance task module documentation with new task creation methods and usage examples 2026-04-18 12:11:16 -05:00
Jacob Schmidt
9d789440e0 Enhance documentation and functionality across various server addons
- Updated README.md files for extension, garage, locker, main, organization, phone, store, and task addons to provide clearer overviews, dependencies, main components, and usage notes.
- Improved task module documentation to clarify timer semantics and server task flows, ensuring accurate usage of time limits.
- Adjusted default values for task time limits and IED timers to enforce positive countdown requirements.
- Added new CAD addon for dispatch coordination, including its overview, dependencies, main components, and event handling.
2026-04-18 11:55:19 -05:00
Jacob Schmidt
5576cc4746 Refactor task modules for improved parameter handling and logging
- Updated fnc_defuseModule, fnc_deliveryModule, fnc_destroyModule, fnc_hostageModule, fnc_hvtModule to enhance parameter retrieval and logging.
- Introduced error handling for missing task IDs across modules.
- Consolidated task initialization logic into fnc_startTask for better maintainability.
- Added fnc_cargoModule as a sync target for cargo entities in delivery tasks.
- Improved logging to provide clearer insights into task parameters and synced entities.
2026-04-17 19:34:21 -05:00
Jacob Schmidt
1d54cc70c3 Move hot state into transient extension-backed stores
- Remove in-SQF registry mirroring for actor, bank, CAD, org, and task state
- Add validation harness and persistence warnings for hot-state flows
- Treat CAD and task operational state as restart-scoped
2026-04-05 10:05:48 -05:00
Jacob Schmidt
b8dd3ef651 Add task and request payload plumbing to CAD dispatcher
- Thread request data through UI bridge and dispatcher events
- Add task models, repositories, services, and extension wiring
- Include submitted request fields in converted order notes
2026-04-02 15:35:39 -05:00
Jacob Schmidt
53bc8db7d0 Handle bank account sync in UI bridge
- Route bank sync payloads through the client bridge
- Refresh account state without rebuilding the full session
- Split CAD dispatcher UI into modular source files
2026-04-02 09:10:12 -05:00
Jacob Schmidt
4ea7cf7d05 Add CAD request workflows and focus actions
- Add request hydration, submission, closing, and response handling
- Wire UI events for dispatch orders, support requests, and map focus
- Expand dispatcher layout for alerts, requests, and detail views
2026-03-31 20:14:45 -05:00
Jacob Schmidt
112488f82e Rename offline status to unavailable
- Update CAD client UI and generated site assets
- Keep dispatcher and sidepanel status lists aligned with server defaults
- Refresh task, assignment, and group repository initialization
2026-03-31 06:21:43 -05:00
Jacob Schmidt
45a4f7460a Integrate task contracts and CAD UI pipeline
- add the imported server task addon to the current framework with task ownership, task catalog, mission-manager attack generation, org-owned reward routing, participant notifications, and reputation syncing
- restructure org persistence so core org data, assets, fleet, and members are handled through the current Redis/extension model with matching Rust repository and service updates
- wire the client CAD addon into the framework, actor device action, shared web UI bridge pattern, and task listing/acceptance flow
- add a source-driven CAD web UI layout with ui.config.mjs and extend the shared web UI builder to support custom HTML template pages for multi-surface UIs
2026-03-28 02:20:34 -05:00