fBaseXtensions.Targeting.TargetingClass.ObjectInteraction C# (CSharp) Method

ObjectInteraction() public method

public ObjectInteraction ( ) : bool
return bool
        public virtual bool ObjectInteraction()
        {
            #region DebugInfo
            if (FunkyBaseExtension.Settings.Debugging.DebugStatusBar)
            {
                FunkyGame.sStatusText = "[Interact- ";
                switch (Cache.CurrentTarget.targetType.Value)
                {
                    case TargetType.Avoidance:
                        FunkyGame.sStatusText += "Avoid] ";
                        break;
                    case TargetType.Fleeing:
                        FunkyGame.sStatusText += "Flee] ";
                        break;
                    case TargetType.NoMovement:
                        FunkyGame.sStatusText += "NoMovement] ";
                        break;
                    case TargetType.Unit:
                        FunkyGame.sStatusText += "Combat] ";
                        break;
                    case TargetType.Item:
                    case TargetType.Gold:
                    case TargetType.Globe:
                        FunkyGame.sStatusText += "Pickup] ";
                        break;
                    case TargetType.Interactable:
                        FunkyGame.sStatusText += "Interact] ";
                        break;
                    case TargetType.Container:
                        FunkyGame.sStatusText += "Open] ";
                        break;
                    case TargetType.Destructible:
                    case TargetType.Barricade:
                        FunkyGame.sStatusText += "Destroy] ";
                        break;
                    case TargetType.Shrine:
                        FunkyGame.sStatusText += "Click] ";
                        break;
                    case TargetType.LineOfSight:
                        FunkyGame.sStatusText += "LOS] ";
                        break;
                }
                FunkyGame.sStatusText += "Target=" + Cache.CurrentTarget.InternalName + " C-Dist=" + Math.Round(Cache.CurrentTarget.CentreDistance, 2) + ". " +
                        "R-Dist=" + Math.Round(Cache.CurrentTarget.RadiusDistance, 2) + ". ";

                if (Cache.CurrentTarget.targetType.Value == TargetType.Unit && FunkyGame.Hero.Class.PowerPrime.Power != SNOPower.None)
                    FunkyGame.sStatusText += "Power=" + FunkyGame.Hero.Class.PowerPrime.Power + " (range " + FunkyGame.Hero.Class.PowerPrime.MinimumRange + ") ";

                FunkyGame.sStatusText += "Weight=" + Cache.CurrentTarget.Weight;
                BotMain.StatusText = FunkyGame.sStatusText;
                FunkyGame.bResetStatusText = true;
            }
            #endregion

            switch (Cache.CurrentTarget.targetType.Value)
            {
                case TargetType.Unit:
                case TargetType.Item:
                case TargetType.Gold:
                case TargetType.Globe:
                case TargetType.Shrine:
                case TargetType.Interactable:
                case TargetType.Container:
                case TargetType.Door:
                case TargetType.Destructible:
                case TargetType.Barricade:
                case TargetType.CursedShrine:
                case TargetType.CursedChest:
                    CurrentState = Cache.CurrentTarget.Interact();
                    break;
                case TargetType.AvoidanceMovements:
                    CurrentState = RunStatus.Running;
                    break;
                case TargetType.Backtrack:
                    //Last position.. since we are interacting, we are within range.
                    if (Navigation.Navigation.NP.CurrentPath.Count <= 1)
                    {
                        Cache.Backtracking = false;
                        Cache.StartingLocation = Vector3.Zero;
                    }
                    CurrentState = RunStatus.Running;
                    break;
                case TargetType.NoMovement:
                    CurrentState = RunStatus.Running;
                    break;
                case TargetType.LineOfSight:
                    //Last position.. since we are interacting, we are within range.
                    //if (Navigation.NP.CurrentPath.Count <= 1)
                    //{
                    Helpers.Logger.DBLog.InfoFormat("Ending LOS Movement from Interaction");
                    Navigation.Navigation.NP.Clear();
                    FunkyGame.Navigation.LOSmovementObject = null;
                    //}
                    CurrentState = RunStatus.Running;
                    break;
                case TargetType.Interaction:
                    Logger.DBLog.InfoFormat("Interacting with obj {0}", Cache.CurrentTarget.DebugStringSimple);
                    Cache.CurrentTarget.ref_DiaObject.Interact();
                    Cache.bForceTargetUpdate = true;
                    break;
            }

            // Now tell Trinity to get a new target!
            FunkyGame.Navigation.lastChangedZigZag = DateTime.Today;
            FunkyGame.Navigation.vPositionLastZigZagCheck = Vector3.Zero;
            //bForceTargetUpdate=true;

            return false;
        }