Exemplo n.º 1
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.º 2
0
    private void Start()
    {
        manager = SetLevelManager();

        isThreatDetected = false;

        interactiveSprite = GetComponent <InteractiveSprite>();
    }
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
    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.º 5
0
 public void CheckInteract()
 {
     foreach (var tile in tiles)
     {
         if (tile.hasSprite && tile.highlight && tile.sprite is InteractiveBarrier)
         {
             Console.WriteLine();
             InteractiveBarrier sprite = (InteractiveBarrier)tile.sprite;
             sprite.InteractAction();
         }
         else if (tile.hasSprite && tile.highlight && tile.sprite is InteractiveSprite)
         {
             InteractiveSprite sprite = (InteractiveSprite)tile.sprite;
             sprite.InteractAction();
         }
     }
 }
Exemplo n.º 6
0
        public virtual void Init(object obj, Type valueType)
        {
            if (valueType == null && obj == null)
            {
                return;
            }

            //ExplorerCore.Log("Initializing InteractiveValue of type " + valueType.FullName);

            InteractiveValue interactive;

            if (valueType == typeof(GameObject) || valueType == typeof(Transform))
            {
                interactive = new InteractiveGameObject();
            }
            else if (valueType == typeof(Texture2D))
            {
                interactive = new InteractiveTexture2D();
            }
            else if (valueType == typeof(Texture))
            {
                interactive = new InteractiveTexture();
            }
            else if (valueType == typeof(Sprite))
            {
                interactive = new InteractiveSprite();
            }
            else if (valueType.IsPrimitive || valueType == typeof(string))
            {
                interactive = new InteractivePrimitive();
            }
            else if (valueType.IsEnum)
            {
                if (valueType.GetCustomAttributes(typeof(FlagsAttribute), true) is object[] attributes && attributes.Length > 0)
                {
                    interactive = new InteractiveFlags();
                }
                else
                {
                    interactive = new InteractiveEnum();
                }
            }
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
    private IEnumerator BeforeAntiMalwareScan(TimeEvent progressEvent, InteractiveSprite sprite)
    {
        if (manager.GetGameData().hasThreatDeployed&&
            manager.GetGameData().lastThreatDeployed.threatAttack == StaticDb.ThreatAttack.stuxnet)
        {
            if (!manager.GetGameData().hasPlantChecked)
            {
                //MESSAGE TO INFORM ABOUT CHECKING PLANT
                ClassDb.levelMessageManager.StartPlantCheck();

                //wait to close dialog to continue
                yield return(new WaitUntil(() => manager.GetGameData().dialogEnabled));
            }

            yield return(new WaitUntil(() => manager.GetGameData().hasPlantChecked));
        }

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

        antiMalwareScanRoutine = AntiMalwareScan(progressEvent, sprite);
        StartCoroutine(antiMalwareScanRoutine);
    }
Exemplo n.º 9
0
    public IEnumerator BeforeCheckNetworkCfg(TimeEvent progressEvent, InteractiveSprite sprite)
    {
        if (manager.GetGameData().hasThreatDeployed&&
            manager.GetGameData().lastThreatDeployed.threatAttack == StaticDb.ThreatAttack.replay)
        {
            if (!manager.GetGameData().hasPlantChecked)
            {
                //MESSAGE TO INFORM ABOUT CHECKING PLANT
                ClassDb.levelMessageManager.StartPlantCheck();

                //wait to close dialog to continue
                yield return(new WaitUntil(() => manager.GetGameData().dialogEnabled));
            }

            yield return(new WaitUntil(() => manager.GetGameData().hasPlantChecked));
        }

        if (manager.GetGameData().hasThreatDeployed&&
            manager.GetGameData().lastThreatDeployed.threatAttack == StaticDb.ThreatAttack.dragonfly)
        {
            if (!manager.GetGameData().hasMalwareChecked)
            {
                //MESSAGE TO INFORM ABOUT CHECKING MALWARE
                ClassDb.levelMessageManager.StartMalwareCheck();

                //wait to close dialog to continue
                yield return(new WaitUntil(() => manager.GetGameData().dialogEnabled));
            }

            yield return(new WaitUntil(() => manager.GetGameData().hasMalwareChecked));
        }

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

        checkNetworkCfgRoutine = CheckNetworkCfg(progressEvent, sprite);
        StartCoroutine(checkNetworkCfgRoutine);
    }
Exemplo n.º 10
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);
            }
        }
    }
Exemplo n.º 11
0
    private void Start()
    {
        manager = SetLevelManager();

        interactiveSprite = GetComponent <InteractiveSprite>();
    }