From 15ef79f2a102909869dad2cc42e6d362ab3f2129 Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 14:24:06 +1100 Subject: [PATCH 01/17] v1.6.5 --- VERSION | 2 +- acp/package.json | 2 +- client/package.json | 2 +- ops/package.json | 2 +- server/Cargo.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index 6463e95e..49ebdd60 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.6.4 \ No newline at end of file +1.6.5 \ No newline at end of file diff --git a/acp/package.json b/acp/package.json index 58c51770..2591fabe 100644 --- a/acp/package.json +++ b/acp/package.json @@ -1,6 +1,6 @@ { "name": "mnml-client", - "version": "1.6.4", + "version": "1.6.5", "description": "", "main": "index.js", "scripts": { diff --git a/client/package.json b/client/package.json index 79c60238..6c6d56fe 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "mnml-client", - "version": "1.6.4", + "version": "1.6.5", "description": "", "main": "index.js", "scripts": { diff --git a/ops/package.json b/ops/package.json index 32dfed42..40211410 100755 --- a/ops/package.json +++ b/ops/package.json @@ -1,6 +1,6 @@ { "name": "mnml-ops", - "version": "1.6.4", + "version": "1.6.5", "description": "", "main": "index.js", "scripts": { diff --git a/server/Cargo.toml b/server/Cargo.toml index 07d3812c..4df35fa1 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mnml" -version = "1.6.4" +version = "1.6.5" authors = ["ntr "] [dependencies] From f87db71ac144b63d2226c0cc77b9eb8c22d247c7 Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 14:41:41 +1100 Subject: [PATCH 02/17] enabled button css fix --- client/assets/styles/controls.less | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/client/assets/styles/controls.less b/client/assets/styles/controls.less index 6349f182..2ff3ee04 100644 --- a/client/assets/styles/controls.less +++ b/client/assets/styles/controls.less @@ -85,6 +85,17 @@ aside { transition-property: color, background; transition-duration: 0.25s; transition-timing-function: ease; + + &:enabled { + color: forestgreen; + border-color: forestgreen; + + &:hover { + background: forestgreen; + color: black; + border-color: forestgreen; + } + } } .team-page-ctrl { From 753e5c9b12f0b16f73a3f10b20ee82d8269b12c5 Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 15:14:23 +1100 Subject: [PATCH 03/17] default register --- client/src/components/welcome.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/welcome.jsx b/client/src/components/welcome.jsx index 6146b7a0..790fe3ae 100644 --- a/client/src/components/welcome.jsx +++ b/client/src/components/welcome.jsx @@ -8,7 +8,7 @@ const Help = require('./welcome.help'); const Demo = require('./demo'); function Welcome() { - const page = this.state.page || 'login'; + const page = this.state.page || 'register'; const navRegister = () => this.setState({ page: 'register' }); const pageEl = () => { From 41e74710e99a47491b33b0aabf70faa3a507aa7b Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 15:21:19 +1100 Subject: [PATCH 04/17] click to copy --- client/src/components/play.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/play.jsx b/client/src/components/play.jsx index dc7a1720..25906879 100644 --- a/client/src/components/play.jsx +++ b/client/src/components/play.jsx @@ -120,7 +120,7 @@ function Play(args) { type="submit"> Copy 🔗 -
Invite Generated
+
Click to Copy
); }; From 8d553403aab8cd296098b796515c81243b40f6da Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 15:32:42 +1100 Subject: [PATCH 05/17] MNML index --- client/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/index.html b/client/index.html index 57f8602d..760d2f1e 100644 --- a/client/index.html +++ b/client/index.html @@ -9,7 +9,7 @@ - mnml - abstract strategy + MNML - abstract strategy @@ -19,7 +19,7 @@ From b4b253ab863bd37c73b607cc4848087b845859bf Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 16:22:03 +1100 Subject: [PATCH 06/17] youtube tutorial link --- client/assets/styles/styles.less | 2 +- client/src/components/play.jsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/client/assets/styles/styles.less b/client/assets/styles/styles.less index e8188302..86ea5d38 100644 --- a/client/assets/styles/styles.less +++ b/client/assets/styles/styles.less @@ -143,7 +143,7 @@ button, input { a { color: whitesmoke; - text-decoration: none; + // text-decoration: none; &:hover { color: whitesmoke; diff --git a/client/src/components/play.jsx b/client/src/components/play.jsx index 25906879..30246537 100644 --- a/client/src/components/play.jsx +++ b/client/src/components/play.jsx @@ -203,6 +203,7 @@ function Play(args) {
Join our Discord server to find opponents and talk to the devs.
Message @ntr or @mashy for some credits to get started.
+ Tutorial Playthrough on YouTube

From 0172e1dba350691be6b345b387c43ff771196805 Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 17:42:52 +1100 Subject: [PATCH 07/17] fix player css width --- client/assets/styles/game.less | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/client/assets/styles/game.less b/client/assets/styles/game.less index f85ca3cf..65ad6b25 100644 --- a/client/assets/styles/game.less +++ b/client/assets/styles/game.less @@ -437,11 +437,12 @@ #targeting, .resolving-skill { width: calc(100% - 1em); } + + .player { + width: calc(100% - 1em); + bottom: 3em; + height: calc(50% - 3em); + } } - .player { - width: calc(100% - 1em); - bottom: 3em; - height: calc(50% - 3em); - } } From 76a6eb27102e4604f41d6d500a01dfcd4e09c039 Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 18:49:21 +1100 Subject: [PATCH 08/17] only init logrocket once authed --- client/src/app.jsx | 4 ---- client/src/events.jsx | 1 + server/src/account.rs | 4 ++-- server/src/rpc.rs | 3 ++- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/client/src/app.jsx b/client/src/app.jsx index cfc877b7..e56f3044 100644 --- a/client/src/app.jsx +++ b/client/src/app.jsx @@ -15,10 +15,6 @@ const registerEvents = require('./events'); const Mnml = require('./components/mnml'); -if (process.env.NODE_ENV !== 'development') { - LogRocket.init('yh0dy3/mnml'); -} - function stripeKey() { if (window.location.host === 'mnml.gg') return 'pk_live_fQGrL1uWww2ot8W1G7vTySAv004ygmnMXq'; return 'pk_test_Cb49tTqTXpzk7nEmlGzRrNJg00AU0aNZDj'; diff --git a/client/src/events.jsx b/client/src/events.jsx index 6f42c894..aaf0fdf8 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -127,6 +127,7 @@ function registerEvents(store) { function setAccount(account) { if (account) { + LogRocket.init('yh0dy3/mnml'); LogRocket.identify(account.id, account); } diff --git a/server/src/account.rs b/server/src/account.rs index 56921e2c..e42ca9e9 100644 --- a/server/src/account.rs +++ b/server/src/account.rs @@ -189,7 +189,7 @@ pub fn new_img(tx: &mut Transaction, id: Uuid) -> Result { } pub fn set_password(tx: &mut Transaction, id: Uuid, current: &String, password: &String) -> Result { - if password.len() < PASSWORD_MIN_LEN { + if password.len() < PASSWORD_MIN_LEN || password.len() > 100 { return Err(MnmlHttpError::PasswordUnacceptable); } @@ -328,7 +328,7 @@ pub fn create(name: &String, password: &String, tx: &mut Transaction) -> Result< let id = Uuid::new_v4(); let img = Uuid::new_v4(); - let rounds = 8; + let rounds = 12; let password = hash(&password, rounds)?; let mut rng = thread_rng(); diff --git a/server/src/rpc.rs b/server/src/rpc.rs index 3194c1d4..91c1068e 100644 --- a/server/src/rpc.rs +++ b/server/src/rpc.rs @@ -449,7 +449,8 @@ pub fn start(pool: PgPool, events_tx: CbSender, stripe: StripeClient) { out.send(Message::Binary(response)).unwrap(); } // we done - Err(_e) => { + Err(e) => { + info!("{:?}", e); break; }, }; From 87ea0eb81f79adcf5b15d01bc7fbe68a85203eae Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 19:04:45 +1100 Subject: [PATCH 09/17] terms label --- client/assets/styles/menu.less | 5 +++++ client/src/components/welcome.register.jsx | 4 +++- server/src/rpc.rs | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/client/assets/styles/menu.less b/client/assets/styles/menu.less index 0fbb7f90..672e928e 100644 --- a/client/assets/styles/menu.less +++ b/client/assets/styles/menu.less @@ -90,6 +90,11 @@ .login { display: flex; flex-flow: column; + + .terms { + display: inline; + margin: 0 1em; + } } } diff --git a/client/src/components/welcome.register.jsx b/client/src/components/welcome.register.jsx index 99f8baed..5eb2b17d 100644 --- a/client/src/components/welcome.register.jsx +++ b/client/src/components/welcome.register.jsx @@ -79,9 +79,11 @@ function Register(args) {
-   Confirm agreement to terms of service   +
{pageEl()} diff --git a/client/src/socket.jsx b/client/src/socket.jsx index adad1a66..517ee04f 100644 --- a/client/src/socket.jsx +++ b/client/src/socket.jsx @@ -1,6 +1,8 @@ const toast = require('izitoast'); const cbor = require('borc'); +const throttle = require('lodash/throttle'); + const SOCKET_URL = `${window.location.protocol === 'https:' ? 'wss://' : 'ws://'}${window.location.host}/api/ws`; @@ -363,7 +365,8 @@ function createSocket(events) { sendGameTarget, sendInstanceAbandon, - sendInstanceReady, + // some weird shit happening in face off + sendInstanceReady: throttle(sendInstanceReady, 500), sendInstancePractice, sendInstanceQueue, sendInstanceState, From 3183f56a4ad2fdeaf3501862f7f4d9d29f0e4d58 Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 25 Oct 2019 21:54:46 +1100 Subject: [PATCH 11/17] relax password restrictions --- client/src/components/welcome.register.jsx | 2 +- .../mnml.gg.PRODUCTION.nginx.conf | 23 ------------------- server/src/account.rs | 4 ++-- server/src/rpc.rs | 2 +- 4 files changed, 4 insertions(+), 27 deletions(-) diff --git a/client/src/components/welcome.register.jsx b/client/src/components/welcome.register.jsx index 5eb2b17d..68b6fedb 100644 --- a/client/src/components/welcome.register.jsx +++ b/client/src/components/welcome.register.jsx @@ -58,7 +58,7 @@ function Register(args) { value={this.state.name} onInput={linkState(this, 'name')} /> - + https server { server_name mnml.gg; @@ -91,8 +73,3 @@ server { server_name minimal.gg; return 301 https://mnml.gg$request_uri; } - -server { - server_name minimalstudios.com.au; - return 301 https://minimalstudios.com.au$request_uri; -} diff --git a/server/src/account.rs b/server/src/account.rs index e42ca9e9..22224568 100644 --- a/server/src/account.rs +++ b/server/src/account.rs @@ -20,7 +20,7 @@ use img; use failure::Error; use failure::{err_msg, format_err}; -static PASSWORD_MIN_LEN: usize = 11; +static PASSWORD_MIN_LEN: usize = 3; #[derive(Debug,Clone,Serialize,Deserialize)] pub struct Account { @@ -318,7 +318,7 @@ pub fn set_subscribed(tx: &mut Transaction, id: Uuid, subscribed: bool) -> Resul } pub fn create(name: &String, password: &String, tx: &mut Transaction) -> Result { - if password.len() < PASSWORD_MIN_LEN { + if password.len() < PASSWORD_MIN_LEN || password.len() > 100 { return Err(MnmlHttpError::PasswordUnacceptable); } diff --git a/server/src/rpc.rs b/server/src/rpc.rs index f4019ad3..826590c9 100644 --- a/server/src/rpc.rs +++ b/server/src/rpc.rs @@ -449,7 +449,7 @@ pub fn start(pool: PgPool, events_tx: CbSender, stripe: StripeClient) { out.send(Message::Binary(response)).unwrap(); } // we done - Err(e) => { + Err(_e) => { // info!("{:?}", e); break; }, From 0a07e98794e72cd1e475df5c09e4ebaa0d9a9c24 Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 26 Oct 2019 00:06:42 +1100 Subject: [PATCH 12/17] update youtube link --- client/src/components/play.jsx | 2 +- client/src/components/welcome.jsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/src/components/play.jsx b/client/src/components/play.jsx index 30246537..40f5b657 100644 --- a/client/src/components/play.jsx +++ b/client/src/components/play.jsx @@ -203,7 +203,7 @@ function Play(args) {
Join our Discord server to find opponents and talk to the devs.
Message @ntr or @mashy for some credits to get started.
- Tutorial Playthrough on YouTube + Tutorial Playthrough on YouTube

diff --git a/client/src/components/welcome.jsx b/client/src/components/welcome.jsx index 077da507..558e5719 100644 --- a/client/src/components/welcome.jsx +++ b/client/src/components/welcome.jsx @@ -53,7 +53,7 @@ function Welcome() {

Welcome to mnml.

-

Turn-based 1v1 strategy game in an abstract setting.

+

MNML is a turn-based 1v1 strategy game in an abstract setting.

Build a unique team of 3 constructs from a range of skills and specialisations.
Outplay your opponent in multiple rounds by adapting to an always shifting meta.
@@ -62,7 +62,7 @@ function Welcome() {

Free to play, no pay to win. Register to start playing.

- Tutorial Playthrough on YouTube + Tutorial Playthrough on YouTube
{pageEl()} From 96efa2d07619bbabb97ef96c6487eca635d8f627 Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 26 Oct 2019 13:02:25 +1100 Subject: [PATCH 13/17] make intercept defensive --- server/src/skill.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/skill.rs b/server/src/skill.rs index 75a6094d..2e98af9b 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -1264,6 +1264,9 @@ impl Skill { Skill::Invert| Skill::InvertPlus | Skill::InvertPlusPlus | + Skill::Intercept| + Skill::InterceptPlus | + Skill::InterceptPlusPlus | Skill::Counter| Skill::CounterPlus | Skill::CounterPlusPlus | @@ -2083,7 +2086,7 @@ mod tests { let Resolution { source: _, target: _, event, stages: _ } = results.remove(0); match event { - Event::Damage { amount, skill: _, mitigation: _, colour: _} => assert_eq!(amount, 256.pct(Skill::SiphonTick.multiplier()) + Event::Damage { amount, skill: _, mitigation: _, colour: _} => assert_eq!(amount, 256.pct(Skill::SiphonTick.multiplier()) + 220.pct(Skill::SiphonTick.multiplier())), _ => panic!("not damage siphon"), }; From 1694a21b9f7592646fba63b0888a0d8d529577a8 Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 26 Oct 2019 15:56:14 +1100 Subject: [PATCH 14/17] handle blocked stripe --- client/src/app.jsx | 9 ++++++--- client/src/components/shop.jsx | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/client/src/app.jsx b/client/src/app.jsx index e56f3044..0d668980 100644 --- a/client/src/app.jsx +++ b/client/src/app.jsx @@ -36,9 +36,12 @@ events.setWs(ws); const App = () => ( - - - + {window.Stripe + ? + + + : + } ); diff --git a/client/src/components/shop.jsx b/client/src/components/shop.jsx index 08a79fad..283e78bc 100644 --- a/client/src/components/shop.jsx +++ b/client/src/components/shop.jsx @@ -48,9 +48,12 @@ function Shop(args) {

¤ {account.balance}

- - - + {window.stripe + ? + + + :
Please unblock Stripe to use the store
+ }
); From a633e3b297789cd8bc945b460d4b9c0cffa4efa9 Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 26 Oct 2019 16:06:52 +1100 Subject: [PATCH 15/17] sub rgb name and stripe fix --- client/assets/styles/colours.less | 20 +++++++++++++++++++- client/assets/styles/player.less | 5 +++++ client/src/components/account.box.jsx | 2 +- client/src/components/shop.jsx | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/client/assets/styles/colours.less b/client/assets/styles/colours.less index 79088b7c..13da2d0e 100644 --- a/client/assets/styles/colours.less +++ b/client/assets/styles/colours.less @@ -150,4 +150,22 @@ button { &.green { border-color: @green; } -} \ No newline at end of file +} + +@keyframes rgb { + 0% { + color: @red; + } + 25% { + color: @white; + } + 50% { + color: @blue; + } + 75% { + color: @white; + } + 100% { + color: @green; + } +} diff --git a/client/assets/styles/player.less b/client/assets/styles/player.less index 616ba46f..bda41989 100644 --- a/client/assets/styles/player.less +++ b/client/assets/styles/player.less @@ -51,6 +51,11 @@ color: @yellow; font-weight: bold; } + + .name.subscriber { + animation: rgb 4s cubic-bezier(0.5, 0, 0.5, 1) 0s infinite alternate; + font-weight: bold; + } } .chat { diff --git a/client/src/components/account.box.jsx b/client/src/components/account.box.jsx index c6383c55..4097816d 100644 --- a/client/src/components/account.box.jsx +++ b/client/src/components/account.box.jsx @@ -105,7 +105,7 @@ function AccountBox(args) {
 
-
{account.name}
+
{account.name}
 
); diff --git a/client/src/components/shop.jsx b/client/src/components/shop.jsx index 283e78bc..7e23bc60 100644 --- a/client/src/components/shop.jsx +++ b/client/src/components/shop.jsx @@ -48,7 +48,7 @@ function Shop(args) {

¤ {account.balance}

- {window.stripe + {window.Stripe ? From d370709d90d129cc6848aa789e30ddd98893e2fa Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 26 Oct 2019 16:13:32 +1100 Subject: [PATCH 16/17] fix name class --- client/src/components/account.box.jsx | 4 +++- client/src/components/play.footer.jsx | 2 -- client/src/components/player.box.jsx | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/client/src/components/account.box.jsx b/client/src/components/account.box.jsx index 4097816d..0ff61b8f 100644 --- a/client/src/components/account.box.jsx +++ b/client/src/components/account.box.jsx @@ -101,11 +101,13 @@ function AccountBox(args) { // ); // } + const nameClass = `name ${account.subscribed ? 'subscriber' : ''}`; + return (
 
-
{account.name}
+
{account.name}
 
); diff --git a/client/src/components/play.footer.jsx b/client/src/components/play.footer.jsx index f8a8479a..1f059064 100644 --- a/client/src/components/play.footer.jsx +++ b/client/src/components/play.footer.jsx @@ -3,8 +3,6 @@ const { connect } = require('preact-redux'); const { errorToast, infoToast } = require('../utils'); -const AccountBox = require('./account.box'); - const addState = connect( function receiveState(state) { const { diff --git a/client/src/components/player.box.jsx b/client/src/components/player.box.jsx index 29ee6532..2790d69f 100644 --- a/client/src/components/player.box.jsx +++ b/client/src/components/player.box.jsx @@ -70,22 +70,26 @@ function Scoreboard(args) { const winner = player.score === 'Win'; if (!isPlayer) { + const nameClass = `name ${player.img ? 'subscriber' : ''}`; return (
{scoreText()}
-
{player.name}
+
{player.name}
{chat || '\u00A0'}
); } + const boxClass = `player-box bottom ${winner ? 'winner': player.ready ? 'ready' : ''}`; + const nameClass = `name ${player.img ? 'subscriber' : ''}`; + return ( -
+
{chat || '\u00A0'}
{scoreText()}
-
{player.name}
+
{player.name}
); From 03c7302019eb6c696f1b3f1ebf429e90e56bf01f Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 26 Oct 2019 16:14:46 +1100 Subject: [PATCH 17/17] remove sub rgb for now --- client/assets/styles/player.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/assets/styles/player.less b/client/assets/styles/player.less index bda41989..cadd02fe 100644 --- a/client/assets/styles/player.less +++ b/client/assets/styles/player.less @@ -53,8 +53,8 @@ } .name.subscriber { - animation: rgb 4s cubic-bezier(0.5, 0, 0.5, 1) 0s infinite alternate; - font-weight: bold; + // animation: rgb 4s cubic-bezier(0.5, 0, 0.5, 1) 0s infinite alternate; + // font-weight: bold; } }