diff --git a/src/TerraSharp/Core/Hotkeys.cs b/src/TerraSharp/Core/Hotkeys.cs index 3e12801..d308544 100644 --- a/src/TerraSharp/Core/Hotkeys.cs +++ b/src/TerraSharp/Core/Hotkeys.cs @@ -32,6 +32,7 @@ public static class Hotkeys Toggle("Player", "GodMode", "God Mode", () => Settings.GodMode, v => Settings.GodMode = v), Toggle("Player", "GhostMode", "Ghost Mode", () => Settings.GhostMode, v => Settings.GhostMode = v), + Toggle("Player", "DefenseBoost", "Defense Multiplier", () => Settings.DefenseBoost, v => Settings.DefenseBoost = v), Toggle("Player", "AutoHeal", "Auto Heal", () => Settings.AutoHeal, v => Settings.AutoHeal = v), Toggle("Player", "AutoMana", "Auto Mana", () => Settings.AutoMana, v => Settings.AutoMana = v), new("Player", "FullHeal", "Full Heal", PlayerFeatures.FullHeal), diff --git a/src/TerraSharp/Core/Settings.Json.cs b/src/TerraSharp/Core/Settings.Json.cs index fe994f0..9c7d37b 100644 --- a/src/TerraSharp/Core/Settings.Json.cs +++ b/src/TerraSharp/Core/Settings.Json.cs @@ -18,6 +18,8 @@ public static partial class Settings [nameof(AutoManaAt)] = "Player.AutoMana.Threshold", [nameof(BuffMinutes)] = "Player.Buffs.Minutes", [nameof(GhostMode)] = "Player.GhostMode", + [nameof(DefenseBoost)] = "Player.DefenseBoost.Enabled", + [nameof(DefenseMult)] = "Player.DefenseBoost.Multiplier", [nameof(Fly)] = "Movement.Fly.Enabled", [nameof(FlySpeed)] = "Movement.Fly.Speed", diff --git a/src/TerraSharp/Core/Settings.cs b/src/TerraSharp/Core/Settings.cs index 1433706..0dbfb20 100644 --- a/src/TerraSharp/Core/Settings.cs +++ b/src/TerraSharp/Core/Settings.cs @@ -23,8 +23,8 @@ public enum EspBoxStyle public static partial class Settings { public static bool GodMode, InfHealth, InfMana, InfBreath, InfFlight, InstantRespawn; - public static bool AutoHeal, AutoMana, GhostMode; - public static float AutoHealAt = 40f, AutoManaAt = 25f, BuffMinutes = 10f; + public static bool AutoHeal, AutoMana, GhostMode, DefenseBoost; + public static float AutoHealAt = 40f, AutoManaAt = 25f, BuffMinutes = 10f, DefenseMult = 3f; public static bool Fly, SuperSpeed, HighJump, NoFallDamage, LavaImmune, WaterWalk, NoKnockback, GravityFlip, ExtendedReach; public static float FlySpeed = 12f, SpeedMult = 3f; diff --git a/src/TerraSharp/Features/PlayerFeatures.cs b/src/TerraSharp/Features/PlayerFeatures.cs index 9da08e7..b283252 100644 --- a/src/TerraSharp/Features/PlayerFeatures.cs +++ b/src/TerraSharp/Features/PlayerFeatures.cs @@ -92,6 +92,12 @@ public static class PlayerFeatures Player.tileRangeY = Settings.ReachY; } + if (Settings.DefenseBoost) +#if TMODLOADER + player.statDefense.FinalMultiplier *= Settings.DefenseMult; +#else + player.statDefense = (int)(player.statDefense * Settings.DefenseMult); +#endif if (Settings.GhostMode) ApplyGhost(player); diff --git a/src/TerraSharp/UI/MainWindow.Pages.cs b/src/TerraSharp/UI/MainWindow.Pages.cs index 5430b99..2ce8af7 100644 --- a/src/TerraSharp/UI/MainWindow.Pages.cs +++ b/src/TerraSharp/UI/MainWindow.Pages.cs @@ -20,6 +20,8 @@ public sealed partial class MainWindow Group("Survival"); Toggle("God Mode", ref Settings.GodMode); Toggle("Ghost Mode", ref Settings.GhostMode); + if (Toggle("Defense Multiplier", ref Settings.DefenseBoost)) + Sub(() => Slider("Multiplier", ref Settings.DefenseMult, 1f, 20f, 3f, "x{0:0.0}")); Toggle("Infinite Breath", ref Settings.InfBreath); Toggle("Infinite Flight", ref Settings.InfFlight); Toggle("Infinite Health", ref Settings.InfHealth); diff --git a/src/TerraSharp/UI/MainWindow.Tooltips.cs b/src/TerraSharp/UI/MainWindow.Tooltips.cs index c6b54b8..33ba9c2 100644 --- a/src/TerraSharp/UI/MainWindow.Tooltips.cs +++ b/src/TerraSharp/UI/MainWindow.Tooltips.cs @@ -13,6 +13,7 @@ public sealed partial class MainWindow ["Auto Heal"] = "Uses Quick Heal below the set health level. Waits for potion sickness to end.", ["Auto Mana"] = "Uses Quick Mana below the set mana level.", ["Ghost Mode"] = "Enemies stop chasing you. Bosses and some flying enemies still attack.", + ["Defense Multiplier"] = "Multiplies your total defense.", ["Fly"] = "Move through blocks with your movement keys. Up or Jump rises; Down descends.", ["Gravity Flip"] = "Walk on the ceiling.", ["Lava Immune"] = "Also protects against hot blocks.", diff --git a/src/TerraSharp/UI/MainWindow.cs b/src/TerraSharp/UI/MainWindow.cs index 4c566b6..f586ce5 100644 --- a/src/TerraSharp/UI/MainWindow.cs +++ b/src/TerraSharp/UI/MainWindow.cs @@ -30,7 +30,7 @@ public sealed partial class MainWindow : Window Open = true; _pages = [ - new Page("Player", PlayerPage, () => Count(Settings.GodMode, Settings.InfHealth, Settings.InfMana, Settings.InfBreath, Settings.InfFlight, Settings.InstantRespawn, Settings.AutoHeal, Settings.AutoMana, Settings.GhostMode)), + new Page("Player", PlayerPage, () => Count(Settings.GodMode, Settings.InfHealth, Settings.InfMana, Settings.InfBreath, Settings.InfFlight, Settings.InstantRespawn, Settings.AutoHeal, Settings.AutoMana, Settings.GhostMode, Settings.DefenseBoost)), new Page("Movement", MovementPage, () => Count(Settings.Fly, Settings.SuperSpeed, Settings.HighJump, Settings.GravityFlip, Settings.NoFallDamage, Settings.LavaImmune, Settings.WaterWalk, Settings.NoKnockback, Settings.ExtendedReach)), new Page("Combat", CombatPage, () => Count(Settings.RapidAttack, Settings.AutoSwing, Settings.DamageBoost, Settings.NoManaCost, Settings.NoSpread, Settings.Aimbot, Settings.AutoAttack, Settings.KillAura, Settings.HitMagnet, Settings.FreezeEnemies, Settings.WeakenEnemies)), new Page("Items", ItemsPage, () => Count(Settings.InstantBreak, Settings.InfItems, Settings.ItemVacuum, Settings.AutoFish, Settings.Sonar)),