diff --git a/client/src/components/demo.jsx b/client/src/components/demo.jsx index 6735998e..45dcf71d 100644 --- a/client/src/components/demo.jsx +++ b/client/src/components/demo.jsx @@ -43,7 +43,7 @@ function Demo(args) { if (!demo || !itemInfo.items.length || account) return false; - const { combiner, items, equipping, equipped, players } = demo; + const { combiner, items, equipping, equipped, players, combo } = demo; const vboxDemo = () => { function inventoryBtn(i, j) { @@ -90,7 +90,7 @@ function Demo(args) { VBOX PHASE {shapes.Red()} {shapes.Green()} {shapes.Blue()}

- Combine the colour base items with skills and specialisations to build an array of powerful variants. + Combine colours with base skills and specialisations to build an array of powerful variants.

 
@@ -122,7 +122,7 @@ function Demo(args) {
{equipped - ? + ? : } diff --git a/client/src/events.jsx b/client/src/events.jsx index 5c10e2e3..a957b380 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -234,39 +234,42 @@ function registerEvents(store) { function setDemo(d) { - const initial = { + const vboxDemo = { players: d, combiner: [], - items: ['Red', 'Red', 'Attack'], equipped: false, equipping: false, }; const startDemo = () => { - const { account } = store.getState(); + const { account, itemInfo } = store.getState(); if (account) return false; - store.dispatch(actions.setDemo(initial)); + if (!itemInfo || itemInfo.items.length === 0) return setTimeout(startDemo, 500); store.dispatch(actions.setAnimTarget(null)); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { combiner: [0] }))), 500); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { combiner: [0, 1] }))), 1000); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { combiner: [0, 1, 2] }))), 1500); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { combiner: [], items: ['Strike', '', ''] }))), 2500); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { combiner: [0], items: ['Strike', '', ''], equipping: true }))), 3500); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { combiner: [], items: ['', '', ''], equipped: true, equipping: false }))), 4250); - setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, initial, { items: ['', '', ''], equipped: true, equipping: false }))), 4250); + const bases = ['Attack', 'Stun', 'Buff', 'Debuff', 'Block']; + const combo = sample(itemInfo.combos.filter(i => bases.some(b => i.components.includes(b)))); + vboxDemo.combo = combo.item; + vboxDemo.items = combo.components; + store.dispatch(actions.setDemo(vboxDemo)); + + + setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, vboxDemo, { combiner: [0] }))), 500); + setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, vboxDemo, { combiner: [0, 1] }))), 1000); + setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, vboxDemo, { combiner: [0, 1, 2] }))), 1500); + setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, vboxDemo, { combiner: [], items: [vboxDemo.combo, '', ''] }))), 2500); + setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, vboxDemo, { combiner: [0], items: [vboxDemo.combo, '', ''], equipping: true }))), 3000); + setTimeout(() => store.dispatch(actions.setDemo(Object.assign({}, vboxDemo, { combiner: [], items: ['', '', ''], equipped: true, equipping: false }))), 4000); setTimeout(() => { - const { itemInfo } = store.getState(); return store.dispatch(actions.setAnimTarget({ skill: sample(itemInfo.items.filter(i => i.skill)).item, constructId: d[1].constructs[0].id, player: false, direction: 0, })); - }, 1000); + }, 500); setTimeout(() => { - const { itemInfo } = store.getState(); return store.dispatch(actions.setAnimTarget({ skill: sample(itemInfo.items.filter(i => i.skill)).item, constructId: d[1].constructs[1].id, @@ -275,7 +278,7 @@ function registerEvents(store) { })); }, 3000); - setTimeout(startDemo, 6000); + return setTimeout(startDemo, 5000); }; startDemo();