private void HandleGainSoldierFeedback(byte[] data) { GainS2C feedback = ProtobufUtils.Deserialize <GainS2C>(data); if (feedback == null) { DebugUtils.LogError(DebugUtils.Type.UI, "GainSoldier~~~~Feedback is null"); return; } if (feedback.result) { PlayerUnits army = DataManager.GetInstance().GetPlayerUnits(); for (int i = 0; i < feedback.soldiers.Count; i++) { int id = feedback.soldiers[i].metaId; SoldierInfo info = army.soldiers.Find(p => p.metaId == id); if (info == null) { army.soldiers.Add(feedback.soldiers[i]); } else { army.soldiers.Find(p => p.metaId == info.metaId).count += feedback.soldiers[i].count; } } MessageDispatcher.PostMessage(Constants.MessageType.RefreshPlayerUnitsData); } }
private void HandleGainCurrencyFeedback(byte[] data) { GainS2C feedback = ProtobufUtils.Deserialize <GainS2C>(data); if (feedback.result) { List <Currency> currenciesList = feedback.currencies; for (int i = 0; i < currenciesList.Count; i++) { CurrencyType type = currenciesList[i].currencyType; PlayerCurrencyInfo currency = GetCurrency(type); currency.currencyValue += currenciesList[i].currencyValue; } MessageDispatcher.PostMessage(Constants.MessageType.RefreshCurrency); } }
private void HandleGainItemFeedback(byte[] data) { GainS2C feedback = ProtobufUtils.Deserialize <GainS2C>(data); if (feedback == null) { DebugUtils.LogError(DebugUtils.Type.UI, "GainItem~~~~Feedback is null"); return; } if (feedback.result) { for (int i = 0; i < feedback.items.Count; i++) { PlayerBagItemType type = (PlayerBagItemType)feedback.items[i].itemType; PlayerBagInfo bag_complex = GetBag(BagType.ComplexBag); PlayerBagInfo bag_box = GetBag(BagType.BoxBag); PlayerBagInfo bag_debris = GetBag(BagType.DebrisBag); PlayerBagInfo bag_rune = GetBag(BagType.RuneBag); switch (type) { case PlayerBagItemType.RuneItem: int id_rune = feedback.items[i].metaId; ItemInfo info_rune = bag_rune.itemList.Find(p => p.metaId == id_rune); if (info_rune == null) { bag_rune.itemList.Add(feedback.items[i]); } else { info_rune.count += feedback.items[i].count; } break; case PlayerBagItemType.BoxItem: int id_box = feedback.items[i].metaId; ItemInfo info_box = bag_box.itemList.Find(p => p.metaId == id_box); if (info_box == null) { bag_box.itemList.Add(feedback.items[i]); } else { info_box.count += feedback.items[i].count; } break; case PlayerBagItemType.UnitDebrisItem: int id_unitD = feedback.items[i].metaId; ItemInfo info_unitD = bag_debris.itemList.Find(p => p.metaId == id_unitD); if (info_unitD == null) { bag_debris.itemList.Add(feedback.items[i]); } else { info_unitD.count += feedback.items[i].count; } break; case PlayerBagItemType.SkinDebrisItem: int id_skinD = feedback.items[i].metaId; ItemInfo info_skinD = bag_debris.itemList.Find(p => p.metaId == id_skinD); if (info_skinD == null) { bag_debris.itemList.Add(feedback.items[i]); } else { info_skinD.count += feedback.items[i].count; } break; case PlayerBagItemType.RuneDebrisItem: int id_runeD = feedback.items[i].metaId; ItemInfo info_runeD = bag_debris.itemList.Find(p => p.metaId == id_runeD); if (info_runeD == null) { bag_debris.itemList.Add(feedback.items[i]); } else { info_runeD.count += feedback.items[i].count; } break; default: int id_com = feedback.items[i].metaId; ItemInfo info_com = bag_complex.itemList.Find(p => p.metaId == id_com); if (info_com == null) { bag_complex.itemList.Add(feedback.items[i]); } else { info_com.count += feedback.items[i].count; } break; } } MessageDispatcher.PostMessage(Constants.MessageType.RefreshPlayerBagsData); if (feedback.exps != 0 || feedback.currencies.Count > 0 || feedback.items.Count > 0 || feedback.soldiers.Count > 0) { MessageDispatcher.PostMessage(Constants.MessageType.OpenGainItemWindow, feedback.exps, feedback.currencies, feedback.items, feedback.soldiers); } } }