+
- {currentExpense ? (
+ {typeof currentExpense === 'number' ? (
{isCurrentPlayer ? 'You' : this.props.game.currentPlayer}
{currentExpense <= 0 ? ' lost ' : ' gained '}
@@ -2037,6 +2037,7 @@ const GameOver = ({ id, alertHandled, contents, game, player}) => {
Total: ${formatMoney(p.harvestTotal)} Expenses: ${formatMoney(Math.abs(p.operatingExpenses))}
Avg ${formatMoney(p.harvestAverage)} rolling {p.harvestRoll} for {p.numHarvests} harvests
Hay: ${formatMoney(p.hay)} Grain: ${formatMoney(p.grain)} Fruit: ${formatMoney(p.fruit)} Cows: ${formatMoney(p.cows)}
+
Tractor: ${formatMoney(p.tractor)} Harvester: ${formatMoney(p.harvester)}
))}
@@ -2049,7 +2050,11 @@ const GameOver = ({ id, alertHandled, contents, game, player}) => {
Hay: {(p.hay / ((pObj.assets.hay * 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)} {' '}
- 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)}
+
+
+ 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)}
);
diff --git a/src/server/farm.scm b/src/server/farm.scm
index f0d26c3..8a1439d 100644
--- a/src/server/farm.scm
+++ b/src/server/farm.scm
@@ -185,7 +185,14 @@
(hay . 0)
(grain . 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 'processing-turn args eqv? #f))))
@@ -568,7 +575,7 @@
;; (session-set! (sid) 'game *game*)
;; (set-startup-otbs (session-ref (sid) 'player) 2)
)
- (send-static-file "index.html")
+ (send-static-file "main.html")
;; (with-headers `((connection close)
;; (content-type text/html))
;; (lambda ()
@@ -577,7 +584,7 @@
)
(define (start-game)
- (send-static-file "index.html")
+ (send-static-file "main.html")
""
;; (with-output-to-string
;; (lambda ()
@@ -1038,6 +1045,9 @@
(grain . ,(alist-ref 'grain stats))
(fruit . ,(alist-ref 'fruit 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
(round
(/ (fold + 0 (map (lambda (c) (alist-ref c stats))
@@ -2049,9 +2059,11 @@
(inexact->exact
(round (/ (exact->inexact amount) num-equipment))))))
(for-each (lambda (player)
+ ((make-player-stat equipment amount-per-player) player)
(safe-set! (player-cash player)
(+ (player-cash player) amount-per-player)))
(players-with equipment game)))))
+ ((make-player-stat equipment (- amount)) player)
(safe-set! (player-cash player) (- (player-cash player) amount))))
(define (make-player-gains amount)
@@ -2232,6 +2244,8 @@
(for-each (lambda (from-player)
(when (not (eq? player 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)
(- (player-cash from-player) 2000))
(safe-set! (player-cash player)
@@ -2290,6 +2304,7 @@
(safe-set! (player-assets player)
(alist-update 'cows (- (alist-ref 'cows (player-assets player)) (- cows ridge-cows))
(player-assets player)))
+ ((make-player-stat 'cows-lost slaughtered-cows) player)
`(((?action . info)
(?value . ,(conc slaughtered-cows
" cows slaughtered on your farm.")))))
diff --git a/src/style.scss b/src/style.scss
index 6000835..8f9e297 100644
--- a/src/style.scss
+++ b/src/style.scss
@@ -305,7 +305,7 @@ $tab-margin: 0.3rem;
.player-black {
background-color: black; }
.player-none {
- background-color: #f2f2f2; }
+ background-color: #f2f2f2; } //
.tab .player {
height: 27px;
diff --git a/webpack.common.js b/webpack.common.js
index 1136e8e..a956aa1 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -48,11 +48,6 @@ module.exports = {
},
plugins: [
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 MiniCssExtractPlugin({
filename: './assets/[name].[hash].css',
diff --git a/webpack.dev.js b/webpack.dev.js
index 421829a..ae4cadb 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -19,7 +19,7 @@
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
const path = require('path');
-
+const HtmlWebpackPlugin = require('html-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
module.exports = function(env) {
@@ -43,7 +43,12 @@ module.exports = function(env) {
'node_modules']
},
plugins: [
- new ReactRefreshWebpackPlugin()
+ new ReactRefreshWebpackPlugin(),
+ new HtmlWebpackPlugin({
+ title: 'Alpha Centauri Farming',
+ filename: 'index.html',
+ meta: {viewport: 'width=device-width, initial-scale=1'},
+ }),
],
module: {
rules: [
diff --git a/webpack.prod.js b/webpack.prod.js
index f8c2d1d..efe3cc1 100644
--- a/webpack.prod.js
+++ b/webpack.prod.js
@@ -22,6 +22,7 @@ const path = require('path');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = function(env) {
return merge(common, {
@@ -32,6 +33,13 @@ module.exports = function(env) {
path.resolve(__dirname, env.assets),
'node_modules']
},
+ plugins: [
+ new HtmlWebpackPlugin({
+ title: 'Alpha Centauri Farming',
+ filename: 'main.html',
+ meta: {viewport: 'width=device-width, initial-scale=1'},
+ }),
+ ],
optimization: {
minimize: true,
minimizer: [new OptimizeCssAssetsPlugin({}), new TerserPlugin()],