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