├── .gitignore ├── PowerfulWindSlickedBackHair.sln ├── PowerfulWindSlickedBackHair ├── Assets │ ├── Ahhhh.png │ ├── Audio.mp3 │ ├── BWYuki.png │ ├── BlackBird1.png │ ├── BlackBird2.png │ ├── BlackBirdWave1.png │ ├── BlackBirdWave2.png │ ├── CabbageCut.png │ ├── CabbageFull.png │ ├── Cross.ico │ ├── CuttingYuki.png │ ├── DogWalk1.png │ ├── DogWalk2.png │ ├── Error.png │ ├── Fight1.png │ ├── Fight2.png │ ├── Fight3.png │ ├── GreyPigeon.png │ ├── HugeBlow1.png │ ├── HugeBlow2.png │ ├── JumpDown.png │ ├── JumpDownBlow.png │ ├── JumpDownBlowBlue.png │ ├── JumpUp.png │ ├── JumpUpBlow.png │ ├── JumpUpBlowBlue.png │ ├── PigeonPeek.png │ ├── PigeonPeek2.png │ ├── RollingDog.png │ ├── Walk1.png │ ├── Walk2.png │ ├── Walk3.png │ ├── Walk4.png │ ├── WhiteBird1.png │ ├── WhiteBird2.png │ ├── WhiteBirdWave1.png │ ├── WhiteBirdWave2.png │ ├── WhitePigeon.png │ ├── YukiClap.png │ ├── YukiClap2.png │ ├── blue.bmp │ ├── blue.png │ ├── blueQRCode.png │ ├── font.ttf │ ├── ic_painting_detail_like.png │ ├── ic_player_endpage_coined.png │ ├── icon_collected.png │ ├── yellow.bmp │ └── yellow.png ├── MainForm.Designer.cs ├── MainForm.cs ├── MainForm.resx ├── NAudio.dll ├── Offset.txt ├── PowerfulWindSlickedBackHair.csproj ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resource.Designer.cs │ ├── Resource.resx │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── SoundTouch.dll ├── SoundTouch │ ├── SoundPlayer.cs │ ├── SoundTouch.cs │ ├── SoundTouchInterop32.cs │ ├── SoundTouchInterop64.cs │ ├── SoundTouchProfile.cs │ ├── SoundTouchSettings.cs │ └── VarispeedSampleProvider.cs ├── SoundTouch_x64.dll ├── Tools │ ├── AnimalsShower.cs │ ├── BWYukiShower.cs │ ├── ClapYukiShower.cs │ ├── CmdHelper.cs │ ├── Logger.cs │ ├── Mathf.cs │ ├── PerlinNoise.cs │ ├── RollingDogShower.cs │ ├── WaveBirdShower.cs │ ├── Win32APIHelper.cs │ └── YukiState.cs ├── Tracker.cs ├── Windows │ ├── AhhhF.Designer.cs │ ├── AhhhF.cs │ ├── AhhhF.resx │ ├── BWYukiForm.Designer.cs │ ├── BWYukiForm.cs │ ├── BWYukiForm.resx │ ├── BackgroundForm.Designer.cs │ ├── BackgroundForm.cs │ ├── BackgroundForm.resx │ ├── BirdWaveF.Designer.cs │ ├── BirdWaveF.cs │ ├── BirdWaveF.resx │ ├── BlackBirdF.Designer.cs │ ├── BlackBirdF.cs │ ├── BlackBirdF.resx │ ├── BlueScreen.Designer.cs │ ├── BlueScreen.cs │ ├── BlueScreen.resx │ ├── CabbageForm.Designer.cs │ ├── CabbageForm.cs │ ├── CabbageForm.resx │ ├── DogWalkF.Designer.cs │ ├── DogWalkF.cs │ ├── DogWalkF.resx │ ├── ErrorF.Designer.cs │ ├── ErrorF.cs │ ├── ErrorF.resx │ ├── FightForm.Designer.cs │ ├── FightForm.cs │ ├── FightForm.resx │ ├── FloatWindowHelperF.Designer.cs │ ├── FloatWindowHelperF.cs │ ├── FloatYukiWindow.Designer.cs │ ├── FloatYukiWindow.cs │ ├── HugeBlow.Designer.cs │ ├── HugeBlow.cs │ ├── HugeBlow.resx │ ├── JumpingYukiForm.Designer.cs │ ├── JumpingYukiForm.cs │ ├── JumpingYukiForm.resx │ ├── LikeForm.Designer.cs │ ├── LikeForm.cs │ ├── LikeForm.resx │ ├── PigeonPeekF.Designer.cs │ ├── PigeonPeekF.cs │ ├── PigeonPeekF.resx │ ├── RollingDogF.Designer.cs │ ├── RollingDogF.cs │ ├── RollingDogF.resx │ ├── StaticPigeonF.Designer.cs │ ├── StaticPigeonF.cs │ ├── StaticPigeonF.resx │ ├── StaticYukiForm.Designer.cs │ ├── StaticYukiForm.cs │ ├── StaticYukiForm.resx │ ├── WalkingYukiForm.Designer.cs │ ├── WalkingYukiForm.cs │ ├── WalkingYukiForm.resx │ ├── WhiteBirdF.Designer.cs │ ├── WhiteBirdF.cs │ ├── WhiteBirdF.resx │ ├── YukiClapF.Designer.cs │ ├── YukiClapF.cs │ └── YukiClapF.resx ├── app.config ├── app.manifest └── icon.ico └── README.md /PowerfulWindSlickedBackHair.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.28729.10 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerfulWindSlickedBackHair", "PowerfulWindSlickedBackHair\PowerfulWindSlickedBackHair.csproj", "{CA333225-0471-4F38-B371-E50517B9AAF0}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {CA333225-0471-4F38-B371-E50517B9AAF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {CA333225-0471-4F38-B371-E50517B9AAF0}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {CA333225-0471-4F38-B371-E50517B9AAF0}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {CA333225-0471-4F38-B371-E50517B9AAF0}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Ahhhh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Ahhhh.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Audio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Audio.mp3 -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/BWYuki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/BWYuki.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/BlackBird1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/BlackBird1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/BlackBird2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/BlackBird2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/BlackBirdWave1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/BlackBirdWave1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/BlackBirdWave2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/BlackBirdWave2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/CabbageCut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/CabbageCut.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/CabbageFull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/CabbageFull.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Cross.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Cross.ico -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/CuttingYuki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/CuttingYuki.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/DogWalk1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/DogWalk1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/DogWalk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/DogWalk2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Error.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Fight1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Fight1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Fight2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Fight2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Fight3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Fight3.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/GreyPigeon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/GreyPigeon.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/HugeBlow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/HugeBlow1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/HugeBlow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/HugeBlow2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/JumpDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/JumpDown.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/JumpDownBlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/JumpDownBlow.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/JumpDownBlowBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/JumpDownBlowBlue.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/JumpUp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/JumpUp.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/JumpUpBlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/JumpUpBlow.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/JumpUpBlowBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/JumpUpBlowBlue.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/PigeonPeek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/PigeonPeek.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/PigeonPeek2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/PigeonPeek2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/RollingDog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/RollingDog.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Walk1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Walk1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Walk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Walk2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Walk3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Walk3.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/Walk4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/Walk4.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/WhiteBird1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/WhiteBird1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/WhiteBird2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/WhiteBird2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/WhiteBirdWave1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/WhiteBirdWave1.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/WhiteBirdWave2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/WhiteBirdWave2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/WhitePigeon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/WhitePigeon.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/YukiClap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/YukiClap.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/YukiClap2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/YukiClap2.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/blue.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/blue.bmp -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/blue.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/blueQRCode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/blueQRCode.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/font.ttf -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/ic_painting_detail_like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/ic_painting_detail_like.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/ic_player_endpage_coined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/ic_player_endpage_coined.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/icon_collected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/icon_collected.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/yellow.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/yellow.bmp -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Assets/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/Assets/yellow.png -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/MainForm.Designer.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Windows.Forms; 3 | 4 | namespace PowerfulWindSlickedBackHair 5 | { 6 | // Token: 0x02000002 RID: 2 7 | public partial class MainForm : System.Windows.Forms.Form 8 | { 9 | 10 | private IContainer components = null; 11 | 12 | private StatusStrip statusStrip1; 13 | 14 | private ToolStripStatusLabel toolStripStatusLabel1; 15 | 16 | private ToolStripStatusLabel frameLabel; 17 | 18 | private ListView threadsList; 19 | 20 | private ColumnHeader columnT; 21 | 22 | private ColumnHeader columnS; 23 | 24 | private NotifyIcon notifyIcon1; 25 | 26 | protected override void Dispose(bool disposing) 27 | { 28 | if (disposing && components != null) 29 | { 30 | components.Dispose(); 31 | } 32 | base.Dispose(disposing); 33 | } 34 | 35 | private void InitializeComponent() 36 | { 37 | this.components = new System.ComponentModel.Container(); 38 | this.statusStrip1 = new System.Windows.Forms.StatusStrip(); 39 | this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); 40 | this.frameLabel = new System.Windows.Forms.ToolStripStatusLabel(); 41 | this.threadsList = new System.Windows.Forms.ListView(); 42 | this.columnT = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 43 | this.columnS = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 44 | this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); 45 | this.statusStrip1.SuspendLayout(); 46 | this.SuspendLayout(); 47 | // 48 | // statusStrip1 49 | // 50 | this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); 51 | this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 52 | this.toolStripStatusLabel1, 53 | this.frameLabel}); 54 | this.statusStrip1.Location = new System.Drawing.Point(0, 144); 55 | this.statusStrip1.Name = "statusStrip1"; 56 | this.statusStrip1.Size = new System.Drawing.Size(312, 26); 57 | this.statusStrip1.TabIndex = 0; 58 | this.statusStrip1.Text = "statusStrip1"; 59 | // 60 | // toolStripStatusLabel1 61 | // 62 | this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; 63 | this.toolStripStatusLabel1.Size = new System.Drawing.Size(0, 20); 64 | // 65 | // frameLabel 66 | // 67 | this.frameLabel.Name = "frameLabel"; 68 | this.frameLabel.Size = new System.Drawing.Size(13, 20); 69 | this.frameLabel.Text = " "; 70 | // 71 | // threadsList 72 | // 73 | this.threadsList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 74 | this.columnT, 75 | this.columnS}); 76 | this.threadsList.Dock = System.Windows.Forms.DockStyle.Fill; 77 | this.threadsList.HideSelection = false; 78 | this.threadsList.Location = new System.Drawing.Point(0, 0); 79 | this.threadsList.Name = "threadsList"; 80 | this.threadsList.Size = new System.Drawing.Size(312, 144); 81 | this.threadsList.TabIndex = 2; 82 | this.threadsList.UseCompatibleStateImageBehavior = false; 83 | this.threadsList.View = System.Windows.Forms.View.Details; 84 | this.threadsList.MouseDown += new System.Windows.Forms.MouseEventHandler(this.threadsList_MouseDown); 85 | this.threadsList.MouseUp += new System.Windows.Forms.MouseEventHandler(this.threadsList_MouseUp); 86 | // 87 | // columnT 88 | // 89 | this.columnT.Text = "T"; 90 | this.columnT.Width = 150; 91 | // 92 | // columnS 93 | // 94 | this.columnS.Text = "S"; 95 | this.columnS.Width = 150; 96 | // 97 | // notifyIcon1 98 | // 99 | this.notifyIcon1.Text = "notifyIcon1"; 100 | this.notifyIcon1.Visible = true; 101 | // 102 | // MainForm 103 | // 104 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 105 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 106 | this.ClientSize = new System.Drawing.Size(312, 170); 107 | this.Controls.Add(this.threadsList); 108 | this.Controls.Add(this.statusStrip1); 109 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 110 | this.MaximizeBox = false; 111 | this.Name = "MainForm"; 112 | this.Opacity = 0.8D; 113 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 114 | this.Text = "Console"; 115 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); 116 | this.Load += new System.EventHandler(this.MainForm_Load); 117 | this.statusStrip1.ResumeLayout(false); 118 | this.statusStrip1.PerformLayout(); 119 | this.ResumeLayout(false); 120 | this.PerformLayout(); 121 | 122 | } 123 | } 124 | 125 | } 126 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/NAudio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/NAudio.dll -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Offset.txt: -------------------------------------------------------------------------------- 1 | 窗口播放速率(0.95~1.05):1.000 2 | 音频播放速率(0.95~1.05):1.000 3 | 音频提前播放毫秒数(-500~500):0 -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Program.cs: -------------------------------------------------------------------------------- 1 | using PowerfulWindSlickedBackHair.Tools; 2 | using System; 3 | using System.Threading; 4 | using System.Windows.Forms; 5 | 6 | namespace PowerfulWindSlickedBackHair 7 | { 8 | // Token: 0x02000003 RID: 3 9 | internal static class Program 10 | { 11 | // Token: 0x0600000A RID: 10 RVA: 0x0000323C File Offset: 0x0000143C 12 | [STAThread] 13 | private static void Main() 14 | { 15 | AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; 16 | Application.ThreadException += Application_ThreadException; 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new MainForm()); 20 | } 21 | 22 | private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) 23 | { 24 | var ex = e.Exception; 25 | Logger.WriteLine(ex); 26 | MessageBox.Show(string.Format("未处理异常TE:{0}\r\n异常信息:{1}\r\n异常堆栈:{2}", ex.GetType(), ex.Message, ex.StackTrace)); 27 | } 28 | 29 | private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) 30 | { 31 | var ex = e.ExceptionObject as Exception; 32 | Logger.WriteLine(ex); 33 | MessageBox.Show(string.Format("未处理异常UE:{0}\r\n异常信息:{1}\r\n异常堆栈:{2}", ex.GetType(), ex.Message, ex.StackTrace)); 34 | if (e.IsTerminating) 35 | { 36 | Win32APIHelper.ChangeWallpaper(0); 37 | } 38 | } 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Reflection; 4 | using System.Runtime.CompilerServices; 5 | using System.Runtime.InteropServices; 6 | using System.Runtime.Versioning; 7 | using System.Security; 8 | using System.Security.Permissions; 9 | 10 | [assembly: AssemblyVersion("1.4.0.0")] 11 | [assembly: AssemblyTitle("强 风 大 窗 口")] 12 | [assembly: AssemblyDescription("强 风 大 窗 口")] 13 | [assembly: AssemblyConfiguration("")] 14 | [assembly: AssemblyCompany("")] 15 | [assembly: AssemblyProduct("PowerfulWindSlickedBackHair")] 16 | [assembly: AssemblyCopyright("Copyright © CS-LX & SunnyDesignor 2023-2025")] 17 | [assembly: AssemblyTrademark("")] 18 | [assembly: ComVisible(false)] 19 | [assembly: Guid("2ae3ee39-6b0a-4d0f-8bde-4bc89fe0c7ef")] 20 | [assembly: AssemblyFileVersion("1.4.0.0")] -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Properties/Resource.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace PowerfulWindSlickedBackHair.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// 一个强类型的资源类,用于查找本地化的字符串等。 17 | /// 18 | // 此类是由 StronglyTypedResourceBuilder 19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen 21 | // (以 /str 作为命令选项),或重新生成 VS 项目。 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resource { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resource() { 33 | } 34 | 35 | /// 36 | /// 返回此类使用的缓存的 ResourceManager 实例。 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PowerfulWindSlickedBackHair.Properties.Resource", typeof(Resource).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// 重写当前线程的 CurrentUICulture 属性,对 51 | /// 使用此强类型资源类的所有资源查找执行重写。 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Properties/Resource.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | text/microsoft-resx 91 | 92 | 93 | 1.3 94 | 95 | 96 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 97 | 98 | 99 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 100 | 101 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace PowerfulWindSlickedBackHair.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.13.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/SoundTouch.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/SoundTouch.dll -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/SoundTouch/SoundPlayer.cs: -------------------------------------------------------------------------------- 1 | using NAudio.Wave; 2 | using System; 3 | 4 | namespace SoundTouch 5 | { 6 | public class SoundPlayer : IDisposable 7 | { 8 | private IWavePlayer wavePlayer; 9 | private VarispeedSampleProvider speedControl; 10 | private AudioFileReader reader; 11 | 12 | public SoundPlayer() { } 13 | 14 | public TimeSpan CurrentTime 15 | { 16 | get 17 | { 18 | if(reader == null) { return TimeSpan.Zero; } 19 | return reader.CurrentTime; 20 | } 21 | set 22 | { 23 | reader.CurrentTime = value; 24 | speedControl.Reposition(); 25 | } 26 | } 27 | 28 | public float Rate 29 | { 30 | get { return speedControl.PlaybackRate; } 31 | set { speedControl.PlaybackRate = value; } 32 | } 33 | 34 | public void Load(string path) 35 | { 36 | if(reader != null) { reader.Dispose(); } 37 | if(speedControl != null) { speedControl.Dispose(); } 38 | reader = null; 39 | speedControl = null; 40 | reader = new AudioFileReader(path); 41 | speedControl = new VarispeedSampleProvider(reader, 100, new SoundTouchProfile(true, false)); 42 | } 43 | 44 | public void Play() 45 | { 46 | if (wavePlayer == null) 47 | wavePlayer = new WaveOutEvent(); 48 | if (speedControl == null) 49 | return; 50 | wavePlayer.Init(speedControl); 51 | wavePlayer.Play(); 52 | } 53 | 54 | public void Pause() 55 | { 56 | if(wavePlayer != null) { wavePlayer.Stop(); } 57 | } 58 | 59 | public void Dispose() 60 | { 61 | if(wavePlayer != null) { wavePlayer.Dispose(); } 62 | if(speedControl != null) { speedControl.Dispose(); } 63 | if(reader != null) { reader.Dispose(); } 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/SoundTouch/SoundTouchProfile.cs: -------------------------------------------------------------------------------- 1 | namespace SoundTouch 2 | { 3 | internal class SoundTouchProfile 4 | { 5 | public bool UseTempo { get; set; } 6 | public bool UseAntiAliasing { get; set; } 7 | public bool UseQuickSeek { get; set; } 8 | 9 | public SoundTouchProfile(bool useTempo, bool useAntiAliasing) 10 | { 11 | UseTempo = useTempo; 12 | UseAntiAliasing = useAntiAliasing; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/SoundTouch/SoundTouchSettings.cs: -------------------------------------------------------------------------------- 1 | namespace SoundTouch 2 | { 3 | enum SoundTouchSettings 4 | { 5 | /// 6 | /// Available setting IDs for the 'setSetting' and 'get_setting' functions. 7 | /// Enable/disable anti-alias filter in pitch transposer (0 = disable) 8 | /// 9 | UseAaFilter = 0, 10 | 11 | /// 12 | /// Pitch transposer anti-alias filter length (8 .. 128 taps, default = 32) 13 | /// 14 | AaFilterLength = 1, 15 | 16 | /// 17 | /// Enable/disable quick seeking algorithm in tempo changer routine 18 | /// (enabling quick seeking lowers CPU utilization but causes a minor sound 19 | /// quality compromising) 20 | /// 21 | UseQuickSeek = 2, 22 | 23 | /// 24 | /// Time-stretch algorithm single processing sequence length in milliseconds. This determines 25 | /// to how long sequences the original sound is chopped in the time-stretch algorithm. 26 | /// See "STTypes.h" or README for more information. 27 | /// 28 | SequenceMs = 3, 29 | 30 | /// 31 | /// Time-stretch algorithm seeking window length in milliseconds for algorithm that finds the 32 | /// best possible overlapping location. This determines from how wide window the algorithm 33 | /// may look for an optimal joining location when mixing the sound sequences back together. 34 | /// See "STTypes.h" or README for more information. 35 | /// 36 | SeekWindowMs = 4, 37 | 38 | /// 39 | /// Time-stretch algorithm overlap length in milliseconds. When the chopped sound sequences 40 | /// are mixed back together, to form a continuous sound stream, this parameter defines over 41 | /// how long period the two consecutive sequences are let to overlap each other. 42 | /// See "STTypes.h" or README for more information. 43 | /// 44 | OverlapMs = 5 45 | }; 46 | } -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/SoundTouch/VarispeedSampleProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using NAudio.Wave; 3 | 4 | namespace SoundTouch 5 | { 6 | class VarispeedSampleProvider : ISampleProvider, IDisposable 7 | { 8 | private readonly ISampleProvider sourceProvider; 9 | private readonly SoundTouch soundTouch; 10 | private readonly float[] sourceReadBuffer; 11 | private readonly float[] soundTouchReadBuffer; 12 | private readonly int channelCount; 13 | private float playbackRate = 1.0f; 14 | private SoundTouchProfile currentSoundTouchProfile; 15 | private bool repositionRequested; 16 | 17 | public VarispeedSampleProvider(ISampleProvider sourceProvider, int readDurationMilliseconds, SoundTouchProfile soundTouchProfile) 18 | { 19 | soundTouch = new SoundTouch(); 20 | // explore what the default values are before we change them: 21 | //Debug.WriteLine(String.Format("SoundTouch Version {0}", soundTouch.VersionString)); 22 | //Debug.WriteLine("Use QuickSeek: {0}", soundTouch.GetUseQuickSeek()); 23 | //Debug.WriteLine("Use AntiAliasing: {0}", soundTouch.GetUseAntiAliasing()); 24 | 25 | SetSoundTouchProfile(soundTouchProfile); 26 | this.sourceProvider = sourceProvider; 27 | soundTouch.SetSampleRate(WaveFormat.SampleRate); 28 | channelCount = WaveFormat.Channels; 29 | soundTouch.SetChannels(channelCount); 30 | sourceReadBuffer = new float[(WaveFormat.SampleRate * channelCount * (long)readDurationMilliseconds) / 1000]; 31 | soundTouchReadBuffer = new float[sourceReadBuffer.Length * 10]; // support down to 0.1 speed 32 | } 33 | 34 | public int Read(float[] buffer, int offset, int count) 35 | { 36 | if (playbackRate == 0) // play silence 37 | { 38 | for (int n = 0; n < count; n++) 39 | { 40 | buffer[offset++] = 0; 41 | } 42 | return count; 43 | } 44 | 45 | if (repositionRequested) 46 | { 47 | soundTouch.Clear(); 48 | repositionRequested = false; 49 | } 50 | 51 | int samplesRead = 0; 52 | bool reachedEndOfSource = false; 53 | while (samplesRead < count) 54 | { 55 | if (soundTouch.NumberOfSamplesAvailable == 0) 56 | { 57 | var readFromSource = sourceProvider.Read(sourceReadBuffer, 0, sourceReadBuffer.Length); 58 | if (readFromSource > 0) 59 | { 60 | soundTouch.PutSamples(sourceReadBuffer, readFromSource/channelCount); 61 | } 62 | else 63 | { 64 | reachedEndOfSource = true; 65 | // we've reached the end, tell SoundTouch we're done 66 | soundTouch.Flush(); 67 | } 68 | } 69 | var desiredSampleFrames = (count - samplesRead)/channelCount; 70 | 71 | var received = soundTouch.ReceiveSamples(soundTouchReadBuffer, desiredSampleFrames)*channelCount; 72 | // use loop instead of Array.Copy due to WaveBuffer 73 | for (int n = 0; n < received; n++) 74 | { 75 | buffer[offset+samplesRead++] = soundTouchReadBuffer[n]; 76 | } 77 | if (received == 0 && reachedEndOfSource) break; 78 | } 79 | return samplesRead; 80 | } 81 | 82 | public WaveFormat WaveFormat{ get { return sourceProvider.WaveFormat; } } 83 | 84 | public float PlaybackRate 85 | { 86 | get 87 | { 88 | return playbackRate; 89 | } 90 | set 91 | { 92 | if (playbackRate != value) 93 | { 94 | UpdatePlaybackRate(value); 95 | playbackRate = value; 96 | } 97 | } 98 | } 99 | 100 | private void UpdatePlaybackRate(float value) 101 | { 102 | if (value != 0) 103 | { 104 | if (currentSoundTouchProfile.UseTempo) 105 | { 106 | soundTouch.SetTempo(value); 107 | } 108 | else 109 | { 110 | soundTouch.SetRate(value); 111 | } 112 | } 113 | } 114 | 115 | public void Dispose() 116 | { 117 | soundTouch.Dispose(); 118 | } 119 | 120 | public void SetSoundTouchProfile(SoundTouchProfile soundTouchProfile) 121 | { 122 | if (currentSoundTouchProfile != null && 123 | playbackRate != 1.0f && 124 | soundTouchProfile.UseTempo != currentSoundTouchProfile.UseTempo) 125 | { 126 | if (soundTouchProfile.UseTempo) 127 | { 128 | soundTouch.SetRate(1.0f); 129 | soundTouch.SetPitchOctaves(0f); 130 | soundTouch.SetTempo(playbackRate); 131 | } 132 | else 133 | { 134 | soundTouch.SetTempo(1.0f); 135 | soundTouch.SetRate(playbackRate); 136 | } 137 | } 138 | this.currentSoundTouchProfile = soundTouchProfile; 139 | soundTouch.SetUseAntiAliasing(soundTouchProfile.UseAntiAliasing); 140 | soundTouch.SetUseQuickSeek(soundTouchProfile.UseQuickSeek); 141 | } 142 | 143 | public void Reposition() 144 | { 145 | repositionRequested = true; 146 | } 147 | } 148 | } -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/SoundTouch_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/SoundTouch_x64.dll -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/BWYukiShower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Threading; 4 | using System.Windows.Forms; 5 | using PowerfulWindSlickedBackHair.Windows; 6 | 7 | namespace PowerfulWindSlickedBackHair.Tools 8 | { 9 | // Token: 0x0200001C RID: 28 10 | public static class BWYukiShower 11 | { 12 | // Token: 0x060000A2 RID: 162 RVA: 0x0000839D File Offset: 0x0000659D 13 | public static void StartShow() 14 | { 15 | BWYukiShower.yukiShower = Tracker.AddThread("BWYukiShower", delegate 16 | { 17 | for (;;) 18 | { 19 | bool flag = BWYukiShower.lastFrame != Tracker.frame; 20 | if (flag) 21 | { 22 | BWYukiShower.Update(Tracker.frame, Screen.PrimaryScreen.WorkingArea); 23 | BWYukiShower.lastFrame = Tracker.frame; 24 | } 25 | Thread.Sleep(3); 26 | } 27 | }); 28 | BWYukiShower.yukiShower.Start(); 29 | } 30 | 31 | // Token: 0x060000A3 RID: 163 RVA: 0x000083D9 File Offset: 0x000065D9 32 | public static void StopShow() 33 | { 34 | BWYukiShower.yukiShower.Abort(); 35 | BWYukiShower.lastFrame = -1L; 36 | } 37 | 38 | // Token: 0x060000A4 RID: 164 RVA: 0x000083F0 File Offset: 0x000065F0 39 | private static void Update(long f, Rectangle screen) 40 | { 41 | if (f <= 1844L) 42 | { 43 | if (f != 1833L) 44 | { 45 | if (f != 1840L) 46 | { 47 | if (f == 1844L) 48 | { 49 | Thread thread = new Thread(delegate() 50 | { 51 | float num = 0.33333334f; 52 | BWYukiForm bwyukiForm = new BWYukiForm(); 53 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 54 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 55 | }); 56 | thread.Start(); 57 | } 58 | } 59 | else 60 | { 61 | Thread thread2 = new Thread(delegate() 62 | { 63 | float num = 0.16666667f; 64 | BWYukiForm bwyukiForm = new BWYukiForm(); 65 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 66 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 67 | }); 68 | thread2.Start(); 69 | } 70 | } 71 | else 72 | { 73 | Thread thread3 = new Thread(delegate() 74 | { 75 | float num = 0f; 76 | BWYukiForm bwyukiForm = new BWYukiForm(); 77 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 78 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 79 | }); 80 | thread3.Start(); 81 | } 82 | } 83 | else if (f <= 1852L) 84 | { 85 | if (f != 1848L) 86 | { 87 | if (f == 1852L) 88 | { 89 | Thread thread4 = new Thread(delegate() 90 | { 91 | float num = 0.6666667f; 92 | BWYukiForm bwyukiForm = new BWYukiForm(); 93 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 94 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 95 | }); 96 | thread4.Start(); 97 | } 98 | } 99 | else 100 | { 101 | Thread thread5 = new Thread(delegate() 102 | { 103 | float num = 0.5f; 104 | BWYukiForm bwyukiForm = new BWYukiForm(); 105 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 106 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 107 | }); 108 | thread5.Start(); 109 | } 110 | } 111 | else if (f != 1858L) 112 | { 113 | if (f == 1862L) 114 | { 115 | Thread thread6 = new Thread(delegate() 116 | { 117 | float num = 1f; 118 | BWYukiForm bwyukiForm = new BWYukiForm(); 119 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 120 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 121 | }); 122 | thread6.Start(); 123 | } 124 | } 125 | else 126 | { 127 | Thread thread7 = new Thread(delegate() 128 | { 129 | float num = 0.8333333f; 130 | BWYukiForm bwyukiForm = new BWYukiForm(); 131 | Point a = new Point(screen.Width / 2 - bwyukiForm.Width / 2 + 400, screen.Height / 2 - bwyukiForm.Height / 2); 132 | bwyukiForm.ShowDialog(BWYukiShower.Add(a, new Point((int)(num * (float)BWYukiShower.maxMove), (int)(Math.Sin((double)num * 3.141592653589793 * 2.0) * 40.0))), 1873); 133 | }); 134 | thread7.Start(); 135 | } 136 | } 137 | 138 | // Token: 0x060000A5 RID: 165 RVA: 0x00008560 File Offset: 0x00006760 139 | private static Point Add(Point a, Point b) 140 | { 141 | return new Point(a.X + b.X, a.Y + b.Y); 142 | } 143 | 144 | // Token: 0x0400008A RID: 138 145 | private static Thread yukiShower; 146 | 147 | // Token: 0x0400008B RID: 139 148 | private static long lastFrame = -1L; 149 | 150 | // Token: 0x0400008C RID: 140 151 | private static int maxMove = 400; 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/ClapYukiShower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Threading; 4 | using System.Windows.Forms; 5 | using PowerfulWindSlickedBackHair.Windows; 6 | 7 | namespace PowerfulWindSlickedBackHair.Tools 8 | { 9 | // Token: 0x0200001D RID: 29 10 | public static class ClapYukiShower 11 | { 12 | // Token: 0x060000A7 RID: 167 RVA: 0x000085A8 File Offset: 0x000067A8 13 | public static void Show() 14 | { 15 | Rectangle screen = Screen.PrimaryScreen.WorkingArea; 16 | Thread thread = new Thread(delegate() 17 | { 18 | YukiClapF yukiClapF = new YukiClapF(); 19 | yukiClapF.ShowDialog(new Point(screen.Width, screen.Height), (int)(Tracker.frame + 18L), yukiClapF.Size); 20 | }); 21 | thread.Start(); 22 | Thread thread2 = new Thread(delegate() 23 | { 24 | PigeonPeekF pigeonPeekF = new PigeonPeekF(); 25 | pigeonPeekF.ShowDialog(new Point(pigeonPeekF.Width, screen.Height), (int)(Tracker.frame + 18L), pigeonPeekF.Size); 26 | }); 27 | thread2.Start(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/CmdHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | 4 | namespace PowerfulWindSlickedBackHair.Tools 5 | { 6 | // Token: 0x0200001E RID: 30 7 | public class CmdHelper 8 | { 9 | // Token: 0x060000A8 RID: 168 RVA: 0x00008600 File Offset: 0x00006800 10 | public static string ExeCommand(string commandText) 11 | { 12 | return CmdHelper.ExeCommand(new string[] 13 | { 14 | commandText 15 | }); 16 | } 17 | 18 | // Token: 0x060000A9 RID: 169 RVA: 0x00008624 File Offset: 0x00006824 19 | public static string ExeCommand(string[] commandTexts) 20 | { 21 | Process process = new Process(); 22 | process.StartInfo.FileName = "cmd.exe"; 23 | process.StartInfo.UseShellExecute = false; 24 | process.StartInfo.RedirectStandardInput = true; 25 | process.StartInfo.RedirectStandardOutput = true; 26 | process.StartInfo.RedirectStandardError = true; 27 | process.StartInfo.CreateNoWindow = true; 28 | string result = null; 29 | try 30 | { 31 | process.Start(); 32 | foreach (string value in commandTexts) 33 | { 34 | process.StandardInput.WriteLine(value); 35 | } 36 | process.StandardInput.WriteLine("exit"); 37 | result = process.StandardOutput.ReadToEnd(); 38 | process.WaitForExit(); 39 | process.Close(); 40 | } 41 | catch (Exception ex) 42 | { 43 | result = ex.Message; 44 | } 45 | return result; 46 | } 47 | 48 | // Token: 0x060000AA RID: 170 RVA: 0x00008710 File Offset: 0x00006910 49 | public static bool StartApp(string appName) 50 | { 51 | return CmdHelper.StartApp(appName, ProcessWindowStyle.Hidden); 52 | } 53 | 54 | // Token: 0x060000AB RID: 171 RVA: 0x0000872C File Offset: 0x0000692C 55 | public static bool StartApp(string appName, ProcessWindowStyle style) 56 | { 57 | return CmdHelper.StartApp(appName, null, style); 58 | } 59 | 60 | // Token: 0x060000AC RID: 172 RVA: 0x00008748 File Offset: 0x00006948 61 | public static bool StartApp(string appName, string arguments) 62 | { 63 | return CmdHelper.StartApp(appName, arguments, ProcessWindowStyle.Hidden); 64 | } 65 | 66 | // Token: 0x060000AD RID: 173 RVA: 0x00008764 File Offset: 0x00006964 67 | public static bool StartApp(string appName, string arguments, ProcessWindowStyle style) 68 | { 69 | bool result = false; 70 | Process process = new Process(); 71 | process.StartInfo.FileName = appName; 72 | process.StartInfo.WindowStyle = style; 73 | process.StartInfo.Arguments = arguments; 74 | try 75 | { 76 | process.Start(); 77 | process.WaitForExit(); 78 | process.Close(); 79 | result = true; 80 | } 81 | catch 82 | { 83 | } 84 | return result; 85 | } 86 | 87 | // Token: 0x060000AE RID: 174 RVA: 0x000087D8 File Offset: 0x000069D8 88 | public static void Rar(string s, string d) 89 | { 90 | } 91 | 92 | // Token: 0x060000AF RID: 175 RVA: 0x000087DB File Offset: 0x000069DB 93 | public static void UnRar(string s, string d) 94 | { 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/Logger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace PowerfulWindSlickedBackHair.Tools 8 | { 9 | public static class Logger 10 | { 11 | private static readonly object _lock = new object(); 12 | 13 | private static readonly string _logFilePath = "log.txt"; 14 | 15 | public static void WriteLine(string msg) 16 | { 17 | try 18 | { 19 | string logMessage = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - INFO: {msg}"; 20 | 21 | lock (_lock) 22 | { 23 | using (StreamWriter writer = new StreamWriter(_logFilePath, true, Encoding.UTF8)) 24 | { 25 | writer.WriteLine(logMessage); 26 | writer.Flush(); 27 | } 28 | } 29 | } 30 | catch (Exception) 31 | { 32 | } 33 | } 34 | 35 | public static void WriteLine(Exception ex) 36 | { 37 | try 38 | { 39 | string logMessage = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss} - ERROR: {ex.Message}\r\n{ex}"; 40 | if (ex.InnerException != null) 41 | { 42 | logMessage += $"\r\nInner Exception: {ex.InnerException}"; 43 | } 44 | 45 | lock (_lock) 46 | { 47 | using (StreamWriter writer = new StreamWriter(_logFilePath, true, Encoding.UTF8)) 48 | { 49 | writer.WriteLine(logMessage); 50 | writer.WriteLine(new string('-', 80)); 51 | writer.Flush(); 52 | } 53 | } 54 | } 55 | catch (Exception) 56 | { 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/RollingDogShower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Threading; 4 | using System.Windows.Forms; 5 | using PowerfulWindSlickedBackHair.Windows; 6 | 7 | namespace PowerfulWindSlickedBackHair.Tools 8 | { 9 | // Token: 0x02000022 RID: 34 10 | public static class RollingDogShower 11 | { 12 | // Token: 0x060000F3 RID: 243 RVA: 0x0000997C File Offset: 0x00007B7C 13 | public static void Show(int lastPos) 14 | { 15 | Thread thread = new Thread(delegate() 16 | { 17 | Rectangle workingArea = Screen.PrimaryScreen.WorkingArea; 18 | RollingDogF rollingDogF = new RollingDogF(); 19 | Point pos = new Point(workingArea.Width / 2 - rollingDogF.Width / 2 - 300, workingArea.Height - rollingDogF.Height - 30); 20 | rollingDogF.ShowDialog(pos, Tracker.frame + 58L, lastPos, lastPos > 1000); 21 | }); 22 | thread.Start(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/WaveBirdShower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Threading; 4 | using PowerfulWindSlickedBackHair.Windows; 5 | 6 | namespace PowerfulWindSlickedBackHair.Tools 7 | { 8 | // Token: 0x02000023 RID: 35 9 | public static class WaveBirdShower 10 | { 11 | // Token: 0x060000F4 RID: 244 RVA: 0x000099B0 File Offset: 0x00007BB0 12 | public static void WaveBirdShow(Rectangle s, long f, Point dp, bool isWhite) 13 | { 14 | Thread thread = new Thread(delegate() 15 | { 16 | BirdWaveF birdWaveF = new BirdWaveF(isWhite); 17 | Point point = new Point(s.Width / 2 - birdWaveF.Width / 2, s.Height / 2 - birdWaveF.Height / 2); 18 | birdWaveF.ShowDialog(f, new Point(point.X + dp.X, point.Y + dp.Y)); 19 | }); 20 | thread.Start(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/Win32APIHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices; 6 | using System.Text; 7 | using System.Threading; 8 | using System.Windows.Forms; 9 | 10 | namespace PowerfulWindSlickedBackHair.Tools 11 | { 12 | public class Win32APIHelper 13 | { 14 | 15 | [DllImport("user32.dll")] 16 | private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, IntPtr lParam); 17 | [DllImport("user32.dll")] 18 | static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 19 | 20 | const int WM_COMMAND = 0x111; 21 | const int MIN_ALL = 419; 22 | 23 | /// 24 | /// 最小化所有窗口 25 | /// 26 | public static void MinimizeAllWindows() 27 | { 28 | IntPtr lHwnd = FindWindow("Shell_TrayWnd", ""); 29 | SendMessage(lHwnd, WM_COMMAND, MIN_ALL, IntPtr.Zero); 30 | } 31 | 32 | 33 | [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 34 | private static extern bool SystemParametersInfo(uint uAction, uint uParam, string lpvParam, uint fuWinIni); 35 | 36 | [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 37 | private static extern bool SystemParametersInfo(uint uAction, uint uParam, StringBuilder lpvParam, uint fuWinIni); 38 | 39 | private const uint SPI_GETDESKWALLPAPER = 0x0073; 40 | private const uint SPI_SETDESKWALLPAPER = 0x0014; 41 | private const uint SPIF_UPDATEINIFILE = 0x01; 42 | private const uint SPIF_SENDWININICHANGE = 0x02; 43 | 44 | private static string _originalWallpaperPath = null; 45 | private static int _lastType = -1; 46 | public static bool CanChangeWallpaper { get; set; } = true; 47 | private static readonly object _lock = new object(); 48 | 49 | private static void GetOriginalWallpaperFetched() 50 | { 51 | if (_originalWallpaperPath == null) 52 | { 53 | lock (_lock) 54 | { 55 | if (_originalWallpaperPath == null) 56 | { 57 | StringBuilder currentWallpaper = new StringBuilder(260); 58 | if (SystemParametersInfo(SPI_GETDESKWALLPAPER, (uint)currentWallpaper.Capacity, currentWallpaper, 0)) 59 | { 60 | _originalWallpaperPath = currentWallpaper.ToString(); 61 | if (string.IsNullOrWhiteSpace(_originalWallpaperPath)) 62 | { 63 | _originalWallpaperPath = string.Empty; 64 | } 65 | } 66 | else 67 | { 68 | int error = Marshal.GetLastWin32Error(); 69 | _originalWallpaperPath = string.Empty; 70 | } 71 | } 72 | } 73 | } 74 | } 75 | 76 | /// 77 | /// 设置壁纸 78 | /// 79 | /// 0恢复原来的桌面壁纸 1纯色黄 2纯色蓝 80 | public static void ChangeWallpaper(int type) 81 | { 82 | GetOriginalWallpaperFetched(); 83 | 84 | if ((!CanChangeWallpaper && type != 0) || type == _lastType) 85 | return; 86 | lock (_lock) 87 | { 88 | _lastType = type; 89 | } 90 | if (type == 0 && string.IsNullOrEmpty(_originalWallpaperPath)) 91 | { 92 | Console.WriteLine("原始壁纸路径未知或为空。"); 93 | return; 94 | } 95 | 96 | new Thread(() => 97 | { 98 | string wallpaperToSet = null; 99 | switch (type) 100 | { 101 | case 0: 102 | wallpaperToSet = _originalWallpaperPath; 103 | break; 104 | case 1: 105 | wallpaperToSet = Path.Combine(Application.StartupPath, "Assets", "yellow.bmp"); 106 | break; 107 | case 2: 108 | wallpaperToSet = Path.Combine(Application.StartupPath, "Assets", "blue.bmp"); 109 | break; 110 | default: 111 | return; 112 | } 113 | 114 | if (string.IsNullOrEmpty(wallpaperToSet)) 115 | { 116 | Logger.WriteLine($"类型 {type} 的壁纸路径为 null 或为空。"); 117 | return; 118 | } 119 | 120 | Logger.WriteLine($"尝试将壁纸设置为:{wallpaperToSet}"); 121 | if (!SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, wallpaperToSet, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE)) 122 | { 123 | int error = Marshal.GetLastWin32Error(); 124 | Logger.WriteLine($"无法将类型 {type} 的壁纸设置为“{wallpaperToSet}”。错误:{error}"); 125 | } 126 | }).Start(); 127 | } 128 | 129 | public static void ResetOriginalWallpaperCache() 130 | { 131 | lock (_lock) 132 | { 133 | _originalWallpaperPath = null; 134 | _lastType = -1; 135 | } 136 | } 137 | 138 | 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tools/YukiState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace PowerfulWindSlickedBackHair.Tools 4 | { 5 | // Token: 0x02000024 RID: 36 6 | public enum YukiState 7 | { 8 | // Token: 0x04000098 RID: 152 9 | YellowBlow, 10 | // Token: 0x04000099 RID: 153 11 | YellowNormal, 12 | // Token: 0x0400009A RID: 154 13 | BlueBlow, 14 | // Token: 0x0400009B RID: 155 15 | BlueNormal 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Tracker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading; 4 | 5 | namespace PowerfulWindSlickedBackHair 6 | { 7 | // Token: 0x02000004 RID: 4 8 | public static class Tracker 9 | { 10 | // Token: 0x0600000B RID: 11 RVA: 0x00003258 File Offset: 0x00001458 11 | public static Thread AddThread(string name, ThreadStart start) 12 | { 13 | Thread thread = new Thread(start); 14 | thread.Name = name; 15 | thread.IsBackground = true; 16 | lock (threads) 17 | { 18 | threads.Add(thread); 19 | } 20 | return thread; 21 | } 22 | public static Thread AddAndStartThread(string name, ThreadStart start) 23 | { 24 | Thread thread = AddThread(name, start); 25 | thread.Start(); 26 | return thread; 27 | } 28 | 29 | // Token: 0x0600000C RID: 12 RVA: 0x00003288 File Offset: 0x00001488 30 | public static void StopAll() 31 | { 32 | List threadsCopy; 33 | lock (threads) 34 | { 35 | threadsCopy = new List(threads); 36 | } 37 | foreach (Thread thread in threadsCopy) 38 | { 39 | if (thread != null && thread.IsAlive) 40 | { 41 | thread.Abort(); 42 | } 43 | } 44 | } 45 | 46 | // Token: 0x04000014 RID: 20 47 | public static List threads = new List(); 48 | 49 | // Token: 0x04000015 RID: 21 50 | public static long frame; 51 | 52 | public static bool Running; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/AhhhF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000007 RID: 7 4 | public partial class AhhhF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600001B RID: 27 RVA: 0x000034C4 File Offset: 0x000016C4 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x0600001C RID: 28 RVA: 0x000034FC File Offset: 0x000016FC 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // AhhhF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.Ahhhh; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(254, 458); 29 | this.DoubleBuffered = true; 30 | this.Name = "AhhhF"; 31 | this.ShowIcon = false; 32 | this.Text = "Ahhhh"; 33 | this.ResumeLayout(false); 34 | 35 | } 36 | 37 | // Token: 0x04000019 RID: 25 38 | private global::System.ComponentModel.IContainer components = null; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/AhhhF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x02000007 RID: 7 10 | public partial class AhhhF : Form 11 | { 12 | // Token: 0x06000019 RID: 25 RVA: 0x00003456 File Offset: 0x00001656 13 | public AhhhF() 14 | { 15 | this.InitializeComponent(); 16 | base.StartPosition = FormStartPosition.Manual; 17 | } 18 | 19 | // Token: 0x0600001A RID: 26 RVA: 0x00003478 File Offset: 0x00001678 20 | public void ShowDialog(Point pos, int endFrame) 21 | { 22 | base.Location = pos; 23 | Thread thread = new Thread(delegate() 24 | { 25 | int endFrame2 = endFrame; 26 | bool flag; 27 | do 28 | { 29 | flag = (Tracker.frame > (long)endFrame); 30 | Thread.Sleep(1); 31 | } 32 | while (!flag); 33 | this.Hide(); 34 | }); 35 | thread.Start(); 36 | base.ShowDialog(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/AhhhF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BWYukiForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200000B RID: 11 4 | public partial class BWYukiForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000031 RID: 49 RVA: 0x0000543C File Offset: 0x0000363C 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000032 RID: 50 RVA: 0x00005474 File Offset: 0x00003674 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // BWYukiForm 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.BWYuki; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(254, 595); 29 | this.DoubleBuffered = true; 30 | this.Name = "BWYukiForm"; 31 | this.ShowIcon = false; 32 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 33 | this.ResumeLayout(false); 34 | 35 | } 36 | 37 | // Token: 0x0400002D RID: 45 38 | private global::System.ComponentModel.IContainer components = null; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BWYukiForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200000B RID: 11 10 | public partial class BWYukiForm : Form 11 | { 12 | // Token: 0x0600002F RID: 47 RVA: 0x000053CD File Offset: 0x000035CD 13 | public BWYukiForm() 14 | { 15 | this.InitializeComponent(); 16 | base.StartPosition = FormStartPosition.Manual; 17 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 18 | UpdateStyles(); 19 | } 20 | 21 | // Token: 0x06000030 RID: 48 RVA: 0x000053F0 File Offset: 0x000035F0 22 | public void ShowDialog(Point pos, int endFrame) 23 | { 24 | base.Location = pos; 25 | Thread thread = new Thread(delegate() 26 | { 27 | int endFrame2 = endFrame; 28 | bool flag; 29 | do 30 | { 31 | flag = (Tracker.frame > (long)endFrame); 32 | Thread.Sleep(5); 33 | } 34 | while (!flag); 35 | this.Hide(); 36 | }); 37 | thread.Start(); 38 | base.ShowDialog(); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BWYukiForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BackgroundForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000008 RID: 8 4 | public partial class BackgroundForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000020 RID: 32 RVA: 0x00004BD0 File Offset: 0x00002DD0 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000021 RID: 33 RVA: 0x00004C08 File Offset: 0x00002E08 18 | private void InitializeComponent() 19 | { 20 | this.text = new System.Windows.Forms.Label(); 21 | this.SuspendLayout(); 22 | // 23 | // text 24 | // 25 | this.text.Dock = System.Windows.Forms.DockStyle.Fill; 26 | this.text.Font = new System.Drawing.Font("Microsoft Sans Serif", 100F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 27 | this.text.ForeColor = System.Drawing.Color.White; 28 | this.text.Location = new System.Drawing.Point(0, 0); 29 | this.text.Margin = new System.Windows.Forms.Padding(0); 30 | this.text.Name = "text"; 31 | this.text.Size = new System.Drawing.Size(1422, 673); 32 | this.text.TabIndex = 0; 33 | this.text.Text = "外出た瞬間"; 34 | this.text.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 35 | // 36 | // BackgroundForm 37 | // 38 | this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); 39 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 40 | this.BackColor = System.Drawing.Color.Gold; 41 | this.ClientSize = new System.Drawing.Size(1422, 673); 42 | this.Controls.Add(this.text); 43 | this.DoubleBuffered = true; 44 | this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 45 | this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 46 | this.Name = "BackgroundForm"; 47 | this.ShowIcon = false; 48 | this.Text = "背景呐"; 49 | this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.BackgroundForm_FormClosed); 50 | this.ResumeLayout(false); 51 | 52 | } 53 | 54 | // Token: 0x0400001C RID: 28 55 | private global::System.ComponentModel.IContainer components = null; 56 | 57 | // Token: 0x0400001D RID: 29 58 | private global::System.Windows.Forms.Label text; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BirdWaveF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200000A RID: 10 4 | public partial class BirdWaveF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600002C RID: 44 RVA: 0x000052E0 File Offset: 0x000034E0 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x0600002D RID: 45 RVA: 0x00005318 File Offset: 0x00003518 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // BirdWaveF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.BlackBirdWave1; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(172, 159); 29 | this.DoubleBuffered = true; 30 | this.MaximizeBox = false; 31 | this.MinimizeBox = false; 32 | this.Name = "BirdWaveF"; 33 | this.ShowIcon = false; 34 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 35 | this.ResumeLayout(false); 36 | 37 | } 38 | 39 | // Token: 0x0400002C RID: 44 40 | private global::System.ComponentModel.IContainer components = null; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BirdWaveF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | public partial class BirdWaveF : Form 10 | { 11 | //private bool isFlip; 12 | 13 | private Bitmap wave1; 14 | 15 | private Bitmap wave2; 16 | 17 | private Bitmap wave1F; 18 | 19 | private Bitmap wave2F; 20 | 21 | public new Image BackgroundImage 22 | { 23 | get 24 | { 25 | return base.BackgroundImage; 26 | } 27 | set 28 | { 29 | base.BackgroundImage = value; 30 | if (base.IsHandleCreated) 31 | { 32 | Invoke((MethodInvoker)delegate 33 | { 34 | base.BackgroundImage = value; 35 | }); 36 | } 37 | } 38 | } 39 | 40 | public BirdWaveF(bool isWhite) 41 | { 42 | InitializeComponent(); 43 | wave1 = ((!isWhite) ? new Bitmap("Assets\\BlackBirdWave1.png") : new Bitmap("Assets\\WhiteBirdWave1.png")); 44 | wave2 = ((!isWhite) ? new Bitmap("Assets\\BlackBirdWave2.png") : new Bitmap("Assets\\WhiteBirdWave2.png")); 45 | wave1F = new Bitmap(wave1); 46 | wave1F.RotateFlip(RotateFlipType.RotateNoneFlipX); 47 | wave2F = new Bitmap(wave2); 48 | wave2F.RotateFlip(RotateFlipType.RotateNoneFlipX); 49 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 50 | UpdateStyles(); 51 | } 52 | 53 | public void ShowDialog(long endF, Point p) 54 | { 55 | base.Location = p; 56 | Thread thread = new Thread((ThreadStart)delegate 57 | { 58 | long num = endF; 59 | while (true) 60 | { 61 | long num2 = Tracker.frame % 40; 62 | long num3 = num2; 63 | long num4 = num3; 64 | if (num4 < 10) 65 | { 66 | BackgroundImage = wave1; 67 | } 68 | else 69 | { 70 | long num5 = num4; 71 | if (num5 >= 10 && num5 < 20) 72 | { 73 | BackgroundImage = wave2; 74 | } 75 | else 76 | { 77 | long num6 = num4; 78 | if (num6 >= 20 && num6 < 30) 79 | { 80 | BackgroundImage = wave1F; 81 | } 82 | else 83 | { 84 | long num7 = num4; 85 | if (num7 >= 30 && num7 < 40) 86 | { 87 | BackgroundImage = wave2F; 88 | } 89 | } 90 | } 91 | } 92 | if (Tracker.frame > endF) 93 | { 94 | break; 95 | } 96 | Thread.Sleep(3); 97 | } 98 | Hide(); 99 | }); 100 | thread.Start(); 101 | ShowDialog(); 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BirdWaveF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BlackBirdF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000009 RID: 9 4 | public partial class BlackBirdF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000026 RID: 38 RVA: 0x00004FE4 File Offset: 0x000031E4 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000027 RID: 39 RVA: 0x0000501C File Offset: 0x0000321C 18 | private void InitializeComponent() 19 | { 20 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 21 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 22 | this.SuspendLayout(); 23 | // 24 | // pictureBox1 25 | // 26 | this.pictureBox1.BackColor = System.Drawing.Color.Yellow; 27 | this.pictureBox1.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.BlackBird2; 28 | this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 29 | this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; 30 | this.pictureBox1.Location = new System.Drawing.Point(0, 0); 31 | this.pictureBox1.Name = "pictureBox1"; 32 | this.pictureBox1.Size = new System.Drawing.Size(262, 204); 33 | this.pictureBox1.TabIndex = 0; 34 | this.pictureBox1.TabStop = false; 35 | // 36 | // BlackBirdF 37 | // 38 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 39 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 40 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 41 | this.ClientSize = new System.Drawing.Size(262, 204); 42 | this.Controls.Add(this.pictureBox1); 43 | this.DoubleBuffered = true; 44 | this.Name = "BlackBirdF"; 45 | this.ShowIcon = false; 46 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 47 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 48 | this.ResumeLayout(false); 49 | 50 | } 51 | 52 | // Token: 0x04000025 RID: 37 53 | private global::System.ComponentModel.IContainer components = null; 54 | 55 | // Token: 0x04000026 RID: 38 56 | private global::System.Windows.Forms.PictureBox pictureBox1; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BlackBirdF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x02000009 RID: 9 10 | public partial class BlackBirdF : Form 11 | { 12 | // Token: 0x06000022 RID: 34 RVA: 0x00004D5C File Offset: 0x00002F5C 13 | public BlackBirdF() 14 | { 15 | this.InitializeComponent(); 16 | this.b1 = new Bitmap("Assets\\BlackBird1.png"); 17 | this.b2 = new Bitmap("Assets\\BlackBird2.png"); 18 | this.pictureBox1.BackgroundImage = this.b1; 19 | base.StartPosition = FormStartPosition.Manual; 20 | this.backColorY = Color.FromArgb(16701521); 21 | this.backColorY = Color.FromArgb(255, (int)this.backColorY.R, (int)this.backColorY.G, (int)this.backColorY.B); 22 | this.pictureBox1.BackColor = this.backColorY; 23 | this.backColorB = Color.FromArgb(6471671); 24 | this.backColorB = Color.FromArgb(255, (int)this.backColorB.R, (int)this.backColorB.G, (int)this.backColorB.B); 25 | } 26 | 27 | // Token: 0x06000023 RID: 35 RVA: 0x00004E68 File Offset: 0x00003068 28 | public void ShowDialog(Point pos, int endF) 29 | { 30 | base.Location = pos; 31 | Thread thread = new Thread(delegate() 32 | { 33 | int endF2 = endF; 34 | for (;;) 35 | { 36 | this.UpdateF(Tracker.frame); 37 | bool flag = Tracker.frame > (long)endF; 38 | if (flag) 39 | { 40 | break; 41 | } 42 | Thread.Sleep(1); 43 | } 44 | if(hitThread.ThreadState == ThreadState.Running) 45 | { 46 | this.hitThread.Abort(); 47 | } 48 | this.Hide(); 49 | }); 50 | thread.Start(); 51 | base.ShowDialog(); 52 | } 53 | 54 | // Token: 0x06000024 RID: 36 RVA: 0x00004EB4 File Offset: 0x000030B4 55 | private void UpdateF(long f) 56 | { 57 | if (f <= 390L) 58 | { 59 | if (f != 319L) 60 | { 61 | if (f == 390L) 62 | { 63 | this.pictureBox1.BackColor = this.backColorB; 64 | this.Hit(0); 65 | } 66 | } 67 | else 68 | { 69 | this.pictureBox1.BackColor = this.backColorY; 70 | this.Hit(-4); 71 | } 72 | } 73 | else if (f != 467L) 74 | { 75 | if (f == 542L) 76 | { 77 | this.pictureBox1.BackColor = this.backColorB; 78 | this.Hit(0); 79 | } 80 | } 81 | else 82 | { 83 | this.pictureBox1.BackColor = this.backColorY; 84 | this.Hit(0); 85 | } 86 | } 87 | 88 | // Token: 0x06000025 RID: 37 RVA: 0x00004F70 File Offset: 0x00003170 89 | private void Hit(int offset) 90 | { 91 | bool flag = this.hitThread != null; 92 | if (flag) 93 | { 94 | bool flag2 = this.hitThread.ThreadState == ThreadState.Running; 95 | if (flag2) 96 | { 97 | this.hitThread.Abort(); 98 | } 99 | } 100 | this.hitThread = new Thread(delegate() 101 | { 102 | this.startHitF = Tracker.frame; 103 | int i = 0; 104 | while (i < 10) 105 | { 106 | bool flag3 = Tracker.frame == this.startHitF + this.hitF[i] + (long)offset; 107 | if (flag3) 108 | { 109 | this.pictureBox1.BackgroundImage = this.b2; 110 | i++; 111 | Thread.Sleep(50); 112 | this.pictureBox1.BackgroundImage = this.b1; 113 | } 114 | Thread.Sleep(5); 115 | } 116 | }); 117 | this.hitThread.Start(); 118 | } 119 | 120 | // Token: 0x0400001E RID: 30 121 | private Bitmap b1; 122 | 123 | // Token: 0x0400001F RID: 31 124 | private Bitmap b2; 125 | 126 | // Token: 0x04000020 RID: 32 127 | private Color backColorY; 128 | 129 | // Token: 0x04000021 RID: 33 130 | private Color backColorB; 131 | 132 | // Token: 0x04000022 RID: 34 133 | private long[] hitF = new long[] 134 | { 135 | 7L, 136 | 11L, 137 | 20L, 138 | 28L, 139 | 34L, 140 | 45L, 141 | 50L, 142 | 59L, 143 | 67L, 144 | 73L 145 | }; 146 | 147 | // Token: 0x04000023 RID: 35 148 | private long startHitF; 149 | 150 | // Token: 0x04000024 RID: 36 151 | private Thread hitThread; 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BlackBirdF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/BlueScreen.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | using System.Windows.Forms; 4 | 5 | namespace PowerfulWindSlickedBackHair.Windows 6 | { 7 | public partial class BlueScreen : Form 8 | { 9 | public BlueScreen() 10 | { 11 | InitializeComponent(); 12 | 13 | Cursor.Hide(); 14 | if (Environment.OSVersion.Version.Major >= 10) 15 | { 16 | panel1.Visible = false; 17 | } 18 | new Thread(() => 19 | { 20 | Thread.Sleep(2500); 21 | label3.Text = "11% 完成"; 22 | Thread.Sleep(2500); 23 | label3.Text = "24% 完成"; 24 | Thread.Sleep(2600); 25 | label3.Text = "35% 完成"; 26 | Thread.Sleep(1500); 27 | label3.Text = "41% 完成"; 28 | Thread.Sleep(200); 29 | label3.Text = "58% 完成"; 30 | Thread.Sleep(200); 31 | label3.Text = "81% 完成"; 32 | Thread.Sleep(200); 33 | label3.Text = "100% 完成"; 34 | Thread.Sleep(200); 35 | this.Close(); 36 | }) 37 | { IsBackground = true }.Start(); 38 | 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/CabbageForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200000C RID: 12 4 | public partial class CabbageForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000036 RID: 54 RVA: 0x000055B4 File Offset: 0x000037B4 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000037 RID: 55 RVA: 0x000055EC File Offset: 0x000037EC 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // CabbageForm 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.CabbageFull; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(306, 207); 29 | this.DoubleBuffered = true; 30 | this.Name = "CabbageForm"; 31 | this.ShowIcon = false; 32 | this.Text = "不明绿色圆球"; 33 | this.Click += new System.EventHandler(this.CabbageForm_Click); 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x04000031 RID: 49 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/CabbageForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200000C RID: 12 10 | public partial class CabbageForm : Form 11 | { 12 | // Token: 0x06000033 RID: 51 RVA: 0x00005518 File Offset: 0x00003718 13 | public CabbageForm() 14 | { 15 | this.InitializeComponent(); 16 | this.cut = new Bitmap("Assets//CabbageCut.png"); 17 | base.StartPosition = FormStartPosition.Manual; 18 | } 19 | 20 | // Token: 0x06000034 RID: 52 RVA: 0x00005548 File Offset: 0x00003748 21 | public void ShowDialog(int endFrame, Point startPos) 22 | { 23 | base.Location = startPos; 24 | this.startF = Tracker.frame; 25 | Thread thread = new Thread(delegate () 26 | { 27 | int endFrame2 = endFrame; 28 | while (true) 29 | { 30 | bool flag = Tracker.frame > (long)endFrame; 31 | if (flag) 32 | { 33 | break; 34 | } 35 | bool flag2 = Tracker.frame > this.startF + 5L && !this.isClicked; 36 | if (flag2) 37 | { 38 | this.BackgroundImage = this.cut; 39 | this.isClicked = true; 40 | } 41 | bool flag3 = this.isClicked; 42 | if (flag3) 43 | { 44 | goto Block_4; 45 | } 46 | Thread.Sleep(1); 47 | } 48 | this.Hide(); 49 | return; 50 | Block_4: 51 | int i = (int)(this.Opacity * 50.0); 52 | while (i > 0) 53 | { 54 | Thread.Sleep(10); 55 | bool flag4 = this.Opacity < 0.05000000074505806; 56 | if (flag4) 57 | { 58 | this.Hide(); 59 | } 60 | this.Opacity -= 0.019999999552965164; 61 | } 62 | this.Hide(); 63 | }); 64 | thread.Start(); 65 | base.ShowDialog(); 66 | } 67 | 68 | // Token: 0x06000035 RID: 53 RVA: 0x0000559D File Offset: 0x0000379D 69 | private void CabbageForm_Click(object sender, EventArgs e) 70 | { 71 | this.BackgroundImage = this.cut; 72 | this.isClicked = true; 73 | } 74 | 75 | // Token: 0x0400002E RID: 46 76 | private Bitmap cut; 77 | 78 | // Token: 0x0400002F RID: 47 79 | private bool isClicked; 80 | 81 | // Token: 0x04000030 RID: 48 82 | private long startF; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/DogWalkF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200000D RID: 13 4 | public partial class DogWalkF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600003C RID: 60 RVA: 0x000057E4 File Offset: 0x000039E4 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x0600003D RID: 61 RVA: 0x0000581C File Offset: 0x00003A1C 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // DogWalkF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.DogWalk1; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(152, 126); 29 | this.DoubleBuffered = true; 30 | this.MaximizeBox = false; 31 | this.MinimizeBox = false; 32 | this.Name = "DogWalkF"; 33 | this.ShowIcon = false; 34 | this.Text = "勾"; 35 | this.ResumeLayout(false); 36 | 37 | } 38 | 39 | // Token: 0x04000034 RID: 52 40 | private global::System.ComponentModel.IContainer components = null; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/DogWalkF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200000D RID: 13 10 | public partial class DogWalkF : Form 11 | { 12 | private Bitmap walk1; 13 | 14 | private Bitmap walk2; 15 | 16 | public new Image BackgroundImage 17 | { 18 | get 19 | { 20 | if (this.IsDisposed) return null; 21 | if (InvokeRequired) 22 | { 23 | return (Image)Invoke(new Func(() => base.BackgroundImage)); 24 | } 25 | return base.BackgroundImage; 26 | } 27 | set 28 | { 29 | if (IsDisposed) 30 | return; 31 | if (InvokeRequired) 32 | { 33 | BeginInvoke((MethodInvoker)delegate 34 | { 35 | if (IsDisposed || !IsHandleCreated) 36 | return; 37 | Image oldImage = base.BackgroundImage; 38 | base.BackgroundImage = value; 39 | }); 40 | } 41 | else 42 | { 43 | if (IsDisposed || !IsHandleCreated) 44 | return; 45 | Image oldImage = base.BackgroundImage; 46 | base.BackgroundImage = value; 47 | } 48 | } 49 | } 50 | 51 | public DogWalkF() 52 | { 53 | InitializeComponent(); 54 | base.StartPosition = FormStartPosition.Manual; 55 | walk1 = new Bitmap("Assets\\DogWalk1.png"); 56 | walk2 = new Bitmap("Assets\\DogWalk2.png"); 57 | //BackgroundImage = walk1; 58 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 59 | UpdateStyles(); 60 | base.TopMost = true; 61 | } 62 | 63 | public void ShowDialog(Point pos, int endF) 64 | { 65 | base.TopMost = true; 66 | base.Location = pos; 67 | Thread backSwitcher = new Thread((ThreadStart)delegate 68 | { 69 | while (true) 70 | { 71 | long num2 = Tracker.frame % 6; 72 | BackgroundImage = ((num2 < 3) ? walk1 : walk2); 73 | Thread.Sleep(8); 74 | } 75 | }); 76 | Thread thread = new Thread((ThreadStart)delegate 77 | { 78 | int num = endF; 79 | backSwitcher.Start(); 80 | do 81 | { 82 | Thread.Sleep(8); 83 | } 84 | while (Tracker.frame <= endF); 85 | backSwitcher.Abort(); 86 | Hide(); 87 | }); 88 | thread.Start(); 89 | ShowDialog(); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/DogWalkF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/ErrorF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200000E RID: 14 4 | public partial class ErrorF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000041 RID: 65 RVA: 0x00005940 File Offset: 0x00003B40 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000042 RID: 66 RVA: 0x00005978 File Offset: 0x00003B78 18 | private void InitializeComponent() 19 | { 20 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 21 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 22 | this.SuspendLayout(); 23 | // 24 | // pictureBox1 25 | // 26 | this.pictureBox1.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.Error; 27 | this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.pictureBox1.Location = new System.Drawing.Point(-2, -36); 29 | this.pictureBox1.Name = "pictureBox1"; 30 | this.pictureBox1.Size = new System.Drawing.Size(394, 174); 31 | this.pictureBox1.TabIndex = 0; 32 | this.pictureBox1.TabStop = false; 33 | // 34 | // ErrorF 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.Error; 39 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 40 | this.ClientSize = new System.Drawing.Size(389, 133); 41 | this.Controls.Add(this.pictureBox1); 42 | this.DoubleBuffered = true; 43 | this.Name = "ErrorF"; 44 | this.ShowIcon = false; 45 | this.Text = "Error"; 46 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 47 | this.ResumeLayout(false); 48 | 49 | } 50 | 51 | // Token: 0x04000035 RID: 53 52 | private global::System.ComponentModel.IContainer components = null; 53 | private System.Windows.Forms.PictureBox pictureBox1; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/ErrorF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200000E RID: 14 10 | public partial class ErrorF : Form 11 | { 12 | // Token: 0x0600003F RID: 63 RVA: 0x000058D2 File Offset: 0x00003AD2 13 | public ErrorF() 14 | { 15 | this.InitializeComponent(); 16 | base.StartPosition = FormStartPosition.Manual; 17 | } 18 | 19 | // Token: 0x06000040 RID: 64 RVA: 0x000058F4 File Offset: 0x00003AF4 20 | public void ShowDialog(Point pos, int endFrame) 21 | { 22 | base.Location = pos; 23 | Thread thread = new Thread(delegate() 24 | { 25 | int endFrame2 = endFrame; 26 | bool flag; 27 | do 28 | { 29 | flag = (Tracker.frame > (long)endFrame); 30 | Thread.Sleep(1); 31 | } 32 | while (!flag); 33 | this.Hide(); 34 | }); 35 | thread.Start(); 36 | base.ShowDialog(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/ErrorF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/FightForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200000F RID: 15 4 | public partial class FightForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000047 RID: 71 RVA: 0x00005B3C File Offset: 0x00003D3C 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000048 RID: 72 RVA: 0x00005B74 File Offset: 0x00003D74 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // FightForm 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.Fight1; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(1189, 668); 29 | this.DoubleBuffered = true; 30 | this.Name = "FightForm"; 31 | this.ShowIcon = false; 32 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 33 | this.ResumeLayout(false); 34 | 35 | } 36 | 37 | // Token: 0x04000039 RID: 57 38 | private global::System.ComponentModel.IContainer components = null; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/FightForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200000F RID: 15 10 | public partial class FightForm : Form 11 | { 12 | private Bitmap fight1; 13 | 14 | private Bitmap fight2; 15 | 16 | private Bitmap fight3; 17 | 18 | public new Image BackgroundImage 19 | { 20 | get 21 | { 22 | return base.BackgroundImage; 23 | } 24 | set 25 | { 26 | base.BackgroundImage = value; 27 | if (base.IsHandleCreated) 28 | { 29 | Invoke((MethodInvoker)delegate 30 | { 31 | base.BackgroundImage = value; 32 | }); 33 | } 34 | } 35 | } 36 | 37 | public FightForm() 38 | { 39 | InitializeComponent(); 40 | fight1 = new Bitmap("Assets\\Fight1.png"); 41 | fight2 = new Bitmap("Assets\\Fight2.png"); 42 | fight3 = new Bitmap("Assets\\Fight3.png"); 43 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 44 | UpdateStyles(); 45 | } 46 | 47 | public void ShowDialog(long endF) 48 | { 49 | Thread thread = new Thread((ThreadStart)delegate 50 | { 51 | long num = endF; 52 | while (true) 53 | { 54 | long num2 = Tracker.frame % 6; 55 | BackgroundImage = ((num2 < 2) ? fight1 : ((num2 < 4) ? fight2 : fight3)); 56 | if (Tracker.frame > endF) 57 | { 58 | break; 59 | } 60 | Thread.Sleep(3); 61 | } 62 | Hide(); 63 | }); 64 | thread.Start(); 65 | ShowDialog(); 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/FightForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/FloatWindowHelperF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000010 RID: 16 4 | public partial class FloatWindowHelperF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000050 RID: 80 RVA: 0x00005F84 File Offset: 0x00004184 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000051 RID: 81 RVA: 0x00005FBC File Offset: 0x000041BC 18 | private void InitializeComponent() 19 | { 20 | base.SuspendLayout(); 21 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(8f, 15f); 22 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 23 | base.ClientSize = new global::System.Drawing.Size(282, 64); 24 | base.Name = "FloatWindowHelperF"; 25 | this.Text = "FloatWindowHelperF"; 26 | base.WindowState = global::System.Windows.Forms.FormWindowState.Minimized; 27 | base.ResumeLayout(false); 28 | } 29 | 30 | // Token: 0x0400003E RID: 62 31 | private global::System.ComponentModel.IContainer components = null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/FloatYukiWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000011 RID: 17 4 | public partial class FloatYukiWindow : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600005F RID: 95 RVA: 0x000064EC File Offset: 0x000046EC 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000060 RID: 96 RVA: 0x00006524 File Offset: 0x00004724 18 | private void InitializeComponent() 19 | { 20 | base.SuspendLayout(); 21 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(8f, 15f); 22 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 23 | base.ClientSize = new global::System.Drawing.Size(185, 178); 24 | base.FormBorderStyle = global::System.Windows.Forms.FormBorderStyle.None; 25 | base.Name = "FloatYukiWindow"; 26 | this.Text = "FloatYukiWindow"; 27 | base.Load += new global::System.EventHandler(this.FloatYukiWindow_Load); 28 | base.Paint += new global::System.Windows.Forms.PaintEventHandler(this.FloatYukiWindow_Paint); 29 | base.ResumeLayout(false); 30 | } 31 | 32 | // Token: 0x04000040 RID: 64 33 | private global::System.ComponentModel.IContainer components = null; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/FloatYukiWindow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Concurrent; 3 | using System.Drawing; 4 | using System.Drawing.Drawing2D; 5 | using System.Drawing.Imaging; 6 | using System.Threading.Tasks; 7 | using System.Windows.Forms; 8 | 9 | namespace PowerfulWindSlickedBackHair.Windows 10 | { 11 | // Token: 0x02000011 RID: 17 12 | public partial class FloatYukiWindow : Form 13 | { 14 | private Bitmap yuki; 15 | 16 | public FloatYukiWindow() 17 | { 18 | InitializeComponent(); 19 | yuki = new Bitmap("Assets//CuttingYuki.png"); 20 | base.Size = yuki.Size; 21 | } 22 | 23 | private unsafe void FloatYukiWindow_Load(object sender, EventArgs e) 24 | { 25 | GraphicsPath graphicsPath = new GraphicsPath(); 26 | ConcurrentBag points = new ConcurrentBag(); 27 | Rectangle rect = new Rectangle(0, 0, yuki.Width, yuki.Height); 28 | BitmapData data = yuki.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); 29 | byte* ptr = (byte*)(void*)data.Scan0; 30 | int stride = data.Stride; 31 | Parallel.For(0, data.Height, delegate (int y) 32 | { 33 | for (int i = 0; i < data.Width; i++) 34 | { 35 | byte b = ptr[y * stride + i * 4 + 3]; 36 | if (b > 0) 37 | { 38 | points.Add(new Point(i, y)); 39 | } 40 | } 41 | }); 42 | yuki.UnlockBits(data); 43 | if (points.Count > 0) 44 | { 45 | graphicsPath.AddPolygon(points.ToArray()); 46 | } 47 | BackColor = Color.White; 48 | base.TransparencyKey = Color.White; 49 | } 50 | 51 | private void FloatYukiWindow_Paint(object sender, PaintEventArgs e) 52 | { 53 | Rectangle rectangle = new Rectangle(0, 0, base.ClientRectangle.Width, base.ClientRectangle.Height); 54 | using (new SolidBrush(Color.LightBlue)) 55 | { 56 | e.Graphics.DrawImage(yuki, 0, 0); 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/HugeBlow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000014 RID: 20 4 | public partial class HugeBlow : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600006C RID: 108 RVA: 0x00006B30 File Offset: 0x00004D30 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x0600006D RID: 109 RVA: 0x00006B68 File Offset: 0x00004D68 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // HugeBlow 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.HugeBlow1; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(1286, 724); 29 | this.DoubleBuffered = true; 30 | this.Name = "HugeBlow"; 31 | this.ShowIcon = false; 32 | this.Text = "汽笛"; 33 | this.Load += new System.EventHandler(this.HugeBlow_Load); 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x0400004A RID: 74 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/HugeBlow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | using PowerfulWindSlickedBackHair.Tools; 7 | 8 | namespace PowerfulWindSlickedBackHair.Windows 9 | { 10 | // Token: 0x02000014 RID: 20 11 | public partial class HugeBlow : Form 12 | { 13 | // Token: 0x06000069 RID: 105 RVA: 0x00006AA4 File Offset: 0x00004CA4 14 | public HugeBlow() 15 | { 16 | this.InitializeComponent(); 17 | this.blow2 = new Bitmap("Assets//HugeBlow2.png"); 18 | base.StartPosition = FormStartPosition.CenterScreen; 19 | } 20 | 21 | // Token: 0x0600006A RID: 106 RVA: 0x00006AD4 File Offset: 0x00004CD4 22 | public void ShowDialog(int endFrame) 23 | { 24 | Thread thread = new Thread(delegate() 25 | { 26 | int endFrame2 = endFrame; 27 | bool flag2; 28 | do 29 | { 30 | bool flag = Tracker.frame == 1820L; 31 | if (flag) 32 | { 33 | this.BackgroundImage = this.blow2; 34 | } 35 | int num = (int)((PerlinNoise.Noise((float)Tracker.frame / 2f, (float)Tracker.frame / 2f + 200f, 0f) - 0.5f) * 80f); 36 | int num2 = (int)((PerlinNoise.Noise((float)Tracker.frame / 2f + 400f, (float)Tracker.frame / 2f + 510f, 0f) - 0.5f) * 80f); 37 | this.Location = new Point(num + this.startLoc.X, num2 + this.startLoc.Y); 38 | flag2 = (Tracker.frame > (long)endFrame); 39 | Thread.Sleep(1); 40 | } 41 | while (!flag2); 42 | this.Hide(); 43 | }); 44 | thread.Start(); 45 | base.TopMost = true; 46 | base.ShowDialog(); 47 | } 48 | 49 | // Token: 0x0600006B RID: 107 RVA: 0x00006B1E File Offset: 0x00004D1E 50 | private void HugeBlow_Load(object sender, EventArgs e) 51 | { 52 | this.startLoc = base.Location; 53 | } 54 | 55 | // Token: 0x04000048 RID: 72 56 | private Bitmap blow2; 57 | 58 | // Token: 0x04000049 RID: 73 59 | private Point startLoc; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/HugeBlow.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/JumpingYukiForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000015 RID: 21 4 | public partial class JumpingYukiForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000075 RID: 117 RVA: 0x00007368 File Offset: 0x00005568 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000076 RID: 118 RVA: 0x000073A0 File Offset: 0x000055A0 18 | private void InitializeComponent() 19 | { 20 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(JumpingYukiForm)); 21 | this.SuspendLayout(); 22 | // 23 | // JumpingYukiForm 24 | // 25 | resources.ApplyResources(this, "$this"); 26 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 27 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.JumpDown; 28 | this.DoubleBuffered = true; 29 | this.Name = "JumpingYukiForm"; 30 | this.Opacity = 0.75D; 31 | this.ShowIcon = false; 32 | this.TopMost = true; 33 | this.Load += new System.EventHandler(this.JumpingYukiForm_Load); 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x0400005B RID: 91 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/LikeForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000012 RID: 18 4 | public partial class LikeForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000063 RID: 99 RVA: 0x00006620 File Offset: 0x00004820 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000064 RID: 100 RVA: 0x00006658 File Offset: 0x00004858 18 | private void InitializeComponent() 19 | { 20 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LikeForm)); 21 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 22 | this.pictureBox2 = new System.Windows.Forms.PictureBox(); 23 | this.pictureBox3 = new System.Windows.Forms.PictureBox(); 24 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 25 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); 26 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); 27 | this.SuspendLayout(); 28 | // 29 | // pictureBox1 30 | // 31 | this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage"))); 32 | this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 33 | this.pictureBox1.Location = new System.Drawing.Point(168, 219); 34 | this.pictureBox1.Name = "pictureBox1"; 35 | this.pictureBox1.Size = new System.Drawing.Size(152, 169); 36 | this.pictureBox1.TabIndex = 0; 37 | this.pictureBox1.TabStop = false; 38 | // 39 | // pictureBox2 40 | // 41 | this.pictureBox2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox2.BackgroundImage"))); 42 | this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 43 | this.pictureBox2.Location = new System.Drawing.Point(393, 219); 44 | this.pictureBox2.Name = "pictureBox2"; 45 | this.pictureBox2.Size = new System.Drawing.Size(152, 169); 46 | this.pictureBox2.TabIndex = 1; 47 | this.pictureBox2.TabStop = false; 48 | // 49 | // pictureBox3 50 | // 51 | this.pictureBox3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox3.BackgroundImage"))); 52 | this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 53 | this.pictureBox3.Location = new System.Drawing.Point(605, 219); 54 | this.pictureBox3.Name = "pictureBox3"; 55 | this.pictureBox3.Size = new System.Drawing.Size(152, 169); 56 | this.pictureBox3.TabIndex = 2; 57 | this.pictureBox3.TabStop = false; 58 | // 59 | // LikeForm 60 | // 61 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 62 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 63 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(216)))), ((int)(((byte)(81))))); 64 | this.ClientSize = new System.Drawing.Size(955, 585); 65 | this.Controls.Add(this.pictureBox3); 66 | this.Controls.Add(this.pictureBox2); 67 | this.Controls.Add(this.pictureBox1); 68 | this.DoubleBuffered = true; 69 | this.Name = "LikeForm"; 70 | this.ShowIcon = false; 71 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 72 | this.Text = "一键三连!"; 73 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 74 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); 75 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); 76 | this.ResumeLayout(false); 77 | 78 | } 79 | 80 | // Token: 0x04000041 RID: 65 81 | private global::System.ComponentModel.IContainer components = null; 82 | 83 | // Token: 0x04000042 RID: 66 84 | private global::System.Windows.Forms.PictureBox pictureBox1; 85 | 86 | // Token: 0x04000043 RID: 67 87 | private global::System.Windows.Forms.PictureBox pictureBox2; 88 | 89 | // Token: 0x04000044 RID: 68 90 | private global::System.Windows.Forms.PictureBox pictureBox3; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/LikeForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | using PowerfulWindSlickedBackHair.Properties; 7 | 8 | namespace PowerfulWindSlickedBackHair.Windows 9 | { 10 | // Token: 0x02000012 RID: 18 11 | public partial class LikeForm : Form 12 | { 13 | // Token: 0x06000061 RID: 97 RVA: 0x000065BB File Offset: 0x000047BB 14 | public LikeForm() 15 | { 16 | this.InitializeComponent(); 17 | } 18 | 19 | // Token: 0x06000062 RID: 98 RVA: 0x000065D4 File Offset: 0x000047D4 20 | public void ShowDialog(int endFrame) 21 | { 22 | Thread thread = new Thread(delegate() 23 | { 24 | int endFrame2 = endFrame; 25 | bool flag; 26 | do 27 | { 28 | flag = (Tracker.frame > (long)endFrame); 29 | Thread.Sleep(1); 30 | } 31 | while (!flag); 32 | this.Hide(); 33 | }); 34 | thread.Start(); 35 | base.TopMost = true; 36 | base.ShowDialog(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/PigeonPeekF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000016 RID: 22 4 | public partial class PigeonPeekF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600007D RID: 125 RVA: 0x000076E8 File Offset: 0x000058E8 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x0600007E RID: 126 RVA: 0x00007720 File Offset: 0x00005920 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // PigeonPeekF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.PigeonPeek; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(274, 242); 29 | this.DoubleBuffered = true; 30 | this.Name = "PigeonPeekF"; 31 | this.ShowIcon = false; 32 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 33 | this.TopMost = true; 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x04000063 RID: 99 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/PigeonPeekF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x02000016 RID: 22 10 | public partial class PigeonPeekF : Form 11 | { 12 | private long startFrame; 13 | 14 | private long endFrame; 15 | 16 | private Size lastPosition; 17 | 18 | private long sustainLength; 19 | 20 | private Point startLocation; 21 | 22 | private Bitmap peek1; 23 | 24 | private Bitmap peek2; 25 | 26 | public new Image BackgroundImage 27 | { 28 | get 29 | { 30 | return base.BackgroundImage; 31 | } 32 | set 33 | { 34 | base.BackgroundImage = value; 35 | if (base.IsHandleCreated) 36 | { 37 | Invoke((MethodInvoker)delegate 38 | { 39 | base.BackgroundImage = value; 40 | }); 41 | } 42 | } 43 | } 44 | 45 | public PigeonPeekF() 46 | { 47 | InitializeComponent(); 48 | base.StartPosition = FormStartPosition.Manual; 49 | peek1 = new Bitmap("Assets\\PigeonPeek.png"); 50 | peek2 = new Bitmap("Assets\\PigeonPeek2.png"); 51 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 52 | UpdateStyles(); 53 | } 54 | 55 | public void ShowDialog(Point pos, int endF, Size lastPos) 56 | { 57 | startFrame = Tracker.frame; 58 | endFrame = endF; 59 | lastPosition = lastPos; 60 | sustainLength = endFrame - startFrame; 61 | base.Location = pos; 62 | startLocation = base.Location; 63 | Thread thread = new Thread((ThreadStart)delegate 64 | { 65 | int num = endF; 66 | Thread thread2 = new Thread((ThreadStart)delegate 67 | { 68 | while (true) 69 | { 70 | long num3 = Tracker.frame % 4; 71 | BackgroundImage = ((num3 < 2) ? peek1 : peek2); 72 | Thread.Sleep(5); 73 | } 74 | }); 75 | thread2.Start(); 76 | while (true) 77 | { 78 | double num2 = (double)(Tracker.frame - startFrame) / (double)sustainLength; 79 | base.Location = new Point(startLocation.X - lastPos.Width, (int)((double)startLocation.Y - F(num2) * (double)lastPos.Height)); 80 | if (num2 > 0.949999988079071) 81 | { 82 | break; 83 | } 84 | Thread.Sleep(1); 85 | } 86 | thread2.Abort(); 87 | Hide(); 88 | }); 89 | thread.Start(); 90 | ShowDialog(); 91 | } 92 | 93 | private double F(double x) 94 | { 95 | double num = -Math.E * x * Math.Log(x); 96 | double value = 0.0 - Math.Pow(num, 0.4); 97 | return Math.Abs(value); 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/RollingDogF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000017 RID: 23 4 | public partial class RollingDogF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000084 RID: 132 RVA: 0x0000794C File Offset: 0x00005B4C 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000085 RID: 133 RVA: 0x00007984 File Offset: 0x00005B84 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // RollingDogF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(216)))), ((int)(((byte)(81))))); 27 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.RollingDog; 28 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; 29 | this.ClientSize = new System.Drawing.Size(228, 188); 30 | this.DoubleBuffered = true; 31 | this.Name = "RollingDogF"; 32 | this.ShowIcon = false; 33 | this.Text = "勾"; 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x0400006E RID: 110 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/RollingDogF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | public partial class RollingDogF : Form 10 | { 11 | private Bitmap dogWalk1; 12 | 13 | private Bitmap dogWalk2; 14 | 15 | private Bitmap dogRolling; 16 | 17 | private long switchF; 18 | 19 | private long startFrame; 20 | 21 | private long endFrame; 22 | 23 | private int lastPosition; 24 | 25 | private long sustainLength; 26 | 27 | private Point startLocation; 28 | 29 | private bool isShowMsg; 30 | 31 | public new Image BackgroundImage 32 | { 33 | get 34 | { 35 | if (this.IsDisposed) return null; 36 | if (InvokeRequired) 37 | { 38 | return (Image)Invoke(new Func(() => base.BackgroundImage)); 39 | } 40 | return base.BackgroundImage; 41 | } 42 | set 43 | { 44 | if (IsDisposed) 45 | return; 46 | if (InvokeRequired) 47 | { 48 | BeginInvoke((MethodInvoker)delegate 49 | { 50 | if (IsDisposed || !IsHandleCreated) 51 | return; 52 | Image oldImage = base.BackgroundImage; 53 | base.BackgroundImage = value; 54 | }); 55 | } 56 | else 57 | { 58 | if (IsDisposed || !IsHandleCreated) 59 | return; 60 | Image oldImage = base.BackgroundImage; 61 | base.BackgroundImage = value; 62 | } 63 | } 64 | } 65 | 66 | public RollingDogF() 67 | { 68 | InitializeComponent(); 69 | dogRolling = new Bitmap("Assets\\RollingDog.png"); 70 | dogWalk1 = new Bitmap("Assets\\DogWalk1.png"); 71 | dogWalk2 = new Bitmap("Assets\\DogWalk2.png"); 72 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 73 | UpdateStyles(); 74 | base.TopMost = true; 75 | base.StartPosition = FormStartPosition.Manual; 76 | } 77 | 78 | public void ShowDialog(Point pos, long endF, int lastPos, bool isShowMsg) 79 | { 80 | startFrame = Tracker.frame; 81 | endFrame = endF; 82 | lastPosition = lastPos; 83 | sustainLength = endFrame - startFrame; 84 | startLocation = pos; 85 | base.Location = pos; 86 | this.isShowMsg = isShowMsg; 87 | switchF = endF - 30; 88 | Thread thread = new Thread((ThreadStart)delegate 89 | { 90 | long num = endF; 91 | Thread thread2 = new Thread((ThreadStart)delegate 92 | { 93 | while (Tracker.Running) 94 | { 95 | if (Tracker.frame < switchF) 96 | { 97 | long num3 = Tracker.frame % 6; 98 | BackgroundImage = ((num3 < 3) ? dogWalk1 : dogWalk2); 99 | } 100 | else 101 | { 102 | if (this.isShowMsg) 103 | { 104 | NotifyIcon notifyIcon = new NotifyIcon(); 105 | notifyIcon.Visible = true; 106 | notifyIcon.BalloonTipText = "风力实在是太强了!\r\n我整条狗都快被吹飞了!"; 107 | notifyIcon.Icon = new Icon("Assets\\Cross.ico"); 108 | notifyIcon.ShowBalloonTip(1000, "风力实在是太强了!", "我整条狗都快被吹飞了!", ToolTipIcon.Warning); 109 | this.isShowMsg = false; 110 | } 111 | Bitmap bitmap = new Bitmap(dogRolling); 112 | bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); 113 | dogRolling = bitmap; 114 | BackgroundImage = bitmap; 115 | Thread.Sleep(100); 116 | } 117 | Thread.Sleep(8); 118 | } 119 | }); 120 | thread2.Start(); 121 | while (Tracker.Running) 122 | { 123 | double num2 = (double)(Tracker.frame - startFrame) / (double)sustainLength; 124 | base.Location = new Point((int)((double)startLocation.X + num2 * (double)lastPosition), startLocation.Y); 125 | if (Tracker.frame > endF) 126 | { 127 | break; 128 | } 129 | MainForm.WindSpeed = 5; 130 | Thread.Sleep(1); 131 | } 132 | MainForm.WindSpeed = 1; 133 | Hide(); 134 | if (thread2.IsAlive) 135 | thread2.Abort(); 136 | }); 137 | thread.Start(); 138 | ShowDialog(); 139 | } 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/StaticPigeonF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000013 RID: 19 4 | public partial class StaticPigeonF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000067 RID: 103 RVA: 0x000069AC File Offset: 0x00004BAC 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000068 RID: 104 RVA: 0x000069E4 File Offset: 0x00004BE4 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // StaticPigeonF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(216)))), ((int)(((byte)(81))))); 27 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.GreyPigeon; 28 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 29 | this.ClientSize = new System.Drawing.Size(399, 346); 30 | this.DoubleBuffered = true; 31 | this.Name = "StaticPigeonF"; 32 | this.ShowIcon = false; 33 | this.Text = "Up主"; 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x04000047 RID: 71 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/StaticPigeonF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x02000013 RID: 19 10 | public partial class StaticPigeonF : Form 11 | { 12 | // Token: 0x06000065 RID: 101 RVA: 0x00006905 File Offset: 0x00004B05 13 | public StaticPigeonF() 14 | { 15 | this.InitializeComponent(); 16 | base.StartPosition = FormStartPosition.Manual; 17 | this.grey = new Bitmap("Assets\\GreyPigeon.png"); 18 | this.white = new Bitmap("Assets\\WhitePigeon.png"); 19 | } 20 | 21 | // Token: 0x06000066 RID: 102 RVA: 0x00006948 File Offset: 0x00004B48 22 | public void ShowDialog(Point pos, long endF, bool isGrey) 23 | { 24 | base.Location = pos; 25 | this.BackgroundImage = (isGrey ? this.grey : this.white); 26 | Thread thread = new Thread(delegate() 27 | { 28 | long endF2 = endF; 29 | for (;;) 30 | { 31 | bool flag = Tracker.frame > endF; 32 | if (flag) 33 | { 34 | break; 35 | } 36 | Thread.Sleep(1); 37 | } 38 | this.Hide(); 39 | }); 40 | thread.Start(); 41 | base.ShowDialog(); 42 | } 43 | 44 | // Token: 0x04000045 RID: 69 45 | private Bitmap grey; 46 | 47 | // Token: 0x04000046 RID: 70 48 | private Bitmap white; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/StaticYukiForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000018 RID: 24 4 | public partial class StaticYukiForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000089 RID: 137 RVA: 0x00007ADC File Offset: 0x00005CDC 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x0600008A RID: 138 RVA: 0x00007B14 File Offset: 0x00005D14 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // StaticYukiForm 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.JumpDown; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(240, 578); 29 | this.DoubleBuffered = true; 30 | this.Name = "StaticYukiForm"; 31 | this.Opacity = 0.75D; 32 | this.ShowIcon = false; 33 | this.Text = "Error"; 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x04000071 RID: 113 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/StaticYukiForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | using PowerfulWindSlickedBackHair.Properties; 7 | 8 | namespace PowerfulWindSlickedBackHair.Windows 9 | { 10 | public partial class StaticYukiForm : Form 11 | { 12 | private Bitmap upNor; 13 | 14 | private Bitmap downNor; 15 | 16 | public StaticYukiForm() 17 | { 18 | InitializeComponent(); 19 | base.StartPosition = FormStartPosition.Manual; 20 | upNor = new Bitmap("Assets\\JumpUp.png"); 21 | downNor = new Bitmap("Assets\\JumpDown.png"); 22 | } 23 | 24 | public void ShowDialog(Point pos, int endFrame) 25 | { 26 | base.Location = pos; 27 | Thread thread = new Thread((ThreadStart)delegate 28 | { 29 | Thread thread2 = new Thread((ThreadStart)delegate 30 | { 31 | while (true) 32 | { 33 | BackgroundImage = (((int)(Tracker.frame / 8) % 2 == 1) ? upNor : downNor); 34 | Thread.Sleep(10); 35 | } 36 | }); 37 | thread2.Start(); 38 | int num = endFrame; 39 | while (Tracker.frame <= endFrame) 40 | { 41 | Thread.Sleep(5); 42 | } 43 | Hide(); 44 | thread2.Abort(); 45 | }); 46 | thread.Start(); 47 | ShowDialog(); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/WalkingYukiForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x02000019 RID: 25 4 | public partial class WalkingYukiForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600008F RID: 143 RVA: 0x00007D1C File Offset: 0x00005F1C 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000090 RID: 144 RVA: 0x00007D54 File Offset: 0x00005F54 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // WalkingYukiForm 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.Walk1; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(279, 569); 29 | this.Name = "WalkingYukiForm"; 30 | this.ShowIcon = false; 31 | this.Text = "正在踱步..."; 32 | this.ResumeLayout(false); 33 | 34 | } 35 | 36 | // Token: 0x0400007C RID: 124 37 | private global::System.ComponentModel.IContainer components = null; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/WalkingYukiForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x02000019 RID: 25 10 | public partial class WalkingYukiForm : Form 11 | { 12 | private readonly Bitmap walk1; 13 | 14 | private readonly Bitmap walk2; 15 | 16 | private readonly Bitmap walk3; 17 | 18 | private readonly Bitmap walk4; 19 | 20 | private long startFrame; 21 | 22 | private long endFrame; 23 | 24 | private int lastPosition; 25 | 26 | private long sustainLength; 27 | 28 | private Point startLocation; 29 | 30 | private int walkState; 31 | 32 | public new Image BackgroundImage 33 | { 34 | get 35 | { 36 | if (this.IsDisposed) return null; 37 | if (InvokeRequired) 38 | { 39 | return (Image)Invoke(new Func(() => base.BackgroundImage)); 40 | } 41 | return base.BackgroundImage; 42 | } 43 | set 44 | { 45 | if (IsDisposed) 46 | return; 47 | if (InvokeRequired) 48 | { 49 | Invoke((MethodInvoker)delegate 50 | { 51 | if (IsDisposed || !IsHandleCreated) 52 | return; 53 | Image oldImage = base.BackgroundImage; 54 | base.BackgroundImage = value; 55 | }); 56 | } 57 | else 58 | { 59 | if (IsDisposed || !IsHandleCreated) 60 | return; 61 | Image oldImage = base.BackgroundImage; 62 | base.BackgroundImage = value; 63 | } 64 | } 65 | } 66 | 67 | public WalkingYukiForm() 68 | { 69 | InitializeComponent(); 70 | walk1 = new Bitmap("Assets\\Walk1.png"); 71 | walk2 = new Bitmap("Assets\\Walk2.png"); 72 | walk3 = new Bitmap("Assets\\Walk3.png"); 73 | walk4 = new Bitmap("Assets\\Walk4.png"); 74 | base.StartPosition = FormStartPosition.Manual; 75 | base.TopMost = true; 76 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 77 | UpdateStyles(); 78 | } 79 | 80 | public void ShowDialog(Point pos, int endF, int lastPos) 81 | { 82 | startFrame = Tracker.frame; 83 | endFrame = endF; 84 | lastPosition = lastPos; 85 | sustainLength = endFrame - startFrame; 86 | base.Location = pos; 87 | startLocation = base.Location; 88 | Thread thread = new Thread((ThreadStart)delegate 89 | { 90 | int num = endF; 91 | Thread thread2 = new Thread((ThreadStart)delegate 92 | { 93 | while (true) 94 | { 95 | walkState++; 96 | switch (walkState % 4) 97 | { 98 | case 0: 99 | BackgroundImage = walk1; 100 | break; 101 | case 1: 102 | BackgroundImage = walk2; 103 | break; 104 | case 2: 105 | BackgroundImage = walk3; 106 | break; 107 | case 3: 108 | BackgroundImage = walk4; 109 | break; 110 | } 111 | Thread.Sleep(430); 112 | } 113 | }); 114 | thread2.Start(); 115 | do 116 | { 117 | double num2 = (double)(Tracker.frame - startFrame) / (double)sustainLength; 118 | base.Location = new Point((int)((double)startLocation.X - num2 * (double)lastPosition), startLocation.Y); 119 | Thread.Sleep(1); 120 | } 121 | while (Tracker.frame <= endF); 122 | thread2.Abort(); 123 | Hide(); 124 | }); 125 | thread.Start(); 126 | try 127 | { 128 | ShowDialog(); 129 | } 130 | catch (Exception) 131 | { 132 | } 133 | } 134 | } 135 | } 136 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/WhiteBirdF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200001A RID: 26 4 | public partial class WhiteBirdF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x06000097 RID: 151 RVA: 0x00007FF4 File Offset: 0x000061F4 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x06000098 RID: 152 RVA: 0x0000802C File Offset: 0x0000622C 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // WhiteBirdF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackColor = System.Drawing.Color.Gold; 27 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.WhiteBird1; 28 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 29 | this.ClientSize = new System.Drawing.Size(267, 406); 30 | this.DoubleBuffered = true; 31 | this.Name = "WhiteBirdF"; 32 | this.ShowIcon = false; 33 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 34 | this.Load += new System.EventHandler(this.WhiteBirdF_Load); 35 | this.ResumeLayout(false); 36 | 37 | } 38 | 39 | // Token: 0x04000081 RID: 129 40 | private global::System.ComponentModel.IContainer components = null; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/WhiteBirdF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200001A RID: 26 10 | public partial class WhiteBirdF : Form 11 | { 12 | // Token: 0x06000092 RID: 146 RVA: 0x00007E00 File Offset: 0x00006000 13 | public WhiteBirdF() 14 | { 15 | this.InitializeComponent(); 16 | this.hit1 = new Bitmap("Assets\\WhiteBird1.png"); 17 | this.hit2 = new Bitmap("Assets\\WhiteBird2.png"); 18 | base.StartPosition = FormStartPosition.Manual; 19 | this.backColorY = Color.FromArgb(16701521); 20 | this.backColorY = Color.FromArgb(255, (int)this.backColorY.R, (int)this.backColorY.G, (int)this.backColorY.B); 21 | this.BackColor = this.backColorY; 22 | this.backColorB = Color.FromArgb(6471671); 23 | this.backColorB = Color.FromArgb(255, (int)this.backColorB.R, (int)this.backColorB.G, (int)this.backColorB.B); 24 | } 25 | 26 | // Token: 0x06000093 RID: 147 RVA: 0x00007EDC File Offset: 0x000060DC 27 | public void ShowDialog(Point pos, int endF) 28 | { 29 | base.Location = pos; 30 | Thread thread = new Thread(delegate() 31 | { 32 | int endF2 = endF; 33 | for (;;) 34 | { 35 | this.UpdateF(Tracker.frame); 36 | bool flag = Tracker.frame > (long)endF; 37 | if (flag) 38 | { 39 | break; 40 | } 41 | Thread.Sleep(1); 42 | } 43 | this.Hide(); 44 | }); 45 | thread.Start(); 46 | base.ShowDialog(); 47 | } 48 | 49 | // Token: 0x06000094 RID: 148 RVA: 0x00007F28 File Offset: 0x00006128 50 | private void UpdateF(long frame) 51 | { 52 | if (frame <= 390L) 53 | { 54 | if (frame != 317L) 55 | { 56 | if (frame == 390L) 57 | { 58 | this.BackColor = this.backColorB; 59 | this.Hit(); 60 | } 61 | } 62 | } 63 | else if (frame != 467L) 64 | { 65 | if (frame == 542L) 66 | { 67 | this.BackColor = this.backColorB; 68 | this.Hit(); 69 | } 70 | } 71 | else 72 | { 73 | this.BackColor = this.backColorY; 74 | this.Hit(); 75 | } 76 | } 77 | 78 | // Token: 0x06000095 RID: 149 RVA: 0x00007FB4 File Offset: 0x000061B4 79 | private void Hit() 80 | { 81 | Thread thread = new Thread(delegate() 82 | { 83 | this.BackgroundImage = this.hit2; 84 | Thread.Sleep(70); 85 | this.BackgroundImage = this.hit1; 86 | }); 87 | thread.Start(); 88 | } 89 | 90 | // Token: 0x06000096 RID: 150 RVA: 0x00007FDB File Offset: 0x000061DB 91 | private void WhiteBirdF_Load(object sender, EventArgs e) 92 | { 93 | this.BackColor = this.backColorY; 94 | this.Hit(); 95 | } 96 | 97 | // Token: 0x0400007D RID: 125 98 | private Bitmap hit1; 99 | 100 | // Token: 0x0400007E RID: 126 101 | private Bitmap hit2; 102 | 103 | // Token: 0x0400007F RID: 127 104 | private Color backColorY; 105 | 106 | // Token: 0x04000080 RID: 128 107 | private Color backColorB; 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/WhiteBirdF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/YukiClapF.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace PowerfulWindSlickedBackHair.Windows 2 | { 3 | // Token: 0x0200001B RID: 27 4 | public partial class YukiClapF : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600009F RID: 159 RVA: 0x000082B0 File Offset: 0x000064B0 7 | protected override void Dispose(bool disposing) 8 | { 9 | bool flag = disposing && this.components != null; 10 | if (flag) 11 | { 12 | this.components.Dispose(); 13 | } 14 | base.Dispose(disposing); 15 | } 16 | 17 | // Token: 0x060000A0 RID: 160 RVA: 0x000082E8 File Offset: 0x000064E8 18 | private void InitializeComponent() 19 | { 20 | this.SuspendLayout(); 21 | // 22 | // YukiClapF 23 | // 24 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 25 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 26 | this.BackgroundImage = global::PowerfulWindSlickedBackHair.Properties.Resources.YukiClap; 27 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; 28 | this.ClientSize = new System.Drawing.Size(291, 302); 29 | this.DoubleBuffered = true; 30 | this.Name = "YukiClapF"; 31 | this.ShowIcon = false; 32 | this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 33 | this.TopMost = true; 34 | this.ResumeLayout(false); 35 | 36 | } 37 | 38 | // Token: 0x04000089 RID: 137 39 | private global::System.ComponentModel.IContainer components = null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/YukiClapF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | 7 | namespace PowerfulWindSlickedBackHair.Windows 8 | { 9 | // Token: 0x0200001B RID: 27 10 | public partial class YukiClapF : Form 11 | { 12 | private long startFrame; 13 | 14 | private long endFrame; 15 | 16 | private Size lastPosition; 17 | 18 | private long sustainLength; 19 | 20 | private Point startLocation; 21 | 22 | private Bitmap clap1; 23 | 24 | private Bitmap clap2; 25 | 26 | public new Image BackgroundImage 27 | { 28 | get 29 | { 30 | return base.BackgroundImage; 31 | } 32 | set 33 | { 34 | base.BackgroundImage = value; 35 | if (base.IsHandleCreated) 36 | { 37 | Invoke((MethodInvoker)delegate 38 | { 39 | base.BackgroundImage = value; 40 | }); 41 | } 42 | } 43 | } 44 | 45 | public YukiClapF() 46 | { 47 | InitializeComponent(); 48 | base.StartPosition = FormStartPosition.Manual; 49 | clap1 = new Bitmap("Assets\\YukiClap.png"); 50 | clap2 = new Bitmap("Assets\\YukiClap2.png"); 51 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, value: true); 52 | UpdateStyles(); 53 | } 54 | 55 | public void ShowDialog(Point pos, int endF, Size lastPos) 56 | { 57 | startFrame = Tracker.frame; 58 | endFrame = endF; 59 | lastPosition = lastPos; 60 | sustainLength = endFrame - startFrame; 61 | base.Location = pos; 62 | startLocation = base.Location; 63 | Thread thread = new Thread((ThreadStart)delegate 64 | { 65 | int num = endF; 66 | Thread thread2 = new Thread((ThreadStart)delegate 67 | { 68 | while (true) 69 | { 70 | long num3 = Tracker.frame % 4; 71 | BackgroundImage = ((num3 < 2) ? clap1 : clap2); 72 | Thread.Sleep(5); 73 | } 74 | }); 75 | thread2.Start(); 76 | while (true) 77 | { 78 | double num2 = (double)(Tracker.frame - startFrame) / (double)sustainLength; 79 | base.Location = new Point(startLocation.X - lastPos.Width, (int)((double)startLocation.Y - F(num2) * (double)lastPos.Height)); 80 | if (num2 > 0.949999988079071) 81 | { 82 | break; 83 | } 84 | Thread.Sleep(1); 85 | } 86 | thread2.Abort(); 87 | Hide(); 88 | }); 89 | thread.Start(); 90 | ShowDialog(); 91 | } 92 | 93 | private double F(double x) 94 | { 95 | double num = -Math.E * x * Math.Log(x); 96 | double value = 0.0 - Math.Pow(num, 0.4); 97 | return Math.Abs(value); 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/Windows/YukiClapF.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 57 | true 58 | true 59 | 60 | 61 | 62 | 63 | 64 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /PowerfulWindSlickedBackHair/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/f5f6419bb0a8cde4c2898f630b997cb12e57bf86/PowerfulWindSlickedBackHair/icon.ico -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PowerfulWindSlickedBackHair CS-LX Improve 2 | ## 强 风 大 窗 口 3 | 4 | b站刷到的视频,感觉有意思,程序原作者说源码不小心搞丢了,好在可以反编译,这是反编译完成的项目 5 | 6 | 除了反编译恢复外,还进行了以下改进和调整: 7 | 8 | #### 1、字体加入资源文件,解决系统没有安装相应字体,导致字幕变成默认宋体 9 | #### 2、删除exe.config,只要有安装framework 4.0或以上就能正常运行,一般win10或以上自带不用再安装 10 | #### 3、打开程序时,自动最小化其他所有窗口 11 | #### 4、现在整个桌面也会随背景变色,效果更好(开了第三方壁纸软件可能变不了) 12 | #### 5、增强的音画同步设置 13 | #### 6、修复了Windows 7及以下系统打开错误的问题 14 | #### 7、调整了框架版本(.Net FrameWork 4.0),现在可以兼容Windows XP系统 15 | 16 | 还有部分bug修复和一些其他小变动。 17 | 18 | 如有音画不同步,请在Offset.txt文件中修改参数,调整到最适合你电脑的参数。 19 | 20 | ### 使用方法 21 | 22 | >有些来访问的观众第一次用GitHub,这里简单介绍一下如何使用 23 | >1. 点右侧Releases的版本进入下载页面 24 | > 25 | >![image](https://github.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/assets/50539661/5fb8fbf6-272e-4dcd-a755-d314b7b1f265) 26 | > 27 | >2. 解压下载完的zip,找到目录下的exe双击运行即可开启狂风 28 | > 29 | >![image](https://github.com/SunnyDesignor/PowerfulWindSlickedBackHairCS-LX_Improve/assets/50539661/bc397a12-5ba4-402c-8812-badbba01b06e) 30 | > 31 | 32 | 33 | B站视频:https://www.bilibili.com/video/BV1Kz4y1p7sz 34 | 35 | 原作者:https://github.com/CS-LX 36 | 37 | 反编译重建/改进:https://space.bilibili.com/286746249 38 | --------------------------------------------------------------------------------