Basic stats.
This commit is contained in:
@@ -2098,9 +2098,13 @@ class BoardApp extends React.Component {
|
||||
handler={() => { return false; }}>
|
||||
<Fragment>
|
||||
<h1>Game Over!</h1>
|
||||
{alert.contents.map((e, i) => (
|
||||
{alert.contents.results.map((e, i) => (
|
||||
<p key={i}>{e}</p>
|
||||
))}
|
||||
<p>{alert.contents.stats.pro}</p>
|
||||
<p>{alert.contents.stats.back}</p>
|
||||
<p>{alert.contents.stats.taxPerson}</p>
|
||||
<p>{alert.contents.stats.emergency}</p>
|
||||
</Fragment>
|
||||
</AlertOverlay>
|
||||
);
|
||||
|
||||
@@ -126,7 +126,7 @@ function handleMessage(evt) {
|
||||
store.dispatch(autoSkip(data.component));
|
||||
}
|
||||
if (data.event === 'end-of-game') {
|
||||
store.dispatch(alert(ALERTS.endOfGame, data.results, 'endOfGame' + data.game.turn));
|
||||
store.dispatch(alert(ALERTS.endOfGame, { results: data.results, stats: data.stats }, 'endOfGame' + data.game.turn));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -129,7 +129,13 @@
|
||||
(harvesting initform: #f accessor: player-harvesting)
|
||||
(hay-doubled initform: #f accessor: player-hay-doubled)
|
||||
(corn-doubled initform: #f accessor: player-corn-doubled)
|
||||
(ready-to-start initform: #f accessor: player-ready-to-start)))
|
||||
(ready-to-start initform: #f accessor: player-ready-to-start)
|
||||
(stats initform:
|
||||
'((pro . 0)
|
||||
(back . 0)
|
||||
(tax-person . 0)
|
||||
(emergency . 0))
|
||||
accessor: player-stats)))
|
||||
|
||||
(define-class <ai> (<player>)
|
||||
((processing-turn initform: #f accessor: ai-processing-turn)))
|
||||
@@ -193,7 +199,8 @@
|
||||
(last-updated . 0)
|
||||
(last-cash . ,(player-cash player))
|
||||
(hay-doubled . ,(player-hay-doubled player))
|
||||
(corn-doubled . ,(player-corn-doubled player))))
|
||||
(corn-doubled . ,(player-corn-doubled player))
|
||||
(stats . ,(player-stats player))))
|
||||
|
||||
(define (game->sexp g)
|
||||
`((id . ,(game-id g))
|
||||
@@ -319,7 +326,7 @@
|
||||
'(cash debt space previous-space state assets ridges
|
||||
harvest-mult otbs user-id revealed-cards
|
||||
year-rules next-year-rules hay-doubled corn-doubled
|
||||
color name trade last-updated last-cash)))))
|
||||
color name trade last-updated last-cash stats)))))
|
||||
(when (not (player-revealed-cards p))
|
||||
(safe-set! (player-revealed-cards p) '()))
|
||||
p))
|
||||
@@ -918,7 +925,27 @@
|
||||
(lambda (p1 p2)
|
||||
(> (player-net-worth p1)
|
||||
(player-net-worth p2))))
|
||||
(iota (length (game-players game)) 1)))))
|
||||
(iota (length (game-players game)) 1))))
|
||||
(stats . ((pro . ,(let ((p (car (sort (game-players game)
|
||||
(lambda (p1 p2)
|
||||
(> (alist-ref 'pro (player-stats p1))
|
||||
(alist-ref 'pro (player-stats p2))))))))
|
||||
(conc "Most suns aligned: " (player-name p) " (" (alist-ref 'pro (player-stats p)) ")")))
|
||||
(back . ,(let ((p (car (sort (game-players game)
|
||||
(lambda (p1 p2)
|
||||
(> (alist-ref 'back (player-stats p1))
|
||||
(alist-ref 'back (player-stats p2))))))))
|
||||
(conc "Most licences expired: " (player-name p) " (" (alist-ref 'back (player-stats p)) ")")))
|
||||
(taxPerson . ,(let ((p (car (sort (game-players game)
|
||||
(lambda (p1 p2)
|
||||
(> (alist-ref 'tax-person (player-stats p1))
|
||||
(alist-ref 'tax-person (player-stats p2))))))))
|
||||
(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)) ")"))))))
|
||||
type: "end-of-game"))
|
||||
|
||||
(define (create-ws-response player event misc)
|
||||
@@ -1271,9 +1298,12 @@
|
||||
(if (> (+ (player-debt player)
|
||||
(farming-round (+ amount (* amount (game-setting 'loan-interest game)))))
|
||||
(game-setting 'max-debt game))
|
||||
(begin (safe-set! (player-cash player) (+ (player-cash player) amount))
|
||||
;; emergency loan
|
||||
(begin ((make-player-stat 'emergency amount) player)
|
||||
(safe-set! (player-cash player) (+ (player-cash player) amount))
|
||||
(safe-set! (player-display-cash player) (player-cash player))
|
||||
(safe-set! (player-debt player) (+ (player-debt player) (* amount 2))))
|
||||
;; regular loan
|
||||
(begin (safe-set! (player-cash player) (+ (player-cash player) amount))
|
||||
(safe-set! (player-display-cash player) (player-cash player))
|
||||
(safe-set! (player-debt player) (+ (player-debt player)
|
||||
@@ -1930,6 +1960,7 @@
|
||||
'()))
|
||||
#f)
|
||||
(1 ,(lambda (player game)
|
||||
((make-player-stat 'tax-person 1) player)
|
||||
(push! (make-player-year-rule 5 '((?p ?any harvest-mult 0) (?p ?crop)))
|
||||
(player-year-rules player))
|
||||
'())
|
||||
@@ -2078,7 +2109,11 @@
|
||||
(when (not (already-harvested? 'wheat player))
|
||||
((make-player-pays-per-unit 'grain 50) player)))
|
||||
|
||||
|
||||
(define (make-player-stat stat amount)
|
||||
(lambda (p)
|
||||
(safe-set! (player-stats p)
|
||||
(alist-update stat (+ (alist-ref stat (player-stats p)) amount)
|
||||
(player-stats p)))))
|
||||
|
||||
(define (get-actions player space)
|
||||
(let ((res '()))
|
||||
@@ -2097,6 +2132,7 @@
|
||||
((mar1 money ?p ,(pays 2000)))
|
||||
((mar2 money ?p ,(pays 500)))
|
||||
((mar3 goto ?p jan2))
|
||||
((mar3 player-action ?p ,(make-player-stat 'back 1)))
|
||||
((mar4 money ?p ,(pays 2000)) (?p fruit))
|
||||
((apr1 draw ?p otb))
|
||||
((apr2 add-rule ?p ,(make-player-year-rule
|
||||
@@ -2130,6 +2166,7 @@
|
||||
((jul5 harvest ?p wheat) (?p grain))
|
||||
((aug1 harvest ?p wheat) (?p grain))
|
||||
((aug1 goto ?p feb4))
|
||||
((aug1 player-action ?p ,(make-player-stat 'pro 1)))
|
||||
((aug1 player-action-post-harvest ?p ,finish-year))
|
||||
((aug2 harvest ?p wheat) (?p grain))
|
||||
((aug2 money ?p ,(gains 1000)) (?p harvester))
|
||||
@@ -2400,4 +2437,3 @@
|
||||
;; TODO
|
||||
;; make sure two players can't have the same name
|
||||
;; "your turn to roll" showing up on mobile when on action screen
|
||||
;; trade cards better
|
||||
|
||||
Reference in New Issue
Block a user