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); } }
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; } }