New stats and bug fixes.

master
Thomas Hintz 4 years ago
parent 191a6081b7
commit 1b9e94ba1f

@ -41,6 +41,9 @@ install:
interactive: interactive:
csi -include-path $(assets) -include-path src/server -s src/server/farm.scm csi -include-path $(assets) -include-path src/server -s src/server/farm.scm
interactiveserver:
cd dist ; csi -include-path $(assets) -include-path ../src/server -s farm.scm
src/server/farm: src/server/farm.scm src/server/db.scm src/server/farm: src/server/farm.scm src/server/db.scm
cd src/server/ && csc -include-path ../../$(assets) -O3 farm.scm cd src/server/ && csc -include-path ../../$(assets) -O3 farm.scm

@ -1506,10 +1506,10 @@ class Harvest extends React.Component {
view = ( view = (
<div> <div>
<div className='game-card'> <div className='game-card'>
<div className={'flex ' + (currentExpense <= 0 ? 'red' : 'green')}> <div className={'flex ' + (currentExpense < 0 ? 'red' : 'green')}>
<FontAwesomeIcon icon={faDollarSign} size='6x' /> <FontAwesomeIcon icon={faDollarSign} size='6x' />
<div> <div>
{currentExpense ? ( {typeof currentExpense === 'number' ? (
<p> <p>
{isCurrentPlayer ? 'You' : this.props.game.currentPlayer} {isCurrentPlayer ? 'You' : this.props.game.currentPlayer}
{currentExpense <= 0 ? ' lost ' : ' gained '} {currentExpense <= 0 ? ' lost ' : ' gained '}
@ -2037,6 +2037,7 @@ const GameOver = ({ id, alertHandled, contents, game, player}) => {
<p>Total: ${formatMoney(p.harvestTotal)} Expenses: ${formatMoney(Math.abs(p.operatingExpenses))}</p> <p>Total: ${formatMoney(p.harvestTotal)} Expenses: ${formatMoney(Math.abs(p.operatingExpenses))}</p>
<p>Avg ${formatMoney(p.harvestAverage)} rolling {p.harvestRoll} for {p.numHarvests} harvests</p> <p>Avg ${formatMoney(p.harvestAverage)} rolling {p.harvestRoll} for {p.numHarvests} harvests</p>
<p>Hay: ${formatMoney(p.hay)} Grain: ${formatMoney(p.grain)} Fruit: ${formatMoney(p.fruit)} Cows: ${formatMoney(p.cows)}</p> <p>Hay: ${formatMoney(p.hay)} Grain: ${formatMoney(p.grain)} Fruit: ${formatMoney(p.fruit)} Cows: ${formatMoney(p.cows)}</p>
<p>Tractor: ${formatMoney(p.tractor)} Harvester: ${formatMoney(p.harvester)}</p>
</div>))} </div>))}
</div> </div>
<div className={tabClass(gameOverTabs.investments)}> <div className={tabClass(gameOverTabs.investments)}>
@ -2049,7 +2050,11 @@ const GameOver = ({ id, alertHandled, contents, game, player}) => {
<p>Hay: {(p.hay / ((pObj.assets.hay * 2000) || 0.001)).toFixed(2)} {' '} <p>Hay: {(p.hay / ((pObj.assets.hay * 2000) || 0.001)).toFixed(2)} {' '}
Grain: {(p.grain / ((pObj.assets.grain * 2000) || 0.001)).toFixed(2)} {' '} Grain: {(p.grain / ((pObj.assets.grain * 2000) || 0.001)).toFixed(2)} {' '}
Fruit: {(p.fruit / ((pObj.assets.fruit * 5000) || 0.001)).toFixed(2)} {' '} Fruit: {(p.fruit / ((pObj.assets.fruit * 5000) || 0.001)).toFixed(2)} {' '}
Cows: {(p.cows / (((pObj.assets.cows * 500) + (playerRidgeValue(pObj, game.otherPlayers))) || 0.001)).toFixed(2)} Cows: {(p.cows / ((((pObj.assets.cows + p.cowsLost) * 500) + (playerRidgeValue(pObj, game.otherPlayers))) || 0.001)).toFixed(2)}
</p>
<p>
Tractor: {Math.max(0, (p.tractor / ((pObj.assets.tractor * 10000) || 0.001))).toFixed(2)} {' '}
Harvester: {Math.max(0, (p.harvester / ((pObj.assets.harvester * 10000) || 0.001))).toFixed(2)}
</p> </p>
</div> </div>
); );

@ -185,7 +185,14 @@
(hay . 0) (hay . 0)
(grain . 0) (grain . 0)
(fruit . 0) (fruit . 0)
(cows . 0))) (cows . 0)
(tractor . 0)
(harvester . 0)
(hay-expenses . 0)
(grain-expenses . 0)
(fruit-expenses . 0)
(cows-expenses . 0)
(cows-lost . 0)))
(alist-ref 'ai? args eqv? #f) (alist-ref 'ai? args eqv? #f)
(alist-ref 'processing-turn args eqv? #f)))) (alist-ref 'processing-turn args eqv? #f))))
@ -568,7 +575,7 @@
;; (session-set! (sid) 'game *game*) ;; (session-set! (sid) 'game *game*)
;; (set-startup-otbs (session-ref (sid) 'player) 2) ;; (set-startup-otbs (session-ref (sid) 'player) 2)
) )
(send-static-file "index.html") (send-static-file "main.html")
;; (with-headers `((connection close) ;; (with-headers `((connection close)
;; (content-type text/html)) ;; (content-type text/html))
;; (lambda () ;; (lambda ()
@ -577,7 +584,7 @@
) )
(define (start-game) (define (start-game)
(send-static-file "index.html") (send-static-file "main.html")
"" ""
;; (with-output-to-string ;; (with-output-to-string
;; (lambda () ;; (lambda ()
@ -1038,6 +1045,9 @@
(grain . ,(alist-ref 'grain stats)) (grain . ,(alist-ref 'grain stats))
(fruit . ,(alist-ref 'fruit stats)) (fruit . ,(alist-ref 'fruit stats))
(cows . ,(alist-ref 'cows stats)) (cows . ,(alist-ref 'cows stats))
(cowsLost . ,(alist-ref 'cows-lost stats eqv? 0))
(tractor . ,(alist-ref 'tractor stats))
(harvester . ,(alist-ref 'harvester stats))
(harvestAverage . ,(exact->inexact (harvestAverage . ,(exact->inexact
(round (round
(/ (fold + 0 (map (lambda (c) (alist-ref c stats)) (/ (fold + 0 (map (lambda (c) (alist-ref c stats))
@ -2049,9 +2059,11 @@
(inexact->exact (inexact->exact
(round (/ (exact->inexact amount) num-equipment)))))) (round (/ (exact->inexact amount) num-equipment))))))
(for-each (lambda (player) (for-each (lambda (player)
((make-player-stat equipment amount-per-player) player)
(safe-set! (player-cash player) (safe-set! (player-cash player)
(+ (player-cash player) amount-per-player))) (+ (player-cash player) amount-per-player)))
(players-with equipment game))))) (players-with equipment game)))))
((make-player-stat equipment (- amount)) player)
(safe-set! (player-cash player) (- (player-cash player) amount)))) (safe-set! (player-cash player) (- (player-cash player) amount))))
(define (make-player-gains amount) (define (make-player-gains amount)
@ -2232,6 +2244,8 @@
(for-each (lambda (from-player) (for-each (lambda (from-player)
(when (not (eq? player from-player)) (when (not (eq? player from-player))
(when (not (player-has-asset? 'harvester from-player)) (when (not (player-has-asset? 'harvester from-player))
((make-player-stat equipment -2000) from-player)
((make-player-stat equipment 2000) player)
(safe-set! (player-cash from-player) (safe-set! (player-cash from-player)
(- (player-cash from-player) 2000)) (- (player-cash from-player) 2000))
(safe-set! (player-cash player) (safe-set! (player-cash player)
@ -2290,6 +2304,7 @@
(safe-set! (player-assets player) (safe-set! (player-assets player)
(alist-update 'cows (- (alist-ref 'cows (player-assets player)) (- cows ridge-cows)) (alist-update 'cows (- (alist-ref 'cows (player-assets player)) (- cows ridge-cows))
(player-assets player))) (player-assets player)))
((make-player-stat 'cows-lost slaughtered-cows) player)
`(((?action . info) `(((?action . info)
(?value . ,(conc slaughtered-cows (?value . ,(conc slaughtered-cows
" cows slaughtered on your farm."))))) " cows slaughtered on your farm.")))))

@ -305,7 +305,7 @@ $tab-margin: 0.3rem;
.player-black { .player-black {
background-color: black; } background-color: black; }
.player-none { .player-none {
background-color: #f2f2f2; } background-color: #f2f2f2; } //
.tab .player { .tab .player {
height: 27px; height: 27px;

@ -48,11 +48,6 @@ module.exports = {
}, },
plugins: [ plugins: [
new CleanWebpackPlugin(), new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'Alpha Centauri Farming',
filename: 'index.html',
meta: {viewport: 'width=device-width, initial-scale=1'},
}),
new FaviconsWebpackPlugin('./assets/img/tractor.svg'), new FaviconsWebpackPlugin('./assets/img/tractor.svg'),
new MiniCssExtractPlugin({ new MiniCssExtractPlugin({
filename: './assets/[name].[hash].css', filename: './assets/[name].[hash].css',

@ -19,7 +19,7 @@
const merge = require('webpack-merge'); const merge = require('webpack-merge');
const common = require('./webpack.common.js'); const common = require('./webpack.common.js');
const path = require('path'); const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
module.exports = function(env) { module.exports = function(env) {
@ -43,7 +43,12 @@ module.exports = function(env) {
'node_modules'] 'node_modules']
}, },
plugins: [ plugins: [
new ReactRefreshWebpackPlugin() new ReactRefreshWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'Alpha Centauri Farming',
filename: 'index.html',
meta: {viewport: 'width=device-width, initial-scale=1'},
}),
], ],
module: { module: {
rules: [ rules: [

@ -22,6 +22,7 @@ const path = require('path');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = function(env) { module.exports = function(env) {
return merge(common, { return merge(common, {
@ -32,6 +33,13 @@ module.exports = function(env) {
path.resolve(__dirname, env.assets), path.resolve(__dirname, env.assets),
'node_modules'] 'node_modules']
}, },
plugins: [
new HtmlWebpackPlugin({
title: 'Alpha Centauri Farming',
filename: 'main.html',
meta: {viewport: 'width=device-width, initial-scale=1'},
}),
],
optimization: { optimization: {
minimize: true, minimize: true,
minimizer: [new OptimizeCssAssetsPlugin({}), new TerserPlugin()], minimizer: [new OptimizeCssAssetsPlugin({}), new TerserPlugin()],

Loading…
Cancel
Save