MegaMaze

Discussion in 'Plugin Requests' started by willowen100, Jan 19, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    willowen100

    Plugin category: Fun & Games
    Suggested name: MegaMaze

    Plugin dependencies: WorldEdit, Vault

    Soft dependencies: Multiverse Portals/MulitWorld (or other teleportation plugins if Mazes want to be cross-world capable)

    When I would like it completed by: March/April 2015

    Aim of the Game
    The goal of the game is to escape the maze as a team. Each of the four members start in their own miniature maze where they must take on monsters and try to collect as many items from chests and monster drops without getting killed. Once each member reaches the end of their maze they reunite as a team in a safe-room that has a few more chests filled with items, a crafting bench, a furnace and other useful items. From this safe-room they must take on an even bigger maze as a team getting past redstone contraptions to move through the maze and tougher mobs. Now depending on what items each player managed to collect in their individual mazes will determine what weapons, armour and other useful items they'll have available in the bigger maze. If they reach the end in the final safe-room they will rewarded with in-game money using Vault to handle your chosen economy plugin. If anyone dies or leaves along the way the remaining players will only be able to get as far as the team safe-room.

    Setting Up the game
    Each player will be represented by colour throughout the whole game, red, green, blue and yellow. This will include text chat colour and messages that appear to the other players e.g. “Player 1 has died” and command messages when setting up the game e.g. “Section player 3 has been set”.

    Defining Sections of the Maze
    There will be 7 main sections to the maze as follows:-
    1. Player 1 mini-maze
    2. Player 2 mini-maze
    3. Player 3 mini-maze
    4. Player 4 mini-maze
    5. Team maze
    6. Team safe-room
    7. End/completion safe-room
    These sections will be stored as regions with names as listed above and X, Y, Z coordinates in a Sections.yml file. This is where WorldEdit comes in as it will make it possible to select the regions with the wand tool. If it makes it easier to not use WorldEdit altogether the opposite corner points of the region could be defined by the players position when using a command. Additionally each of these sections will be protected from mob damage and player damage so that the maze and chests can't be damaged. If that's not possible within the plugin alone WorldGuard can be added to the plugin dependency if need be.

    Player Spawn Points
    When a player joins the game they will be spawned to a miniature maze. So that leaderboard times can be calculated and to make sure everyone starts together, they will spawned to one of the spawn points set in the Playerspawns.yml file. Similar to the sections.yml file these will be coordinate based and which have these spawn points names:-
    • Player Spawn 1
    • Player Spawn 2
    • Player Spawn 3
    • Player Spawn 4
    These spawn points can be set whilst standing on the spot and using a command.

    Mob Spawning
    Within those main sections I want to be able to set smaller regions where mobs will spawn. When a player crosses the boundary of that region this is when the mob will spawn, that could be ahead of the player(s) or from behind depending on the layout of the maze and where the mob spawn points are set. Instead of using WorldEdit here these mob spawn points could be easily set with a command in relation to the block the player setting up the game is standing on. These mob spawn points will be stored in the Mobspawns.yml file.

    Automatic Chest Refills After Each Game

    As mentioned in the aim of the game there will be items scattered all over the individual player maze chests which they must collect if they want to build items in the team safe-room. As there will a furnace in the team safe-room it would make sense to have the fuel items and ingots, ores etc. to be spread across the players mini-mazes so each player is dependent on one another. Forcing the player to collect the raw items will get them to actually make what they think is essential for them and their team, rather than just giving them pre-made weapons and armour etc. which they can just equip and job done, which is boring.

    Leaderboard
    Like a majority of games out there lots of them use sign leaderboards to display their top players. It would be a real bonus if there was a leaderboard that shows the teams with the fastest times. Times could be calculated from the countdown and the beginning of the game right up to the end/completion safe-room. Other information that could be included on the signs could be mob kills, kits to players made by mobs, individual fastest player from the team (the fastest player from the team who made it out the quickest in their solo miniature maze). This signboard could be defined using WorldEdit by selecting a wall with signs on and then setup using a command.

    Starting the Game
    To keep it simple I think signs and commands should be used, and I will be getting into detail about commands, messages and permissions below. Lots of games have clickable signs that display the plugin name on the top line, a line to say game in progress and another line to say how many players are currently in the game. Once the player has clicked the sign or entered the command to join all players will be teleported to a spawn point in their miniature maze and won't be able to move till 4 people have joined and a 10 second countdown timer shown in the text chat box has finished. Then the game begins. Once a game has started no other teams may join. However, I would like to allow this plugin to run multiple mazes simultaneously which can be selected using a command. This makes sure that when setting everything up the commands work on the correctly selected maze.

    Die/Leaving the Game
    If anyone is unfortunate to die or get disconnected from the game it will be impossible for the team to continue as this is a 4 player game. The disconnected/dead player will be spawned back to where they started their game initially, whether that was from a sign or the location where they typed the command. With the remaining players alive, I want to create a message to appear when they enter the team safe-room section saying that “A player has left the game and this is as far as you can go. For your efforts you will receive a smaller portion of money of ££££” And then another message saying “You will teleported out of the game in 10, 9, 8… etc.” and then they get teleported back to where they started their game initially, whether that was from a sign or the location where they typed the command to join the game.

    Building the Mazes
    What's so versatile about this game is that the mazes can be connected however you want. You could attach them together with a wall between them, you could build bridges, build stairs, make teleport portals using something like the Multiverse Portals plugin, using commandblocks, warps and the list goes on. So long as you can clearly define each section of the maze for the sections.yml file, there's room to allow mobs to spawn and space to place chests then you should be fine. As also mentioned briefly above I would like to make this plugin to allow multiple mazes so that it’s not restricted to 4 people at a time out of the whole server.

    Commands, Messages & Permissions
    Please excuse any changes to this section of the plugin request as this is the section I’ve had to do the most thinking on. If I think of anything new I will add an update list to you can see the changes. The text in red is the file where the settings will be stored when the command is executed.

    Commands - /megamaze (Alias /mm)

    Mazes.yml
    • /mm create maze <ID> (Creates a maze with chosen name)
    • /mm delete maze <ID> (Deletes a maze with chosen name)
    • /mm selected maze <ID> (Selects a maze)
    • /mm enable maze <ID> (Enables a maze with it leaderboards, will show as enabled in the list of mazes and allows players to join.)
    • /mm disable maze <ID> (Disables a maze; leaderboards will show maze is disabled, the maze will appear as disabled in the list of mazes and players won’t be able to join)
    • /mm list mazes (List both enabled & disabled mazes)
    Sections.yml
    • /mm set section player 1 (Sets Player 1 mini-maze region)
    • /mm set section player 2 (Sets Player 2 mini-maze region)
    • /mm set section player 3 (Sets Player 3 mini-maze region)
    • /mm set section player 4 (Sets Player 4 mini-maze region)
    • /mm set section teammaze (Sets team maze region)
    • /mm set section teamsaferoom (sets team safe-room region)
    • /mm set section endsaferoom (Sets end/completion safe-room)
    • /mm remove section player 1 (Removes player 1 region)
    • /mm remove section player 2 (Removes player 2 region)
    • /mm remove section player 3 (Removes player 3 region)
    • /mm remove section player 4 (Removes player 4 region)
    • /mm remove section teammaze (Removes team maze region)
    • /mm remove section teamsaferoom (Removes team safe-room region)
    • /mm remove section endsaferoom (Removes end/completion safe-room region)
    playerspawns.yml
    • /mm set playerspawn player 1 (Sets player 1’s spawn point when they join the game)
    • /mm set playerspawn player 2 (Sets player 2’s spawn point when they join the game)
    • /mm set playerspawn player 3 (Sets player 3’s spawn point when they join the game)
    • /mm set playerspawn player 4 (Sets player 4’s spawn point when they join the game)
    • /mm remove playerspawn player 1 (removes player 1’s set spawn point)
    • /mm remove playerspawn player 2 (removes player 2’s set spawn point)
    • /mm remove playerspawn player 3 (removes player 3’s set spawn point)
    • /mm remove playerspawn player 4 (removes player 4’s set spawn point)
    mobspawns.yml
    • /mm set mobspawn <ID> <mob> <number of mobs> (Sets mob spawn point + mob type and number of mobs to spawn)
    • /mm remove mobspawn <ID> (Removes specified mob spawn point)
    Miscellaneous
    • /mm list todo (lists how much of the setup is left to do)
    • /mm list playerspawns (lists coordinates of player spawn points)
    • /mm list sections (lists region coordinates for each section)
    • /mm list mobspawns (lists coordinates of mob spawn points and their ID number)
    • /mm mobspawn info <ID> (lists mob type and number of mobs for specific ID)
    • /mm set leaderboard <ID> (Sets leaderboard for specified maze)
    • /mm remove leaderboard <ID> (Removes leaderboard for specified maze)
    • /mm join <ID> (Join specified maze)
    • /mm leave (Leave current maze)
    Config.yml
    • /mm set price halfway <price> (Sets the price when a player reaches the halfway point/team safe-room)
    • /mm set price full <price> (Sets the price when a player reaches the end safe-room as a team)
    • /mm help (lists all of the commands with descriptions as used here)
    Messages - messages.yml
    Mazes.yml
    • Maze <ID> has been created
    • Maze <ID> has been removed
    • Maze <ID> has been selected
    • Maze <ID> is now enabled
    • Maze <ID> is now disabled
    • Mazes:
      • Maze 1 - enabled
      • Maze 2 - disabled
      • Maze 3 - disabled
      • Maze 4 - enabled
    Sections.yml
    • Player 1’s maze has been set
    • Player 2’s maze has been set
    • Player 3’s maze has been set
    • Player 4’s maze has been set
    • Team maze has been set
    • Team safe-room has been set
    • End safe-room has been set
    • Player 1’s maze has been removed
    • Player 2’s maze has been removed
    • Player 3’s maze has been removed
    • Player 4’s has been removed
    • Team maze has been removed
    • Team safe-room has been removed
    • End safe-room has been removed
    Playerspawns.yml
    • Player 1’s spawn point has been set
    • Player 2’s spawn point has been set
    • Player 3’s spawn point has been set
    • Player 4’s spawn point has been set
    • Player 1’s spawn point has been removed
    • Player 2’s spawn point has been removed
    • Player 3’s spawn point has been removed
    • Player 4’s spawn point has been removed
    Mobspawn.yml
    • Mob spawn point <ID> has been set
    • Mob spawn point <ID> has been removed
    Leaderboard
    • Leaderboard <Maze ID> has been set
    • Leaderboard <Maze ID> has been removed
    Player
    • Player 1 has died
    • Player 2 has died
    • Player 3 has died
    • Player 4 has died
    • Player 1 has reached the team safe room
    • Player 2 has reached the team safe room
    • Player 3 has reached the team safe room
    • Player 4 has reached the team safe room
    • Player 1 has left the game
    • Player 2 has left the game
    • Player 3 has left the game
    • Player 4 has left the game
    Miscellaneous
    • Halfway price for <Maze ID> has been set to <price>
    • Full price for <Maze ID> has been set to <price>
    Permissions
    Mazes

    megamaze.create
    megamaze.delete
    megamaze.select
    megamaze.list
    megamaze.enable
    megamaze.disable

    Sections

    megamaze.section.set
    megamaze.section.remove

    Playerspawns

    megamaze.playerspawn.set
    megamaze.playerspawn.remove

    Mobspawns

    megamaze.mobspawn.set
    megamaze.mobspawn.remove
    megamaze.mobspawn.info

    Miscellaneous

    megamaze.list.todo
    megamaze.list.playerspawns
    megamaze.list.sections
    megamaze.list.mobspawns
    megamaze.leaderboard.set
    megamaze.leaderboard.remove
    megamaze.join.*
    megamaze.join.specific_maze
    megamaze.leave
    megamaze.help
    megamaze.price.half
    megamaze full

    Sorry if the request is a bit long winded, I wanted to put as much detail in as possible.
     

    Attached Files:

    Last edited: Jan 20, 2015
  2. Offline

    willowen100

  3. Offline

    XgXXSnipz

  4. Offline

    willowen100

    Is anyone up for making this?
     
  5. Offline

    willowen100

Thread Status:
Not open for further replies.

Share This Page