Terraria.Mount.UseAbility C# (CSharp) Method

UseAbility() public method

public UseAbility ( Player mountedPlayer, Vector2 mousePosition, bool toggleOn ) : void
mountedPlayer Player
mousePosition Vector2
toggleOn bool
return void
        public void UseAbility(Player mountedPlayer, Vector2 mousePosition, bool toggleOn)
        {
            switch (this._type)
            {
                case 8:
                    if (Main.myPlayer == mountedPlayer.whoAmI)
                    {
                        if (!toggleOn)
                        {
                            this._abilityActive = false;
                            break;
                        }
                        if (this._abilityActive)
                            break;
                        if (mountedPlayer.whoAmI == Main.myPlayer)
                        {
                            float X = Main.screenPosition.X + (float)Main.mouseX;
                            float Y = Main.screenPosition.Y + (float)Main.mouseY;
                            float ai0 = X - mountedPlayer.position.X;
                            float ai1 = Y - mountedPlayer.position.Y;
                            Projectile.NewProjectile(X, Y, 0.0f, 0.0f, 453, 0, 0.0f, mountedPlayer.whoAmI, ai0, ai1);
                        }
                        this._abilityActive = true;
                        break;
                    }
                    this._abilityActive = toggleOn;
                    break;
                case 9:
                    if (Main.myPlayer != mountedPlayer.whoAmI)
                        break;
                    mousePosition = this.ClampToDeadZone(mountedPlayer, mousePosition);
                    Vector2 vector2_1;
                    vector2_1.X = mountedPlayer.position.X + (float)(mountedPlayer.width / 2);
                    vector2_1.Y = mountedPlayer.position.Y + (float)mountedPlayer.height;
                    int num = (this._frameExtra - 6) * 2;
                    for (int index = 0; index < 2; ++index)
                    {
                        Vector2 vector2_2;
                        vector2_2.Y = vector2_1.Y + Mount.scutlixEyePositions[num + index].Y + (float)this._data.yOffset;
                        vector2_2.X = mountedPlayer.direction != -1 ? vector2_1.X + Mount.scutlixEyePositions[num + index].X + (float)this._data.xOffset : vector2_1.X - Mount.scutlixEyePositions[num + index].X - (float)this._data.xOffset;
                        Vector2 vector2_3 = mousePosition - vector2_2;
                        vector2_3.Normalize();
                        Vector2 vector2_4 = vector2_3 * 14f;
                        int Damage = 100;
                        vector2_2 += vector2_4;
                        Projectile.NewProjectile(vector2_2.X, vector2_2.Y, vector2_4.X, vector2_4.Y, 606, Damage, 0.0f, Main.myPlayer, 0.0f, 0.0f);
                    }
                    break;
            }
        }