User-generated content: The content of the Buddy Wiki is generated by Buddy Community members and volunteers.
The Wiki content is neither created nor maintained by Bossland GmbH, or employees of Bossland GmbH.
Honorbuddy:What is PullDistance and TargetingDistance?
ForumLink: [i][u][url= ]Honorbuddy:What is PullDistance and TargetingDistance?[/url][/u][/i]
Other articles in the Honorbuddy:Developer Notebook category.
"Pull Distance" is...
Theis a contract between Honorbuddy 'core' logic (HBcore) and the Combat Routine (CR). The PullDistance is the distance at which Honorbuddy transfers control from its 'core' logic to the Combat Routine. At this distance from a mob, the Combat Routine takes over and dispatches the selected mob. When the mob is dead, HBcore resumes control.
The Combat Routine uses the Honorbuddy API to select an appropriate value of PullDistance based on the toon's class, spec, and the Combat Routine's capabilities. For instance, a Combat Routine may arrange for a Feral Druid's pull distance to be 10 feet, and a Balance Druid's to be 35 feet.
PullDistance is measured as a distance from each mob as shown in Figure 1a (melee toon example) and Figure 1b (ranged toon example). When the toon enters any of the areas highlighted in yellow, Honorbuddy will transfer control from its 'core' logic to the Combat Routine.
"Targeting Distance" is...
TargetingDistance is the maximum distance at which Honorbuddy will consider mobs on the battlefield for purposes of pulling.
TargetingDistance is measured from the toon as shown in Figure 2. From the initial setup shown in Figure 2, Honorbuddy will arrange to target and pull one of the four mobs inside the red circle. If the toon is a melee toon, then Honorbuddy will need to close the distance to the mob. As the distance is closed to the selected mob, more mobs may be added to the target consideration list, since the red circle is always centered on the toon.
Confusion of PullDistance and TargetingDistance caused by an Honorbuddy maintenance error...
The Community frequently confuses the concepts of PullDistance with TargetingDistance.
Much of the cause for user confusion can be placed on a maintenance error Honorbuddy made in the API long ago. At one point, the. By making the setting a user configurable, a subsequent maintenance error wrongly placed it on the Honorbuddy configuration UI that allowed users to manipulate it.
When the problem was discovered and corrected, the PullDistance setting was allowed to remain in the CharacterSettings part of the API. But, the behavior for the configuration was changed from being the PullDistance needed by the Combat Routine, to being the TargetingDistance expected by the Community. For backward compatibility in profiles, the name was not changed.
The current state of affairs...
- "Pull Distance" is no longer exposed in the Honorbuddy UI as a user configurable.
- PullDistance was never meant to be a user configurable, but was exposed through a maintenance error.
- This problem has been corrected—the Community has no way to alter either PullDistance or TargetingDistance from the UI.
- In the Honorbuddy API, PullDistance is still exposed as a CharacterSetting.
- This was maintained for backward compabitility; however, the setting is now a serious misnomer. When viewing or altering CharacterSettings.PullDistance, the calling code will be modifying the underlying TargetingDistance instead of the PullDistance
- Unfortunately, this misnomer is a situation that must be endured.
- A profile writer has two ways to alter the TargetingDistance:
- <TargetingDistance Value="whatever" />
- This is the much preferred technique.
- A Value="null" will return it to the original value.
- <CustomBehavior File="UserSettings" PullDistance="whatever" />
- As previously discussed, the name PullDistance misnomer still exists here to maintain backward compatibility. The UserSettings directive is actually changing the TargetingDistance.
- A PullDistance="original" will return it to the original value.
- Combat Routine writers should provide an implementation for property.
- This value is correctly named—it is the distance at which the Combat Routine expects Honorbuddy to transfer control to have the Combat Routine dispatch the mob.
Should a Profile Writer be modifying TargetingDistance?
- Altering TargetingDistance is discouraged. But, sometimes it simply must be done—that's why the capability exists.
- In general, Honorbuddy does a very good job of altering the target list. When Honorbuddy is going to a particular location—say for a quest PickUp or TurnIn—Honorbuddy only clears the mobs in its path, not the full circle represented by the TargetingDistance. When Honorbuddy is running around looking for mobs to kill—a behavior known as "Roaming"—then all mobs within the circle defined by TargetingDistance are considered.
- If you are Roaming, and a tighter hunting ground is needed, then altering TargetingDistance is appropriate. But, if a profile writer finds himself trying to set the TargetingDistance down to 10 yards or so, then perhaps he is really looking to disable the "Pull" behavior, instead:
- <DisableBehavior Name="Pull" />
- If a profile writer does alter the TargetingDistance, don't forget to restore its default value when done:
- <TargetingDistance Value="null" />