Giter Site home page Giter Site logo

magic-maze's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

magic-maze's Issues

TypeError thrown while moving a hero if mouse is held down and moved all over the place

  1. Start a one-player game with no bots on scenario 1.
  2. Click on the "Next Action" button until you get vortex.
  3. Click on a hero and hold down the button and move wildly in and out of the browser window several times.
  4. Open the browser debugger's console and you should see some errors.

Production:

Uncaught TypeError: o.default.get(...).isEmpty is not a function
    at e.value (bundle.js:1)
    at e.value (bundle.js:1)
    at Object.mouseMove (bundle.js:1)
    at e (bundle.js:1)

Local Development:

Uncaught TypeError: targetCell.isEmpty is not a function
    at Hero.getPath (hero.js:100)
    at Hero.checkPath (hero.js:182)
    at Object.mouseMove (events.js:301)
    at draw (user.js:90)

Player name is incorrect if entered in multiple places

  1. Player 1 starts a game.
  2. Player 2 opens the website and sees player 1's game.
  3. Enter in a nickname in player 1's game.
  4. Click on "Create room" to create another game.
  5. Fill in a room name and a different nickname in the other room.
  6. Player 2 starts the new game.
  7. Notice that player 2's name is the first nickname (for player 1's game) instead of the different nickname in player 2's own game.

Vortex implementation is incorrect and forces the hero to be on an existing vortex

According to the rules...

The player with the Use a Vortex action (and only this player) can move any Hero pawn from wherever it is to any Vortex space of its colour. This is a very quick way to travel long distances.

At the moment, the player with the vortex role can only move a hero from one vortex to another which is incorrect. The player should always be able to move an orange hero to an orange vortex irregardless of where the orange hero currently is.

Include play instructions in the game

Players who just open the page are not going to know what keybindings should be used for an action. We should briefly include some instructions in the game to help with this.

Allow the camera to be moved with the mouse

cameraMouse: false,

I see there is a cameraMouse configuration value but setting it to true doesn't seem to do anything (besides adding errors to the browser's console).

Some ideas for moving the camera with the move:

  • primary click and hold then move the mouse to pan
  • secondary click and hold then move the mouse to pan
  • press down on a key (such as shift or whatever) and then move the mouse to pan

Sometimes clock is not inverted

Hi,
first of all thanks for the app, it's fun to play.

I have one mayor issue: somtimes the item time (hourglass) is used (it get crossed) but the time is not inverted.

There are no visual clue of what is happening.

Can you advice?

Make the game touch-friendly

  • it should be possible to pan the camera around with gestures
  • it should be possible to zoom the camera in and out with the pinching gesture
  • there needs to be additional buttons or gesture support for actions
    • explore action
    • rotating the explored tile
    • pausing the game
    • cancel action

Add support for scenario 17

This will share a bit with scenario 10 (#53) as the pawns have to stay on the tile even after they have exited the mall.

AI can walk through walls

When playing with bots, the AI sometimes doesn't see the wall between two tiles. This results in the AI waiting for the player to move through that wall (which is impossible for the player) or the AI moving through that wall. See the image attached for the described situation. In this image the AI will think there is a valid crossing between the lower and the upper tile.

Screenshot from 2020-12-04 14-39-23

Not that important, but when this happens the player can get stuck in the game when only playing with bots, as the bots won't let the player take another route.

Game manual?

Hi ashugeo and thank you for this game!

I had a hard time figuring out how to add a new tile. A short manual with the keyboard shortcuts would be very appreciated :)

I was also wondering: what is the status of this project? Is the game fully implemented or are some rules missing? Do you plan to work on it anymore?

I'm not an experienced web developer but I will definitely spend some time in order to understand your code and see if I can add some features.

Regards,

A French compatriote.

having problems launching this

So a friend of mine was talking about this game, she's from the Netherlands and I'd never heard of it before so I started searching online for it so we might be able to play together in the future. I found your code, but attempting to launch the server.js and watch only gets me to this screen
magic

to get to this point I've gone into the app folder and ran npm run watch and opened a separate console window and ran node ./server.js in the same directory. Am I missing something ridiculously simple here?

Support WASD keybindings

Key Command
S Move map up
Z Move map down
D Move map left
Q Move map right

Can we change the movement keys to be WASD like some computer games? I recognize this will mean the other keybindings will also have to change but I want to see if people are okay with this proposal first.

New tiles do not get added in other windows

I tried testing the Heroku page in Firefox and a separate incognito Firefox window. When I explore and add a tile to one window, the other window does not updated with the tile.

image

Show statistics screen at the end of the game

I think there can be a lot of fun statistics that could be shown at the end of the game. Here are some ideas...

  • elapsed time (see #49)
  • how many times the timer was flipped
  • how many times the vortex was used
  • how many tiles were flipped
  • how many tiles were unused
  • how many times a hero was moved
  • how many times the "alert" was used
  • how fast the "escape" portion of the game was

Remove references to p5.js

if (config.cameraMouse) {
const x1 = -this.x
const y1 = -this.y;
const x2 = (-p5.width/2 + p5.mouseX) / this.zoomValue - this.x;
const y2 = (-p5.height/2 + p5.mouseY) / this.zoomValue - this.y;
const dist = Math.round(p5.dist(x1, y1, x2, y2) * this.zoomValue);
const angle = Math.atan2(y2 - y1, x2 - x1);
const distX = Math.round(Math.cos(angle) * dist);
if (Math.abs(distX) > p5.width / 2 - 100) {
this.x += Math.sign(distX) * config.cameraSpeed;
}
const distY = Math.round(Math.sin(angle) * dist);
if (Math.abs(distY) > p5.height / 2 - 100) {
this.y += Math.sign(distY) * config.cameraSpeed;
}
}

It seems that p5.js is no longer used except in the case above but even then it just throws errors to the console.

Can references to p5.js be fully removed from the source code?

Unable to move heroes after browser window is resized

  1. Start a one-player game.
  2. Move some heroes around, this should work.
  3. Now resize your browser's window a few times.
  4. Try moving some heroes around again, this will now stop working.
  5. Open the debugger panel of the browser and you should see an error.

Production:

Uncaught TypeError: Cannot read property 'nodeName' of null
    at Object.mouseMove (bundle.js:1)
    at e (bundle.js:1)

Local Development:

events.js:262 Uncaught TypeError: Cannot read property 'nodeName' of null
    at Object.mouseMove (events.js:262)
    at draw (user.js:90)

Add support for scenario 9

  • allow a specific spectator the ability to alert other players
  • the alert button should not be displayed for regular players

Web Socket Connections broken

To me it seems, the web socket connection is broken since updating to socket.io ^2.4.0. No tiles appear, games do not appear to others, cannot be started and the browser's developer tools show a status code 400.

Though changing the socket.io version back down to ~2.2.0 or upgrading to ^2.4.1 fixes that problem.

Add Multiplayer

Hey would be nice if you could add a multiplayer option to play with friends. Maybe with an invitation code?
Connection could be implemented via Websockets.

Repository has no license

This repository currently has no license associated with it. The lack of a license creates ambiguity as to what people can or cannot do with the code. I suggest choosing a license as soon as possible to rectify this.

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.