private void OnItemDestroyed(Static.Item staticItem) { var itemIndex = Targets.FindIndex(i => i.StaticItem.Id == staticItem.Id); if (itemIndex < 0) { return; } var item = Targets[itemIndex]; if (item.Amount <= 0) { return; } item.Amount--; Targets[itemIndex] = item; OnTargetsChange?.Invoke(Targets); var allItemsDestroyed = Targets.All(i => i.Amount <= 0); if (!allItemsDestroyed) { return; } Clear(); OnWin?.Invoke(); }
public Core.Item Create(Transform container, Static.Item staticItem) { var prefab = Resources.Load <Core.Item>($"Items/{staticItem.Type}"); var item = Object.Instantiate(prefab, container, false); item.gameObject.name = staticItem.Id; item.Initialize(staticItem); return(item); }
public void Initialize(Static.Item staticItem) { StaticItem = staticItem; _icon.sprite = SpriteHelper.GetItemIcon(staticItem); }
public static Sprite GetItemIcon(Static.Item staticItem) { return(Resources.Load <Sprite>($"Icons/{staticItem.Id}")); }
public Item(Static.Item staticItem, int amount) { StaticItem = staticItem; Amount = amount; }