Пример #1
0
 private void Start()
 {
     pipes    = Ets.Room.GetGame <PipesGame>();
     crane    = Ets.Room.GetGame <CratesGame>();
     dynamite = Ets.Room.GetGame <DynamiteGame>();
     trigger  = Ets.Room.GetGame <TriggersGame>();
 }
Пример #2
0
 public void OnCraneDeploymentFinished(CratesGame sender, CraneEventArgs e)
 {
     if (sender.State == GameState.Running || sender.State == GameState.Completed || sender.State == GameState.Aborted)
     {
         OnCraneMovementStopped(sender, e);
     }
 }
Пример #3
0
 public void OnCraneDeploymentStarted(CratesGame sender, CraneEventArgs e)
 {
     if (sender.State == GameState.Running)
     {
         OnCraneMovementStarted(sender, e);
     }
 }
Пример #4
0
 public void OnCrateDropped(CratesGame sender, CrateEventArgs e)
 {
     if (sender.State == GameState.Running || sender.State == GameState.Completed || sender.State == GameState.Aborted)
     {
         audio.PlaySound(24);
     }
 }
Пример #5
0
 public void OnCratePickedUp(CratesGame sender, CrateEventArgs e)
 {
     if (sender.State == GameState.Running)
     {
         audio.PlaySound(24);
     }
 }
Пример #6
0
 protected override void Setup()
 {
     lighting              = Room.GetModule <LightingDirector>();
     game                  = Room.GetGame <CratesGame>();
     game.OnCratePickedUp += OnCratePickedUp;
     game.OnCrateDropped  += OnCrateDropped;
 }
Пример #7
0
        private IEnumerator GameRunning(CratesGame game)
        {
            yield return(new WaitForSeconds(60f));

            if (game.State != GameState.Running)
            {
                yield break;
            }

            if (game.CratesInDropzone == 0 && !firstCratePickedUp)
            {
                audio.PlayVoice(104); // "Noch keine Kiste aufgehoben?"
            }
            yield return(new WaitForSeconds(60f));

            if (game.CratesInDropzone == 0)
            {
                audio.PlayVoice(110);
            }

            // wait for timeout
            WaitForSeconds interval = new WaitForSeconds(.5f);

            while (game.State == GameState.Running && game.ElapsedTime <= RoomMaster.MaxTimeCrates)
            {
                yield return(interval);
            }

            if (game.State == GameState.Running)
            {
                Debug.Assert(game.ElapsedTime > RoomMaster.MaxTimeCrates, "Timeout not reached.");
                game.Abort();
            }
        }
Пример #8
0
 public void OnCraneMovementStarted(CratesGame sender, CraneEventArgs e)
 {
     if (sender.State == GameState.Running)
     {
         craneMoving = true;
         StartCoroutine(craneMovementStart());
     }
 }
Пример #9
0
 private void OnCrateDropped(CratesGame sender, CrateEventArgs e)
 {
     if (!firstCrateInDropzone && e.InDropzone)
     {
         audio.PlayVoice(88);
         firstCrateInDropzone = true;
     }
 }
Пример #10
0
 private void OnCratePickedUp(CratesGame sender, CrateEventArgs e)
 {
     if (!firstCratePickedUp)
     {
         audio.PlayVoice(86);
         firstCratePickedUp = true;
     }
 }
Пример #11
0
 public void OnCraneMovementStopped(CratesGame sender, CraneEventArgs e)
 {
     if (sender.State == GameState.Running || sender.State == GameState.Completed || sender.State == GameState.Aborted)
     {
         audio.StopSound(21);
         audio.StopSound(22);
         audio.PlaySound(23);
         craneMoving = false;
     }
 }
Пример #12
0
        private void Awake()
        {
            lblCrates   = transform.Find("lblCrates").GetComponent <Text>();
            lblDistance = transform.Find("lblDistance").GetComponent <Text>();

            game = Ets.Room.GetGame <CratesGame>();
            game.OnGameStateChanged   += OnGameStateChanged;
            game.OnCraneDistanceMoved += OnCraneDistanceMoved;
            game.OnCrateDropped       += OnCrateDropped;
            game.OnCratePickedUp      += OnCratePickedUp;
            //OnGameStateChanged(game, game.State, game.State);
        }
Пример #13
0
        private IEnumerator GameAborted(CratesGame game)
        {
            audio.PlayVoice(122); // "Das klappt nicht."
            yield return(new WaitForSeconds(audio.GetVoiceLength(122)));

            if (game.CratesInDropzone == 0)
            {
                Room.GetGame <DynamiteGame>().Initialize(GameDifficulty.Easy);
            }
            else
            {
                Room.GetGame <DynamiteGame>().Initialize(GameDifficulty.Medium);
            }
        }
Пример #14
0
        private void OnScoresUpdated(ScoringModule sender, ScoresUpdatedEventArgs e)
        {
            PipesGame pipes = Ets.Room.GetGame <PipesGame>();

            lblScorePipes.text = e.Scores.ContainsScore(pipes) ? e.Scores.GetScore(pipes).ToString() : "-";
            CratesGame crates = Ets.Room.GetGame <CratesGame>();

            lblScoreCrane.text = e.Scores.ContainsScore(crates) ? e.Scores.GetScore(crates).ToString() : "-";
            DynamiteGame dynamite = Ets.Room.GetGame <DynamiteGame>();

            lblScoreDynamite.text = e.Scores.ContainsScore(dynamite) ? e.Scores.GetScore(dynamite).ToString() : "-";
            TriggersGame trigger = Ets.Room.GetGame <TriggersGame>();

            lblScoreTrigger.text = e.Scores.ContainsScore(trigger) ? e.Scores.GetScore(trigger).ToString() : "-";
        }
Пример #15
0
        protected override void Setup()
        {
            PipesGame pipes = Room.GetGame <PipesGame>();

            pipes.OnValveTurned  += OnValveTurned;
            pipes.OnFanTriggered += OnFanTriggered;

            crates = Room.GetGame <CratesGame>();
            crates.OnCrateDropped  += OnCrateDropped;
            crates.OnCratePickedUp += OnCratePickedUp;

            DynamiteGame dynamite = Room.GetGame <DynamiteGame>();

            dynamite.OnInstructionSolvedStateChanged += OnInstructionSolvedStateChanged;
            dynamite.OnStickInserted += OnStickInserted;
            dynamite.OnStickRemoved  += OnStickRemoved;

            TriggersGame trigger = Room.GetGame <TriggersGame>();

            trigger.OnButtonPressed += OnButtonPressed;
        }
Пример #16
0
        private int CalculateScore(Game <IEtsInterface> sender, bool completed)
        {
            int score = 0;

            if (completed)
            {
                score += completedBonus;
            }

            score += difficultyBonus[(int)sender.Difficulty];

            Statistics statistics = Room.GetModule <StatisticsModule>().Statistics;

            switch (sender.Id)
            {
            case PipesGame.GameId:
                score += pipesRunningFanBonus * statistics.pipesMaxRunningFans;
                score += pipesSolvedSubsystemBonus * statistics.pipesSolvedSubsystems;
                break;

            case CratesGame.GameId:
                CratesGame crane = (CratesGame)sender;
                score += craneCrateInDropzoneBonus * crane.CratesInDropzone;

                int unnecessaryPickups = Math.Max(0, statistics.craneCratePickups - crane.CrateCount);
                score += craneUnnecessaryPickupPenalty * unnecessaryPickups;
                break;

            case DynamiteGame.GameId:
                score += dynamiteSolvedInstructionBonus * statistics.dynamiteInstructionsSolved;
                break;

            case TriggersGame.GameId:
                score += triggerMaxSequenceProgress * statistics.triggerMaxSequenceProgress;
                break;
            }

            return(score);
        }
Пример #17
0
        protected override void Setup()
        {
            pipes = Room.GetGame <PipesGame>();
            pipes.OnValveTurned  += OnValveTurned;
            pipes.OnFanTriggered += OnFanTriggered;

            CratesGame crates = Room.GetGame <CratesGame>();

            crates.OnCraneDeploymentFinished += OnCraneDeploymentFinished;
            crates.OnCraneDeploymentStarted  += OnCraneDeploymentStarted;
            crates.OnCraneMovementStarted    += OnCraneMovementStarted;
            crates.OnCraneMovementStopped    += OnCraneMovementStopped;
            crates.OnCrateDropped            += OnCrateDropped;
            crates.OnCratePickedUp           += OnCratePickedUp;

            DynamiteGame dynamite = Room.GetGame <DynamiteGame>();

            dynamite.OnStickInserted += OnStickInserted;
            dynamite.OnStickRemoved  += OnStickRemoved;

            TriggersGame trigger = Room.GetGame <TriggersGame>();

            trigger.OnButtonPressed += OnButtonPressed;
        }
Пример #18
0
 public void OnCraneDistanceMoved(CratesGame sender, CraneDistanceMovedEventArgs e)
 {
     UpdateDistance(sender);
 }
Пример #19
0
 private void UpdateCrates(CratesGame sender)
 {
     lblCrates.text = string.Format(craneCountFormatStr, sender.CratesInDropzone, sender.CrateCount);
 }
Пример #20
0
 public void OnCrateDropped(CratesGame sender, CrateEventArgs e)
 {
     UpdateCrates(sender);
 }
Пример #21
0
 public void OnCratePickedUp(CratesGame sender, CrateEventArgs e)
 {
     UpdateCrates(sender);
 }
Пример #22
0
 private void UpdateDistance(CratesGame sender)
 {
     lblDistance.text = string.Format(distanceFormatStr, sender.TotalMoveDistance);
 }
Пример #23
0
 public void onCratePickedUp(CratesGame sender, CrateEventArgs e)
 {
     Statistics.craneCratePickups++;
     Statistics.craneCratesInDropzone = sender.CratesInDropzone;
 }
Пример #24
0
 public void onCrateDropped(CratesGame sender, CrateEventArgs e)
 {
     Statistics.craneCratesInDropzone = sender.CratesInDropzone;
 }
Пример #25
0
 private void OnCratePickedUp(CratesGame sender, CrateEventArgs e)
 {
     Record(new CratePickup(e.CrateId, sender.CratesInDropzone));
 }
Пример #26
0
 private void OnCrateDropped(CratesGame sender, CrateEventArgs e)
 {
     Record(new CrateDrop(e.CrateId, sender.CratesInDropzone));
 }