Exemple #1
0
        public static User CreateNewUser(DungeonsAndDragonsContext _context, string username, string password)
        {
            _context.users.Add(new User
            {
                username = username,
                password = password
            });
            _context.SaveChanges();

            return(_context.users.SingleOrDefault(u => u.username == username));
        }
Exemple #2
0
        public static NonPlayableCharacter CreateNonPlayableCharacter(DungeonsAndDragonsContext _context, int gameid, string chracterName, int speciesId, int maxHp, int attack, string imagePath, int currentHp)
        {
            var character = new NonPlayableCharacter()
            {
                gameid = gameid, name = chracterName, species_id = speciesId, maxHp = maxHp, attack = attack, imagePath = imagePath, currentHp = currentHp
            };

            _context.nonplayablecharacters.Add(character);
            _context.SaveChanges();

            return(character);
        }
        public static GameUser AssignCharacterToGamePlayer(DungeonsAndDragonsContext _context, int gameUserId, int characterId)
        {
            var gamePlayer = GetGameUserByID(_context, gameUserId);

            if (gameUserId != 0)
            {
                gamePlayer.playablecharacterid = characterId;
                _context.SaveChanges();
            }

            return(gamePlayer);
        }
        public static PlayableCharacter CreateNewCharacter(DungeonsAndDragonsContext _context, int userId, string characterName, int speciesId, int baseHP, int baseAttack, string imagePath, int currentHp)
        {
            PlayableCharacter character = new PlayableCharacter()
            {
                userid = userId, name = characterName, species_id = speciesId, maxHp = baseHP, attack = baseAttack, imagePath = imagePath, currentHp = currentHp
            };

            _context.playablecharacters.Add(character);
            _context.SaveChanges();

            return(character);
        }
        public static List <Inventory> getPlayersInventory(DungeonsAndDragonsContext _context, int chracterId)
        {
            List <Inventory> playersInventory = new List <Inventory>();

            var inventoryQuery = _context.inventory.Where(i => i.chracterid == chracterId);

            foreach (var item in inventoryQuery)
            {
                playersInventory.Add(item);
            }
            return(playersInventory);
        }
        public static List <InventoryMapping> GetPlayersInventoryForDisplay(DungeonsAndDragonsContext _context, int characterId)
        {
            IQueryable join = InventoryMapping.InventoryAndIventoryItemJoin(_context, characterId);

            List <InventoryMapping> userInventory = new List <InventoryMapping>();

            foreach (InventoryMapping item in join)
            {
                userInventory.Add(item);
            }

            return(userInventory);
        }
        public static bool ValidateAndSendInvite(DungeonsAndDragonsContext _context, int gameId, string inviteeUsername, string signedInUsername)
        {
            User invitedUser = _context.users.SingleOrDefault(x => x.username == inviteeUsername);

            if (ValidateInvite(_context, gameId, invitedUser.username, signedInUsername))
            {
                SendInvite(_context, gameId, invitedUser);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static GameUser GenerateCharacter(DungeonsAndDragonsContext _context, int gamesUsersId, int userId, int speciesId, string characterName)
        {
            Species species = Models.Species.GetSpeciesByID(_context, speciesId);

            PlayableCharacter newCharacter = Models.PlayableCharacter.CreateNewCharacter(_context, userId, characterName, speciesId, species.base_hp, species.base_attack, species.image_path, species.base_hp);

            GameUser AssignedCharacter = Models.GameUser.AssignCharacterToGamePlayer(_context, gamesUsersId, newCharacter.id);

            Inventory Coins = Models.Inventory.addItemToInventory(_context, newCharacter.id, 6, 100);

            Inventory Potion = Models.Inventory.addItemToInventory(_context, newCharacter.id, 1, 1);

            return(AssignedCharacter);
        }
Exemple #9
0
        public static Mapping GetStatsForNpcCharacter(DungeonsAndDragonsContext _context, int characterId)
        {
            IQueryable SpeciesandNPCJoin = Mapping.SpeciesAndNpcJoin(_context);

            Mapping characterStats = new Mapping();

            foreach (Mapping character in SpeciesandNPCJoin)
            {
                if (character.nonplayablecharacterid == characterId)
                {
                    characterStats = character;
                }
            }
            return(characterStats);
        }
        public static Mapping GetStatsForUserGeneratedCharacter(DungeonsAndDragonsContext _context, int characterId)
        {
            IQueryable speciesAndCharacterJoin = Mapping.SpeciesAndCharacterJoin(_context);

            Mapping characterStats = new Mapping();

            foreach (Mapping character in speciesAndCharacterJoin)
            {
                if (character.playablecharacterid == characterId)
                {
                    characterStats = character;
                }
            }
            return(characterStats);
        }
        public static void UseHealingItem(DungeonsAndDragonsContext _context, int playerInventoryItemId, int playableCharacterId)
        {
            var playerInventory = Inventory.GetPlayersInventoryForDisplay(_context, playableCharacterId);

            Inventory.RemoveHealingItemFromInventory(_context, playableCharacterId, playerInventoryItemId, 1);
            var healingFactor     = playerInventory.Find(i => i.id == playerInventoryItemId);
            var playableCharacter = GetPlayableCharacterById(_context, playableCharacterId);

            playableCharacter.currentHp += healingFactor.healingFactor;
            if (playableCharacter.currentHp > playableCharacter.maxHp)
            {
                playableCharacter.currentHp = playableCharacter.maxHp;
            }
            ;
            _context.SaveChanges();
        }
        public static bool IsUserInGame(DungeonsAndDragonsContext _context, int loggedInUserId, int gameId)
        {
            GameUser check   = _context.gamesusers.SingleOrDefault(x => x.gameid == gameId & x.userid == loggedInUserId);
            var      dmcheck = _context.games.Find(gameId);

            if (check != null)
            {
                return(true);
            }
            else if (dmcheck.dm == loggedInUserId)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #13
0
 public static IQueryable SpeciesAndNpcJoin(DungeonsAndDragonsContext _context)
 {
     return
         (from species in _context.species
          join character in _context.nonplayablecharacters
          on species.id equals character.species_id
          select new Mapping
     {
         speciesid = species.id,
         speciestype = species.species_type,
         speciesimage = species.image_path,
         speciesbasehp = species.base_hp,
         speciesbaseattack = species.base_attack,
         nonplayablecharacterid = character.id,
         nonplayablecharactername = character.name,
         nonplayablecharacterhp = character.maxHp,
         nonplayablecharacterattack = character.attack
     });
 }
      public static Merchant StartMerchant(DungeonsAndDragonsContext _context, int gameId)
      {
          int                      dmId            = _context.games.SingleOrDefault(x => x.id == gameId).dm;
          List <GameUser>          gameUserResults = _context.gamesusers.Where(x => x.gameid == gameId & x.playablecharacterid != null).ToList();
          List <PlayableCharacter> players         = new List <PlayableCharacter> {
          };

          foreach (var result in gameUserResults)
          {
              var player = _context.playablecharacters.SingleOrDefault(x => x.id == result.playablecharacterid);
              players.Add(player);
          }

          var merchant = new Merchant()
          {
              gameId = gameId, dmId = dmId, players = players
          };

          return(merchant);
      }
        public static string GetInvalidInviteString(DungeonsAndDragonsContext _context, int gameId, string inviteeUsername, string signedInUsername)
        {
            var inviteduser = _context.users.SingleOrDefault(x => x.username == inviteeUsername);

            if (inviteduser == null)
            {
                return("Player does not exist.");
            }
            else if (inviteeUsername == signedInUsername)
            {
                return("Cannot invite yourself to a game.");
            }
            else if (_context.gamesusers.SingleOrDefault(x => x.userid == inviteduser.id & x.gameid == gameId) != null)
            {
                return("Player has already been invited.");
            }
            else
            {
                return("Invite failed.");
            }
        }
Exemple #16
0
        public static IQueryable InventoryAndIventoryItemJoin(DungeonsAndDragonsContext _context, int charcterId)
        {
            IQueryable UsersInventory =
                from inventory in _context.inventory
                join InventoryItem in _context.inventoryitems
                on inventory.inventoryItemId equals InventoryItem.id
                where inventory.chracterid == charcterId
                select new InventoryMapping
            {
                id            = inventory.id,
                itemName      = InventoryItem.itemName,
                itemType      = InventoryItem.itemType,
                imagePath     = InventoryItem.imagePath,
                healingFactor = InventoryItem.healingFactor,
                attack        = InventoryItem.attack,
                quantity      = inventory.quantity,
                monetaryValue = InventoryItem.monetaryValue
            };

            return(UsersInventory);
        }
Exemple #17
0
        public static IQueryable GameUserAndPlayableCharacterJoin(DungeonsAndDragonsContext _context, int gameId)
        {
            IQueryable gameLobbyAcceptedAndPendingPlayers =
                from gameuser in _context.gamesusers
                join user in _context.users
                on gameuser.userid equals user.id
                join character in _context.playablecharacters
                on gameuser.playablecharacterid equals character.id into leftjoin
                from character in leftjoin.DefaultIfEmpty()
                where gameuser.gameid == gameId
                select new Mapping
            {
                userid                = user.id,
                userusername          = user.username,
                gameid                = gameuser.gameid,
                playablecharacterid   = gameuser.playablecharacterid,
                playablecharactername = character.name
            };

            return(gameLobbyAcceptedAndPendingPlayers);
        }
        public static Inventory RemoveHealingItemFromInventory(DungeonsAndDragonsContext _context, int chracterId, int itemId, int quantity)
        {
            List <Inventory> playersCurrentInventory = getPlayersInventory(_context, chracterId);

            Inventory itemToUpdate = playersCurrentInventory.FirstOrDefault(i => i.id == itemId);

            if (itemToUpdate != null)
            {
                if (itemToUpdate.quantity <= quantity)
                {
                    itemToUpdate.quantity = 0;
                }
                else
                {
                    itemToUpdate.quantity = itemToUpdate.quantity - quantity;
                }
                _context.SaveChanges();
            }

            return(itemToUpdate);
        }
        public static bool ValidateInvite(DungeonsAndDragonsContext _context, int gameId, string inviteeUsername, string signedInUsername)
        {
            var inviteduser = _context.users.SingleOrDefault(x => x.username == inviteeUsername);

            if (inviteduser == null)
            {
                return(false);
            }
            else if (inviteeUsername == signedInUsername)
            {
                return(false);
            }
            else if (_context.gamesusers.SingleOrDefault(x => x.userid == inviteduser.id & x.gameid == gameId) != null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Exemple #20
0
        public static IQueryable GameAndUserJoin(DungeonsAndDragonsContext _context, int loggedinuserid)
        {
            IQueryable useracceptedandpendinggames =
                from gameuser in _context.gamesusers
                join game in _context.games
                on gameuser.gameid equals game.id
                join user in _context.users
                on game.dm equals user.id
                where gameuser.userid == loggedinuserid
                select new Mapping
            {
                id                  = gameuser.id,
                gameid              = game.id,
                gamename            = game.name,
                gamedm              = game.dm,
                playablecharacterid = gameuser.playablecharacterid,
                userid              = user.id,
                userusername        = user.username
            };

            return(useracceptedandpendinggames);
        }
        public static Inventory addItemToInventory(DungeonsAndDragonsContext _context, int chracterId, int itemId, int quantity)
        {
            List <Inventory> playersCurrentInventory = getPlayersInventory(_context, chracterId);

            Inventory itemToUpdate = playersCurrentInventory.FirstOrDefault(i => i.inventoryItemId == itemId);

            if (itemToUpdate == null)
            {
                itemToUpdate = new Inventory
                {
                    chracterid      = chracterId,
                    inventoryItemId = itemId,
                    quantity        = quantity
                };
                _context.inventory.Add(itemToUpdate);
            }
            else
            {
                itemToUpdate.quantity = itemToUpdate.quantity + quantity;
            }
            _context.SaveChanges();
            return(itemToUpdate);
        }
 public static PlayableCharacter GetPlayableCharacterById(DungeonsAndDragonsContext _context, int playableCharacterId)
 {
     return(_context.playablecharacters.SingleOrDefault(p => p.id == playableCharacterId));
 }
 public static IQueryable <Game> GetDMGames(DungeonsAndDragonsContext _context, int loggedinuserid)
 {
     return(_context.games.Where(x => x.dm == loggedinuserid));
 }
 public static Game getGameById(DungeonsAndDragonsContext _context, int gameId)
 {
     return(_context.games.SingleOrDefault(x => x.id == gameId));
 }
 public static GameUser GetGameUserByID(DungeonsAndDragonsContext _context, int gameUserId)
 {
     return(_context.gamesusers.Find(gameUserId));
 }
Exemple #26
0
        public static NonPlayableCharacter GenerateNPC(DungeonsAndDragonsContext _context, int gameId, int species_id, string characterName)
        {
            Species species = Species.GetSpeciesByID(_context, species_id);

            return(CreateNonPlayableCharacter(_context, gameId, characterName, species_id, species.base_hp, species.base_attack, species.image_path, species.base_hp));
        }
Exemple #27
0
 public static User GetUserByUserName(DungeonsAndDragonsContext _context, string username)
 {
     return(_context.users.SingleOrDefault(c => c.username == username));
 }
 public static Species GetSpeciesByID(DungeonsAndDragonsContext _context, int speciesId)
 {
     return(_context.species.SingleOrDefault(s => s.id == speciesId));
 }
 public static InventoryItem GetInventoryItemById(DungeonsAndDragonsContext _context, int itemId)
 {
     return(_context.inventoryitems.Single(i => i.id == itemId));
 }