diff --git a/CHANGELOG.md b/CHANGELOG.md index 65002d7c..c6a2090e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [0.1.5] - YYYY-MM-DD ### Changed `Recharge` Skill multiplier reduced 85/130/200 -> 70/110/170 -`Absorbption` Skill duration reduced 5/7/9 -> 3/5/7 +`Absorption` Skill duration reduced 5/7/9 -> 3/5/7 ## [0.1.4 2019-09-18] diff --git a/VERSION b/VERSION index 1d5e9e0b..63ebd3fe 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.3 \ No newline at end of file +1.5.4 \ No newline at end of file diff --git a/acp/package.json b/acp/package.json index f41793e6..43040b88 100644 --- a/acp/package.json +++ b/acp/package.json @@ -1,6 +1,6 @@ { "name": "mnml-client", - "version": "1.5.3", + "version": "1.5.4", "description": "", "main": "index.js", "scripts": { diff --git a/bin/client.sh b/bin/client.sh index 2ae62d06..06daf871 100755 --- a/bin/client.sh +++ b/bin/client.sh @@ -13,6 +13,8 @@ rm -rf dist npm i npm run build +cp tos.html dist/ + # echo "Building acp version $VERSION" # cd $MNML_PATH/acp # rm -rf dist diff --git a/client/assets/styles/controls.less b/client/assets/styles/controls.less index 80612c3e..ef8fbdeb 100644 --- a/client/assets/styles/controls.less +++ b/client/assets/styles/controls.less @@ -50,19 +50,31 @@ aside { } } - button.ready:enabled { - &:hover { - color: forestgreen; - border-color: forestgreen; - } + // button.ready:enabled { + // &:hover { + // color: forestgreen; + // border-color: forestgreen; + // } - &:active, &:focus, &.enabled { + // &:active, &:focus, &.enabled { + // background: forestgreen; + // color: black; + // border-color: forestgreen; + // } + // } + + button.ready:enabled { + color: forestgreen; + border-color: forestgreen; + + &:hover { background: forestgreen; color: black; border-color: forestgreen; } } + .timer-container { grid-area: timer; @@ -94,6 +106,7 @@ aside { .ready { color: forestgreen; + // animation: ready 2s linear 0s infinite alternate; transition-property: color, background; transition-duration: 0.25s; transition-timing-function: ease; @@ -137,4 +150,14 @@ aside { color: black; border: 2px solid black; } +} + +@keyframes ready { + from { + border-color: @gray-exists; + } + + to { + border-color: forestgreen; + } } \ No newline at end of file diff --git a/client/assets/styles/menu.less b/client/assets/styles/menu.less index 9bcddbf2..4d0dd7ca 100644 --- a/client/assets/styles/menu.less +++ b/client/assets/styles/menu.less @@ -129,13 +129,30 @@ section { .demo { margin-top: 1em; - display: grid; - grid-template-areas: - "vinfo game" - "vcons game"; + display: block; - grid-template-columns: 1fr 1fr; - grid-template-rows: min-content 1fr; + button { + pointer-events: none; + } + + section { + margin-bottom: 0.5em; + + div:first-child { + padding-right: 1em; + } + } + + .construct-section { + .construct-list { + height: 25em; + grid-area: unset; + + .instance-construct { + // border: 0; + } + } + } .colour-info { grid-area: vinfo; @@ -152,17 +169,9 @@ section { } } - .vbox-demo { - grid-area: vinfo; - } - .game-demo { - grid-area: game; - - display: grid; - grid-template-columns: 1fr 2fr; - .game { + height: 25em; display: flex; flex-flow: column; @@ -171,15 +180,6 @@ section { } } } - - .construct-list { - grid-area: vcons; - height: 100%; - - svg { - height: 100%; - } - } } @media (max-width: 800px) { @@ -191,24 +191,6 @@ section { } } - .demo { - grid-template-columns: 1fr; - grid-template-areas: - "vinfo" - "vcons" - "game" - "game"; - - - .construct-list .instance-construct:not(:first-child) { - display: none; - } - - .game-demo { - grid-template-columns: 1fr; - } - } - .menu .team { grid-template-columns: 1fr; diff --git a/client/assets/styles/styles.less b/client/assets/styles/styles.less index 2e3b241c..f89cecb0 100644 --- a/client/assets/styles/styles.less +++ b/client/assets/styles/styles.less @@ -14,7 +14,7 @@ html body { -ms-user-select: none; overflow-x: hidden; - overflow-y: hidden; + // overflow-y: hidden; } #mnml { @@ -26,14 +26,14 @@ html body { /* stops inspector going skitz*/ overflow-x: hidden; - overflow-y: hidden; + // overflow-y: hidden; } -@media (min-width: 1921px) { - html, body, #mnml { - font-size: 16pt; - } -} +// @media (min-width: 1921px) { +// html, body, #mnml { +// font-size: 16pt; +// } +// } html { box-sizing: border-box; @@ -162,13 +162,12 @@ svg { fill: none; stroke: whitesmoke; stroke-width: 0.5em; - height: 2em; + height: 1.5em; } table { table-layout: fixed; width: 100%; - /*margin-bottom: 2em;*/ margin-bottom: 0; } diff --git a/client/assets/styles/styles.mobile.less b/client/assets/styles/styles.mobile.less index e8269bd2..be259075 100644 --- a/client/assets/styles/styles.mobile.less +++ b/client/assets/styles/styles.mobile.less @@ -123,4 +123,8 @@ padding: 0; } } + + .play-p { + display: none; + } } diff --git a/client/package.json b/client/package.json index 90e180ae..e84f1421 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "mnml-client", - "version": "1.5.3", + "version": "1.5.4", "description": "", "main": "index.js", "scripts": { diff --git a/client/src/components/demo.jsx b/client/src/components/demo.jsx index cff51564..57c814ee 100644 --- a/client/src/components/demo.jsx +++ b/client/src/components/demo.jsx @@ -84,7 +84,7 @@ function Demo(args) { function inventoryElement() { return ( -
+

VBOX PHASE {shapes.Red()} {shapes.Green()} {shapes.Blue()} @@ -116,39 +116,48 @@ function Demo(args) { ? 'equipping empty gray' : 'empty gray'; - return ( -
- {players[0].constructs.map((c, i) => ( -
-

{c.name}

- -
- {i === 0 && equipped - ? - : - } - - -
-
-
-
-
-
- ))} + const constructEl = c => ( +
+

{c.name}

+ +
+ {equipped + ? + : + } + + +
+
+
+
+
); + + return ( +
+
+

CONSTRUCTS

+

Constructs are the units you control. They are reset every game and their initial appearance is randomly generated.

+

Skills and Specs you create in the VBOX Phase are equipped to your constructs to create a build.

+
+
+ {constructEl(players[0].constructs[0])} +
+
+ ); }; const gameDemo = () => { return ( -
+

COMBAT PHASE

Battle your opponent using dynamic team builds from the VBOX phase.

-

Crafted skills can be used to damage the opponent or support your team.

-

Turn based combat, each team picks targets for their skills during this phase.

-

The damage dealt by skills, cast order and construct life depend on your decisions in the VBOX phase.

+

The skills crafted can be used to damage the opponent or support your team.

+

Simultaneous turn based combat: each team picks targets for their skills during this phase.

+

The damage dealt by skills, cast order and construct life depend on your decisions in the VBOX phase.

@@ -165,7 +174,7 @@ function Demo(args) {
-
+ ); }; diff --git a/client/src/components/game.construct.jsx b/client/src/components/game.construct.jsx index ea4db106..34349422 100644 --- a/client/src/components/game.construct.jsx +++ b/client/src/components/game.construct.jsx @@ -93,12 +93,12 @@ class GameConstruct extends Component { const skills = range(0, 3) .map(j => ); - let crypSkills =
 
; + let crypSkills =
; if (player) crypSkills = (
{skills}
); const effects = construct.effects.length ? construct.effects.map(c =>
{c.effect} - {c.duration}T
) - :
 
; + : null; return (
diff --git a/client/src/components/play.jsx b/client/src/components/play.jsx index 3e8fb916..3e0a7f5f 100644 --- a/client/src/components/play.jsx +++ b/client/src/components/play.jsx @@ -94,7 +94,7 @@ function Play(args) {

v{VERSION}

-

Use the buttons on the right to join an instance.

+

Use the buttons on the right to join an instance.

Select PVP to play against other players.
Select INVITE then click COPY LINK to generate an instance invitation for a friend.
diff --git a/client/src/components/welcome.register.jsx b/client/src/components/welcome.register.jsx index 838a48e7..c5ab9f79 100644 --- a/client/src/components/welcome.register.jsx +++ b/client/src/components/welcome.register.jsx @@ -34,7 +34,7 @@ function Register(args) { submitRegister, } = args; - const { password, confirm, name } = this.state; + const { password, confirm, name, terms } = this.state; const registerSubmit = (event) => { event.preventDefault(); @@ -45,7 +45,7 @@ function Register(args) { password === confirm; const registerDisabled = () => { - return !(registerConfirm() && password && name); + return !(registerConfirm() && password && name && terms); } return ( @@ -74,6 +74,14 @@ function Register(args) { value={this.state.confirm} onInput={linkState(this, 'confirm')} /> +

+ +   Confirm agreement to terms of service   + +