Commit Graph

1232 Commits

Author SHA1 Message Date
David Négrier b8f9e25b26
Merge pull request #184 from thecodingmachine/debugreconnect
Adding console log when trying to reconnect
2020-06-17 15:43:20 +02:00
David Négrier b14524625c Adding console log when trying to reconnect 2020-06-17 15:37: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 77167c28a6 Making sure that even is a user did not move, the reconnection can happen without issues and resume at the old position 2020-06-11 10:04:23 +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 80fddb3c69 Removing dead code 2020-06-10 16:01:01 +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 43e4489d4d Fixing start position on disconnect 2020-06-10 14:57:32 +02:00
David Négrier 91ce318848 Changing license to AGPL + Commons Clause
This is an important change.
So far, the project was labelled as licensed under the "AGPL" (improperly since no version of the AGPL was specified)

This commit changes the license to "AGPL + Commons Clause"

The [common clause](https://commonsclause.com/) is an additional restriction forbidding companies from taking WorkAdventure of the shelf, and reselling WorkAdventure.

This license does not forbid anyone from installing and using WorkAdventure, it only targets resellers (so SAAS exploitation of WorkAdventure is limited to TheCodingMachine).

This effectively makes WorkAdventure non open-source, but the source-code remains available for anyone to see and modify.
2020-06-09 10:17:21 +02:00
David Négrier dcc78786a9 Porting favicon to the "front" container 2020-06-09 09:21:24 +02:00
David Négrier bd3be2a138
Merge pull request #157 from thecodingmachine/fixing_long_disconnect
Adding connecting spinner and blinking error to webrtc display
2020-06-08 18:09:12 +02:00
David Négrier 5042f2f82c Lint 2020-06-07 23:00:05 +02:00
David Négrier c0809e28db Adding support for putting the hash in a map referenced in an exit scene. 2020-06-07 22:57:32 +02:00
David Négrier db3ef81842 Adding the ability to add several entry points
We can now have several start layers and choose an entry point using a # in the URL
2020-06-07 13:23:32 +02:00
David Négrier f2c9647882 Adding connecting spinner and blinking error to webrtc display
I put a connecting spinner around the user name when the user is connecting.
Also, if an error occurs, we will see a blinking red circle around the player name.
2020-06-06 22:49:55 +02:00
David Négrier 96c5d92c46 Fixing disconnection taking ~15 seconds
Most of the time, sending a disconnect event to one of the players is enough (the player will close the connection
which will be shut for the other player).
However! In the rare case where the WebRTC connection is not yet established, if we close the connection on one of the player,
the other player will try connecting until a timeout happens (during this time, the circle with the name is displayed for nothing).

So now, we send disconnection event to every body (not only the people in the group, but also to the person leaving the group)
2020-06-05 13:07:18 +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 082a11b0cd Allowing ill defined initializers (because of the way Phaser 3 is designed) 2020-06-04 18:56:59 +02:00
David Négrier 7292bc3cab More strict fixes 2020-06-04 18:56:22 +02:00
David Négrier 111bfcfe8c More strict typecheck fixes 2020-06-04 18:56:22 +02:00
David Négrier a231024502 Fixing strict type checks 2020-06-04 18:56:22 +02:00
David Négrier a3ac782f17 Enabling Typescript strict mode on the front
This is very important otherwise, a number of useful checks (like nullable objects not propertly checked) are not performed.

See https://dev.to/briwa/how-strict-is-typescript-s-strict-mode-311a
2020-06-04 18:56:22 +02:00
David Négrier b6d8b8fb49
Merge pull request #139 from thecodingmachine/landingpage
first landingpage release
2020-06-04 15:34:57 +02:00
David Négrier 17250d810f Fixing front title 2020-06-04 15:23:54 +02:00
David Négrier 82e2c0d985
Merge pull request #149 from thecodingmachine/multiple_start_positions_in_layer
Allowing several start positions in a given start layer
2020-06-03 11:20:57 +02:00
David Négrier 69d2fa6944 Allowing several start positions in a given start layer
If more than one tile was set in the "start" layer, the last tile would be selected.
Now, the tile is selected at random among available tiles.

Also, a message is issued if no tiles have been put on the "start" layer.
2020-06-03 11:14:04 +02:00
David Négrier 9ddf22d36b Removing GameScene from the list of known GameScene when leaving
This is important because when we come back to the GameScene later, some properties of the GameScene object might be initialized with the values of the previous GameScene.
Like the position if the user previously disconnected.

Closes #146
2020-06-03 10:45:25 +02:00
David Négrier 2dc682ea72 Fixing warning on character selection 2020-06-02 15:57:11 +02:00
David Négrier d72e60610e Adding PlayersPositionInterpolator to interpolate/extrapolate players positions 2020-06-02 13:44:42 +02:00
David Négrier d69ce8a6a6 Adding PlayerMovement class to interpolate/extrapolate position along tests (installing Jasmine) 2020-06-02 10:48:04 +02:00
David Négrier 077b29bfbd Sending position only every 200ms while moving 2020-06-01 22:42:18 +02:00
Gregoire Parant b931a8f117 Fix animation player 2020-06-01 13:20:45 +02:00
Gregoire Parant 244f87196e Update strategy caching bundle front js files with webpack
- Add HtmlWebpackPlugin to use template index html
2020-06-01 11:53:12 +02:00
David Négrier f69f99f449 Adding localStorage for selected user 2020-05-26 22:26:50 +02:00
David Négrier 52e3b47cc1 Storing user name in local storage 2020-05-26 22:17:00 +02:00
David Négrier f36bd240a7 Fix lint 2020-05-26 17:43:25 +02:00
David Négrier 0492dfdf3a Fixing import 2020-05-26 17:37:26 +02:00
David Négrier 04a1f90ed5 Adding communication between LoginScene and SelectCharacterScene 2020-05-26 17:25:29 +02:00
David Négrier 5806e379c8 Fixing selection on keyboard after selection using mouse 2020-05-26 17:02:04 +02:00
David Négrier da0d9fed87 Adding a new SelectCharacterScene
Taking what was done in the LoginScene regarding character selection and putting it in its own scene.
Also, making character selection possible via the keyboard.
2020-05-25 23:26:27 +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 62cb8cca87 Also removing dead class 2020-05-25 22:36:44 +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 080e08eeef
Merge pull request #122 from thecodingmachine/reconnecting_scene
Adding a special scene to wait for server reconnection
2020-05-23 17:12:36 +02:00
Gregoire Parant f4ed2e52bf Fix CI 2020-05-23 16:50:17 +02:00
David Négrier e41eda9979 Prettifying lost connection screen 2020-05-23 16:13:37 +02:00
David Négrier 36858f8747 Adding a special scene to wait for server reconnection 2020-05-23 15:43:26 +02:00
Gregoire Parant ab32021fc0 Fix mediam stream manage and server back down 2020-05-23 14:00:36 +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 f44a44c109 Removing logs 2020-05-20 12:30:17 +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 1bbd0866cb Code cleaning 2020-05-16 16:07:57 +02:00
David Négrier 3b6ace03fa Getting rid of roomId in Message class (this is not needed since all messages sent are for the room we are currently in) 2020-05-16 00:19:27 +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 cdfa9acf01 JoinRoom now ONLY sends the roomId. 2020-05-15 23:24:04 +02:00
David Négrier b80e3e07d8 Sending player details (name + character selected) on connection 2020-05-15 22:49:50 +02:00
David Négrier 5a3668a12e Refactoring messages
Socket.io can stringify JSON messages itself, so there is no need to pass a string to "emit". You can pass a serializable object!

This commit removes all the useless toJson() methods, JSON.serialize and JSON.parse!

Woot!
2020-05-15 22:04:49 +02:00
David Négrier 4de552437d Completely getting rid of "userid"
Previously, userid was generated by the "/login" route and passed along.
This commit completely removes the uuid "userid" (and disables the LoginController too and any Jwt check).

"userid" is replaced by the "socket id" of the connection.
So a user is now identified using a socket id, which is unique for a given connection.
2020-05-14 23:20:43 +02:00
David Négrier 34d3a292db
Removing log trace 2020-05-14 22:00:31 +02:00
gparant 182882fded Fix border view 2020-05-14 20:54:34 +02:00
gparant 787e1c463c Media webrtcA
- Update peerConnexion manage
 - Add muted microphone logo
 - Add icon user
 - Sound when user enter in room webrtc
2020-05-14 20:39:30 +02:00
David Négrier 6e71d7f28a
Merge pull request #109 from thecodingmachine/Auto-reconnect
Auto-reconnect
2020-05-13 22:03:56 +02:00
gparant ec297e3912 Auto-reconnect 2020-05-13 20:22:42 +02:00
kharhamel e2531343d1 fixed a game crash on firefox on http 2020-05-13 16:56:22 +02:00
David Négrier dd5a0c9933 Fixing domain name 2020-05-13 16:17:58 +02:00
David Négrier a2123c092c Fixing htaccess redirect 2020-05-13 09:29:18 +02:00
David Négrier faadacddb6 Redirecting to the correct map after login screen based on URL provided 2020-05-13 00:06:58 +02:00
David Négrier daa559738b Adding history support
Arriving on a new map now changes the URL.
All URLs starting with _ are automatically redirected to index.html by the web server
2020-05-12 22:38:44 +02:00
David Négrier 9417e4a4d2 Refactoring/centralizing map loading in GameManager 2020-05-12 22:38:44 +02:00
David Négrier 256fa51e24 Catching errors in socket callbacks
Catching errors in socket callbacks to avoid having the server crashing when an error occurs.
2020-05-12 11:49:55 +02:00
gparant d3ff717f9e Minor Fix overflow css style 2020-05-12 00:22:55 +02:00
David Négrier 0daddb3669
Merge pull request #93 from thecodingmachine/fix-recette-grp
Fix recette GRP
2020-05-11 22:59:22 +02:00
David Négrier 7ded674cc4
Merge pull request #95 from thecodingmachine/lyon_map
Refactoring "exit" to allow multiple maps
2020-05-11 22:56:47 +02:00
David Négrier d51462abd4 Fixing typo 2020-05-11 19:19:42 +02:00
David Négrier 39f1952f94 Putting player names depth at a high depth to have them always visible 2020-05-11 19:16:36 +02:00
David Négrier 98628957a4 Refactoring "exit" to allow multiple maps
Adding several layers named "exit" causes issues with Phaser 3.
This PR makes any possible layer being an exit layer (it only depends on the exitUrl property)

Also, fixing start position (it takes into account the layer width now)
2020-05-11 18:49:20 +02:00
gparant e35c188854 Fix update world back end and deleting group in front end 2020-05-11 13:17:02 +02:00
gparant 141280e691 Fix url to get the next map in GameScene 2020-05-11 00:25:06 +02:00
gparant f4af824cf9 Fix error mapping refresh in back & the end of this feature development 2020-05-10 23:49:08 +02:00
gparant 58b65030bd Fix feedback @moufmouf strategy of maps managing by back. 2020-05-10 18:34:55 +02:00
gparant 68ac145882 Fix feedback @moufmouf on circle texture 2020-05-10 17:55:30 +02:00
gparant 69777ad1cb Remove middleware to secure access API. 2020-05-10 17:31:27 +02:00
gparant 029a7a9a64 Correct feedback @moufmouf 2020-05-10 14:49:49 +02:00
gparant 5f11b065e1 Permit to dissociate data by room
- Update share room id.
 - Join room when a scene is loaded.
 - Add a room in constant variable.
2020-05-10 13:58:32 +02:00
gparant 27c6034661 Manage multi scene
- Create position and check if user is in position to switch in the next scene.
 - When scene is load, we load all scene in the layer of name "exit".
 - Layer "exit" of map.json have a parametter "exitSceneKey" to identify next scene.
 - Add layer "start", the player could start in the scene on the object present in the layer of name "start".
2020-05-09 21:28:50 +02:00
gparant fb8d9bf9a8 Multi Scene in back end
- Change maps url to get maps
 - Change GameScene to create scene with file since back end
 - Change LoginScene to upload scene and start game
2020-05-09 19:41:21 +02:00
gparant 4157a12f5d Update name map
- Change name in game scene and login scene
2020-05-09 16:47:55 +02:00
gparant b983fff076 Add map 1st floor
Rename map to floor 0
2020-05-09 16:38:13 +02:00
gparant 59127534ac Fix User depth
- Update strategy layers depth
 - Add depth to manager layers positions between all users
2020-05-08 17:35:40 +02:00
David Négrier c59d693f6e
Merge pull request #83 from thecodingmachine/cleanup_rename_frame
Cleanup: renaming "frame" to "character"
2020-05-08 16:21:16 +02:00
David Négrier e4824fe34d
Merge pull request #81 from thecodingmachine/display_groups
Adding the display of a circle around the group
2020-05-08 16:20:56 +02:00
David Négrier 25b7fc5e36
Merge pull request #82 from thecodingmachine/fix/webrtc
Fix webrtc
2020-05-08 16:14:49 +02:00
David Négrier b2a5cb1720 Refactoring display of circle around group
The circle is now a sprite and not generated on every frame using a giant "graphics" object
2020-05-08 16:09:50 +02:00
David Négrier 492196b333 Cleanup: renaming "frame" to "character"
The "frame" variable actually contains a string pointing to the character selected.
It has nothing to do with a frame which is usually a particular image in an animation.

I'm renaming the variable accross the application to avoid confusion.
2020-05-08 15:18:22 +02:00
gparant 8991b6f817 Add layer override 2020-05-08 13:18:34 +02:00
gparant a87cbe4470 Personalization of DAM office 2020-05-08 12:43:02 +02:00
David Négrier 02e6b50b16 Adding the display of a circle around the group
This PR adds the display of a circle around groups. This is useful to view where you need to go to speak to someone but also to debug.

Note: implementation is suboptimal, relying on a "graphics" object that is known to be slow. In the future, we need to use a circle as a sprite instead.
2020-05-08 00:35:36 +02:00
David Négrier 05fbcad252 Fixing "none" animation does not exist log 2020-05-07 23:33:21 +02:00
gparant 3ec167ee44 Merge branch 'master' into feature/login-page
# Conflicts:
#	front/src/Phaser/Game/GameScene.ts
#	front/src/Phaser/Login/LogincScene.ts
2020-05-06 02:20:28 +02:00
gparant ebbe60f10f Delete comment 2020-05-06 02:13:00 +02:00
gparant b12d762ffe Fix to add frame of player user 2020-05-06 02:12:37 +02:00
gparant 4e04357b71 Merge branch 'refactoring_messages' into feature/login-page
# Conflicts:
#	front/src/Phaser/Player/Player.ts
2020-05-06 01:58:04 +02:00
gparant 5a6415607d Send event and play animation with user frame 2020-05-06 01:50:01 +02:00
David Négrier 86abdfe30b Only sending move events if the player actually moved
If the player did not move a pixel (and if it did not change direction), then do not send an event to save bandwidth and processing.
2020-05-04 23:11:59 +02:00
David Négrier ad3484285b Fixing Cypress tests 2020-05-04 18:38:04 +02:00
gparant 58a1a8a3c9 Add select player in login page 2020-05-04 01:48:14 +02:00
gparant b65e37c468 Name of map users
- Add name on user
 - Delete NonPlayer class not used
2020-05-03 22:24:14 +02:00
David Négrier b260dc32b5 Merge from master 2020-05-03 18:04:01 +02:00
gparant fb255140e5 Add feature to mute or switch off cam 2020-05-03 17:19:42 +02:00
David Négrier df5b183cba Merge 2020-05-03 15:51:16 +02:00
David Négrier c4f1aa1811 Removing comment 2020-05-03 15:31:20 +02:00
David Négrier 76b745ebea Putting the name in GameManager rather than passing it from scene to scene. 2020-05-03 15:29:40 +02:00
David Négrier 5601e5e134 Adding login method back for future use in LogincScene 2020-05-03 15:18:15 +02:00
gparant 85ab0a231f Fix style cam 2020-05-03 14:29:45 +02:00
gparant 0d6ce5e6e9 Merge branch 'master' into webrtc
# Conflicts:
#	front/src/Phaser/Player/Player.ts
2020-05-02 20:51:49 +02:00
gparant fdb40ec3e2 Fix webrtc multi 2020-05-02 20:46:02 +02:00
kharhamel ad65de75fd used the vent system to remove the dependency of Player on Connexion 2020-05-02 16:56:36 +02:00
gparant aff77fe074 Merge remote-tracking branch 'github.com/master' into webrtc
# Conflicts:
#	back/src/Model/Group.ts
#	back/src/Model/World.ts
2020-05-02 00:36:04 +02:00
gparant c7f8f92e85 Fix webrtc 2020-05-02 00:31:44 +02:00
David Négrier d72741ce0c Fixing linting 2020-05-01 23:48:30 +02:00
David Négrier 0c04d4305b Displaying the name of a player above its head (names are not passed through the network yet) 2020-05-01 23:38:09 +02:00
David Négrier 42ddd8b858 Changed font from text
Input name can only be 4 characters long
Passing name to next scene
2020-05-01 23:19:51 +02:00
David Négrier 85f84517f6 Adding logo in the bottom right corner and placing help text in function of height 2020-05-01 22:23:41 +02:00
gparant e06b20fe96 Update video style and start peer connexion 2020-05-01 21:15:00 +02:00
kharhamel dd0744387f reenabled diagonal movement 2020-04-30 19:36:28 +02:00
kharhamel 62d2498e34 remove the GameSceneInterface from LoginScene 2020-04-30 19:18:35 +02:00
gparant dbf0bef149 Delete file 2020-04-29 17:55:55 +02:00
gparant 58df4118d1 Refactor 2020-04-29 17:49:40 +02:00
gparant 91851c95f3 Merge remote-tracking branch 'github.com/master' into webrtc
# Conflicts:
#	front/src/Connexion.ts
#	front/src/Phaser/Game/GameManager.ts
#	front/src/Phaser/Game/GameScene.ts
#	front/src/index.ts
2020-04-29 17:37:17 +02:00
David Négrier a286d57a33
Merge pull request #61 from thecodingmachine/simplify
first step in simplification: remove the concept of room in the front…
2020-04-29 17:11:22 +02:00
gparant 2bfa57b0ba Merge world and webrtc conexion 2020-04-29 01:40:32 +02:00
gparant 3151113db3 Merge branch 'master' into webrtc
# Conflicts:
#	back/src/Model/Websocket/MessageUserPosition.ts
2020-04-29 00:05:16 +02:00
gparant 4e556782af Fix integration login scene in game manager 2020-04-29 00:01:37 +02:00
gparant 8c935e8b27 Merge branch 'master' into webrtc
# Conflicts:
#	front/src/Phaser/Game/GameManager.ts
2020-04-28 20:50:51 +02:00
David Négrier edc1136401 Merge branch 'master' of github.com:thecodingmachine/workadventure into simplify 2020-04-27 22:39:46 +02:00
David Négrier 3b9eb73929 Adding a huge collection of characters to play with 2020-04-27 22:38:21 +02:00
David Négrier cdd18fd5ac
Merge pull request #59 from thecodingmachine/map-v0
Map v0: Resize chunksize from 16 to 32 pixels
2020-04-27 18:22:24 +02:00
David Négrier 0d6c4032d5 Playing with zoom levels 2020-04-27 18:12:36 +02:00
kharhamel ee4a59578a first step in simplification: remove the concept of room in the front end 2020-04-27 15:03:05 +02:00
gparant ecdbf4269a Merge branch 'master' into webrtc 2020-04-26 23:22:40 +02:00
gparant 3f975171c2 Fix import 2020-04-26 23:22:13 +02:00
David Négrier e7bbe29123 Merge branch 'master' of github.com:thecodingmachine/workadventure into map-v0 2020-04-26 21:48:57 +02:00
David Négrier a3cabff445 Merge branch 'map-v0' of github.com:thecodingmachine/workadventure into map-v0 2020-04-26 21:48:42 +02:00
gparant b49c012319 Add button to enter un visio 2020-04-26 20:55:20 +02:00
gparant 707931724f Start visio with user colision
When user enter in colision with other colision, webrtc start visio
2020-04-26 19:59:51 +02:00
gparant d7d7be9ed0 Web visio, add and remove video element 2020-04-26 19:12:01 +02:00
kharhamel 25ac579a90 prettier login page 2020-04-26 18:48:41 +02:00
kharhamel d691b58d0b basic login page with a text input and a click button 2020-04-26 17:54:56 +02:00
gparant e178712457 Fix send message webrtc 2020-04-26 17:43:21 +02:00
gparant e4a30712b5 Update front mutli peer conncexion 2020-04-26 17:42:49 +02:00
NIP 5b6c7a9b5f Resize chunksize from 16 to 32 pixels 2020-04-26 11:46:00 +02:00
gparant 575054fe4f Fix multi video 2020-04-25 20:29:03 +02:00
gparant 89db8558f6 Add multi SimplePear connection 2020-04-25 17:14:05 +02:00
gparant c28108f6c9 Use WebRtc with SimplePeer 2020-04-25 16:05:33 +02:00
David Négrier 33bcbd4650
Merge pull request #44 from thecodingmachine/map-v0
My first map representing TCM office grand floor without KEN office
2020-04-24 19:08:08 +02:00
gparant a5b5072de1 Fix webrtc 2020-04-20 01:10:47 +02:00
gparant 89816a13e4 Fix video call 2020-04-19 22:30:42 +02:00
gparant 5b62ac39fb Create webrtc connexion between two player 2020-04-19 19:32:38 +02:00
David Négrier 46fcb86b28 Computing movement amount from framerate
Depending on the amount of power a computer has, the framerate will not be the same.
Hence, the amount of movement of a user should be constant on each frame.
If a frame was slow to print, the movement should be higher to keep a constant speed.

This PR takes the framerate into account when moving the players.
2020-04-18 17:16:39 +02:00
NIP 91dd903904 Add new map with embed tileset 2020-04-17 18:39:54 +02:00
David Négrier bccd2efc2e Merge branch 'map-v0' of github.com:thecodingmachine/workadventure into map-v0 2020-04-16 22:44:44 +02:00
David Négrier db605d100e Merge 2020-04-16 22:44:31 +02:00
NIP 95e51c7aa4 MERGE and add floorLayer 2020-04-16 21:55:34 +02:00
NIP 7e8283ddf0 Add floorLayer to the map 2020-04-16 21:37:31 +02:00
David Négrier 9175682f32 Backporting master changes 2020-04-15 23:57:36 +02:00
David Négrier 2037147d18 First working version of the office map! Yay! 2020-04-15 23:31:39 +02:00
David Négrier 8ddd4656e6 Adding automatic loading of layers 2020-04-15 23:10:12 +02:00
David Négrier 5f118c2a4a Removing all reference to 'Tiles' constant in code 2020-04-15 19:39:26 +02:00
David Négrier 1dd66b4998 Merging 2020-04-15 19:30:49 +02:00
David Négrier 482a344f45 Autoload tiles
This commit adds a listener in the preload function that will be triggered as soon as the map is loaded.
This function will load the resources from the map (tilesets) defined in the map.
That way, we don't have to define manually the list of tiles that have to be loaded (at the expense of a slight delay in loading since we must wait for the map to be loaded to start loading the tiles).
2020-04-15 19:23:06 +02:00
kharhamel a2ed7164e4 implemented basic e2e testing 2020-04-14 20:04:55 +02:00
NIP c42dbc3f95 Fix JS issue regarding multiple tilesets 2020-04-13 21:24:48 +02:00
NIP 84f0420694 Change GameScene to import new png, change map name and add missing png files 2020-04-13 20:34:19 +02:00
NIP f00d10d56a Change calque names into game scene TS file 2020-04-13 20:05:13 +02:00
kharhamel 1774594e76 deleted cameraManager, use camera follow code instead 2020-04-13 19:57:14 +02:00
NIP 7b41a9ee2f Add tilesets 2020-04-13 19:52:25 +02:00
kharhamel 33c58874e0 create an env variable for debug mode 2020-04-13 19:40:10 +02:00
NIP 7f2f977a81 My first map representing TCM office grand floor without KEN office 2020-04-13 19:38:28 +02:00
gparant d6653c61cc Add comment talk when user have a collision & comment collision shwon 2020-04-13 16:56:06 +02:00
gparant ba3f0e07f8 Refactor sizing hitbox charactere 2020-04-13 16:53:19 +02:00
grégoire parant 2ce6ed2d48
Merge pull request #40 from thecodingmachine/kharhamel-interaction
conflict interaction @Kharhamel
2020-04-13 16:10:09 +02:00
gparant b391ee271a Fix move & stop player 2020-04-13 15:41:11 +02:00
gparant ab70b28bb3 Fix, current player say 2020-04-13 15:35:38 +02:00
gparant 2afe6b4b6e Fix feadback @Kharhamel 2020-04-13 15:34:09 +02:00
gparant 48fe86634f Add feature to move bubble 2020-04-13 15:15:20 +02:00
David Négrier d826668273
Merge pull request #35 from thecodingmachine/cd
Installing a continuous deployement environement
2020-04-13 14:53:09 +02:00
gparant 01dbff7aee Merge branch 'interaction' into kharhamel-interaction
# Conflicts:
#	front/src/Phaser/Game/CameraManager.ts
#	front/src/Phaser/Game/GameScene.ts
#	front/src/Phaser/Game/MapManager.ts
#	front/src/Phaser/Player/Player.ts
2020-04-13 13:42:21 +02:00
kharhamel c51f5f4aa9 added som ebasic speech bubbles 2020-04-12 19:35:51 +02:00
kharhamel 05379c8001 the other playes now run away from the player on contact 2020-04-12 19:06:31 +02:00
kharhamel 97a55ab66c fixed the player animations 2020-04-12 18:28:05 +02:00
kharhamel d1106d757d made the player pushable by other models 2020-04-12 17:13:33 +02:00
kharhamel 2b2b615e7b added other players models and fixed collision with other entities 2020-04-12 17:08:28 +02:00
kharhamel 6e27377b07 rewrote the app code to more easily allow for collisions 2020-04-12 16:12:08 +02:00
gparant bbc3935d60 Fix feedback @kharhamel 2020-04-12 13:57:00 +02:00
kharhamel 241cbd720a added a rock 2020-04-11 18:17:36 +02:00
kharhamel 793e5318f7 created a class to centralize all user inputs catching and expose user events 2020-04-11 16:46:28 +02:00
David Négrier d979636a19 Fixing Dockerfiles 2020-04-11 15:11:22 +02:00
gparant d257b2b944 Multi players on the map
- Fix share user position
 - Fix initialise map
 - Create function to add user on the map with back end data
2020-04-10 12:54:05 +02:00
David Négrier bc7b5fc6c9 Setting up continuous deployment 2020-04-09 11:00:30 +02:00
gparant 9d83ba22d5 Fix play anim 2020-04-07 23:56:16 +02:00
gparant 25895e51f7 Fix and refactor with comments of @moumoug 2020-04-07 22:38:53 +02:00
gparant 77780bd27b Change comment with new message strategy 2020-04-07 21:03:33 +02:00
gparant 67c3eaa7f4 Fix Message send to add direction 2020-04-07 21:02:23 +02:00
gparant aba3322188 Fix CI 2020-04-07 20:46:30 +02:00
gparant bac1e804ad Refactor to include connexion 2020-04-07 20:41:35 +02:00
gparant 5d463d097a Refactor Class
- Add MapManager permit to create map, camera and player.
 - Add CameraManager permit to move and update camera.
 - Add player Call extended of Phaser.GameObjects.Sprite. Permit to manager player data and moving in the map.
 - Add Animation class permit to manage the player animations.
2020-04-07 19:23:21 +02:00
gparant e52183830d Camera following player.
- Add condition to follow the player.
 - Add condition for the player never out map border.
2020-04-07 01:28:36 +02:00
gparant ddc39d6e50 Fix to move the camera only in the map. The camera stops on the border map. 2020-04-06 22:55:09 +02:00
kharhamel 406b299f91 allow player movement with proper animation 2020-04-06 19:53:07 +02:00
David Négrier cf7125301a Merge branch 'master' of github.com:thecodingmachine/workadventure 2020-04-06 17:59:06 +02:00
kharhamel d0c09ecd4f added a way do speed up the camera movement 2020-04-06 16:59:14 +02:00
kharhamel 7146decb5b added code to freely move the camera using the arrow keys or z,q,s,d 2020-04-06 16:52:18 +02:00
gparant 7e08e7f133 Front : create class to connect, send and receive message
- Create environment class
 - Create Connexion class to connect and save data
 - Refactor back api
2020-04-05 20:57:14 +02:00
David Négrier b10f8d9069 Loading first sprite 2020-04-05 16:20:53 +02:00
David Négrier 08989d6ec0
Merge pull request #20 from thecodingmachine/noemie_nguyen/ajout_logos_tcm
Ajout des logos TCM
2020-04-04 16:38:09 +02:00
David Négrier ca3d113cad Adding ESLint for front part 2020-04-04 16:16:20 +02:00
David Négrier 531899ea6b Fixing missing closing parenthesis 2020-04-04 16:06:38 +02:00
kevin 25841b51c0 ajout des logos TCM 2020-04-04 15:42:45 +02:00
David Négrier c0e75ae07e
Merge pull request #16 from moufmouf/docker-compose
Adding docker-compose
2020-04-03 18:48:36 +02:00
David Négrier 9290dfd6c5 Automatically resizing game when window is resized 2020-04-03 18:41:06 +02:00
David Négrier f1ab9705c9 Adding docker-compose
This first commit contains a docker-compose with:

- front container
- traefik for reverse proxy

back container will be added when ready.
2020-04-03 18:31:11 +02:00
David Négrier 26b8412f3c Initial commit 2020-04-03 14:56:21 +02:00