Esempio n. 1
0
 public void Init()
 {
     if (instance == false)
     {
         instance = this;
     }
     else
     {
         Destroy(gameObject);
         return;
     }
     //initial variables
     currentCharge = settings.maxCharge;
     dischargeRate = settings.dischargeRate;
     fieldViewCone = gameObject.GetComponent <FieldOfView>();
     batterySlider = UIManager.instance.batteryDisplay;
     batterySlider.InitSlider(settings.maxCharge);
     fieldViewCone.ToggleLight(true);
     chargeState = ChargeStates.StandBy;
     batterySlider.UpdateSlider(currentCharge);
     isInitialised = true;
 }
Esempio n. 2
0
    void ChangeChargeState(ChargeStates requestedState)
    {
        if (requestedState == currentState)
        {
            Debug.Log("already in state " + requestedState);
        }
        else
        {
            currentState = requestedState;

            if (requestedState == ChargeStates.none)
            {
                player.chargedDash = false;
                markedTargets.Clear();
                abilityReady = false;
                DisableAllMarkers();
                nextState = ChargeStates.first;
            }

            else if (requestedState == ChargeStates.first)
            {
                if (juiceMeter.value >= 90)
                {
                    playerAnim.SetTrigger("JuiceDash1");
                    //nikCam.gameObject.GetComponent<CameraShake>().enabled = false ;
                    //shakeIntensity = shakeIntensityFirst;
                    //shakeEnabled = true;
                    CameraFollow.juiceDashActive = true;
                    nikCam.zoomSpeedTwo          = new Vector3(zoomSpeedTwoBase.x, zoomSpeedTwoBase.y + zoomSpeedYIncrease, zoomSpeedTwoBase.z);
                    CameraFollow.ChangeCameraState(2);
                    //AudioSource source1 = gameObject.AddComponent<AudioSource>();
                    //source1.clip = chargeClips[0];
                    //source1.Play();
                    CollectEnemies();
                    if (enemiesInRange.Length != 0)
                    {
                        markedTargets.Add(enemiesInRange[0].gameObject);
                        gameObject.transform.LookAt(markedTargets[0].transform);
                        DisplayMarkerOnTarget(markedTargets[0]);
                        if (markedTargets[0].GetComponent <NavMeshAgent>() != null)
                        {
                            foreach (GameObject target in markedTargets)
                            {
                                target.gameObject.GetComponent <NavMeshAgent>().isStopped = true;
                            }
                        }
                    }
                    abilityReady      = true;
                    nextState         = ChargeStates.second;
                    juiceMeter.value -= juiceConsumedPerCharge;
                }
                else
                {
                    ChangeChargeState(ChargeStates.none);
                }
            }
            else if (requestedState == ChargeStates.second)
            {
                //AudioSource source2 = gameObject.AddComponent<AudioSource>();
                //source2.clip = chargeClips[1];
                //source2.Play();
                //shakeIntensity = shakeIntensitySecond;
                playerAnim.SetTrigger("JuiceDash2");
                nikCam.zoomSpeedOne = new Vector3(zoomSpeedOneBase.x, zoomSpeedOneBase.y + zoomSpeedYIncrease, zoomSpeedOneBase.z);
                CameraFollow.ChangeCameraState(1);
                for (int i = 1; i <= 2; i++)
                {
                    if (i <= enemiesInRange.Length - 1)
                    {
                        markedTargets.Add(enemiesInRange[i].gameObject);
                    }
                }
                foreach (GameObject target in markedTargets)
                {
                    DisplayMarkerOnTarget(target);
                    if (target.GetComponent <NavMeshAgent>() != null)
                    {
                        target.gameObject.GetComponent <NavMeshAgent>().isStopped = true;
                    }
                }
                nextState         = ChargeStates.final;
                juiceMeter.value -= juiceConsumedPerCharge;
            }
            else if (requestedState == ChargeStates.final)
            {
                //AudioSource source3 = gameObject.AddComponent<AudioSource>();
                //source3.clip = chargeClips[3];
                //source3.Play();
                //shakeIntensity = shakeIntensityFinal;
                Physics.IgnoreLayerCollision(9, 13, true);
                playerAnim.SetTrigger("JuiceDash3");
                nikCam.zoomSpeedZero = new Vector3(zoomSpeedZeroBase.x, zoomSpeedZeroBase.y + zoomSpeedYIncrease, zoomSpeedZeroBase.z);
                CameraFollow.ChangeCameraState(0);
                for (int i = 3; i <= 5; i++)
                {
                    if (i <= enemiesInRange.Length - 1)
                    {
                        markedTargets.Add(enemiesInRange[i].gameObject);
                    }
                }
                foreach (GameObject target in markedTargets)
                {
                    DisplayMarkerOnTarget(target);
                    if (target.GetComponent <NavMeshAgent>() != null)
                    {
                        target.gameObject.GetComponent <NavMeshAgent>().isStopped = true;
                    }
                }
                nextState         = ChargeStates.success;
                juiceMeter.value -= juiceConsumedPerCharge;
            }
            else if (requestedState == ChargeStates.success)
            {
                if (ScoreTracker.instance != null)
                {
                    ScoreTracker.instance.specialsUsed++;
                }

                if (markedTargets.Count != 0)
                {
                    transform.LookAt(markedTargets[0].transform);
                }
                nextState = ChargeStates.none;
                SpawnClone();
                ChangeChargeState(nextState);
            }
            else if (requestedState == ChargeStates.punish)
            {
                ChangeChargeState(ChargeStates.none);
            }
        }
    }
Esempio n. 3
0
 //Setters
 public void SetChargeState(ChargeStates newState)
 {
     chargeState = newState;
 }
 public ChargeControlResult(ChargeStates commandType) :
     base(
         (commandType == ChargeStates.Start ? CommandUrls.ChargeStart : CommandUrls.ChargeStop)
         )
 {
 }