How justice-ma/rotdb works
rot_db is a RuneScape 3 combat-damage calculator: users configure an ability and combat setup, then request detailed damage or batch comparisons. The documented calculation stages are represented by request mapping, context construction, and ordered damage pipelines; the React setup and API client are shown as the user-facing entry. Other documented capabilities include local saved presets and lightweight session analytics. Source excerpts establish the batch-to-engine path and selected UI/API links; other documented or tree-visible links are marked unverified where their callers were not sampled.
Main entry points: CalculationEngine.java Calculation engine · api.js API client · DamageBatchService.java Batch calculation · App.jsx App shell
Components 25
Calculator UI
- App shell
frontend/src/App.jsx - Ability calculator
frontend/src/pages/AbilityCalculation.jsx - Combat setup
frontend/src/components/CombatSettings.jsx - API client
frontend/src/api/api.js - Preset selector
frontend/src/components/PresetSelector.jsx
Application API
- Damage endpoints
src/main/java/com/rotdb/calculation/api/controller/DamageController.java - Batch calculation
src/main/java/com/rotdb/calculation/application/service/DamageBatchService.java - Request mapping
src/main/java/com/rotdb/calculation/api/mapper/DamageRequestMapper.java - Equipment data
src/main/java/com/rotdb/calculation/persistence/repository/EquipmentRepository.java
Damage calculation
- Calculation request
src/main/java/com/rotdb/calculation/domain/model/DamageRequest.java - Combat context
src/main/java/com/rotdb/calculation/domain/model/context/ContextBuilder.java - Calculation engine
src/main/java/com/rotdb/calculation/domain/engine/CalculationEngine.java - Pre-critical stages
src/main/java/com/rotdb/calculation/domain/engine/PreCriticalPipeline.java - Post-critical stages
src/main/java/com/rotdb/calculation/domain/engine/PostCriticalPipeline.java - Damage results
src/main/java/com/rotdb/calculation/domain/model/DamageResult.java - Ability catalog
src/main/java/com/rotdb/shared/ability/AbilityId.java
User services
- Preset endpoints
src/main/java/com/rotdb/presets/api/PresetController.java - Preset service
src/main/java/com/rotdb/presets/application/PresetService.java - Saved presets
src/main/java/com/rotdb/presets/persistence/UserPresetRepository.java - Authentication
src/main/java/com/rotdb/auth/application/AuthService.java - User records
src/main/java/com/rotdb/auth/persistence/UserRepository.java - Analytics endpoints
src/main/java/com/rotdb/analytics/api/AnalyticsController.java - Activity tracking
src/main/java/com/rotdb/analytics/application/HeartbeatService.java - Active sessions
src/main/java/com/rotdb/analytics/application/HeartbeatService.java
Other components
- Calculator user
Connections 26
- Calculator user → App shell: uses
- App shell → Ability calculator: renders
frontend/src/App.jsx - Ability calculator → Combat setup: configures
frontend/src/pages/AbilityCalculation.jsx - Combat setup → API client: loads options
frontend/src/components/CombatSettings.jsx - Ability calculator → API client: requests calculations
frontend/src/pages/AbilityCalculation.jsx - API client → Damage endpoints: posts requests
README.md - Damage endpoints → Batch calculation: dispatches batch
src/main/java/com/rotdb/calculation/api/controller/DamageController.java - Batch calculation → Request mapping: maps request
src/main/java/com/rotdb/calculation/application/service/DamageBatchService.java - Batch calculation → Calculation engine: calculates each
src/main/java/com/rotdb/calculation/application/service/DamageBatchService.java - Request mapping → Calculation request: creates request
src/main/java/com/rotdb/calculation/api/mapper/DamageRequestMapper.java - Calculation engine → Combat context: builds context
src/main/java/com/rotdb/calculation/domain/engine/CalculationEngine.java - Calculation engine → Pre-critical stages: runs stages
src/main/java/com/rotdb/calculation/domain/engine/CalculationEngine.java - Calculation engine → Post-critical stages: runs stages
src/main/java/com/rotdb/calculation/domain/engine/CalculationEngine.java - Calculation engine → Damage results: maps result
src/main/java/com/rotdb/calculation/domain/engine/CalculationEngine.java - Ability catalog → Batch calculation: identifies abilities
src/main/java/com/rotdb/calculation/application/service/DamageBatchService.java - Calculator user → Preset selector: selects setup
- Preset selector → Preset endpoints: manages presets
- Preset endpoints → Preset service: delegates
src/main/java/com/rotdb/presets/api/PresetController.java - Preset service → Authentication: gets current user
src/main/java/com/rotdb/presets/application/PresetService.java - Preset service → Saved presets: reads and writes
src/main/java/com/rotdb/presets/application/PresetService.java - Authentication → User records: reads and writes
src/main/java/com/rotdb/auth/application/AuthService.java - App shell → API client: sends heartbeat
frontend/src/App.jsx - API client → Analytics endpoints: posts heartbeat
frontend/src/api/api.js - Analytics endpoints → Activity tracking: records activity
- Activity tracking → Active sessions: tracks clients
src/main/java/com/rotdb/analytics/application/HeartbeatService.java - Calculation engine → Equipment data: loads equipment
README.md