Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AimAbility()

bool Terraria.Mount.AimAbility ( Player mountedPlayer,
Vector2 mousePosition )
inline

Definition at line 4548 of file Mount.cs.

4549 {
4550 _aiming = true;
4551 switch (_type)
4552 {
4553 case 9:
4554 {
4555 int frameExtra = _frameExtra;
4556 int direction = mountedPlayer.direction;
4558 if (num3 > 90f)
4559 {
4560 mountedPlayer.direction = -1;
4561 num3 = 180f - num3;
4562 }
4563 else if (num3 < -90f)
4564 {
4565 mountedPlayer.direction = -1;
4566 num3 = -180f - num3;
4567 }
4568 else
4569 {
4570 mountedPlayer.direction = 1;
4571 }
4572 if ((mountedPlayer.direction > 0 && mountedPlayer.velocity.X < 0f) || (mountedPlayer.direction < 0 && mountedPlayer.velocity.X > 0f))
4573 {
4574 _flipDraw = true;
4575 }
4576 else
4577 {
4578 _flipDraw = false;
4579 }
4580 if (num3 >= 0f)
4581 {
4582 if ((double)num3 < 22.5)
4583 {
4584 _frameExtra = 8;
4585 }
4586 else if ((double)num3 < 67.5)
4587 {
4588 _frameExtra = 9;
4589 }
4590 else if ((double)num3 < 112.5)
4591 {
4592 _frameExtra = 10;
4593 }
4594 }
4595 else if ((double)num3 > -22.5)
4596 {
4597 _frameExtra = 8;
4598 }
4599 else if ((double)num3 > -67.5)
4600 {
4601 _frameExtra = 7;
4602 }
4603 else if ((double)num3 > -112.5)
4604 {
4605 _frameExtra = 6;
4606 }
4608 if (abilityCharge > 0f)
4609 {
4610 Vector2 vector = default(Vector2);
4611 vector.X = mountedPlayer.position.X + (float)(mountedPlayer.width / 2);
4612 vector.Y = mountedPlayer.position.Y + (float)mountedPlayer.height;
4613 int num4 = (_frameExtra - 6) * 2;
4614 Vector2 vector2 = default(Vector2);
4615 for (int i = 0; i < 2; i++)
4616 {
4617 vector2.Y = vector.Y + scutlixEyePositions[num4 + i].Y;
4618 if (mountedPlayer.direction == -1)
4619 {
4620 vector2.X = vector.X - scutlixEyePositions[num4 + i].X - (float)_data.xOffset;
4621 }
4622 else
4623 {
4624 vector2.X = vector.X + scutlixEyePositions[num4 + i].X + (float)_data.xOffset;
4625 }
4626 Lighting.AddLight((int)(vector2.X / 16f), (int)(vector2.Y / 16f), 1f * abilityCharge, 0f, 0f);
4627 }
4628 }
4629 if (_frameExtra == frameExtra)
4630 {
4631 return mountedPlayer.direction != direction;
4632 }
4633 return true;
4634 }
4635 case 46:
4636 {
4637 int frameExtra = _frameExtra;
4638 int direction = mountedPlayer.direction;
4640 if (num3 > 90f)
4641 {
4642 mountedPlayer.direction = -1;
4643 num3 = 180f - num3;
4644 }
4645 else if (num3 < -90f)
4646 {
4647 mountedPlayer.direction = -1;
4648 num3 = -180f - num3;
4649 }
4650 else
4651 {
4652 mountedPlayer.direction = 1;
4653 }
4654 if ((mountedPlayer.direction > 0 && mountedPlayer.velocity.X < 0f) || (mountedPlayer.direction < 0 && mountedPlayer.velocity.X > 0f))
4655 {
4656 _flipDraw = true;
4657 }
4658 else
4659 {
4660 _flipDraw = false;
4661 }
4663 if (abilityCharge > 0f)
4664 {
4665 Vector2 vector3 = default(Vector2);
4666 vector3.X = mountedPlayer.position.X + (float)(mountedPlayer.width / 2);
4667 vector3.Y = mountedPlayer.position.Y + (float)mountedPlayer.height;
4668 for (int j = 0; j < 2; j++)
4669 {
4670 Vector2 vector4 = new Vector2(vector3.X + (float)(mountedPlayer.width * mountedPlayer.direction), vector3.Y - 12f);
4671 Lighting.AddLight((int)(vector4.X / 16f), (int)(vector4.Y / 16f), 0.7f, 0.4f, 0.4f);
4672 }
4673 }
4674 if (_frameExtra == frameExtra)
4675 {
4676 return mountedPlayer.direction != direction;
4677 }
4678 return true;
4679 }
4680 case 8:
4681 {
4683 DrillMountData drillMountData = (DrillMountData)_mountSpecificData;
4684 float num = v.ToRotation();
4685 if (num < 0f)
4686 {
4687 num += (float)Math.PI * 2f;
4688 }
4689 drillMountData.diodeRotationTarget = num;
4690 float num2 = drillMountData.diodeRotation % ((float)Math.PI * 2f);
4691 if (num2 < 0f)
4692 {
4693 num2 += (float)Math.PI * 2f;
4694 }
4695 if (num2 < num)
4696 {
4697 if (num - num2 > (float)Math.PI)
4698 {
4699 num2 += (float)Math.PI * 2f;
4700 }
4701 }
4702 else if (num2 - num > (float)Math.PI)
4703 {
4704 num2 -= (float)Math.PI * 2f;
4705 }
4706 drillMountData.diodeRotation = num2;
4707 drillMountData.crosshairPosition = mousePosition;
4708 return true;
4709 }
4710 default:
4711 return false;
4712 }
4713 }
static float ToDegrees(float radians)
Definition MathHelper.cs:26
const double PI
Definition Math.cs:16
static Vector2[] scutlixEyePositions
Definition Mount.cs:261
bool _flipDraw
Definition Mount.cs:291
MountData _data
Definition Mount.cs:287
bool _aiming
Definition Mount.cs:323
object _mountSpecificData
Definition Mount.cs:329
int _frameExtra
Definition Mount.cs:297
Vector2 ClampToDeadZone(Player mountedPlayer, Vector2 position)
Definition Mount.cs:4509
float AbilityCharge
Definition Mount.cs:524

References Terraria.Mount._aiming, Terraria.Mount._data, Terraria.Mount._flipDraw, Terraria.Mount._frameExtra, Terraria.Mount._mountSpecificData, Terraria.Mount._type, Terraria.Mount.AbilityCharge, Terraria.Lighting.AddLight(), Terraria.Mount.ClampToDeadZone(), System.Math.PI, Terraria.Mount.scutlixEyePositions, Microsoft.Xna.Framework.MathHelper.ToDegrees(), Microsoft.Xna.Framework.Graphics.Vector2, and Terraria.Mount.MountData.xOffset.

Referenced by Terraria.Mount.UpdateEffects().