From ae293c61acbfde26618da14605a985fc00f46677 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 28 Jun 2017 21:48:03 -0400 Subject: [PATCH] Codepoint Leech Virus Suggested by Rylan. --- ShiftOS.WinForms/ShiftOS.WinForms.csproj | 1 + ShiftOS.WinForms/Viruses/CPLeach.cs | 34 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 ShiftOS.WinForms/Viruses/CPLeach.cs diff --git a/ShiftOS.WinForms/ShiftOS.WinForms.csproj b/ShiftOS.WinForms/ShiftOS.WinForms.csproj index f1c92da..c531c30 100644 --- a/ShiftOS.WinForms/ShiftOS.WinForms.csproj +++ b/ShiftOS.WinForms/ShiftOS.WinForms.csproj @@ -463,6 +463,7 @@ UniteSignupDialog.cs + diff --git a/ShiftOS.WinForms/Viruses/CPLeach.cs b/ShiftOS.WinForms/Viruses/CPLeach.cs new file mode 100644 index 0000000..0d82187 --- /dev/null +++ b/ShiftOS.WinForms/Viruses/CPLeach.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ShiftOS.Engine; + +namespace ShiftOS.WinForms.Viruses +{ + public class CPLeach : IVirus + { + public System.Windows.Forms.Timer Timer = null; + + public void Infect(int threatlevel) + { + Timer = new System.Windows.Forms.Timer(); + Timer.Interval = 6000; + Timer.Tick += (o, a) => + { + ulong codepointDecrease = (ulong)threatlevel * 4; + if (SaveSystem.CurrentSave.Codepoints >= codepointDecrease) + SaveSystem.CurrentSave.Codepoints -= codepointDecrease; + else + SaveSystem.CurrentSave.Codepoints = 0; + }; + Timer.Start(); + } + + public void Disinfect() + { + Timer.Stop(); + } + } +}