private IEnumerator ActivateAegisOfZeusCoroutine()
        {
            Visual.instance.disableInput(true);
            float             timeMovement    = Const.mediumCardTimeMovement;
            AegisOfZeusTarget targetcomponent = target.GetComponent <AegisOfZeusTarget>();

            AegisOfZeusTarget[] targetsarray = GameObject.FindObjectsOfType <AegisOfZeusTarget>();
            foreach (var VARIABLE in targetsarray)
            {
                if (VARIABLE != targetcomponent)
                {
                    GameObject.DestroyImmediate(VARIABLE);
                }
            }

            AegisOfZeusActivated[] arractivated = GameObject.FindObjectsOfType <AegisOfZeusActivated>();
            AegisOfZeusActivated   activated    = arractivated[0];
            OneCardManager         aegis        = activated.GetComponent <OneCardManager>();

            VisualTool.DiscardCardToWinningPile(aegis, 0);

            GameLogicModifyGame.SetIgnoreDeadliness(target.cardAsset);
            GameLogicEvents.eventUpdateCurrentEncounter.Invoke();
            GameLogicEvents.eventUpdateLossCounter.Invoke();

            yield return(Const.mediumCardTimeMovement + EndTurn.SmallAmountOfTime);

            VisualTool.SwitchAllControls(true);
            Visual.instance.disableInput(false);
            Command.CommandExecutionComplete();
        }
Beispiel #2
0
        public void OnEnter()
        {
            GameLogicModifyGame.ResolveDiceEncounter();
            CardManager.Card card = Visual.instance.GetCurrentEnemyCard();

            ScreenManager.instance.Show(ScreenManager.ScreenType.Rolldice);
            Visual.instance.mainDice.SetActive(false);
            BattleDiceRoll.ourInstance.SetCurrentDiceEncounterObject();
            ResultPanel.instance.ShowMessage(GameLogic.GetResultMessage());
            RollDiceResultBar.instance.Show();

            DeckGameControlPanel.instance.Show();
        }
        private IEnumerator ActivateApolloBowTargetCoroutine()
        {
            Visual.instance.disableInput(true);
            float          timeMovement = Const.mediumCardTimeMovement;
            OneCardManager apolloBowCM  = Visual.instance.GetOneCardManagerByName(Const.apollobow, Visual.instance.TreasureHand.transform);

            GameLogicModifyGame.ApolloBowEffect(target.cardAsset);
            target.ReadCardFromAsset();
            VisualTool.DiscardCardToDiscardPile(apolloBowCM, 0);

            yield return(timeMovement + EndTurn.SmallAmountOfTime);

            ApolloBowActivated.DeactivateTargets();
            VisualTool.SwitchAllControls(true);
            Visual.instance.disableInput(false);

            Command.CommandExecutionComplete();
        }
Beispiel #4
0
        private void AutoBattleResolve()
        {
            AutoResolveEvent.RemoveAllListeners();
            List <OneCardManager> currentEncoutnerList = Visual.instance.GetCurrentEncounter();


            foreach (OneCardManager cardManager in currentEncoutnerList)
            {
                if (cardManager.cardAsset.resolved != ResolvedType.notresolved)
                {
                    continue;
                }
                if (GameLogic.cardIsMonsterOrTreasure(cardManager.cardAsset))
                {
                    GameLogicModifyGame.AutoResolveCard(cardManager.cardAsset);
                    AutoResolveEvent.AddListener(cardManager.ShowResolve);
                    AutoResolveEvent.AddListener(cardManager.AnimateResolve);
                    AutoResolveEvent.AddListener(() => RaiseEnemyEffect(cardManager.cardAsset));
                }
            }
            AutoResolveEvent.Invoke();
        }
        public void OnEnter()
        {
            ScreenManager.instance.Show(ScreenManager.ScreenType.Rolldice);
            Visual.instance.mainDice.SetActive(true);
            Visual.instance.mainDice.GetComponent <ApplyForceInRandomDirection>().Reset();

            SetCurrentDiceEncounterObject();

            RollDiceTouchListener rollDiceTouchListener =
                Visual.instance.RollDiceImage.gameObject.AddComponent <RollDiceTouchListener>();

            rollDiceTouchListener.dice        = Visual.instance.mainDice;
            rollDiceTouchListener.RollEnabled = true;

            CardManager.Card opponentCard = currentDiceEncounterOneCardManager.cardAsset;
            diceRolledEvent.RemoveAllListeners();
            diceRolledEvent.AddListener(new UnityAction(delegate { GameLogicModifyGame.CalculateDiceRollResult(currentDiceEncounterOneCardManager.cardAsset); }));

            diceRolledEvent.AddListener(new UnityAction(delegate { ResultPanel.instance.ShowMessage(GameLogic.GetResultMessage()); }));

            diceRolledEvent.AddListener(new UnityAction(delegate { RollDiceResultBar.instance.Show(); }));
            diceRolledEvent.AddListener(new UnityAction(delegate { new GoToNextGamePhase(GamePhase.BattleEnd).AddToQueue(); }));
        }
Beispiel #6
0
            private IEnumerator DoCasualtiesCoroutine()
            {
                yield return(new WaitForSeconds(.2f));

                GameLogicEvents.eventRemoveSingleEffects.Invoke();
                if (Game.instance.Casualties > 0)
                {
                    Vector2 pos = Visual.instance.LossCounter.transform.localPosition;
                    DamageEffect.CreateDamageEffect(pos, Game.instance.Casualties);
                }


                List <OneCardManager> curEnc = Visual.instance.GetCurrentEncounter();

                foreach (OneCardManager cm in curEnc)
                {
                    yield return(new WaitForSeconds(EndTurn.SmallAmountOfTime));

                    bool isResolved = cm.cardAsset.resolved == ResolvedType.resolved_win;
                    if (isResolved)
                    {
                        VisualTool.DiscardCardToWinningPile(cm);
                    }
                    else
                    {
                        VisualTool.DiscardCardToDiscardPile(cm);
                    }
                }
                yield return(new WaitForSeconds(TimeMovement1 + DelayTime));

                Debug.Log("CommandDoCasualties");
                GameLogicModifyGame.DoCasualties();
                GameLogicEvents.eventUpdateLossCounter.Invoke();
                GameLogicEvents.eventUpdateCrewCounter.Invoke();
                Command.CommandExecutionComplete();
            }