public bool AimAbility(Player mountedPlayer, Vector2 mousePosition)
{
this._aiming = true;
switch (this._type)
{
case 8:
Vector2 v = this.ClampToDeadZone(mountedPlayer, mousePosition) - mountedPlayer.Center;
Mount.DrillMountData drillMountData = (Mount.DrillMountData)this._mountSpecificData;
float num1 = Utils.ToRotation(v);
if ((double)num1 < 0.0)
num1 += 6.283185f;
drillMountData.diodeRotationTarget = num1;
float num2 = drillMountData.diodeRotation % 6.283185f;
if ((double)num2 < 0.0)
num2 += 6.283185f;
if ((double)num2 < (double)num1)
{
if ((double)num1 - (double)num2 > 3.14159274101257)
num2 += 6.283185f;
}
else if ((double)num2 - (double)num1 > 3.14159274101257)
num2 -= 6.283185f;
drillMountData.diodeRotation = num2;
drillMountData.crosshairPosition = mousePosition;
return true;
case 9:
int num3 = this._frameExtra;
int num4 = mountedPlayer.direction;
float num5 = MathHelper.ToDegrees(Utils.ToRotation(this.ClampToDeadZone(mountedPlayer, mousePosition) - mountedPlayer.Center));
if ((double)num5 > 90.0)
{
mountedPlayer.direction = -1;
num5 = 180f - num5;
}
else if ((double)num5 < -90.0)
{
mountedPlayer.direction = -1;
num5 = -180f - num5;
}
else
mountedPlayer.direction = 1;
this._flipDraw = mountedPlayer.direction > 0 && (double)mountedPlayer.velocity.X < 0.0 || mountedPlayer.direction < 0 && (double)mountedPlayer.velocity.X > 0.0;
if ((double)num5 >= 0.0)
{
if ((double)num5 < 22.5)
this._frameExtra = 8;
else if ((double)num5 < 67.5)
this._frameExtra = 9;
else if ((double)num5 < 112.5)
this._frameExtra = 10;
}
else if ((double)num5 > -22.5)
this._frameExtra = 8;
else if ((double)num5 > -67.5)
this._frameExtra = 7;
else if ((double)num5 > -112.5)
this._frameExtra = 6;
float abilityCharge = this.AbilityCharge;
if ((double)abilityCharge > 0.0)
{
Vector2 vector2_1;
vector2_1.X = mountedPlayer.position.X + (float)(mountedPlayer.width / 2);
vector2_1.Y = mountedPlayer.position.Y + (float)mountedPlayer.height;
int num6 = (this._frameExtra - 6) * 2;
for (int index = 0; index < 2; ++index)
{
Vector2 vector2_2;
vector2_2.Y = vector2_1.Y + Mount.scutlixEyePositions[num6 + index].Y;
vector2_2.X = mountedPlayer.direction != -1 ? vector2_1.X + Mount.scutlixEyePositions[num6 + index].X + (float)this._data.xOffset : vector2_1.X - Mount.scutlixEyePositions[num6 + index].X - (float)this._data.xOffset;
Lighting.AddLight((int)((double)vector2_2.X / 16.0), (int)((double)vector2_2.Y / 16.0), 1f * abilityCharge, 0.0f, 0.0f);
}
}
if (this._frameExtra == num3)
return mountedPlayer.direction != num4;
return true;
default:
return false;
}
}