private void Awake() { this.Bind(); _button.onClick.AddListener(() => { if (!Buyable.Acquired) { if (Buyable.AttemptToBuy() && BuyParticlePrefab) { Instantiate(BuyParticlePrefab, CoinSection.transform.parent).gameObject.SetActive(true); } } else if (!Buyable.Equipped || !Buyable.Manager.SingleEquip) { Buyable.Equipped = !Buyable.Equipped; } }); foreach (var i in GetComponentsInChildren <Image>()) { i.enabled = true; } _button.enabled = true; }
private void OnUpdateBuyable(Buyable arg0) { Filter.mesh = arg0.Mesh; Mesh.material.mainTexture = arg0.Texture; Rotation.enabled = arg0.Equipped; var scale = new Vector3(1, 1, 1); if (!arg0.Equipped) { scale *= 0.8f; } Mesh.transform.localScale = scale; }
public void Configure(Buyable buyable, bool selected = false) { if (Buyable != null) { Buyable.OnAcquireChanged -= OnAcquireChanged; Buyable.OnEquipChanged -= OnEquipChanged; } Buyable = buyable; Buyable.OnAcquireChanged += OnAcquireChanged; Buyable.OnEquipChanged += OnEquipChanged; Selected = selected; UpdateBuyable(); }
internal void _OnEquip(Buyable e) { if (SingleEquip) { HandleSingleEquipped(e); } else if (e.Tag?.SingleEquip == true) { HandleSingleEquippedTag(e); } RebuildSingleTags(); if (!_recursing) { OnEquipChanged?.Invoke(); } }
private void HandleSingleEquipped(Buyable e) { if (e.Equipped) { _recursing = true; var old = SingleEquipped; SingleEquipped = e; if (old != null) { old.Equipped = false; } _recursing = false; } else if (SingleEquipped == e) { SingleEquipped = null; } }
private void OnUpdateBuyable(Buyable arg0) { Parent.DestroyAllChildren(); var obj = Instantiate(arg0.Prefab, Parent); var listable = obj.GetComponent <StoreListable>(); if (listable) { listable.ConfigureForStore(arg0, false); } Rotation.enabled = arg0.Equipped; var scale = new Vector3(1, 1, 1); if (!arg0.Equipped) { scale *= 0.8f; } Parent.localScale = scale; }
private void ConfigureSingleEquipped() { _tagEquipMap.Clear(); TagSingleEquipped = null; SingleEquipped = null; foreach (var b in Buyables) { if (SingleEquip) { if (b.Equipped) { if (SingleEquipped == null || SingleEquipped == b) { SingleEquipped = b; } else { b.Equipped = false; } } } else if (b.Tag?.SingleEquip == true) // pray this shit works. { var tag = b.Tag; if (b.Equipped) { Buyable b1; var foundTag = _tagEquipMap.TryGetValue(tag, out b1); if (!foundTag || b1 == b) { _tagEquipMap[tag] = b; } else { b.Equipped = false; } } } } RebuildSingleTags(); }
private void HandleSingleEquippedTag(Buyable e) { var tag = e.Tag; Buyable old; var found = _tagEquipMap.TryGetValue(tag, out old); if (e.Equipped) { _recursing = true; _tagEquipMap[tag] = e; if (found) { old.Equipped = false; } _recursing = false; } else if (old == e) { _tagEquipMap.Remove(tag); } }
public abstract void ConfigureForPlay(Buyable buyable);
public abstract void ConfigureForStore(Buyable buyable, bool showGear);
private void OnAcquireChanged(object sender, Buyable buyable) { UpdateBuyable(); }
private void OnEquipChanged(object sender, Buyable buyable) { UpdateBuyable(); }
private void OnUpdateBuyable(Buyable arg0) { Icon.sprite = arg0.Icon; }