1
1
package action
2
2
3
3
import (
4
- "github.com/hectorgimenez/koolo/internal/game"
5
- "github.com/hectorgimenez/koolo/internal/pather"
6
- "github.com/lxn/win"
7
4
"log/slog"
8
5
"slices"
9
6
"time"
10
7
8
+ "github.com/hectorgimenez/koolo/internal/game"
9
+ "github.com/hectorgimenez/koolo/internal/pather"
10
+ "github.com/lxn/win"
11
+
11
12
"github.com/hectorgimenez/d2go/pkg/data"
12
13
"github.com/hectorgimenez/d2go/pkg/data/area"
13
14
"github.com/hectorgimenez/d2go/pkg/data/difficulty"
@@ -276,14 +277,12 @@ func (b *Builder) calculateSkillPositionInUI(d game.Data, mainSkill bool, skillI
276
277
}
277
278
descs [skID ] = sk
278
279
279
- // Main skill list grows to the left, secondary skill list grows to the right
280
- displaceSkill := targetSkill .ID < skID
281
- if mainSkill {
282
- displaceSkill = targetSkill .ID > skID
283
- }
284
-
285
- if skID != targetSkill .ID && sk .Desc ().ListRow == targetSkill .Desc ().ListRow && displaceSkill {
286
- column ++
280
+ if skID != targetSkill .ID && sk .Desc ().Page == targetSkill .Desc ().Page {
281
+ if sk .Desc ().ListRow > targetSkill .Desc ().ListRow {
282
+ column ++
283
+ } else if sk .Desc ().ListRow == targetSkill .Desc ().ListRow && sk .Desc ().Column > targetSkill .Desc ().Column {
284
+ column ++
285
+ }
287
286
}
288
287
289
288
totalRows = append (totalRows , sk .Desc ().ListRow )
@@ -298,12 +297,11 @@ func (b *Builder) calculateSkillPositionInUI(d game.Data, mainSkill bool, skillI
298
297
totalRows = slices .Compact (totalRows )
299
298
300
299
// If we don't have any skill of a specific tree, the entire row gets one line down
301
- previousRow := 0
302
- for _ , currentRow := range totalRows {
303
- if currentRow != 0 && currentRow != previousRow + 1 {
304
- row --
300
+ for i , currentRow := range totalRows {
301
+ if currentRow == row {
302
+ row = i
303
+ break
305
304
}
306
- previousRow = currentRow
307
305
}
308
306
309
307
// Scrolls and charges are not in the same list
@@ -320,13 +318,13 @@ func (b *Builder) calculateSkillPositionInUI(d game.Data, mainSkill bool, skillI
320
318
}
321
319
}
322
320
323
- skillOffsetX := ui .MainSkillListFirstSkillX
321
+ skillOffsetX := ui .MainSkillListFirstSkillX - ( ui . SkillListSkillOffset * column )
324
322
if ! mainSkill {
325
- skillOffsetX = ui .SecondarySkillListFirstSkillX
323
+ skillOffsetX = ui .SecondarySkillListFirstSkillX + ( ui . SkillListSkillOffset * column )
326
324
}
327
325
328
326
return data.Position {
329
- X : skillOffsetX + ui . SkillListSkillOffset * column ,
327
+ X : skillOffsetX ,
330
328
Y : ui .SkillListFirstSkillY - ui .SkillListSkillOffset * row ,
331
329
}, true
332
330
}
0 commit comments