Exemplo n.º 1
0
 public void RequestShake(float seconds, PF_GamePlay.ShakeEffects effect)
 {
     if (this.isShaking == false)
     {
         shaker.enabled      = true;
         this.animationStart = Time.time;
         StartCoroutine(Shake(seconds, effect));
     }
     else
     {
         this.animationStart -= seconds;
     }
 }
    IEnumerator Shake(float seconds, PF_GamePlay.ShakeEffects effect = PF_GamePlay.ShakeEffects.None)
    {
        yield return(new WaitForSeconds(seconds));

        this.shaker.ResetToBeginning();             //new Vector3 (0,this.transform.position.y, this.transform.position.z);
        this.isShaking      = false;
        this.shaker.enabled = false;

        if (effect == PF_GamePlay.ShakeEffects.DecreaseHealth)
        {
            int remainingHP = LifeBar.currentValue - this.pendingValue;
            yield return(StartCoroutine(LifeBar.UpdateBar(remainingHP)));

            if (remainingHP > 0)
            {
                StartCoroutine(PF_GamePlay.Wait(1.0f, () => { GameplayController.RaiseGameplayEvent(GlobalStrings.ENEMY_TURN_END_EVENT, PF_GamePlay.GameplayEventTypes.EnemyTurnEnds); }));
            }
            else
            {
                GameplayController.RaiseGameplayEvent(GlobalStrings.OUTRO_PLAYER_DEATH_EVENT, PF_GamePlay.GameplayEventTypes.OutroEncounter);
            }
        }
        else if (effect == PF_GamePlay.ShakeEffects.IncreaseHealth)
        {
            int remainingHP = LifeBar.currentValue + this.pendingValue;
            yield return(StartCoroutine(LifeBar.UpdateBar(remainingHP)));

            StartCoroutine(PF_GamePlay.Wait(.5f, () => { GameplayController.RaiseGameplayEvent(GlobalStrings.PLAYER_TURN_END_EVENT, PF_GamePlay.GameplayEventTypes.PlayerTurnEnds); }));
        }
        else if (effect == PF_GamePlay.ShakeEffects.DecreaseMana)
        {
            StartCoroutine(ManaBar.UpdateBar(LifeBar.currentValue - this.pendingValue));
        }
        else if (effect == PF_GamePlay.ShakeEffects.IncreaseMana)
        {
            StartCoroutine(ManaBar.UpdateBar(LifeBar.currentValue + this.pendingValue));
        }

        this.pendingValue = 0;

        yield break;
    }
Exemplo n.º 3
0
    IEnumerator Shake(float seconds, PF_GamePlay.ShakeEffects effect = PF_GamePlay.ShakeEffects.None)
    {
        yield return(new WaitForSeconds(seconds));

        this.shaker.value   = new Vector3(this.shaker.from.x + (this.shaker.to.x - this.shaker.from.x) / 2, this.shaker.from.y, this.shaker.from.z);
        this.isShaking      = false;
        this.shaker.enabled = false;

        if (effect == PF_GamePlay.ShakeEffects.DecreaseHealth)
        {
            yield return(StartCoroutine(bar.UpdateBar(this.pendingValue)));

            if (this.pendingValue > 0)
            {
                StartCoroutine(PF_GamePlay.Wait(.5f, () => { GameplayController.RaiseGameplayEvent(GlobalStrings.PLAYER_TURN_END_EVENT, PF_GamePlay.GameplayEventTypes.PlayerTurnEnds); }));
            }
            else
            {
                GameplayController.RaiseGameplayEvent(GlobalStrings.OUTRO_ENEMY_DIED_EVENT, PF_GamePlay.GameplayEventTypes.OutroEncounter);
            }
        }
        else if (effect == PF_GamePlay.ShakeEffects.IncreaseHealth)
        {
            StartCoroutine(bar.UpdateBar(this.pendingValue));
        }
        else if (effect == PF_GamePlay.ShakeEffects.DecreaseMana)
        {
            StartCoroutine(bar.UpdateBar(this.pendingValue));
        }
        else if (effect == PF_GamePlay.ShakeEffects.IncreaseMana)
        {
            StartCoroutine(bar.UpdateBar(this.pendingValue));
        }

        this.pendingValue = 0;



        yield break;
    }