Fixing auto-skip in harvest and adding restart-game.

logins
Thomas Hintz 5 years ago
parent f485f811ba
commit 38c2920b85

@ -1111,7 +1111,10 @@ class Die extends React.Component {
return roll; return roll;
} }
tick() { tick = () => {
let finished = false;
return function() {
if (!finished) {
this.acc += this.interval; this.acc += this.interval;
// update die face // update die face
if (this.ticks < this.maxTicks && this.acc >= this.trigger) { if (this.ticks < this.maxTicks && this.acc >= this.trigger) {
@ -1124,6 +1127,7 @@ class Die extends React.Component {
} }
// we're finished, clear things, set final roll value // we're finished, clear things, set final roll value
if (this.ticks >= this.maxTicks) { if (this.ticks >= this.maxTicks) {
finished = true;
clearInterval(this.timerId); clearInterval(this.timerId);
this.timerId = false; this.timerId = false;
this.setState({ num: this.props.num, finalFace: true }); this.setState({ num: this.props.num, finalFace: true });
@ -1138,11 +1142,15 @@ class Die extends React.Component {
this.setState({ num: this.roll() }); this.setState({ num: this.roll() });
} }
} }
} else {
console.log('harvest die finished but still ticking');
}
}
} }
componentDidMount() { componentDidMount() {
if (this.props.roll) { if (this.props.roll) {
this.timerId = setInterval(() => this.tick(), this.interval); this.timerId = setInterval(this.tick().bind(this), this.interval);
} }
} }

@ -418,6 +418,17 @@
;; (print "</body></html>"))) ;; (print "</body></html>")))
) )
(define (restart-game game first-player)
(safe-set! (game-called-audit game) #f)
(safe-set! (game-state game) 'playing)
(for-each (lambda (p)
(safe-set! (player-finished p) #f)
(safe-set! (player-state p) 'turn-ended))
(game-players game))
(safe-set! (player-state first-player) 'pre-turn)
(safe-set! (game-current-player game) first-player)
(message-players! game #f '() type: "update"))
(define-method (player->list (p <player>)) (define-method (player->list (p <player>))
`((player . ((assets . ,(player-assets p)) `((player . ((assets . ,(player-assets p))
(ridges . ,(player-ridges p)) (ridges . ,(player-ridges p))
@ -1190,14 +1201,15 @@
(player (add-player-to-game game (player (add-player-to-game game
color color
(alist-ref 'playerName msg))) (alist-ref 'playerName msg)))
(ai-player (add-ai-to-game game 'red "AI Player 1"))) ;; (ai-player (add-ai-to-game game 'red "AI Player 1"))
)
(push! game (app-games *app*)) (push! game (app-games *app*))
(session-set! (sid) 'player player) (session-set! (sid) 'player player)
(session-set! (sid) 'game game) (session-set! (sid) 'game game)
(*game* game) (*game* game)
(set-startup-otbs game player 2) (set-startup-otbs game player 2)
(set-startup-otbs game ai-player 2) ;; (set-startup-otbs game ai-player 2)
(thread-start! (make-ai-push-receiver game ai-player)) ;; (thread-start! (make-ai-push-receiver game ai-player))
(create-start-response "new-game-started"))) (create-start-response "new-game-started")))
((string=? type "join-game") ((string=? type "join-game")
(let* ((name (alist-ref 'gameName msg)) (let* ((name (alist-ref 'gameName msg))
@ -2099,9 +2111,6 @@
;; info actions should look better ;; info actions should look better
;; you can get $50 from operating expense ;; you can get $50 from operating expense
;; auto-skip loop
;; harvester / tractor don't say total price
;; mark spaces ;; mark spaces
;; error: ;; error:
@ -2148,6 +2157,4 @@
;; Error: (assv) bad argument type: #<coops instance of `<game>'> ;; Error: (assv) bad argument type: #<coops instance of `<game>'>
;; auto-skip loop wtih harvest
;; when getting trade the name is wrong ;; when getting trade the name is wrong

Loading…
Cancel
Save