コード例 #1
0
    public void SelectHero(MapHero a_Hero)
    {
        if (!m_Heroes.Contains(a_Hero))
        {
            Debug.LogError("Selected hero that isn't owned by local player");
            return;
        }

        if (SelectedHero != null)
        {
            SelectedHero.OnDeselected();
            OnHeroDeselected?.Invoke(SelectedHero);
        }
        else if (SelectedTown != null)
        {
            OnTownDeselected?.Invoke(SelectedTown);
        }

        SelectedHero = a_Hero;
        SelectedTown = null;

        OnHeroSelected?.Invoke(a_Hero, m_Heroes.IndexOf(a_Hero));

        a_Hero.OnSelected();
    }
コード例 #2
0
    public void RemoveHero(MapHero a_Hero)
    {
        if (!m_Heroes.Contains(a_Hero))
        {
            Debug.LogError("Attempted to remove hero that isn't owned");
            return;
        }

        m_Heroes.Remove(a_Hero);

        if (SelectedHero == a_Hero)
        {
            SelectedHero.OnDeselected();
            OnHeroDeselected?.Invoke(a_Hero);
            SelectedHero = null;
        }

        OnHeroRemoved?.Invoke(a_Hero);
    }
コード例 #3
0
    public void SelectTown(MapTown a_Town)
    {
        if (!m_Towns.Contains(a_Town))
        {
            Debug.LogError("Selected town that isn't owned by local player");
            return;
        }

        if (SelectedHero != null)
        {
            SelectedHero.OnDeselected();
            OnHeroDeselected?.Invoke(SelectedHero);
        }
        else if (SelectedTown != null)
        {
            OnTownDeselected?.Invoke(SelectedTown);
        }

        SelectedTown = a_Town;
        SelectedHero = null;

        OnTownSelected?.Invoke(a_Town, m_Towns.IndexOf(a_Town));
    }