This commit is contained in:
Juzlus 2025-08-29 02:41:39 +02:00
parent 6b8988ade4
commit 26cb787b57
125 changed files with 9157 additions and 1940 deletions

View file

@ -11,14 +11,11 @@ namespace jRandomSkills
{
public class Armored : ISkill
{
private static Skills skillName = Skills.Armored;
private const Skills skillName = Skills.Armored;
public static void LoadSkill()
{
if (Config.config.SkillsInfo.FirstOrDefault(s => s.Name == skillName.ToString())?.Active != true)
return;
SkillUtils.RegisterSkill(skillName, "#d1430a", false);
SkillUtils.RegisterSkill(skillName, Config.GetValue<string>(skillName, "color"), false);
VirtualFunctions.CBaseEntity_TakeDamageOldFunc.Hook(OnTakeDamage, HookMode.Pre);
@ -44,10 +41,7 @@ namespace jRandomSkills
{
var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
var skillConfig = Config.config.SkillsInfo.FirstOrDefault(s => s.Name == skillName.ToString());
if (skillConfig == null) return;
float newScale = (float)Instance.Random.NextDouble() * (skillConfig.ChanceTo - skillConfig.ChanceFrom) + skillConfig.ChanceFrom;
float newScale = (float)Instance.Random.NextDouble() * (Config.GetValue<float>(skillName, "ChanceTo") - Config.GetValue<float>(skillName, "ChanceFrom")) + Config.GetValue<float>(skillName, "ChanceFrom");
playerInfo.SkillChance = newScale;
newScale = (float)Math.Round(newScale, 2);
SkillUtils.PrintToChat(player, $"{ChatColors.DarkRed}{Localization.GetTranslation("armored")}{ChatColors.Lime}: " + Localization.GetTranslation("armored_desc2", newScale), false);
@ -73,15 +67,24 @@ namespace jRandomSkills
CCSPlayerController attacker = attackerPawn.Controller.Value.As<CCSPlayerController>();
CCSPlayerController victim = victimPawn.Controller.Value.As<CCSPlayerController>();
var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID);
var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == victim.SteamID);
if (playerInfo == null) return HookResult.Continue;
if (playerInfo.Skill == skillName && attacker.PawnIsAlive)
{
if (playerInfo.Skill == skillName && victim.PawnIsAlive)
param2.Damage *= (float)playerInfo.SkillChance;
}
return HookResult.Continue;
}
public class SkillConfig : Config.DefaultSkillInfo
{
public float ChanceFrom { get; set; }
public float ChanceTo { get; set; }
public SkillConfig(Skills skill = skillName, bool active = true, string color = "#d1430a", CsTeam onlyTeam = CsTeam.None, bool needsTeammates = false, float chanceFrom = .65f, float chanceTo = .85f) : base(skill, active, color, onlyTeam, needsTeammates)
{
ChanceFrom = chanceFrom;
ChanceTo = chanceTo;
}
}
}
}