From c74608768933a3d3842173275b5bdf9829be4e48 Mon Sep 17 00:00:00 2001 From: Ruud Verbeek Date: Mon, 28 Nov 2016 18:31:40 +0100 Subject: [PATCH 01/12] base tagpro.group.settings object with defaults, presets and preset methods --- group/group_presets.js | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 group/group_presets.js diff --git a/group/group_presets.js b/group/group_presets.js new file mode 100644 index 0000000..30de6ce --- /dev/null +++ b/group/group_presets.js @@ -0,0 +1,60 @@ +{ + tagpro.group.settings = { + defaults: { + redTeamName: "Red", + blueTeamName: "Blue", + redTeamScore: "0", + blueTeamScore: "0", + map: "", + time: "12", + caps: "3", + accel: "1", + topspeed: "1", + bounce: "1", + playerRespawnTime: "3000", + speedPadRespawnTime: "10000", + dynamiteRespawnTime: "30000", + buffRespawnTime: "60000", + buffDelay: false, + potatoTime: "0" + }, + set: function(key, value) { + tagpro.group.socket.emit('setting', {name: key, value: value}); + }, + apply: function(preset) { + for(let k in tagpro.group.settings.defaults) + set(k, preset.hasOwnProperty(k) ? + preset[k] : tagpro.group.settings.defaults[k]); + }, + presets: [ + { + name: 'Default' + }, + { + name: 'Pick-Up Game', + caps: 0, + time: 10, + buffDelay: true + }, + { + name: 'Hockey', + map: 'Hockey', + caps: 0, + time: 10, + buffDelay: true + }, + { + name: 'Open Field Masters', + map: 'OFM', + time: 5 + }, + { + name: 'Duel', + map: 'Duel', + time: '5', + caps: '3', + playerRespawnTime: '1000' + } + ] + }; +} \ No newline at end of file From 57e55930217387e37d4aaaa81749b3558e59dca5 Mon Sep 17 00:00:00 2001 From: Ruud Verbeek Date: Mon, 28 Nov 2016 19:00:29 +0100 Subject: [PATCH 02/12] preset selector --- group/group_presets.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/group/group_presets.js b/group/group_presets.js index 30de6ce..17df969 100644 --- a/group/group_presets.js +++ b/group/group_presets.js @@ -22,8 +22,10 @@ tagpro.group.socket.emit('setting', {name: key, value: value}); }, apply: function(preset) { + console.log(preset); for(let k in tagpro.group.settings.defaults) - set(k, preset.hasOwnProperty(k) ? + tagpro.group.settings.set( + k, preset.hasOwnProperty(k) ? preset[k] : tagpro.group.settings.defaults[k]); }, presets: [ @@ -57,4 +59,16 @@ } ] }; + + + // DOM manipulation, you'll probably want to do this in a more convenient way if you implement this :) + let presetSelector = $(''); @@ -67,7 +87,24 @@ for(let i=0; i').prop('value', i).text('Preset: ' + preset.name)); + + let selected = true; + for(let k in tagpro.group.settings.defaults) { + if(tagpro.group.settings.get(k) != (preset.hasOwnProperty(k) ? preset[k] : tagpro.group.settings.defaults[k])) { + selected = false; + break; + } + } + if(selected) { + presetSelected = true; + presetSelector.val(i); + } } + if(!presetSelected) { + let option = $('