示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }