public override string ToString()
 {
     return
         (StartPosition.ToString() +
          MidTangent.ToString() +
          EndPosition.ToString());
 }
Example #2
0
        public override void Check()
        {
            if (StartCast <= 0 && IsInPhase && AbilityOwner.IsVisible)
            {
                StartCast = Game.RawGameTime;
                EndCast   = StartCast + CastPoint + GetCastRange() / GetProjectileSpeed();
            }
            else if (StartCast > 0 && Obstacle == null && CanBeStopped() && !AbilityOwner.IsTurning())
            {
                var tree = ChainTreePosition(AbilityOwner.InFront(GetCastRange()));

                if (tree == null)
                {
                    return;
                }

                StartPosition   = AbilityOwner.NetworkPosition;
                EndPosition     = tree.Position;
                AdditionalDelay = EndPosition.Distance2D(StartPosition) / GetProjectileSpeed();
                EndCast         = StartCast + CastPoint + AdditionalDelay * 2;
                Obstacle        = Pathfinder.AddObstacle(StartPosition, EndPosition, GetRadius(), GetEndRadius(), Obstacle);
            }
            else if (StartCast > 0 && Game.RawGameTime > EndCast)
            {
                End();
            }
            else if (Obstacle != null && !CanBeStopped())
            {
                Pathfinder.UpdateObstacle(Obstacle.Value, GetProjectilePosition(), GetRadius(), GetEndRadius());
            }
        }
Example #3
0
        public BlobChunkVerificationResultInfo OpenForWrite(Stream baseStream,
                                                            long startPosition        = 0, long length = TypeExtensions.kNoneInt64,
                                                            Shell.EndianFormat endian = Shell.EndianFormat.Big)
        {
            Contract.Requires(IsClosed);
            Contract.Requires <ArgumentNullException>(baseStream != null);
            Contract.Requires <ArgumentException>(baseStream.CanSeek);
            Contract.Requires <ArgumentException>(baseStream.HasPermissions(FileAccess.Write));
            Contract.Requires(length.IsNoneOrPositive());
            var result = BlobChunkVerificationResultInfo.ValidResult;

            OpenUnderlyingStream(baseStream, FileAccess.Write, endian);
            OpenStartPosition(baseStream, startPosition);

            EndPosition = length.IsNotNone()
                                ? StartPosition + length
                                : length;
            mFooterPosition             = TypeExtensions.kNoneInt64;
            UnderlyingStream.StreamMode = FileAccess.Write;

            if (EndPosition.IsNotNone())
            {
                OpenVerifyAssumedStreamSize(ref result);
            }

            return(result);
        }
Example #4
0
        public void OnlyOneEndPositionTest()
        {
            EndPosition endPosition    = EndPosition.Instance("final", 1, 2);
            EndPosition endPositionTwo = EndPosition.Instance("OTHER", 5, 6);

            Assert.AreEqual(endPosition, endPositionTwo);
        }
Example #5
0
        public override void Check()
        {
            if (StartCast > 0 && Obstacle != null && Game.RawGameTime > EndCast)
            {
                End();
            }
            else if (Obstacle == null && IsAbilityUnitValid() && abilityUnit.IsVisible)
            {
                var unitPosition = abilityUnit.Position;
                if (unitPosition == StartPosition)
                {
                    return;
                }

                EndPosition = StartPosition.Extend(abilityUnit.Position, GetCastRange());

                if (Math.Abs(EndPosition.Distance2D(StartPosition) - GetCastRange()) > 50)
                {
                    return;
                }

                Obstacle = Pathfinder.AddObstacle(StartPosition, EndPosition, GetRadius(), Obstacle);
            }
            else if (Obstacle != null)
            {
                Pathfinder.UpdateObstacle(Obstacle.Value, GetProjectilePosition(), GetRadius());
            }
        }
        public void DrawEditor(Object3DControlsLayer object3DControlLayer, List <Object3DView> transparentMeshes, DrawEventArgs e)
        {
            var start = PositionsHaveBeenSet ? StartPosition : StartPosition.Transform(Matrix);
            var end   = PositionsHaveBeenSet ? EndPosition : EndPosition.Transform(Matrix);

            object3DControlLayer.World.Render3DLine(start, end, Color.Black, true, width: GuiWidget.DeviceScale);
        }
Example #7
0
        /// <summary>
        ///     Returns the missile position after time time.
        /// </summary>
        public Vector2 GlobalGetMissilePosition(int time)
        {
            var t = Math.Max(0, System.Environment.TickCount + time - StartTick - SkillshotData.Delay);

            t = (int)Math.Max(0, Math.Min(EndPosition.Distance(StartPosition), t * SkillshotData.MissileSpeed / 1000));
            return(StartPosition + Direction * t);
        }
        public static void ExecuteR(Gapcloser.GapcloserArgs args)
        {
            if (!GapCloserMenu.RBool.Enabled)
            {
                return;
            }

            if (!GapCloserMenu.RGapcloser.IsEnabled(args.SpellName))
            {
                return;
            }

            if (args.EndPosition.DistanceToPlayer() > args.StartPosition.DistanceToPlayer())
            {
                return;
            }

            switch (args.Type)
            {
            case SpellType.Targeted when args.Target.IsMe():
            case SpellType.Dash when args.EndPosition.DistanceToPlayer() <= LocalPlayer.Instance.GetAutoAttackRange():
                R.Cast(args.Sender);

                break;
            }
        }
Example #9
0
 public bool Equals(SourceCodeMapping other)
 {
     return(other != null &&
            ReferenceEquals(Mapping, other.Mapping) &&
            ILRange.Equals(other.ILRange) &&
            StartPosition.Equals(other.StartPosition) &&
            EndPosition.Equals(other.EndPosition));
 }
Example #10
0
        public void FinalPositionOfRoadTest()
        {
            EndPosition actual = roadOne.Final;

            Assert.AreEqual("Final del Camino", actual.Name);
            Assert.AreEqual(2, actual.Capacity);
            Assert.AreEqual(5, actual.Position);
        }
Example #11
0
 public override void MakeSchemaCompliant()
 {
     base.MakeSchemaCompliant();
     BeginPosition.MakeSchemaCompliant();
     Begin.MakeSchemaCompliant();
     EndPosition.MakeSchemaCompliant();
     End.MakeSchemaCompliant();
     TimeInterval.MakeSchemaCompliant();
 }
 public override int GetHashCode()
 {
     unchecked {
         var hashCode = StartPosition.GetHashCode();
         hashCode = (hashCode * 397) ^ EndPosition.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)MoveType;
         return(hashCode);
     }
 }
        private TimeSpan ConvertValueToPosition(double value)
        {
            double totalSeconds       = EndPosition.Subtract(StartPosition).TotalSeconds;
            double timelineProportion = Minimum != Maximum
                                            ? value / (Maximum - Minimum)
                                            : 0;
            double relativeSeconds = totalSeconds * timelineProportion;

            return(StartPosition.Add(TimeSpan.FromSeconds(relativeSeconds)));
        }
Example #14
0
        /// <summary>
        /// Serves as a hash function for a <see cref="Bio.Variant.Variant"/> object.
        /// </summary>
        /// <returns>A hash code for this instance that is suitable for use in hashing algorithms and data structures such as a
        /// hash table.</returns>
        public override int GetHashCode()
        {
            //TODO: This is a little unsafe as these fields are mutable...
            var h1 = RefName != null?RefName.GetHashCode() : 0;

            var h2 = StartPosition.GetHashCode();
            var h3 = EndPosition.GetHashCode();

            return(h1 ^ h2 ^ h3);
        }
Example #15
0
    private void MoveEntityTowards(Vector3 endPosition)
    {
        this.transform.rotation = Quaternion.LookRotation(endPosition - this.transform.position);
        this.transform.rotation = Quaternion.Euler(0, this.transform.rotation.eulerAngles.y, 0);

        if (Vector2.Distance(EndPosition.XZ(), this.transform.position.XZ()) > 0.3f && endPosition.sqrMagnitude > 1f)
        {
            this.transform.position += transform.forward * Time.deltaTime * MovementSpeed;
        }
    }
Example #16
0
        public override void Move(int x, int y)
        {
            StartPosition = StartPosition.Add(x, y);
            EndPosition   = EndPosition.Add(x, y);

            for (int i = 0; i < CenterPointCount; i++)
            {
                CenterPoints[i] = CenterPoints[i].Add(x, y);
            }
        }
Example #17
0
 public override void Resize(int x, int y, bool fromBottomRight)
 {
     if (fromBottomRight)
     {
         EndPosition = EndPosition.Add(x, y);
     }
     else
     {
         StartPosition = StartPosition.Add(x, y);
     }
 }
Example #18
0
 /// <summary>
 /// GetHashCode()
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode() =>
 (ShowOffsetColumn ? int.MinValue : 0) ^
 (ShowValuesColumn ? 0x40000000 : 0) ^
 (ShowAsciiColumn ? 0x20000000 : 0) ^
 StartPosition.GetHashCode() ^
 EndPosition.GetHashCode() ^
 BasePosition.GetHashCode() ^
 (UseRelativePositions ? 0x10000000 : 0) ^
 OffsetBitSize ^
 (int)HexValuesDisplayFormat ^
 BytesPerLine;
Example #19
0
        public void DrawEditor(Object3DControlsLayer object3DControlLayer, List <Object3DView> transparentMeshes, DrawEventArgs e)
        {
            var start = PositionsHaveBeenSet ? StartPosition : StartPosition.Transform(Matrix);
            var end   = PositionsHaveBeenSet ? EndPosition : EndPosition.Transform(Matrix);

            // draw on top of anything that is already drawn
            object3DControlLayer.World.Render3DLine(start, end, Color.Black.WithAlpha(Constants.LineAlpha), false, width: GuiWidget.DeviceScale);

            // Restore DepthTest
            object3DControlLayer.World.Render3DLine(start, end, Color.Black, true, width: GuiWidget.DeviceScale);
        }
        private double ConvertPositionToValue(TimeSpan position)
        {
            TimeSpan relativePosition   = position.Subtract(StartPosition);
            double   totalSeconds       = EndPosition.Subtract(StartPosition).TotalSeconds;
            double   timelineProportion = totalSeconds != 0
                                            ? relativePosition.TotalSeconds / totalSeconds
                                            : 0;
            double relativeValue = (Maximum - Minimum) * timelineProportion;

            return(Minimum + relativeValue);
        }
Example #21
0
        public override bool Equals(object obj)
        {
            if (!(obj is Move))
            {
                return(false);
            }

            var move = obj as Move;

            return(StartPosition.Equals(move.StartPosition) && EndPosition.Equals(move.EndPosition));
        }
Example #22
0
        public void TwoRoadsWithSameEndPosition()
        {
            roadTwo.AddExperience(mountain);
            roadTwo.AddExperience(ocean);
            roadTwo.AddExperience(farm);
            roadTwo.FinalPositionOfRoad();

            EndPosition actual    = roadOne.Final;
            EndPosition actualTwo = roadTwo.Final;

            Assert.AreEqual(actual, actualTwo);
        }
Example #23
0
 public virtual bool Equals(ChessMove other)
 {
     if (MoveType != ChessMoveType.PawnPromote)
     {
         return(other != null && StartPosition.Equals(other.StartPosition) &&
                EndPosition.Equals(other.EndPosition));
     }
     else
     {
         return(other != null && StartPosition.Equals(other.StartPosition) &&
                EndPosition.Equals(other.EndPosition) && PromotionPiece.Equals(other.PromotionPiece));
     }
 }
Example #24
0
        public void AddObject3DControls(Object3DControlsLayer object3DControlsLayer)
        {
            if (editorControls == null)
            {
                editorControls = new List <IObject3DControl>
                {
                    new TracedPositionObject3DControl(object3DControlsLayer,
                                                      this,
                                                      () =>
                    {
                        return(PositionsHaveBeenSet ? StartPosition : StartPosition.Transform(Matrix));
                    },
                                                      (position) =>
                    {
                        if (!PositionsHaveBeenSet)
                        {
                            PositionsHaveBeenSet = true;
                            EndPosition          = EndPosition.Transform(this.Matrix);
                        }

                        StartPosition = position;
                        Distance      = (StartPosition - EndPosition).Length;
                        UiThread.RunOnIdle(() => Invalidate(InvalidateType.DisplayValues));
                    }),
                    new TracedPositionObject3DControl(object3DControlsLayer,
                                                      this,
                                                      () =>
                    {
                        return(PositionsHaveBeenSet ? EndPosition : EndPosition.Transform(Matrix));
                    },
                                                      (position) =>
                    {
                        if (!PositionsHaveBeenSet)
                        {
                            PositionsHaveBeenSet = true;
                            StartPosition        = StartPosition.Transform(this.Matrix);
                        }

                        EndPosition = position;
                        Distance    = (StartPosition - EndPosition).Length;
                        UiThread.RunOnIdle(() => Invalidate(InvalidateType.DisplayValues));
                    }),
                };
            }

            object3DControlsLayer.Object3DControls.Modify((list) =>
            {
                list.AddRange(editorControls);
            });
        }
Example #25
0
        private static void ExecuteW(GapcloserArgs args)
        {
            if (!WBool.Enabled)
            {
                return;
            }

            switch (args.Type)
            {
            case SpellType.Targeted when args.Target.IsMe():
            case SpellType.Dash when args.EndPosition.DistanceToPlayer() < W.Range:
                W.Cast(args.Sender);

                break;
            }
        }
Example #26
0
        public virtual void OnUpdate()
        {
            if (Manager.IsCreating)
            {
                Point pos = InputManager.ClientMousePosition;

                if (Manager.IsCornerMoving && !Manager.IsPanning)
                {
                    StartPosition = StartPosition.Add(InputManager.MouseVelocity);
                }

                if (Manager.IsProportionalResizing || ForceProportionalResizing)
                {
                    float degree, startDegree;

                    if (ShapeType == ShapeType.DrawingLine || ShapeType == ShapeType.DrawingArrow)
                    {
                        degree      = 45;
                        startDegree = 0;
                    }
                    else
                    {
                        degree      = 90;
                        startDegree = 45;
                    }

                    pos = CaptureHelpers.SnapPositionToDegree(StartPosition, pos, degree, startDegree);
                }
                else if (Manager.IsSnapResizing)
                {
                    pos = Manager.SnapPosition(StartPosition, pos);
                }

                EndPosition = pos;
            }
            else if (Manager.IsMoving && !Manager.IsPanning)
            {
                Move(InputManager.MouseVelocity);
            }

            if (LimitRectangleToInsideCanvas)
            {
                StartPosition = StartPosition.Restrict(Manager.Form.CanvasRectangle);
                EndPosition   = EndPosition.Restrict(Manager.Form.CanvasRectangle);
            }
        }
 /// <summary>
 /// GetHashCode()
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode() =>
 CharsPerLine.GetHashCode() ^
 BytesPerLine.GetHashCode() ^
 GroupSizeInBytes.GetHashCode() ^
 ShowOffset.GetHashCode() ^
 OffsetLowerCaseHex.GetHashCode() ^
 (int)OffsetFormat ^
 StartPosition.GetHashCode() ^
 EndPosition.GetHashCode() ^
 BasePosition.GetHashCode() ^
 UseRelativePositions.GetHashCode() ^
 ShowValues.GetHashCode() ^
 ValuesLowerCaseHex.GetHashCode() ^
 OffsetBitSize.GetHashCode() ^
 (int)ValuesFormat ^
 ShowAscii.GetHashCode() ^
 GetHexColumnTypeArrayHashCode(ColumnOrder);
        public override void StartKinetic(VisualPayload payload, Func <float, float> translateTime)
        {
            var startVector           = StartPosition.GetFirstValue(payload.Data);
            var endVector             = EndPosition.GetFirstValue(payload.Data);
            var startTime             = TransitionTime.GetFirstValue(payload.Data);
            var transitionTimeInverse = 1f / (TransitionDuration.GetFirstValue(payload.Data));

            var bound = payload.VisualData.Bound.CreateDependingBound("Lerp Position");

            bound.transform.parent = payload.VisualData.Bound.transform.parent;

            payload.VisualData.Bound.transform.parent = bound.transform;

            var movementSatellite =
                bound.gameObject.AddComponent <BoundMovementSatellite>();

            var newPayload = new VisualPayload(payload.Data, new VisualDescription(bound));

            movementSatellite.MovementFunc = (trans) =>
            {
                float proportion = (Time.time - startTime) * transitionTimeInverse;

                if (proportion >= 1f)
                {
                    trans.position = endVector;

                    movementSatellite.Cleanup();
                    return;
                }

                proportion = translateTime(proportion);

                trans.position = Vector3.Lerp(startVector, endVector, proportion);
            };

            movementSatellite.CleanupFunc = (trans) =>
            {
                JobManager.Instance.StartJob(
                    Finished.Transmit(newPayload), jobName: "Kinetic Finished", startImmediately: true, maxExecutionsPerFrame: 1);
            };


            // execute first step immediately to set initial position
            movementSatellite.MovementFunc(movementSatellite.transform);
        }
Example #29
0
 // TODO: You must write this method.
 public virtual bool Equals(ChessMove other)
 {
     // Most chess moves are equal to each other if they have the same start and end position.
     // PawnPromote moves must also be promoting to the same piece type.
     if (MoveType == ChessMoveType.PawnPromote || other.MoveType == ChessMoveType.PawnPromote)
     {
         return(StartPosition.Equals(other.StartPosition) &&
                EndPosition.Equals(other.EndPosition) &&
                //MoveType.Equals(other.MoveType) &&
                PromoteTo.Equals(other.PromoteTo));
     }
     else
     {
         return(StartPosition.Equals(other.StartPosition) &&
                EndPosition.Equals(other.EndPosition));  //&&
                                                         //MoveType.Equals(other.MoveType));
     }
 }
Example #30
0
        public override void Check()
        {
            var time  = Game.RawGameTime;
            var phase = IsInPhase && AbilityOwner.IsVisible;

            if (phase && StartCast + CastPoint <= time && time > EndCast)
            {
                StartCast = time;
                EndCast   = StartCast + CastPoint + GetCastRange() / GetProjectileSpeed();
            }
            else if ((phase && Obstacle == null && !AbilityOwner.IsTurning()) || (fowCast && Obstacle == null))
            {
                if (fowCast && (!IsValidArrow() || !arrow.IsVisible))
                {
                    return;
                }

                if (fowCast)
                {
                    EndPosition = StartPosition.Extend(arrow.Position.SetZ(AbilityOwner.Position.Z), GetCastRange());

                    if (EndPosition.Distance2D(StartPosition) < 10)
                    {
                        return;
                    }
                }
                else
                {
                    StartPosition = AbilityOwner.NetworkPosition;
                    EndPosition   = AbilityOwner.InFront(GetCastRange() + GetRadius() / 2);
                }

                Obstacle = Pathfinder.AddObstacle(StartPosition, EndPosition, GetRadius(), Obstacle);
            }
            else if ((StartCast > 0 && time > EndCast) || (fowCast && !IsValidArrow()))
            {
                End();
            }
            else if (Obstacle != null && !phase)
            {
                Pathfinder.UpdateObstacle(Obstacle.Value, GetProjectilePosition(fowCast), GetRadius());
            }
        }