diff --git a/TODO b/TODO index c5967f341a..be96758b13 100644 --- a/TODO +++ b/TODO @@ -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/ diff --git a/src/worker/core/GameSim.basketball/index.ts b/src/worker/core/GameSim.basketball/index.ts index 7eea245d80..293393bf0a 100644 --- a/src/worker/core/GameSim.basketball/index.ts +++ b/src/worker/core/GameSim.basketball/index.ts @@ -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); } }