diff --git a/src/main/js/plugins/minigames/SnowballFight.js b/src/main/js/plugins/minigames/SnowballFight.js deleted file mode 100644 index 8d1dfbd..0000000 --- a/src/main/js/plugins/minigames/SnowballFight.js +++ /dev/null @@ -1,210 +0,0 @@ -/************************************************************************* -## SnowballFight mini-game - -### Description - -This is a rough and ready prototype of a simple multi-player -shoot-em-up. To start a game with all players playing against one another... - - /js new Game_SnowballFight(60).start(); - -... this obviously works best if all of the players are in close -proximity within the same game world. Alternatively you can have team -matches... - - - /js var redTeam = ['','',...etc] - /js var blueTeam = ['',',...etc] - /js var greenTeam = ['',',...etc] - /js new Game_SnowballFight(60, {red: redTeam,blue: blueTeam,green: greenTeam}).start(); - -Or you can just have specific players play against each other... - - /js new Game_SnowballFight(60, ['player1','player2','player3']).start(); - -(where 'player1' etc are the names of actual players) - -You specify the teams in the game as an object where each property's -name is a team name and each property's value is the list of players -on that team. You specify the duration of the game (in seconds) You -kick off the game with the start() method. I need to work on a -better in-game mechanism for players to choose teams and start the -game but this will do for now. - -When the game starts, each player is put in survival mode and given -snowballs. The aim of the game is to hit players on opposing teams. If -you hit a player on your own team, you lose a point. - -At the end of the game the scores for each team are broadcast and each -player returns to their previous mode of play (creative or -survival). Create a small arena with a couple of small buildings for -cover to make the game more fun. - -***/ - -var bkGameMode = org.bukkit.GameMode, - bkItemStack = org.bukkit.inventory.ItemStack, - bkMaterial = org.bukkit.Material, - bkSnowball = org.bukkit.entity.Snowball; - -var _startGame = function( gameState ) { - var i, - teamName, - team, - player; - - // don't let game start if already in progress (wait for game to finish) - if ( gameState.inProgress ) { - return; - } - gameState.inProgress = true; - // reset timer - gameState.duration = gameState.originalDuration; - // put all players in survival mode and give them each 200 snowballs - // 64 snowballs for every 30 seconds should be more than enough - for ( i = 10; i < gameState.duration; i += 10 ) { - gameState.ammo.push( gameState.ammo[ 0 ] ); - } - - for ( teamName in gameState.teams ) { - gameState.teamScores[teamName] = 0; - team = gameState.teams[ teamName ]; - for ( i = 0; i < team.length; i++ ) { - player = server.getPlayer( team[i] ); - gameState.savedModes[ player.name ] = player.gameMode; - player.gameMode = bkGameMode.SURVIVAL; - player.inventory.addItem( gameState.ammo ); - } - } -}; -/* - end the game - */ -var _endGame = function( gameState ) { - var scores = [], - leaderBoard = [], - tn, - i, - teamName, - team, - player, - handlerList; - - leaderBoard = []; - for ( tn in gameState.teamScores){ - leaderBoard.push([tn,gameState.teamScores[tn]]); - } - leaderBoard.sort(function(a,b){ return b[1] - a[1];}); - - for ( i = 0; i < leaderBoard.length; i++ ) { - scores.push( 'Team ' + leaderBoard[i][0] + ' scored ' + leaderBoard[i][1] ); - } - - for ( teamName in gameState.teams ) { - team = gameState.teams[teamName]; - for ( i = 0; i < team.length; i++ ) { - // restore player's previous game mode and take back snowballs - player = server.getPlayer( team[i] ); - player.gameMode = gameState.savedModes[ player.name ]; - player.inventory.removeItem( gameState.ammo ); - player.sendMessage( 'GAME OVER.' ); - player.sendMessage( scores ); - } - } - gameState.listener.unregister(); - gameState.inProgress = false; -}; -/* - get the team the player belongs to - */ -var _getTeam = function( player, pteams ) { - var teamName, - team, - i; - for ( teamName in pteams ) { - team = pteams[ teamName ]; - for ( i = 0; i < team.length; i++ ) { - if ( team[i] == player.name ) { - return teamName; - } - } - } - return null; -}; -/* - construct a new game - */ -var createGame = function( duration, teams ) { - var players, - i, - _snowBalls = new bkItemStack( bkMaterial.SNOW_BALL, 64 ); - - var _gameState = { - teams: teams, - duration: duration, - originalDuration: duration, - inProgress: false, - teamScores: {}, - listener: null, - savedModes: {}, - ammo: [ _snowBalls ] - }; - if ( typeof duration == 'undefined' ) { - duration = 60; - } - if ( typeof teams == 'undefined' ) { - /* - wph 20130511 use all players - */ - teams = []; - players = server.onlinePlayers; - for ( i = 0; i < players.length; i++ ) { - teams.push( players[i].name ); - } - } - // - // allow for teams param to be either {red:['player1','player2'],blue:['player3']} or - // ['player1','player2','player3'] if all players are against each other (no teams) - // - if ( teams instanceof Array ) { - _gameState.teams = {}; - for ( i = 0;i < teams.length; i++ ) { - _gameState.teams[ teams[i] ] = [ teams[i] ]; - } - } - /* - this function is called every time a player is damaged by another entity/player - */ - var _onSnowballHit = function( event ) { - var snowball = event.damager; - if ( !snowball || !( snowball instanceof bkSnowball ) ) { - return; - } - var throwersTeam = _getTeam( snowball.shooter, _gameState.teams ); - var damageeTeam = _getTeam( event.entity, _gameState.teams); - if ( !throwersTeam || !damageeTeam ) { - return; // thrower/damagee wasn't in game - } - if ( throwersTeam != damageeTeam ) { - _gameState.teamScores[ throwersTeam ]++; - } else { - _gameState.teamScores[ throwersTeam ]--; - } - }; - - return { - start: function( ) { - _startGame( _gameState ); - _gameState.listener = events.entityDamageByEntity( _onSnowballHit ); - new java.lang.Thread( function( ) { - while ( _gameState.duration-- ) { - java.lang.Thread.sleep( 1000 ); // sleep 1,000 millisecs (1 second) - } - _endGame(_gameState); - } ).start( ); - } - }; -}; -exports.Game_SnowballFight = createGame; - -