Ejemplo n.º 1
0
        public void OnUpdate(EventArgs args)
        {
            if (!Game.IsInGame)
            {
                return;
            }

            if (ProjSpeed < float.Epsilon && AirTimeProj < float.Epsilon)
            {
                return;
            }

            LocalPlayer.EditAimPosition = false;

            var movingDummy = EntitiesManager.GetObjectByName("ArenaWalkingDummy");

            if (movingDummy != null)
            {
                ArenaMovingDummy = movingDummy as ArenaDummy;
            }
            else
            {
                return;
            }

            if (UnityEngine.Input.GetKey(UnityEngine.KeyCode.LeftControl))
            {
                if (EntitiesManager.LocalPlayer.AbilitySystem.IsCasting)
                {
                    LocalPlayer.EditAimPosition = true;
                    if (ArenaMovingDummy != null)
                    {
                        if (ProjSpeed > float.Epsilon)
                        {
                            var predProj = TestPrediction.GetPrediction(EntitiesManager.LocalPlayer.MapObject.Position, ArenaMovingDummy, float.MaxValue, ProjSpeed);

                            if (predProj.CanHit)
                            {
                                LocalPlayer.Aim(predProj.CastPosition);
                            }
                        }
                        else if (AirTimeProj > float.Epsilon)
                        {
                            var predAir = TestPrediction.GetPrediction(EntitiesManager.LocalPlayer.MapObject.Position, ArenaMovingDummy, float.MaxValue, 0f, 0f, AirTimeProj);

                            if (predAir.CanHit)
                            {
                                LocalPlayer.Aim(predAir.CastPosition);
                            }
                        }
                    }
                }
            }
        }