Esempio n. 1
0
        public void OnLaunch(LaunchEventArgs e)
        {
            var rigidBody = GetComponent <Rigidbody2D>();

            rigidBody.AddForce(new Vector2(e.HorizontalVelocity, e.VerticleVelocity));
            rigidBody.AddTorque(e.Torque);
        }
Esempio n. 2
0
        private void Update()
        {
            if (Manager.IsPlaying())
            {
                if (!launched)
                {
                    var powerBar = PowerBarObj.GetComponent <PowerBar>();
                    if (Input.GetMouseButton(0))
                    {
                        //Power Bar fill/deplete
                        launching = true;
                        var progress = _power < 100 ? _power : 200 - _power;
                        powerBar.SetProgress(progress);
                        _armAngle = (Mathf.Sqrt(progress / 20f + 0.2f) - Mathf.Sqrt(0.2f)) * 25;
                        Arms.transform.eulerAngles = new Vector3(0, 0, _armAngle);
                    }
                    else
                    {
                        if (launching)
                        {
                            // Launch Event
                            var args       = new LaunchEventArgs();
                            var throwLevel = Manager.ThrowStrengthLevel + 1;
                            var hvelocity  = Mathf.Max(Mathf.Sqrt(throwLevel * 2) / 2f, throwLevel / 10f) * 100;
                            var vvelocity  = Mathf.Max(Mathf.Sqrt(throwLevel * 2) / 2f, throwLevel / 10f) * 400;

                            var power = _power < 100 ? _power : 200 - _power;

                            if (power > 98)
                            {
                                power = 150;
                            }
                            if (power < 30)
                            {
                                power = 30;
                            }

                            args.HorizontalVelocity = hvelocity * (power / 100f);
                            args.VerticleVelocity   = vvelocity * (power / 100f);
                            args.Torque             = throwLevel * 5 * (new System.Random().Next(2) == 0 ? -1 : 1);

                            Manager.I.OnLaunch(args);

                            Destroy(joint);
                            launching = false;
                            launched  = true;
                            Destroy(PowerBarObj);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        public virtual void OnLaunch(LaunchEventArgs e)
        {
            _stages.Clear();

            foreach (var stageObject in StageTypes)
            {
                var stage = stageObject.GetComponent <Stage>();
                stage.Duration = 5000;
                _stages.Add(stage);
            }

            LaunchEvent(e);
        }