void ToggleTargetMode(TargetCoordinateUnits units)
{
var requiresTarget = units != TargetCoordinateUnits.None;
var isSelfTarget = units == TargetCoordinateUnits.Self;
var isRadius = units == TargetCoordinateUnits.AbsoluteRadius || units == TargetCoordinateUnits.RelativeRadius;
if (characterComboBox != null)
characterComboBox.Visibility = (units == TargetCoordinateUnits.Character) ? Visibility.Visible : Visibility.Collapsed;
if (relativeTileXComboBox != null)
relativeTileXComboBox.Visibility = (units == TargetCoordinateUnits.RelativeTile || units == TargetCoordinateUnits.RelativeRadius) ? Visibility.Visible : Visibility.Collapsed;
if (relativeXUpDown != null)
relativeXUpDown.Visibility = (units == TargetCoordinateUnits.RelativeXY) ? Visibility.Visible : Visibility.Collapsed;
if (absoluteTileXUpDown != null)
absoluteTileXUpDown.Visibility = (units == TargetCoordinateUnits.AbsoluteTile || units == TargetCoordinateUnits.AbsoluteRadius) ? Visibility.Visible : Visibility.Collapsed;
if (absoluteXUpDown != null)
absoluteXUpDown.Visibility = (units == TargetCoordinateUnits.AbsoluteXY) ? Visibility.Visible : Visibility.Collapsed;
if (offsetXUpDown != null)
offsetXUpDown.Visibility = (units != TargetCoordinateUnits.None) ? Visibility.Visible : Visibility.Collapsed;
if (innerRadiusUpDown != null)
innerRadiusUpDown.Visibility = isRadius ? Visibility.Visible : Visibility.Collapsed;
if (outerRadiusUpDown != null)
outerRadiusUpDown.Visibility = isRadius ? Visibility.Visible : Visibility.Collapsed;
if (manaThresholdCheckBox != null)
{
manaThresholdCheckBox.IsEnabled = (units == TargetCoordinateUnits.Character);
if (!manaThresholdCheckBox.IsEnabled)
manaThresholdCheckBox.IsChecked = false;
}
var height = 300;
if (requiresTarget)
height += 40;
if (isRadius)
height += 90;
if (!isSelfTarget && requiresTarget)
height += 40;
this.Height = height;
}