コード例 #1
0
 public void Restart()
 {
     //
     if (Mutations.HasFlag(VirusMutations.BreakQuarantine))
     {
         Mutations &= ~VirusMutations.BreakQuarantine;
     }
     if (Mutations.HasFlag(VirusMutations.SpreadQuicker))
     {
         Mutations &= ~VirusMutations.SpreadQuicker;
     }
     if (Mutations.HasFlag(VirusMutations.SpreadEasier))
     {
         Mutations &= ~VirusMutations.SpreadEasier;
     }
     Mutations        = VirusMutations.None;
     delayElapsed     = 10f;
     currentInfection = null;
     Timer            = initTimer;
 }
コード例 #2
0
        void Update()
        {
            if (Timer < 0f)
            {
                Timer = 0f;
            }

            if (GameManager.State == GameState.Playing)
            {
                if (delay > delayElapsed) //if not finished delay
                {
                    delayElapsed += Time.deltaTime;
                    return;
                }

                timeElapsed += Time.deltaTime;

                if (timeElapsed >= Timer)
                {
                    //chance to infect other sibling file
                    //just infect corecomponents
                    //but
                    //or random mutation


                    //if thing is root folder
                    //lose

                    if (Mutations.HasFlag(VirusMutations.BreakQuarantine | VirusMutations.SpreadEasier | VirusMutations.SpreadQuicker))
                    {
                        //just infect - add to event log
                        Infect();
                    }
                    else
                    {
                        int mutationChance = Helpers.RandomHelper.RandomInt(0, 100);

                        if (mutationChance > ChanceToMutate)
                        {
                            //mutate
                            if (!Mutations.HasFlag(VirusMutations.SpreadQuicker))
                            {
                                Mutations |= VirusMutations.SpreadQuicker;
                                Timer     -= 1f;
                                GameManager.UIManager.SpreadQuicker.SetActive(true);
                            }
                            else if (!Mutations.HasFlag(VirusMutations.SpreadEasier))
                            {
                                Mutations |= VirusMutations.SpreadEasier;
                                GameManager.UIManager.SpreadEasier.SetActive(true);
                            }
                            else if (!Mutations.HasFlag(VirusMutations.BreakQuarantine))
                            {
                                Mutations |= VirusMutations.BreakQuarantine;
                                GameManager.UIManager.BreakQuarantine.SetActive(true);
                            }
                            //update mutations display
                            //add to event log
                            GameManager.ComputerManager.AddToEventLog("Mutated", Color.red);
                        }
                        else
                        {
                            Infect(); //add to event log
                        }
                    }

                    timeElapsed = 0f;
                }

                GameManager.UIManager.SetVirusCountdown(Timer - timeElapsed);
            }
        }