/////////////// public void EquipItem(EquipmentItem item) { if (item == null) { return; } EquipmentItem equippedItem; // если на персонаже нет предмета в этом слоте, тогда надеваем предмет if (!HeroEquipment.TryGetValue(item.Slot, out equippedItem)) { HeroEquipment.Add(item.Slot, item); InventoryContent.Instance.RemoveItem(item); if (OnEquipmentChanged != null) { OnEquipmentChanged(); } return; } InventoryContent.Instance.AddEquipmentItem(equippedItem); InventoryContent.Instance.RemoveItem(item); HeroEquipment[item.Slot] = item; if (OnEquipmentChanged != null) { OnEquipmentChanged(); } }
//Utils// /////////////// public void LoadProfile(JsonObject json) { InitBaseStats(GameDataStorage.Instance.NewProfileData); // экипировка героя JsonArray heroEquipments = json.Get <JsonArray>("hero_equipment"); foreach (JsonObject obj in heroEquipments) { EquipmentItem item = GameDataStorage.Instance.GetEquipmentByName(obj.GetString("Name", string.Empty)); HeroEquipment.Add((EquipmentSlot)obj.GetInt("Slot"), item); } // содержимое карманов JsonArray pocketItems = json.Get <JsonArray>("pocket_items"); for (int i = 0; i < pocketItems.Count; i++) { if (pocketItems[i] == null) { continue; } MaterialData itemData = GameDataStorage.Instance.GetMaterialByName((string)pocketItems[i]); PocketItems[i] = new MaterialInfo(itemData, 1); } // прогресс по миссиям NormalWorldMissionNumber = json.GetInt("Normal"); WaterWorldMissionNumber = json.GetInt("Water"); FireWorldMissionNumber = json.GetInt("Fire"); EarthWorldMissionNumber = json.GetInt("Earth"); DarknessWorldMissionNumber = json.GetInt("Darkness"); AirWorldMissionNumber = json.GetInt("Air"); }