better prompt text

This commit is contained in:
ntr 2020-01-10 13:09:47 +10:00
parent b3b5716b21
commit 37a491b21a
9 changed files with 26 additions and 35 deletions

View File

@ -45,7 +45,6 @@ export const setTeamPage = value => ({ type: 'SET_TEAM_PAGE', value });
export const setTeamSelect = value => ({ type: 'SET_TEAM_SELECT', value: Array.from(value) }); export const setTeamSelect = value => ({ type: 'SET_TEAM_SELECT', value: Array.from(value) });
export const setTutorial = value => ({ type: 'SET_TUTORIAL', value }); export const setTutorial = value => ({ type: 'SET_TUTORIAL', value });
export const setTutorialGame = value => ({ type: 'SET_TUTORIAL_GAME', value });
export const setVboxSelected = value => ({ type: 'SET_VBOX_SELECTED', value: value }); export const setVboxSelected = value => ({ type: 'SET_VBOX_SELECTED', value: value });
export const setVboxCombiner = value => ({ type: 'SET_VBOX_COMBINER', value }); export const setVboxCombiner = value => ({ type: 'SET_VBOX_COMBINER', value });

View File

@ -50,12 +50,11 @@ function Play(args) {
); );
const list = () => { const list = () => {
if (promptRegister) { if (promptRegister) {
return ( return (
<div class='block-text'> <div class='block-text'>
<p><b>You just won your first round of MNML.</b></p> <p><b>You just won your first round of MNML.</b></p>
<p>Register below to play a real Bo5 against other players, play a practice round, customise your team & more...</p> <p>Register below to play a real Bo5 against other players,<br/> play a practice round against a tougher AI opponent,<br/> customise your team & more...</p>
<p>glhf</p> <p>glhf</p>
</div> </div>
) )

View File

@ -9,8 +9,8 @@ const shapes = require('./shapes');
const { effectInfo } = require('../utils'); const { effectInfo } = require('../utils');
const addState = connect( const addState = connect(
({ game, account, animating, itemInfo, gameEffectInfo, tutorialGame }) => ({ game, account, animating, itemInfo, gameEffectInfo, authenticated }) =>
({ game, account, animating, itemInfo, gameEffectInfo, tutorialGame }) ({ game, account, animating, itemInfo, gameEffectInfo, authenticated })
); );
class TargetSvg extends Component { class TargetSvg extends Component {
@ -32,7 +32,6 @@ class TargetSvg extends Component {
if (newProps.account !== this.props.account) return true; if (newProps.account !== this.props.account) return true;
if (newProps.animating !== this.props.animating) return true; if (newProps.animating !== this.props.animating) return true;
if (newProps.gameEffectInfo !== this.props.gameEffectInfo) return true; if (newProps.gameEffectInfo !== this.props.gameEffectInfo) return true;
if (newProps.tutorialGame !== this.props.tutorialGame) return true;
if (newState.width !== this.state.width) return true; if (newState.width !== this.state.width) return true;
if (newState.height !== this.state.height) return true; if (newState.height !== this.state.height) return true;
return false; return false;
@ -45,7 +44,7 @@ class TargetSvg extends Component {
animating, animating,
game, game,
gameEffectInfo, gameEffectInfo,
tutorialGame, authenticated,
} = props; } = props;
const { width, height } = state; const { width, height } = state;
@ -53,10 +52,10 @@ class TargetSvg extends Component {
if (game.phase === 'Finished') return false; // Clear everything if its over (in case of abandon) if (game.phase === 'Finished') return false; // Clear everything if its over (in case of abandon)
// First time joining game phase // First time joining game phase
if (tutorialGame) { if (!authenticated && game.stack.length === 0) {
return ( return (
<div class="resolving-skill"> <div class="resolving-skill">
<h2>Select your skills, click on targets and then hit <b>READY</b>.</h2> <h2><b>Select a skill</b> from each construct, <b>click a target</b> for that skill and then click <b>READY</b>.</h2>
</div> </div>
); );
} }

View File

@ -30,10 +30,6 @@ function registerEvents(store) {
} }
function clearTutorialGame() {
store.dispatch(actions.setTutorialGame(null));
}
function setPing(ping) { function setPing(ping) {
store.dispatch(actions.setPing(ping)); store.dispatch(actions.setPing(ping));
} }
@ -231,7 +227,6 @@ function registerEvents(store) {
clearInstance, clearInstance,
clearMtxActive, clearMtxActive,
clearTutorial, clearTutorial,
clearTutorialGame,
setAccount, setAccount,
setAuthenticated, setAuthenticated,
setAccountInstances, setAccountInstances,

View File

@ -54,7 +54,6 @@ module.exports = {
teamSelect: createReducer([null, null, null], 'SET_TEAM_SELECT'), teamSelect: createReducer([null, null, null], 'SET_TEAM_SELECT'),
tutorial: createReducer(1, 'SET_TUTORIAL'), tutorial: createReducer(1, 'SET_TUTORIAL'),
tutorialGame: createReducer(1, 'SET_TUTORIAL_GAME'),
vboxSelected: createReducer({ storeSelect: [], stashSelect: [] }, 'SET_VBOX_SELECTED'), vboxSelected: createReducer({ storeSelect: [], stashSelect: [] }, 'SET_VBOX_SELECTED'),
vboxCombiner: createReducer(null, 'SET_VBOX_COMBINER'), vboxCombiner: createReducer(null, 'SET_VBOX_COMBINER'),

View File

@ -129,7 +129,6 @@ function createSocket(events) {
{ game_id: gameId, construct_id: constructId, target_construct_id: targetConstructId, skill }, { game_id: gameId, construct_id: constructId, target_construct_id: targetConstructId, skill },
]); ]);
events.setActiveSkill(null); events.setActiveSkill(null);
events.clearTutorialGame();
} }
function sendGameSkillClear(gameId) { function sendGameSkillClear(gameId) {

View File

@ -141,24 +141,6 @@ struct Connection {
events: CbSender<Event>, events: CbSender<Event>,
} }
impl Connection {
// this is where last minute processing happens
// use it to modify outgoing messages, update subs, serialize in some way...
fn send(&self, msg: RpcMessage) -> Result<(), Error> {
let msg = match msg {
RpcMessage::InstanceState(v) => RpcMessage::InstanceState(v.redact(self.id)),
RpcMessage::AccountInstances(v) =>
RpcMessage::AccountInstances(v.into_iter().map(|i| i.redact(self.id)).collect()),
RpcMessage::GameState(v) => RpcMessage::GameState(v.redact(self.id)),
_ => msg,
};
self.ws.send(msg).unwrap();
Ok(())
}
}
// we unwrap everything in here cause really // we unwrap everything in here cause really
// we don't care if this panics // we don't care if this panics
// it's run in a thread so it's supposed to bail // it's run in a thread so it's supposed to bail
@ -178,7 +160,7 @@ impl Handler for Connection {
}, },
Err(e) => { Err(e) => {
warn!("{:?}", e); warn!("{:?}", e);
self.send(RpcMessage::Error(e.to_string())).unwrap(); self.ws.send(RpcMessage::Error(e.to_string())).unwrap();
}, },
}; };
}, },

View File

@ -50,6 +50,16 @@ impl User for Anonymous {
_ => (), _ => (),
}; };
// last minute redactions and processing
// this happens after the state setting as we need to keep
// all the skills to prevent forfeiting
let msg = match msg {
RpcMessage::InstanceState(v) => RpcMessage::InstanceState(v.redact(self.id)),
RpcMessage::GameState(v) => RpcMessage::GameState(v.redact(self.id)),
_ => msg,
};
self.ws.send(msg)?; self.ws.send(msg)?;
Ok(()) Ok(())

View File

@ -79,6 +79,15 @@ impl User for Authenticated {
_ => (), _ => (),
}; };
// last minute processing
let msg = match msg {
RpcMessage::InstanceState(v) => RpcMessage::InstanceState(v.redact(self.id)),
RpcMessage::AccountInstances(v) =>
RpcMessage::AccountInstances(v.into_iter().map(|i| i.redact(self.id)).collect()),
RpcMessage::GameState(v) => RpcMessage::GameState(v.redact(self.id)),
_ => msg,
};
self.ws.send(msg)?; self.ws.send(msg)?;
Ok(()) Ok(())