Ejemplo n.º 1
0
        public bool CanBuildUnit(IHexCell location, IUnitTemplate template, ICivilization owner)
        {
            var canPlace        = UnitPositionCanon.CanPlaceUnitTemplateAtLocation(template, location, owner);
            var hasForeignUnits = DoesCellHaveUnitsForeignTo(location, owner);;

            return(canPlace && !hasForeignUnits);
        }
        public bool IsTemplateValidForCity(IUnitTemplate template, ICity city)
        {
            var cityLocation = CityLocationCanon.GetOwnerOfPossession(city);
            var cityOwner    = CityPossessionCanon.GetOwnerOfPossession(city);

            if (!UnitPositionCanon.CanPlaceUnitTemplateAtLocation(template, cityLocation, cityOwner))
            {
                return(false);
            }


            foreach (var resource in template.RequiredResources)
            {
                if (FreeResourcesLogic.GetFreeCopiesOfResourceForCiv(resource, cityOwner) <= 0)
                {
                    return(false);
                }
            }

            return(true);
        }