public void StartPointOutLocalThreat()
    {
        interactiveSprite.SetInteraction(false);

        TimeEvent progressEvent = ClassDb.timeEventManager.NewTimeEvent(
            manager.GetGameData().pcPointOutTime, interactiveSprite.gameObject, true, true, StaticDb.pointOutLocalThreatRoutine);

        manager.GetGameData().timeEventList.Add(progressEvent);

        pointOutLocalThreatRoutine = PointOutLocalThreat(progressEvent);
        StartCoroutine(pointOutLocalThreatRoutine);
    }
Exemplo n.º 2
0
    private IEnumerator CheckNetworkCfg(TimeEvent progressEvent, InteractiveSprite sprite)
    {
        //WRITE LOG
        ClassDb.logManager.StartWritePlayerLogRoutine(StaticDb.player, StaticDb.logEvent.UserEvent, "STARTED CHECK NETWORK CONFIGURATION");

        yield return(new WaitWhile(() => manager.GetGameData().timeEventList.Contains(progressEvent)));

        sprite.SetInteraction(true);

        if (!manager.GetGameData().hasThreatDeployed)
        {
            yield break;
        }

        if (manager.GetGameData().lastThreatDeployed.threatAttack != StaticDb.ThreatAttack.mitm &&
            manager.GetGameData().lastThreatDeployed.threatAttack != StaticDb.ThreatAttack.replay &&
            manager.GetGameData().lastThreatDeployed.threatAttack != StaticDb.ThreatAttack.dragonfly)
        {
            yield break;
        }

        //Reset money loss due to replay attack
        manager.GetGameData().moneyLossList[StaticDb.ThreatAttack.replay]    = 0;
        manager.GetGameData().moneyLossList[StaticDb.ThreatAttack.mitm]      = 0;
        manager.GetGameData().moneyLossList[StaticDb.ThreatAttack.dragonfly] = 0;

        //restart all time event
        ClassDb.timeEventManager.StartTimeEventList(manager.GetGameData().timeEventList);

        //reset flag to restart threat generation
        manager.GetGameData().hasThreatManaged  = true;
        manager.GetGameData().hasThreatDeployed = false;
    }
Exemplo n.º 3
0
    public void StartCheckNetworkCfg(InteractiveSprite sprite)
    {
        sprite.SetInteraction(false);

        //REGISTER THE USER ACTION AND CHECK IF THE ACTION IS CORRECT OR WRONG RELATIVELY TO THE THREAT DEPLOYED
        ClassDb.userActionManager.RegisterThreatSolution(new UserAction(StaticDb.ThreatSolution.networkCheck), manager.GetGameData().lastThreatDeployed, false);

        TimeEvent progressEvent = ClassDb.timeEventManager.NewTimeEvent(
            manager.GetGameData().serverCheckCfgTime, sprite.gameObject, true, true, StaticDb.checkNetworkCfgRoutine);

        beforeCheckNetworkRoutine = BeforeCheckNetworkCfg(progressEvent, sprite);
        StartCoroutine(beforeCheckNetworkRoutine);
    }
Exemplo n.º 4
0
    private void StartGetMoney()
    {
        interactiveSprite.SetInteraction(false);

        TimeEvent progressEvent = ClassDb.timeEventManager.NewTimeEvent(
            manager.GetGameData().telephoneMoneyTime, interactiveSprite.gameObject, true, true,
            StaticDb.getMoneyRoutine);

        manager.GetGameData().timeEventList.Add(progressEvent);

        getMoneyRoutine = GetMoney(progressEvent);
        StartCoroutine(getMoneyRoutine);
    }
Exemplo n.º 5
0
    public void RestartAntiMalwareScan(TimeEvent progressEvent, InteractiveSprite sprite)
    {
        sprite.SetInteraction(false);

        if (!manager.GetGameData().hasPlantChecked)
        {
            //TODO : CHECK
            beforeAntiMalwareScanRoutine = BeforeAntiMalwareScan(progressEvent, sprite);
            StartCoroutine(beforeAntiMalwareScanRoutine);
        }
        else
        {
            antiMalwareScanRoutine = AntiMalwareScan(progressEvent, sprite);
            StartCoroutine(antiMalwareScanRoutine);
        }
    }
Exemplo n.º 6
0
    private void StartIdsClean()
    {
        interactiveSprite.SetInteraction(false);

        //REGISTER THE USER ACTION AND CHECK IF THE ACTION IS CORRECT OR WRONG RELATIVELY TO THE THREAT DEPLOYED
        ClassDb.userActionManager.RegisterThreatSolution(new UserAction(StaticDb.ThreatSolution.idsClean), manager.GetGameData().lastThreatDeployed, true);

        //start duration: 90 min
        TimeEvent progressEvent = ClassDb.timeEventManager.NewTimeEvent(
            manager.GetGameData().serverIdsCleanTime, interactiveSprite.gameObject, true, true, StaticDb.idsCleanRoutine);

        manager.GetGameData().timeEventList.Add(progressEvent);

        idsCleanRoutine = IdsClean(progressEvent);
        StartCoroutine(idsCleanRoutine);
    }
Exemplo n.º 7
0
    private IEnumerator AntiMalwareScan(TimeEvent progressEvent, InteractiveSprite sprite)
    {
        //WRITE LOG
        ClassDb.logManager.StartWritePlayerLogRoutine(StaticDb.player, StaticDb.logEvent.UserEvent, "STARTED MALWARE SCAN");

        yield return(new WaitWhile(() => manager.GetGameData().timeEventList.Contains(progressEvent)));

        sprite.SetInteraction(true);

        if (!manager.GetGameData().hasThreatDeployed)
        {
            yield break;
        }

        if (manager.GetGameData().lastThreatDeployed.threatAttack == StaticDb.ThreatAttack.dragonfly)
        {
            manager.GetGameData().hasMalwareChecked = true;
            yield break;
        }

        //TODO CHECK CORRECT IF
        if (manager.GetGameData().lastThreatDeployed.threatAttack != StaticDb.ThreatAttack.malware &&
            manager.GetGameData().lastThreatDeployed.threatAttack != StaticDb.ThreatAttack.stuxnet)
        {
            yield break;
        }

        manager.GetGameData().moneyLossList[StaticDb.ThreatAttack.malware] = 0;
        manager.GetGameData().moneyLossList[StaticDb.ThreatAttack.stuxnet] = 0;

        //restart all time event
        ClassDb.timeEventManager.StartTimeEventList(manager.GetGameData().timeEventList);

        //reset flag to restart threat generation
        manager.GetGameData().hasThreatManaged  = true;
        manager.GetGameData().hasThreatDeployed = false;

        //Reset money loss due to replay attack
    }
Exemplo n.º 8
0
    public void RestartCheckNetworkCfg(TimeEvent progressEvent, InteractiveSprite sprite)
    {
        sprite.SetInteraction(false);

        if (!manager.GetGameData().hasThreatDeployed&&
            manager.GetGameData().lastThreatDeployed.threatAttack == StaticDb.ThreatAttack.replay)
        {
            if (!manager.GetGameData().hasPlantChecked)
            {
                //TODO : CHECK
                beforeCheckNetworkRoutine = BeforeCheckNetworkCfg(progressEvent, sprite);
                StartCoroutine(beforeCheckNetworkRoutine);
            }
            else
            {
                checkNetworkCfgRoutine = CheckNetworkCfg(progressEvent, sprite);
                StartCoroutine(checkNetworkCfgRoutine);
            }
        }

        if (manager.GetGameData().hasThreatDeployed&&
            manager.GetGameData().lastThreatDeployed.threatAttack == StaticDb.ThreatAttack.dragonfly)
        {
            if (!manager.GetGameData().hasMalwareChecked)
            {
                //TODO : CHECK
                beforeCheckNetworkRoutine = BeforeCheckNetworkCfg(progressEvent, sprite);
                StartCoroutine(beforeCheckNetworkRoutine);
            }
            else
            {
                checkNetworkCfgRoutine = CheckNetworkCfg(progressEvent, sprite);
                StartCoroutine(checkNetworkCfgRoutine);
            }
        }
    }