Exemplo n.º 1
0
    private void OnGUI()
    {
        if (null != localController && localController.HitPoint <= 0)
        {
            float num = localController.DeltaFromDeath / respawnTime;
            if (num >= 1f)
            {
                if (Application.loadedLevelName.Contains("Tutor"))
                {
                    DoSpawn(BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, 0));
                }
                else
                {
                    switch (RoomManager.Instance.CurrentRoomType)
                    {
                    case Room.ROOM_TYPE.MAP_EDITOR:
                        DoSpawn(null);
                        break;

                    case Room.ROOM_TYPE.TEAM_MATCH:
                    case Room.ROOM_TYPE.CAPTURE_THE_FLAG:
                    case Room.ROOM_TYPE.BND:
                        DoSpawn(BrickManager.Instance.GetSpawner(MyInfoManager.Instance.GetTeamSpawnerType(), MyInfoManager.Instance.Ticket));
                        break;

                    case Room.ROOM_TYPE.EXPLOSION:
                    {
                        ClanMatchRounding component = GetComponent <ClanMatchRounding>();
                        if (null != component && !component.Rounding)
                        {
                            localController.GetComponent <WoundFx>().ClearScreen();
                            MyInfoManager.Instance.ControlMode = MyInfoManager.CONTROL_MODE.PLAYING_SPECTATOR;
                            if (outOnce)
                            {
                                outOnce = false;
                                GameObject gameObject2 = GameObject.Find("Main");
                                if (null != gameObject2)
                                {
                                    string text2 = StringMgr.Instance.Get("WATCHING_USER_CHANGE");
                                    gameObject2.BroadcastMessage("OnChat", new ChatText(ChatText.CHAT_TYPE.SYSTEM, -1, string.Empty, text2));
                                }
                            }
                        }
                        break;
                    }

                    case Room.ROOM_TYPE.MISSION:
                        DoSpawn(BrickManager.Instance.GetSpawner((MyInfoManager.Instance.Slot < 4) ? Brick.SPAWNER_TYPE.RED_TEAM_SPAWNER : Brick.SPAWNER_TYPE.BLUE_TEAM_SPAWNER, MyInfoManager.Instance.Ticket));
                        break;

                    case Room.ROOM_TYPE.INDIVIDUAL:
                        DoSpawn(BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, MyInfoManager.Instance.Ticket));
                        break;

                    case Room.ROOM_TYPE.BUNGEE:
                        DoSpawn(null);
                        break;

                    case Room.ROOM_TYPE.ESCAPE:
                        DoSpawn(BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, MyInfoManager.Instance.Ticket));
                        break;

                    case Room.ROOM_TYPE.ZOMBIE:
                        if (ZombieVsHumanManager.Instance.AmIRespawnable)
                        {
                            ZombieVsHumanManager.Instance.AmIRespawnable = false;
                            DoSpawn(BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, MyInfoManager.Instance.Ticket));
                        }
                        else
                        {
                            localController.GetComponent <WoundFx>().ClearScreen();
                            MyInfoManager.Instance.ControlMode = MyInfoManager.CONTROL_MODE.PLAYING_SPECTATOR;
                            if (outOnce)
                            {
                                outOnce = false;
                                GameObject gameObject = GameObject.Find("Main");
                                if (null != gameObject)
                                {
                                    string text = StringMgr.Instance.Get("WATCHING_USER_CHANGE");
                                    gameObject.BroadcastMessage("OnChat", new ChatText(ChatText.CHAT_TYPE.SYSTEM, -1, string.Empty, text));
                                }
                            }
                        }
                        break;
                    }
                }
            }
            else if (RoomManager.Instance.CurrentRoomType != Room.ROOM_TYPE.EXPLOSION)
            {
                if (MyInfoManager.Instance.isGuiOn && BuildOption.Instance.IsNetmarbleOrDev && (RoomManager.Instance.CurrentRoomType != Room.ROOM_TYPE.ZOMBIE || ZombieVsHumanManager.Instance.AmIRespawnable))
                {
                    GUI.skin    = GUISkinFinder.Instance.GetGUISkin();
                    GUI.depth   = (int)guiDepth;
                    GUI.enabled = !DialogManager.Instance.IsModal;
                    Rect position  = new Rect((float)((Screen.width - 586) / 2), (float)((Screen.height - 37) / 2), 586f, 37f);
                    Rect position2 = new Rect((float)((Screen.width - 558) / 2), (float)((Screen.height - 23) / 2), 558f, 23f);
                    Rect position3 = new Rect((float)((Screen.width - 558) / 2), (float)((Screen.height - 23) / 2), 558f * num, 23f);
                    TextureUtil.DrawTexture(position, gaugeFrame, ScaleMode.StretchToFill, alphaBlend: true);
                    TextureUtil.DrawTexture(position3, gaugeBar, ScaleMode.StretchToFill, alphaBlend: true);
                    TextureUtil.DrawTexture(position2, gaugeText, ScaleMode.StretchToFill, alphaBlend: true);
                    if (RoomManager.Instance.CurrentRoomType != 0 && RoomManager.Instance.CurrentRoomType != Room.ROOM_TYPE.BUNGEE)
                    {
                        if (!localController.CheckJustRespawnItemHave())
                        {
                            LabelUtil.TextOut(new Vector2((float)(Screen.width / 2), (float)((Screen.height - 86) / 2)), StringMgr.Instance.Get("RESPAWN_BUY_DES"), "BigLabel", Color.white, GlobalVars.txtEmptyColor, TextAnchor.UpperCenter);
                        }
                        else if (!CheckJustRespawn())
                        {
                            LabelUtil.TextOut(new Vector2((float)(Screen.width / 2), (float)((Screen.height - 86) / 2)), StringMgr.Instance.Get("RESPAWN_EQUIP_DES"), "BigLabel", Color.white, GlobalVars.txtEmptyColor, TextAnchor.UpperCenter);
                        }
                    }
                    GUI.enabled = true;
                }
            }
            else
            {
                outOnce = true;
            }
        }
    }