Skip to content
This repository has been archived by the owner on Jun 13, 2022. It is now read-only.

Commit

Permalink
Merge pull request #89 from ft-interactive/backend-decomm
Browse files Browse the repository at this point in the history
Removing calls to server, all data is now static.
  • Loading branch information
Ændrew Rininsland authored Jul 21, 2020
2 parents 23b75cf + 4f6a00d commit fb4253f
Show file tree
Hide file tree
Showing 8 changed files with 4,232 additions and 3,975 deletions.
1 change: 1 addition & 0 deletions client/decisions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default { biz_licence: { true: 339769, false: 481287 }, helped_homework: { true: 603120, false: 107671 }, took_day_off: { true: 88744, false: 592219 } };
109 changes: 50 additions & 59 deletions client/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,9 @@ import GameContainer from './components/GameContainer';
import Ending from './components/Ending';
import Modernizr from './modernizr'; // eslint-disable-line no-unused-vars
import gaAnalytics from './components/analytics';

const endpoint =
window.ENV === 'development'
? 'http://localhost:3000'
: 'https://ft-ig-uber-game-backend.herokuapp.com';
import percentilesEasy from './percentiles_easy';
import percentilesHard from './percentiles_hard';
import decisionsData from './decisions';

const story = new Story(json);
const stateUtils = new StateUtils(story, config);
Expand Down Expand Up @@ -68,7 +66,6 @@ gameContainer.initialise();

const ending = Ending.createIn(document.querySelector('.ending-container'), {
stateUtils,
endpoint,
});

let choicesContainerElement;
Expand Down Expand Up @@ -173,27 +170,30 @@ function recordPlayerResult() {
const income = revenue - costs;
const hourlyWage = income / story.variablesState.$('hours_driven_total');

return fetch(`${endpoint}/results`, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify({
revenue,
meta,
income,
hourlyWage,
difficulty,
expenses: costs,
}),
})
.then(() => console.info('Endgame data recorded')) // eslint-disable-line
.catch(e => console.error(`Error recording: ${e}`)); // eslint-disable-line
return Promise.resolve();

// Results recording disabled as of 21 July 2020
// return fetch(`${endpoint}/results`, {
// headers: {
// Accept: 'application/json',
// 'Content-Type': 'application/json',
// },
// method: 'POST',
// body: JSON.stringify({
// revenue,
// meta,
// income,
// hourlyWage,
// difficulty,
// expenses: costs,
// }),
// })
// .then(() => console.info('Endgame data recorded')) // eslint-disable-line
// .catch(e => console.error(`Error recording: ${e}`)); // eslint-disable-line
}

// fetch other users' decisions up-front
const decisionsPromise = fetch(`${endpoint}/decisions`).then(res => res.json());
const decisionsPromise = Promise.resolve(decisionsData);

async function endStory() {
// hide/prepare various surrounding elements
Expand Down Expand Up @@ -238,23 +238,11 @@ async function endStory() {
tax +
repairCost;

// fetch this user's global ranking
const rankPromise = Bluebird.resolve()
.then(() => {
const url = `${endpoint}/ranking?difficulty=${difficulty.toLowerCase()}&income=${netIncome}`;
// console.log('about to fetch', url);
const percentiles = (difficulty.toLowerCase() === 'easy' ? percentilesEasy : percentilesHard).sort((a, b) => a.percentile_cont - b.percentile_cont);

return fetch(url);
})
.then(res => res.json())
.then(obj => obj.percent_rank)
.catch((error) => {
console.warn('Error fetching ranking', error);
return null;
});

// record this player's result
recordPlayerResult();
// fetch this user's global ranking
const pctileIdx = percentiles.findIndex(d => netIncome < d.percentile_cont) - 1;
const rankPromise = Bluebird.resolve(percentiles[pctileIdx].k);

// wait for data showing what other users chose
let otherUserDecisions;
Expand Down Expand Up @@ -349,25 +337,28 @@ function recordDecision(decision) {
return acc;
}, {});

return fetch(`${endpoint}/decisions`, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
method: 'POST',
body: JSON.stringify({
type: decision,
value: story.variablesState.$(decision) === 1,
difficulty: story.variablesState.$('credit_rating') === 'good' ? 'easy' : 'hard',
meta,
}),
})
.then(() => {
console.log(`${decision} recorded`);
})
.catch((error) => {
console.error('Error recording decision', error);
});
return Promise.resolve();

// No longer recording as of 21 July 2020
// return fetch(`${endpoint}/decisions`, {
// headers: {
// Accept: 'application/json',
// 'Content-Type': 'application/json',
// },
// method: 'POST',
// body: JSON.stringify({
// type: decision,
// value: story.variablesState.$(decision) === 1,
// difficulty: story.variablesState.$('credit_rating') === 'good' ? 'easy' : 'hard',
// meta,
// }),
// })
// .then(() => {
// console.log(`${decision} recorded`);
// })
// .catch((error) => {
// console.error('Error recording decision', error);
// });
}

function continueStory() {
Expand Down
103 changes: 103 additions & 0 deletions client/percentiles_easy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
export default [
{ k: 0.0, percentile_cont: 629 },
{ k: 0.01, percentile_cont: 942 },
{ k: 0.02, percentile_cont: 980 },
{ k: 0.03, percentile_cont: 1005 },
{ k: 0.04, percentile_cont: 1024 },
{ k: 0.05, percentile_cont: 1042 },
{ k: 0.06, percentile_cont: 1058 },
{ k: 0.07, percentile_cont: 1075 },
{ k: 0.08, percentile_cont: 1090 },
{ k: 0.09, percentile_cont: 1104 },
{ k: 0.1, percentile_cont: 1118 },
{ k: 0.11, percentile_cont: 1132 },
{ k: 0.12, percentile_cont: 1148 },
{ k: 0.13, percentile_cont: 1162 },
{ k: 0.14, percentile_cont: 1176 },
{ k: 0.15, percentile_cont: 1189 },
{ k: 0.16, percentile_cont: 1202 },
{ k: 0.17, percentile_cont: 1214 },
{ k: 0.18, percentile_cont: 1225 },
{ k: 0.19, percentile_cont: 1236 },
{ k: 0.2, percentile_cont: 1247 },
{ k: 0.21, percentile_cont: 1258 },
{ k: 0.22, percentile_cont: 1270 },
{ k: 0.23, percentile_cont: 1281 },
{ k: 0.24, percentile_cont: 1293 },
{ k: 0.25, percentile_cont: 1307 },
{ k: 0.26, percentile_cont: 1321 },
{ k: 0.27, percentile_cont: 1335 },
{ k: 0.28, percentile_cont: 1348 },
{ k: 0.29, percentile_cont: 1360 },
{ k: 0.3, percentile_cont: 1372 },
{ k: 0.31, percentile_cont: 1381 },
{ k: 0.32, percentile_cont: 1389 },
{ k: 0.33, percentile_cont: 1397 },
{ k: 0.34, percentile_cont: 1403 },
{ k: 0.35, percentile_cont: 1409 },
{ k: 0.36, percentile_cont: 1414 },
{ k: 0.37, percentile_cont: 1420 },
{ k: 0.38, percentile_cont: 1425 },
{ k: 0.39, percentile_cont: 1430 },
{ k: 0.4, percentile_cont: 1435 },
{ k: 0.41, percentile_cont: 1439 },
{ k: 0.42, percentile_cont: 1443 },
{ k: 0.43, percentile_cont: 1446 },
{ k: 0.44, percentile_cont: 1449 },
{ k: 0.45, percentile_cont: 1453 },
{ k: 0.46, percentile_cont: 1456 },
{ k: 0.47, percentile_cont: 1460 },
{ k: 0.48, percentile_cont: 1464 },
{ k: 0.49, percentile_cont: 1467 },
{ k: 0.5, percentile_cont: 1470 },
{ k: 0.51, percentile_cont: 1474 },
{ k: 0.52, percentile_cont: 1477 },
{ k: 0.53, percentile_cont: 1480 },
{ k: 0.54, percentile_cont: 1484 },
{ k: 0.55, percentile_cont: 1487 },
{ k: 0.56, percentile_cont: 1490 },
{ k: 0.57, percentile_cont: 1493 },
{ k: 0.58, percentile_cont: 1496 },
{ k: 0.59, percentile_cont: 1499 },
{ k: 0.6, percentile_cont: 1502 },
{ k: 0.61, percentile_cont: 1505 },
{ k: 0.62, percentile_cont: 1508 },
{ k: 0.63, percentile_cont: 1511 },
{ k: 0.64, percentile_cont: 1514 },
{ k: 0.65, percentile_cont: 1518 },
{ k: 0.66, percentile_cont: 1520 },
{ k: 0.67, percentile_cont: 1523 },
{ k: 0.68, percentile_cont: 1526 },
{ k: 0.69, percentile_cont: 1530 },
{ k: 0.7, percentile_cont: 1534 },
{ k: 0.71, percentile_cont: 1536 },
{ k: 0.72, percentile_cont: 1540 },
{ k: 0.73, percentile_cont: 1543 },
{ k: 0.74, percentile_cont: 1546 },
{ k: 0.75, percentile_cont: 1549 },
{ k: 0.76, percentile_cont: 1552 },
{ k: 0.77, percentile_cont: 1556 },
{ k: 0.78, percentile_cont: 1559 },
{ k: 0.79, percentile_cont: 1563 },
{ k: 0.8, percentile_cont: 1567 },
{ k: 0.81, percentile_cont: 1571 },
{ k: 0.82, percentile_cont: 1575 },
{ k: 0.83, percentile_cont: 1579 },
{ k: 0.84, percentile_cont: 1583 },
{ k: 0.85, percentile_cont: 1587 },
{ k: 0.86, percentile_cont: 1592 },
{ k: 0.87, percentile_cont: 1597 },
{ k: 0.88, percentile_cont: 1602 },
{ k: 0.89, percentile_cont: 1607 },
{ k: 0.9, percentile_cont: 1612 },
{ k: 0.91, percentile_cont: 1618 },
{ k: 0.92, percentile_cont: 1625 },
{ k: 0.93, percentile_cont: 1632 },
{ k: 0.94, percentile_cont: 1640 },
{ k: 0.95, percentile_cont: 1648 },
{ k: 0.96, percentile_cont: 1658 },
{ k: 0.97, percentile_cont: 1670 },
{ k: 0.98, percentile_cont: 1685 },
{ k: 0.99, percentile_cont: 1712 },
{ k: 1.0, percentile_cont: 1864 },
];
103 changes: 103 additions & 0 deletions client/percentiles_hard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
export default [
{ k: 0.0, percentile_cont: 476 },
{ k: 0.01, percentile_cont: 751 },
{ k: 0.02, percentile_cont: 864 },
{ k: 0.03, percentile_cont: 947 },
{ k: 0.04, percentile_cont: 986 },
{ k: 0.05, percentile_cont: 1014 },
{ k: 0.06, percentile_cont: 1040 },
{ k: 0.07, percentile_cont: 1064 },
{ k: 0.08, percentile_cont: 1087 },
{ k: 0.09, percentile_cont: 1110 },
{ k: 0.1, percentile_cont: 1130 },
{ k: 0.11, percentile_cont: 1148 },
{ k: 0.12, percentile_cont: 1162 },
{ k: 0.13, percentile_cont: 1176 },
{ k: 0.14, percentile_cont: 1188 },
{ k: 0.15, percentile_cont: 1200 },
{ k: 0.16, percentile_cont: 1211 },
{ k: 0.17, percentile_cont: 1222 },
{ k: 0.18, percentile_cont: 1232 },
{ k: 0.19, percentile_cont: 1243 },
{ k: 0.2, percentile_cont: 1253 },
{ k: 0.21, percentile_cont: 1263 },
{ k: 0.22, percentile_cont: 1275 },
{ k: 0.23, percentile_cont: 1286 },
{ k: 0.24, percentile_cont: 1298 },
{ k: 0.25, percentile_cont: 1311 },
{ k: 0.26, percentile_cont: 1323 },
{ k: 0.27, percentile_cont: 1336 },
{ k: 0.28, percentile_cont: 1349 },
{ k: 0.29, percentile_cont: 1361 },
{ k: 0.3, percentile_cont: 1372 },
{ k: 0.31, percentile_cont: 1381 },
{ k: 0.32, percentile_cont: 1390 },
{ k: 0.33, percentile_cont: 1398 },
{ k: 0.34, percentile_cont: 1406 },
{ k: 0.35, percentile_cont: 1412 },
{ k: 0.36, percentile_cont: 1418 },
{ k: 0.37, percentile_cont: 1425 },
{ k: 0.38, percentile_cont: 1430 },
{ k: 0.39, percentile_cont: 1435 },
{ k: 0.4, percentile_cont: 1440 },
{ k: 0.41, percentile_cont: 1445 },
{ k: 0.42, percentile_cont: 1451 },
{ k: 0.43, percentile_cont: 1455 },
{ k: 0.44, percentile_cont: 1460 },
{ k: 0.45, percentile_cont: 1464 },
{ k: 0.46, percentile_cont: 1468 },
{ k: 0.47, percentile_cont: 1473 },
{ k: 0.48, percentile_cont: 1477 },
{ k: 0.49, percentile_cont: 1481 },
{ k: 0.5, percentile_cont: 1486 },
{ k: 0.51, percentile_cont: 1490 },
{ k: 0.52, percentile_cont: 1493 },
{ k: 0.53, percentile_cont: 1497 },
{ k: 0.54, percentile_cont: 1501 },
{ k: 0.55, percentile_cont: 1506 },
{ k: 0.56, percentile_cont: 1510 },
{ k: 0.57, percentile_cont: 1514 },
{ k: 0.58, percentile_cont: 1519 },
{ k: 0.59, percentile_cont: 1523 },
{ k: 0.6, percentile_cont: 1528 },
{ k: 0.61, percentile_cont: 1531 },
{ k: 0.62, percentile_cont: 1536 },
{ k: 0.63, percentile_cont: 1540 },
{ k: 0.64, percentile_cont: 1545 },
{ k: 0.65, percentile_cont: 1549 },
{ k: 0.66, percentile_cont: 1554 },
{ k: 0.67, percentile_cont: 1559 },
{ k: 0.68, percentile_cont: 1565 },
{ k: 0.69, percentile_cont: 1571 },
{ k: 0.7, percentile_cont: 1576 },
{ k: 0.71, percentile_cont: 1582 },
{ k: 0.72, percentile_cont: 1588 },
{ k: 0.73, percentile_cont: 1594 },
{ k: 0.74, percentile_cont: 1601 },
{ k: 0.75, percentile_cont: 1608 },
{ k: 0.76, percentile_cont: 1615 },
{ k: 0.77, percentile_cont: 1622 },
{ k: 0.78, percentile_cont: 1632 },
{ k: 0.79, percentile_cont: 1641 },
{ k: 0.8, percentile_cont: 1651 },
{ k: 0.81, percentile_cont: 1662 },
{ k: 0.82, percentile_cont: 1673 },
{ k: 0.83, percentile_cont: 1685 },
{ k: 0.84, percentile_cont: 1697 },
{ k: 0.85, percentile_cont: 1708 },
{ k: 0.86, percentile_cont: 1718 },
{ k: 0.87, percentile_cont: 1729 },
{ k: 0.88, percentile_cont: 1739 },
{ k: 0.89, percentile_cont: 1749 },
{ k: 0.9, percentile_cont: 1758 },
{ k: 0.91, percentile_cont: 1768 },
{ k: 0.92, percentile_cont: 1778 },
{ k: 0.93, percentile_cont: 1789 },
{ k: 0.94, percentile_cont: 1799 },
{ k: 0.95, percentile_cont: 1811 },
{ k: 0.96, percentile_cont: 1824 },
{ k: 0.97, percentile_cont: 1841 },
{ k: 0.98, percentile_cont: 1861 },
{ k: 0.99, percentile_cont: 1888 },
{ k: 1.0, percentile_cont: 2071 },
];
Loading

0 comments on commit fb4253f

Please sign in to comment.