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