Honestly I duno what I am doing with this plugin, but you do find useful things when just playing around.
Because of that, Idecided to experiment with another layout and such.
1 layout has tiled movement, the other has 1px movement.
When switching layouts, it sends the move update, but each player sees their respective layout's update.
What could solve this is that each layout is a new room, so only those in the same room. To make it a more solid experience it could ask to join "layoutname_CURRENTROOMID" and if that fails, then joins "layoutname_RANDOMROOM".
So in summary:
-Join Room specific (ROOM/CURRENTROOM VARIABLE)
-Join Room random/not-full (Photon handles the random room thing to search for a non-full room, and if it doesn't exist then creates a new room.)
<font size="1">-Triggers for On-Join and On-Leave</font> (Never-mind, already implemented)
-Trigger for when requested room is full (Works for both Join Room Specific and when Join Room random/not-full does not find an existing not-full room)
-Room Player limit (might have to be a seperate config file, but I don't see why C2 couldn't edit/make it at export)
-Update Player (Updates position and variables on the player's entity.)
-Send Update Request (Sends an update that requests the other players in the same room to update. Maybe redundant)
I know that currently it's set as a test, but due to the problem with 2 layouts (each seeing the current layout's movement rules), probably shouldn't have hardcoded variables into the behavior that could cause issues and let the game handle things like that.
-Current Messages per second (This allows us to see how many messages are being sent and is reference-able if we want to have things trigger based on this number.)
With all this, I could create an online "village" made of multiple layouts.
<font size="1">The movement style would not matter because with UPDATE PLAYER, you could even make it a Zelda2 style platformer as long as the player keeps the others up to date. Since all the action would be happening locally it could cause some issues with unscrupulous player manipulation; however, it would be the simplest way to make many games.</font>
One player enters a house, layout changes from "village" to "house1"
Photon has player leave ("village_" & photon.ROOM#) upon loading the new layout and joining ("house1_" & photon.ROOM#). I do not know how liberal the usage of rooms for Photon Cloud is, but this is the simplest solution to prevent players in different layouts from causing cross updates that are very bad.
If there is a specific room limitation, then of course then you would have to make the game force all players into the new layout (kinda like Borderlands when you change zones)
With more control in C2, I feel the collision and movement behaviors would be unneeded as well.