public void OnDrop(PointerEventData eventData) { IncomeTower droppedTower = eventData.pointerDrag.GetComponent <IncomeTower>(); Debug.Log(this.name + " " + droppedTower.name); int combineCost = Mathf.RoundToInt((droppedTower.price + this.price) * 2.5f); if (droppedTower && _money.money >= combineCost) { _money.Buy(combineCost); CombineTowers(droppedTower); } }
private void CombineTowers(IncomeTower droppedTower) { if (droppedTower.level == this.level) { this.level++; _image.sprite = levelSprites[level - 1]; price += droppedTower.price; income = Mathf.RoundToInt(income * 2.5f); frequency /= 1.1f; additionalIncome += droppedTower.additionalIncome; additionalFrequency += droppedTower.additionalFrequency; Destroy(droppedTower.gameObject); } else if (droppedTower.level < this.level) { price += droppedTower.price; additionalIncome += Mathf.RoundToInt((droppedTower.additionalIncome + droppedTower.income) * 0.1f); additionalFrequency += (droppedTower.frequency - droppedTower.additionalFrequency) * 0.01f; Destroy(droppedTower.gameObject); } }