Guild PVP

Guild Battle

1. Create Guild Team

2.
Battle Matching

3. Start Game

 

4.Init Game

 

5.Sync Gems

Guild Battle

Create Team Room

Create Guild Team

ConnectUsingSettings

connected

Yes

No

JoinLobby

Create Guild Team

Create Room

[roomName]
DateTime.Second + ServerId + PlayerKey
[roomOptions]

MaxPlayers = 3

CustomRoomProperties[ "pk" ] = PlayerKey
[ typedLobby]

"GuildBattle" + ServerId + GuildKey

Join Room

[roomName]

Create Guild Team

[Event] OnPhotonCustomRoomPropertiesChanged

Start Button

Room.SetCustomProperties[ "GoBattle" ]

Battle Matching

if ( Room.CustomProperties[ "GoBattle" ] )

Guild Battle

Battle Matching

Battle Matching

setLeader
setTeammate

Player.SetCustomProperties[ "READY" ]

[Event] OnPhotonCustomRoomPropertiesChanged

if ( EveryPlayer.CustomProperties[ "READY" ] )

Leave Room
&
JoinBattleLobby

Battle Matching

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

Battle Matching

FindFriends(Leader)

Others

For Loop ( 20 ) {

 

}

[Event] OnUpdatedFriendList

if ( Leader.Room )

JoinRoom(Leader.Room)

Guild Battle

Start Game

Start Game

Wait...

Team >=2

Player

>= ExpectedUsers

Wait...

False

True

Room.CustomProperties["START_GAME"]

True

False

[Event] OnOtherJoinedRoomCallback

[Event] OnOtherLeftRoomCallback

Room Master

Guild Battle

Init Game

Init Game

New game mode (CoopPVP) for guild battle

BattleController

1.Init CoopPVPData

 

2.New CoopPVP game rule

 

3.New RPC for creating hero

Init Game

State

game mode

Init CoopData

Wait...

Wait other player inBattle

Send Creating hero RPC

CoopPVP

Else

Wait for photon RPC

Init hero

Guild Battle

Sync Gems

Sync Gems

ReGemController

New destroy gems logic for coop pvp by mater client

InGame_BattleToGemBridge

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

Sync Gems

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

ReGemController

Sync Gems

Get gem pool rule

Send RPC to other team client

BattleToGemBridge

Made with Slides.com