示例#1
0
 private void UpdateRespawnShipLabel()
 {
     if (m_selectedRespawnShip == null)
     {
         m_multilineRespawnWhenShipReady.Visible = false;
     }
     else
     {
         MyRespawnComponent.GetRespawnCooldownSeconds(MySession.LocalHumanPlayer.Id, m_selectedRespawnShip.Id.SubtypeName);
         m_multilineRespawnWhenShipReady.Text.Clear().AppendFormat(MyTexts.GetString(MySpaceTexts.ScreenMedicals_RespawnWhenShipReady), m_selectedRespawnShip.DisplayNameText);
         m_multilineRespawnWhenShipReady.RefreshText(false);
         m_multilineRespawnWhenShipReady.Visible = true;
     }
 }
示例#2
0
        private static void AddShipRespawnInfo(MyRespawnShipDefinition respawnShip, StringBuilder text)
        {
            int respawnSeconds = MySession.LocalHumanPlayer == null ? 0 : MyRespawnComponent.GetRespawnCooldownSeconds(MySession.LocalHumanPlayer.Id, respawnShip.Id.SubtypeName);

            if (!MyRespawnComponent.IsSynced)
            {
                text.Append(MyTexts.Get(MySpaceTexts.ScreenMedicals_RespawnShipNotReady));
            }
            else if (respawnSeconds != 0)
            {
                MyValueFormatter.AppendTimeExact(respawnSeconds, text);
            }
            else
            {
                text.Append(MyTexts.Get(MySpaceTexts.ScreenMedicals_RespawnShipReady));
            }
        }
示例#3
0
        public override bool Update(bool hasFocus)
        {
            if (m_respawnsTable.RowsCount == 0 && State != MyGuiScreenState.CLOSING && MySession.LocalHumanPlayer != null)
            {
                MyPlayerCollection.RespawnRequest(joinGame: true, newPlayer: true, medicalId: 0, shipPrefabId: null);
                CloseScreen();
            }

            UpdateSpawnShipTimes();
            bool retval = base.Update(hasFocus);

            if (m_selectedRespawnShip != null)
            {
                int cooldown = MyRespawnComponent.GetRespawnCooldownSeconds(MySession.LocalHumanPlayer.Id, m_selectedRespawnShip.Id.SubtypeName);
                if (MyRespawnComponent.IsSynced && cooldown == 0)
                {
                    RespawnShipImmediately(m_selectedRespawnShip.Id.SubtypeName);
                }
            }

            return(retval);
        }
示例#4
0
        private void RespawnShip(string shipPrefabId)
        {
            int cooldown = (shipPrefabId == null || MySession.LocalHumanPlayer == null) ? 0 : MyRespawnComponent.GetRespawnCooldownSeconds(MySession.LocalHumanPlayer.Id, shipPrefabId);

            if (shipPrefabId == null || MyRespawnComponent.IsSynced && cooldown == 0)
            {
                RespawnShipImmediately(shipPrefabId);
            }
            else
            {
                var respawnShip = MyDefinitionManager.Static.GetRespawnShipDefinition(shipPrefabId);
                m_selectedRespawnShip = respawnShip;
                UpdateRespawnShipLabel();
            }
        }