ConnectUsingSettings
connected
Yes
No
JoinLobby
Create Room
[roomName]
DateTime.Second + ServerId + PlayerKey
[roomOptions]
MaxPlayers = 3
CustomRoomProperties[ "pk" ] = PlayerKey
[ typedLobby]
"GuildBattle" + ServerId + GuildKey
Join Room
[roomName]
[Event] OnPhotonCustomRoomPropertiesChanged
Start Button
Room.SetCustomProperties[ "GoBattle" ]
if ( Room.CustomProperties[ "GoBattle" ] )
setLeader
setTeammate
Player.SetCustomProperties[ "READY" ]
[Event] OnPhotonCustomRoomPropertiesChanged
if ( EveryPlayer.CustomProperties[ "READY" ] )
CreateRoom
JoinRandomRoom
Yes
No
JoinRoom
Leader
[roomName]
DateTime + ServerId + PlayerKey
[roomOptions]
MaxPlayers = 6
CustomRoomProperties[ "C0" ] = GuildKey
PublishUserId = true
[typedLobby]
Name = "GuildBattleReal"
Type = LobbyType.SqlLobby
[expectedUsers]
TeammateList
[expectedMaxPlayers]
Team.PlayerCount
[matchingType]
RandomMatching
[typedLobby]
Name = "GuildBattleReal"
Type = LobbyType.SqlLobby
[sqlLobbyFilter]
"C0 != GuildKey"
[expectedUsers]
TeammateList
FindFriends(Leader)
Others
For Loop ( 20 ) {
}
[Event] OnUpdatedFriendList
if ( Leader.Room )
JoinRoom(Leader.Room)
Wait...
Team >=2
Player
>= ExpectedUsers
Wait...
False
True
Room.CustomProperties["START_GAME"]
True
False
[Event] OnOtherJoinedRoomCallback
[Event] OnOtherLeftRoomCallback
Room Master
New game mode (CoopPVP) for guild battle
1.Init CoopPVPData
2.New CoopPVP game rule
3.New RPC for creating hero
State
game mode
Init CoopData
Wait...
Wait other player inBattle
Send Creating hero RPC
CoopPVP
Else
Wait for photon RPC
Init hero
New destroy gems logic for coop pvp by mater client
Sync team's gempool logic by team master
1.Check destroy logic
2.Send gemslot to ally and enemy
1.Get team masters gempool rule
2.Send rule to ally
Player link gem line
Get next team player
Send RPC to master client
Player
Master
Get destroy gem RPC
Do destroy gem logic
Send destroy line and
gem to all player
Get gem pool rule
Send RPC to other team client