Ejemplo n.º 1
0
        private void UpdateSingleEscapeState(Packet p)
        {
            GlobalVariables.EscapeState escapeState = (GlobalVariables.EscapeState)Enum.Parse(typeof(GlobalVariables.EscapeState), p.generalData[0].ToString());
            bool progression = bool.Parse(p.generalData[1].ToString());

            GlobalVariables.UpdateProgression(escapeState, progression);
        }
Ejemplo n.º 2
0
        // Allows clients to update escape states on the server and all other clients.
        // PacketType = UpdateSingleEscapeStateOnServer. CALLED BY ANY CLIENT.
        private void UpdateSingleEscapeStateOnServer(Packet p)
        {
            GlobalVariables.EscapeState escapeState = (GlobalVariables.EscapeState)Enum.Parse(typeof(GlobalVariables.EscapeState), p.generalData[0].ToString());
            bool progression = bool.Parse(p.generalData[1].ToString());

            if (!GlobalVariables.CheckProgression(escapeState))
            {
                TriggerEscapeStateFirstTimeEvent(escapeState);
            }

            GlobalVariables.UpdateProgression(escapeState, progression);

            UpdateEscapeStateOnClients();
        }
Ejemplo n.º 3
0
        // This function contains logic for what happens after a escape state gets triggered for the first time
        private void TriggerEscapeStateFirstTimeEvent(GlobalVariables.EscapeState escapeState)
        {
            Debug.Log(escapeState.ToString() + " triggered");

            switch (escapeState)
            {
            case GlobalVariables.EscapeState.EscapeStarted:
                if (raspPiOnline)
                {
                    rpi.Do(RPI.CMD.PLAY_COMPUTER_GREETING);
                }
                break;

            case GlobalVariables.EscapeState.SubControlsEnabled:
                if (raspPiOnline)
                {
                    rpi.Do(RPI.CMD.PLAY_SUB_CONTROL_TUT);
                }
                break;

            case GlobalVariables.EscapeState.FuzesScattered:
                if (raspPiOnline)
                {
                    rpi.Do(RPI.CMD.PLAY_FUSES_DISLODGED);
                }
                break;

            case GlobalVariables.EscapeState.SubDescended:
                if (raspPiOnline)
                {
                    rpi.Do(RPI.CMD.PLAY_OXYGEN_LVL_DECREASE);
                }
                break;

            case GlobalVariables.EscapeState.KeypadCodeEntered:
                if (raspPiOnline)
                {
                    rpi.Do(RPI.CMD.PLAY_DIAGNOSTICS_ONLINE);
                }
                break;

            case GlobalVariables.EscapeState.SubStartDescending:
                if (raspPiOnline)
                {
                    rpi.Do(RPI.CMD.PLAY_SUB_START_DESCEND);
                }
                break;
            }
        }
Ejemplo n.º 4
0
        // Allows you to update a single escape state on the server and clients
        // CALLED BY ANYWHERE ON THE SERVER.
        public void UpdateSingleEscapeStateOnClients(GlobalVariables.EscapeState escapeState, bool progression)
        {
            if (!GlobalVariables.CheckProgression(escapeState))
            {
                TriggerEscapeStateFirstTimeEvent(escapeState);
            }

            GlobalVariables.UpdateProgression(escapeState, progression);

            Packet pack = new Packet((int)PacketType.UpdateSingleEscapeStateOnClients, PacketType.UpdateSingleEscapeStateOnClients.ToString());

            pack.generalData.Add(escapeState);
            pack.generalData.Add(progression);

            for (int i = 0; i < Server.udpClients.Count; i++)
            {
                Server.udpClients[i].SendPacket(pack);
            }
        }