From d3daa3c1f2df47d07fd0ae5024bb7ed1137f5bbb Mon Sep 17 00:00:00 2001 From: Mashy Date: Tue, 8 Oct 2019 13:47:02 +1000 Subject: [PATCH 01/16] misc names --- server/src/game.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/src/game.rs b/server/src/game.rs index 8c1f2389..1938b778 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -161,12 +161,12 @@ impl Game { self.skill_phase_start(0) } - fn skill_phase_start(mut self, resolution_time: i64) -> Game { + fn skill_phase_start(mut self, resolution_animation_ms: i64) -> Game { self.phase_start = Utc::now() - .checked_add_signed(Duration::milliseconds(resolution_time)) + .checked_add_signed(Duration::milliseconds(resolution_animation_ms)) .expect("could not set phase start"); - self.phase_end = self.time_control.game_phase_end(resolution_time); + self.phase_end = self.time_control.game_phase_end(resolution_animation_ms); for player in self.players.iter_mut() { if player.skills_required() == 0 { @@ -426,12 +426,12 @@ impl Game { // temp vec of this round's resolving skills // because need to check cooldown use before pushing them into the complete list let mut casts = vec![]; - let mut resolution_delay = 0; + let mut r_animation_ms = 0; while let Some(cast) = self.stack.pop() { // info!("{:} casts ", cast); let mut resolutions = resolution_steps(&cast, &mut self); - resolution_delay = resolutions.iter().fold(resolution_delay, |acc, r| acc + r.clone().get_delay()); + r_animation_ms = resolutions.iter().fold(r_animation_ms, |acc, r| acc + r.clone().get_delay()); self.resolved.append(&mut resolutions); // while let Some(resolution) = resolutions.pop() { @@ -457,7 +457,7 @@ impl Game { return self.finish() } - self.skill_phase_start(resolution_delay) + self.skill_phase_start(r_animation_ms) } fn progress_durations(&mut self, resolved: &Vec) -> &mut Game { From 14e55d41baf0429289e07defe12634838c39c3c1 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 9 Oct 2019 10:31:04 +1100 Subject: [PATCH 02/16] v1.5.4 --- 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 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/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/ops/package.json b/ops/package.json index e7427f86..cc715b58 100755 --- a/ops/package.json +++ b/ops/package.json @@ -1,6 +1,6 @@ { "name": "mnml-ops", - "version": "1.5.3", + "version": "1.5.4", "description": "", "main": "index.js", "scripts": { diff --git a/server/Cargo.toml b/server/Cargo.toml index 26444b03..1855f2a4 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mnml" -version = "1.5.3" +version = "1.5.4" authors = ["ntr "] [dependencies] From a99535ed7e201ceba3102084f835b3df1d263c7c Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 9 Oct 2019 10:31:16 +1100 Subject: [PATCH 03/16] manifest orientation remove --- client/manifest.webmanifest | 1 - 1 file changed, 1 deletion(-) diff --git a/client/manifest.webmanifest b/client/manifest.webmanifest index afb2065e..3d2582a5 100644 --- a/client/manifest.webmanifest +++ b/client/manifest.webmanifest @@ -16,7 +16,6 @@ ], "start_url": "/index.html", "display": "fullscreen", - "orientation": "portrait", "theme_color": "#000000", "background_color": "#000000" } \ No newline at end of file From d339d19bb9dd99674cb86f6b6ccbb8b28216ed83 Mon Sep 17 00:00:00 2001 From: Mashy Date: Wed, 9 Oct 2019 11:20:12 +1000 Subject: [PATCH 04/16] nerf recharge / absorb --- CHANGELOG.md | 5 +++++ WORKLOG.md | 1 + client/manifest.webmanifest | 1 - server/src/skill.rs | 12 ++++++------ 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c160cd9..65002d7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Fixed ### Changed +## [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 + ## [0.1.4 2019-09-18] ### Changed diff --git a/WORKLOG.md b/WORKLOG.md index 20cd76e7..1dd73284 100644 --- a/WORKLOG.md +++ b/WORKLOG.md @@ -14,6 +14,7 @@ ## SOON (Before or After PAX) +* Invert recharge * bot game grind * ACP * essential diff --git a/client/manifest.webmanifest b/client/manifest.webmanifest index afb2065e..3d2582a5 100644 --- a/client/manifest.webmanifest +++ b/client/manifest.webmanifest @@ -16,7 +16,6 @@ ], "start_url": "/index.html", "display": "fullscreen", - "orientation": "portrait", "theme_color": "#000000", "background_color": "#000000" } \ No newline at end of file diff --git a/server/src/skill.rs b/server/src/skill.rs index 968eb91f..193bb64b 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -786,9 +786,9 @@ impl Skill { Skill::ReflectPlus => 70, Skill::ReflectPlusPlus => 100, - Skill::Recharge=> 85, //Recharge red and blue life (heal) - Skill::RechargePlus => 130, - Skill::RechargePlusPlus => 200, + Skill::Recharge=> 70, //Recharge red and blue life (heal) + Skill::RechargePlus => 110, + Skill::RechargePlusPlus => 170, Skill::Sustain => 120, // Recharge red life (heal) Skill::SustainPlus => 150, @@ -907,9 +907,9 @@ impl Skill { Skill::AbsorbPlusPlus => vec![ConstructEffect {effect: Effect::Absorb, duration: 4, meta: Some(EffectMeta::Skill(Skill::AbsorptionPlusPlus)), tick: None}], - Skill::Absorption => vec![ConstructEffect {effect: Effect::Absorption, duration: 5, meta: None, tick: None}], - Skill::AbsorptionPlus => vec![ConstructEffect {effect: Effect::Absorption, duration: 7, meta: None, tick: None}], - Skill::AbsorptionPlusPlus => vec![ConstructEffect {effect: Effect::Absorption, duration: 9, meta: None, tick: None}], + Skill::Absorption => vec![ConstructEffect {effect: Effect::Absorption, duration: 3, meta: None, tick: None}], + Skill::AbsorptionPlus => vec![ConstructEffect {effect: Effect::Absorption, duration: 5, meta: None, tick: None}], + Skill::AbsorptionPlusPlus => vec![ConstructEffect {effect: Effect::Absorption, duration: 7, meta: None, tick: None}], Skill::Hybrid => vec![ConstructEffect {effect: Effect::Hybrid, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None }], From 60f767185dbaa28b684da050c33e9f0727143f48 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 9 Oct 2019 13:21:04 +1100 Subject: [PATCH 05/16] fix swipe issue --- client/assets/styles/instance.mobile.less | 1 + client/src/components/demo.jsx | 2 -- client/src/components/instance.component.jsx | 13 ++++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/client/assets/styles/instance.mobile.less b/client/assets/styles/instance.mobile.less index 4621af75..9fec777b 100644 --- a/client/assets/styles/instance.mobile.less +++ b/client/assets/styles/instance.mobile.less @@ -17,6 +17,7 @@ @media (max-width: 800px) { .instance { + overflow-y: scroll; font-size: 8pt; display: grid; grid-template-columns: 1fr; diff --git a/client/src/components/demo.jsx b/client/src/components/demo.jsx index 68fb7fb8..cff51564 100644 --- a/client/src/components/demo.jsx +++ b/client/src/components/demo.jsx @@ -45,8 +45,6 @@ function Demo(args) { const { combiner, items, equipping, equipped, players } = demo; - console.log(items); - const vboxDemo = () => { function inventoryBtn(i, j) { if (!i) return ; diff --git a/client/src/components/instance.component.jsx b/client/src/components/instance.component.jsx index 56aa0e7d..3d935752 100644 --- a/client/src/components/instance.component.jsx +++ b/client/src/components/instance.component.jsx @@ -76,7 +76,7 @@ class Instance extends Component { } return ( -
setInfo(null)} onTouchMove={onTouchMove}> +
setInfo(null)}> @@ -85,12 +85,19 @@ class Instance extends Component { } componentDidMount() { - this.bindSwipes(); + if (!this.h) this.bindSwipes(); + } + + componentDidUpdate() { + if (!this.h) this.bindSwipes(); } bindSwipes() { const instance = document.getElementById('instance'); - if (!instance) return setTimeout(this.bindSwipes, 50); + if (!instance) { + console.log('no instance, binding in 50'); + return setTimeout(this.bindSwipes, 50); + } if (this.h) this.h.destroy(); this.h = new Hammer(instance); this.h.on('swiperight', () => { From d8ff25673505bcd338ae32052be22a3171a43402 Mon Sep 17 00:00:00 2001 From: Mashy Date: Wed, 9 Oct 2019 15:42:50 +1000 Subject: [PATCH 06/16] terms of service, pop up new html --- CHANGELOG.md | 2 +- client/src/components/tos.jsx | 1114 ++++++++++++++++++++ client/src/components/welcome.register.jsx | 13 +- 3 files changed, 1126 insertions(+), 3 deletions(-) create mode 100644 client/src/components/tos.jsx 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/client/src/components/tos.jsx b/client/src/components/tos.jsx new file mode 100644 index 00000000..e796cf60 --- /dev/null +++ b/client/src/components/tos.jsx @@ -0,0 +1,1114 @@ +const html = ` + + + + + + + + + + +
+ +

MNML- Website terms and conditions

+ +
+ +

 

+ +
+ +

Introduction

+ +

Welcome to MNML!

+ +

MNML is a turn-based 1v1 strategy game +in an abstract setting where players outplay their opponents by building their +team of 3 constructs from a shifting meta of skills, effects and +specialisations.

+ +

MNML is provided by Minimal Studios +Pty Ltd ACN 635 160 182 (Minimal Studios, we, us, our) and accessible to +registered users via the URL [https://mnml.gg] (or any new or varied URL from +time to time), operated by Minimal Studios.  The public-facing Minimal Studios +website and the MNML platform available to registered users is referred to +throughout this document collectively as the “Website”.  These terms and +conditions and all policies posted on our Website set out the terms on which we +offer you access to use of our Website, services, applications and tools +(collectively the Services).

+ +

These terms and conditions are made up +of three parts:

+ +

·         +Part A – which applies to all users of our Services, +whether you are just browsing, or are a registered user capable of buying Virtual +Goods;

+ +

·         +Part B – which applies to all registered users +of the Services; and

+ +

·         +Part C – which applies to all registered users +of the Services who buy Virtual Goods.

+ +

Separately, our Privacy Policy sets out how we +handle your personal information, including personal information collected +through this Website.

+ +

Part A - Basics

+ +

If you use these Services you are +agreeing to comply with and be bound by the terms and conditions listed below +and any other applicable laws or regulations which apply to these Services and +your use of it.  If you do not accept these terms and conditions, you are not +permitted to use these Services. 

+ +

You acknowledge that an internet connection is required to +access the Services and that your internet services provider may apply data +charges to your use of the Services.

+ +

We reserve the right to amend these terms and conditions +from time to time.

+ +

Amendments will be effective +immediately upon notification on this Website.  If you do not agree to any +change to the terms and conditions, you may stop using the Services.  Your +continued use of these Services following such notification will represent an +agreement by you to be bound by the terms and conditions as amended.

+ +

Minimal Studios makes no +representation that the Services (or any element of the Services) are +appropriate or available for use in all locations.  Further, you acknowledge +that except as expressly set out in these terms and conditions, we do not +warrant the accuracy, adequacy or completeness of the information on this +Website, nor do we undertake to keep the Services updated.

+ +

Intellectual property rights +statement

+ +

All intellectual property rights in the +Services, including design, text, graphics, logos, icons, sound recordings and +all software relating to the Services belong to or are licensed by us.  These +intellectual property rights are protected by Australian and international +laws.

+ +

Subject to you accepting and complying with these terms +and conditions, and paying applicable fees, we grant you a limited, +non-exclusive, revocable and non-transferrable licence to access and use the Services +in accordance with these terms and conditions for your own personal purposes +only.

+ +

You may not in any form or by any +means copy, adapt, reproduce (other than for the purpose of viewing the Website +in your browser), store, modify, distribute, print, upload, display, perform, +remove any credits, or create derivative works from any part of the Services or +commercialise any information obtained from any part of the Services without +our prior written permission or, in the case of third party material, from the +owner of the intellectual property rights in that material.

+ +

You must not decompile, disassemble or reverse engineer +all or any portion of our Services or merge all or any portion of our Services +with any other software or website.

+ +

Supply of the Services

+ +

From time to time, we may add new features or +functionalities to the Services for which we may require you to agree to +certain additional terms and pay a fee to access (“Paid Features”). In +order to use a Paid Feature, you must comply with these terms and conditions +(and any relevant additional terms) and pay the applicable fees to us, which we +will notify to you on request.

+ +

Linked Websites

+ +

This Website may contain links to +other Websites.  The links are provided for convenience only and may not remain +current or be maintained.  We are not responsible for the content or privacy +practices associated with linked Websites.

+ +

Secure data

+ +

We take data security seriously, and +use industry-standard measures to protect data on our Services (including your +data on the Website) from cyber security threats.  We regularly test for +weaknesses in our code and reassess our cyber security posture.  Unfortunately, +despite these measures, no data transmission over the internet can be +guaranteed as totally secure.  We do not warrant and cannot absolutely promise the +security of any information which you transmit to us.  Accordingly, any +information that you transmit while using the Services is transmitted at your +own risk.  If you become aware of any problems with the security of the data or +the Services, please contact us immediately, providing whatever detail you are +able.

+ +

Your conduct

+ +

You must ensure that your access to and +use of the Services is not illegal or prohibited by laws which apply to you.

+ +

You must not use the Services to +engage in unlawful or fraudulent behaviour, to defame or harass any third +party, to circumvent any security measures, through act or omission to mislead +or deceive others, or in any other manner that we consider to be unacceptable.

+ +

 

+ +

You acknowledge that you must take +your own precautions to ensure that the process that you employ for accessing the +Services does not expose you to the risk of viruses, malicious computer code, +or other forms of interference which may damage your own computer system.

+ +

Limitation of liability

+ +

Subject to the clause immediately +below, except as expressly set out in these terms and conditions or to the +extent required by non-excludable law, we disclaim all +warranties, representations and conditions, express or implied, in relation to +the Services, and we are not liable for any loss or damage, however caused +(including, but not limited to, by our negligence) suffered by you in +connection with the Services, these terms and conditions, or your access to or use +of the Services.

+ +

If the Competition and Consumer Act +2010 (Cth) or any other legislation states that there is a guarantee in +respect of goods or services supplied, and our liability for breach of that +guarantee may not be excluded but may be limited, our liability for such breach +is limited to, in the case of a supply of goods, replacing the goods or +supplying equivalent goods or repairing the goods, or in the case of supply of +Services, supplying the Services again or paying the cost of having the Services +supplied again.

+ +

Indemnity

+ +

You agree to indemnify us for all +damages, losses, penalties, fines, expenses and costs (including legal costs) +which arise out of or relate to your use of the Services, your breach of these +terms and conditions, any information that you provide to us via the Services +or any damage that you may cause to the Services.  This indemnification +includes, without limitation, liability relating to copyright infringement, +defamation, invasion of privacy, trade mark infringement and breaches of the Competition +and Consumer Act 2010 (Cth).

+ +

Access

+ +

Access to the Services may be +withdrawn at any time without notice.  These terms and conditions will survive +any such withdrawal.

+ +

Governing law and jurisdiction

+ +

If a dispute arises regarding the Services +or these terms and conditions, the laws of New South Wales, Australia, will +apply.  In relation to any such dispute, you submit to the exclusive +jurisdiction of the courts of New South Wales, Australia.

+ +

If you access the Services in a +jurisdiction other than New South Wales, Australia, you are responsible and +agree to comply with the laws of that jurisdiction, to the extent that they +apply.

+ +

Additional legal +terms

+ +

The rights and obligations of the +parties under these terms and conditions do not merge on completion of any +transaction contemplated by these terms and conditions.  Termination of these +terms and conditions will not affect any accrued rights or remedies of the +parties (noting that rights to Virtual Goods will be extinguished in accordance +with these terms and conditions). 

+ +

You must not (nor purport to) +assign, in whole or in part, or novate your rights and obligations under or in +connection with these terms and conditions without our prior written consent. 

+ +

We may subcontract our +obligations under these terms and conditions, and assign or novate our rights +or obligations under these terms and conditions.

+ +

A clause or part of a clause of +these terms and conditions that is illegal or unenforceable may be severed from +these terms and conditions and the remaining clauses or parts of the clause of +these terms and conditions continue in force.

+ +

These terms and conditions supersede +all previous agreements about their subject matter.  These terms and conditions +embody the entire agreement between the parties.

+ +

In these terms and conditions:

+ +

·                +the meaning of any general language is not +restricted by any accompanying example, and the words ‘includes’, ‘including’, +‘such as’ or ‘for example’ (or similar phrases) do not limit what else might be +included;

+ +

·                +no rule of construction applies in the interpretation +of these terms and conditions to the disadvantage of the party preparing the +terms and conditions on the basis that it put forward this document or any part +of it; and

+ +

·                +a reference to a party is a reference to that +party, and a reference to the parties is a reference to both parties.

+ +

Part B – Registered users

+ +

Membership

+ +

A key element of the +Services will be the interactions between users.  We encourage these rich +interactions, but of course you are required to conduct yourself in a lawful +and respectful manner.

+ +

To buy Virtual Goods, or to otherwise +interact with other users while using the Services, you must become a member.  +To become a member, you must complete your registration details in the manner +described on the Website.  Membership is free but not transferable.

+ +

We reserve the right to terminate your +membership if you breach these terms and do not remedy the breach within a +reasonable time notified by us (this time will vary depending on the nature of +the issue in any particular case). We also reserve the right to, at our +discretion, restrict +a member’s usage of the Services either temporarily or permanently, or refuse a +person’s request to register for an account with us.

+ +

You must be 15 years of age or over to +be a member of the Services.  If you are under 15 years of age you must have +your parent or guardian register on your behalf.

+ +

Member’s obligations

+ +

By registering as a member of our +Services, you agree to abide by the terms set out below.

+ +

·                     +You are responsible for protecting the +confidentiality of your member details and password.  You are responsible for +all activity that occurs using your member profile, including any fees incurred.

+ +

·                     +You are solely responsible for your interactions with other +users.  You agree that Minimal Studios is not responsible for the conduct of +any user of the Services.

+ +

·                     +You acknowledge that we cannot confirm the +identity of other members or prevent them acting under false pretences.

+ +

·                     +You will not post, transmit or communicate to +any other user any material or information which is offensive, defamatory, +obscene, unlawful, misleading, deceptive, vulgar, harmful, threatening, +abusive, harassing or ethnically objectionable (determined at our sole +discretion).

+ +

·                     +You agree not to impersonate any other person.

+ +

·                     +We may, but are not obliged to, provide you with +any update or upgrade to, any new version of the Services.

+ +

Our role

+ +

We are not responsible for any user-generated content made +available to you through the Services (for example, user messages).  We are +entitled to monitor and moderate any user-generated content, however we are not +required to do so at all, or at any particular frequency or in any particular +manner. 

+ +

If you download any material from the Website, you +acknowledge that we are not liable to you for any loss or damage, however +caused, arising from the downloading or subsequent use of the downloaded +material.  You may not adapt, reproduce, store, distribute, transmit, display, +publish or create derivative works from any downloaded material.  In addition, +you may not commercialise any information, products or Services from the +downloaded material.

+ +

You indemnify us and our related bodies corporate and our +directors and employees against any claim by a third party arising out of a +breach of these terms either by you or by any person using your password or member +details, whether or not you have authorised that person to use your password or +member details.

+ +

Part C – Buying Virtual Goods

+ +

A key aspect of the Services will be the ability for +registered users to buy goods such as game avatars and other user account +features from time to time (Virtual Goods).

+ +

To be eligible to buy Virtual Goods, you must first become +a member of the Services as set out in Part B above. 

+ +

The sale of each Virtual Good will be based on a value +that we assign to it in AUD. 

+ +

Sales of Virtual Goods will be conducted in credits on the +Website that are equivalent to AUD.  It is each user’s responsibility to ensure +they have sufficient credits to perform any transaction.  Transactions made +using credits are ultimately settled through payments of AUD amounts equivalent +to the Website credits, between registered PayPal accounts, credit cards, or +any other method that we accept from time to time (for instance, we may in the +future expand to accept payment in one or more crypto-currencies). 

+ +

Each registered user must maintain a valid PayPal account, +linked and valid credit card (or other approved method from time to time) +through which payments for Website credit-based transactions can be made, and +must ensure the details of that account are kept up to date within the Website.  +

+ +

The Website will maintain a register of account balances (credits) +for convenience, but the accounts behind the payment methods are operated +separately from us and we are not responsible for their operation, balances or +accuracy.

+ +

Nature of rights in Virtual Goods

+ +

There is no inherent value in any Virtual Goods and the +value in particular Virtual Goods may fluctuate in value from time to time by +various factors including user demand and our algorithmic determination of goods +values.

+ +

Your rights in any Virtual Goods are not ‘ownership’ and the +Virtual Goods are licensed to you under these terms and conditions solely for +the purposes of you using the Services.  Your rights in any Virtual Goods are +expressly subject to all of the terms that apply to use of the Services, and +require you to remain a member of the Services.

+ +

Rights in Virtual Goods are not assignable from your +account to any other account. If your membership is cancelled or suspended in +accordance with these terms, or you cancel your use of the website for any +reason, you forfeit any Virtual Goods assigned to your account and we are not +liable to you in any way (including without limitation for the payment of any +amount in respect of the relevant Virtual Goods).  Any Virtual Goods so +forfeited will be made available for sale to other users at the price +determined by us.  

+ +

Tax

+ +

Transactions involving Virtual Goods may be subject to +tax.  You are responsible for all of the taxation consequences of your use of +the Services.

+ +

GST

+ +

Any words capitalised in this clause have the meaning +given to those words in the A New Tax System (Goods and Services Tax) Act +1999 (Cth).

+ +

The consideration for a Supply made under or in connection +with this agreement does not include GST.

+ +

If +a Supply made under or in connection with this agreement is a Taxable Supply, +then at or before the time any part of the consideration for the Supply is +payable:

+ +

(a)          +the Recipient must pay the GST Act Supplier an +amount equal to the GST for the Supply, in addition to, and in the same manner +as the consideration otherwise payable under this agreement for that Supply); +and

+ +

(b)          +the GST Act Supplier must give the Recipient a +Tax Invoice for the Supply.

+ +

 

+ +

 

+ +
+ + + + +`; + +function termsOfService() { + const newWindow = window.open('', 'TOS'); + newWindow.document.write(html); +} + +module.exports = termsOfService; diff --git a/client/src/components/welcome.register.jsx b/client/src/components/welcome.register.jsx index 838a48e7..fc714f63 100644 --- a/client/src/components/welcome.register.jsx +++ b/client/src/components/welcome.register.jsx @@ -4,6 +4,7 @@ const { Component } = require('preact') const { connect } = require('preact-redux'); const linkState = require('linkstate').default; +const tos = require('./tos'); const { postData, errorToast, infoToast } = require('../utils'); const addState = connect( @@ -34,7 +35,7 @@ function Register(args) { submitRegister, } = args; - const { password, confirm, name } = this.state; + const { password, confirm, name, terms, viewTos } = this.state; const registerSubmit = (event) => { event.preventDefault(); @@ -45,7 +46,7 @@ function Register(args) { password === confirm; const registerDisabled = () => { - return !(registerConfirm() && password && name); + return !(registerConfirm() && password && name && terms); } return ( @@ -74,6 +75,14 @@ function Register(args) { value={this.state.confirm} onInput={linkState(this, 'confirm')} /> +
+ +   Confirm agreement to terms of service   + +
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/server/src/instance.rs b/server/src/instance.rs index 9cc55221..9731f879 100644 --- a/server/src/instance.rs +++ b/server/src/instance.rs @@ -530,13 +530,13 @@ pub fn instance_create(tx: &mut Transaction, instance: Instance) -> Result Date: Thu, 10 Oct 2019 15:07:36 +1100 Subject: [PATCH 11/16] names --- server/src/names.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/server/src/names.rs b/server/src/names.rs index ad8d738e..16f0dfcc 100644 --- a/server/src/names.rs +++ b/server/src/names.rs @@ -1,7 +1,7 @@ use rand::prelude::*; use rand::{thread_rng}; -const FIRSTS: [&'static str; 52] = [ +const FIRSTS: [&'static str; 53] = [ "artificial", "ambient", "borean", @@ -43,6 +43,7 @@ const FIRSTS: [&'static str; 52] = [ "ossified", "orbiting", "piscine", + "polar", "purified", "recalcitrant", "rogue", @@ -56,7 +57,7 @@ const FIRSTS: [&'static str; 52] = [ "weary", ]; -const LASTS: [&'static str; 58] = [ +const LASTS: [&'static str; 63] = [ "artifact", "assembly", "antenna", @@ -65,6 +66,7 @@ const LASTS: [&'static str; 58] = [ "carbon", "console", "construct", + "coordinates", "craft", "core", "design", @@ -80,19 +82,22 @@ const LASTS: [&'static str; 58] = [ "fossil", "frequency", "function", + "fusion", + "fission", "information", "insulator", "layout", "lifeform", + "liquid", "landmass", "lens", + "mass", "mantle", "magnetism", "mechanism", "mountain", "nectar", "nebula", - "oak", "oxide", "orbit", "pattern", From 91f01ff7998d9d0b005fa1ead0606fce055c8d93 Mon Sep 17 00:00:00 2001 From: ntr Date: Thu, 10 Oct 2019 15:33:12 +1100 Subject: [PATCH 12/16] update tos html --- bin/client.sh | 2 + client/assets/styles/menu.less | 4 + client/src/components/tos.jsx | 1123 -------------------- client/src/components/welcome.register.jsx | 9 +- 4 files changed, 10 insertions(+), 1128 deletions(-) delete mode 100644 client/src/components/tos.jsx 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/menu.less b/client/assets/styles/menu.less index 9bcddbf2..93f6a63f 100644 --- a/client/assets/styles/menu.less +++ b/client/assets/styles/menu.less @@ -137,6 +137,10 @@ section { grid-template-columns: 1fr 1fr; grid-template-rows: min-content 1fr; + button { + cursor: default; + } + .colour-info { grid-area: vinfo; display: flex; diff --git a/client/src/components/tos.jsx b/client/src/components/tos.jsx deleted file mode 100644 index a7d159f7..00000000 --- a/client/src/components/tos.jsx +++ /dev/null @@ -1,1123 +0,0 @@ -const html = ` - - - - - - - - - - -

- -

MNML- Website terms and conditions

- -
- -

 

- -
- -

Introduction

- -

Welcome to MNML!

- -

MNML is a turn-based 1v1 strategy game in an abstract setting where players outplay their -opponents by building their team of 3 constructs from a shifting meta of -skills and specialisations.

- -

MNML is provided by Minimal Studios -Pty Ltd ACN 635 160 182 (Minimal Studios, we, us, our) and accessible to -registered users via the URL [https://mnml.gg] (or any new or varied URL from -time to time), operated by Minimal Studios.  The public-facing Minimal Studios -website and the MNML platform available to registered users is referred to -throughout this document collectively as the “Website”.  These terms and -conditions and all policies posted on our Website set out the terms on which we -offer you access to use of our Website, services, applications and tools -(collectively the Services).

- -

These terms and conditions are made up -of three parts:

- -

·         -Part A – which applies to all users of our Services, -whether you are just browsing, or are a registered user capable of buying Virtual -Goods;

- -

·         -Part B – which applies to all registered users -of the Services; and

- -

·         -Part C – which applies to all registered users -of the Services who buy Virtual Goods.

- -

Separately, our Privacy Policy sets out how we -handle your personal information, including personal information collected -through this Website.

- -

Part A - Basics

- -

If you use these Services you are -agreeing to comply with and be bound by the terms and conditions listed below -and any other applicable laws or regulations which apply to these Services and -your use of it.  If you do not accept these terms and conditions, you are not -permitted to use these Services. 

- -

You acknowledge that an internet connection is required to -access the Services and that your internet services provider may apply data -charges to your use of the Services.

- -

We reserve the right to amend these terms and conditions -from time to time.

- -

Amendments will be effective -immediately upon notification on this Website.  If you do not agree to any -change to the terms and conditions, you may stop using the Services.  Your -continued use of these Services following such notification will represent an -agreement by you to be bound by the terms and conditions as amended.

- -

Minimal Studios makes no -representation that the Services (or any element of the Services) are -appropriate or available for use in all locations.  Further, you acknowledge -that except as expressly set out in these terms and conditions, we do not -warrant the accuracy, adequacy or completeness of the information on this -Website, nor do we undertake to keep the Services updated.

- -

Intellectual property rights -statement

- -

All intellectual property rights in the -Services, including design, text, graphics, logos, icons, sound recordings, -Virtual Money, Virtual Goods, and all software relating to the Services belong -to or are licensed by us.  These intellectual property rights are protected by -Australian and international laws.

- -

Subject to you accepting and complying with these terms -and conditions, and paying applicable fees, we grant you a limited, -non-exclusive, revocable and non-transferrable licence to access and use the Services -in accordance with these terms and conditions for your own personal purposes -only.

- -

You may not in any form or by any -means copy, adapt, reproduce (other than for the purpose of viewing the Website -in your browser), store, modify, distribute, print, upload, display, perform, -remove any credits, or create derivative works from any part of the Services or -commercialise any information obtained from any part of the Services without -our prior written permission or, in the case of third party material, from the -owner of the intellectual property rights in that material.

- -

You must not decompile, disassemble or reverse engineer -all or any portion of our Services or merge all or any portion of our Services -with any other software or website.

- -

Supply of the Services

- -

From time to time, we may add new features or -functionalities to the Services for which we may require you to agree to -certain additional terms and pay a fee to access (“Paid Features”). In -order to use a Paid Feature, you must comply with these terms and conditions -(and any relevant additional terms) and pay the applicable fees to us, which we -will notify to you on request.

- -

Linked Websites

- -

This Website may contain links to -other Websites.  The links are provided for convenience only and may not remain -current or be maintained.  We are not responsible for the content or privacy -practices associated with linked Websites.

- -

Secure data

- -

We take data security seriously, and -use industry-standard measures to protect data on our Services (including your -data on the Website) from cyber security threats.  We regularly test for -weaknesses in our code and reassess our cyber security posture.  Unfortunately, -despite these measures, no data transmission over the internet can be -guaranteed as totally secure.  We do not warrant and cannot absolutely promise the -security of any information which you transmit to us.  Accordingly, any -information that you transmit while using the Services is transmitted at your -own risk.  If you become aware of any problems with the security of the data or -the Services, please contact us immediately, providing whatever detail you are -able.

- -

Your conduct

- -

You must ensure that your access to and -use of the Services is not illegal or prohibited by laws which apply to you.

- -

You must not use the Services to -engage in unlawful or fraudulent behaviour, to defame or harass any third -party, to circumvent any security measures, through act or omission to mislead -or deceive others, or in any other manner that we consider to be unacceptable.

- -

You acknowledge that you must take -your own precautions to ensure that the process that you employ for accessing the -Services does not expose you to the risk of viruses, malicious computer code, -or other forms of interference which may damage your own computer system.

- -

Limitation of liability

- -

Subject to the clause immediately -below, except as expressly set out in these terms and conditions or to the -extent required by non-excludable law, we disclaim all -warranties, representations and conditions, express or implied, in relation to -the Services, and we are not liable for any loss or damage, however caused -(including, but not limited to, by our negligence) suffered by you in -connection with the Services, these terms and conditions, or your access to or use -of the Services.

- -

If the Competition and Consumer Act -2010 (Cth) or any other legislation states that there is a guarantee in -respect of goods or services supplied, and our liability for breach of that -guarantee may not be excluded but may be limited, our liability for such breach -is limited to, in the case of a supply of goods, replacing the goods or -supplying equivalent goods or repairing the goods, or in the case of supply of -Services, supplying the Services again or paying the cost of having the Services -supplied again.

- -

Indemnity

- -

You agree to indemnify us for all -damages, losses, penalties, fines, expenses and costs (including legal costs) -which arise out of or relate to your use of the Services, your breach of these -terms and conditions, any information that you provide to us via the Services -or any damage that you may cause to the Services.  This indemnification -includes, without limitation, liability relating to copyright infringement, -defamation, invasion of privacy, trade mark infringement and breaches of the Competition -and Consumer Act 2010 (Cth).

- -

Access

- -

Access to the Services may be -withdrawn at any time without notice.  These terms and conditions will survive -any such withdrawal.

- -

Governing law and jurisdiction

- -

If a dispute arises regarding the Services -or these terms and conditions, the laws of New South Wales, Australia, will -apply.  In relation to any such dispute, you submit to the exclusive -jurisdiction of the courts of New South Wales, Australia.

- -

If you access the Services in a -jurisdiction other than New South Wales, Australia, you are responsible and -agree to comply with the laws of that jurisdiction, to the extent that they -apply.

- -

Additional legal -terms

- -

The rights and obligations of the -parties under these terms and conditions do not merge on completion of any -transaction contemplated by these terms and conditions.  Termination of these -terms and conditions will not affect any accrued rights or remedies of the -parties (noting that rights to Virtual Goods will be extinguished in accordance -with these terms and conditions). 

- -

You must not (nor purport to) assign, -in whole or in part, or novate your rights and obligations under or in -connection with these terms and conditions without our prior written consent. 

- -

We may subcontract our -obligations under these terms and conditions, and assign or novate our rights -or obligations under these terms and conditions.

- -

A clause or part of a clause of these -terms and conditions that is illegal or unenforceable may be severed from these -terms and conditions and the remaining clauses or parts of the clause of these -terms and conditions continue in force.

- -

These terms and conditions supersede -all previous agreements about their subject matter.  These terms and conditions -embody the entire agreement between the parties.

- -

In these terms and conditions:

- -

·                -the meaning of any general language is not -restricted by any accompanying example, and the words ‘includes’, ‘including’, -‘such as’ or ‘for example’ (or similar phrases) do not limit what else might be -included;

- -

·                -no rule of construction applies in the -interpretation of these terms and conditions to the disadvantage of the party -preparing the terms and conditions on the basis that it put forward this document -or any part of it; and

- -

·                -a reference to a party is a reference to that -party, and a reference to the parties is a reference to both parties.

- -

Part B – Registered users

- -

Membership

- -

A key element of the -Services will be the interactions between users.  We encourage these rich -interactions, but of course you are required to conduct yourself in a lawful -and respectful manner.

- -

To buy Virtual Goods, or to otherwise -interact with other users while using the Services, you must become a member.  -To become a member, you must complete your registration details in the manner -described on the Website.  Membership is free but not transferable.

- -

We reserve the right to terminate your -membership if you breach these terms and do not remedy the breach within a -reasonable time notified by us (this time will vary depending on the nature of -the issue in any particular case). We also reserve the right to, at our -discretion, restrict -a member’s usage of the Services either temporarily or permanently, or refuse a -person’s request to register for an account with us.

- -

You must be 15 years of age or over to -be a member of the Services.  If you are under 15 years of age you must have -your parent or guardian register on your behalf.

- -

Member’s obligations

- -

By registering as a member of our -Services, you agree to abide by the terms set out below.

- -

·                     -You are responsible for protecting the -confidentiality of your member details and password.  You are responsible for -all activity that occurs using your member profile, including any fees incurred.

- -

·                     -You are solely responsible for your interactions with other -users.  You agree that Minimal Studios is not responsible for the conduct of -any user of the Services.

- -

·                     -You acknowledge that we cannot confirm the -identity of other members or prevent them acting under false pretences.

- -

·                     -You will not post, transmit or communicate to -any other user any material or information which is offensive, defamatory, -obscene, unlawful, misleading, deceptive, vulgar, harmful, threatening, -abusive, harassing or ethnically objectionable (determined at our sole -discretion).

- -

·                     -You agree not to impersonate any other person.

- -

·                     -We may, but are not obliged to, provide you with -any update or upgrade to, any new version of the Services.

- -

Our role

- -

We are not responsible for any user-generated content made -available to you through the Services (for example, user messages).  We are -entitled to monitor and moderate any user-generated content, however we are not -required to do so at all, or at any particular frequency or in any particular -manner. 

- -

If you download any material from the Website, you -acknowledge that we are not liable to you for any loss or damage, however -caused, arising from the downloading or subsequent use of the downloaded -material.  You may not adapt, reproduce, store, distribute, transmit, display, -publish or create derivative works from any downloaded material.  In addition, -you may not commercialise any information, products or Services from the -downloaded material.

- -

You indemnify us and our related bodies corporate and our -directors and employees against any claim by a third party arising out of a -breach of these terms either by you or by any person using your password or member -details, whether or not you have authorised that person to use your password or -member details.

- -

Part C – Buying Virtual Goods

- -

The Services permit registered users to purchase virtual -currency (Virtual Money) and to use that Virtual Money to buy goods and -services expressly available for use in the Services, such as game avatars and -other user account features from time to time (Virtual Goods).  To be -eligible to buy Virtual Money and Virtual Goods, you must first become a member -of the Services as set out in Part B above.

- -

You may access and purchase Virtual Money and Virtual -Goods for your personal, non-commercial use of the Services.  You acknowledge -that you do not acquire any ownership rights in or to the Virtual Money or -Virtual Goods.  You may only acquire Virtual Money and Virtual Goods from us -and through means provided by us.

- -

Virtual Money may be redeemed only for Virtual Goods and -can never be sold, transferred, or exchanged for ‘real’ money, ‘real’ goods, or -‘real’ services from us or anyone else.  Once you acquire a licence to Virtual -Money or Virtual Goods, you may not transfer them to another individual or -account. 

- -

During the term of your licence to the Virtual Money, you -may redeem it for selected Virtual Goods.  It is your responsibility to ensure you -have sufficient Virtual Money to perform any transaction within the Services.  -Transactions made using Virtual Money are ultimately settled through payments -of AUD amounts via registered Stripe accounts or any other method that we -accept from time to time (for instance, we may in the future expand to accept -payment in one or more crypto-currencies). 

- -

You will be provided with a register of Virtual Money -balances and Virtual Goods for convenience, but we utilise third party payment -processors with respect to the purchase of Virtual Money and we are not -responsible for the operation or accuracy of the transactions.  Any balance of -Virtual Money or Virtual Goods does not reflect any stored value, has no monetary -value, and does not constitute currency or property of any type.

- -

All sales of Virtual Money and Virtual Goods are final and -exchanges or refunds for unused Virtual Money or Virtual Goods are not -permitted, subjected to any rights you may have under the Competition and Consumer Act 2010 (Cth).

- -

Nature of rights in -Virtual Goods

- -

There is no inherent value in any Virtual Goods and the -value in particular Virtual Goods may fluctuate in value from time to time by -various factors including user demand and our algorithmic determination of goods -values.

- -

Your rights in any Virtual Goods are not ‘ownership’ and the -Virtual Goods are licensed to you under these terms and conditions solely for -the purposes of you using the Services.  Your rights in any Virtual Goods are -expressly subject to all of the terms that apply to use of the Services, and -require you to remain a member of the Services.

- -

Rights in Virtual Goods are not assignable from your -account to any other account. If your membership is cancelled or suspended in -accordance with these terms, or you cancel your use of the website for any -reason, you may forfeit any Virtual Goods assigned to your account and we are -not liable to you in any way (including without limitation for the payment of -any amount in respect of the relevant Virtual Goods).  You may also forfeit data -or statistical information related to your account in the future, for example -win or loss scores.   

- -

Tax

- -

Transactions involving Virtual Goods may be subject to -tax.  You are responsible for all of the taxation consequences of your use of -the Services.

- -

GST

- -

Any words capitalised in this clause have the meaning -given to those words in the A New Tax System (Goods and Services Tax) Act -1999 (Cth).

- -

The consideration for a Supply made under or in connection -with this agreement does not include GST.

- -

If -a Supply made under or in connection with this agreement is a Taxable Supply, -then at or before the time any part of the consideration for the Supply is -payable:

- -

(a)          -the Recipient must pay the GST Act Supplier an -amount equal to the GST for the Supply, in addition to, and in the same manner -as the consideration otherwise payable under this agreement for that Supply); -and

- -

(b)          -the GST Act Supplier must give the Recipient a -Tax Invoice for the Supply.

- -

 

- -

 

- -
- - - -`; - -function termsOfService() { - const newWindow = window.open('', 'TOS'); - newWindow.document.write(html); -} - -module.exports = termsOfService; diff --git a/client/src/components/welcome.register.jsx b/client/src/components/welcome.register.jsx index c9ea29ac..c5ab9f79 100644 --- a/client/src/components/welcome.register.jsx +++ b/client/src/components/welcome.register.jsx @@ -4,7 +4,6 @@ const { Component } = require('preact') const { connect } = require('preact-redux'); const linkState = require('linkstate').default; -const tos = require('./tos'); const { postData, errorToast, infoToast } = require('../utils'); const addState = connect( @@ -76,12 +75,12 @@ function Register(args) { onInput={linkState(this, 'confirm')} />
- + }/>   Confirm agreement to terms of service   - +
- : - } - - -
-
-
-
-
- - ))} + 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) {
- +
); }; From dc7e8a91e6d424f5350a3aa87344c7432541d317 Mon Sep 17 00:00:00 2001 From: ntr Date: Thu, 10 Oct 2019 18:19:36 +1100 Subject: [PATCH 16/16] better styles for effects and skills --- client/assets/styles/menu.less | 6 ++++-- client/src/components/game.construct.jsx | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/assets/styles/menu.less b/client/assets/styles/menu.less index 566120b0..4d0dd7ca 100644 --- a/client/assets/styles/menu.less +++ b/client/assets/styles/menu.less @@ -132,10 +132,12 @@ section { display: block; button { - cursor: default; + pointer-events: none; } section { + margin-bottom: 0.5em; + div:first-child { padding-right: 1em; } @@ -147,7 +149,7 @@ section { grid-area: unset; .instance-construct { - border: 0; + // border: 0; } } } 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 (