-
Notifications
You must be signed in to change notification settings - Fork 117
/
Copy pathTODO
132 lines (122 loc) · 5.24 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
immediate plans
- get rid of legacyxxx (waiting for net9)
- review enemy prios usage - should framework do anything about any prios? like taunt at -4...
- freeze
- gaze avoidance + forced movement fail
- ex3 p2 ice bridges
- on ex1 the cleave is still telegraphed a bit too wide
- for p2 thordan cleavebuster the telegraph on the minimap is narrower than the actual hitbox
- ishape
general:
- horizontal timeline / cooldown planner
- cdplanner should use real cds
- assignments per ui order rather than per player + class-specific assignments
- restore view-timeline to module ui
- module packs
-- dlls, loaded as usual
-- hotreload - just discard old version and load new one
-- distributed as github releases, on startup query latest version and download if different
-- rate limit gh requests to 1/hour
-- dialog to add warns about arbitrary code execution
-- update bm/rm registries on reload
- add non-entities to worldstate
- proper logging
- consistently use Color instead of uint
- refactor window system to dispose stuff properly and avoid CS1806 and `_ = new...` pattern
- diagnostic to detect readonly mutable collections
- introduce 'Game' class that would contain dalamud services and stuff like AMEx/IDScramble, instead of statics, to avoid uncontrolled access to game state (won't help with CS tho)
- better timing tracking for: statuses, gauges, cooldowns, cast times, anim lock, ...
- constrain bossmodules to zone id (e.g. for T04)
- revise module categories - consider merging fates/hunts/quests/gold saucer?/pvp? into outdoor?/casual?
- debug utility to play action animations, spawn actors, play vfx, etc...
- encounter hints (to show before pull)
- zone modules: replay visualization
- zone modules: module info ui
- refactor ipc/dtr
- questbattles
- autoautos: remove target-setting shenanigans in ual, instead deal with disabling autos in hook
- pathfinding can cut corners by entering aoe (los check returns safe) - is that good?..
- alt style for player indicator on arena
- MAO for pomanders holsters etc
- ManualActionQueueTweak.Push should not special case gcds?..
ai:
- nav decision delay
- review TODO[cast-time]
- remove old ai
- revise misdirection, remove threshold hint
- knockbacks, forced movement, pyretic/freezing, etc components should update max-cast hint
- hardcoded cdplanner targeting track should be moved to a aimodule
- utility modules / planner - how should planned casts work?
- high-level follow/assist module for multibox
boss modules:
- timers
- wipe should not fast forward all phases
- fail log
- boss module config presets/profiles
- jeuno
-- a11: ai hints for spikes+uppercut
-- a14: complex aoe hints (cthonic, battlements)
-- a14: dark nebula kb hints
autorotation:
- global strategy for track
- bulk override priorities?
- preset/plan editors should properly react to external changes
- actiondefinitions
-- action transforms?.. (combos, adjustment)
-- adjusted casttime/cooldown/???
- action history/queue visualization
- simulation in replay analysis
- spell out shared cooldowns in actiondefinitions comments instead of group?
- delete/rework commonstate/legacy
- delete autorotationlegacy dir
- dot/regen server tick tracking
- brd
-- take traits into account (ij proccing rs, ea proccing repertoire)
-- better handle bad misalignment (see JeunoTheFirstWalk_BRD100_VeynHumanmale_2025_01_05_20_42_19.log)
- drg
-- priorities...
-- dragon sight is a true north
-- cd planning
- war
-- simulate gauge changes (message can arrive few frames after ActionEffect...)
-- low-level rotation - improve berserk delay logic
- whm:
-- resurrect (6.1 and later changes)
-- planner
-- smart-targeting for ST actions
ai:
- improve healing AI: analyze incoming dps
- movement: know time left, distance to travel => decide whether to swiftcast or slidecast or use movement rotation
world rendering:
- danger zones (modify action vfx?)
- arrows
replay encounter analysis:
- tether & debuff passing range
- pull range
misc:
- memory show/watch utility
- clip circles to arena bounds...
- draw target max-melee and boss positioning hints?..
- assignments/config sharing (webservice?)
notes on targeting:
- aoe (e.g. cone) will hit if shape intersects target's hitbox; for players it is == 0.5
- max melee range is raw range (usually 3) + source hitbox radius + target hitbox radius; for players this usually means 3.5 + target hitbox
- charge/onslaught will bring player to source hitbox radius + target hitbox radius range, or leave in place if current distance is less
getAjustedRecastTime:
- type: item => calculation, non-spell => 5000, spell => continue...
- no adjustment or cdgroup is [76-79] -> recast100ms * 100; otherwise start with that and adjust...
- trait adjustment: recastMS += 100 * trait->Value (per trait)
- if maxcharges > 1 => return recast (adjusted by additive traits)
- recastMS = adjustRecastTimeByStatusesAndStats(recastMS)
-- if non pvp:
--- weaponskill/spell:
---- spdMod = 1000 + 130 * (base - spdattr) / levelmod (min 0)
---- recastMS *= spdMod / 1000
---- recastMS *= hasteattr / 100
---- min 1500
--- if gcd and have sm flag 18: recastMS += recastMS * sum-status-param(22) / 100; min 500 (ie riddle of fire)
-- else: tbd...
- some special pvp checks -> fallback to raw base
- MCH if have rapid fire (853) status -> override to 100*param
- DNC overrides
- etc special overrides