Skip to content

Commit fe8e876

Browse files
committed
add tasks
1 parent e0eaa91 commit fe8e876

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Match Details: Player Farming Pattern Analysis
2+
3+
## Summary
4+
5+
On the match details page, visualise each player's farming pattern by analysing the source breakdown of gold received throughout the game.
6+
7+
## Background
8+
9+
OpenDota's standard match endpoint does not provide gold-source granularity. This feature requires **full replay parsing** to access per-event gold income data, specifically:
10+
11+
- Creep kills (lane + jungle)
12+
- Building kills
13+
- Hero kills / assists
14+
- Passive gold income
15+
- Bounty runes
16+
17+
This likely means using the **OpenDota parse endpoint** (`POST /api/request/{match_id}`) and then pulling data from the parsed match's `gold_reasons` or raw event log — or integrating an alternative parser (e.g. Clarity, Manta).
18+
19+
## Requirements
20+
21+
### Data Needed
22+
- Per-player gold income broken down by source over time
23+
- Sufficient granularity to identify patterns (e.g. 1-minute or 5-minute buckets)
24+
25+
### Visualisation
26+
- Show farming pattern per player (e.g. stacked area/bar chart by gold source)
27+
- Identify pattern types:
28+
- **Lane farmer** — majority from lane creeps
29+
- **Jungler** — majority from neutral creeps
30+
- **Skirmisher** — significant portion from hero kills
31+
- **Split pusher** — significant building gold
32+
- Optionally cluster players by pattern similarity
33+
34+
### Integration Consideration
35+
- Evaluate whether OpenDota's parsed data endpoint provides enough detail
36+
- If not, investigate embedding a lightweight replay parser (Clarity/Manta via JVM, or a Rust-native alternative)
37+
- This is a heavier feature — parser integration may warrant its own sub-task
38+
39+
## Acceptance Criteria
40+
41+
- [ ] Gold source breakdown available per player for a parsed match
42+
- [ ] Farming pattern chart visible on match details page
43+
- [ ] Pattern label assigned per player (Lane / Jungle / Skirmish / Push / Mixed)
44+
- [ ] Graceful fallback if match has not been parsed yet (prompt user to request parse)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Match Details: Player Performance Chart
2+
3+
## Summary
4+
5+
On the match details page, add a chart showing all 10 players' early-game stats with configurable filters.
6+
7+
## Requirements
8+
9+
### Chart Data (per player)
10+
- Last hits at selected time
11+
- Denies at selected time
12+
- Net worth (gold) at selected time
13+
- Experience at selected time
14+
15+
### Filters
16+
- **Chart type**: Bar chart, line chart (progression over time), radar chart
17+
- **Time snapshot**: 5 min, 10 min, 15 min, 20 min
18+
19+
### Display
20+
- Show all 10 players grouped (Radiant vs Dire, or side-by-side)
21+
- Player name/hero visible on chart
22+
- Highlight the tracked user's bar/line
23+
24+
## Data Source
25+
26+
OpenDota match API already returns `benchmarks` and `laning` data per player. The `radiant_gold_adv` and `radiant_xp_adv` arrays track minute-by-minute data. Per-player `gold_t` and `xp_t` arrays provide individual player net worth and XP at each minute.
27+
28+
Tauri command needed: extend or add a command to return per-player `gold_t[N]`, `xp_t[N]`, `lh_t[N]`, `dn_t[N]` (last hits/denies timeline arrays) from stored match data or re-fetched from OpenDota.
29+
30+
## Acceptance Criteria
31+
32+
- [ ] Chart renders on match details page
33+
- [ ] All 10 players visible
34+
- [ ] Time filter buttons: 5m, 10m, 15m, 20m
35+
- [ ] Chart type selector: Bar / Line / Radar
36+
- [ ] Switching filters updates chart without page reload
37+
- [ ] Current user's data visually highlighted

0 commit comments

Comments
 (0)