145 Commits

Author SHA1 Message Date
Jacob Schmidt
605abb6da8 Allow site loader to override addon root
- Use `config.addonRoot` when booting site assets
- Update task README to document mission manager post-init and generator gating
2026-05-22 21:41:50 -05:00
Jacob Schmidt
aad36ddd8d Return bank existence lookup errors to callers
- Make `bank_exists` surface backend/UID resolution failures instead of returning `false`
- Add SQF guard to log and alert on unexpected existence responses
- Prevent duplicate/default bank records after failed lookups
2026-05-21 22:39:22 -05:00
Jacob Schmidt
788ac6da7a Throttle mission generation and quiet status logs
- Add a mission generation cooldown in the mission manager
- Suppress noisy task status extension logs
- Switch task and entity class hashes to merged base copies
2026-05-21 21:56:50 -05:00
Jacob Schmidt
72a6dbb90a Pass garage context through actor menu and update phone docs
- Thread garage object context into garage and vehicle garage launch paths
- Preserve nearby garage metadata in the UI and improve garage context resolution
- Add wallet and message/email examples to the player guide
2026-05-21 18:07:07 -05:00
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
08200488de chore: remove outdated information about player-guide screenshots 2026-05-19 21:58:18 -05:00
Jacob Schmidt
5c76d59baf feat: add mobile banking app and integrate into phone UI
- Implemented wallet app functionality including account management, transaction handling, and user notifications.
- Updated HomeScreen to include Wallet app icon.
- Enhanced StateManager to maintain mobile bank state.
- Created wallet-specific styles for UI consistency.
- Updated CSS and JS concatenation scripts to include wallet resources.
2026-05-19 20:58:57 -05:00
Jacob Schmidt
008631ed10 Tighten garage UI spacing
- Reduce panel, meter, and button spacing in the garage UI
- Update the garage hero image asset
2026-05-19 19:22:14 -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
65b828eeda Document mission designer task module guides
- Add setup and validation guidance for Attack, Destroy, Defuse, Delivery, Hostage, HVT, and Defend tasks
- Add Eden screenshot assets and update the task screenshot reference table
- Clarify when to use the Arma 3 Create Task module vs Forge task modules
2026-05-18 23:06:07 -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
b7f7ae3a01 Add mission designer guide and Eden assets
- Document Eden object, garage, and task setup for playable missions
- Add the new getting-started page and update navigation links
- Rename store actor variable to `isStore` in the docs
2026-05-16 19:19:51 -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
80d2b1fc00 Update icon for Forge Server Extension in navigation configuration 2026-05-16 10:46:38 -05:00
Jacob Schmidt
b9c69c8ffa Add navigation configuration for Forge Server Extension 2026-05-16 10:39:47 -05:00
Jacob Schmidt
a4d5c2fd4d Enhance documentation structure and content across multiple guides
- Added frontmatter to various markdown files for better metadata handling.
- Updated site URLs in configuration files for consistency.
- Improved content organization and clarity in getting started, server extension, and client addon guides.
2026-05-16 10:33:17 -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
df325e2114 Add architecture flow diagram in SVG format 2026-05-16 09:57:02 -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
d2811a3c43 Reset medical spectator state on heal
- Factor spectator cleanup into a reusable handler
- Delay the healed server event until spectator init finishes
- Restore camera, HUD, and user input when leaving medical spectator
2026-05-02 23:55:09 -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
6bdb25aba9 refactor: remove unused store menu item and related variables 2026-04-26 11:58:06 -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