Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
 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}"));
 }
Ejemplo n.º 5
0
 public Item(Static.Item staticItem, int amount)
 {
     StaticItem = staticItem;
     Amount     = amount;
 }