Exemple #1
0
        // GET: CharacterInfo/Details/5
        public ActionResult Duel(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CharacterInfo characterInfo = db.CharacterInfo.Find(id);

            if (characterInfo == null)
            {
                return(HttpNotFound());
            }
            var user = UserManager.FindById(User.Identity.GetUserId());

            if (characterInfo.PlayerID == user.Id)
            {
                DuelViewModel model = new DuelViewModel();
                model.DuelInitiator = characterInfo;
                model.WinPercent    = model.CalculateWinPercent(model.DuelInitiator);
                model.DuelInitiator.DuelsAvailable = 50;
                model.DuelInitiator.DuelHistory    = db.DuelHistory.Where(x => x.CharacterInfoID == model.DuelInitiator.ID).ToList();
                return(View(model));
            }
            else
            {
                TempData["message"] = "Unable to access other player's characters.";
                return(RedirectToAction("Index", "CharacterInfo"));
            }
        }
Exemple #2
0
        public static DuelViewModel Execute(DuelViewModel duelCharacterInfo, CharacterClassContext db)
        {
            int totalPlayers = duelCharacterInfo.PlayersTotal;

            //Duel the amount of times requested
            for (int i = 0; i < duelCharacterInfo.DuelsRequested; i++)
            {
                int idToFind = -1;
                //As long as the player info is null, we want to repeat and select a new one, it would be null because the random number generated belongs to a deleted account
                while (idToFind <= 0)
                {
                    idToFind = CheckIfPlayerExists(totalPlayers, db, duelCharacterInfo.DuelInitiator);
                }
Exemple #3
0
        public ActionResult Edit([Bind(Include = "ID,CharacterName,CharacterClass,Level,StatPointsAvailable,CurrentExperience,MaxExperienceForLevel,Health,Strength,Dexterity,Vitality,Luck,PlayerID,DuelsAvailable,DuelWins,DuelLosses,Damage,CritChance,Dodge,CharacterInfo,DuelInitiator,DuelsRequested,DuelHistory")] DuelViewModel duelInfoReturn)
        {
            //Get the last entry in table as that IDs go up by 1 and that will always be the highest number for random generation
            CharacterInfo lastPlayer = new CharacterInfo();

            lastPlayer = db.CharacterInfo.OrderByDescending(x => x.ID).First();
            //Apply the last player to the view model to send to the duel logic
            duelInfoReturn.PlayersTotal = lastPlayer.ID;
            duelInfoReturn = CalculateDuelResultCommand.Execute(duelInfoReturn, db);

            //Set the character to the viewmodel
            CharacterInfo characterInfoSet = duelInfoReturn.DuelInitiator;
            CharacterInfo duelTargetInfo   = duelInfoReturn.DuelTarget;

            //This is only a test
            TempData["message"] = duelInfoReturn.DuelTarget.CharacterName + "Was his namo" + characterInfoSet.CharacterName + "was the fighter Wins are: " + characterInfoSet.DuelWins + "Losses are: " + characterInfoSet.DuelLosses;
            //db.Entry(characterInfoSet).State = EntityState.Modified;
            db.Set <CharacterInfo>().AddOrUpdate(characterInfoSet);
            db.Set <CharacterInfo>().AddOrUpdate(duelTargetInfo);
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }