Update 0.01 E

This commit is contained in:
JJ
2025-11-24 01:26:00 -05:00
parent ab438856ad
commit 16fb766d9a
391 changed files with 205 additions and 322895 deletions
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;dependencies;bin" />
</assemblyBinding>
</runtime>
</configuration>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>
+7 -11
View File
@@ -1,14 +1,12 @@
// ConfigLoader.cs
using System;
using System;
using System.Globalization;
using System.IO;
using System.Runtime.Remoting.Messaging;
namespace Lua
{
internal static class ConfigLoader
{
// Basic flags / settings
// Basic flags/settings
public static bool debitFlag1 = false;
public static bool betaTest = false;
public static bool ttsEnabled = true;
@@ -18,10 +16,8 @@ namespace Lua
public static int prevSetKey = 0x06; // XBUTTON2
public static int refreshKey = 0x50; // P
public static int switchSideKey = 0x4D; // M
public static int shootKey = 0x01; // Left mouse button
public static int altShootKey = 0x02;
public static int shootKey = 0x01; // Left mouse button
public static int altShootKey = 0x02; // Right mouse button
// Favorites and user
public static string favoriteAttackers = null;
@@ -41,7 +37,7 @@ namespace Lua
/// </summary>
public static void LoadInitConfig()
{
// reset to defaults
// Reset to defaults
debitFlag1 = false;
betaTest = false;
ttsEnabled = true;
@@ -64,7 +60,7 @@ namespace Lua
if (string.IsNullOrWhiteSpace(raw)) continue;
var line = raw.Trim();
// ignore comments
// Ignore comments
if (line.StartsWith("--") || line.StartsWith("#")) continue;
if (Helper.ParseBoolFromAssignment(line, "debitFlag1", out var b1))
@@ -109,7 +105,7 @@ namespace Lua
}
catch
{
// ignore if console doesn't support color
// Ignore if console doesn't support color
}
}
}
+35 -23
View File
@@ -8,12 +8,12 @@ namespace Lithium
{
private const int CAPSLOCK = 0x14;
private static bool nextSetHeld, prevSetHeld, refreshHeld, switchSideHeld, capsHeld;
private static MainWindow mainWindow;
private static bool _nextSetHeld, _prevSetHeld, _refreshHeld, _switchSideHeld, _capsHeld;
private static MainWindow _mainWindow;
public static void Start(MainWindow window)
{
mainWindow = window;
_mainWindow = window;
while (true)
{
@@ -29,52 +29,64 @@ namespace Lithium
private static void HandleToggleCapsLock()
{
bool capsDown = Utils.IsPressed(CAPSLOCK);
if (capsDown && !capsHeld)
if (capsDown && !_capsHeld)
{
capsHeld = true;
mainWindow.SetRecoilEnabled(!mainWindow.IsRecoilEnabled);
_capsHeld = true;
_mainWindow.SetRecoilEnabled(!_mainWindow.IsRecoilEnabled);
}
if (!capsDown) capsHeld = false;
if (!capsDown) _capsHeld = false;
}
private static void HandleNextSet()
{
if (Utils.IsPressed(ConfigLoader.nextSetKey) && !nextSetHeld)
if (Utils.IsPressed(ConfigLoader.nextSetKey) && !_nextSetHeld)
{
nextSetHeld = true;
mainWindow.HandleNextSet();
_nextSetHeld = true;
_mainWindow.HandleNextSet();
}
else if (!Utils.IsPressed(ConfigLoader.nextSetKey))
{
_nextSetHeld = false;
}
else if (!Utils.IsPressed(ConfigLoader.nextSetKey)) nextSetHeld = false;
}
private static void HandlePrevSet()
{
if (Utils.IsPressed(ConfigLoader.prevSetKey) && !prevSetHeld)
if (Utils.IsPressed(ConfigLoader.prevSetKey) && !_prevSetHeld)
{
prevSetHeld = true;
mainWindow.HandlePrevSet();
_prevSetHeld = true;
_mainWindow.HandlePrevSet();
}
else if (!Utils.IsPressed(ConfigLoader.prevSetKey))
{
_prevSetHeld = false;
}
else if (!Utils.IsPressed(ConfigLoader.prevSetKey)) prevSetHeld = false;
}
private static void HandleRefresh()
{
if (Utils.IsPressed(ConfigLoader.refreshKey) && !refreshHeld)
if (Utils.IsPressed(ConfigLoader.refreshKey) && !_refreshHeld)
{
refreshHeld = true;
mainWindow.HandleRefresh();
_refreshHeld = true;
_mainWindow.HandleRefresh();
}
else if (!Utils.IsPressed(ConfigLoader.refreshKey))
{
_refreshHeld = false;
}
else if (!Utils.IsPressed(ConfigLoader.refreshKey)) refreshHeld = false;
}
private static void HandleSwitchSide()
{
if (Utils.IsPressed(ConfigLoader.switchSideKey) && !switchSideHeld)
if (Utils.IsPressed(ConfigLoader.switchSideKey) && !_switchSideHeld)
{
switchSideHeld = true;
mainWindow.HandleSwitchSide();
_switchSideHeld = true;
_mainWindow.HandleSwitchSide();
}
else if (!Utils.IsPressed(ConfigLoader.switchSideKey))
{
_switchSideHeld = false;
}
else if (!Utils.IsPressed(ConfigLoader.switchSideKey)) switchSideHeld = false;
}
}
}
+10 -7
View File
@@ -52,7 +52,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>a23ae8c4c6863364165637fb70679eb3.ico</ApplicationIcon>
<ApplicationIcon>A1\a23ae8c4c6863364165637fb70679eb3.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
@@ -109,19 +109,18 @@
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<ApplicationDefinition Include="A1\App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="HotkeyHandler.cs" />
<Compile Include="RecoilControl.cs" />
<Compile Include="RecoilEngine.cs" />
<Compile Include="Utils.cs" />
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<Compile Include="A1\App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
@@ -151,14 +150,14 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="A1\packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="A1\App.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
@@ -188,10 +187,14 @@
<ReferenceCopyLocalPaths Include="@(ReferencePath)" />
</ItemGroup>
<ItemGroup>
<Resource Include="a23ae8c4c6863364165637fb70679eb3.ico" />
<Resource Include="A1\a23ae8c4c6863364165637fb70679eb3.ico" />
</ItemGroup>
<Target Name="CopyDllsToLib" AfterTargets="Build">
<MakeDir Directories="$(OutputPath)lib" />
<Copy SourceFiles="@(ReferenceCopyLocalPaths)" DestinationFolder="$(OutputPath)lib" SkipUnchangedFiles="true" />
</Target>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
+1 -1
View File
@@ -19,7 +19,7 @@
<!-- Left: Icon + Title -->
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="10,0,0,0">
<Image Source="/a23ae8c4c6863364165637fb70679eb3.ico" Width="20" Height="20" Margin="0,0,10,0"/>
<Image Source="/A1/a23ae8c4c6863364165637fb70679eb3.ico" Width="20" Height="20" Margin="0,0,10,0"/>
<TextBlock Text="Lithium" Foreground="White" VerticalAlignment="Center" FontSize="14" FontWeight="SemiBold"/>
</StackPanel>
+65 -73
View File
@@ -7,10 +7,7 @@ namespace Lua
{
static class OperatorSets
{
// ======================================================
// DATA TABLES
// ======================================================
// Data tables
public static Dictionary<string, (double recoilX, double recoilY)> attackers =
new Dictionary<string, (double, double)>(StringComparer.OrdinalIgnoreCase);
@@ -27,9 +24,7 @@ namespace Lua
public static int currentSetIndex = 0;
public static bool onAttackers = true;
// ======================================================
// ONLINE CONFIG URL
// ======================================================
// Online config URL
private static string OnlineConfigUrl =>
string.IsNullOrEmpty(ConfigLoader.userName)
? null
@@ -40,10 +35,7 @@ namespace Lua
? null
: $"https://jj.giggity.gay/exindex.html?name={Uri.EscapeDataString(ConfigLoader.userName)}";
// ======================================================
// CURRENT SET + CURRENT OPERATOR
// ======================================================
// Current set + current operator
public static string CurrentSet
{
get
@@ -59,11 +51,10 @@ namespace Lua
{
get
{
if (!string.IsNullOrWhiteSpace(_currentOperator) &&
mergedSets.ContainsKey(_currentOperator))
if (!string.IsNullOrWhiteSpace(_currentOperator) && mergedSets.ContainsKey(_currentOperator))
return _currentOperator;
return CurrentSet; // fallback
return CurrentSet; // Fallback
}
set
{
@@ -72,9 +63,7 @@ namespace Lua
}
}
// ======================================================
// GET CURRENT RECOIL
// ======================================================
// Get current recoil
public static (double recoilX, double recoilY) GetCurrentRecoil()
{
string op = CurrentOperator;
@@ -88,9 +77,7 @@ namespace Lua
return (0, 0);
}
// ======================================================
// LOAD CONFIG
// ======================================================
// Load config
public static void LoadOperatorSets(bool allowOnlineFetch = true)
{
attackers.Clear();
@@ -100,7 +87,7 @@ namespace Lua
var allLines = new List<string>();
// ---------- ONLINE ----------
// Online fetch
if (allowOnlineFetch && !string.IsNullOrEmpty(OnlineConfigUrl))
{
try
@@ -112,18 +99,18 @@ namespace Lua
allLines.AddRange(txt.Split('\n'));
}
}
catch { }
catch { /* Ignore online fetch errors */ }
}
// ---------- LOCAL ----------
// Local config
var local = Helper.ReadLinesSafe("config.txt");
if (local != null && local.Length > 0)
allLines.AddRange(local);
bool inAtk = false;
bool inDef = false;
bool inAttackers = false;
bool inDefenders = false;
// ---------- PARSE ----------
// Parse lines
foreach (var raw in allLines)
{
if (string.IsNullOrWhiteSpace(raw)) continue;
@@ -132,22 +119,34 @@ namespace Lua
if (line.StartsWith("--") || line.StartsWith("#")) continue;
if (line.StartsWith("attackers", StringComparison.OrdinalIgnoreCase))
{ inAtk = true; inDef = false; continue; }
{
inAttackers = true;
inDefenders = false;
continue;
}
if (line.StartsWith("defenders", StringComparison.OrdinalIgnoreCase))
{ inAtk = false; inDef = true; continue; }
{
inAttackers = false;
inDefenders = true;
continue;
}
if (line == "}" || line == "]," || line == "],")
{ inAtk = false; inDef = false; continue; }
{
inAttackers = false;
inDefenders = false;
continue;
}
if (Helper.TryParseRecoilLine(line, out var name, out var x, out var y))
{
if (inAtk)
if (inAttackers)
{
attackers[name] = (x, y);
attackerNames.Add(name);
}
else if (inDef)
else if (inDefenders)
{
defenders[name] = (x, y);
defenderNames.Add(name);
@@ -162,9 +161,7 @@ namespace Lua
CurrentOperator = CurrentSet;
}
// ======================================================
// MERGE
// ======================================================
// Merge sets
public static void MergeSets()
{
if (ConfigLoader.betaTest)
@@ -192,22 +189,21 @@ namespace Lua
currentSetIndex = Helper.SafeClampIndex(currentSetIndex, setNames.Count);
}
// ======================================================
// RESTORE
// ======================================================
// Restore set
public static void RestoreSet(string oldSet)
{
if (setNames.Count == 0) { currentSetIndex = 0; return; }
if (setNames.Count == 0)
{
currentSetIndex = 0;
return;
}
int idx = setNames.FindIndex(s => string.Equals(s, oldSet, StringComparison.OrdinalIgnoreCase));
currentSetIndex = idx >= 0 ? idx : 0;
CurrentOperator = CurrentSet;
}
// ======================================================
// SWITCH SIDE
// ======================================================
// Switch side
public static void SwitchSide()
{
if (ConfigLoader.betaTest) return;
@@ -217,9 +213,7 @@ namespace Lua
RestoreFavorites();
}
// ======================================================
// CYCLING
// ======================================================
// Cycling
public static void NextSet()
{
if (setNames.Count == 0) return;
@@ -243,19 +237,19 @@ namespace Lua
int idx = setNames.FindIndex(s => string.Equals(s, name, StringComparison.OrdinalIgnoreCase));
if (idx >= 0)
{
currentSetIndex = idx; // set the current operator index
CurrentOperator = CurrentSet; // update CurrentOperator
currentSetIndex = idx;
CurrentOperator = CurrentSet;
}
}
// ======================================================
// FAVORITES
// ======================================================
// Favorites
private static void RestoreFavorites()
{
if (setNames.Count == 0) { currentSetIndex = 0; return; }
if (setNames.Count == 0)
{
currentSetIndex = 0;
return;
}
if (ConfigLoader.betaTest)
{
@@ -276,32 +270,30 @@ namespace Lua
CurrentOperator = CurrentSet;
return;
}
currentSetIndex = 0;
CurrentOperator = CurrentSet;
return;
}
if (onAttackers && !string.IsNullOrEmpty(ConfigLoader.favoriteAttackers) &&
setNames.Contains(ConfigLoader.favoriteAttackers, StringComparer.OrdinalIgnoreCase))
else
{
currentSetIndex = setNames.FindIndex(s =>
string.Equals(s, ConfigLoader.favoriteAttackers, StringComparison.OrdinalIgnoreCase));
CurrentOperator = CurrentSet;
return;
}
if (onAttackers && !string.IsNullOrEmpty(ConfigLoader.favoriteAttackers) &&
setNames.Contains(ConfigLoader.favoriteAttackers, StringComparer.OrdinalIgnoreCase))
{
currentSetIndex = setNames.FindIndex(s =>
string.Equals(s, ConfigLoader.favoriteAttackers, StringComparison.OrdinalIgnoreCase));
CurrentOperator = CurrentSet;
return;
}
if (!onAttackers && !string.IsNullOrEmpty(ConfigLoader.favoriteDefenders) &&
setNames.Contains(ConfigLoader.favoriteDefenders, StringComparer.OrdinalIgnoreCase))
{
currentSetIndex = setNames.FindIndex(s =>
string.Equals(s, ConfigLoader.favoriteDefenders, StringComparison.OrdinalIgnoreCase));
CurrentOperator = CurrentSet;
return;
if (!onAttackers && !string.IsNullOrEmpty(ConfigLoader.favoriteDefenders) &&
setNames.Contains(ConfigLoader.favoriteDefenders, StringComparer.OrdinalIgnoreCase))
{
currentSetIndex = setNames.FindIndex(s =>
string.Equals(s, ConfigLoader.favoriteDefenders, StringComparison.OrdinalIgnoreCase));
CurrentOperator = CurrentSet;
return;
}
}
currentSetIndex = 0;
CurrentOperator = CurrentSet;
}
}
}
}
-102
View File
@@ -1,102 +0,0 @@
using System;
using System.Threading;
namespace Lua
{
static class RecoilControl
{
const int VK_LBUTTON = 0x01;
const int VK_RBUTTON = 0x02;
static Random rng = new Random();
static bool jitterActive = false;
static int jitterStart = 0;
static int lastJitterEnd = 0;
static double remX, remY;
static double jitterMultX, jitterMultY;
public static void RecoilLoop()
{
while (true)
{
if (Utils.IsCapsLockOn() && Utils.IsPressed(VK_RBUTTON))
{
HandleRecoilTick();
}
else
{
remX = remY = 0;
jitterActive = false;
}
Thread.Sleep(2);
}
}
private static void HandleRecoilTick()
{
if (!Utils.IsPressed(VK_LBUTTON))
return;
string setName = OperatorSets.CurrentSet;
if (!OperatorSets.mergedSets.TryGetValue(setName, out var recoil))
return;
int now = Environment.TickCount;
// Jitter
if (ConfigLoader.jitterEnabled)
{
if (!jitterActive && now - lastJitterEnd >= ConfigLoader.jitterCooldown)
{
jitterActive = true;
jitterStart = now;
double strength = 0.1 + rng.NextDouble() * 0.8;
jitterMultX = jitterMultY = 0;
switch (rng.Next(1, 5))
{
case 1: jitterMultX = -strength; break;
case 2: jitterMultX = strength; break;
case 3: jitterMultY = -strength; break;
case 4: jitterMultY = strength; break;
}
}
if (jitterActive && now - jitterStart >= ConfigLoader.jitterBurstTime)
{
jitterActive = false;
lastJitterEnd = now;
jitterMultX = jitterMultY = 0;
}
}
// Calculate precise movement with remainder tracking
double jitterX = recoil.recoilX * jitterMultX;
double jitterY = recoil.recoilY * jitterMultY;
double moveX = recoil.recoilX + remX + jitterX;
double moveY = recoil.recoilY + remY + jitterY;
// Optional scaling for fine-tuning
if (ConfigLoader.debitFlag1)
{
moveX *= 1.282;
moveY *= 1.351;
}
int ix = (int)Math.Round(moveX);
int iy = (int)Math.Round(moveY);
// Store remainder for next tick (Ricoh-style smoothness)
remX = moveX - ix;
remY = moveY - iy;
Utils.MoveMouse(ix, iy);
}
}
}
+32 -34
View File
@@ -8,12 +8,12 @@ namespace Lua
private const int VK_LBUTTON = 0x01;
private const int VK_RBUTTON = 0x02;
private static Random rng = new Random();
private static bool jitterActive = false;
private static int jitterStart = 0;
private static int lastJitterEnd = 0;
private static double remX, remY;
private static double jitterMultX, jitterMultY;
private static readonly Random _rng = new Random();
private static bool _jitterActive = false;
private static int _jitterStart = 0;
private static int _lastJitterEnd = 0;
private static double _remainderX, _remainderY;
private static double _jitterMultiplierX, _jitterMultiplierY;
public static void Start()
{
@@ -25,8 +25,8 @@ namespace Lua
}
else
{
remX = remY = 0;
jitterActive = false;
_remainderX = _remainderY = 0;
_jitterActive = false;
}
Thread.Sleep(2);
}
@@ -34,57 +34,55 @@ namespace Lua
private static void HandleRecoilTick()
{
if (!Utils.IsPressed(VK_LBUTTON))
return;
if (!Utils.IsPressed(VK_LBUTTON)) return;
string setName = OperatorSets.CurrentSet;
if (!OperatorSets.mergedSets.TryGetValue(setName, out var recoil))
return;
if (!OperatorSets.mergedSets.TryGetValue(setName, out var recoil)) return;
int now = Environment.TickCount;
HandleJitter(now);
ApplyRecoil(recoil, now);
ApplyRecoil(recoil);
}
private static void HandleJitter(int now)
{
if (ConfigLoader.jitterEnabled)
{
if (!jitterActive && now - lastJitterEnd >= ConfigLoader.jitterCooldown)
if (!_jitterActive && now - _lastJitterEnd >= ConfigLoader.jitterCooldown)
{
jitterActive = true;
jitterStart = now;
_jitterActive = true;
_jitterStart = now;
double strength = 0.1 + rng.NextDouble() * 0.8;
jitterMultX = jitterMultY = 0;
double strength = 0.1 + _rng.NextDouble() * 0.8;
_jitterMultiplierX = _jitterMultiplierY = 0;
switch (rng.Next(1, 5))
switch (_rng.Next(1, 5))
{
case 1: jitterMultX = -strength; break;
case 2: jitterMultX = strength; break;
case 3: jitterMultY = -strength; break;
case 4: jitterMultY = strength; break;
case 1: _jitterMultiplierX = -strength; break;
case 2: _jitterMultiplierX = strength; break;
case 3: _jitterMultiplierY = -strength; break;
case 4: _jitterMultiplierY = strength; break;
}
}
if (jitterActive && now - jitterStart >= ConfigLoader.jitterBurstTime)
if (_jitterActive && now - _jitterStart >= ConfigLoader.jitterBurstTime)
{
jitterActive = false;
lastJitterEnd = now;
jitterMultX = jitterMultY = 0;
_jitterActive = false;
_lastJitterEnd = now;
_jitterMultiplierX = _jitterMultiplierY = 0;
}
}
}
private static void ApplyRecoil((double recoilX, double recoilY) recoil, int now)
private static void ApplyRecoil((double recoilX, double recoilY) recoil)
{
double jitterX = recoil.recoilX * jitterMultX;
double jitterY = recoil.recoilY * jitterMultY;
double jitterX = recoil.recoilX * _jitterMultiplierX;
double jitterY = recoil.recoilY * _jitterMultiplierY;
double moveX = recoil.recoilX + remX + jitterX;
double moveY = recoil.recoilY + remY + jitterY;
double moveX = recoil.recoilX + _remainderX + jitterX;
double moveY = recoil.recoilY + _remainderY + jitterY;
if (ConfigLoader.debitFlag1)
{
@@ -95,8 +93,8 @@ namespace Lua
int ix = (int)Math.Round(moveX);
int iy = (int)Math.Round(moveY);
remX = moveX - ix;
remY = moveY - iy;
_remainderX = moveX - ix;
_remainderY = moveY - iy;
Utils.MoveMouse(ix, iy);
}
+15 -9
View File
@@ -10,17 +10,23 @@ namespace Lua
public static readonly SpeechSynthesizer Tts = new SpeechSynthesizer();
private static readonly object TtsLock = new object();
[DllImport("user32.dll")] public static extern short GetAsyncKeyState(int vKey);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern short GetKeyState(int keyCode);
[DllImport("user32.dll")] public static extern void mouse_event(uint dwFlags, int dx, int dy, uint dwData, UIntPtr dwExtraInfo);
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vKey);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern short GetKeyState(int keyCode);
[DllImport("user32.dll")]
public static extern void mouse_event(uint dwFlags, int dx, int dy, uint dwData, UIntPtr dwExtraInfo);
public const uint MOUSEEVENTF_MOVE = 0x0001;
private const int VK_CAPITAL = 0x14;
private static bool previousCapsState;
private static bool _previousCapsState;
public static void InitializeCapsState()
{
previousCapsState = IsCapsLockOn();
_previousCapsState = IsCapsLockOn();
}
public static bool IsPressed(int vKey) => (GetAsyncKeyState(vKey) & 0x8000) != 0;
@@ -38,7 +44,7 @@ namespace Lua
Tts.SpeakAsyncCancelAll();
Tts.SpeakAsync(text);
}
catch { }
catch { /* Ignore TTS errors */ }
}
}
@@ -52,9 +58,9 @@ namespace Lua
public static void CheckCapsLockChange()
{
bool caps = IsCapsLockOn();
if (caps != previousCapsState)
if (caps != _previousCapsState)
{
previousCapsState = caps;
_previousCapsState = caps;
ShowCapsLockStatus();
}
}
@@ -77,7 +83,7 @@ namespace Lua
try
{
int current = Console.CursorTop;
int limit = Console.WindowHeight - 2;
int limit = Console.WindowHeight - 2; // Keep 2-row buffer
if (current >= limit)
{
-10
View File
@@ -1,10 +0,0 @@
attackers = {
["Deimos"] = { recoilX = -0.19, recoilY = 0.89 },
["Jackal"] = { recoilX = -0.1, recoilY = 1 },
}
defenders = {
["Doc/Rook"] = { recoilX = -0.1, recoilY = 1 },
["Goyo/Mira"] = { recoilX = -0.05, recoilY = 1.45 },
["Thunderbird"] = { recoilX = -0.13, recoilY = 1.3 },
}
Binary file not shown.
@@ -1,5 +0,0 @@
{
"description" : "AutoLaunch Protocols Preregistration",
"name" : "Protocol Preregistration",
"version" : "1.0.0.10"
}
@@ -1,119 +0,0 @@
{
"allow": [
{
"origins": [
"https://.get.microsoft.com",
"https://.apps.microsoft.com"
],
"protocol": "ms-windows-store"
},
{
"origins": [
"https://.onedrive.com",
"https://.onedrive.live.com",
"https://sharepoint.com"
],
"protocol": "ms-word"
},
{
"origins": [
"https://[a-z1-9-]*word-edit.officeapps.live.com",
"https://[a-z1-9-]*word-view.officeapps.live.com",
"https://[a-z1-9-]*onenote.officeapps.live.com",
"https://[a-z1-9-]*eap.officeapps.live.com",
"https://[a-z1-9-]*shared.officeapps.live.com",
"https://[a-z1-9-]*afhs.officeapps.live.com",
"https://[a-z1-9-]*vhs.officeapps.live.com",
"https://[a-z1-9-]*optin.online.office.com"
],
"use_regex": true,
"protocol": "ms-word"
},
{
"origins": [
"https://.onedrive.com",
"https://.onedrive.live.com",
"https://sharepoint.com"
],
"protocol": "ms-excel"
},
{
"origins": [
"https://[a-z1-9-]*excel.officeapps.live.com",
"https://[a-z1-9-]*onenote.officeapps.live.com",
"https://[a-z1-9-]*eap.officeapps.live.com",
"https://[a-z1-9-]*shared.officeapps.live.com",
"https://[a-z1-9-]*afhs.officeapps.live.com",
"https://[a-z1-9-]*vhs.officeapps.live.com",
"https://[a-z1-9-]*optin.online.office.com"
],
"use_regex": true,
"protocol": "ms-excel"
},
{
"origins": [
"https://.onedrive.com",
"https://.onedrive.live.com",
"https://sharepoint.com"
],
"protocol": "ms-powerpoint"
},
{
"origins": [
"https://[a-z1-9-]*powerpoint.officeapps.live.com",
"https://[a-z1-9-]*onenote.officeapps.live.com",
"https://[a-z1-9-]*eap.officeapps.live.com",
"https://[a-z1-9-]*shared.officeapps.live.com",
"https://[a-z1-9-]*afhs.officeapps.live.com",
"https://[a-z1-9-]*vhs.officeapps.live.com",
"https://[a-z1-9-]*optin.online.office.com"
],
"use_regex": true,
"protocol": "ms-powerpoint"
},
{
"origins": [
"https://.onedrive.com",
"https://.onedrive.live.com",
"https://sharepoint.com"
],
"protocol": "ms-visio"
},
{
"origins": [
"https://[a-z1-9-]*visio.officeapps.live.com",
"https://[a-z1-9-]*onenote.officeapps.live.com",
"https://[a-z1-9-]*eap.officeapps.live.com",
"https://[a-z1-9-]*shared.officeapps.live.com",
"https://[a-z1-9-]*afhs.officeapps.live.com",
"https://[a-z1-9-]*vhs.officeapps.live.com",
"https://[a-z1-9-]*optin.online.office.com"
],
"use_regex": true,
"protocol": "ms-visio"
},
{
"origins": [
"https://www.microsoft.com",
"https://copilot.microsoft.com"
],
"protocol": "ms-copilot"
}
],
"warn": [
{
"origins": [
"*"
],
"protocol": "ms-test-warn"
}
],
"block": [
{
"origins": [
"*"
],
"protocol": "ms-test-block"
}
]
}
@@ -1,31 +0,0 @@
0:00:00 Microsoft.DeleteProfileHelper.CleanUpEphemeralProfiles
0:00:00 Microsoft.DeleteProfileHelper.CleanUpDeletedProfiles
0:00:00 Microsoft.NewBrowser_Popup
0:00:00 Microsoft.BrowserList.AddBrowser
0:00:00 Browser1 Insert active Tab1 at 0
0:00:00 Tab1 StartNav1 #auto_toplevel
0:00:00 Tab1 StartNav2 #typed
0:00:00 Tab1 FinishNav1
0:00:00 Tab1 PageLoad
0:00:00 Tab1 FinishNav2
0:00:00 Tab1 PageLoad
0:11:19 Microsoft.UnloadController.IsUnclosableApp_IsNotWebApp
0:00:00 Startup
0:00:00 Microsoft.DeleteProfileHelper.CleanUpEphemeralProfiles
0:00:00 Microsoft.DeleteProfileHelper.CleanUpDeletedProfiles
0:00:00 Microsoft.NewBrowser_Popup
0:00:00 Microsoft.BrowserList.AddBrowser
0:00:00 Browser1 Insert active Tab1 at 0
0:00:00 Tab1 StartNav1 #auto_toplevel
0:00:00 Tab1 StartNav2 #typed
0:00:00 Tab1 FinishNav1
0:00:00 Tab1 PageLoad
0:00:00 Tab1 FinishNav2
0:00:00 Tab1 PageLoad
0:00:01 Memory Pressure: Critical
0:00:05 Memory Pressure: Critical
0:00:20 Memory Pressure: Critical
0:00:35 Memory Pressure: Critical
0:00:45 Memory Pressure: Critical
0:00:55 Memory Pressure: Critical
0:01:00 Microsoft.UnloadController.IsUnclosableApp_IsNotWebApp
@@ -1,5 +0,0 @@
{
"description": "Microsoft CRLSet",
"name": "MicrosoftCRLSet",
"version": "6498.2025.9.4"
}
@@ -1 +0,0 @@
level=none expiry=0
@@ -1,12 +0,0 @@
{
"epochs": [ {
"calculation_time": "13408303630341617",
"config_version": 0,
"model_version": "0",
"padded_top_topics_start_index": 0,
"taxonomy_version": 0,
"top_topics_and_observing_domains": [ ]
} ],
"hex_encoded_hmac_key": "DD3F99B10E966FB56BB27756D6CDEA15A3CF01A5C3F726FFE1A5D6722F72B652",
"next_scheduled_calculation_time": "13408908430341785"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

@@ -1 +0,0 @@
MANIFEST-000001
@@ -1,3 +0,0 @@
2025/11/22-12:11:42.866 4448 Reusing MANIFEST D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Rules/MANIFEST-000001
2025/11/22-12:11:42.867 4448 Recovering log #3
2025/11/22-12:11:42.868 4448 Reusing old log D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Rules/000003.log
@@ -1,3 +0,0 @@
2025/11/22-12:08:22.467 6294 Reusing MANIFEST D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Rules/MANIFEST-000001
2025/11/22-12:08:22.468 6294 Recovering log #3
2025/11/22-12:08:22.468 6294 Reusing old log D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Rules/000003.log
@@ -1 +0,0 @@
MANIFEST-000001
@@ -1,3 +0,0 @@
2025/11/22-12:11:42.875 4448 Reusing MANIFEST D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Scripts/MANIFEST-000001
2025/11/22-12:11:42.876 4448 Recovering log #3
2025/11/22-12:11:42.876 4448 Reusing old log D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Scripts/000003.log
@@ -1,3 +0,0 @@
2025/11/22-12:08:22.471 6294 Reusing MANIFEST D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Scripts/MANIFEST-000001
2025/11/22-12:08:22.472 6294 Recovering log #3
2025/11/22-12:08:22.472 6294 Reusing old log D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension Scripts/000003.log
@@ -1 +0,0 @@
MANIFEST-000001
@@ -1,3 +0,0 @@
2025/11/22-12:39:29.368 36c8 Reusing MANIFEST D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
2025/11/22-12:39:29.369 36c8 Recovering log #3
2025/11/22-12:39:29.369 36c8 Reusing old log D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension State/000003.log
@@ -1,3 +0,0 @@
2025/11/22-12:17:26.345 2878 Reusing MANIFEST D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension State/MANIFEST-000001
2025/11/22-12:17:26.345 2878 Recovering log #3
2025/11/22-12:17:26.346 2878 Reusing old log D:\Pro\Lithium\Lithium\bin\Debug\Lithium.exe.WebView2\EBWebView\Default\Extension State/000003.log

Some files were not shown because too many files have changed in this diff Show More