// Token: 0x0600BE85 RID: 48773 RVA: 0x003538DC File Offset: 0x00351ADC
        public void PlayAnimation(SkeletonAnimation skeletonAnimation, HeroActionType actionType, bool isLoop)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_PlayAnimationSkeletonAnimationHeroActionTypeBoolean_hotfix != null)
            {
                this.m_PlayAnimationSkeletonAnimationHeroActionTypeBoolean_hotfix.call(new object[]
                {
                    this,
                    skeletonAnimation,
                    actionType,
                    isLoop
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            skeletonAnimation.loop         = isLoop;
            string animationName = string.Empty;

            switch (actionType)
            {
            case HeroActionType.Idle:
                animationName = "idle";
                break;

            case HeroActionType.Attack:
                animationName = "attack1";
                break;

            case HeroActionType.SuperAttack:
                animationName = "superattack";
                break;

            case HeroActionType.Cast:
                animationName = "cast";
                break;

            case HeroActionType.Dead:
                animationName = "death";
                break;

            case HeroActionType.Sing:
                animationName = "sing";
                break;

            case HeroActionType.Stun:
                animationName = "stun";
                break;

            case HeroActionType.Run:
                animationName = "run";
                break;
            }
            skeletonAnimation.AnimationName = string.Empty;
            skeletonAnimation.AnimationName = animationName;
        }
Example #2
0
 public void ShowHeroActionResult(HeroActionType action, Creature opponent, bool success)
 {
     if (success)
     {
         Console.WriteLine("Meeting with " + opponent.Name + " was successfull");
         Console.WriteLine();
     }
     else
     {
         Console.WriteLine("Meeting with " + opponent.Name + " was not successfull");
         Console.WriteLine();
     }
 }
Example #3
0
        public bool Play(HeroActionType action) // TEST изиграваме хода и определяме какъв е резултата
        {
            bool success = true;

            switch (action)
            {
            case HeroActionType.Fight:
                success = MyHero.Fight(Opponent as Enemy);
                break;

            case HeroActionType.Deal:
                success = MyHero.Deal(Opponent as Helper);
                break;
            }
            return(success);
        }
Example #4
0
        public void ShowHeroAction(Hero hero, HeroActionType action, Creature opponent)
        {
            switch (action)
            {
            case HeroActionType.Skip:
                Console.WriteLine($"You skipped the {opponent.Name}");
                Console.WriteLine();
                break;

            case HeroActionType.Fight:
                Console.WriteLine($"You fight with " + opponent.Name);
                Console.WriteLine();
                break;

            case HeroActionType.Deal:
                Console.WriteLine($"You deal with {opponent.Name}");
                Console.WriteLine();
                break;

            default:
                break;
            }
        }
Example #5
0
        public ConsoleGameController(Map map)
        {
            //създаваме модела game със тази карта
            game = new Game(map);
            //създаваме display с този модел game
            display = new GameDisplay(game);
            // коя карта е заредена
            display.MapLoaded(game.Map);
            game.Map.Validate();

            try
            {
                // избор на герой
                game.MyHero = display.SelectHero();

                // играта започва
                game.Started();

                //повтаряме докато не приключи играта:
                while (!game.IsCompleted() && !game.IsOver())
                {
                    game.LoadLevel();
                    // съобщаваме в кое ниво сме влезли и кой го населява, колко опит ни е нужен за преминаване и т.н.
                    display.ShowLevel(game.CurrentLevel);
                    //повтаряме докато състоянието на играта е Playing
                    while (game.State == GameState.Playing)
                    {
                        //преминаваме на следващ ход, ако можем(т.е.ако не сме убити, ако не сме завършили и т.н.), иначе прекъсва цикъла
                        if (!game.NextMove())
                        {
                            break;
                        }

                        // оповестяваме на кой ход от играта сме
                        display.ShowMove(game.MoveNo);

                        // проверяваме CanSelectMove - дали ходът е Съдба или Избор
                        var canSelect = game.CanSelectMove;

                        // извежда дали сме ход Съдба или ход Избор
                        display.ShowMove(game.CanSelectMove);

                        // ако сме на ход избор:
                        if (canSelect)
                        {
                            // избираме с кой искаме да се срещнем и записваме кой е нашия Opponent
                            game.Opponent = display.SelectOpponent();
                        }

                        // ход съдба се избира нашия опонент
                        if (!game.OpponentSelection() && canSelect == false)
                        {
                            continue;
                            // ако не е успяло да ни избере противник
                        }


                        // показва ни характеристиките на който ни е избран за противник
                        display.ShowOpponent(game.Opponent);

                        // избираме какво действие ще извърши нашия герой
                        HeroActionType action = display.SelectHeroAction(game.Opponent);

                        // съобщаваме какво действие ще се извърши, срещу кого и т.н.
                        display.ShowHeroAction(game.MyHero, action, game.Opponent);

                        // изиграваме хода и определяме какъв е резултата
                        bool success = game.Play(action);

                        // премахваме вече победен злодей или добряк, с който сме направили сделка
                        if (success)
                        {
                            if (game.Opponent is Enemy && action is HeroActionType.Fight)
                            {
                                game.CurrentLevel.Enemies.Remove(game.Opponent as Enemy);
                            }
                            else if (game.Opponent is Helper && action is HeroActionType.Deal)
                            {
                                game.CurrentLevel.Helpers.Remove(game.Opponent as Helper);
                            }
                        }

                        // съобщаваме резултата от играта
                        display.ShowHeroActionResult(action, game.Opponent, success);

                        // съобщава новите характеристики на героя
                        display.ShowHero(game.MyHero);
                    }

                    //ако състоянието е LevelCompleted:
                    if (game.State == GameState.LevelCompleted)
                    {
                        // съобщаваме, че е преминато нивото
                        display.LevelFinished(game.CurrentLevel);

                        // преминаваме на следващо ниво
                        game.NextLevel();
                    }

                    //ако game.State e GameOver
                    else if (game.State == GameState.GameOver)
                    {
                        //display: играта завърши със загуба
                        display.GameOver();
                        break;
                    }

                    //ако game.State e GameCompleted
                    else if (game.State == GameState.GameCompleted)
                    {
                        //display: играта завърши с победа
                        display.GameCompleted();
                    }
                }
            }
            catch (GameStoppedException)
            {
                // display: играта е прекъсната
                game.State = GameState.GameStopped;
                display.GameStopped();
            }
        }