protected override void Awake() { base.Awake(); transform.GetChild(0).GetComponent <Button>().onClick.AddListener(OnClick); SpiritCountText = transform.GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>(); void OnClick() { Debug.Log(1); var goldCost = SpiritData.Get(Numeral.ResourceCost).Value; var spiritLimit = SpiritData.Get(Enums.Spirit.SpiritLimit).Value; var magicCrystalsCost = SpiritData.Get(Enums.Spirit.MagicCrystalReq).Value; Debug.Log(Owner.ResourceSystem); if (Owner.ResourceSystem.CheckHaveResources(spiritLimit, goldCost, magicCrystalsCost)) { Debug.Log(3); PlaceNewSpiritClicked?.Invoke(SpiritData); Count--; if (Count >= 1) { Debug.Log(4); SpiritCountText.text = Count.ToString(); Debug.Log(5); } else { AllThisSpiritsPlaced?.Invoke(this); Destroy(gameObject); } } } }
void OnPlacingNewSpirit(SpiritData spiritData) { if (Owner.CellControlSystem.IsGridBuilded) { var newSpiritLimit = spiritData.Get(Enums.Spirit.SpiritLimit).Value; var newGoldCost = spiritData.Get(Numeral.ResourceCost).Value; var newMagicCrystalCost = spiritData.Get(Enums.Spirit.MagicCrystalReq).Value; if (Owner.ResourceSystem.CheckHaveResources(newSpiritLimit, newGoldCost, newMagicCrystalCost)) { if (GameManager.Instance.GameState == GameState.InGameMultiplayer) { var choosedCell = Owner.CellControlSystem.ChoosedCell; var position = new Coordinates3D( (int)choosedCell.transform.position.x, (int)choosedCell.transform.position.y, (int)choosedCell.transform.position.z); SpiritCreationRequested?.Invoke(new SpiritCreationRequest() { Index = spiritData.Index, Rarity = (int)spiritData.Base.Rarity, Element = (int)spiritData.Base.Element, Position = position, CellIndex = Owner.CellControlSystem.Cells.IndexOf(choosedCell) }); } else { var newSpirit = Create.Spirit(spiritData, Owner.CellControlSystem.ChoosedCell, true); SpiritPlaced?.Invoke(newSpirit); } } } }