private IEnumerator Tick()
        {
            while (true)
            {
                var tankEntityViews = entityViewsDB.QueryEntityViews <TankEntityView>();
                if (tankEntityViews.Count > 0)
                {
                    for (int i = 0; i < tankEntityViews.Count; i++)
                    {
                        ITankInputComponent tankInput = tankEntityViews[i].TankInputComponent;
                        int tankNumber = 1;
                        tankNumber += i;
                        float horizontalAxis = Input.GetAxis("Horizontal" + tankNumber);
                        float verticalAxis   = Input.GetAxis("Vertical" + tankNumber);

                        tankInput.Input = new Vector3(horizontalAxis, 0f, verticalAxis);

                        string fireButtonName = "Fire" + tankNumber;
                        tankInput.GetFireButton     = Input.GetButton(fireButtonName);
                        tankInput.GetFireButtonDown = Input.GetButtonDown(fireButtonName);
                        tankInput.GetFireButtonUp   = Input.GetButtonUp(fireButtonName);
                    }
                }

                yield return(null);
            }
        }
Esempio n. 2
0
        private void Charge(ITankInputComponent input, ITransformComponent transform, ILaunchForceComponent launchForce, ITime time)
        {
            float chargeSpeed = (launchForce.MaxLaunchForce - launchForce.MinLaunchForce) / launchForce.MaxChargeTime;

            if (launchForce.CurrentLaunchForce >= launchForce.MaxLaunchForce && !input.Fired)
            {
                launchForce.CurrentLaunchForce = launchForce.MaxLaunchForce;
                Fire(transform, launchForce.CurrentLaunchForce);
                input.Fired = true;
                launchForce.CurrentLaunchForce = launchForce.MinLaunchForce;
            }
            else if (input.GetFireButtonDown)
            {
                input.Fired = false;
                launchForce.CurrentLaunchForce = launchForce.MinLaunchForce;
            }
            else if (input.GetFireButton && !input.Fired)
            {
                launchForce.CurrentLaunchForce += chargeSpeed * time.DeltaTime;
            }
            else if (input.GetFireButtonUp && !input.Fired)
            {
                Fire(transform, launchForce.CurrentLaunchForce);
                input.Fired = true;
                launchForce.CurrentLaunchForce = launchForce.MinLaunchForce;
            }
        }
Esempio n. 3
0
 private void Charge(ILaunchForceComponent launchForce, ITankInputComponent tankInput, IAimSliderComponent aimSlider)
 {
     aimSlider.AimSliderValue = launchForce.MinLaunchForce;
     if (tankInput.GetFireButton && !tankInput.Fired)
     {
         aimSlider.AimSliderValue = launchForce.CurrentLaunchForce;
     }
 }
        private IEnumerator Tick()
        {
            while (true)
            {
                var tankMovementSoundEntityViews = entityViewsDB.QueryEntityViews <TankMovementSoundEntityView>();

                if (tankMovementSoundEntityViews.Count > 0)
                {
                    for (int i = 0; i < tankMovementSoundEntityViews.Count; i++)
                    {
                        IAudioSourceComponent        audioSourceComponent = tankMovementSoundEntityViews[i].AudioSourceComponent;
                        ITankMovementSoundsComponent soundComponent       = tankMovementSoundEntityViews[i].TankMovementSoundsComponent;
                        ITankInputComponent          inputComponent       = tankMovementSoundEntityViews[i].TankInputComponent;
                        if (Mathf.Abs(inputComponent.Input.z) < 0.1f && Mathf.Abs(inputComponent.Input.x) < 0.1f)
                        {
                            if (audioSourceComponent.Clip == soundComponent.EngineDrivingAudioClip)
                            {
                                audioSourceComponent.Clip  = soundComponent.IdleAudioClip;
                                audioSourceComponent.Pitch = Random.Range(1 - 0.1f, 1 + 0.1f);
                                audioSourceComponent.Play();
                            }
                        }
                        else
                        {
                            if (audioSourceComponent.Clip == soundComponent.IdleAudioClip)
                            {
                                // ... change the clip to driving and play.
                                audioSourceComponent.Clip  = soundComponent.EngineDrivingAudioClip;
                                audioSourceComponent.Pitch = Random.Range(1 - 0.1f, 1 + 0.1f);
                                audioSourceComponent.Play();
                            }
                        }
                    }
                }

                yield return(null);
            }
        }