96 Commits

Author SHA1 Message Date
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
9d80e32918 Add player guide and roster member map focus
- add player-facing docs and synced screenshots
- let CAD roster entries center the map on a member
- refresh garage and economy UI bridges and docs
2026-05-19 18:55:51 -05:00
Jacob Schmidt
b182212ecf Rename actor bootstrap flow to welcome new actors
- Rename the ActorStore method to `welcomeNewActor`
- Update the bank account created event handler and token name to match
2026-05-17 11:19:10 -05:00
Jacob Schmidt
7b7eb2a0f0 Bootstrap new actors from bank account creation
- Move starting bank credit and actor bootstrap to bank account creation
- Rename bank store init function to `initBankStore`
2026-05-17 11:12:22 -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
516c6e725e feat: Refactor CAD store payload handling by removing unused buildSeedHydratePayload function 2026-05-16 23:30:54 -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
67ab1d744c docs: Add example for event bus listener usage in README and documentation 2026-05-16 17:27:08 -05:00
Jacob Schmidt
3cadcce32a feat: Add ICOM usage guide and update related documentation 2026-05-16 17:05:13 -05:00
Jacob Schmidt
264559306d feat: Implement organization registration fee and bank PIN change functionality
- Updated HomeView and RegistrationView to reflect the new $50,000 registration fee for organizations.
- Enhanced actor onboarding process to include sending welcome emails and messages, along with initializing bank accounts with $2,000 starting credit.
- Added functionality to change bank PINs, including validation and persistence of new PINs.
- Updated bank and organization modules to handle registration fee charges and refunds appropriately.
- Enhanced documentation to reflect changes in organization registration and bank operations.
2026-05-16 12:13:13 -05:00
Jacob Schmidt
9ab4ff9fd9 Update documentation for phone repository and SurrealDB setup
- Changed references from `PhoneClass` to `PhoneRepository` in the phone usage guide.
- Added payroll and treasury transfer requests to the client organization usage guide.
- Updated SurrealDB setup documentation with helper scripts for database management.
2026-05-16 10:09:25 -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
27c3c5e502 Route sync and notifications through event bus
- add EventBus-backed notification and sync requests with direct RPC fallback
- centralize org notification/sync dispatch and reuse notification helpers
- update economy, store, garage, locker, bank, and CAD flows to emit events
2026-05-15 20:17:19 -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
9be7f91e2f Apply SurrealDB schemas after connecting
- Increase client ready timeout to 30s
- Apply all SurrealDB schemas during initialization and fail fast on errors
- Remove schema application from the connection helper
2026-05-13 21:20:42 -05:00
Jacob Schmidt
01dda0e060 Add SurrealDB helpers and promo screenshot assets
- Add local SurrealDB install, update, and run scripts for Forge
- Update setup docs and package the server SurrealDB helpers
2026-05-03 11:48:41 -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
d9404f2d60 Refactor code structure for improved readability and maintainability 2026-04-28 06:55:16 -05:00
Jacob Schmidt
df719041dd feat: update SurrealDB dependency to version 3 and reflect changes in documentation 2026-04-27 18:20:15 -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
d7018742b5 Refactor code structure for improved readability and maintainability 2026-04-25 23:59:38 -05:00
Jacob Schmidt
f3247b8e54 feat(garage): enhance virtual garage functionality with spawn lane resolution and category handling 2026-04-22 17:57:26 -05:00
Jacob Schmidt
6be064fb15 fix: update source file name for surrealdb setup documentation and add new build metadata 2026-04-21 16:44:21 -05:00
Jacob Schmidt
827f3303a2 feat: add initial Docus setup and sync tool for documentation generation
- Created package.json for Docus with necessary scripts and dependencies.
- Implemented sync-docus-docs.mjs to automate the generation of documentation files from source markdown.
- Defined mappings for generated pages and virtual routes to ensure proper linking in documentation.
- Added static content files for the documentation structure, including navigation and index pages.
2026-04-21 16:07:27 -05:00
Jacob Schmidt
4bb4c8ff5e feat(garage): enhance hit points structure with legacy field normalization and deserialization tests 2026-04-20 17:09:32 -05:00
Jacob Schmidt
ee7d1603ef feat(garage): add refuel and repair service requests
- Implemented requestRefuel and requestRepair functions in bridge.js to handle vehicle service requests.
- Updated AppShell.js to include buttons for refueling and repairing nearby vehicles, with appropriate state management.
- Added requestRefuelSelected and requestRepairSelected actions in events.js to validate and process service requests.
- Enhanced economy README and usage guides to document new refuel and repair service functionalities.
- Introduced server-side handling for refuel requests in FEconomyStore, ensuring organization billing and fuel management.
2026-04-18 14:09:14 -05:00
Jacob Schmidt
8117e6ffa6 feat(economy): Enhance economy system with service charges and medical billing
- Expanded README.md to detail economy addon functionalities including refueling, medical services, and service charges.
- Updated XEH_PREP.hpp to include initSEconomyStore preparation.
- Modified XEH_postInit.sqf to ensure MEconomyStore initializes only if not nil.
- Adjusted XEH_preInit.sqf to initialize SEconomyStore correctly.
- Updated config.cpp to include forge_server_common as a required addon.
- Enhanced fnc_initFEconomyStore.sqf to manage fuel refueling sessions and organization charges.
- Improved fnc_initMEconomyStore.sqf to handle medical billing and fallback to organization funds.
- Created fnc_initSEconomyStore.sqf for organization-funded service charges and repairs.
- Updated org.rs and org.rs service layer to support member debt recording and organization fund charging.
- Added ECONOMY_USAGE_GUIDE.md for comprehensive documentation on economy functionalities.
- Updated MODULE_REFERENCE.md and README.md to include links to the new economy guide.
2026-04-18 13:37:09 -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
f0d8d37921 Refactor store module: rename StoreStore to StorefrontStore, update initialization and checkout logic, and enhance documentation 2026-04-17 18:11:29 -05:00
Jacob Schmidt
9d950db890 Expand framework usage guides 2026-04-17 17:55:38 -05:00
Jacob Schmidt
8268bcf4ff Merge remote-tracking branch 'origin/master' into feature/surrealdb-storage 2026-04-17 17:23:59 -05:00
Jacob Schmidt
0b2b6265f3 Remove Redis backend support 2026-04-17 17:09:21 -05:00
Jacob Schmidt
06c634c642 Move extension storage to SurrealDB schema modules
- Split storage repositories into per-domain modules
- Add SurrealDB schema definitions and route handlers
- Update phone docs for new persistent table layout
2026-04-16 19:55:05 -05:00