示例#1
0
        /// <summary>
        /// Creates a Request to send to through the API to see a build can be placed in this location
        /// </summary>
        /// <param name="unitType">type of the building you wish to build</param>
        /// <param name="targetPos">desired location</param>
        /// <returns>true if it is possible to build here, false otherwise</returns>
        public static bool CanPlace(uint unitType, Point2D targetPos)
        {
            //Note: this is a blocking call! Use it sparingly, or you will slow down your execution significantly!
            var abilityID = Units.GetAbilityId(unitType);

            RequestQueryBuildingPlacement queryBuildingPlacement = new RequestQueryBuildingPlacement
            {
                AbilityId = (int)abilityID,
                TargetPos = targetPos
            };

            Request requestQuery = new Request
            {
                Query = new RequestQuery()
            };

            requestQuery.Query.Placements.Add(queryBuildingPlacement);

            var result = Program.gc.SendQuery(requestQuery.Query);

            if (result.Result.Placements.Count() > 0)
            {
                return(result.Result.Placements[0].Result == ActionResult.Success);
            }
            return(false);
        }
示例#2
0
        private static bool QueryBuildingPlacement(uint unitType, Vector3 targetPos)
        {
            //Note: this is a blocking call! Use it sparingly, or you will slow down your execution significantly!
            bool canPlace  = false;
            var  abilityID = GetAbilityID(unitType);
            RequestQueryBuildingPlacement queryBuildingPlacement = new RequestQueryBuildingPlacement();

            queryBuildingPlacement.AbilityId   = abilityID;
            queryBuildingPlacement.TargetPos   = new Point2D();
            queryBuildingPlacement.TargetPos.X = targetPos.X;
            queryBuildingPlacement.TargetPos.Y = targetPos.Y;

            Request requestQuery = new Request();

            requestQuery.Query = new RequestQuery();
            requestQuery.Query.Placements.Add(queryBuildingPlacement);

            var result = Connection.SendQuery(requestQuery.Query);

            if (result.Result.Placements.Count > 0)
            {
                canPlace = (result.Result.Placements[0].Result == ActionResult.Success);
            }
            return(canPlace);
        }
        public static bool CanPlace(uint unitType, Vector3 targetPos)
        {
            //Note: this is a blocking call! Use it sparingly, or you will slow down your execution significantly!
            var abilityID = Abilities.GetID(unitType);

            RequestQueryBuildingPlacement queryBuildingPlacement = new RequestQueryBuildingPlacement();

            queryBuildingPlacement.AbilityId   = abilityID;
            queryBuildingPlacement.TargetPos   = new Point2D();
            queryBuildingPlacement.TargetPos.X = targetPos.X;
            queryBuildingPlacement.TargetPos.Y = targetPos.Y;

            Request requestQuery = new Request();

            requestQuery.Query = new RequestQuery();
            requestQuery.Query.Placements.Add(queryBuildingPlacement);

            var result = Program.gc.SendQuery(requestQuery.Query);

            if (result.Result.Placements.Count > 0)
            {
                return(result.Result.Placements[0].Result == ActionResult.Success);
            }
            return(false);
        }