Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

update #2

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
232 changes: 232 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
var OFF = 0, WARN = 1, ERROR = 2;

module.exports = exports = {
"env": {
"es6": true,
"node": true,
"browser": true
},

"extends": "eslint:recommended",

// "ecmaFeatures": {
// // env=es6 doesn't include modules, which we are using
// "modules": true
// },
//

"rules": {
"no-console": "off"
},

"globals": {
"W": "writable",
"node": "writable",
"J": "writable",
"JSUS": "writable"
}

//
// "rules": {
// // Possible Errors (overrides from recommended set)
// "no-extra-parens": ERROR,
// "no-unexpected-multiline": ERROR,
// // All JSDoc comments must be valid
// "valid-jsdoc": [ ERROR, {
// "requireReturn": false,
// "requireReturnDescription": false,
// "requireParamDescription": true,
// "prefer": {
// "return": "returns"
// }
// }],
//
// // Best Practices
//
// // Allowed a getter without setter, but all setters require getters
// "accessor-pairs": [ ERROR, {
// "getWithoutSet": false,
// "setWithoutGet": true
// }],
// "block-scoped-var": WARN,
// "consistent-return": ERROR,
// "curly": ERROR,
// "default-case": WARN,
// // the dot goes with the property when doing multiline
// "dot-location": [ WARN, "property" ],
// "dot-notation": WARN,
// "eqeqeq": [ ERROR, "smart" ],
// "guard-for-in": WARN,
// "no-alert": ERROR,
// "no-caller": ERROR,
// "no-case-declarations": WARN,
// "no-div-regex": WARN,
// "no-else-return": WARN,
// "no-empty-label": WARN,
// "no-empty-pattern": WARN,
// "no-eq-null": WARN,
// "no-eval": ERROR,
// "no-extend-native": ERROR,
// "no-extra-bind": WARN,
// "no-floating-decimal": WARN,
// "no-implicit-coercion": [ WARN, {
// "boolean": true,
// "number": true,
// "string": true
// }],
// "no-implied-eval": ERROR,
// "no-invalid-this": ERROR,
// "no-iterator": ERROR,
// "no-labels": WARN,
// "no-lone-blocks": WARN,
// "no-loop-func": ERROR,
// "no-magic-numbers": WARN,
// "no-multi-spaces": ERROR,
// "no-multi-str": WARN,
// "no-native-reassign": ERROR,
// "no-new-func": ERROR,
// "no-new-wrappers": ERROR,
// "no-new": ERROR,
// "no-octal-escape": ERROR,
// "no-param-reassign": ERROR,
// "no-process-env": WARN,
// "no-proto": ERROR,
// "no-redeclare": ERROR,
// "no-return-assign": ERROR,
// "no-script-url": ERROR,
// "no-self-compare": ERROR,
// "no-throw-literal": ERROR,
// "no-unused-expressions": ERROR,
// "no-useless-call": ERROR,
// "no-useless-concat": ERROR,
// "no-void": WARN,
// // Produce warnings when something is commented as TODO or FIXME
// "no-warning-comments": [ WARN, {
// "terms": [ "TODO", "FIXME" ],
// "location": "start"
// }],
// "no-with": WARN,
// "radix": WARN,
// "vars-on-top": ERROR,
// // Enforces the style of wrapped functions
// "wrap-iife": [ ERROR, "outside" ],
// "yoda": ERROR,
//
// // Strict Mode - for ES6, never use strict.
// "strict": [ ERROR, "never" ],
//
// // Variables
// "init-declarations": [ ERROR, "always" ],
// "no-catch-shadow": WARN,
// "no-delete-var": ERROR,
// "no-label-var": ERROR,
// "no-shadow-restricted-names": ERROR,
// "no-shadow": WARN,
// // We require all vars to be initialized (see init-declarations)
// // If we NEED a var to be initialized to undefined,
// // it needs to be explicit
// "no-undef-init": OFF,
// "no-undef": ERROR,
// "no-undefined": OFF,
// "no-unused-vars": WARN,
// // Disallow hoisting - let & const don't allow hoisting anyhow
// "no-use-before-define": ERROR,
//
// // Node.js and CommonJS
// "callback-return": [ WARN, [ "callback", "next" ]],
// "global-require": ERROR,
// "handle-callback-err": WARN,
// "no-mixed-requires": WARN,
// "no-new-require": ERROR,
// // Use path.concat instead
// "no-path-concat": ERROR,
// "no-process-exit": ERROR,
// "no-restricted-modules": OFF,
// "no-sync": WARN,
//
// // ECMAScript 6 support
// "arrow-body-style": [ ERROR, "always" ],
// "arrow-parens": [ ERROR, "always" ],
// "arrow-spacing": [ ERROR, { "before": true, "after": true }],
// "constructor-super": ERROR,
// "generator-star-spacing": [ ERROR, "before" ],
// "no-arrow-condition": ERROR,
// "no-class-assign": ERROR,
// "no-const-assign": ERROR,
// "no-dupe-class-members": ERROR,
// "no-this-before-super": ERROR,
// "no-var": WARN,
// "object-shorthand": [ WARN, "never" ],
// "prefer-arrow-callback": WARN,
// "prefer-spread": WARN,
// "prefer-template": WARN,
// "require-yield": ERROR,
//
// // Stylistic - everything here is a warning because of style.
// "array-bracket-spacing": [ WARN, "always" ],
// "block-spacing": [ WARN, "always" ],
// "brace-style": [ WARN, "1tbs", { "allowSingleLine": false } ],
// "camelcase": WARN,
// "comma-spacing": [ WARN, { "before": false, "after": true } ],
// "comma-style": [ WARN, "last" ],
// "computed-property-spacing": [ WARN, "never" ],
// "consistent-this": [ WARN, "self" ],
// "eol-last": WARN,
// "func-names": WARN,
// "func-style": [ WARN, "declaration" ],
// "id-length": [ WARN, { "min": 2, "max": 32 } ],
// "indent": [ WARN, 4 ],
// "jsx-quotes": [ WARN, "prefer-double" ],
// // "linebreak-style": [ WARN, "unix" ],
// "lines-around-comment": [ WARN, { "beforeBlockComment": true } ],
// "max-depth": [ WARN, 8 ],
// "max-len": [ WARN, 132 ],
// "max-nested-callbacks": [ WARN, 8 ],
// "max-params": [ WARN, 8 ],
// "new-cap": WARN,
// "new-parens": WARN,
// "no-array-constructor": WARN,
// "no-bitwise": OFF,
// "no-continue": OFF,
// "no-inline-comments": OFF,
// "no-lonely-if": WARN,
// "no-mixed-spaces-and-tabs": WARN,
// "no-multiple-empty-lines": WARN,
// "no-negated-condition": OFF,
// "no-nested-ternary": WARN,
// "no-new-object": WARN,
// "no-plusplus": OFF,
// "no-spaced-func": WARN,
// "no-ternary": OFF,
// "no-trailing-spaces": WARN,
// "no-underscore-dangle": WARN,
// "no-unneeded-ternary": WARN,
// "object-curly-spacing": [ WARN, "always" ],
// "one-var": OFF,
// "operator-assignment": [ WARN, "never" ],
// "operator-linebreak": [ WARN, "after" ],
// "padded-blocks": [ WARN, "never" ],
// "quote-props": [ WARN, "consistent-as-needed" ],
// // "quotes": [ WARN, "single" ],
// "require-jsdoc": [ WARN, {
// "require": {
// "FunctionDeclaration": true,
// "MethodDefinition": true,
// "ClassDeclaration": false
// }
// }],
// "semi-spacing": [ WARN, { "before": false, "after": true }],
// "semi": [ ERROR, "always" ],
// "sort-vars": OFF,
// "space-after-keywords": [ WARN, "always" ],
// "space-before-blocks": [ WARN, "always" ],
// "space-before-function-paren": [ WARN, "never" ],
// "space-before-keywords": [ WARN, "always" ],
// "space-in-parens": [ WARN, "never" ],
// "space-infix-ops": [ WARN, { "int32Hint": true } ],
// "space-return-throw-case": ERROR,
// "space-unary-ops": ERROR,
// "spaced-comment": [ WARN, "always" ],
// "wrap-regex": WARN
// }
};
10 changes: 5 additions & 5 deletions game/client_types/autoplay.js
Original file line number Diff line number Diff line change
@@ -8,16 +8,16 @@
* http://www.nodegame.org
*/

var ngc = require('nodegame-client');
const ngc = require('nodegame-client');

module.exports = function(treatmentName, settings, stager, setup, gameRoom) {

var channel = gameRoom.channel;
var node = gameRoom.node;
let channel = gameRoom.channel;
let node = gameRoom.node;

var game, stager;
var stager;

game = gameRoom.getClientType('player');
let game = gameRoom.getClientType('player');
game.nodename = 'autoplay';

stager = ngc.getStager(game.plot);
10 changes: 5 additions & 5 deletions game/client_types/bot.js
Original file line number Diff line number Diff line change
@@ -8,17 +8,17 @@
* http://www.nodegame.org
*/

var ngc = require('nodegame-client');
var J = ngc.JSUS;
const ngc = require('nodegame-client');
const J = ngc.JSUS;

module.exports = function(treatmentName, settings, stager, setup, gameRoom) {

var channel = gameRoom.channel;
var logic = gameRoom.node;
let channel = gameRoom.channel;
let logic = gameRoom.node;

stager.extendAllSteps(function(o) {
o.cb = function() {
var node, stepObj, id;
let node, stepObj, id;
stepObj = this.getCurrentStepObj();
id = stepObj.id;
node = this.node;
32 changes: 16 additions & 16 deletions game/client_types/logic.js
Original file line number Diff line number Diff line change
@@ -7,20 +7,20 @@
* ---
*/

var path = require('path');
var fs = require('fs-extra');
const path = require('path');
const fs = require('fs-extra');

var ngc = require('nodegame-client');
var GameStage = ngc.GameStage;
var J = ngc.JSUS;
const ngc = require('nodegame-client');
const GameStage = ngc.GameStage;
const J = ngc.JSUS;


module.exports = function(treatmentName, settings, stager, setup, gameRoom) {

var channel = gameRoom.channel;
var node = gameRoom.node;
let channel = gameRoom.channel;
let node = gameRoom.node;

var treatments;
let treatments;

// Experimental!
// Outgoing messages will be saved (use if reconnections are important).
@@ -45,8 +45,8 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {

// "STEPPING" is the last event emitted before the stage is updated.
node.on('STEPPING', function() {
var currentStage, db, file;
let currentStage, db, file;

currentStage = node.game.getCurrentGameStage();

// We do not save stage 0.0.0.
@@ -62,7 +62,7 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {
db = node.game.memory.stage[currentStage];

if (db && db.size()) {
try {
try {
// Saving each round results to FS.
file = gameRoom.dataDir + 'memory_' + currentStage;
db.save(file + '.csv');
@@ -84,7 +84,7 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {


// TODO: check if this needs updates.
// Use if reconnections are important.
// Use if reconnections are important.
// // Register player disconnection, and wait for him...
// node.on.pdisconnect(function(p) {
// console.log('Warning: one player disconnected! ', p.id);
@@ -103,7 +103,7 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {
// node.say('notEnoughPlayers', 'ALL');
//
// this.countdown = setTimeout(function() {
// var i;
// let i;
// console.log('Countdown fired. Player/s did not reconnect.');
// for (i in node.game.disconnected) {
// if (node.game.disconnected.hasOwnProperty(i)) {
@@ -127,7 +127,7 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {
//
// // Reconnections must be handled by the game developer.
// node.on.preconnect(function(p) {
// var code, curStage, state, i, len;
// let code, curStage, state, i, len;
//
// console.log('Oh...somebody reconnected!', p);
// code = channel.registry.getClient(p.id);
@@ -251,7 +251,7 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {
});

// Extends Stages and Steps where needed.

stager.extendStep('results', {
init: function() {
this.savedResults = {};
@@ -286,7 +286,7 @@ module.exports = function(treatmentName, settings, stager, setup, gameRoom) {
// info.partials = [ 10, -1, 7];
// }
});

// Dump all memory.
node.game.memory.save('memory_all.json');
}