private void ShowOrHidePrefabSelector() { // Ensure the empty segment is selected EmptyTowerSegment segment = segments[m_cursorPosition].GetComponent <TowerSegment>() as EmptyTowerSegment; if (segment == null) { m_prefabSelector.Hide(); } else { m_prefabSelector.Show(); m_prefabSelector.transform.position = segment.transform.position; m_prefabSelector.SetSelectedIndex(m_selectedPrefabIndex); } }
public void PerformAction(Tribe tribe) { TowerSegment segment = segments[m_cursorPosition].GetComponent <TowerSegment>(); if (!segment.IsActionable() || tribe.IsBusy || tribe.Count < segment.OnGetTribeCost()) { AudioSource.PlayClipAtPoint(wrongClip, Vector3.zero); return; } EmptyTowerSegment emptySegment = segment as EmptyTowerSegment; if (emptySegment != null) { TowerSegment segmentToConstruct = m_constructableTowerSegments[m_selectedPrefabIndex]; int minimumPerTribeSize = segmentToConstruct.OnGetMinimumTribeSize(); bool enoughTribes = true; for (int i = 0; i < 4; ++i) { if (m_owningPlayer.tribes[i].Count < minimumPerTribeSize) { enoughTribes = false; } } if (enoughTribes) { for (int i = 0; i < 4; ++i) { m_owningPlayer.tribes[i].Count -= minimumPerTribeSize; } emptySegment.PerformAction(tribe, segmentToConstruct); } else { AudioSource.PlayClipAtPoint(wrongClip, Vector3.zero); } } else { segment.PerformAction(tribe); } }
public void MoveRight() { // Ensure the empty segment is selected EmptyTowerSegment segment = segments[m_cursorPosition].GetComponent <TowerSegment>() as EmptyTowerSegment; if (segment == null) { return; } AudioSource.PlayClipAtPoint(selectionClip, Vector3.zero, 0.6f); if (m_selectedPrefabIndex < (m_constructableTowerSegments.Count - 1)) { ++m_selectedPrefabIndex; } else { m_selectedPrefabIndex = 0; } m_prefabSelector.SetSelectedIndex(m_selectedPrefabIndex); }