예제 #1
0
 public bool IsCharacterReset(string character)
 {
     int resetLevel = Int32.Parse(ConfigurationManager.AppSettings["ResetLevel"]);
    
     using (var c = new GameDbContext()){
         Character ch = c.Characters.Find(character);
         if (ch.cLevel < resetLevel) return false;
         else if (ch.Money < GetResetCost(ch.Resets)) return false;
         else return true;
     }
     //return false;
 }
예제 #2
0
 public bool IsCharacterOwned(string user, string character)
 {
     using (var c = new GameDbContext())
     {
         AccountCharacter ac = c.AccountsEx.Find(user);
         if (ac.GameID1 != null && ac.GameID1.Equals(character)) return true;
         if (ac.GameID2 != null && ac.GameID2.Equals(character)) return true;
         if (ac.GameID3 != null && ac.GameID3.Equals(character)) return true;
         if (ac.GameID4 != null && ac.GameID4.Equals(character)) return true;
         if (ac.GameID5 != null && ac.GameID5.Equals(character)) return true;
     }
     return false;
 }
예제 #3
0
 public GameMessageId UnstuckChar(string user, string character)
 {
     if (!IsCharacterOwned(user, character)) return GameMessageId.Error;
     if (IsConnected(user)) return GameMessageId.AccountConnected;
     using (var c = new GameDbContext())
     {
         Character ch = c.Characters.Find(character);
         ch.MapNumber = 0;
         ch.MapPosX = 135;
         ch.MapPosY = 127;
         c.SaveChanges();
     }
     return GameMessageId.UnstuckSucces;
 }
예제 #4
0
        public GameMessageId ResetCharacter(string user, string character)
        {
            if (!IsCharacterOwned(user,character)) return GameMessageId.Error;
            if (IsConnected(user)) return GameMessageId.AccountConnected;
            int resetLevel = Int32.Parse(ConfigurationManager.AppSettings["ResetLevel"]);
            int resetCap = Int32.Parse(ConfigurationManager.AppSettings["ResetMax"]);

            using (var c = new GameDbContext())
            {
                Character ch = c.Characters.Find(character);
                //maybe not needed
                //ch = (Character)c.Entry(ch).GetDatabaseValues().ToObject();
                if (ch.cLevel < resetLevel)
                    return GameMessageId.ResetFailLevel;
                else if (ch.Resets >= resetCap) return GameMessageId.ResetFailCap;
                else if (ch.Money < GetResetCost(ch.Resets)) return GameMessageId.ResetFailZen;
                else
                {
                    //db.Users.Attach(updatedUser);
                    //var entry = db.Entry(updatedUser);
                    //entry.Property(e => e.Email).IsModified = true;
                    //// other changed properties
                    //db.SaveChanges();
                    ch.cLevel = 1;
                    ch.Experience = 0;
                    ch.Money -= GetResetCost(ch.Resets);
                    ch.MapNumber = 0;
                    ch.MapPosX = 182;
                    ch.MapPosY = 128;
                    ch.Resets += 1;
                    c.SaveChanges();
                    //c.Entry(ch).GetDatabaseValues();
                    return GameMessageId.ResetSuccess;
                }

            }
        }
예제 #5
0
 public ICollection<Character> GetCharsFor(string user)
 {
     using (var c = new GameDbContext())
     {
         return c.Characters.Where(a => a.AccountID == user).ToArray<Character>();
     }
 }
예제 #6
0
 public Warehouse GetVaultFor(string account)
 {
     using (var c = new GameDbContext())
     {
         return c.Vaults.Find(account);
     }
 }
예제 #7
0
        public bool IsConnected(string user)
        {
            using (var c = new GameDbContext())
            {
                var temp = c.Status.Find(user);
                if (temp != null && temp.ConnectStat == 1) return true;
            }

            return false;
        }