예제 #1
0
        /// <summary>
        /// Configures the game using the provided game configuration.
        /// </summary>
        /// <param name="configuration">The configuration the game should use.</param>
        /// <returns>Returns an awaitable Task</returns>
        public Task Configure(IGameConfiguration configuration)
        {
            this.Configuration = configuration;
            this.configuredAdapters = configuration.GetAdapters();
            foreach(IAdapter adapter in this.configuredAdapters)
            {
                adapter.Configure();
            }

            return Task.FromResult(0);
        }
예제 #2
0
 public Game(IGameConfiguration gameConfiguration)
 {
     gameField  = new GameField(gameConfiguration.Rows, gameConfiguration.Columns, gameConfiguration.BombsCount);
     bombsCount = gameConfiguration.BombsCount;
 }
예제 #3
0
 public PrizeBlock(IGameConfiguration configuration, Size size, ComponentManager componentManager, IPrize prize) : base(configuration, size)
 {
     _componentManager = componentManager;
     Prize             = prize;
 }
예제 #4
0
 public PlayerService(IGameConfiguration gameconfig)
 {
     _gameConfig = gameconfig;
 }
예제 #5
0
 public SpaceShip(IGameConfiguration configuration, Size size) : base(configuration, size)
 {
     Reset();
 }
예제 #6
0
 public Chat_GlobalChat_Handler(IPlayerManager playerManager, IGameConfiguration configuration)
 {
     _playerManager = playerManager;
     _configuration = configuration;
 }
예제 #7
0
 public ProjectileReloadSystem(Contexts contexts) : base(contexts.game)
 {
     _contexts      = contexts;
     _configuration = _contexts.configuration.gameConfiguration.value;
 }
예제 #8
0
 public void Initialise(IGameConfiguration gameConfiguration)
 {
     _winnerSquare = gameConfiguration.WinnerSquare;
     _players      = new Queue <IPlayer>(gameConfiguration.Players);
     _gameBoard.Initialise(gameConfiguration);
 }
예제 #9
0
 protected CommandParser(IGameConfiguration currentGameConfiguration, string regexPattern)
 {
     _currentGameConfiguration = currentGameConfiguration;
     _regex = new Regex(regexPattern, RegexOptions.IgnoreCase);
 }
예제 #10
0
 public GameController(Contexts contexts, IGameConfiguration configuration)
 {
     _contexts = contexts;
     _contexts.configuration.SetGameConfiguration(configuration);
     _systems = new GameSystems(_contexts);
 }
예제 #11
0
 public Upgrading_Summing_Handler(IRandomGenerator random, IGameConfiguration configuration)
 {
     _random        = random;
     _configuration = configuration;
 }
예제 #12
0
 public Block(IGameConfiguration configuration, Size size) : base(configuration, size)
 {
     Scale      = new Microsoft.Xna.Framework.Vector2(.7f, .7f);
     _observers = new List <IBlockObserver>();
 }
예제 #13
0
        public static bool Generate(IGameConfiguration game, IHexMap _map, IEntityManager _gem, out List <Squad> _squads)
        {
            _map.Columns = game.Map.Columns;
            _map.Rows    = game.Map.Rows;

            _map.GenParams.noiseOffset = game.Map.NoiseOffset;
            _map.GenParams.noiseScale  = game.Map.NoiseScale;
            _map.GenParams.heightScale = game.Map.HeightScale;

            // Initialize Random with seed!
            NetRand.Seed(game.RandomSeed);

            _map.BuildMap();

            var deckConfig = Resources.Load <CardDeckConfig>("Basic_Deck");

            _squads = new List <Squad>();
            foreach (var config in game.Squads)
            {
                var squad = new Squad(config, deckConfig);
                squad.CreateMembers(_gem);

                _squads.Add(squad);
            }

            var blacklist = new HashSet <HexOffsetCoord>();

            foreach (var s in _squads)
            {
                foreach (var e in s.Members)
                {
                    blacklist.UnionWith(HexFun.Ring(e.GetComponent <HexPosComp>().Position).Select(c => c.OffsetCoord));
                }
            }

            // hole in the middle
            var center = _map.Center.CubeCoord + HexFun.Offset(HexDirection.West);

            /*
             * //for (int i = 0; i < 2; i++)
             * {
             *  var pos = center;// + HexCubeCoord.Offset(NetRand.Enum<HexDirection>(), 1);
             *  foreach (var c in HexCubeCoord.Spiral(pos))
             *      if (NetRand.Chance(7, 10))
             *          _map.RemoveTile(c);
             * }
             * {
             *  var pos = center + HexCubeCoord.Offset(HexDirection.SouthEast) + HexCubeCoord.Offset(HexDirection.East);
             *  foreach (var c in HexCubeCoord.Spiral(pos))
             *      if (NetRand.Chance(7, 10))
             *          _map.RemoveTile(c);
             * }
             */
            foreach (var c in HexFun.Polymino(center, 9))
            {
                //_map.GetTile(c)?.SetColor(Color.blue);
                _map.RemoveTile(c);
            }

            // cut of corners with no altar
            // hard code this for now
            for (int c = 0; c < _map.Columns; c++)
            {
                for (int r = 0; r < _map.Rows; r++)
                {
                    var coord = new HexOffsetCoord(c, r).CubeCoord;
                    if (Mathf.Abs(coord.x - 2) > NetRand.Range(6, 8))
                    {
                        //_map.GetTile(coord)?.SetColor(Color.green);
                        _map.RemoveTile(coord);
                    }
                }
            }

            //foreach (var c in blacklist)
            //    _map.GetTile(c)?.SetColor(Color.red);

            // spawn debris on map
            int debrisCount = NetRand.Range(7, 10);

            for (int i = 0; i < debrisCount; i++)
            {
                // find empty position
                var pos  = NetRand.HexOffset(_map.Columns, _map.Rows);
                var tile = _map.GetTile(pos);
                while (tile == null || blacklist.Contains(pos) || tile.HasEntityOnTop)
                {
                    pos  = NetRand.HexOffset(_map.Columns, _map.Rows);
                    tile = _map.GetTile(pos);
                }

                var deb = _gem.CreateEntity("mountain");
                deb.GetComponent <HexPosComp>().SetPosition(pos);

                foreach (var npos in HexFun.Ring(pos, 2))
                {
                    var neighbor = _map.GetTile(npos);
                    if (neighbor == null || blacklist.Contains(npos.OffsetCoord) || neighbor.HasEntityOnTop)
                    {
                        continue;
                    }
                    if (NetRand.Chance(3, 10))
                    {
                        var ndeb = _gem.CreateEntity("mountain");
                        ndeb.GetComponent <HexPosComp>().SetPosition(npos);
                    }
                }
            }

            // generate forest patches
            int treeCount = NetRand.Range(7, 16);

            for (int i = 0; i < debrisCount; i++)
            {
                var pos  = NetRand.HexOffset(_map.Columns, _map.Rows);
                var tile = _map.GetTile(pos);
                while (tile == null || tile.Terrain != HexTerrain.Plain || tile.HasEntityOnTop)
                {
                    pos  = NetRand.HexOffset(_map.Columns, _map.Rows);
                    tile = _map.GetTile(pos);
                }

                tile.Terrain = HexTerrain.Forest;

                foreach (var npos in HexFun.Ring(pos))
                {
                    var neighbor = _map.GetTile(npos);
                    if (neighbor == null || neighbor.Terrain != HexTerrain.Plain || neighbor.HasEntityOnTop)
                    {
                        continue;
                    }
                    if (NetRand.Chance(3, 10))
                    {
                        neighbor.Terrain = HexTerrain.Forest;
                    }
                }
            }

            // check that there is a path from base to base
            var altarPos = _squads[0].Members[0].GetComponent <HexPosComp>().Position;
            var nav      = _map.GetNav(new HexNavSettings(altarPos));

            var otherAltar = _squads[1].Members[0].GetComponent <HexPosComp>().Position;

            var target  = otherAltar;
            int minDist = int.MaxValue;

            foreach (var n in HexFun.Ring(otherAltar))
            {
                var dist = nav.GetDistance(n);
                if (dist == null)
                {
                    Debug.Log("NO PATH BETWEEN ALTARS!");
                    return(false);
                }
                if (dist.Value < minDist)
                {
                    minDist = dist.Value;
                    target  = n.CubeCoord;
                }
            }

            //var path = nav.PathToOrigin(target).ToList();
            //foreach (var c in path)
            //{
            //    _map.GetTile(c).SetColor(new Color32(163, 198, 255, 255));
            //}

            return(true);
        }
 public Upgrading_UpgradeSp_Handler(IGameConfiguration configuration, IRandomGenerator random)
 {
     _configuration = configuration;
     _random        = random;
 }
예제 #15
0
 public BalloonLineSpawnerSystem(Contexts contexts) : base(contexts.game)
 {
     _contexts      = contexts;
     _configuration = _contexts.configuration.gameConfiguration.value;
 }
 public GameManager(IGameConfiguration gameConfiguration,
                    IBoardManager boardManager)
 {
     _gameConfiguration = gameConfiguration;
     _boardManager      = boardManager;
 }
예제 #17
0
 public BasicShooter(IGameConfiguration configuration, Size size, ISpaceShip spaceShip)
 {
     _configuration = configuration;
     _size          = size;
     _spaceShip     = spaceShip;
 }
 public GameStartedThrowerSpawnSystem(Contexts contexts) : base(contexts.game)
 {
     _contexts      = contexts;
     _configuration = _contexts.configuration.gameConfiguration.value;
 }
예제 #19
0
 public Upgrading_UpgradeEquipment_Handler(IGameConfiguration configuration, IRandomGenerator randomGenerator)
 {
     _configuration   = configuration;
     _randomGenerator = randomGenerator;
 }
예제 #20
0
 public RandomDrawBalls(IGameConfiguration gameDataSetting)
 {
     this.gameDataSetting = gameDataSetting;
     randomNumbers        = new RandomNumbersGenerator();
 }
예제 #21
0
 public string?ValidateRolesWithConfig(IGameConfiguration config, GameCreationPayload payload)
 {
     return(null);
 }
예제 #22
0
 public BlockBuilder Configuration(IGameConfiguration configuration)
 {
     _configuration = configuration;
     return(this);
 }
예제 #23
0
 public Upgrading_Rarify_Handler(IGameConfiguration configuration, IRandomGenerator randomGenerator)
 {
     _configuration   = configuration;
     _randomGenerator = randomGenerator;
 }
예제 #24
0
 public BalanceBalloonsSystem(Contexts contexts) : base(contexts.game)
 {
     _contexts      = contexts;
     _configuration = _contexts.configuration.gameConfiguration.value;
     _slots         = _contexts.game.slotsIndexer.Value;
 }
예제 #25
0
 public Inventory_MoveItem_Handler(IGameConfiguration gameConfiguration)
 {
     _gameConfiguration = gameConfiguration;
 }
예제 #26
0
 public BasicBlock(IGameConfiguration configuration, Size size) : base(configuration, size)
 {
 }
 public CreateBattleArenaCommandParser(IGameConfiguration currentGameConfiguration, IBattleArenaFactory battleArenaFactory)
     : base(currentGameConfiguration, regexPattern)
 {
     _battleArenaFactory = battleArenaFactory;
 }
예제 #28
0
 public CardPrototype(IColumnRangeGetter columnRangeGetter, IGameConfiguration gameDataSetting)
 {
     this.gameDataSetting   = gameDataSetting;
     this.columnRangeGetter = columnRangeGetter;
 }
예제 #29
0
        /// <summary>
        /// Prepare the context and start a minigame.
        /// </summary>
        /// <param name="_gameCode">The minigame code.</param>
        /// <param name="_launchConfiguration">The launch configuration. If null, the Teacher will generate a new one.</param>
        /// <param name="forceNewPlaySession">Is this a new play session?</param>
        public void LaunchGame(MiniGameCode _gameCode, MinigameLaunchConfiguration _launchConfiguration = null,
                               bool forceNewPlaySession = false)
        {
            ConfigAI.StartTeacherReport();
            if (_launchConfiguration == null)
            {
                var difficulty      = teacher.GetCurrentDifficulty(_gameCode);
                var numberOfRounds  = teacher.GetCurrentNumberOfRounds(_gameCode);
                var tutorialEnabled = teacher.GetTutorialEnabled(_gameCode);
                _launchConfiguration = new MinigameLaunchConfiguration(difficulty, numberOfRounds, tutorialEnabled);
            }

            var miniGameData = AppManager.I.DB.GetMiniGameDataByCode(_gameCode);

            if (forceNewPlaySession)
            {
                AppManager.I.NavigationManager.InitNewPlaySession(miniGameData);
            }

            if (AppConfig.DebugLogEnabled)
            {
                Debug.Log("StartGame " + _gameCode.ToString());
            }

            // Assign the configuration for the given minigame
            var minigameSession = System.DateTime.Now.Ticks.ToString();

            currentGameConfig                 = ConfigureMiniGameScene(_gameCode, minigameSession);
            currentGameConfig.Difficulty      = _launchConfiguration.Difficulty;
            currentGameConfig.TutorialEnabled = _launchConfiguration.TutorialEnabled;

            // Set also the number of rounds
            // @note: only for assessment, for now
            if (currentGameConfig is Assessment.IAssessmentConfiguration)
            {
                var assessmentConfig = currentGameConfig as Assessment.IAssessmentConfiguration;
                assessmentConfig.NumberOfRounds = _launchConfiguration.NumberOfRounds;
            }

            // Retrieve the packs for the current minigame configuration
            currentQuestionBuilder      = currentGameConfig.SetupBuilder();
            currentQuestionPacks        = questionPacksGenerator.GenerateQuestionPacks(currentQuestionBuilder);
            currentGameConfig.Questions = new SequentialQuestionPackProvider(currentQuestionPacks);

            // Communicate to LogManager the start of a new single minigame play session.
            if (AppConfig.DebugLogDbInserts)
            {
                Debug.Log("InitGameplayLogSession " + _gameCode.ToString());
            }
            LogManager.I.LogInfo(InfoEvent.GameStart, "{\"minigame\":\"" + _gameCode.ToString() + "\"}");
            LogManager.I.StartMiniGame();

            // Print the teacher's report now
            ConfigAI.PrintTeacherReport();

            // Play the title dialog for the game
            //AudioManager.I.PlayDialogue(_gameCode.ToString()+"_Title");

            // Launch the game
            AppManager.I.NavigationManager.GoToMiniGameScene();
        }
예제 #30
0
 public ShooterFactory(IGameConfiguration configuration, ResourceRepository resourceRepository, ISpaceShip spaceShip)
 {
     _configuration      = configuration;
     _resourceRepository = resourceRepository;
     _spaceShip          = spaceShip;
 }
예제 #31
0
 public BasicShoot(IGameConfiguration configuration, Size size, Vector2 initialPosition) : base(configuration, size)
 {
     _initialPosition = Position = initialPosition;
     Speed            = new Vector2(0, -5);
 }
예제 #32
0
 public IrromptableBlock(IGameConfiguration configuration, Size size) : base(configuration, size)
 {
 }
예제 #33
0
        public IGameConfiguration GetGameConfigurationForMiniGameCode(MiniGameCode code)
        {
            IGameConfiguration currentGameConfig = null;

            switch (code)
            {
            case MiniGameCode.Assessment_LetterShape:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.LetterShape;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_WordsWithLetter:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.WordsWithLetter;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_MatchLettersToWord:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.MatchLettersToWord;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_CompleteWord:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.CompleteWord;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_OrderLettersOfWord:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.OrderLettersOfWord;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_VowelOrConsonant:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.VowelOrConsonant;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_SelectPronouncedWord:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.SelectPronouncedWord;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_MatchWordToImage:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.MatchWordToImage;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_WordArticle:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.WordArticle;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_SingularDualPlural:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.SingularDualPlural;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_SunMoonWord:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.SunMoonWord;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_SunMoonLetter:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.SunMoonLetter;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Assessment_QuestionAndReply:
                Assessment.AssessmentConfiguration.Instance.assessmentType = Assessment.AssessmentCode.QuestionAndReply;
                Assessment.AssessmentConfiguration.Instance.Context        = AnturaMinigameContext.Default;
                currentGameConfig = Assessment.AssessmentConfiguration.Instance;
                break;

            case MiniGameCode.Balloons_counting:
                Balloons.BalloonsConfiguration.Instance.Variation = Balloons.BalloonsVariation.Counting;
                Balloons.BalloonsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Balloons.BalloonsConfiguration.Instance;
                break;

            case MiniGameCode.Balloons_letter:
                Balloons.BalloonsConfiguration.Instance.Variation = Balloons.BalloonsVariation.Letter;
                Balloons.BalloonsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Balloons.BalloonsConfiguration.Instance;
                break;

            case MiniGameCode.Balloons_spelling:
                Balloons.BalloonsConfiguration.Instance.Variation = Balloons.BalloonsVariation.Spelling;
                Balloons.BalloonsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Balloons.BalloonsConfiguration.Instance;
                break;

            case MiniGameCode.Balloons_words:
                Balloons.BalloonsConfiguration.Instance.Variation = Balloons.BalloonsVariation.Words;
                Balloons.BalloonsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Balloons.BalloonsConfiguration.Instance;
                break;

            case MiniGameCode.ColorTickle:
                ColorTickle.ColorTickleConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = ColorTickle.ColorTickleConfiguration.Instance;
                break;

            case MiniGameCode.DancingDots:
                DancingDots.DancingDotsConfiguration.Instance.Variation = DancingDots.DancingDotsVariation.V_1;
                DancingDots.DancingDotsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = DancingDots.DancingDotsConfiguration.Instance;
                break;

            case MiniGameCode.DontWakeUp:
                //
                break;

            case MiniGameCode.Egg:
                Egg.EggConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = Egg.EggConfiguration.Instance;
                break;

            case MiniGameCode.FastCrowd_alphabet:
                FastCrowd.FastCrowdConfiguration.Instance.Variation = FastCrowd.FastCrowdVariation.Alphabet;
                FastCrowd.FastCrowdConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = FastCrowd.FastCrowdConfiguration.Instance;
                break;

            case MiniGameCode.FastCrowd_counting:
                FastCrowd.FastCrowdConfiguration.Instance.Variation = FastCrowd.FastCrowdVariation.Counting;
                FastCrowd.FastCrowdConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = FastCrowd.FastCrowdConfiguration.Instance;
                break;

            case MiniGameCode.FastCrowd_letter:
                FastCrowd.FastCrowdConfiguration.Instance.Variation = FastCrowd.FastCrowdVariation.Letter;
                FastCrowd.FastCrowdConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = FastCrowd.FastCrowdConfiguration.Instance;
                break;

            case MiniGameCode.FastCrowd_spelling:
                FastCrowd.FastCrowdConfiguration.Instance.Variation = FastCrowd.FastCrowdVariation.Spelling;
                FastCrowd.FastCrowdConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = FastCrowd.FastCrowdConfiguration.Instance;
                break;

            case MiniGameCode.FastCrowd_words:
                FastCrowd.FastCrowdConfiguration.Instance.Variation = FastCrowd.FastCrowdVariation.Words;
                FastCrowd.FastCrowdConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = FastCrowd.FastCrowdConfiguration.Instance;
                break;

            case MiniGameCode.TakeMeHome:
                TakeMeHome.TakeMeHomeConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = TakeMeHome.TakeMeHomeConfiguration.Instance;
                break;

            case MiniGameCode.HiddenSource:
                // It has now become TakeMeHome
                break;

            case MiniGameCode.HideSeek:
                HideAndSeek.HideAndSeekConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = HideAndSeek.HideAndSeekConfiguration.Instance;
                break;

            case MiniGameCode.MakeFriends:
                MakeFriends.MakeFriendsConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = MakeFriends.MakeFriendsConfiguration.Instance;
                break;

            case MiniGameCode.Maze:
                Maze.MazeConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = Maze.MazeConfiguration.Instance;
                break;

            case MiniGameCode.MissingLetter:
                MissingLetter.MissingLetterConfiguration.Instance.Variation = MissingLetter.MissingLetterVariation.MissingLetter;
                MissingLetter.MissingLetterConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = MissingLetter.MissingLetterConfiguration.Instance;
                break;

            case MiniGameCode.MissingLetter_phrases:
                MissingLetter.MissingLetterConfiguration.Instance.Variation = MissingLetter.MissingLetterVariation.MissingWord;
                MissingLetter.MissingLetterConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = MissingLetter.MissingLetterConfiguration.Instance;
                break;

            case MiniGameCode.MixedLetters_alphabet:
                // TODO: set variation
                MixedLetters.MixedLettersConfiguration.Instance.Variation = MixedLetters.MixedLettersConfiguration.MixedLettersVariation.Alphabet;
                MixedLetters.MixedLettersConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = MixedLetters.MixedLettersConfiguration.Instance;
                break;

            case MiniGameCode.MixedLetters_spelling:
                MixedLetters.MixedLettersConfiguration.Instance.Variation = MixedLetters.MixedLettersConfiguration.MixedLettersVariation.Spelling;
                MixedLetters.MixedLettersConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = MixedLetters.MixedLettersConfiguration.Instance;
                break;

            case MiniGameCode.SickLetters:
                SickLetters.SickLettersConfiguration.Instance.Context = AnturaMinigameContext.Default;
                currentGameConfig = SickLetters.SickLettersConfiguration.Instance;
                break;

            case MiniGameCode.ReadingGame:
                ReadingGame.ReadingGameConfiguration.Instance.Variation = ReadingGame.ReadingGameVariation.ReadAndAnswer;
                ReadingGame.ReadingGameConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = ReadingGame.ReadingGameConfiguration.Instance;
                break;

            case MiniGameCode.AlphabetSong:
                ReadingGame.ReadingGameConfiguration.Instance.Variation = ReadingGame.ReadingGameVariation.AlphabetSong;
                ReadingGame.ReadingGameConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = ReadingGame.ReadingGameConfiguration.Instance;
                break;

            case MiniGameCode.Scanner:
                Scanner.ScannerConfiguration.Instance.Variation = Scanner.ScannerVariation.OneWord;
                Scanner.ScannerConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Scanner.ScannerConfiguration.Instance;
                break;

            case MiniGameCode.Scanner_phrase:
                Scanner.ScannerConfiguration.Instance.Variation = Scanner.ScannerVariation.MultipleWords;
                Scanner.ScannerConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Scanner.ScannerConfiguration.Instance;
                break;

            case MiniGameCode.ThrowBalls_letters:
                ThrowBalls.ThrowBallsConfiguration.Instance.Variation = ThrowBalls.ThrowBallsVariation.letters;
                ThrowBalls.ThrowBallsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = ThrowBalls.ThrowBallsConfiguration.Instance;
                break;

            case MiniGameCode.ThrowBalls_words:
                ThrowBalls.ThrowBallsConfiguration.Instance.Variation = ThrowBalls.ThrowBallsVariation.words;
                ThrowBalls.ThrowBallsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = ThrowBalls.ThrowBallsConfiguration.Instance;
                break;

            case MiniGameCode.ThrowBalls_letterinword:
                ThrowBalls.ThrowBallsConfiguration.Instance.Variation = ThrowBalls.ThrowBallsVariation.lettersinword;
                ThrowBalls.ThrowBallsConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = ThrowBalls.ThrowBallsConfiguration.Instance;
                break;

            case MiniGameCode.Tobogan_letters:
                Tobogan.ToboganConfiguration.Instance.Variation = Tobogan.ToboganVariation.LetterInAWord;
                Tobogan.ToboganConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Tobogan.ToboganConfiguration.Instance;
                break;

            case MiniGameCode.Tobogan_words:
                Tobogan.ToboganConfiguration.Instance.Variation = Tobogan.ToboganVariation.SunMoon;
                Tobogan.ToboganConfiguration.Instance.Context   = AnturaMinigameContext.Default;
                currentGameConfig = Tobogan.ToboganConfiguration.Instance;
                break;

            default:
                Debug.LogWarningFormat("Minigame selected {0} not found.", code.ToString());
                break;
            }
            return(currentGameConfig);
        }
예제 #34
0
 public MoveRobotCommandParser(IGameConfiguration currentGameConfiguration, IMoveInstructionFactory moveInstructionFactory)
     : base(currentGameConfiguration, regexPattern)
 {
     _moveInstructionFactory = moveInstructionFactory;
 }
예제 #35
0
 public DeployRobotCommandParser(IGameConfiguration currentGameConfiguration, IRobotFactory robotFactory)
     : base(currentGameConfiguration, regexPattern)
 {
     _robotFactory = robotFactory;
 }