Пример #1
0
        public async Task <ActionResult> GetMessagesMonster(Guid qId)
        {
            var user = await UserFacade.GetUserAccordingToUsernameAsync(User.Identity.Name);

            var quest = await QuestFacade.GetQuestAsync(qId);

            var result = await CombatFacade.FightAsync(user.Character, quest.Monster, quest);

            //update character if won
            if (result.Item1)
            {
                var messageText = $"Congratulations you won the match and your reward is: {quest.Gold} gold, {quest.Experience} experience.";
                if (quest.Item != null)
                {
                    var item = await EquipmentFacade.AddToInventoryAsync(user.Character.Inventory, quest.Item);

                    if (item)
                    {
                        messageText +=
                            $"\nYou also receieved an item called {quest.Item.Name}, which is in your inventory.";
                    }
                }

                await UserFacade.MessageCreateAsync(user, new MessageDto()
                {
                    MessageText = messageText, Arrived = DateTime.Now
                });
            }

            var list = result.Item2.Select(x => new { Message = x }).ToList();

            return(Json(new { Winner = result.Item1, List = list }, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public async Task <ActionResult> GetMessagesChar(Guid userId)
        {
            var user = await UserFacade.GetUserAccordingToUsernameAsync(User.Identity.Name);

            var user2 = await UserFacade.GetAsync(userId);

            var result = await CombatFacade.FightAsync(user.Character, user2.Character);

            var list = result.Item2.Select(x => new { Message = x }).ToList();

            if (result.Item1)
            {
                var updateUser = new UserEditDto()
                {
                    Credits     = user.Credits,
                    CharacterId = user.CharacterId,
                    Id          = user.Id,
                    Score       = user.Score + (user2.Character.Level)
                };
                await UserFacade.EditAsync(updateUser);

                var player1Msg = $"Congratulations you won the match and you robbed your enemy for {(int)Math.Floor((float)user2.Character.Gold / 100) * 10} gold.";
                var player2Msg = $"We are sorry, but {user.Character.Name} defeated you and took you {(int)Math.Floor((float)user2.Character.Gold / 100) * 10} gold.";
                await UserFacade.MessageCreateAsync(user, new MessageDto()
                {
                    MessageText = player1Msg, Arrived = DateTime.Now
                });

                await UserFacade.MessageCreateAsync(user2, new MessageDto()
                {
                    MessageText = player2Msg, Arrived = DateTime.Now
                });
            }
            else
            {
                if (list.Count() > 1)
                {
                    var player2Msg = $"Congratulations you have been able to defend yourself from {user.Character.Name} and you also robbed him for {(int)Math.Floor((float)user.Character.Gold / 100) * 10} gold.";
                    var player1Msg = $"We are sorry, You got devastated and robbed for {(int)Math.Floor((float)user.Character.Gold / 100) * 10} gold.";
                    await UserFacade.MessageCreateAsync(user, new MessageDto()
                    {
                        MessageText = player1Msg, Arrived = DateTime.Now
                    });

                    await UserFacade.MessageCreateAsync(user2, new MessageDto()
                    {
                        MessageText = player2Msg, Arrived = DateTime.Now
                    });
                }
            }
            return(Json(new { Winner = result.Item1, List = list }, JsonRequestBehavior.AllowGet));
        }