예제 #1
0
        public async Task <ActionResult> QueryTargets([FromBody] QueryRequest query)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            byte[] imageBinaries        = Convert.FromBase64String(query.Image.Base64);
            TargetSearchResults results = await this.imageRecognition.QuerySimilarTargets(imageBinaries);

            QueryResponse response = this.mapper.Map <QueryResponse>(results);

            return(Ok(response));
        }
예제 #2
0
        public static void TargetClosestNonBees(NPC searcher, bool faceTarget = true, Vector2?checkPosition = null)
        {
            TargetSearchResults searchResults = SearchForTarget(searcher, TargetSearchFlag.All, null, SearchFilters.NonBeeNPCs);

            if (searchResults.FoundTarget)
            {
                searcher.target     = searchResults.NearestTargetIndex;
                searcher.targetRect = searchResults.NearestTargetHitbox;
                if (searcher.ShouldFaceTarget(ref searchResults) && faceTarget)
                {
                    searcher.FaceTarget();
                }
            }
        }
예제 #3
0
        public static void TargetClosestOldOnesInvasion(NPC searcher, bool faceTarget = true, Vector2?checkPosition = null)
        {
            TargetSearchResults searchResults = SearchForTarget(searcher, TargetSearchFlag.All, SearchFilters.OnlyPlayersInCertainDistance(searcher.Center, 200f), SearchFilters.OnlyCrystal);

            if (searchResults.FoundTarget)
            {
                searcher.target     = searchResults.NearestTargetIndex;
                searcher.targetRect = searchResults.NearestTargetHitbox;
                if (searcher.ShouldFaceTarget(ref searchResults) && faceTarget)
                {
                    searcher.FaceTarget();
                }
            }
        }
예제 #4
0
        public static void TargetClosestBetsy(NPC searcher, bool faceTarget = true, Vector2?checkPosition = null)
        {
            TargetSearchResults searchResults = SearchForTarget(searcher, TargetSearchFlag.All, null, SearchFilters.OnlyCrystal);

            if (searchResults.FoundTarget)
            {
                TargetType value = searchResults.NearestTargetType;
                if (searchResults.FoundTank && !searchResults.NearestTankOwner.dead)
                {
                    value = TargetType.Player;
                }
                searcher.target     = searchResults.NearestTargetIndex;
                searcher.targetRect = searchResults.NearestTargetHitbox;
                if (searcher.ShouldFaceTarget(ref searchResults, value) && faceTarget)
                {
                    searcher.FaceTarget();
                }
            }
        }