Skip to content

Commit

Permalink
Merge branch 'development' into feature-leader-board-game-history-don…
Browse files Browse the repository at this point in the history
…ation/137138345
  • Loading branch information
andela-fopara committed Feb 28, 2017
2 parents de0b91b + ad05dbc commit cfbd482
Show file tree
Hide file tree
Showing 31 changed files with 1,054 additions and 577 deletions.
1 change: 1 addition & 0 deletions .coveralls.yml
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
service_name: travis-ci
repo_token: HdilFXSOLhCFVMjD8SRRhsTj7oRpciOuM
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ bower_components
c4h_keys.txt
.env
.idea/
.coverdata
coverage
Procfile
.coverrun
.vscode
gruntfile.js
debug
public/lib
.vscode
npm-debug.log
Expand Down
83 changes: 83 additions & 0 deletions .karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
// Karma configuration
// Generated on Fri Jan 27 2017 10:42:09 GMT+0100 (WAT)

module.exports = function (config) {
config.set({

// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',


// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['mocha'],


// list of files / patterns to load in the browser
files: [
'server.js',
'./test/user/model.js',
'./test/game/game.js',
'./app/models/user.js'
],

coverageReporter: {
type: 'lcov',
dir: 'coverage/'
},

// list of files to exclude
exclude: [],


// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'./app/models/user.js': ['coverage']
},


// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'coverage', 'coveralls'],


// web server port
port: 9876,


// enable / disable colors in the output (reporters and logs)
colors: true,


// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,


// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,


// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: process.env.TRAVIS ? ['Chrome_travis_ci'] : ['Chrome'],

// Custom launchers for travis.
customLaunchers: {
Chrome_travis_ci: {
base: 'Chrome',
flags: ['--no-sandbox']
}
},

// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true,

// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity
})
}
72 changes: 69 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,75 @@
sudo: required
dist: trusty
language: node_js
node_js:
- "6"
- "6.1"
- "5.11"
- "4.5"
- "4.4"
env:
- DB_URL=mongodb://localhost:27017 /cfh
# global:
# - secure: "Nquwxpu+qT9YS1ZE/6SewrL6/v2V/9EXvSavGsX6kCPmbBCJnsi0eVtPZultU+kNsrfTzMzzgCoqfhDDZRgQOlGct1Hd3c850Pcq+5NsRtsd8mqS2gYc+2iXh
# Ucnuossre/bYBWVVZEmOjiObQpEHaHXST/UO+D8gyezsz4GLo6YTzRqR/1jIZ9crJpHRmApk1JJ0mujKgzXNG1RuJYhVYwYzA44Mrshehop3VAIxO0xY/mehPuF7EDMsuEKl
# 29wS/ck1MW1SXKuirgIKXWwUCuaA1lhispjgJU6KtRw5OC+ETAMMoyz0ryTep6GLpRYmZgcEd/LvXw4F5agacyC5o9bjaI1U5X3a9+4DXN+t1GDj3o9DtlE18aBtY5ERkZRv
# 18eSoGhira4a4akwGrnOrJIkf8U85fETyRLoQLRbzUXI1yLRlotQk7kwltcMYsa/tYI7ro2b8I9rTX6AK0QhSRH++syWDaqIXJLibL90X3pL83bw20D5VSaaysAnVxfDrync
# r6Oi7vGen44OhtWfaN91yugqLH0LZWuW++cZcFSru+WtHkb1q/chLDOlyruIgH62oHVWlgjn8OYTKfl7ugfqY7R336puxe/D+5XpTSCOlFpmgFCgBOhYFaKXaKzrakEUtLwT
# ftpgRBXQzz4vN2dkWEcPClQL2aU5NTY8CM="
# - secure: "b/8Whcs0xqcMnYQuARw9WdzrjVhiZkuo7H/wrHlYn1I4FuteYJy+gKX2cbaeS5G/wpaCAhoCz5CqUMLPgleFMSiN2KxMpdgp8vewcrRF199tEEtSY+RF9j8ot
# h4tBeHOe1dBrzxWSKmY2Z5Ic5bBrqo4UKSPbzP6RaPC51H5yCmOPA5b8I+LfPjeh8hBDYeXOG2kqwjWJR5TB0qbyBwIU1ptx8FxFej7EgYSmHKvu6amgfOWO7ZDL9gct2BzQ
# zR2uGTK4F5K+axcmm6du495RQkVnNbDZh78HkFXB4vIwbNzmRIs2HvoE/+8t/BeE/lBoR0X8UTmH23yrUHNWgoh+SxHPNPG1Flmk8Y/e0AZbLtsBXjUFXApt584+ptnf0k38
# ThKDnSbP+dKLI9Dnmqzm/5Vx7jtWJS1hfvs5F6sjc5I5R1gyCKcCYyU0ICCCyBB8dDFz4tyyFVW5fvE6KniF+pD2NZuEOrty38+EmE9TkhTtUdcdHW2udtvSvpYDk5ymVW9G
# 80F/DrRjDfauw/ZG78s9d5LfRn/KwNIM+4oNowu02GYabKSGJiPIWTChurMWcrwleWSOGqaVB1lrLoXJw1aN4cjAdfl9x/PIH33f1W/77xRYpsqz6/N4g6BxU055sEWNWnGA
# WuABYuHdnfnyFFVi8a0uvgoPfvyPva44U8="
# - secure: "lj9TEajslbTYoHOVNJ9+b3ourAYHi+VJkRvN2qeH61gzOcriwgRKyixIDeL3mNk2KkNyDWmJ19WmhyufydUDOL9loA/zRgSBv1uKbzAv/pe1wxGjF/eLDkuQn
# JdArPoN5TaD2Uxg3AuSphGmdT7atGJ+jXa+lj5WLDL9nK21GUbhpS/HwlzrvXCdUu60qQMIgzQcC95Vv52ZjjBVNioFVfcw6jkvbtTEFrsexeWkMkhNCJmWOv1+/YEPotsFY
# SYYxp4LF8KhRjgnZI8BRTCnJoBzsZL+DPpKpMlaq4pmdP1l2JtxatC2Ew1iT2KrI+f8IN9j0IyceaZ90HfBLbzCHyD1hnSB4kUq26AIt7V0QgSryLQueJujI9LizQoM0HEid
# MVZkIwvPtFZPCR680yu+Rg96LDiIPS/0dbzeILmlzKnFgw3Tpc6q/NUG/a8a4/MAA+xbZVtLdUzszB8gLMBCBmma1WbDjqcyat1a7GwGVBwXKezRNqTbC3B8fdhsf61yIP4m
# gelUuFkDuOQIkf44xdxsM4Oe6ePua/h/IQ9u3/L7noe7de3rIsWVfWyFP3kKTT1GCinW6QuOAVGMFXf6rPiMS1mvliXFVhwqEv1UwMUVUgm0PAyb0w0PuRE/uh1d7+/4fVzp
# YUIj3oJjvJgjhvG5MgrIb40KZJNW4M0cp0="
# - secure: "r+hFiyVTmbJNtMA0lDArvOVlHyZ7qJ4w8R+xU6HoXolFu7TQA2wOj3lyZ5RLmf62+JvRBBXNRQ46sF7jCg+IWPx/Oxtf+skLtiYAMFmXjyD2qY4ztiqp2+VKW
# Ljx5hcp0dKee7LlljN2g1akJp4Y5Ikl8slFAbZerhkdSPiA4SOah7GCH32HL1p42UyK8gkMtJ01pxqKOEaMgURCEqOP56GVuhc64izHpuIdVCQn81xISIARXiPjl3hig1kTf
# O1+yEZIn+8vW3QHK7bRAKX3Y0wpTuiArMW+kMOekOzSWmPaL9wwW6C98/fVmqnNsOcUL24Xk1vlP1QWjQqiACqz7Z/xVcNgZIkzQQ9gZWq5pbbXV+ZiPxDWD0I3E/YLpjFXr
# vRDXqbUTiRIbkxGFLjz1whUtU/UepQMUASo2r4mGM+EgtZk+Gq/+Aay5yo5j95O90bYmHF+C/OMNt2lV92yR1MGktPPmsEhnKcHP9V6HBacogWTwDHz9NsjH1ZJx1vMh/4pA
# J1Y0JXgca1q+Vj7SHi5zk+q2ENXlVfQJYn0+X5vJjZL1JN8ojoEBuOKNmUd9a0+KXxPlCF0AiokSGKyrQelR7KKd/G49VPNrjBDkNLHVdZ45rI7IRS/gahHTXh90b6LCPoEU
# qbkk5J0s3rWI7Bp1Gdkz625UOXctpC0RsM="
# - secure: "nFO5ZXoWuUiHGlFNMV1cE581B436otj1MQjKlr1s/FTsZXmtXTitGNkKfVe8ehvslh6JylRz2UPvSwatVe6Juber7NqNyNs1BJSLiGeaV0yHUOrDjNP/PL7va
# jWomnQy4TH814RCFjsr1YjmVsCxOPnwIh5Y6HzbUpRj4UMT602/xHSiLwpn93CByr9a5VlG13bOWxNbCa3EcBkolhYSjlzm0mw6YUPr/VKrHlxF+87R4lPWVk+5bznMlj/Gj
# 22mAOMeqNj0j6V0YWkSufD6LiX719JsTC+YdkCDKOWIXlCMpUnNjqRNosaNDKweimkOL02g43IWeLpw9ERAUMkqlQb21OA9dHSDZSc1jPuS9Eh4/m3wUdI8+wzHSolr59nIB
# ITu/0jhYTr6YfJppTxQHre/lICwRf2VtdwJMF/1lyzMeBu6qM/GS9sKcb4MeTKMQ0hWUS0Tv9qoGScyzY38GAk1wULB5fV3erQHVWdTvuXvpGCGVYCOyZ8T99oofNw1yvFi7
# NqILgkJ0M8T0rJ/FN+JlzN1c82DBywOgpD4tKUYTZa7Lrn238iie9qrEoFQ8diti7DuX3K/MxPtfIUIvTpRZPXl6adghtBj/LSAdVbomJnFwj/rF5HvlMz8oDAn58pUlFuB5
# B24XcBYYYqJSCumG5y6Pj33yp84BbfUjU0="
# - secure: "vRWcV+yh/3R+/rFqbsRdBx+OJzQuKU0x4uVofAm5F1wp83LGRegCcCEi/107QeSPoF78FD9xRenvLYq0Moy/L5b1jgDp/j/AqZlKRP9ASMYXF9xz1foKMtS32
# 5FQOtG8gU7G8MvoHuQ59X5Z4z/xEN+sMXaTVkk6Z/qz5zofCouMqDCz2gWe40MHCwR5PNXef1XQzRItcHf4QC91H7X5U66yuAj9hgQriVT22AzXHU5L62lXeAaQsV/dMthRv
# 5WwJGztb3L/qCqQXJ1H8afPpTeOdFp0xdjBAGFayIqFWReCnrBgZeKukOz04R+l2uleD94jGLS2nCnF/YYy7kCT7rnbTOZQSFRP4QC2zoPjeXhK4pJIT2rI7NBFRwXdoUxN0
# xTzSUbM8JHv2JQNnP4gT46C8rygPsxSj1Dy4BJ07p97SdqxgzJ09uJln8as//7YnT+2gr4/EeOYVUqtJW9fas7x0cN5nxJJVxQw1UKF2MS1q1V/72hrYSDk1Ezh+XlIAcVdV
# WJ/nAiALeQPEk7d6W8EggCVZYYec4k2UAPHYE5S6LFb8brh1A5Uv2CTscwh43inN2eusUuincv7BX+uVhxoD5DEWCI4/vIzuOfqy4JS/ufQ6uISYLWlFW4NmtV3c+V59s7IY
# xfTRiVzufv1XKodrC8aKI4hCerpxpbsD8k="
# - secure: "YqRg6QJX5SNPLS325ojzspwt2oioYp8cHT46JzjXvnBbrCSMUww8OFUZGXh+sVkrjDXR8CrgmyvvAP1srl2UeLsQhmxZHWYQrM3qytEneHr/ZGQ4XZrd6c+Hr
# Jvg7Jrf0HzTcaoSY/Pbd6yfbv3FsyC44EhiYUDP5cSHYOlBE+G0F2UBR0hf0CTDehQuP9ASmTH6nPGdmFNeaZ857uheBImtWAw0zh9cYvAez2aZyRQ5n2R3nPFl4xZYrwvxT
# Y/GpvY6XdjYHrP71rP8BOVTlJa+39kyGhCcTz0zs332ZJhHYAxr45klVctikak968K9su/hh66oBn/ERtDBzQtFenZVK2c7WfOcLTPrla8pKx+mP94ZlyI7dosCYFTAvA006
# UNpF3FBStt9pPogPv6RI/2SnnieLi3dF5GDcv0loM5TUoQ+zMcnl3qKU8606Lqtdyj4h65UdZcyHILE+wR6BwFcuvc4qyHDD8Z5NOlhh6KPAL6/wmVWHMb5+BneGH1gNM3CI
# Iq+HafNCXdTp+Pb7xLcGHBtAHIjRs/BtUJQBG+Nue0DHiqsutU2DOcuNXeuuHdnlEkia4Z4l6VPNgsgZSKSklf4hdpDiFPaVLorUxk3/zUGRd6BTxw3Wu9tYOFcwWNZVOjXQ
# J2ftcdloLeiMBnGW+tKWbkZPiDJs15KBv4="
# - secure: "kLMe5MAGSePtQEVhAsJ0/L+a8aLYWn2TaG0G2Ap/iyounn5nSPaTe3a+NzIGBvB/8ncsfR5Xde/9u1DBNdBkk2mkEPRVE6tDP6gG0oDYhJgsDWcNPhwGzcSyZ
# ji7C17v0ntNcWQTc8y3xlZq85SEm+u/7twQx3sOXbZTWUWlJ8D2m6AoKIVfBI15O0f22QjcqBDbE5udWAh3bpJywdfgiMMpW+2ZZqk0Cb4n+oJp4UVIPaUyg6qcUVJQiTVzY
# G7E5pRAl22zkoqud0NJ8bO1RWeMNiJ2tRHEXvL0pQ4ps74WZ033VukIFm2E4+9yGSMlc2+hhVo7ib/nhRUgLum/EBgHvkrDOFpbj53dfyutuFNWyVfgCGBirG1ve/QPPgfKk
# E0EAAFiPNHKK63JvH+YiDlWNY/YbHGrigT/ASL5WGNAMl4Ogq4hZT3f1MHhZyTo6jDbyqGTIlw8Jmqz/YbculHQfWcUb0cgrrdtEBU5bcnpI99kowOvnm9ZNx+ZWpbqfvnAf
# p9a/VIOkI02pAhM+g3GjehzHz98AQtVAA9G2l4rQAm6Ls0Wa8xd8pl8qJInd00WXMBeyr3eHp3+/ex2A3ezV3yl7qJdY/w+Ybhj+o7z6Lz/6myPZc4YQjr5+FyvERTJaD/LC
# EtxcRJ4Rv8KnceLtMwJMX0FMLZJSk0pDco="
# - secure: "fa/i5q8f6rJxIYreAdAgmqnW/VF5t1914Y3zspimq0ZAmdX+g+nftPJed8MTNgg2o0LfxUmYmxwEQQHtHBSGMXUvRSTv66Mo0UoWaKzjFvQ8/hMc9hn3XZKQk
# LBW/F0Nqr+lkU4RvRYWelhgySuGO5AP1qkNPYKs1NUSegglPXJeSsJcEyvR+X6mSwfl2MCziJsr/XniJ4tdHPNn6zNFHZBMv+2lLwahe6C5diasmOUdp6oDqOe+iCs/Ewvqm
# AEJj3yr9BLob8UUz5OqE0UQyg1BvL6tzsQej3Hr2uZGReAxXWkP9uvExGS3kx4/EAtbfUJWA7Qk7ZV6uvrTrqqkEo4oBgO2cwMOVzPydiv2DtimTSy/430zw8c1BHjeGXUKc
# kkj7Vt73TcyeP3uswTtMl2IvAghcJrF1e7mZIdQQWNkDiAKP59ljW6XZqjvTLN3eEGtiWbWl4zj2ov0Bkjcw+N3vsL1v+u3kt/tdG/HApIJX/AI5PRVaLueQvzdG0STWem46
# rw1zqIm/JF+7apcXNXgXC7ZXbtqo/i08AYAdvO6NSAsnvUHywUY+pqELQNJyOJAaq8a+aC4ZbHa8T/y5+xZVopVtUwFfj1DJklpP0hsNTvL7BmP3AGx61bAz7c0S3oJuZCFe
# hcOHDm7nxxWxB0bf5Efm/uZaHvzTV6h/Sc="
# - secure: "oBUUFmccgsCi6RpH6wi/cnYVhqC0eUaoNrpYhc53mF2Iazgm/GWsRw9v1v1idLeCyv4vKTJdrBcD4dL2fgC0vjEyqzD7emRnu0kLwTum6/zCzrAVe2OfUZFep
# 0nzwIdFNXH4HBJvizxghHk18Jv4lqd/0EMHq/uvfhrG0LeNx0or7LpB1GzxNMC9Ekzp46QwMbAqFs/tpfdyy0IbTFRZ4TbwosAR+bciGuX5RNMJsb8r0i8Xpcd7bbIyCHQO+
# rSfJBirCVWEhbzapjSFxzW4RoKSCMj9TjkrLHnrCVkGBqcCSNqMNjqdtqVZR1L0mtKHOV4PBZRduosgsrcUaLEyxeJkbDCaWJ2DzcpdlJHuSX8wRLtrdkkL8D95EjQtf2UuU
# bQ5a1LA4KhPmKTQR2DBzzAS1B6//5WJyqN1E0PCdfIberZT7INKR+bF0Tu/IjDjvEVl99l5kKgfV/hvlq7tgJrOhHqUKqoTYgNdSg4KuEwPVJMwIrmF3Br5z4kVP1UBkJBzL
# QNNoXiYOu6OrP3z77iyrwl+YBXm65L/55y7sL5fmzcbCOZ72hbi0Bkih4DlTihfdFKNOWzHO4L4ZK6OuPJhHUl1ZxmiHBC85qv4uNRXmoPoROpXU/rzIcvAjEFoomWz5arC5
# UXZvRI91c6Q8fRCItsApdE0RTnQFq08gbI="
services:
- mongodb
before_script:
- npm install grunt-cli -g
- npm install
after_script: cat ./coverage/**/lcov.info | ./node_modules/.bin/coveralls
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Coverage Status](https://coveralls.io/repos/github/andela/project-jiayou-cfh/badge.svg?branch=master)](https://coveralls.io/github/andela/project-jiayou-cfh?branch=master)
[![Coverage Status](https://coveralls.io/repos/github/andela/project-jiayou-cfh/badge.svg?branch=setup%2Fintegrate-coveralls-code-coverage-service-137138317)](https://coveralls.io/github/andela/project-jiayou-cfh?branch=setup%2Fintegrate-coveralls-code-coverage-service-137138317)
![](https://travis-ci.org/andela/project-jiayou-cfh.svg?branch=feature%2Fcreate-travisCI-badge-137138309)


Expand Down
7 changes: 5 additions & 2 deletions app/controllers/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ exports.signin = function (req, res) {
if (!req.user) {
res.redirect('/#!/signin?error=invalid');
} else {
console.log(req);
res.redirect('/#!/app');
}
};
Expand All @@ -40,8 +41,10 @@ exports.signup = function (req, res) {
* Logout
*/
exports.signout = function (req, res) {
req.logout();
res.redirect('/');
req.logOut();
req.session.destroy(function (err) {
res.redirect('/');
});
};

/**
Expand Down
4 changes: 3 additions & 1 deletion app/views/includes/foot.jade
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ script(type='text/javascript', src='/lib/underscore/underscore-min.js')
//Bootstrap
script(type='text/javascript', src='/lib/bootstrap/dist/js/bootstrap.js')


//AngularJS
script(type='text/javascript', src='https://code.angularjs.org/1.5.6/angular.js')
script(type='text/javascript', src='https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js')
Expand All @@ -22,7 +23,8 @@ script(type='text/javascript', src='https://code.angularjs.org/1.1.5/angular-coo
script(type='text/javascript', src='https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.6.2/angular-sanitize.js')


//MAterialize

//Materialize
script(type='text/javascript', src='https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js')
script(type='text/javascript', src='https://cdn.gitcdn.link/cdn/angular/bower-material/v1.1.3/angular-material.js')

Expand Down
1 change: 1 addition & 0 deletions app/views/includes/head.jade
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ head
meta(property='fb:admins', content='APP_ADMIN')

link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.css')

link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic')
link(rel='stylesheet', href='https://cdn.gitcdn.link/cdn/angular/bower-material/v1.1.3/angular-material.css')
link(rel='stylesheet', href='https://material.angularjs.org/1.1.3/docs.css')
Expand Down
5 changes: 4 additions & 1 deletion config/passport.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,9 @@ module.exports = function (passport) {
passport.use(new FacebookStrategy({
clientID: process.env.FB_CLIENT_ID,
clientSecret: process.env.FB_CLIENT_SECRET,
callbackURL: process.env.FB_CALLBACK_URL
callbackURL: process.env.FB_CALLBACK_URL,
profileFields: ['id', 'email', 'gender', 'link', 'locale', 'name', 'timezone', 'updated_time', 'verified'],
enableProof: true
},
function (accessToken, refreshToken, profile, done) {
User.findOne({
Expand All @@ -113,6 +115,7 @@ module.exports = function (passport) {
user.save(function (err) {
if (err) console.log(err);
user.facebook = null;
console.log(user);
return done(err, user);
});
} else {
Expand Down
1 change: 0 additions & 1 deletion config/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ module.exports = function(app, passport, auth) {
var index = require('../app/controllers/index');
var games = require('../app/controllers/games');

var signup = require('../app/controllers/signup');
var invite = require('../app/controllers/invite');
// Route for sign-in
app.post('/api/auth/login', signin.userAuth);
Expand Down
28 changes: 24 additions & 4 deletions config/socket/game.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ function Game(gameID, io) {
this.timeLimits = {
stateChoosing: 21,
stateJudging: 16,
// time limit for czar to draw cards
stateDrawCards: 11,
stateResults: 6
};
// setTimeout ID that triggers the czar judging state
Expand All @@ -48,6 +50,7 @@ function Game(gameID, io) {
// Gets cleared if czar finishes judging before time limit.
this.judgingTimeout = 0;
this.resultsTimeout = 0;
this.drawCardsTimeout = 0;
this.guestNames = guestNames.slice();
}

Expand Down Expand Up @@ -135,14 +138,24 @@ Game.prototype.startGame = function() {
console.log(this.gameID, this.state);
this.shuffleCards(this.questions);
this.shuffleCards(this.answers);
// my code
// this.stateDrawCards(this);
this.stateChoosing(this);
};

Game.prototype.sendUpdate = function() {
Game.prototype.sendUpdate = function () {
this.io.sockets.in(this.gameID).emit('gameUpdate', this.payload());
};

Game.prototype.stateChoosing = function(self) {
Game.prototype.stateDrawCards = function (self) {
self.state = 'waiting for czar to draw cards';
self.sendUpdate();
self.drawCardsTimeout = setTimeout(function () {
self.stateChoosing(self);
}, self.timeLimits.stateDrawCards * 1000);
};

Game.prototype.stateChoosing = function (self) {
self.state = "waiting for players to pick";
// console.log(self.gameID,self.state);
self.table = [];
Expand Down Expand Up @@ -178,9 +191,10 @@ Game.prototype.selectFirst = function() {
this.players[winnerIndex].points++;
this.winnerAutopicked = true;
this.stateResults(this);
this.sendNotification(this.players[winnerIndex].username+' has won the round!');
} else {
// console.log(this.gameID,'no cards were picked!');
this.stateChoosing(this);
this.stateDrawCards(this);
}
};

Expand Down Expand Up @@ -215,7 +229,7 @@ Game.prototype.stateResults = function(self) {
if (winner !== -1) {
self.stateEndGame(winner);
} else {
self.stateChoosing(self);
self.stateDrawCards(self);
}
}, self.timeLimits.stateResults * 1000);
};
Expand Down Expand Up @@ -421,6 +435,12 @@ Game.prototype.killGame = function() {
clearTimeout(this.resultsTimeout);
clearTimeout(this.choosingTimeout);
clearTimeout(this.judgingTimeout);
clearTimeout(this.drawCardsTimeout);
};

Game.prototype.drawCard = function () {
clearTimeout(this.drawCardsTimeout);
this.stateChoosing(this);
};

module.exports = Game;
9 changes: 9 additions & 0 deletions config/socket/socket.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ module.exports = function (io) {

io.sockets.on('connection', function (socket) {
console.log(socket.id + ' Connected');

socket.emit('id', {
id: socket.id
});
Expand Down Expand Up @@ -83,6 +84,12 @@ module.exports = function (io) {
exitGame(socket);
// return { gameDBId: socket.gameDBId, newGameId: socket.gameID, playerLeft: numberOfPlayersLeft };
});

socket.on('drawCard', function () {
if (allGames[socket.gameID]) {
allGames[socket.gameID].drawCard();
}
});
});

var joinGame = function (socket, data) {
Expand All @@ -106,6 +113,7 @@ module.exports = function (io) {
player.premium = user.premium || 0;
player.avatar = user.avatar || avatars[Math.floor(Math.random() * 4) + 12];
}

getGame(player, socket, data.room, data.gameDBId, data.createPrivate);
});
} else {
Expand Down Expand Up @@ -193,6 +201,7 @@ module.exports = function (io) {
}
};


var createGameWithFriends = function (player, socket, gameDBId) {
var isUniqueRoom = false;
var uniqueRoom = '';
Expand Down
Loading

0 comments on commit cfbd482

Please sign in to comment.