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); } }
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); } }
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); }
public static List <Skill> GetSkills(Player player) { return(PlayerClass.ClassList().FirstOrDefault(x => x.Value.Name.Equals(player.SelectedClass)).Value.Skills); }