Code Monkey home page Code Monkey logo

dungeon-dash's People

Contributors

hammy275 avatar

Watchers

 avatar  avatar

dungeon-dash's Issues

Don't Create new DDMap() instances

Don't create new DDMap() instances when assigning the start, or an end corner. Fixes a bug where settings for a map have changes undone when setting a start or end.

Save BeforeGameState to Disk

On the event of a server crash, we won't be able to restore pre-game data. We should save this to a file, and restore it in case of a server crash.

Color All the Text

DungeonDash should have a consistent color scheme (probably red + dark blue?). Besides that, color important things in chat.

Don't Use Position

For the AI of the shadows, the codebase currently uses a Location object, which doesn't store the pitch or yaw (as it's unneeded). However, it uses so little memory, that we might as well use it, and not have to deal with the overhead of creating Location objects from Position objects all the time.

Timer

A timer (probably in the scoreboard) to show how long your run has been so far. As a bonus, keep track of records.

Config

There should be a config to adjust plugin settings.

Cosmetic Shop

  • Should not require hooking into vault, but will hook into it if present
  • Customizable prices in a config
  • Must at least include a good number of particle trails
  • A command to grant permanent access to a given cosmetic

Completely Remove Stand-Still Killing

Stand-still death is simply not fun. It was used super early in development in place of the chaser, but as of now, it's practically useless (and completely useless when #16 is added) and not fun to play with.

JSON Format for Maps

Since maps may have new features added, we'll want to use our own format for storing, so we can convert it up as needed.

Save/Reset Player Inventory + Gamemode

  • Save inventory on game start
  • Save gamemode on game start
  • Set gamemode to adventure on game start
  • Restore inventory and gamemode on game end/leave
  • Save health and food, and restore when leaving

Game Rewards

Should include Vault integration (because of course it should!).

Rewards should be user-settable

Chase vs. Race Mode

The setting "use_chase" should be an option. It defaults to false. When false, the first player to finish wins. If true, a giant chases players through the map, with all the players who make it to the end alive winning.

Leaderboard

For the targeting for the chaser, we already store positions from last to first. We can definitely assemble a leaderboard with those, displaying places 1-4, a ..., then your place and name. It can also display the distance they are away from the finish line, just so people can get an idea.

Testing

Make sure everything is good for 1.1.1.

Map Status in /ddash play GUI

Should show how many people currently queued and max player count (if there is one). Also should hide maps that are currently playing

GUI Creator

Set the hotbar of a player to basically execute the create commands so players can setup the map using items.

May also be nice to visualize things using particles, such as the ending zone

Checkpoints Buggy

There's a lot of problems with the checkpoint code:

  • Seems to possibly be buggy
  • Works on literally everything interactable (instead of just golden pressure plates)
  • Checkpoints aren't reset when completing a map while in a lobby

Let's get this fixed before 1.2

GUI Joining

GUI to join Dungeon Dash maps. Would also require letting admins set icons for the maps.

README

It should have the following:

  • Description of the plugin
  • All available commands + their associated permissions

Leave Game in Lobby

While in the lobby, a clock should be in the last hotbar slot that allows leaving of the game when right clicked.

Checkpoint Support

The map should check for players stepping on golden pressure plates. When stepped on, it marks a checkpoint there. On respawn, the player should end up at that checkpoint instead of at the start.

List Available Maps

/ddash list to get a list of all available maps. Should have a permission tied to it (probably dungeondash.list)

Persistent Player Storage in JSON

Since a lot of other 1.2 things require it, storing player data and loading it from JSON would be a requirement to have.

At least for the time being, we won't use a database, though might want to add support for one later.

Data should be stored in server_dir/dungeondash_data/playerdata

Map Settings in GUI

Move all map customization to a GUI, and place access to said GUI in an item in the creation hotbar.

Needed for most other enhancements in 1.2

Chaser Customization

Chaser Options:

Mode: (default: chase (the current option)): The AI for the chaser. Options are:

  • Chase: Attempts to close the gap with the player in last place. Perfect for non-stop running maps.
  • Shadow: Every player gets a chaser that perfectly copies their moves. Perfect for parkour maps or maps that split into multiple directions.

Speed (default: fast (the current option): How fast the chaser moves.

  • Slow: Moves slowly in Chase mode (probably ~1/3 of current speed), and moves at 50% player speed in Shadow mode.
  • Medium: Moves at a medium pace in Chase mode (probably ~2/3 of current speed), and moves at around 75% player speed in Shadow mode.
  • Fast (current): Moves at a fast pace very close to player sprint jumping speed. Will move at ~95% player speed in shadow mode.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.