private void HandleOnlineAward(OperationResponse response) { GameAward gameAward = null; if (response.Parameters.ContainsKey((byte)ParameterCode.GameAward)) { byte[] data = (byte[])response[(byte)ParameterCode.GameAward]; gameAward = Serialization.LoadStruct <GameAward>(data); byte[] itemData = (byte[])response[(byte)ParameterCode.UserItems]; UserItem[] userItems = Serialization.LoadArray <UserItem>(itemData, true); if (userItems != null) { foreach (UserItem item in userItems) { item.GameItem = (GameItem)GameManager.GameItems[item.ItemId]; } GameManager.GameUser.UserItems.Clear(); GameManager.GameUser.UserItems.AddRange(userItems); } } byte[] userData = (byte[])response[(byte)ParameterCode.UserBase]; GameUser.UserBase userBase = Serialization.LoadStruct <GameUser.UserBase>(userData); GameManager.GameUser.Base = userBase; _uiManager.OnResponseOnlineReward(gameAward); }
private void HandleChargeCash(OperationResponse response) { byte[] userData = (byte[])response[(byte)ParameterCode.UserBase]; int cardAmount = (int)response[(byte)ParameterCode.CardAmount]; int goldAdd = (int)response[(byte)ParameterCode.ChargeGold]; int silverAdd = (int)response[(byte)ParameterCode.ChargeSilver]; if (userData != null) { GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData); GameManager.GameUser.Base = miniUser; } _uiShopManager.OnResponseCashCard(cardAmount, goldAdd, silverAdd); }
private void OnReciveLand(OperationResponse response) { byte[] landData = (byte[])response.Parameters[(byte)ParameterCode.UserLand]; byte[] userData = (byte[])response[(byte)ParameterCode.UserBase]; UserLand userLand = Serialization.Load <UserLand>(landData); GameManager.GameUser.Land = userLand; _manager.curLand = userLand; if (userData != null) { GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData); GameManager.GameUser.Base = miniUser; } }
private void OnHandleCheckBank(OperationResponse response) { byte[] landData = (byte[])response.Parameters[(byte)ParameterCode.UserLand]; byte[] userData = (byte[])response[(byte)ParameterCode.UserBase]; float oldSilver = GameManager.GameUser.Base.Silver; float newSilver = GameManager.GameUser.Base.Silver; if (userData != null) { GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData); GameManager.GameUser.Base = miniUser; newSilver = GameManager.GameUser.Base.Silver; } UserLand userLand = Serialization.Load <UserLand>(landData); GameManager.GameUser.Land = userLand; _manager.OnResponseCheckBank(newSilver - oldSilver); }
public override void OnResponse(OperationResponse response) { base.OnResponse(response); _waitServer = false; OperationCode opCode = (OperationCode)response.OperationCode; ErrorCode errCode = (ErrorCode)response.ReturnCode; if (errCode != ErrorCode.Success) { Debug.Log(string.Format("ResponseReceived, OperationCode = {0}, ReturnCode = {1}, DebugMsg = {2}", opCode, errCode, response.DebugMessage)); this.HandleErrorCode(errCode); return; } switch (opCode) { case OperationCode.ShopBuy: if (errCode == ErrorCode.Success) { byte[] userData = (byte[])response[(byte)ParameterCode.UserBase]; int itemKind = (int)response[(byte)ParameterCode.ItemKind]; byte[] objData = (byte[])response[(byte)ParameterCode.ShopItem]; GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData); GameManager.GameUser.Base.Gold = miniUser.Gold; GameManager.GameUser.Base.Silver = miniUser.Silver; if (itemKind == (int)ItemKind.Hero) { UserRole userRole = Serialization.Load <UserRole>(objData); userRole.GameRole = (GameRole)GameManager.GameHeroes[userRole.Base.RoleId]; GameManager.GameUser.UserRoles.Add(userRole); } _manager.OnResponseBuyHero(); } break; case OperationCode.UserUpdate: { SubCode subCode = (SubCode)response.Parameters[(byte)ParameterCode.SubCode]; if (errCode == ErrorCode.Success) { switch (subCode) { case SubCode.CheckCash: { byte[] userData = (byte[])response[(byte)ParameterCode.UserBase]; GameUser.UserBase miniUser = Serialization.LoadStruct <GameUser.UserBase>(userData); GameManager.GameUser.Base = miniUser; _manager.OnRefreshGold(); } break; } } } break; default: break; } }