public void PlayerLevelUp(PlayerController player, SkillStat skill) { if (!player) { return; } SaveGameStat("last-level-up-name", player.PlayerName); SaveGameStat("last-level-up-skill", skill?.ToString()); }
public override void Handle(PlayerStatsRequest data, GameClient client) { var player = this.PlayerManager.GetPlayer(data.Player); if (!player) { client.SendCommand(data.Player.Username, "player_stats", "You are not currently playing. Use !join to start playing!"); return; } var ps = player.Stats; var eq = player.EquipmentStats; if (!string.IsNullOrEmpty(data.Skill)) { SkillStat skill = null; var csi = player.GetCombatTypeFromArgs(data.Skill); if (csi != -1) { skill = player.GetCombatSkill(csi); } if (skill == null) { var cs = player.GetSkillTypeFromArgs(data.Skill); if (cs != -1) { skill = player.GetSkill(cs); } } if (skill != null) { client.SendCommand(data.Player.Username, "player_stats", skill.ToString()); } return; } var combatLevel = ps.CombatLevel; var skills = ""; var total = ps .GetType() .GetFields(BindingFlags.Instance | BindingFlags.Public) .Where(x => x.FieldType == typeof(SkillStat)) .Select(x => { skills += (SkillStat)x.GetValue(ps) + ", "; return(x); }) .Sum(x => ((SkillStat)x.GetValue(ps)).Level); client.SendCommand(data.Player.Username, "player_stats", $"Combat level {combatLevel}, " + skills + $" -- TOTAL {total} --, " + $"Eq - power {eq.WeaponPower}, " + $"aim {eq.WeaponAim}, " + $"armor {eq.ArmorPower}"); }
public override void Handle(PlayerStatsRequest data, GameClient client) { var player = PlayerManager.GetPlayer(data.Player); if (!player) { client.SendMessage(data.Player.Username, Localization.MSG_NOT_PLAYING); return; } if (!string.IsNullOrEmpty(data.Skill)) { var targetPlayer = PlayerManager.GetPlayerByName(data.Skill); if (targetPlayer != null) { SendPlayerStats(targetPlayer, client); return; } SkillStat skill = null; var csi = player.GetCombatTypeFromArgs(data.Skill); if (csi != -1) { skill = player.GetCombatSkill(csi); } if (skill == null) { var cs = player.GetSkillTypeFromArgs(data.Skill); if (cs != -1) { skill = player.GetSkill((Skill)cs); } } if (skill != null) { var expRequired = GameMath.ExperienceForLevel(skill.Level + 1); var expReq = (long)expRequired; var curExp = (long)skill.Experience; client.SendMessage(data.Player.Username, Localization.MSG_SKILL, skill.ToString(), FormatValue(curExp), FormatValue(expReq)); } return; } SendPlayerStats(player, client); }
public override void Handle(PlayerStatsRequest data, GameClient client) { var player = PlayerManager.GetPlayer(data.Player); if (!player) { client.SendCommand(data.Player.Username, "player_stats", "You are not currently playing. Use !join to start playing!"); return; } if (!string.IsNullOrEmpty(data.Skill)) { var targetPlayer = PlayerManager.GetPlayerByName(data.Skill); if (targetPlayer != null) { SendPlayerStats(targetPlayer, client); return; } SkillStat skill = null; var csi = player.GetCombatTypeFromArgs(data.Skill); if (csi != -1) { skill = player.GetCombatSkill(csi); } if (skill == null) { var cs = player.GetSkillTypeFromArgs(data.Skill); if (cs != -1) { skill = player.GetSkill(cs); } } if (skill != null) { client.SendCommand(data.Player.Username, "player_stats", skill.ToString()); } return; } SendPlayerStats(player, client); }