public override void disconnectionDetected(Computer c, OS os)
        {
            base.disconnectionDetected(c, os);
            for (int index = 0; index < c.ports.Count; ++index)
            {
                c.closePort(c.ports[index], "LOCAL_ADMIN");
            }
            if (c.firewall != null)
            {
                c.firewall.resetSolutionProgress();
                c.firewall.solved = false;
            }
            if (c.hasProxy)
            {
                c.proxyActive        = true;
                c.proxyOverloadTicks = c.startingOverloadTicks;
            }
            Action action = (Action)(() =>
            {
                if (os.connectedComp != null && !(os.connectedComp.ip != c.ip))
                {
                    return;
                }
                for (int index = 0; index < c.ports.Count; ++index)
                {
                    c.closePort(c.ports[index], "LOCAL_ADMIN");
                }
                if (this.ResetsPassword)
                {
                    c.setAdminPassword(PortExploits.getRandomPassword());
                }
                c.adminIP = c.ip;
                if (c.firewall != null)
                {
                    c.firewall.resetSolutionProgress();
                }
            });

            action();
            double time;

            if (c.securityLevel == 0)
            {
                time = 60;
            }
            else if (c.securityLevel == 2)
            {
                time = 50.5;
            }
            else if (c.securityLevel == 4)
            {
                time = 25;
            }
            else
            {
                time = 10;
            }
            os.delayer.Post(ActionDelayer.Wait(time), action);
            os.timerExpired();
        }
Exemple #2
0
 public TimeDelayer(float mtotal, UnityAction action)
 {
     totalTime = mtotal;
     startTime = Time.time;
     act       = action;
     delayer   = ActionDelayer.DoRoutine(DelayCO(action, mtotal));
 }
        public override void disconnectionDetected(Computer c, OS os)
        {
            base.disconnectionDetected(c, os);
            var time = 20.0 * Utils.random.NextDouble();

            os.delayer.Post(ActionDelayer.Wait(time), () =>
            {
                if (os.connectedComp != null && !(os.connectedComp.ip != c.ip))
                {
                    return;
                }
                for (var index = 0; index < c.ports.Count; ++index)
                {
                    c.closePort(c.ports[index], "LOCAL_ADMIN");
                }
                if (ResetsPassword)
                {
                    c.setAdminPassword(PortExploits.getRandomPassword());
                }
                c.adminIP = c.ip;
                if (c.firewall == null)
                {
                    return;
                }
                c.firewall.solved = false;
                c.firewall.resetSolutionProgress();
            });
        }
Exemple #4
0
 public void Discard(GameObject card, bool setSpaces = true)
 {
     if (discardType == DiscardType.Instant)
     {
         card.SetActive(false);
         Destroy(card);
         if (setSpaces)
         {
             SetSpaces();
         }
     }
     else if (discardType == DiscardType.Follow)
     {
         if (setSpaces)
         {
             ActionDelayer.DelayAction(SetSpaces, discardTime / 2);
         }
         card.transform.SetParent(null);
         card.transform.DOMove(finalPoint.position, discardTime).OnComplete(() => { card.SetActive(false); Destroy(card); });
         card.transform.DORotate(finalPoint.rotation.eulerAngles, discardTime);
         card.transform.DOScale(finalPoint.localScale, discardTime);
     }
     else if (discardType == DiscardType.Down)
     {
         card.transform.DOMoveY(card.transform.position.y - 3f, discardTime).OnComplete(() => { card.SetActive(false); /*Destroy(card);*/ if (setSpaces)
                                                                                                {
                                                                                                    SetSpaces();
                                                                                                }
                                                                                        }).SetEase(Ease.InBack);
     }
     else if (discardType == DiscardType.Custom)
     {
         //define custom draw here
     }
 }
Exemple #5
0
        public static void AccelerateSessionToDLCStart(object osObj)
        {
            OS os = (OS)osObj;

            os.Flags.AddFlag("TutorialComplete");
            os.delayer.RunAllDelayedActions();
            ThemeManager.setThemeOnComputer((object)os.thisComputer, "DLC/Themes/RiptideClassicTheme.xml");
            ThemeManager.switchTheme((object)os, "DLC/Themes/RiptideClassicTheme.xml");
            for (int index1 = 0; index1 < 60; ++index1)
            {
                int index2;
                do
                {
                    index2 = Utils.random.Next(os.netMap.nodes.Count);
                }while (os.netMap.nodes[index2].idName == "mainHub" || os.netMap.nodes[index2].idName == "entropy00" || os.netMap.nodes[index2].idName == "entropy01");
                os.netMap.discoverNode(os.netMap.nodes[index2]);
            }
            os.netMap.lastAddedNode = os.thisComputer;
            os.delayer.Post(ActionDelayer.Wait(0.15), (Action)(() =>
            {
                Game1.getSingleton().IsMouseVisible = true;
                os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[22], "SSHCrack.exe"));
                os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[21], "FTPBounce.exe"));
                os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[13], "eosDeviceScan.exe"));
                MissionFunctions.runCommand(7, "changeSong");
                MusicManager.stop();
            }));
            os.delayer.Post(ActionDelayer.Wait(56.0), (Action)(() => ComputerLoader.loadMission("Content/DLC/Missions/Demo/DLCDemoIntroMission1.xml", false)));
        }
 void IncreaseAudioSourceRadius(EventParameter param)
 {
     //AudioSource.Radius = param.intParam;
     ActionDelayer.RunAfterDelay(() =>
     {
         //AudioSource.Radius = _startAudioRadius;
     }, param.floatParam);
 }
Exemple #7
0
 public void Draw(Transform targetHolder, float drawTime = 0.75f, Ease ease = Ease.Linear)
 {
     box.enabled = false;
     SetDummy(targetHolder, true);
     dummy.transform.SetAsLastSibling();
     cardDrop.Raise();
     ActionDelayer.DelayAction(() => { transform.DOMove(dummy.transform.position, 0.5f).SetEase(ease).OnComplete(() => { box.enabled = true; transform.SetParent(dummy.transform.parent); transform.SetSiblingIndex(dummy.transform.GetSiblingIndex()); dummy.gameObject.SetActive(false); Destroy(dummy); }); }, drawTime);
 }
Exemple #8
0
 public void Pause(float time)
 {
     if (paused)
     {
         return;
     }
     Pause();
     ActionDelayer.DelayAction(Resume, time);
 }
Exemple #9
0
    public static void Play(AudioClip clip, float volume = 0.25f)
    {
        var obj = new GameObject("Audio");
        var s   = obj.AddComponent <AudioSource>();

        s.volume = volume;
        s.clip   = clip;
        s.Play();
        ActionDelayer.DelayAction(obj.Kill, clip.length + 1f);
    }
Exemple #10
0
 void ActivateEffect(EventParameter eventParam)
 {
     if (eventParam.materialParam != null)
     {
         Material material = eventParam.materialParam;
         material.SetFloat("_Lerp", 0);
         _effectMaterials.Add(material);
         StartCoroutine(LerpInCameraEffect(material, eventParam.floatParam2, false));
         ActionDelayer.RunAfterDelay(() => { StartCoroutine(LerpInCameraEffect(material, eventParam.floatParam2, true)); }, eventParam.floatParam);
     }
 }
Exemple #11
0
    public void Resume()
    {
        if (!paused)
        {
            return;
        }
        paused = false;
        var delayed = ActionDelayer.DelayAction(act, totalTime - elapsedOnPause);

        delayer = delayed.delayer;
    }
Exemple #12
0
 public override void OnHover()
 {
     if (baseCard.card == null)
     {
         return;
     }
     if (CardBody.dragged == null)
     {
         return;
     }
     hoverDelayer = ActionDelayer.DelayAction(SetZone, hoverDelay);
 }
        private void DrawWarningScreen()
        {
            if (this.warningScreenIsActivating)
            {
                this.spriteBatch.Draw(Utils.white, this.fullscreen, Color.White);
            }
            else
            {
                this.DrawFlashingRedBackground();
            }
            string  text      = "WARNING";
            Vector2 vector2_1 = this.titleFont.MeasureString(text);
            float   widthTo   = (float)this.fullscreen.Width * 0.65f;
            float   scale     = widthTo / vector2_1.X;
            Vector2 vector2_2 = new Vector2(20f, -10f);

            this.spriteBatch.DrawString(this.titleFont, text, vector2_2, Color.Black, 0.0f, Vector2.Zero, scale, SpriteEffects.None, 0.5f);
            vector2_2.Y += (float)((double)vector2_1.Y * (double)scale - 55.0);
            TextItem.doFontLabel(vector2_2, LocaleTerms.Loc("COMPLETED TRACE DETECTED : EMERGENCY RECOVERY MODE ACTIVE"), Settings.ActiveLocale.StartsWith("en") ? this.titleFont : GuiData.font, new Color?(Color.Black), widthTo, float.MaxValue, false);
            vector2_2.Y += 40f;
            vector2_2    = this.DrawFlashInString(LocaleTerms.Loc("Unsyndicated foreign connection detected during active trace"), vector2_2, 0.0f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString(" :: " + LocaleTerms.Loc("Emergency recovery mode activated"), vector2_2, 0.1f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString("-----------------------------------------------------------------------", vector2_2, 0.2f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString(" ", vector2_2, 0.5f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString(LocaleTerms.Loc("Automated screening procedures will divert incoming connections temporarily"), vector2_2, 0.5f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString(LocaleTerms.Loc("This window is a final opportunity to regain anonymity."), vector2_2, 0.6f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString(LocaleTerms.Loc("As your current IP Address is known, it must be changed") + " -", vector2_2, 0.7f, 0.2f, false, 0.2f);
            vector2_2    = this.DrawFlashInString(LocaleTerms.Loc("This can only be done on your currently active ISP's routing server"), vector2_2, 0.8f, 0.2f, false, 0.2f);
            Computer computer = Programs.getComputer(this.os, "ispComp");

            vector2_2 = this.DrawFlashInString(string.Format(LocaleTerms.Loc("Reverse tracerouting has located this ISP server's IP address as {0}"), computer != null ? (object)computer.ip : (object)"68.144.93.18"), vector2_2, 0.9f, 0.2f, false, 0.2f);
            vector2_2 = this.DrawFlashInString(string.Format(LocaleTerms.Loc("Your local ip : {0}  must be tracked here and changed."), (object)this.os.thisComputer.ip), vector2_2, 1f, 0.2f, false, 0.2f);
            vector2_2 = this.DrawFlashInString(" ", vector2_2, 1.1f, 0.2f, false, 0.2f);
            vector2_2 = this.DrawFlashInString(LocaleTerms.Loc("Failure to complete this while active diversion holds will result in complete"), vector2_2, 1.1f, 0.2f, false, 0.2f);
            vector2_2 = this.DrawFlashInString(LocaleTerms.Loc("and permanent loss of all account data - THIS IS NOT REPEATABLE AND CANNOT BE DELAYED"), vector2_2, 1.2f, 0.2f, false, 0.2f);
            if (this.warningScreenIsActivating || ((double)this.timeThisState < 1.20000004768372 || !Button.doButton(789798001, 20, (int)((double)vector2_2.Y + 10.0), 400, 40, LocaleTerms.Loc("BEGIN"), new Color?(Color.Black))))
            {
                return;
            }
            this.timeThisState             = 0.0f;
            this.state                     = TraceDangerSequence.TraceDangerState.WarningScreenExiting;
            this.PreventOSRendering        = true;
            this.onBeatFlashTimer          = this.os.timer;
            this.warningScreenIsActivating = true;
            this.spinUpSound.Play(1f, 0.0f, 0.0f);
            this.os.terminal.inputLocked = false;
            this.os.delayer.Post(ActionDelayer.Wait(0.1), (Action)(() => this.spinUpSound.Play(1f, 0.0f, 0.0f)));
            this.os.delayer.Post(ActionDelayer.Wait(0.4), (Action)(() => this.spinUpSound.Play(0.4f, 0.0f, 0.0f)));
            this.os.delayer.Post(ActionDelayer.Wait(0.8), (Action)(() => this.spinUpSound.Play(0.2f, 0.1f, 0.0f)));
            this.os.delayer.Post(ActionDelayer.Wait(1.3), (Action)(() => this.spinUpSound.Play(0.1f, 0.2f, 0.0f)));
            this.os.delayer.Post(ActionDelayer.Wait(0.01), (Action)(() => MusicManager.playSongImmediatley("Music/Traced")));
        }
 public override void playerPassedValue(object os)
 {
     base.playerPassedValue(os);
     if (Settings.isAlphaDemoMode)
     {
         ComputerLoader.loadMission("Content/Missions/Entropy/EntropyMission3.xml");
     }
     else
     {
         ((OS)os).delayer.Post(ActionDelayer.Wait(1.7),
                               () => ComputerLoader.loadMission("Content/Missions/Entropy/ThemeHackTransitionMission.xml"));
     }
 }
Exemple #15
0
        public void NewUpdateAlert(OSLoadSaveFileEvent obj)
        {
            OS     os     = obj.OS;
            double time   = 6;
            Action action = (Action)(() =>
            {
                os.write("New update of Debug Mod is available");
                os.write("You are currently running: " + version + "New version: " + newVersion);
            });

            os.delayer.Post(ActionDelayer.Wait(time), action);
            obj.IsCancelled = true;
        }
Exemple #16
0
 public void GotWrong()
 {
     SoundSystem.Play(wrongSound, 0.5f);
     wrong.SetActive(true);
     answers += 1;
     transform.DOShakePosition(0.2f, 10f);
     if (answers <= 5)
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); wrong.SetActive(false); Manager.instance.player.EnableInput = true; }, 1f);
     }
     else
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); correct.SetActive(false); Manager.instance.End(true); }, 1f);
     }
 }
Exemple #17
0
 public void OnPointerEnter(PointerEventData eventData)
 {
     if (CardBody.dragged == null)
     {
         return;
     }
     if (open)
     {
         OpenZone();
     }
     else
     {
         hoverDelayer = ActionDelayer.DelayAction(OpenZone, hoverDelay);
     }
 }
Exemple #18
0
 public void ForceStartBitMissions(object os)
 {
     ((OS)os).Flags.AddFlag("bitPathStarted");
     ((OS)os).delayer.Post(ActionDelayer.Wait(1.6), (Action)(() => ComputerLoader.loadMission("Content/Missions/BitPath/BitAdv_Intro.xml", false)));
     Programs.getComputer((OS)os, "mainHubAssets").files.root.searchForFolder("bin").folders.Add(new Folder("Misc")
     {
         files =
         {
             new FileEntry(PortExploits.crackExeData[9],                           "Decypher.exe"),
             new FileEntry(PortExploits.crackExeData[10],                          "DECHead.exe"),
             new FileEntry(PortExploits.crackExeData[104],                         "KBT_PortTest.exe"),
             new FileEntry("Kellis BioTech medical port cycler - target 104-103.", "kbt_readme.txt")
         }
     });
     this.SendNotification(os, LocaleTerms.Loc("Agent") + ",\n" + LocaleTerms.Loc("Additional resources have been added to the CSEC members asset pool, for your free use.") + " " + LocaleTerms.Loc("Find them in the misc folder on the asset server.") + "\n\n" + LocaleTerms.Loc("Thankyou") + ",\n -" + this.name, this.name + " " + LocaleTerms.Loc("Admins :: Asset Uploads"));
 }
Exemple #19
0
    public override bool PotionEffectStart(FPSMovement p)
    {
        switch (type)
        {
        case CharacterStatType.Jump:
            if (!p._jumpForce.GetStatModifiers().Exists(x => x.Source == this))
            {
                potionEffect = new StatModifier(flat, StatType.Flat, this);
                p._jumpForce.AddModifier(potionEffect, duration);
                p._jumpForce.AddModifier(new StatModifier(factor, StatType.PercentMult, this), duration);
                return(true);
            }
            break;

        case CharacterStatType.Gravity:
            if (!p._gravity.GetStatModifiers().Exists(x => x.Source == this))
            {
                potionEffect = new StatModifier(flat, StatType.Flat, this);
                p._gravity.AddModifier(potionEffect, duration);
                // p._gravity.AddModifier(new StatModifier(factor, StatType.PercentMult, this), duration);
                return(true);
            }
            break;

        default:
            if (!(p._speed.GetStatModifiers().Exists(x => x.Source == this)))
            {
                potionEffect = new StatModifier(flat, StatType.Flat, this);
                p._speed.AddModifier(potionEffect, duration);
                p._speed.AddModifier(new StatModifier(factor, StatType.PercentMult, this), duration);

                EventParameter param = new EventParameter()
                {
                    intParam = -50, floatParam = 1
                };
                EventManager.TriggerEvent(EventNameLibrary.SPEED_INCREASE, param);
                param.intParam = 0;
                ActionDelayer.RunAfterDelay(() =>
                {
                    EventManager.TriggerEvent(EventNameLibrary.SPEED_INCREASE, param);
                }, duration);
                return(true);
            }
            break;
        }
        return(false);
    }
Exemple #20
0
 public void GotRight()
 {
     SoundSystem.Play(correctSound, 0.5f);
     correct.SetActive(true);
     transform.DOShakeScale(0.2f);
     answers                 += 1;
     correctAnswers          += 1;
     Manager.instance.Points += 10;
     if (answers < 4)
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); correct.SetActive(false); Manager.instance.player.EnableInput = true; }, 1f);
     }
     else
     {
         ActionDelayer.DelayAction(() => { stopEvent.Close(); transform.parent.parent.gameObject.SetActive(false); correct.SetActive(false); Manager.instance.End(true); }, 1f);
     }
 }
Exemple #21
0
        public WipeDegreesMission(string targetName, OS _os)
        {
            WipeDegreesMission wipeDegreesMission = this;

            this.ownerName = targetName;
            Action init = (Action)null;

            init = (Action)(() =>
            {
                if (_os.netMap.academicDatabase == null)
                {
                    _os.delayer.Post(ActionDelayer.NextTick(), init);
                }
                else
                {
                    closure_0.database = (AcademicDatabaseDaemon)_os.netMap.academicDatabase.getDaemon(typeof(AcademicDatabaseDaemon));
                }
            });
            init();
        }
Exemple #22
0
        public static void SendStartingEmailForActiveExtensionNextFrame(object os_obj)
        {
            OS os = (OS)os_obj;

            if (!string.IsNullOrWhiteSpace(ExtensionLoader.ActiveExtensionInfo.StartingMissionPath))
            {
                os.delayer.Post(ActionDelayer.NextTick(), (Action)(() =>
                {
                    ActiveMission activeMission = (ActiveMission)ComputerLoader.readMission(ExtensionLoader.ActiveExtensionInfo.FolderPath + "/" + ExtensionLoader.ActiveExtensionInfo.StartingMissionPath);
                    os.currentMission = activeMission;
                    activeMission.sendEmail(os);
                    activeMission.ActivateSuppressedStartFunctionIfPresent();
                    os.saveGame();
                }));
            }
            if (os.Flags.HasFlag("ExtensionFirstBootComplete"))
            {
                return;
            }
            os.Flags.AddFlag("ExtensionFirstBootComplete");
        }
Exemple #23
0
 public void Discard(List <GameObject> newcards)
 {
     newcards = newcards.OrderBy(x => x.transform.GetSiblingIndex()).ToList();
     for (int i = 0; i < newcards.Count; i++)
     {
         //Discard(newcards[i]);
         if (i > 0 && i < newcards.Count - 1)
         {
             var obj = newcards[i];
             ActionDelayer.DelayAction(() => { Discard(obj, false); }, i * delayBetweenDiscards);
         }
         else if (i == 0)
         {
             Discard(newcards[i], false);
         }
         else
         {
             var obj = newcards[i];
             ActionDelayer.DelayAction(() => { Discard(obj, true); }, i * delayBetweenDiscards);
         }
     }
 }
Exemple #24
0
        public AddDegreeMission(string targetName, string degreeName, string uniName, float desiredGPA, OS _os)
        {
            AddDegreeMission addDegreeMission = this;

            this.ownerName  = targetName;
            this.degreeName = degreeName;
            this.uniName    = uniName;
            this.desiredGPA = desiredGPA;
            Action init = (Action)null;

            init = (Action)(() =>
            {
                if (_os.netMap.academicDatabase == null)
                {
                    _os.delayer.Post(ActionDelayer.NextTick(), init);
                }
                else
                {
                    closure_0.database = (AcademicDatabaseDaemon)_os.netMap.academicDatabase.getDaemon(typeof(AcademicDatabaseDaemon));
                }
            });
            init();
        }
Exemple #25
0
 public void Update(float dt)
 {
     this.flashInTimeLeft = Math.Max(0.0f, this.flashInTimeLeft - dt);
     this.timeElapsed    += dt;
     if (!this.IsMonitoringDLCEndingCases)
     {
         return;
     }
     if (this.CrashingAircraft != null)
     {
         if (this.CrashingAircraft.IsInCriticalFirmwareFailure)
         {
             this.TargetHasStartedCrashing = true;
             this.IsInPostSaveState        = false;
             double totalSeconds = MediaPlayer.PlayPosition.TotalSeconds;
             double num1         = 1.0 / (131.0 / 60.0);
             double num2         = num1 * 4.0;
             double num3         = num1 * 2.0;
             double num4         = totalSeconds < 58.0 ? 999.0 : (totalSeconds < 117.0 ? num2 : num3);
             if ((totalSeconds + num1 / 2.0) % num4 < num1 / 4.0)
             {
                 this.os.warningFlash();
             }
         }
         else if (this.TargetHasStartedCrashing)
         {
             if (!this.os.Flags.HasFlag("DLC_PlaneResult"))
             {
                 RunnableConditionalActions.LoadIntoOS("DLC/ActionScripts/FinaleSaveActions.xml", (object)this.os);
                 this.os.Flags.AddFlag("DLC_PlaneSaveResponseTriggered");
                 this.os.Flags.AddFlag("DLC_PlaneResult");
             }
             if (!this.CrashingAircraft.IsInCriticalDescent() && !MediaPlayer.IsRepeating)
             {
                 MusicManager.FADE_TIME = 6f;
                 MusicManager.transitionToSong("DLC/Music/RemiDrone");
                 MediaPlayer.IsRepeating = true;
                 this.os.delayer.Post(ActionDelayer.Wait(2.0), (Action)(() => this.AircraftSaveSound.Play()));
                 this.IsInPostSaveState = true;
             }
         }
     }
     else if (this.TargetHasStartedCrashing)
     {
         if (this.SecondaryAircraft == null || this.SecondaryAircraft.IsInCriticalFirmwareFailure)
         {
             if (!this.os.Flags.HasFlag("DLC_PlaneResult"))
             {
                 RunnableConditionalActions.LoadIntoOS("DLC/ActionScripts/FinaleDoubleCrashActions.xml", (object)this.os);
                 this.os.Flags.AddFlag("DLC_DoubleCrashResponseTriggered");
                 this.os.Flags.AddFlag("DLC_PlaneResult");
             }
         }
         else if (!this.os.Flags.HasFlag("DLC_PlaneResult"))
         {
             RunnableConditionalActions.LoadIntoOS("DLC/ActionScripts/FinaleCrashActions.xml", (object)this.os);
             this.os.Flags.AddFlag("DLC_PlaneCrashedResponseTriggered");
             this.os.Flags.AddFlag("DLC_PlaneResult");
         }
         if (MusicManager.currentSongName != "DLC\\Music\\CrashTrack")
         {
             MusicManager.playSongImmediatley("DLC\\Music\\CrashTrack");
             MediaPlayer.IsRepeating = false;
         }
     }
     if (!MediaPlayer.IsRepeating && MediaPlayer.State != MediaState.Playing && !this.IsInPostSaveState)
     {
         MusicManager.FADE_TIME = 6f;
         MissionFunctions.runCommand(7, "changeSongDLC");
         MediaPlayer.IsRepeating = true;
     }
 }
        private List <LSItem> BuildDirectoryDrawList(Folder f, int recItteration, int indentOffset, OS os)
        {
            var list = new List <LSItem>();
            var commandSeperationDelay = 0.019;

            for (var index1 = 0; index1 < f.folders.Count; ++index1)
            {
                var myIndex = index1;
                var lsItem  = new LSItem
                {
                    DisplayName = "/" + f.folders[index1].name,
                    Clicked     = () =>
                    {
                        var num = 0;
                        for (var index = 0; index < os.navigationPath.Count - recItteration; ++index)
                        {
                            Action action = () => os.runCommand("cd ..");
                            if (num > 0)
                            {
                                os.delayer.Post(ActionDelayer.Wait(num * commandSeperationDelay), action);
                            }
                            else
                            {
                                action();
                            }
                            ++num;
                        }
                        Action action1 = () => os.runCommand("cd " + f.folders[myIndex].name);
                        if (num > 0)
                        {
                            os.delayer.Post(ActionDelayer.Wait(num * commandSeperationDelay), action1);
                        }
                        else
                        {
                            action1();
                        }
                    },
                    indent = indentOffset
                };
                list.Add(lsItem);
                indentOffset += 30;
                if (os.navigationPath.Count - 1 >= recItteration && os.navigationPath[recItteration] == index1)
                {
                    list.AddRange(BuildDirectoryDrawList(f.folders[index1], recItteration + 1, indentOffset, os));
                }
                indentOffset -= 30;
            }
            for (var index1 = 0; index1 < f.files.Count; ++index1)
            {
                var myIndex = index1;
                var lsItem  = new LSItem
                {
                    DisplayName = f.files[index1].name,
                    Clicked     = () =>
                    {
                        var num = 0;
                        for (var index = 0; index < os.navigationPath.Count - recItteration; ++index)
                        {
                            Action action = () => os.runCommand("cd ..");
                            if (num > 0)
                            {
                                os.delayer.Post(ActionDelayer.Wait(num * commandSeperationDelay), action);
                            }
                            else
                            {
                                action();
                            }
                            ++num;
                        }
                        Action action1 = () => os.runCommand("cat " + f.files[myIndex].name);
                        if (num > 0)
                        {
                            os.delayer.Post(ActionDelayer.Wait(num * commandSeperationDelay), action1);
                        }
                        else
                        {
                            action1();
                        }
                    },
                    indent = indentOffset
                };
                list.Add(lsItem);
            }
            if (f.folders.Count == 0 && f.files.Count == 0)
            {
                var lsItem = new LSItem
                {
                    IsEmtyDisplay = true,
                    indent        = indentOffset
                };
                list.Add(lsItem);
            }
            return(list);
        }
Exemple #27
0
 //Set an effect for a certain amount of time
 public void ActivateImageEffect(Material material, float time)
 {
     _effectMaterials.Add(material);
     ActionDelayer.RunAfterDelay(() => { _effectMaterials.Remove(material); }, time);
 }
        private void DrawWarningScreen()
        {
            if (warningScreenIsActivating)
            {
                spriteBatch.Draw(Utils.white, fullscreen, Color.White);
            }
            else
            {
                DrawFlashingRedBackground();
            }
            var text      = "WARNING";
            var vector2_1 = titleFont.MeasureString(text);
            var widthTo   = fullscreen.Width * 0.65f;
            var scale     = widthTo / vector2_1.X;
            var vector2_2 = new Vector2(20f, -10f);

            spriteBatch.DrawString(titleFont, text, vector2_2, Color.Black, 0.0f, Vector2.Zero, scale,
                                   SpriteEffects.None, 0.5f);
            vector2_2.Y += (float)(vector2_1.Y * (double)scale - 55.0);
            TextItem.doFontLabel(vector2_2, "COMPLETED TRACE DETECTED : EMERGENCY RECOVERY MODE ACTIVE", titleFont,
                                 Color.Black, widthTo, float.MaxValue);
            vector2_2.Y += 40f;
            vector2_2    = DrawFlashInString("Unsyndicated foreign connection detected during active trace", vector2_2,
                                             0.0f, 0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString(" :: Emergency recovery mode activated", vector2_2, 0.1f, 0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString("-----------------------------------------------------------------------",
                                          vector2_2, 0.2f, 0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString(" ", vector2_2, 0.5f, 0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString(
                "Automated screening procedures will divert incoming connections temporarily", vector2_2, 0.5f, 0.2f,
                false, 0.2f);
            vector2_2 = DrawFlashInString("This window is a final oppourtunity to regain anonymity.", vector2_2, 0.6f,
                                          0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString("As your current IP Address is known, it must be changed -", vector2_2, 0.7f,
                                          0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString("This can ony be done on your currently active ISP's routing server",
                                          vector2_2, 0.8f, 0.2f, false, 0.2f);
            vector2_2 =
                DrawFlashInString("Reverse tracerouting has located this ISP server's ip address as 68.144.93.18",
                                  vector2_2, 0.9f, 0.2f, false, 0.2f);
            vector2_2 = DrawFlashInString(
                "Your local ip : " + os.thisComputer.ip + " must be tracked here and changed.", vector2_2, 1f, 0.2f,
                false, 0.2f);
            vector2_2 = DrawFlashInString(" ", vector2_2, 1.1f, 0.2f, false, 0.2f);
            vector2_2 =
                DrawFlashInString("Failure to complete this while active diversion holds will result in complete",
                                  vector2_2, 1.1f, 0.2f, false, 0.2f);
            vector2_2 =
                DrawFlashInString(
                    "and permenant loss of all account data - THIS IS NOT REPEATABLE AND CANNOT BE DELAYED", vector2_2,
                    1.2f, 0.2f, false, 0.2f);
            if (warningScreenIsActivating || timeThisState < 1.20000004768372 ||
                !Button.doButton(789798001, 20, (int)(vector2_2.Y + 10.0), 400, 40, "BEGIN", Color.Black))
            {
                return;
            }
            timeThisState             = 0.0f;
            state                     = TraceDangerState.WarningScreenExiting;
            PreventOSRendering        = true;
            onBeatFlashTimer          = os.timer;
            warningScreenIsActivating = true;
            spinUpSound.Play(1f, 0.0f, 0.0f);
            os.terminal.inputLocked = false;
            os.delayer.Post(ActionDelayer.Wait(0.1), () => spinUpSound.Play(1f, 0.0f, 0.0f));
            os.delayer.Post(ActionDelayer.Wait(0.4), () => spinUpSound.Play(0.4f, 0.0f, 0.0f));
            os.delayer.Post(ActionDelayer.Wait(0.8), () => spinUpSound.Play(0.2f, 0.1f, 0.0f));
            os.delayer.Post(ActionDelayer.Wait(1.3), () => spinUpSound.Play(0.1f, 0.2f, 0.0f));
            os.delayer.Post(ActionDelayer.Wait(0.01), () => MusicManager.playSongImmediatley("Music/Traced"));
        }
        private List <DisplayModuleLSHelper.LSItem> BuildDirectoryDrawList(Folder f, int recItteration, int indentOffset, OS os)
        {
            List <DisplayModuleLSHelper.LSItem> lsItemList = new List <DisplayModuleLSHelper.LSItem>();
            double commandSeperationDelay = 0.019;

            for (int index1 = 0; index1 < f.folders.Count; ++index1)
            {
                int myIndex = index1;
                DisplayModuleLSHelper.LSItem lsItem = new DisplayModuleLSHelper.LSItem()
                {
                    DisplayName = "/" + f.folders[index1].name, Clicked = (Action)(() =>
                    {
                        int num = 0;
                        for (int index = 0; index < os.navigationPath.Count - recItteration; ++index)
                        {
                            Action action = (Action)(() => os.runCommand("cd .."));
                            if (num > 0)
                            {
                                os.delayer.Post(ActionDelayer.Wait((double)num * commandSeperationDelay), action);
                            }
                            else
                            {
                                action();
                            }
                            ++num;
                        }
                        Action action1 = (Action)(() => os.runCommand("cd " + f.folders[myIndex].name));
                        if (num > 0)
                        {
                            os.delayer.Post(ActionDelayer.Wait((double)num * commandSeperationDelay), action1);
                        }
                        else
                        {
                            action1();
                        }
                    }), indent = indentOffset
                };
                lsItemList.Add(lsItem);
                indentOffset += 30;
                if (os.navigationPath.Count - 1 >= recItteration && os.navigationPath[recItteration] == index1)
                {
                    lsItemList.AddRange((IEnumerable <DisplayModuleLSHelper.LSItem>) this.BuildDirectoryDrawList(f.folders[index1], recItteration + 1, indentOffset, os));
                }
                indentOffset -= 30;
            }
            for (int index1 = 0; index1 < f.files.Count; ++index1)
            {
                int myIndex = index1;
                DisplayModuleLSHelper.LSItem lsItem = new DisplayModuleLSHelper.LSItem()
                {
                    DisplayName = f.files[index1].name, Clicked = (Action)(() =>
                    {
                        int num = 0;
                        for (int index = 0; index < os.navigationPath.Count - recItteration; ++index)
                        {
                            Action action = (Action)(() => os.runCommand("cd .."));
                            if (num > 0)
                            {
                                os.delayer.Post(ActionDelayer.Wait((double)num * commandSeperationDelay), action);
                            }
                            else
                            {
                                action();
                            }
                            ++num;
                        }
                        Action action1 = (Action)(() => os.runCommand("cat " + f.files[myIndex].name));
                        if (num > 0)
                        {
                            os.delayer.Post(ActionDelayer.Wait((double)num * commandSeperationDelay), action1);
                        }
                        else
                        {
                            action1();
                        }
                    }), indent = indentOffset
                };
                lsItemList.Add(lsItem);
            }
            if (f.folders.Count == 0 && f.files.Count == 0)
            {
                DisplayModuleLSHelper.LSItem lsItem = new DisplayModuleLSHelper.LSItem()
                {
                    IsEmtyDisplay = true, indent = indentOffset
                };
                lsItemList.Add(lsItem);
            }
            return(lsItemList);
        }
Exemple #30
0
        public override void addValue(int value, object os)
        {
            var oldValue = playerValue;

            base.addValue(value, os);
            if (valuePassedPoint(oldValue, 1) && !((OS)os).Flags.HasFlag("themeChangerAdded"))
            {
                var folder1 = Programs.getComputer((OS)os, "mainHubAssets").files.root.searchForFolder("bin");
                var folder2 = new Folder("ThemeChanger");
                folder2.files.Add(new FileEntry(PortExploits.crackExeData[14], "ThemeChanger.exe"));
                var dataEntry =
                    "\n-- Theme Changer Readme --\n\nThis program allows for fast hot-swapping of x-server theme files from local and remote conneced sources.\nFiles in the \"Remote\" row are remotely hosted valid theme files in the currently nagivated folder on a connected machine.\nFiles in the \"Local\" row are locally hosted theme files in the home or sys folder.\nThemeChanger allows a user to select any of these, and will automatically download it's contents into x-server.sys\nin the system folder, and activate the system theme without the need for a reboot.\nThe program will also automatically back up existing themes so that all known styles are preserved for future use.";
                folder2.files.Add(new FileEntry(dataEntry, "info.txt"));
                folder1.folders.Add(folder2);
                ((OS)os).delayer.Post(ActionDelayer.Wait(1.0), () =>
                {
                    SendAssetAddedNotification(os);
                    ((OS)os).Flags.AddFlag("themeChangerAdded");
                    ((OS)os).saveGame();
                });
            }
            if (valuePassedPoint(oldValue, 4))
            {
                ((OS)os).delayer.Post(ActionDelayer.Wait(2.0), () =>
                {
                    ((MissionHubServer)Programs.getComputer((OS)os, "mainHub").getDaemon(typeof(MissionHubServer)))
                    .AddMissionToListings("Content/Missions/MainHub/BitSet/Missions/BitHubSet01.xml");
                    ((OS)os).saveGame();
                });
            }
            else if (playerValue >= 7 && ((OS)os).Flags.HasFlag("decypher") &&
                     (((OS)os).Flags.HasFlag("dechead") && !((OS)os).Flags.HasFlag("csecRankingS2Pass")))
            {
                SendNotification(os, "Project Junebug");
                ((OS)os).Flags.AddFlag("csecRankingS2Pass");
                ((OS)os).saveGame();
            }
            else
            {
                if (playerValue < 10 || ((OS)os).Flags.HasFlag("bitPathStarted"))
                {
                    return;
                }
                ((OS)os).Flags.AddFlag("bitPathStarted");
                ((OS)os).delayer.Post(ActionDelayer.Wait(1.6),
                                      () => ComputerLoader.loadMission("Content/Missions/BitPath/BitAdv_Intro.xml"));
                Programs.getComputer((OS)os, "mainHubAssets")
                .files.root.searchForFolder("bin")
                .folders.Add(new Folder("Misc")
                {
                    files =
                    {
                        new FileEntry(PortExploits.crackExeData[9],                           "Decypher.exe"),
                        new FileEntry(PortExploits.crackExeData[10],                          "DECHead.exe"),
                        new FileEntry(PortExploits.crackExeData[104],                         "KBT_PortTest.exe"),
                        new FileEntry("Kellis BioTech medical port cycler - target 104-103.", "kbt_readme.txt")
                    }
                });
                SendNotification(os,
                                 "Agent,\nAdditional resources have been added to the CSEC members asset pool, for your free use. Find them in the misc folder on the asset server.\n\nThankyou,\n -" +
                                 name, name + " Admins :: Asset Uploads");
            }
        }