Beispiel #1
0
    public RythmMove DecideEnemyMove()
    {
        updateCooldowns();

        for (int i = 0; i < _enemyBehaviourParameters.Count; i++)
        {
            if (_enemyBehaviourParameters[i].currentCooldown > 0)
            {
                continue;
            }

            if (CheckIfShouldUseMove(_enemyBehaviourParameters[i]))
            {
                if (_enemyBehaviourParameters[i].onlyUseOnce)
                {
                    _enemyBehaviourParameters.RemoveAt(i);
                }
                else
                {
                    _enemyBehaviourParameters[i].currentCooldown = _enemyBehaviourParameters[i].cooldown + 1;
                }

                moveToPerform = _enemyBehaviourParameters[i].moveToPerform;

                return(moveToPerform);
            }
        }

        return(moveToPerform);
    }
    public override void Show()
    {
        base.Show();

        victoryObject.SetActive(BattleController.Instance.battleWinnerPlayer);
        defeatObject.SetActive(!BattleController.Instance.battleWinnerPlayer);

        if (BattleController.Instance.battleWinnerPlayer)
        {
            Inventory inventory = Inventory.Instance;
            _moneyReward.text = BattleDataHolder.Instance.CurrentBattleData.RewardMoney.ToString();
            inventory.Gold   += BattleDataHolder.Instance.CurrentBattleData.RewardMoney;
            if (BattleDataHolder.Instance.CurrentBattleData.RewardMove == null)
            {
                _moveReward.text = "Nothing";
            }
            else
            {
                RythmMove newMove = BattleDataHolder.Instance.CurrentBattleData.RewardMove;
                if (!inventory.PlayerData.ObtainedMoves.Contains(newMove))
                {
                    inventory.PlayerData.ObtainedMovesMovesID.Add(EquipmentManager.Instance.ListOfAllRythms.IndexOf(newMove));
                    inventory.PlayerData.ObtainedMoves.Add(newMove);
                }
                _moveReward.text = newMove.moveName;
            }

            if (BattleDataHolder.Instance.IsChampionBattle)
            {
                inventory.ChampionVictories += 1;
            }
        }
    }
Beispiel #3
0
    public void PlayTrainingMove(RythmMove move)
    {
        RythmToPlay      = move;
        CurrentMoveCount = 0;
        CurrentMoveRight = 0;
        _speedModifier   = 1.0f;

        StartCoroutine(PlayTrainingRythm(move));
    }
Beispiel #4
0
    public void InitializeMyButton(RythmMove newMove)
    {
        myMove           = newMove;
        myNameText.text  = myMove.moveName;
        myStatsText.text = myMove.baseDamage + " / " + myMove.performanceDamage + " / " + myMove.extraDamage + " / " +
                           myMove.effect.ToString();

        ChangeStepsPanelStatus();
        StepsPanel.Instance.ButtonsList.Add(this.gameObject);
    }
Beispiel #5
0
 public void ChangeTooltipText(RythmMove move)
 {
     tooltipsTextTitle.text = move.name;
     tooltipsTextDmg1.text  = move.baseDamage.ToString("F0");
     tooltipsTextDmg2.text  = move.performanceDamage.ToString("F0");
     tooltipsTextDmg3.text  = move.extraDamage.ToString("F0");
     tooltipsTextEffectDefault.gameObject.SetActive(true);
     staticBaseText.SetActive(true);
     staticPerfectText.SetActive(true);
     staticPerformanceText.SetActive(true);
     tooltipsTextEffect.text = ConvertMoveEffectToString(move.effect);
 }
Beispiel #6
0
    public IEnumerator PlayTrainingRythm(RythmMove move)
    {
        int currentIndex = 0;

        while (currentIndex < RythmToPlay.rythmData.Length)
        {
            CreateKey(currentIndex);
            yield return(new WaitForSeconds(RythmToPlay.rythmData[currentIndex].WaitTimeToNextNote * (2 - _speedModifier)));

            currentIndex++;
        }
    }
Beispiel #7
0
    public void SetBattleStage(EBattleStage nextStage, RythmMove move = null)
    {
        _currentBattleStage = nextStage;
        if (move != null)
        {
            currentMove = move;
        }
        switch (_currentBattleStage)
        {
        case EBattleStage.Intro:
            SetCharacterValues();
            pauseController.CanPause = false;
            OnIntro?.Invoke();
            break;

        case EBattleStage.PlayerTurn:
            SetEnemyAnimation(enemy.IdleAnimation);
            pauseController.CanPause = true;
            OnPlayerTurn?.Invoke();
            break;

        case EBattleStage.PlayerMove:
            _lastToMoveIsPlayer = true;
            OnPlayerMove?.Invoke();
            break;

        case EBattleStage.EnemyTurn:
            SetPlayerAnimation(player.IdleAnimation);
            pauseController.CanPause = true;
            OnEnemyTurn?.Invoke();
            StartCoroutine(WaitToEnemyMove());
            break;

        case EBattleStage.EnemyMove:
            _lastToMoveIsPlayer = false;
            OnEnemyMove?.Invoke();
            break;

        case EBattleStage.DamageStep:
            OnDamage?.Invoke();
            StartCoroutine(DelayedDamage());
            break;

        case EBattleStage.Conclusion:
            pauseController.CanPause = false;
            OnConclusion?.Invoke();
            break;
        }
    }
Beispiel #8
0
    public IEnumerator PlayRythm(bool isPlayer, RythmMove move, float waittime)
    {
        yield return(new WaitForSeconds(waittime));

        if (isPlayer)
        {
            BattleController.Instance.SetPlayerAnimation(move.moveAnimation);

            if (BattleController.Instance.playerEffect == EMoveEffect.TempoUp)
            {
                _speedModifier = 1.2f;
            }
            if (BattleController.Instance.playerEffect == EMoveEffect.TempoDown)
            {
                _speedModifier = 0.8f;
            }
        }
        else
        {
            BattleController.Instance.SetEnemyAnimation(move.moveAnimation);

            if (BattleController.Instance.enemyEffect == EMoveEffect.TempoUp)
            {
                _speedModifier = 1.2f;
            }
            if (BattleController.Instance.enemyEffect == EMoveEffect.TempoDown)
            {
                _speedModifier = 0.8f;
            }
        }
        BattleAudioController.Instance.PlayMoveTrack(move.moveAudioClip, _speedModifier);
        BattleController.Instance.currentmoveScore = 0; //reset current move score

        int currentIndex = 0;

        while (currentIndex < RythmToPlay.rythmData.Length)
        {
            CreateKey(currentIndex);
            yield return(new WaitForSeconds(RythmToPlay.rythmData[currentIndex].WaitTimeToNextNote * (2 - _speedModifier)));

            currentIndex++;
        }

        yield return(null);
    }
Beispiel #9
0
    public void EquipMove(RythmMove newMove)
    {
        if (Inventory.Instance.PlayerData.EquippedMoves.Count >= 3)
        {
            if (!unequipLastMoveAutomatically)
            {
                return;
            }

            Inventory.Instance.PlayerData.EquippedMoves.RemoveAt(0);
            Inventory.Instance.PlayerData.EquippedMovesID.RemoveAt(0);
        }

        Inventory.Instance.PlayerData.EquippedMoves.Add(newMove);
        Inventory.Instance.PlayerData.EquippedMovesID.Add(ListOfAllRythms.IndexOf(newMove));

        StepsPanel.Instance.RefreshStatus();
    }
Beispiel #10
0
    public void PlayMove(RythmMove move, bool isPlayer)
    {
        RythmToPlay      = move;
        CurrentMoveCount = 0;
        _speedModifier   = 1.0f;


        if (isPlayer)
        {
            BattleController.Instance.SetBattleStage(EBattleStage.PlayerMove, move);
        }
        else
        {
            BattleController.Instance.SetBattleStage(EBattleStage.EnemyMove, move);
        }

        StartCoroutine(PlayRythm(isPlayer, move, _modifiers.StartMoveDelay));
    }
Beispiel #11
0
 public void UnequipMove(RythmMove newMove)
 {
     Inventory.Instance.PlayerData.EquippedMoves.Remove(newMove);
     Inventory.Instance.PlayerData.EquippedMovesID.Remove(ListOfAllRythms.IndexOf(newMove));
     StepsPanel.Instance.RefreshStatus();
 }