57149 {
57150 bool flag = false;
57152 {
57153 if (Main.projectile[i].active && Main.projectile[i].owner ==
owner && Main.projectile[i].type ==
type)
57154 {
57155 flag = true;
57156 }
57157 }
57158 if (
owner == Main.myPlayer)
57159 {
57161 if (flag)
57162 {
57163 localAI[0] += (float)Main.rand.Next(10, 31) * 0.1f;
57164 }
57165 float num =
localAI[0] / 60f;
57166 num /= (1f + Main.player[
owner].meleeSpeed) / 2f;
57169 {
57171 }
57172 }
57173 if (
type == 603 &&
owner == Main.myPlayer)
57174 {
57177 {
57182 vector2 *= (float)Main.rand.Next(10, 41) * 0.1f;
57183 if (Main.rand.Next(3) == 0)
57184 {
57186 }
57189 for (
int j = 0;
j < 200;
j++)
57190 {
57191 if (Main.npc[
j].CanBeChasedBy(
this))
57192 {
57193 float num4 = Main.npc[
j].position.X + (float)(Main.npc[
j].width / 2);
57194 float num5 = Main.npc[
j].position.Y + (float)(Main.npc[
j].height / 2);
57197 {
57204 }
57205 }
57206 }
57210 }
57211 }
57212 bool flag2 =
false;
57214 {
57216 }
57217 if (Main.player[
owner].dead)
57218 {
57220 return;
57221 }
57222 if (!
flag2 && !flag)
57223 {
57225 Main.player[
owner].SetDummyItemTime(2);
57227 {
57228 Main.player[
owner].ChangeDir(1);
57230 }
57231 else
57232 {
57233 Main.player[
owner].ChangeDir(-1);
57235 }
57236 }
57238 {
57240 }
57245 float num10 = 200f;
57249 {
57250 if (Main.rand.Next(6) == 0)
57251 {
57253 Main.dust[
num11].noGravity =
true;
57254 }
57255 }
57256 else if (
type == 553 && Main.rand.Next(2) == 0)
57257 {
57259 Main.dust[
num12].noGravity =
true;
57260 Main.dust[
num12].scale = 1.6f;
57261 }
57262 if (Main.player[
owner].yoyoString)
57263 {
57265 }
57266 num10 /= (1f + Main.player[
owner].meleeSpeed * 3f) / 4f;
57267 num8 /= (1f + Main.player[
owner].meleeSpeed * 3f) / 4f;
57270 {
57272 }
57274 if (flag)
57275 {
57277 }
57279 {
57281 {
57283 }
57284 bool flag3 =
false;
57285 bool flag4 =
false;
57288 {
57291 {
57293 }
57294 }
57295 if (
owner == Main.myPlayer)
57296 {
57297 if (!Main.player[
owner].channel || Main.player[
owner].stoned || Main.player[
owner].frozen)
57298 {
57302 }
57303 else
57304 {
57305 Vector2 vector4 = Main.ReverseGravitySupport(Main.MouseScreen) + Main.screenPosition;
57310 {
57316 }
57317 if (
ai[0] != x ||
ai[1] != y)
57318 {
57321 {
57327 }
57331 }
57332 }
57333 }
57335 {
57338 }
57340 {
57342 {
57346 {
57347 velocity.X *= 0.5f;
57348 }
57350 {
57351 velocity.Y *= 0.5f;
57352 }
57354 {
57355 velocity.X *= 0.5f;
57356 }
57358 {
57359 velocity.Y *= 0.5f;
57360 }
57361 }
57364 {
57366 }
57370 {
57374 {
57376 }
57379 }
57380 else if (flag)
57381 {
57383 {
57388 }
57389 }
57390 else
57391 {
57393 }
57395 {
57398 }
57399 }
57400 }
57401 else
57402 {
57409 {
57411 }
57412 else
57413 {
57417 }
57418 }
57420 }
static byte Min(byte val1, byte val2)
static double Abs(double value)
static float[] YoyosLifeTimeMultiplier
static float[] YoyosTopSpeed
static float[] YoyosMaximumRange
IEntitySource GetProjectileSource_FromThis()
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)