Esempio n. 1
0
        public override void OnStart()
        {
            TimeManager.ResumeTime();

            ResetFields();

            inventoryInputManager = FindObjectOfType <InventoryInputManager>();
            generator             = FindObjectOfType <BattleGenerator>();
            _sortingCalculator    = FindObjectOfType <SortingCalculator>();

            tutorialPanelActive = Instantiate(tutorialPanel);
            tutorialScript      = tutorialPanelActive.GetComponent <BattleTutorialScript>();

            BattleEvents.NormalEvent.AddListener(this);
            BattleEvents.EndOfTurnEvent.AddListener(this);
            BattleEvents.SkipTurnEvent.AddListener(this);

            canGiveCommand = true;
            roundCount     = 0;

            //AudioController.PlayAudio(CommonAudioTypes.MainBattleTheme);
            if (!BattleMusicManager.IsPlaying())
            {
                BattleMusicManager.PlayTheme();
            }
            PartyManager.Order();
            Timing.RunCoroutine(SetupBattle());
        }
Esempio n. 2
0
        public virtual IEnumerator <float> FleeBattleSequence()
        {
            Timing.RunCoroutine(BattleMusicManager.StopAudio(1));
            BattleEvents.FleeBattleEvent.Raise();
            BattleInput._controls.Disable();
            EventSystem.current.sendNavigationEvents = false;

            yield return(Timing.WaitForSeconds(0.5f));

            foreach (var member in membersForThisBattle.Where(member => !member.IsDead))
            {
                var position    = member.Unit.transform.position;
                var newPosition = new Vector3(position.x, position.y, position.z - 15);

                member.Unit.EmptyAnimations();

                member.Unit.anim.SetInteger(AnimationHandler.AnimState, 0);
                member.Unit.anim.SetFloat(AnimationHandler.HorizontalHash, -1);
                member.Unit.anim.SetBool(AnimationHandler.IsWalkingHash, true);
                member.Unit.anim.SetBool(AnimationHandler.IsRunningHash, true);

                member.Unit.transform.DOMove(newPosition, 2);
            }

            //yield return Timing.WaitForSeconds(1.5f);
            MainInventory.ResetHealingItems();
            SceneLoadManager.LoadOverworld();
        }
        public override void OnStart()
        {
            TimeManager.ResumeTime();

            ResetFields();

            minotaur = null;

            inventoryInputManager = FindObjectOfType <InventoryInputManager>();
            generator             = FindObjectOfType <BattleGenerator>();
            _sortingCalculator    = FindObjectOfType <SortingCalculator>();

            BattleEvents.NormalEvent.AddListener(this);
            BattleEvents.EndOfTurnEvent.AddListener(this);
            BattleEvents.SkipTurnEvent.AddListener(this);

            canGiveCommand = true;
            roundCount     = 0;

            //AudioController.PlayAudio(minotaurTheme);
            if (!BattleMusicManager.IsPlaying())
            {
                BattleMusicManager.PlayTheme();
            }
            PartyManager.Order();
            Timing.RunCoroutine(SetupBattle());
        }
Esempio n. 4
0
        protected virtual IEnumerator <float> LostBattleSequence()
        {
            //AudioController.StopAudio(CommonAudioTypes.MainBattleTheme, true, 1);
            Timing.RunCoroutine(BattleMusicManager.StopAudio(1));
            yield return(Timing.WaitForSeconds(1));

            gameOverCanvas.SetActive(true);
        }
Esempio n. 5
0
        protected virtual IEnumerator <float> WonBattleSequence()
        {
            //AudioController.StopAudio(CommonAudioTypes.MainBattleTheme, true, 2);
            Timing.RunCoroutine(BattleMusicManager.StopAudio(2));

            yield return(Timing.WaitForSeconds(2));

            CommonMMFeedbacks.VictoryFeedback.PlayFeedbacks();
            yield return(Timing.WaitForSeconds(1));

            AudioController.PlayAudio(CommonAudioTypes.VictoryThemeBattle, true);

            membersForThisBattle.ForEach(member => member.Unit.anim.SetTrigger(AnimationHandler.VictoryTrigger));

            yield return(Timing.WaitForSeconds(2f));

            battleResults.SetActive(true);
            var battleResultsUI = battleResults.GetComponent <BattleResultsUI>();

            battleResultsUI.DisableUI();

            foreach (var member in membersForThisBattle)
            {
                member.ResetLevelUpAmount();

                var totalXp = expGivers.Sum(giver =>
                                            giver.CalculateExperience(member.level, member));

                var totalClassXp = expGivers.Sum(giver =>
                                                 giver.CalculateExperience(member.currentClass.level, member.currentClass));

                member.BattleExpReceived = totalXp;

                member.AdvanceTowardsNextLevel(totalXp);
                member.currentClass.AdvanceTowardsNextLevel(totalClassXp);
            }

            yield return(Timing.WaitUntilTrue(() => membersForThisBattle.
                                              TrueForAll(m => m.Unit.expCoroutineDone && m.Unit.classExpCoroutineDone)));

            //yield return Timing.WaitUntilTrue(() => BattleInput._controls.Battle.Confirm.triggered);
            yield return(Timing.WaitForSeconds(0.5f));

            yield return(Timing.WaitUntilTrue(() => BattleInput._controls.Battle.Confirm.triggered));

            Timing.RunCoroutine(battleResultsUI.ShowLevelUps());
            yield return(Timing.WaitForSeconds(0.3f));

            yield return(Timing.WaitUntilFalse(() => battleResultsUI.showingLevelUps));

            BattleInput._controls.Disable();
            SceneLoadManager.LoadOverworld();

            membersForThisBattle.ForEach(m =>
            {
                m.currentClass.statsToIncrease = new List <CharacterStat>();
            });
        }
Esempio n. 6
0
    IEnumerator ScreenShot()
    {
        yield return(new WaitForEndOfFrame());

        Texture2D texture = new Texture2D(Screen.width, Screen.height, TextureFormat.ARGB32, false);

        texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
        texture.Apply();

        ShatterController SController = Instantiate(Resources.Load <ShatterController>("Shattered Object"));

        SController.AnimateEvent(texture);
        BattleMusicManager.PlayTheme();
    }