Example #1
0
        //Index Action
        public ActionResult Index(string input, int id = 0)
        {
            //als nieuw: start game + zet id in session
            //else: haal id uit session en start op

            if (id == 0)
            {
                var gameId = Session["gameId"] as int?;
                if (!gameId.HasValue)
                {
                    return(RedirectToAction("FillDatabase"));
                }
                else
                {
                    story  = (Story)FindInDatabase("story", gameId.Value);
                    player = (Player)FindInDatabase("player", gameId.Value);
                    map    = (Map)FindInDatabase("map", gameId.Value);
                }
            }
            else
            {
                story  = (Story)FindInDatabase("story", id);
                player = (Player)FindInDatabase("player", id);
                map    = (Map)FindInDatabase("map", id);
            }

            if (input == null)
            {
                storyViewModel = new StoryViewModel(story, player);
                return(View(storyViewModel));
            }

            commandRepository = new CommandRepository(story, player);

            using (var context = ApplicationDbContext.Create())
            {
                context.Stories.Attach(story);
                context.Players.Attach(player);

                if (!player.InBattle)
                {
                    story.MyStory += commandRepository.GetCommandText(input);
                }
                else
                {
                    story.MyStory += commandRepository.GetBattleCommandText(input);
                }

                story.MyStory += commandRepository.ExecuteCommand(input);
                story.MyStory += commandRepository.EndOfAction();

                context.SaveChanges();
            }

            storyViewModel = new StoryViewModel(story, player);

            return(View(storyViewModel));
        }
Example #2
0
        public ActionResult FillDatabase()
        {
            story  = new Story();
            map    = new Map();
            player = new Player();

            using (var context = ApplicationDbContext.Create())
            {
                context.Stories.Add(story);
                context.Maps.Add(map);
                context.Players.Add(player);

                map.BuildMap();

                commandRepository = new CommandRepository(story, player);
                commandRepository.CreatePlayer();
                story.MyStory += commandRepository.SpawnStory();

                context.SaveChanges();
            }
            Session.Add("gameId", story.Id);
            return(RedirectToAction("Index", new { id = story.Id }));
        }