61 Commits

Author SHA1 Message Date
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
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
d9404f2d60 Refactor code structure for improved readability and maintainability 2026-04-28 06:55:16 -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
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
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
89169f1e84 Update documentation and add new client usage guides
- Revised README.md for the Forge Client Example Addon to clarify its purpose as a template.
- Enhanced MODULE_REFERENCE.md to categorize guides into Server and Extension guides and Client guides.
- Created detailed usage guides for various client addons including Actor, Bank, CAD, Garage, Locker, Notifications, Organization, Phone, and Store.
- Added a Client Common Usage Guide to outline shared browser UI bridge patterns.
- Introduced a Client Main Usage Guide to define the foundational elements for client addons.
- Established authoritative state notes and usage rules across new guides to ensure clarity on server ownership and client responsibilities.
2026-04-18 13:04:01 -05:00
Jacob Schmidt
4532e7b73d Add SurrealDB-backed phone storage and message deletion
- Wire phone, garage, and locker stores to the new storage layer
- Add delete flows for messages and emails in the phone UI
- Update contact, mail, and message views for the new data model
2026-04-11 22:36:11 -05:00
Jacob Schmidt
a8415eb1fd Add phone addon and wire UI events
- Introduce client phone addon, UI, and XEH handlers
- Route actor phone interaction to the new phone UI
- Add initial phone state, event handling, and persistence
2026-04-06 19:07:18 -05:00
Jacob Schmidt
d8812df381 Refresh org portal state and treasury interactions
- Hydrate portal/session data from login and sync payloads
- Add treasury notices for credit, invite, leave, and disband actions
- Improve portal cards and modal UI for members, fleet, and treasury
2026-04-06 06:06:09 -05:00
Jacob Schmidt
8a31d456f1 Add org invite request and response handling
- Wire invite request, accept, and decline events through the UI bridge
- Add client and server handlers for invite success and failure responses
- Extend portal state and UI to support member invite actions
2026-04-05 22:32:00 -05:00
Jacob Schmidt
3599f802c8 Tighten actor cache loading flow
- Clarify client loading status text
- Document server-side actor hydration and snapshot recovery
- Stop hot reads from forcing repository initialization
2026-04-05 21:57:45 -05:00
Jacob Schmidt
cd3e937cdc Hydrate missing actor and org records from live data
- Require actor records to exist in storage before hot load
- Fall back to player snapshots to fill missing actor fields and org defaults
- Refresh org member names when a better value is available
- Keep bootstrap extension calls on the direct path by default
2026-04-05 21:44:10 -05:00
Jacob Schmidt
5ded3a60e5 Add credit line repayment to bank UI
- Wire bank client and server for credit line repayment requests
- Show credit line balance and repay action in the banking view
- Extend org/bank payloads and models with credit line fields
2026-04-02 16:41:10 -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
445a114c1c Refactor org and store services around shared payloads
- Add shared store payload handling in server and extension code
- Remove obsolete org member and treasury service split
- Update client repositories and portal UI/store hydration
2026-04-02 13:56:49 -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
56b560edf2 Support dispatch board and map view switching
- Add dispatchView state to the CAD repository and hydrate payloads
- Toggle the dispatcher between board and map layouts in the UI bridge
- Update side panel logic to hide contract tabs in dispatch map mode
2026-03-30 21:39:39 -05:00
Jacob Schmidt
1ca2499af7 Add dispatcher mode to CAD UI
- Add a dispatcher web view and layout switching
- Route group role updates and dispatcher hydration through the UI bridge
- Refresh top bar and hide map/side panel outside operations mode
2026-03-30 20:22:48 -05:00
Jacob Schmidt
0e9d0d3dc4 Refactor CAD sidepanel to hydrate board data
- Replace task-only refresh flow with hydrate/assignment/group events
- Add contracts, groups, and activity tabs to the client sidepanel
- Introduce server-side CAD store and request handlers
2026-03-29 22:17:07 -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
Jacob Schmidt
65f33ee02a Align client module naming and org member hydrate 2026-03-27 19:00:32 -05:00
Jacob Schmidt
db565d1e51 Refactor module hydration and init flow 2026-03-25 20:29:51 -05:00
Jacob Schmidt
6c0ce9e867 refactor(bank): split monolithic store into focused modules; fix locker grant for attachments
- Split BankBaseStore into SessionManager, Messenger, Model, Store, Validator
- Extract validation logic into BankValidator with try/catch and per-action methods
- Remove duplicate notifications from transaction actions
- Update event handlers to call validator first, forward context to store/session
- Fix locker grantItems: add missing 'attachment' category mapping to 'item'
- Fix locker grantItems: replace exitWith with if/else to prevent skipping remaining items

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-03-16 10:54:25 -05:00
Jacob Schmidt
68218304ab Move store catalog service server-side and rebuild WebUI bundles
- Shift store catalog initialization from client addon to server addon
- Rebuild/minify bank, garage, org, and store WebUI site assets
- Update webui build tooling and npm metadata; ignore node_modules
2026-03-14 20:06:27 -05:00
Jacob Schmidt
603963c935 Refactor bank UI to bridge-driven single-page flow
- Replace separate bank/ATM pages with a unified `index.html` app bundle
- Split bank init into `initClass`, `initSessionService`, and `initUIBridge`
- Route UI events through `BankUIBridge` and refresh session payloads after sync
2026-03-14 12:11:34 -05:00
Jacob Schmidt
bdc1e36e63 Implement interactive garage UI with service-based client bridge
- replace placeholder garage interaction with real UI open flow
- add catalog/session/UI bridge services for hydrate, sync, store, and retrieve actions
- migrate garage web UI bundle to new app shell/runtime structure
- align org/store function naming with shared init and UI bridge patterns
2026-03-14 03:06:18 -05:00
Jacob Schmidt
e15d4b3066 Introduce shared web UI runtime and migrate org/store bridges
- add common ForgeWebUI runtime, site loader, and SQF WebUI bridge base declarations
- migrate org and store web UIs to src-driven bundles and new bridge/bootstrap flow
- update addon configs/prep hooks and document the shared CT_WEBBROWSER framework
2026-03-14 00:40:34 -05:00
Jacob Schmidt
7a214d835d Enable vehicle checkout grants and garage/org sync updates
- Wire store checkout to grant purchased vehicles via virtual garage
- Add org fleet updates for org-funded vehicle purchases and sync to members
- Simplify client garage sync to always apply incoming category patches
2026-03-12 22:20:21 -05:00
Jacob Schmidt
6dda184d54 Wire store checkout flow across client and server
- Add checkout request/response bridge and workspace re-hydration in store UI
- Implement server-side checkout stores for charging bank/cash and granting locker/VA items
- Normalize catalog/cart payload categories and fix locker VA sync event naming
2026-03-12 21:44:19 -05:00
Jacob Schmidt
9771e375b6 Add org credit lines and multi-source store checkout state
- Wire org portal credit-line requests/responses through SQF bridge and UI events
- Sync `creditLines` in org payloads and refresh portal state after org sync
- Add store payment sources (cash, bank, org funds, credit line) and expose selection in cart UI
- Scaffold server-side store addon initialization/config files
2026-03-12 06:36:24 -05:00
Jacob Schmidt
09ab290b5a Add live category hydration and paged store catalog UI
- route new `store::category::request` bridge events from UI to SQF and hydrate category items from game configs
- cache and format generated catalog entries (types, descriptions, prices, images) in the store bridge/class
- update storefront UI with category loading states, image media support, and next/previous catalog pagination
2026-03-10 22:20:38 -05:00
Jacob Schmidt
d178e39164 Refactor client UI stores and normalize docs formatting
- Rework org and store UI state modules (rename/move store/getter files, add runtime and bridge wiring)
- Update store UI components and page structure (navbar/cart split, new StoreView flow)
- Apply broad markdown/YAML/HTML/CSS/JS formatting cleanup across docs, templates, and workflows
2026-03-10 19:13:30 -05:00
Jacob Schmidt
06f1bad878 Refactor store UI into components, logic, and data modules 2026-03-10 06:33:37 -05:00
Jacob Schmidt
4ee6537fbc Refactor store UI into dynamic multi-view shell
- Replace static HTML markup with app root and runtime asset loading
- Rebuild `script.js` as state-driven category/weapon/catalog views
- Add cart overlay scaffold, breadcrumbs, and window-style navigation UI
2026-03-10 00:13:56 -05:00
Jacob Schmidt
9cd7278746 Add org leave/disband bridge flow across client and server
- Introduce `OrgUIBridge` to centralize UI event/request/response handling
- Add leave and disband org requests with server handlers and client bridge events
- Enforce portal permissions for leaving/disbanding and protect owner/self from member removal
2026-03-09 23:06:26 -05:00
Jacob Schmidt
6eb6ac79d1 Revamp UI chrome and add notification sound alerts
- Add desktop-style title bar shell and viewport locking for bank/org UIs
- Redesign notification HUD visuals and behavior (timers, persistence, exposed JS API)
- Register and play a new notification sound via `CfgSounds` on client events
2026-03-09 20:59:02 -05:00
Jacob Schmidt
57267b79b6 feat: Rework org data and UI 2026-03-08 10:17:32 -05:00
Jacob Schmidt
e0e6121a5c Refactor org app structure and portal interactions 2026-03-07 19:54:17 -06:00
Jacob Schmidt
cdfc8dda80 Align org UI with live org data 2026-03-07 15:23:01 -06:00
Jacob Schmidt
964e839625 Removed old zipped _site 2026-03-07 13:21:49 -06:00
Jacob Schmidt
aad0fc61c4 Refactor org UI into single app and addon site 2026-03-07 13:20:43 -06:00
Jacob Schmidt
6c8490f299 feat: Implement bank system, actor interaction UI, and notification system with corresponding backend logic and update gitignore. 2026-02-17 21:18:17 -06:00
Jacob Schmidt
096418cc78 chore: refactor store and class initialization across addons
Co-Authored-By: Warp <agent@warp.dev>
2026-02-13 19:09:58 -06:00
Jacob Schmidt
58902f0c29 feat: implement initial in-game store system with web-based UI. 2026-02-06 06:22:32 -06:00
Jacob Schmidt
56f0f1c971 feat: introduce core client and server-side systems for locker, virtual arsenal, and garage management. 2026-02-05 18:26:55 -06:00