public bool CanHandleCommandOnUnit(AbilityCommandRequest command, IUnit unit) { if (command.Type == AbilityCommandType.FoundCity) { var unitLocation = UnitPositionCanon.GetOwnerOfPossession(unit); return(CityValidityLogic.IsCellValidForCity(unitLocation)); } else { return(false); } }
private void OnCellClicked(Tuple <IHexCell, PointerEventData> data) { var cell = data.Item1; if (IsAdding) { if (CityValidityLogic.IsCellValidForCity(cell)) { var citiesOfCiv = CityPossessionCanon.GetPossessionsOfOwner(ActiveCivilization); CityFactory.Create(cell, ActiveCivilization, ActiveCivilization.Template.GetNextName(citiesOfCiv)); } } else { var cityAtLocation = CityLocationCanon.GetPossessionsOfOwner(cell).FirstOrDefault(); if (cityAtLocation != null) { cityAtLocation.Destroy(); } } }