Adding 'roller' stats.
This commit is contained in:
@@ -2105,6 +2105,8 @@ class BoardApp extends React.Component {
|
|||||||
<p>{alert.contents.stats.back}</p>
|
<p>{alert.contents.stats.back}</p>
|
||||||
<p>{alert.contents.stats.taxPerson}</p>
|
<p>{alert.contents.stats.taxPerson}</p>
|
||||||
<p>{alert.contents.stats.emergency}</p>
|
<p>{alert.contents.stats.emergency}</p>
|
||||||
|
<p>{alert.contents.stats.highRoller}</p>
|
||||||
|
<p>{alert.contents.stats.lowRoller}</p>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
</AlertOverlay>
|
</AlertOverlay>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -134,7 +134,9 @@
|
|||||||
'((pro . 0)
|
'((pro . 0)
|
||||||
(back . 0)
|
(back . 0)
|
||||||
(tax-person . 0)
|
(tax-person . 0)
|
||||||
(emergency . 0))
|
(emergency . 0)
|
||||||
|
(num-harvests . 0)
|
||||||
|
(harvest-rolls . 0))
|
||||||
accessor: player-stats)))
|
accessor: player-stats)))
|
||||||
|
|
||||||
(define-class <ai> (<player>)
|
(define-class <ai> (<player>)
|
||||||
@@ -914,39 +916,59 @@
|
|||||||
(* (player-debt player) -1)))
|
(* (player-debt player) -1)))
|
||||||
|
|
||||||
(define (do-end-of-game game)
|
(define (do-end-of-game game)
|
||||||
(message-players!
|
(let ((rollers (sort (game-players game)
|
||||||
game
|
(lambda (p1 p2)
|
||||||
#f
|
(> (/ (alist-ref 'harvest-rolls (player-stats p1))
|
||||||
`((results
|
(max (alist-ref 'num-harvests (player-stats p1)) 1))
|
||||||
. ,(list->vector
|
(/ (alist-ref 'harvest-rolls (player-stats p2))
|
||||||
(map (lambda (p i)
|
(max (alist-ref 'num-harvests (player-stats p2)) 1)))))))
|
||||||
(conc i ". " (player-name p) " with $" (player-net-worth p)))
|
(message-players!
|
||||||
(sort (game-players game)
|
game
|
||||||
(lambda (p1 p2)
|
#f
|
||||||
(> (player-net-worth p1)
|
`((results
|
||||||
(player-net-worth p2))))
|
. ,(list->vector
|
||||||
(iota (length (game-players game)) 1))))
|
(map (lambda (p i)
|
||||||
(stats . ((pro . ,(let ((p (car (sort (game-players game)
|
(conc i ". " (player-name p) " with $" (player-net-worth p)))
|
||||||
(lambda (p1 p2)
|
(sort (game-players game)
|
||||||
(> (alist-ref 'pro (player-stats p1))
|
(lambda (p1 p2)
|
||||||
(alist-ref 'pro (player-stats p2))))))))
|
(> (player-net-worth p1)
|
||||||
(conc "Most suns aligned: " (player-name p) " (" (alist-ref 'pro (player-stats p)) ")")))
|
(player-net-worth p2))))
|
||||||
(back . ,(let ((p (car (sort (game-players game)
|
(iota (length (game-players game)) 1))))
|
||||||
(lambda (p1 p2)
|
(stats . ((pro . ,(let ((p (car (sort (game-players game)
|
||||||
(> (alist-ref 'back (player-stats p1))
|
(lambda (p1 p2)
|
||||||
(alist-ref 'back (player-stats p2))))))))
|
(> (alist-ref 'pro (player-stats p1))
|
||||||
(conc "Most licences expired: " (player-name p) " (" (alist-ref 'back (player-stats p)) ")")))
|
(alist-ref 'pro (player-stats p2))))))))
|
||||||
(taxPerson . ,(let ((p (car (sort (game-players game)
|
(conc "Most suns aligned: " (player-name p) " (" (alist-ref 'pro (player-stats p)) ")")))
|
||||||
(lambda (p1 p2)
|
(back . ,(let ((p (car (sort (game-players game)
|
||||||
(> (alist-ref 'tax-person (player-stats p1))
|
(lambda (p1 p2)
|
||||||
(alist-ref 'tax-person (player-stats p2))))))))
|
(> (alist-ref 'back (player-stats p1))
|
||||||
(conc "Needs a tax person: " (player-name p) " (" (alist-ref 'tax-person (player-stats p)) ")")))
|
(alist-ref 'back (player-stats p2))))))))
|
||||||
(emergency . ,(let ((p (car (sort (game-players game)
|
(conc "Most licences expired: " (player-name p) " (" (alist-ref 'back (player-stats p)) ")")))
|
||||||
(lambda (p1 p2)
|
(taxPerson . ,(let ((p (car (sort (game-players game)
|
||||||
(> (alist-ref 'emergency (player-stats p1))
|
(lambda (p1 p2)
|
||||||
(alist-ref 'emergency (player-stats p2))))))))
|
(> (alist-ref 'tax-person (player-stats p1))
|
||||||
(conc "Living on the edge: " (player-name p) " ($" (alist-ref 'emergency (player-stats p)) ")"))))))
|
(alist-ref 'tax-person (player-stats p2))))))))
|
||||||
type: "end-of-game"))
|
(conc "Needs a tax person: " (player-name p) " (" (alist-ref 'tax-person (player-stats p)) ")")))
|
||||||
|
(emergency . ,(let ((p (car (sort (game-players game)
|
||||||
|
(lambda (p1 p2)
|
||||||
|
(> (alist-ref 'emergency (player-stats p1))
|
||||||
|
(alist-ref 'emergency (player-stats p2))))))))
|
||||||
|
(conc "Living on the edge: " (player-name p) " ($" (alist-ref 'emergency (player-stats p)) ")")))
|
||||||
|
(highRoller . ,(let ((p (car rollers)))
|
||||||
|
(conc "High Roller: " (player-name p) " (" (exact->inexact
|
||||||
|
(/ (round
|
||||||
|
(* (/ (alist-ref 'harvest-rolls (player-stats p))
|
||||||
|
(max (alist-ref 'num-harvests (player-stats p)) 1))
|
||||||
|
10))
|
||||||
|
10)) ")")))
|
||||||
|
(lowRoller . ,(let ((p (last rollers)))
|
||||||
|
(conc "Low Roller: " (player-name p) " (" (exact->inexact
|
||||||
|
(/ (round
|
||||||
|
(* (/ (alist-ref 'harvest-rolls (player-stats p))
|
||||||
|
(max (alist-ref 'num-harvests (player-stats p)) 1))
|
||||||
|
10))
|
||||||
|
10)) ")"))))))
|
||||||
|
type: "end-of-game")))
|
||||||
|
|
||||||
(define (create-ws-response player event misc)
|
(define (create-ws-response player event misc)
|
||||||
(append `((event . ,event) ,@misc)
|
(append `((event . ,event) ,@misc)
|
||||||
@@ -2333,6 +2355,8 @@
|
|||||||
(player-harvest-mult player)))))
|
(player-harvest-mult player)))))
|
||||||
(if (not (already-harvested? (alist-ref '?value action) player))
|
(if (not (already-harvested? (alist-ref '?value action) player))
|
||||||
(begin
|
(begin
|
||||||
|
((make-player-stat 'num-harvests 1) player)
|
||||||
|
((make-player-stat 'harvest-rolls rolled) player)
|
||||||
(safe-set! (player-cash player)
|
(safe-set! (player-cash player)
|
||||||
(+ (player-cash player) income))
|
(+ (player-cash player) income))
|
||||||
(safe-set! (player-harvest-mult player) 1)
|
(safe-set! (player-harvest-mult player) 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user