示例#1
0
        public void GainLevel(PlayerSetup.Player player)
        {
            if (HasGainedLevel(player))
            {
                player.Level += 1;
                var carryOverExcessXp = Math.Max(player.Experience - player.ExperienceToNextLevel, 0);
                player.Experience            = carryOverExcessXp;
                player.ExperienceToNextLevel = GetTNL(player);

                var selectedClass = PlayerClass.ClassList().FirstOrDefault(x => x.Value.Name.ToLower().StartsWith(player.SelectedClass, StringComparison.CurrentCultureIgnoreCase));
                var dice          = new Helpers();

                var hpGain        = dice.dice(1, selectedClass.Value.MinHpGain, selectedClass.Value.MaxHpGain);
                var manaGain      = dice.dice(1, selectedClass.Value.MinHpGain, selectedClass.Value.MaxHpGain);
                var enduranceGain = dice.dice(1, selectedClass.Value.MinHpGain, selectedClass.Value.MaxHpGain);
                //tell user they have gained a level

                player.MaxHitPoints  += hpGain;
                player.MaxManaPoints += manaGain;
                player.MaxMovePoints += enduranceGain;

                //tell user how much HP / mana / mvs / practices / trains they have gained

                HubContext.SendToClient("Congratulations, you are now level " + player.Level + ". You have gained. HP: " + hpGain + " Mana: " + manaGain + " End: " + enduranceGain, player.HubGuid);

                Save.SavePlayer(player);
                //save player

                //check player hasn't leveled again
                GainLevel(player);
            }
        }
示例#2
0
        public void GainLevel(PlayerSetup.Player player)
        {
            if (player.Type == PlayerSetup.Player.PlayerTypes.Mob)
            {
                return;
            }

            if (HasGainedLevel(player))
            {
                player.Level += 1;
                var carryOverExcessXp = Math.Max(player.Experience - player.ExperienceToNextLevel, 0);
                player.Experience            = carryOverExcessXp;
                player.ExperienceToNextLevel = GetTNL(player);

                var selectedClass    = PlayerClass.ClassList().FirstOrDefault(x => x.Value.Name.ToLower().StartsWith(player.SelectedClass, StringComparison.CurrentCultureIgnoreCase));
                var dice             = new Helpers();
                var maxHPGain        = selectedClass.Value.MaxHpGain;
                var maxEnduranceGain = selectedClass.Value.MaxEnduranceGain;

                if (Skill.CheckPlayerHasSkill(player, "Toughness"))
                {
                    var chanceOfSuccess = Helpers.Rand(1, 100);

                    var hasSkill = player.Skills.FirstOrDefault(x => x.Name.Equals("Toughness"));
                    if (hasSkill != null && hasSkill.Proficiency >= chanceOfSuccess)
                    {
                        maxHPGain        *= 3;
                        maxEnduranceGain *= 3;
                    }
                }

                var hpGain        = dice.dice(1, selectedClass.Value.MinHpGain, maxHPGain);
                var manaGain      = dice.dice(1, selectedClass.Value.MinManaGain, selectedClass.Value.MaxManaGain);
                var enduranceGain = dice.dice(1, selectedClass.Value.MinEnduranceGain, maxEnduranceGain);
                //tell user they have gained a level

                player.MaxHitPoints  += hpGain;
                player.MaxManaPoints += manaGain;
                player.MaxMovePoints += enduranceGain;

                //tell user how much HP / mana / mvs / practices / trains they have gained

                HubContext.Instance.SendToClient("<span style='color:yellow'>Congratulations, you are now level " + player.Level + ". You have gained. HP: " + hpGain + " Mana: " + manaGain + " End: " + enduranceGain + "</span>", player.HubGuid);

                Score.ReturnScoreUI(player);

                Save.SavePlayer(player);
                //save player

                //check player hasn't leveled again
                GainLevel(player);

                var discordToSay = player.Name + " is now level " + player.Level;

                var discordBot = new HomeController();
                discordBot.PostToDiscord(discordToSay);
            }
        }
示例#3
0
        public int GetTNL(PlayerSetup.Player player)
        {
            //find race add them all also
            // var selectedRace = PlayerClass.ClassList().FirstOrDefault(x => x.Value.Name.ToLower().StartsWith(player.SelectedClass, StringComparison.CurrentCultureIgnoreCase));
            //create the other classes
            var selectedClass = PlayerClass.ClassList().FirstOrDefault(x => x.Value.Name.ToLower().StartsWith(player.SelectedClass, StringComparison.CurrentCultureIgnoreCase));
            var tnl           = player.Level * player.Level * player.Level * 2 * selectedClass.Value.ExperienceModifier;

            return(tnl);
        }
示例#4
0
 public static List <Skill> GetSkills(Player player)
 {
     return(PlayerClass.ClassList().FirstOrDefault(x => x.Value.Name.Equals(player.SelectedClass)).Value.Skills);
 }