86 for (
int l = 0;
l < 1000;
l++)
89 if (projectile.
active && projectile.
type == 602 && projectile.
ai[1] >= 0f && projectile.
ai[1] <= 1f && projectile.
owner >= 0 && projectile.
owner <= 255)
108 int width =
ent.width;
109 int height =
ent.height;
121 for (
int j = 0;
j < 2;
j++)
139 vector2 = -Vector2.UnitX * 16f;
149 vector2 = -Vector2.UnitY * 16f;
161 ent.velocity = (projectile.
ai[0] - (float)
Math.
PI / 2f).ToRotationVector2() *
num3;
163 if (
ent.velocity.Length() <
num3)
165 ent.velocity.Normalize();
166 ent.velocity *=
num3;
173 ent.velocity =
vector3 *
ent.velocity.Length();
176 ent.velocity.Y = (float)(-num) * 0.1f;
179 int lastPortalColorIndex =
num4 + ((
num4 % 2 == 0) ? 1 : (-1));
183 player.lastPortalColorIndex = lastPortalColorIndex;
195 nPC.lastPortalColorIndex = lastPortalColorIndex;
203 if (
bonusY == -1 &&
ent.velocity.Y > -3f)
205 ent.velocity.Y = -3f;
223 int num = tile.
slope();
225 for (
int i = 0; i < (flag ? 2 :
EDGES.Length); i++)
252 Point point =
new Point(position.
X - xOffset, position.
Y - yOffset);
331 int num =
Projectile.
NewProjectile(
Projectile.
InheritSource(
sourceProjectile), position.
X, position.
Y, 0f, 0f, 602, 0, 0f,
Main.
myPlayer,
angle,
form);
339 for (
int i = 0; i < 1000; i++)
353 for (
int i = 0; i < 1000; i++)
356 if (!projectile.
active || projectile.
type != 602)
397 end = position +
vector * 22f;
407 bonusX = ((num != 2) ? 1 : (-1));
413 bonusY = ((num == 0) ? 1 : (-1));
417 bonusX = ((num == -3) ? 1 : (-1));
422 bonusX = ((num == -1) ? 1 : (-1));
435 for (
int i = 0; i < 1000; i++)
438 if (!projectile.
active || (projectile.
type != 602 && projectile.
type != 601))
460 for (
int i = 0; i < 255; i++)
479 num2 = ((num != 2) ? 1 : (-1));
485 num3 = ((num == 0) ? 1 : (-1));
489 num2 = ((num == -3) ? 1 : (-1));
494 num2 = ((num == -1) ? 1 : (-1));
static float WrapAngle(float angle)
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static double Atan2(double y, double x)
static decimal Round(decimal d)
static double Abs(double value)
static int Sign(decimal value)
static Vector2[] CheckLinevLine(Vector2 a1, Vector2 a2, Vector2 b1, Vector2 b2)
static bool CheckAABBvLineCollision(Vector2 aabbPosition, Vector2 aabbDimensions, Vector2 lineStart, Vector2 lineEnd)
static Vector2 TileCollision(Vector2 Position, Vector2 Velocity, int Width, int Height, bool fallThrough=false, bool fall2=false, int gravDir=1)
static void RemoveMyOldPortal(int form)
static readonly Point[] SLOPE_OFFSETS
static bool DoesTileTypeSupportPortals(ushort tileType)
const int PORTALS_PER_PERSON
static Color GetPortalColor(int player, int portal)
static int[,] FoundPortals
static Color GetPortalColor(int colorIndex)
static int AddPortal(Projectile sourceProjectile, Vector2 position, float angle, int form, int direction)
static bool anyPortalAtAll
static bool SupportedHalfbrick(int x, int y)
static int TryPlacingPortal(Projectile theBolt, Vector2 velocity, Vector2 theCrashVelocity)
static bool CanPlacePortalOn(Tile t)
static bool SupportedSlope(int x, int y, int slope)
static void RemoveIntersectingPortals(Vector2 position, float angle)
static void UpdatePortalPoints()
static bool BlockPortals(Tile t)
static Vector2 GetPortalOutingPoint(Vector2 objectSize, Vector2 portalPosition, float portalAngle, out int bonusX, out int bonusY)
static Vector2 FindCollision(Vector2 startPosition, Vector2 stopPosition)
static readonly Vector2[] EDGES
static bool FindValidLine(Point position, int xOffset, int yOffset, out Point bestPosition)
static bool IsValidLine(Point position, int xOffset, int yOffset)
static void GetPortalEdges(Vector2 position, float angle, out Vector2 start, out Vector2 end)
static void SyncPortalSections(Vector2 portalPosition, int fluff)
static void TryGoingThroughPortals(Entity ent)
static void SyncPortalsOnPlayerJoin(int plr, int fluff, List< Point > dontInclude, out List< Point > portalSections)
static int[] PortalCooldownForNPCs
static bool SupportedTilesAreFine(Vector2 portalCenter, float portalAngle)
static bool SupportedNormal(int x, int y)
static int[] PortalCooldownForPlayers
static readonly Vector2[] SLOPE_EDGES
static bool[] BreakableWhenPlacing
static bool[] NotReallySolid
static void NewText(string newText, byte R=byte.MaxValue, byte G=byte.MaxValue, byte B=byte.MaxValue)
static Projectile[] projectile
static Microsoft.Xna.Framework.Color hslToRgb(Vector3 hslVector)
static void SendData(int msgType, int remoteClient=-1, int ignoreClient=-1, NetworkText text=null, int number=0, float number2=0f, float number3=0f, float number4=0f, int number5=0, int number6=0, int number7=0)
static RemoteClient[] Clients
static int GetSectionX(int x)
static int GetSectionY(int y)
void Teleport(Vector2 newPos, int Style=0, int extraInfo=0)
static IEntitySource InheritSource(Projectile projectile)
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 void CheckSection(int playerIndex, Vector2 position, int fluff=1)
static bool PlotLine(Point16 p0, Point16 p1, TileActionAttempt plot, bool jump=true)
static bool SolidOrSlopedTile(Tile tile)
static float Dot(Vector2 value1, Vector2 value2)