35798    {
35800        if (!player.active || player.dead || player.noItems || player.CCed || 
Vector2.
Distance(
base.Center, player.Center) > 900f)
 
35801        {
35803            return;
35804        }
35805        if (Main.myPlayer == 
owner && Main.mapFullscreen)
 
35806        {
35808            return;
35809        }
35811        {
35814        }
35817        bool flag = true;
35818        bool flag2 = 
false;
 
35819        int num = 10;
35832        int num14 = num + 5;
 
35834        {
35835        case 947:
35836        case 948:
35837            num = 13;
35841            break;
35842        case 25:
35843            num = 15;
35847            break;
35848        case 154:
35849            num = 15;
35853            break;
35854        case 26:
35855            num = 15;
35859            break;
35860        case 35:
35861            num = 15;
35865            break;
35866        case 63:
35867            num = 13;
35872            break;
35873        case 757:
35874            num = 13;
35879            break;
35880        case 247:
35881            num = 13;
35884            break;
35885        }
35886        float meleeSpeed = player.meleeSpeed;
35887        float num15 = 1f / meleeSpeed;
 
35898        switch ((
int)
ai[0])
 
35899        {
35900        case 0:
35901        {
35903            if (
owner == Main.myPlayer)
 
35904            {
35908                player.ChangeDir((
vector3.X > 0f) ? 1 : (-1));
 
35909                if (!player.channel)
35910                {
35918                    break;
35919                }
35920            }
35923            vector4.Y *= 0.8f;
35924            if (
vector4.Y * player.gravDir > 0f)
 
35925            {
35926                vector4.Y *= 0.5f;
35927            }
35931            break;
35932        }
35933        case 1:
35934        {
35936            bool flag3 = 
ai[1]++ >= (float)num;
 
35938            if (player.controlUseItem)
35939            {
35944                if (Main.myPlayer == 
owner && 
type == 757)
 
35945                {
35947                }
35948                break;
35949            }
35951            {
35956                if (Main.myPlayer == 
owner && 
type == 757)
 
35957                {
35959                }
35960            }
35961            player.ChangeDir((player.Center.X < 
base.Center.X) ? 1 : (-1));
 
35963            break;
35964        }
35965        case 2:
35966        {
35969            {
35971                return;
35972            }
35973            if (player.controlUseItem)
35974            {
35979            }
35980            else
35981            {
35984                player.ChangeDir((player.Center.X < 
base.Center.X) ? 1 : (-1));
 
35985            }
35986            break;
35987        }
35988        case 3:
35989        {
35990            if (!player.controlUseItem)
35991            {
35995                break;
35996            }
36001            {
36005            }
36007            {
36009                {
36012                }
36015            }
36016            else
36017            {
36019                {
36020                    velocity.X *= 0.96f;
36021                    velocity.Y += 0.2f;
36022                }
36023                if (player.velocity.X == 0f)
36024                {
36025                    velocity.X *= 0.96f;
36026                }
36027            }
36028            player.ChangeDir((player.Center.X < 
base.Center.X) ? 1 : (-1));
 
36029            break;
36030        }
36031        case 4:
36032        {
36036            {
36038                return;
36039            }
36045            {
36047                return;
36048            }
36049            player.ChangeDir((player.Center.X < 
base.Center.X) ? 1 : (-1));
 
36050            break;
36051        }
36052        case 5:
36054            {
36058            }
36059            else
36060            {
36062                velocity.Y += 0.6f;
36063                velocity.X *= 0.95f;
36064                player.ChangeDir((player.Center.X < 
base.Center.X) ? 1 : (-1));
 
36065            }
36066            break;
36067        case 6:
36069            {
36073                break;
36074            }
36076            {
36077                velocity.Y += 0.8f;
36078            }
36079            velocity.X *= 0.95f;
36080            player.ChangeDir((player.Center.X < 
base.Center.X) ? 1 : (-1));
 
36081            break;
36082        }
36085        {
36086            flag = false;
36090            {
36091                rotation += (float)
Math.
PI * 2f / 15f * (
float)player.direction;
 
36092            }
36093            float num21 = 600f;
 
36095            if (
owner == Main.myPlayer)
 
36096            {
36099                {
36101                    for (
int i = 0; 
i < 200; 
i++)
 
36102                    {
36104                        if (
nPC2.CanBeChasedBy(
this))
 
36105                        {
36108                            {
36111                            }
36112                        }
36113                    }
36114                }
36116                {
36122                }
36123            }
36124        }
36125        direction = ((velocity.X > 0f) ? 1 : (-1));
 
36128        if (flag)
36129        {
36131            {
36133            }
36134            else
36135            {
36137            }
36138        }
36140        player.heldProj = 
whoAmI;
 
36141        player.SetDummyItemTime(2);
36144        {
36145            player.itemRotation += (float)
Math.
PI;
 
36146        }
36149    }
static float WrapAngle(float angle)
 
static double Abs(double value)
 
Vector2 DirectionFrom(Vector2 Source)
 
float Distance(Vector2 Other)
 
Vector2 DirectionTo(Vector2 Destination)
 
IEntitySource GetProjectileSource_FromThis()
 
void ResetLocalNPCHitImmunity()
 
void AI_015_Flails_Dust(bool doFastThrowDust)
 
static int NewProjectile(IEntitySource spawnSource, Vector2 position, Vector2 velocity, int Type, int Damage, float KnockBack, int Owner=-1, float ai0=0f, float ai1=0f, float ai2=0f)
 
static float Dot(Vector2 value1, Vector2 value2)
 
static float Distance(Vector2 value1, Vector2 value2)