Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion TODO
Original file line number Diff line number Diff line change
Expand Up @@ -905,7 +905,6 @@ still too much overtime scoring https://discord.com/channels/290013534023057409/

show previous salary on re-signing table https://old.reddit.com/r/BasketballGM/comments/z99cby/monthly_suggestions_thread/izjihq3/

dedicated page listing all owned draft picks, including links to trades where they were acquired https://old.reddit.com/r/BasketballGM/comments/z99cby/monthly_suggestions_thread/j1a3nws/

show totals for pts/reb/ast/etc in play by play like "J. Brown Driving layup (12 pts) D. White (3 AST)" https://old.reddit.com/r/BasketballGM/comments/z99cby/monthly_suggestions_thread/j26zhxu/

Expand Down
19 changes: 18 additions & 1 deletion src/worker/core/GameSim.basketball/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2110,9 +2110,26 @@ class GameSim extends GameSimBase {
probMake *= Math.sqrt(this.possessionLength / 8);
}

/*
To calculate the upper bound, we take Ast / Potential Ast to get conversion rate for shots
Then we compare this to the teams FG% for the best shooters. The avg seems to be around ~7-8% higher.
https://www.nba.com/stats/players/passing?dir=D&sort=POTENTIAL_AST

We want the % chance for better shot to be a higher number, as there are ~ 1.5-2 AST/TOV ratio for NBA teams
https://www.basketball-reference.com/leagues/NBA_2025.html#per_game-team
*/
const passQuality = (passer: number): number => {
const upperBound = 0.08;
const lowerBound = -0.015;
const p = this.playersOnCourt[this.o][passer];
const passAtr = this.team[this.o].player[p].compositeRating.passing;
const passRating = lowerBound + passAtr * (upperBound - lowerBound);
return passRating;
};

// Assisted shots are easier
if (passer !== undefined) {
probMake += 0.025;
probMake += passQuality(passer);
}
}

Expand Down