Example #1
0
    private void PlotSelect(TurretPlot plot)
    {
        DeselectObject();
        if (m_bDestroyMode)
        {
            if (plot.m_AttachedTurret != null)
            {
                if (plot.m_AttachedTurret.GetComponentInChildren <TowerScript>() != null)
                {
                    GameManager.instance.blood += m_iBasicTowerCost * m_fRefund;
                }
                else if (plot.m_AttachedTurret.GetComponentInChildren <BombTowerScript>() != null)
                {
                    GameManager.instance.blood += m_iFireTowerCost * m_fRefund;
                }
                else if (plot.m_AttachedTurret.GetComponentInChildren <IceTowerScript>() != null)
                {
                    GameManager.instance.blood += m_iFrostTowerCost * m_fRefund;
                }
                else if (plot.m_AttachedTurret.GetComponentInChildren <LaserTowerScript>() != null)
                {
                    GameManager.instance.blood += m_iLaserTowerCost * m_fRefund;
                }
                else
                {
                    Debug.Log("No Turret");
                }
                plot.DestroyTurret();
            }
            return;
        }
        if (m_SelectedTower != null)
        {
            if (m_SelectedTower == m_BasicTower && m_iBasicTowerCost > GameManager.instance.blood)
            {
                return;
            }
            else if (m_SelectedTower == m_BasicTower)
            {
                GameManager.instance.blood -= m_iBasicTowerCost;
            }
            if (m_SelectedTower == m_FireTower && m_iFireTowerCost > GameManager.instance.blood)
            {
                return;
            }
            else if (m_SelectedTower == m_FireTower)
            {
                GameManager.instance.blood -= m_iFireTowerCost;
            }
            if (m_SelectedTower == m_FrostTower && m_iFrostTowerCost > GameManager.instance.blood)
            {
                return;
            }
            else if (m_SelectedTower == m_FrostTower)
            {
                GameManager.instance.blood -= m_iFrostTowerCost;
            }
            if (m_SelectedTower == m_LaserTower && m_iLaserTowerCost > GameManager.instance.blood)
            {
                return;
            }
            else if (m_SelectedTower == m_LaserTower)
            {
                GameManager.instance.blood -= m_iLaserTowerCost;
            }

            plot.SpawnTurret(m_SelectedTower);
        }


        if (plot.m_AttachedTurret != null)
        {
            m_SelectedSpell = Spell.None;
            m_SelectedTower = null;

            m_selected = plot.m_AttachedTurret;
            m_selected.GetComponent <TowerScript>()?.SetSelected(true);
            m_selected.GetComponent <BombTowerScript>()?.SetSelected(true);
            m_selected.GetComponent <IceTowerScript>()?.SetSelected(true);
            m_selected.GetComponent <LaserTowerScript>()?.SetSelected(true);
        }
    }
Example #2
0
    private void HandleRayCastHit(RaycastHit hit)
    {
        if (m_SelectedSpell == Spell.None)
        {
            Cursor.visible = true;
            if (hit.collider.gameObject.layer == 9) // Check if object is selectable
            {
                // Set cursor to hovering
                Cursor.SetCursor(m_CursorOn, new Vector2(16, 16), CursorMode.Auto);
            }
            else
            {
                // Set cursor to not hovering
                Cursor.SetCursor(m_CursorOff, new Vector2(16, 16), CursorMode.Auto);
            }
        }
        else
        {
            Cursor.visible = false;
        }
        if (m_SelectedSpell == Spell.None) // Check if spell is selected
        {
            // Select minion
            //HarvesterScript harvester = hit.collider.gameObject.GetComponentInChildren<HarvesterScript>();
            //if ((harvester != null && Input.GetMouseButtonDown(0))) // Select minion with click
            //{
            //    MinionSelect();
            //    return;
            //}
            //if (m_selected != null)
            //{
            //    if (Input.GetMouseButtonDown(1) && m_selected.GetComponent<HarvesterScript>() != null) // Create target location for minion
            //    {
            //        m_selected.GetComponent<HarvesterScript>().SetTargetLocation(hit.point);
            //        Debug.Log(hit.point);
            //        return;
            //    }
            //}

            // Select Demon
            DemonScript demon = hit.collider.gameObject.GetComponentInChildren <DemonScript>();
            if ((demon != null && Input.GetMouseButtonDown(0))) // Select minion with click
            {
                DemonSelect();
                return;
            }
            if (m_selected != null)
            {
                if (Input.GetMouseButtonDown(1) && m_selected.GetComponent <DemonScript>() != null) // Create target location for minion
                {
                    m_selected.GetComponent <DemonScript>().SetTargetLocation(hit.point);
                    Debug.Log(hit.point);
                    return;
                }
            }

            // Select tower
            TowerScript      tower1 = hit.collider.gameObject.GetComponentInChildren <TowerScript>();
            BombTowerScript  tower2 = hit.collider.gameObject.GetComponentInChildren <BombTowerScript>();
            IceTowerScript   tower3 = hit.collider.gameObject.GetComponentInChildren <IceTowerScript>();
            LaserTowerScript tower4 = hit.collider.gameObject.GetComponentInChildren <LaserTowerScript>();
            if ((tower1 != null || tower2 != null || tower3 != null || tower4 != null) && Input.GetMouseButtonDown(0))
            {
                TowerSelect(hit);
                return;
            }

            TurretPlot plot = hit.collider.gameObject.GetComponentInChildren <TurretPlot>();
            if (plot != null && Input.GetMouseButtonDown(0)) // Select turret plot
            {
                PlotSelect(plot);
                return;
            }
        }

        if (Input.GetMouseButtonDown(0)) // Cast spell
        {
            SpellCast(hit.point);
            DeselectObject();
            return;
        }
    }