- server.zip
- Local.testsettings
- packages
- Fleck.0.8.2.1
- Fleck.0.8.2.1.nupkg
- lib
- net40
- Fleck.dll
- HttpClient.0.6.0
- HttpClient.0.6.0.nupkg
- lib
- 40
- JsonValue.0.6.0
- JsonValue.0.6.0.nupkg
- lib
- 40
- Newtonsoft.Json.4.0.5
- repositories.config
- SpaceShooterServer.sln
- SpaceShooterServer.vsmdi
- SpaceShooterServer
- Test
- bin
- Debug
- Release
- Fleck.dll
- Microsoft.Json.dll
- Microsoft.Json.xml
- Microsoft.Server.Common.dll
- SpaceShooterServer.exe
- Test.dll
- Local.testsettings
- obj
- Debug
- TempPE
- Release
- TempPE
- packages.config
- Properties
- SpaceShooterServer.vsmdi
- Test.csproj
- Test.csproj.user
- TraceAndTestImpact.testsettings
- UnitTests.cs
- TraceAndTestImpact.testsettings
- client.zip
|
menu.toggle = function() {
if(menu.isOpen())
menu.close();
else
menu.open();
};
menu.isOpen = function() {
var m = document.getElementById('menuscreen');
return m.style.display === 'block';
};
menu.open = function() {
if(!menu.isOpen()) {
var m = document.getElementById('menuscreen');
var im = document.getElementById('inactive');
game.running = game.running && game.multiplayer;
m.style.display = 'block';
im.style.display = 'block';
menu.select('menu-main');
m.focus();
document.getElementById('music').volume = game.running ? 0.3 : 1;
}
};
menu.close = function() {
if(menu.isOpen()) {
var m = document.getElementById('menuscreen');
var im = document.getElementById('inactive');
game.running = true;
m.style.display = 'none';
im.style.display = 'none';
c.canvas.focus();
document.getElementById('music').volume = 0.3;
}
};
menu.select = function(id) {
var m = document.getElementById('menuscreen');
var items = m.getElementsByTagName('ul');
for(var i = items.length; i--; ) {
var item = items[i];
item.style.display = item.id === id ? 'block' : 'none';
}
};
menu.disableMultiplayer = function() {
var mpjoin = document.getElementById('menu-mpjoin');
var mphost = document.getElementById('menu-mphost');
mpjoin.className = 'menuitem disabled';
mphost.className = 'menuitem disabled';
mpjoin.onclick = null;
mphost.onclick = null;
};
menu.enableMultiplayer = function() {
var mpjoin = document.getElementById('menu-mpjoin');
var mphost = document.getElementById('menu-mphost');
mpjoin.className = 'menuitem';
mphost.className = 'menuitem';
mpjoin.onclick = function() {
network.requestList();
menu.select('menu-join');
};
mphost.onclick = function() {
menu.select('menu-host');
};
};
menu.switch = function(on, off) {
document.getElementById(on).onclick = function() {
document.getElementById(on).className = 'menuitem picked';
document.getElementById(off).className = 'menuitem';
};
document.getElementById(off).onclick = function() {
document.getElementById(off).className = 'menuitem picked';
document.getElementById(on).className = 'menuitem';
};
};
menu.init = function() {
document.getElementById('menu-sp').onclick = function() {
game.startSingle();
menu.toggle();
};
document.getElementById('menu-setname').onclick = function() {
menu.select('menu-user');
};
document.getElementById('menu-setscr').onclick = function() {
document.getElementById('menu-server-ip').value = settings.server;
if(settings.display === 'centered') {
document.getElementById('menu-scrcenter').className = 'menuitem picked';
c.canvas.className = 'centered';
} else {
document.getElementById('menu-scrstretch').className = 'menuitem picked';
c.canvas.className = 'stretched';
}
menu.select('menu-scr');
};
document.getElementById('menu-hostadvanced').onclick = function() {
menu.select('menu-host-adv');
};
document.getElementById('menu-hostadvprevious').onclick = function() {
menu.select('menu-host');
};
document.getElementById('menu-lookkeys').onclick = function() {
menu.select('menu-keys');
};
document.getElementById('menu-highscores').onclick = function() {
var el = document.getElementById('menu-scores-list');
score.scores.sort(function(a,b) { return b.points - a.points; });
var entries = [];
for(var i = 0; i < score.scores.length; i++) {
entries.push([
'<span class="player">',
score.scores[i].player,
'</span> (level <span class="level">',
score.scores[i].level,
'</span>) <span class="points">',
score.scores[i].points,
'</span> pts'
].join(''));
}
el.innerHTML = '<p>' + entries.join('</p><p>') + '</p>';
menu.select('menu-scores');
};
document.getElementById('menu-esc').onclick = function() { menu.toggle(); };
document.getElementById('menu-usersave').onclick = function() {
settings.playerName = document.getElementById('menu-player-name').value;
var primaryColor = hexToRgb(document.getElementById('menu-primary-color').value);
var secondaryColor = hexToRgb(document.getElementById('menu-secondary-color').value);
settings.playerColors = [primaryColor, secondaryColor];
if(game.multiplayer)
network.update();
settings.save();
menu.select('menu-main');
};
menu.switch('menu-scrcenter', 'menu-scrstretch');
menu.switch('menu-withsounds', 'menu-wosounds');
menu.switch('menu-friendly-on', 'menu-friendly-off');
menu.switch('menu-negative-on', 'menu-negative-off');
menu.switch('menu-upgrades-on', 'menu-upgrades-off');
document.getElementById('menu-hostmatch').onclick = function() {
var obj = {
name : document.getElementById('menu-game-name').value,
password : document.getElementById('menu-game-password').value,
friendly : (document.getElementById('menu-friendly-on').className === 'menuitem picked'),
maxplayers : parseInt(document.getElementById('menu-game-maxplayers').value),
maxbots : parseInt(document.getElementById('menu-game-maxbots').value),
negative : (document.getElementById('menu-negative-on').className === 'menuitem picked'),
upgrades : (document.getElementById('menu-upgrades-on').className === 'menuitem picked'),
width : c.canvas.width,
height : c.canvas.height,
};
network.host(obj);
menu.toggle();
};
document.getElementById('menu-scrsave').onclick = function() {
settings.display = (document.getElementById('menu-scrstretch').className === 'menuitem picked') ? 'stretched' : 'centered';
settings.playSounds = (document.getElementById('menu-wosounds').className === 'menuitem picked') ? false : true;
var srv = document.getElementById('menu-server-ip').value;
if(srv !== settings.server) {
settings.server = srv;
network.connect();
}
settings.save();
menu.select('menu-main');
};
document.getElementById('menu-hostprevious').onclick =
document.getElementById('menu-joinprevious').onclick =
document.getElementById('menu-userprevious').onclick =
document.getElementById('menu-keysprevious').onclick =
document.getElementById('menu-scrprevious').onclick =
document.getElementById('menu-scoresprevious').onclick = function() { menu.select('menu-main'); };
document.getElementById(settings.playSounds ? 'menu-withsounds' : 'menu-wosounds').className = 'menuitem picked';
document.getElementById('menu-player-name').value = settings.playerName;
document.getElementById('menu-primary-color').value = rgbToHex(settings.playerColors[0]);
document.getElementById('menu-secondary-color').value = rgbToHex(settings.playerColors[1]);
};
settings.init = function() {
var s = JSON.parse(localStorage.getItem('settings'));
if(s) {
settings.playerName = s.playerName || 'Player';
settings.playerColors = s.playerColors || [primaryColors[0], secondaryColors[0]];
settings.droneColor = s.droneColor;
settings.display = s.display;
settings.playSounds = !!s.playSounds;
settings.server = s.server || CONNECTION;
}
if(settings.playSounds)
document.getElementById('music').play();
};
settings.save = function() {
c.canvas.className = settings.display;
localStorage.setItem('settings', JSON.stringify({
playerName : settings.playerName,
playerColors : settings.playerColors,
droneColor : settings.droneColor,
display : settings.display,
playSounds : settings.playSounds,
server : settings.server,
}));
if(myship) {
myship.primaryColor = settings.playerColors[0];
myship.secondaryColor = settings.playerColors[1];
}
};
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Florian lives in Munich, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics.
During his studies he worked as an IT consultant for various companies. After graduating with a PhD in theoretical particle Physics he is working as a senior technical consultant in the field of home automation and IoT.
Florian has been giving lectures in C#, HTML5 with CSS3 and JavaScript, software design, and other topics. He is regularly giving talks at user groups, conferences, and companies. He is actively contributing to open-source projects. Florian is the maintainer of AngleSharp, a completely managed browser engine.