private void OnReciveRandomPVP(EventData eventData) { byte[] rolesData = (byte[])eventData[(byte)ParameterCode.BattleRoles]; byte[] battleData = (byte[])eventData[(byte)ParameterCode.BattleData]; GameManager.battleTime = (float)eventData[(byte)ParameterCode.BattleTime]; GameBattle gameBattle = Serialization.Load <GameBattle>(battleData); GameManager.battleType = gameBattle.Mode; if (gameBattle.User01.Id != GameManager.GameUser.Id) { GameManager.EnemyUser = gameBattle.User01; GameManager.GameUser.Position = gameBattle.User02.Position; } else { GameManager.GameUser.Position = gameBattle.User01.Position; GameManager.EnemyUser = gameBattle.User02; } GameObjCollection battleRoles = Serialization.Load <GameObjCollection>(rolesData, true); GameplayManager.InitRoles(battleRoles); MessageBox.CloseDialog(); GameManager.Status = GameStatus.PVP; //GameplayManager.isBattleStart = false; _uiManager.OnReciveBattleInfo(); }
// called in SubCode.Begin network event, Init all roles in battle is loaded from server public static void InitRoles(GameObjCollection userData) { //Debug.Log("InitRoles " + userData.Count); GameplayManager.allRoles.Clear(); playerRoles.Clear(); enemyRoles.Clear(); playerRoles = new List <UserRole>(); enemyRoles = new List <UserRole>(); foreach (GameObj obj in userData) { UserRole userRole = (UserRole)obj; userRole.GameRole = (GameRole)GameManager.GameHeroes[userRole.Base.RoleId]; GameplayManager.allRoles.Add(userRole); for (int i = 0; i < userRole.RoleSkills.Count; i++) { userRole.RoleSkills[i].GameSkill = (GameSkill)GameManager.GameSkills[userRole.RoleSkills[i].SkillId]; } if (GameManager.GameUser.Id == userRole.Base.UserId) { playerRoles.Add(userRole); UserRole roleOfUser = GameManager.GameUser.UserRoles.FirstOrDefault(p => p.Id == userRole.Id); if (roleOfUser != null) { roleOfUser.Base.Energy = userRole.Base.Energy; } } else { enemyRoles.Add(userRole); } } }
public static void HandleBattle(this PhotonController controller, EventData eventData, GameStatus type) { SubCode subCode = (SubCode)eventData[(byte)ParameterCode.SubCode]; //Debug.Log("subCode " + subCode); switch (subCode) { case SubCode.Invite: { //int senderID = (int)eventData[(byte)ParameterCode.UserId]; //GameUser inviterBattle = (GameUser)GameManager.ZoneUsers[senderID]; //UIInviterManager.Instance.AddInviter(inviterBattle); } break; case SubCode.Refuse: { MessageBox.CloseDialog(); MessageBox.ShowDialog(GameManager.localization.GetText("Dialog_Refuse"), UINoticeManager.NoticeType.Message); } break; case SubCode.Begin: { GameplayManager.battleStatus = GameplayManager.BattleStatus.Start; byte[] rolesData = (byte[])eventData[(byte)ParameterCode.BattleRoles]; byte[] battleData = (byte[])eventData[(byte)ParameterCode.BattleData]; battleTime = (float)eventData[(byte)ParameterCode.BattleTime]; GameBattle gameBattle = Serialization.Load <GameBattle>(battleData); if (gameBattle.User01.Id != GameManager.GameUser.Id) { GameManager.EnemyUser = gameBattle.User01; GameManager.GameUser.Position = gameBattle.User02.Position; } else { GameManager.GameUser.Position = gameBattle.User01.Position; GameManager.EnemyUser = gameBattle.User02; } GameObjCollection battleRoles = Serialization.Load <GameObjCollection>(rolesData, true); GameplayManager.InitRoles(battleRoles); MessageBox.CloseDialog(); GameScenes.ChangeScense(GameScenes.previousSence, GameScenes.MyScene.Battle); GameManager.Status = type; battleType = gameBattle.Mode; } break; } }