Exemplo n.º 1
0
        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();
                }
            }
        }