Commit graph

79 commits

Author SHA1 Message Date
kharhamel 472fbb1de0 All player textures are now lazy-loaded 2021-01-08 11:44:41 +01:00
kharhamel eb88db92be FIX: going back a 2nd time to SelectCharacterScene used to crash the game 2020-12-16 15:09:58 +01:00
kharhamel de9d6756b4 FIX: going to loginScene or customizeScene and then clicking next bring you back directly to the gameScene 2020-12-15 18:00:04 +01:00
kharhamel 069f2f1cec FEAT: prototype game menu using html elements, better icon for text chat 2020-12-15 16:37:57 +01:00
kharhamel 8d8b879ed6 FIX: the game now uses the url hash to choose the start layer 2020-11-24 14:43:21 +01:00
kharhamel 09d6d22a5d FIX: rewrote the way scene exits are triggered 2020-11-24 14:43:21 +01:00
arp f5aa70ddc2 improved the local storage of the the selectcharacterScene 2020-10-20 13:44:57 +02:00
David Négrier 517b3a644b Fixing URL not being rewritten when changing maps 2020-10-15 14:35:09 +02:00
David Négrier cb159350e9 Fixed room switching 2020-10-13 18:44:50 +02:00
David Négrier ec93891c6b Using Room class to load GameScene 2020-10-13 17:10:07 +02:00
David Négrier aee06da7f9 Refactoring Room.ts to fetch map url automatically from ID 2020-10-13 17:10:07 +02:00
arp d98efc0433 lint fixes 2020-10-13 16:23:49 +02:00
David Négrier 0731bd39e5 Moving back to using ScenePlugin and adding EntryScene 2020-10-12 18:59:49 +02:00
David Négrier 2852f204f5 Improving error handling upon unknown URL 2020-10-12 17:42:37 +02:00
arp 02c193a262 rewrote the authorisation flow: give more responsability to gameManager and less to gameScene 2020-10-12 16:45:09 +02:00
arp 4af46b1b3f simplified mapUrl parsing 2020-10-08 18:51:24 +02:00
arp 3f9659ef3c improvments 2020-09-28 15:40:34 +02:00
arp af4611ed29 rewrote the login workflow 2020-09-25 19:23:33 +02:00
David Négrier 24fb605f50 Switching to definitely assigned parameters
This allows us to go in "full strict mode" (yeah!)
See https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#strict-class-initialization
2020-08-07 23:39:06 +02:00
David Négrier 84529d6e99 Propagating customized sprites all over the game 2020-07-28 17:45:55 +02:00
David Négrier 6d0bccc0e1 Making a nice "customize" button 2020-07-28 15:53:44 +02:00
David Négrier a5514ce78a Code cleanup and removing exception in favor of console error 2020-06-22 18:42:54 +02:00
David Négrier 1e4ffa20ab Cleaning GameManager 2020-06-22 16:10:34 +02:00
David Négrier f88f28db3f Refactoring reconnection: putting it into the GameScene directly. 2020-06-22 15:00:23 +02:00
David Négrier d785a8a1bf Refactoring connection to be part of a GameScene
Most of the refactoring issues we are seeing are probably due to the fact that we are trying to manipulate a ScenePlugin out of a Scene (the GameManager is not a Scene and holds a reference to a ScenePlugin coming from a Scene that might get invalidated by Phaser 3).
Furthermore, if we want in the future to be able to scale, scenes could be hosted on different servers. Therefore, it makes no sense to have one connexion for the whole application.
Instead, we should have one connexion for each scene.
2020-06-22 11:58:07 +02:00
David Négrier 39928b46f9 Removing any in the front 2020-06-19 14:30:34 +02:00
David Négrier 8348d13bfe Fixing use const instead of let 2020-06-19 14:30:34 +02:00
David Négrier 817b25b0be Fixing reconnect issue
In the case the reconnect event was triggered on "wake-up", the disconnect event was not sent. But because of a bug in the way we handle the setTimeout, the reconnection to the GameScene never happened after we forced the disconnect scene.
This fixes the issue.
2020-06-17 16:06:02 +02:00
David Négrier b1d39c4690 More logs 2020-06-11 14:13:13 +02:00
David Négrier ea30a02762 Fixing reconnect issues 2020-06-11 14:12:03 +02:00
David Négrier 473c5aa052 Fixing events fired multiple times
Callbacks for socket.io events were registered each time a disconnect was called, leading to message being dispatched plenty of times if there was several disconnections.
2020-06-11 13:34:25 +02:00
David Négrier e50a4fd88b Fixing setTimeout being called several times 2020-06-11 11:34:22 +02:00
David Négrier f7265c213e Patch 2020-06-11 10:40:43 +02:00
David Négrier 43c7c9ad07 Fixing null initialization 2020-06-11 10:29:11 +02:00
David Négrier ce7b4092a6 Fixing suspend/resume
In case we suspend a laptop and resume it, the RECONNECT event is called by socket.io without any error being thrown (so without us being redirected to the Reconnect Scene).
This fix makes sure we go to the reconnect scene before going back to the main scene.
2020-06-11 09:37:33 +02:00
David Négrier f518830073 Minor change to make sure the scene starts even if in background (does this really work?) 2020-06-10 16:00:54 +02:00
David Négrier 500dc83a85 Completely resetting GameScene on disconnect 2020-06-10 15:43:22 +02:00
David Négrier b82b13e351 Finalizing strict mode fixes 2020-06-04 18:56:59 +02:00
David Négrier 6f69a62d4d More strict fixes 2020-06-04 18:56:59 +02:00
David Négrier 111bfcfe8c More strict typecheck fixes 2020-06-04 18:56:22 +02:00
David Négrier 21576946f0 Commenting out the notion of status in the GameManager
It seems to be useless
2020-05-25 22:37:07 +02:00
David Négrier 17e7f1b37a Removing dead code from previous messaging system
Remvoing messages that were no more used in the new messaging system (the code used to handle the message that sent the position of all users on the front side)
2020-05-25 22:36:44 +02:00
David Négrier 1fa39b0781 Fixing typos.
Replaced connexion with connection and LogincScene with LoginScene
2020-05-24 23:14:12 +02:00
David Négrier cd586a9e0c Renaming /maps to /start-map
Closes #90
2020-05-24 22:53:10 +02:00
David Négrier 2448fef53a Adding a notion of instances per mapAdding a notion of instances to room
The URL signature becomes:

https://workadventu.re/_/[instance]/[path_to_map.json]

This allows us to create many instances of the same map (and therefore to create several different worlds for different people)

An exit on a map can target another "instance" by passing the "exitInstance" property.
2020-05-23 17:45:49 +02:00
David Négrier 36858f8747 Adding a special scene to wait for server reconnection 2020-05-23 15:43:26 +02:00
David Négrier ab798b1c09 Changing the "Point" notion to add a notion of "moving" in addition to the notion of direction.
Also, refactoring JOIN_ROOM event to add complete position.
2020-05-22 23:04:45 +02:00
David Négrier 125a4d11af Refactored and optimized messages
Now, when a user moves, only his/her position is sent back to the other users. The position of all users is not sent each time.

The messages sent to the browser are now:

- the list of all users as a return to the join_room event (you can send responses to events in socket.io)
- a "join_room" event sent when a new user joins the room
- a "user_moved" event when a user moved
- a "user_left" event when a user left the room

The GameScene tracks all these events and reacts accordingly.

Also, I made a number of refactoring in the classes and removed the GameSceneInterface that was useless (it was implemented by the LogincScene for no reason at all)
2020-05-19 19:11:12 +02:00
David Négrier 4d1c3517ec When sharing user position, only position is sent now! 2020-05-15 23:47:00 +02:00
David Négrier b80e3e07d8 Sending player details (name + character selected) on connection 2020-05-15 22:49:50 +02:00