Beispiel #1
0
    private void OnGetBack2Spawner()
    {
        step      = STEP.CHANGED;
        count     = 0;
        deltaTime = 0f;
        SpawnerDesc spawner = BrickManager.Instance.GetSpawner(MyInfoManager.Instance.GetRoundingSpawnerType(), MyInfoManager.Instance.Ticket);

        if (spawner != null)
        {
            VerifyLocalController();
            if (clockbombkill)
            {
                if (equipcoord != null)
                {
                    equipcoord.DeleteClcokBomb();
                }
                clockbombkill = false;
            }
            GlobalVars.Instance.DropedWeaponAllClear();
            PaletteManager.Instance.Switch(on: false);
            if (localController != null)
            {
                localController.Respawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
            }
            VoiceManager.Instance.Play("Ingame_Ready_combo_1");
        }
    }
Beispiel #2
0
 public void OnCaptured()
 {
     if (BrickManager.Instance.userMap != null)
     {
         SpawnerDesc spawnerDesc = (!IsRedTeam(BrickManManager.Instance.haveFlagSeq)) ? BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.RED_FLAG_SPAWNER, 0) : BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BLUE_FLAG_SPAWNER, 0);
         FlagObj.transform.position     = new Vector3(spawnerDesc.position.x, spawnerDesc.position.y - 0.3f, spawnerDesc.position.z);
         BrickManManager.Instance.vFlag = FlagObj.transform.position;
         timerWaitNextBattle            = 0f;
         UnityEngine.Object.Instantiate((UnityEngine.Object)effSetFlag, FlagObj.transform.position, Quaternion.Euler(0f, 0f, 0f));
         if (IsOurTeam(BrickManManager.Instance.haveFlagSeq))
         {
             GetComponent <AudioSource>().PlayOneShot(sndFlagCapture);
             PlaySoundDelay("Flag_win_3", 2f);
             statusMessage = StringMgr.Instance.Get("OUR_SET_FLAG");
         }
         else
         {
             GetComponent <AudioSource>().PlayOneShot(sndFlagFail);
             PlaySoundDelay("Flag_lose_3", 2f);
             statusMessage = StringMgr.Instance.Get("ENEMY_SET_FLAG");
         }
         localController.checkResetFlag = false;
         statusDelta = 0f;
     }
 }
Beispiel #3
0
    private void CreateAwardees()
    {
        BrickManManager.Instance.ClearBrickManEtc();
        Brick.SPAWNER_TYPE sPAWNER_TYPE  = Brick.SPAWNER_TYPE.RED_TEAM_SPAWNER;
        Brick.SPAWNER_TYPE sPAWNER_TYPE2 = Brick.SPAWNER_TYPE.BLUE_TEAM_SPAWNER;
        int num = 0;

        for (int i = 0; i < RoomManager.Instance.RU.Length; i++)
        {
            BrickManDesc brickManDesc = BrickManManager.Instance.GetDesc(RoomManager.Instance.RU[i].seq);
            if (brickManDesc == null && RoomManager.Instance.RU[i].seq == MyInfoManager.Instance.Seq)
            {
                brickManDesc = new BrickManDesc(MyInfoManager.Instance.Seq, MyInfoManager.Instance.Nickname, MyInfoManager.Instance.GetUsings(), 0, MyInfoManager.Instance.Xp, MyInfoManager.Instance.ClanSeq, MyInfoManager.Instance.ClanName, MyInfoManager.Instance.ClanMark, MyInfoManager.Instance.Rank, null, null);
            }
            if (brickManDesc != null)
            {
                GameObject gameObject = BrickManManager.Instance.AddBrickMan(brickManDesc);
                if (null != gameObject)
                {
                    SpawnerDesc awardSpawner4TeamMatch = BrickManager.Instance.GetAwardSpawner4TeamMatch((num >= 8) ? sPAWNER_TYPE2 : sPAWNER_TYPE, num++);
                    if (awardSpawner4TeamMatch != null)
                    {
                        gameObject.transform.position = new Vector3(awardSpawner4TeamMatch.position.x, awardSpawner4TeamMatch.position.y - 0.5f, awardSpawner4TeamMatch.position.z);
                        gameObject.transform.rotation = Rot.ToQuaternion(awardSpawner4TeamMatch.rotation);
                    }
                }
            }
        }
    }
Beispiel #4
0
    private void Update()
    {
        bool       flag      = false;
        Connecting component = GetComponent <Connecting>();

        if (null != component)
        {
            flag = component.Show;
        }
        Screen.lockCursor = (!Application.isLoadingLevel && !battleChat.IsChatting && !DialogManager.Instance.IsModal && !flag);
        if (delayLoad)
        {
            deltaTime += Time.deltaTime;
            if (deltaTime > 1f)
            {
                delayLoad = false;
                StartLoad();
            }
        }
        else if (!Application.isLoadingLevel)
        {
            if (!battleChat.IsChatting && BrickManager.Instance.IsLoaded && custom_inputs.Instance.GetButtonDown("K_MAIN_MENU") && !DialogManager.Instance.IsPopup(DialogManager.DIALOG_INDEX.MENU_EX) && GlobalVars.Instance.IsMenuExOpenOk())
            {
                ((MenuEx)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.MENU_EX, exclusive: true))?.InitDialog();
                if (MyInfoManager.Instance.Seq == RoomManager.Instance.Master)
                {
                    BrickManDesc[] array = BrickManManager.Instance.ToDescriptorArrayWhoTookTooLongToWait();
                    if (array != null && array.Length > 0)
                    {
                        DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.KICK, exclusive: false);
                    }
                }
            }
            if (custom_inputs.Instance.GetButtonDown("K_HELP") && !DialogManager.Instance.IsModal && GlobalVars.Instance.IsMenuExOpenOk() && !battleChat.IsChatting)
            {
                DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.HELPWINDOW, exclusive: true);
            }
            GlobalVars.Instance.UpdateFlashbang();
            if (isGoalRespawn)
            {
                goalRespawnTime += Time.deltaTime;
                if (goalRespawnTime > 5f)
                {
                    isGoalRespawn = false;
                    EscapeGoalTrigger.GoalSendReset();
                    SpawnerDesc spawner = BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, MyInfoManager.Instance.Ticket);
                    if (spawner != null)
                    {
                        localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
                    }
                }
            }
        }
    }
Beispiel #5
0
 private void OnGetBack2Spawner()
 {
     BrickManManager.Instance.InitFlagVars();
     if (BrickManager.Instance.userMap != null)
     {
         SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.FLAG_SPAWNER, 0);
         if (spawner != null && FlagObj != null)
         {
             FlagObj.transform.position     = new Vector3(spawner.position.x, spawner.position.y - 0.3f, spawner.position.z);
             BrickManManager.Instance.vFlag = FlagObj.transform.position;
         }
     }
 }
Beispiel #6
0
 private void OnReturnBack()
 {
     if (BrickManager.Instance.userMap != null)
     {
         SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.FLAG_SPAWNER, 0);
         FlagObj.transform.position     = new Vector3(spawner.position.x, spawner.position.y - 0.3f, spawner.position.z);
         BrickManManager.Instance.vFlag = FlagObj.transform.position;
         if (MyInfoManager.Instance.Seq == RoomManager.Instance.Master)
         {
             localController.checkResetFlag = false;
         }
     }
 }
Beispiel #7
0
    private void OnLoadComplete()
    {
        TrainManager.Instance.Load();
        BrickManManager.Instance.InitFlagVars();
        SpawnerDesc spawner = BrickManager.Instance.GetSpawner(MyInfoManager.Instance.GetTeamSpawnerType(), MyInfoManager.Instance.Ticket);

        if (spawner != null)
        {
            localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
        }
        else
        {
            localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)UnityEngine.Random.Range(0, 4)));
        }
        if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_FLAG_GUIDE))
        {
            FLAGGuideDialog fLAGGuideDialog = (FLAGGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.FLAG_GUIDE);
            if (fLAGGuideDialog != null && !fLAGGuideDialog.DontShowThisMessageAgain)
            {
                ((FLAGGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.FLAG_GUIDE, exclusive: false))?.InitDialog();
            }
        }
        SpawnerDesc spawner2 = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.FLAG_SPAWNER, 0);

        FlagObj.transform.position     = new Vector3(spawner2.position.x, spawner2.position.y - 0.3f, spawner2.position.z);
        BrickManManager.Instance.vFlag = FlagObj.transform.position;
        rbPlanes[2].transform.position = spawner2.position;
        spawner2 = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.RED_FLAG_SPAWNER, 0);
        rbPlanes[0].transform.position = spawner2.position;
        spawner2 = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BLUE_FLAG_SPAWNER, 0);
        rbPlanes[1].transform.position = spawner2.position;
        GameObject brickObjectByPos = BrickManager.Instance.GetBrickObjectByPos(FlagObj.transform.position);

        if (null != brickObjectByPos)
        {
            BrickProperty component = brickObjectByPos.GetComponent <BrickProperty>();
            if (null == component)
            {
                Debug.LogError("<FlagObj> get BrickProperty failed..");
                return;
            }
            captureTheFlag = component.Seq;
        }
        bLoaded = true;
    }
    private void InitializeFirstPerson()
    {
        int[] usables = new int[1]
        {
            4
        };
        GameObject gameObject = GameObject.Find("Me");

        if (null == gameObject)
        {
            Debug.LogError("Fail to find Me");
        }
        else
        {
            EquipCoordinator component = gameObject.GetComponent <EquipCoordinator>();
            if (null == component)
            {
                Debug.LogError("Fail to get EquipCoordinator component for Me");
            }
            else
            {
                component.Initialize(usables);
            }
            localController = gameObject.GetComponent <LocalController>();
            if (null == localController)
            {
                Debug.LogError("Fail to get LocalController component for Me");
            }
            else
            {
                SpawnerDesc spawner = BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, 0);
                if (spawner != null)
                {
                    localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
                }
                else
                {
                    localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)Random.Range(0, 4)));
                }
            }
        }
    }
 private void DoSpawn(SpawnerDesc spawner)
 {
     if (null != localController)
     {
         if (changedRespawnTime)
         {
             respawnTimeSecure.Init(resTime);
             changedRespawnTime = false;
         }
         respawnTimeSecure.Reset();
         if (spawner != null)
         {
             localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
         }
         else
         {
             localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)Random.Range(0, 4)));
         }
     }
 }
Beispiel #10
0
 private void OnDroped()
 {
     if (BrickManManager.Instance.haveFlagSeq == -1)
     {
         SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.FLAG_SPAWNER, 0);
         if (spawner != null && FlagObj != null)
         {
             FlagObj.transform.position     = new Vector3(spawner.position.x, spawner.position.y - 0.3f, spawner.position.z);
             BrickManManager.Instance.vFlag = FlagObj.transform.position;
         }
     }
     else if (BrickManManager.Instance.haveFlagSeq == -2)
     {
         FlagObj.transform.position = BrickManManager.Instance.vFlag;
     }
     if (MyInfoManager.Instance.Seq == RoomManager.Instance.Master)
     {
         localController.checkResetFlag = true;
         localController.dtResetFlag    = 0f;
     }
 }
Beispiel #11
0
    private void OnLoadComplete()
    {
        TrainManager.Instance.Load();
        SpawnerDesc spawner = BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, MyInfoManager.Instance.Ticket);

        if (spawner != null)
        {
            localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
        }
        else
        {
            localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)UnityEngine.Random.Range(0, 4)));
        }
        if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_BATTLE_GUIDE))
        {
            BattleGuideDialog battleGuideDialog = (BattleGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.BATTLE_GUIDE);
            if (battleGuideDialog != null && !battleGuideDialog.DontShowThisMessageAgain)
            {
                ((BattleGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.BATTLE_GUIDE, exclusive: false))?.InitDialog();
            }
        }
    }
 private void OnLoadComplete()
 {
     TrainManager.Instance.Load();
     if (MyInfoManager.Instance.BreakingInto)
     {
         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));
         }
         GlobalVars.Instance.senseBombInit();
         MyInfoManager.Instance.ControlMode = MyInfoManager.CONTROL_MODE.PLAYING_SPECTATOR;
         localController.ResetGravity();
         GlobalVars.Instance.battleStarting = false;
         CSNetManager.Instance.Sock.SendCS_ZOMBIE_OBSERVER_REQ();
     }
     else
     {
         SpawnerDesc spawner = BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.SINGLE_SPAWNER, MyInfoManager.Instance.Ticket);
         if (spawner != null)
         {
             localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
         }
         else
         {
             localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)UnityEngine.Random.Range(0, 4)));
         }
     }
     if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_ZOMBIE_GUIDE))
     {
         ZombieGuideDialog zombieGuideDialog = (ZombieGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.ZOMBIE_GUIDE);
         if (zombieGuideDialog != null && !zombieGuideDialog.DontShowThisMessageAgain)
         {
             ((ZombieGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.ZOMBIE_GUIDE, exclusive: false))?.InitDialog();
         }
     }
 }
Beispiel #13
0
    private void OnLoadComplete()
    {
        TrainManager.Instance.Load();
        SpawnerDesc spawner = BrickManager.Instance.GetSpawner((MyInfoManager.Instance.Slot < 4) ? Brick.SPAWNER_TYPE.RED_TEAM_SPAWNER : Brick.SPAWNER_TYPE.BLUE_TEAM_SPAWNER, MyInfoManager.Instance.Ticket);

        if (spawner != null)
        {
            localController.Spawn(spawner.position, Rot.ToQuaternion(spawner.rotation));
        }
        else
        {
            Debug.LogError("Fail to get spawner ");
            localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)UnityEngine.Random.Range(0, 4)));
        }
        if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_DEFENSE_GUIDE))
        {
            DefenseGuideDialog defenseGuideDialog = (DefenseGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.DEFENSE_GUIDE);
            if (defenseGuideDialog != null && !defenseGuideDialog.DontShowThisMessageAgain)
            {
                ((DefenseGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.DEFENSE_GUIDE, exclusive: false))?.InitDialog();
            }
        }
        bLoaded = true;
    }
    private void CreateAwardees()
    {
        BrickManManager.Instance.ClearBrickManEtc();
        Brick.SPAWNER_TYPE spawnerType  = Brick.SPAWNER_TYPE.BLUE_TEAM_SPAWNER;
        Brick.SPAWNER_TYPE spawnerType2 = Brick.SPAWNER_TYPE.RED_TEAM_SPAWNER;
        if (cvtEndCode == 1)
        {
            spawnerType  = Brick.SPAWNER_TYPE.RED_TEAM_SPAWNER;
            spawnerType2 = Brick.SPAWNER_TYPE.BLUE_TEAM_SPAWNER;
        }
        int num = 0;

        for (int i = 0; i < RoomManager.Instance.RU.Length; i++)
        {
            if (!RoomManager.Instance.RU[i].red)
            {
                BrickManDesc brickManDesc = BrickManManager.Instance.GetDesc(RoomManager.Instance.RU[i].seq);
                if (brickManDesc == null && RoomManager.Instance.RU[i].seq == MyInfoManager.Instance.Seq)
                {
                    brickManDesc = new BrickManDesc(MyInfoManager.Instance.Seq, MyInfoManager.Instance.Nickname, MyInfoManager.Instance.GetUsings(), 0, MyInfoManager.Instance.Xp, MyInfoManager.Instance.ClanSeq, MyInfoManager.Instance.ClanName, MyInfoManager.Instance.ClanMark, MyInfoManager.Instance.Rank, null, null);
                }
                if (brickManDesc != null)
                {
                    GameObject gameObject = BrickManManager.Instance.AddBrickMan(brickManDesc);
                    if (null != gameObject)
                    {
                        SpawnerDesc awardSpawner4TeamMatch = BrickManager.Instance.GetAwardSpawner4TeamMatch(spawnerType, num++);
                        if (awardSpawner4TeamMatch != null)
                        {
                            gameObject.transform.position = new Vector3(awardSpawner4TeamMatch.position.x, awardSpawner4TeamMatch.position.y - 0.5f, awardSpawner4TeamMatch.position.z);
                            gameObject.transform.rotation = Rot.ToQuaternion(awardSpawner4TeamMatch.rotation);
                        }
                    }
                }
            }
        }
        num = 0;
        for (int j = 0; j < RoomManager.Instance.RU.Length; j++)
        {
            if (RoomManager.Instance.RU[j].red)
            {
                BrickManDesc brickManDesc2 = BrickManManager.Instance.GetDesc(RoomManager.Instance.RU[j].seq);
                if (brickManDesc2 == null && RoomManager.Instance.RU[j].seq == MyInfoManager.Instance.Seq)
                {
                    brickManDesc2 = new BrickManDesc(MyInfoManager.Instance.Seq, MyInfoManager.Instance.Nickname, MyInfoManager.Instance.GetUsings(), 0, MyInfoManager.Instance.Xp, MyInfoManager.Instance.ClanSeq, MyInfoManager.Instance.ClanName, MyInfoManager.Instance.ClanMark, MyInfoManager.Instance.Rank, null, null);
                }
                if (brickManDesc2 != null)
                {
                    GameObject gameObject2 = BrickManManager.Instance.AddBrickMan(brickManDesc2);
                    if (null != gameObject2)
                    {
                        SpawnerDesc awardSpawner4TeamMatch2 = BrickManager.Instance.GetAwardSpawner4TeamMatch(spawnerType2, num++);
                        if (awardSpawner4TeamMatch2 != null)
                        {
                            gameObject2.transform.position = new Vector3(awardSpawner4TeamMatch2.position.x, awardSpawner4TeamMatch2.position.y - 0.5f, awardSpawner4TeamMatch2.position.z);
                            gameObject2.transform.rotation = Rot.ToQuaternion(awardSpawner4TeamMatch2.rotation);
                        }
                    }
                }
            }
        }
    }
    public GameObject AddMon(MonDesc desc)
    {
        SpawnerDesc spawner = BrickManager.Instance.GetSpawner(Brick.SPAWNER_TYPE.DEFENCE_SPAWNER, 0);

        if (spawner == null)
        {
            return(null);
        }
        Vector3    position   = spawner.position;
        GameObject gameObject = null;

        if (desc.tblID == 0)
        {
            gameObject = (Object.Instantiate((Object)bee01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject);
        }
        else if (desc.tblID == 1)
        {
            gameObject = (Object.Instantiate((Object)bee02, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject);
        }
        else if (desc.tblID == 2)
        {
            gameObject = (Object.Instantiate((Object)intruder01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject);
        }
        else if (desc.tblID == 3)
        {
            gameObject = (Object.Instantiate((Object)bomber01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject);
        }
        else if (desc.tblID == 4)
        {
            gameObject = (Object.Instantiate((Object)champ01, position, Quaternion.Euler(0f, 0f, 0f)) as GameObject);
        }
        if (null == gameObject)
        {
            Debug.LogError("Fail to instantiate a monster: " + desc.tblID);
            return(null);
        }
        MonProperty component = gameObject.GetComponent <MonProperty>();

        if (null == component)
        {
            Object.DestroyImmediate(gameObject);
            Debug.LogError("New monster doesnt have MonProperty: " + desc.tblID);
            return(null);
        }
        component.Desc           = desc;
        component.Desc.coreToDmg = DefenseManager.Instance.GetMonTable(desc.tblID).toCoreDmg;
        component.Desc.InitLog();
        component.InvisiblePosition = position;
        MonAI aIClass = Instance.GetAIClass(gameObject, desc.tblID);

        if (null == aIClass)
        {
            Object.DestroyImmediate(gameObject);
            Debug.LogError("New monster doesnt have monAI: " + desc.tblID);
            return(null);
        }
        aIClass.StartPosition = position;
        aIClass.moveSpeed     = DefenseManager.Instance.GetMonTable(desc.typeID).MoveSpeed;
        aIClass.MonType       = (MonAI.MON_TYPE)desc.typeID;
        dicMon.Add(desc.Seq, gameObject);
        aIClass.changeTexture();
        if (MyInfoManager.Instance.Seq == RoomManager.Instance.Master)
        {
            P2PManager instance = P2PManager.Instance;
            int        tblID    = desc.tblID;
            int        typeID   = desc.typeID;
            int        seq      = desc.Seq;
            float      x        = position.x;
            float      y        = position.y;
            float      z        = position.z;
            Vector3    forward  = gameObject.transform.forward;
            float      x2       = forward.x;
            Vector3    forward2 = gameObject.transform.forward;
            float      y2       = forward2.y;
            Vector3    forward3 = gameObject.transform.forward;
            instance.SendPEER_MON_GEN(tblID, typeID, seq, x, y, z, x2, y2, forward3.z);
        }
        return(gameObject);
    }
Beispiel #16
0
 private void OnGUI()
 {
     if (MyInfoManager.Instance.isGuiOn && isVisible)
     {
         GUI.skin    = GUISkinFinder.Instance.GetGUISkin();
         GUI.depth   = (int)guiDepth;
         GUI.enabled = !DialogManager.Instance.IsModal;
         GUI.BeginGroup(new Rect(0f, 0f, (float)bkgnd.width, (float)bkgnd.height));
         TextureUtil.DrawTexture(new Rect(0f, 0f, (float)bkgnd.width, (float)bkgnd.height), bkgnd);
         if (null != cameraController)
         {
             Vector2 center      = new Vector2((float)(bkgnd.width / 2), (float)(bkgnd.height / 2));
             Vector3 position    = cameraController.transform.position;
             Vector3 toDirection = cameraController.transform.TransformDirection(Vector3.forward);
             toDirection.y = 0f;
             toDirection   = toDirection.normalized;
             Quaternion   rotation = Quaternion.FromToRotation(Vector3.forward, toDirection);
             GameObject[] array    = BrickManManager.Instance.ToGameObjectArray();
             for (int i = 0; i < array.Length; i++)
             {
                 TPController   component  = array[i].GetComponent <TPController>();
                 PlayerProperty component2 = array[i].GetComponent <PlayerProperty>();
                 if (null != component2 && null != component && !component2.IsHostile() && component2.Desc.Status == 4 && !component2.Desc.IsHidePlayer)
                 {
                     Vector3 vector  = Quaternion.Inverse(rotation) * (component2.transform.position - position);
                     Vector2 a       = new Vector2(vector.x, vector.z);
                     Vector2 vector2 = hudRadius / radarRadius * a;
                     vector2.y = -1f * vector2.y;
                     if (Vector2.Distance(vector2, Vector2.zero) > hudRadius)
                     {
                         vector2 = hudRadius * vector2.normalized;
                     }
                     if (dicRadioSenders.ContainsKey(component2.Desc.Seq))
                     {
                         float signalStrength = dicRadioSenders[component2.Desc.Seq].GetSignalStrength();
                         if (signalStrength > 0f)
                         {
                             DrawSignal(center, vector2, signalStrength);
                         }
                     }
                     DrawPin(component.IsDead, center, vector2);
                 }
             }
             Trigger[] enabledScriptables = BrickManager.Instance.GetEnabledScriptables();
             for (int j = 0; j < enabledScriptables.Length; j++)
             {
                 Vector3 vector3 = Quaternion.Inverse(rotation) * (enabledScriptables[j].transform.position - position);
                 Vector2 a2      = new Vector2(vector3.x, vector3.z);
                 Vector2 vector4 = hudRadius / radarRadius * a2;
                 vector4.y = -1f * vector4.y;
                 if (Vector2.Distance(vector4, Vector2.zero) > hudRadius)
                 {
                     vector4 = hudRadius * vector4.normalized;
                 }
                 DrawPin(isDead: false, center, vector4);
             }
             if (RoomManager.Instance.CurrentRoomType == Room.ROOM_TYPE.CAPTURE_THE_FLAG && BrickManager.Instance.userMap != null)
             {
                 SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.RED_FLAG_SPAWNER, 0);
                 if (spawner != null)
                 {
                     Vector3 vector5 = Quaternion.Inverse(rotation) * (spawner.position - position);
                     Vector2 a3      = new Vector2(vector5.x, vector5.z);
                     Vector2 vector6 = hudRadius / radarRadius * a3;
                     vector6.y = -1f * vector6.y;
                     if (Vector2.Distance(vector6, Vector2.zero) > hudRadius)
                     {
                         vector6 = hudRadius * vector6.normalized;
                     }
                     DrawFlagR(isDead: false, center, vector6);
                 }
                 spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BLUE_FLAG_SPAWNER, 0);
                 if (spawner != null)
                 {
                     Vector3 vector7 = Quaternion.Inverse(rotation) * (spawner.position - position);
                     Vector2 a4      = new Vector2(vector7.x, vector7.z);
                     Vector2 vector8 = hudRadius / radarRadius * a4;
                     vector8.y = -1f * vector8.y;
                     if (Vector2.Distance(vector8, Vector2.zero) > hudRadius)
                     {
                         vector8 = hudRadius * vector8.normalized;
                     }
                     DrawFlagB(isDead: false, center, vector8);
                 }
                 if (BrickManManager.Instance.haveFlagSeq < 0)
                 {
                     Vector3 vector9  = Quaternion.Inverse(rotation) * (BrickManManager.Instance.vFlag - position);
                     Vector2 a5       = new Vector2(vector9.x, vector9.z);
                     Vector2 vector10 = hudRadius / radarRadius * a5;
                     vector10.y = -1f * vector10.y;
                     if (Vector2.Distance(vector10, Vector2.zero) > hudRadius)
                     {
                         vector10 = hudRadius * vector10.normalized;
                     }
                     DrawFlag(isDead: false, center, vector10);
                 }
             }
             if (RoomManager.Instance.CurrentRoomType == Room.ROOM_TYPE.EXPLOSION)
             {
                 for (int k = 0; k < 2; k++)
                 {
                     if (BrickManager.Instance.userMap != null)
                     {
                         SpawnerDesc spawner2 = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BOMB_SPAWNER, k);
                         if (spawner2 != null)
                         {
                             Vector3 vector11 = Quaternion.Inverse(rotation) * (spawner2.position - position);
                             Vector2 a6       = new Vector2(vector11.x, vector11.z);
                             Vector2 vector12 = hudRadius / radarRadius * a6;
                             vector12.y = -1f * vector12.y;
                             if (Vector2.Distance(vector12, Vector2.zero) > hudRadius)
                             {
                                 vector12 = hudRadius * vector12.normalized;
                             }
                             DrawBomb(blastTarget[k], center, vector12);
                         }
                     }
                 }
             }
             if (heartBeatTime < heartBeatMax && showHeartBeat)
             {
                 GameObject[] array2 = BrickManManager.Instance.ToGameObjectArray();
                 for (int l = 0; l < array2.Length; l++)
                 {
                     TPController   component3 = array2[l].GetComponent <TPController>();
                     PlayerProperty component4 = array2[l].GetComponent <PlayerProperty>();
                     if (null != component4 && null != component3 && component4.IsHostile() && !component3.IsDead && component4.Desc.Status == 4 && !component4.Desc.IsHidePlayer)
                     {
                         Vector3 vector13 = Quaternion.Inverse(rotation) * (component4.transform.position - position);
                         Vector2 a7       = new Vector2(vector13.x, vector13.z);
                         Vector2 vector14 = hudRadius / radarRadius * a7;
                         vector14.y = -1f * vector14.y;
                         if (Vector2.Distance(vector14, Vector2.zero) > hudRadius)
                         {
                             vector14 = hudRadius * vector14.normalized;
                         }
                         DrawEnemy(center, vector14);
                     }
                 }
             }
         }
         DrawConcentric();
         GUI.EndGroup();
         GUI.enabled = true;
     }
 }
    private void OnLoadComplete()
    {
        TrainManager.Instance.Load();
        for (int i = 0; i < 2; i++)
        {
            SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BOMB_SPAWNER, i);
            if (spawner == null)
            {
                Debug.LogError("Fail to find BOMB SPAWNER from the geometry ");
            }
            else
            {
                GameObject brickObjectByPos = BrickManager.Instance.GetBrickObjectByPos(spawner.position);
                if (null != brickObjectByPos)
                {
                    BrickProperty component = brickObjectByPos.GetComponent <BrickProperty>();
                    if (null == component)
                    {
                        Debug.LogError("<BombObj> get BrickProperty failed..");
                    }
                    else
                    {
                        coreObjs[i].transform.position = spawner.position;
                        coreObjs[i].transform.rotation = brickObjectByPos.transform.rotation;
                        coreObjs[i].GetComponent <BlastTarget>().Spot = component.Seq;
                    }
                }
            }
        }
        bool flag = false;

        if (MyInfoManager.Instance.BreakingInto && MyInfoManager.Instance.BlastModeDesc != null)
        {
            if (MyInfoManager.Instance.BlastModeDesc.rounding)
            {
                step          = STEP.NOTHING;
                bombInstaller = -1;
                blastTarget   = -1;
                flag          = false;
            }
            else if (MyInfoManager.Instance.BlastModeDesc.bombInstaller < 0 || MyInfoManager.Instance.BlastModeDesc.blastTarget < 0)
            {
                step          = STEP.NOTHING;
                bombInstaller = -1;
                blastTarget   = -1;
                flag          = true;
            }
            else
            {
                step          = STEP.INSTALLED;
                bombInstaller = MyInfoManager.Instance.BlastModeDesc.bombInstaller;
                blastTarget   = MyInfoManager.Instance.BlastModeDesc.blastTarget;
                clockBomb.Install(MyInfoManager.Instance.BlastModeDesc.point, MyInfoManager.Instance.BlastModeDesc.normal);
                flag = true;
            }
            MyInfoManager.Instance.BlastModeDesc = null;
        }
        if (flag)
        {
            GlobalVars.Instance.battleStarting = false;
            GlobalVars.Instance.senseBombInit();
            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));
            }
            MyInfoManager.Instance.ControlMode = MyInfoManager.CONTROL_MODE.PLAYING_SPECTATOR;
            localController.ResetGravity();
        }
        else
        {
            SpawnerDesc spawner2 = BrickManager.Instance.GetSpawner(MyInfoManager.Instance.GetTeamSpawnerType(), MyInfoManager.Instance.Ticket);
            if (spawner2 != null)
            {
                localController.Spawn(spawner2.position, Rot.ToQuaternion(spawner2.rotation));
            }
            else
            {
                localController.Spawn(BrickManager.Instance.GetRandomSpawnPos(), Rot.ToQuaternion((byte)UnityEngine.Random.Range(0, 4)));
            }
        }
        if (bRedTeam)
        {
            if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_EXPLOSION_ATTACK_GUIDE))
            {
                ExplosionAttackGuideDialog explosionAttackGuideDialog = (ExplosionAttackGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.EXPLOSION_ATTACK_GUIDE);
                if (explosionAttackGuideDialog != null && !explosionAttackGuideDialog.DontShowThisMessageAgain)
                {
                    ((ExplosionAttackGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.EXPLOSION_ATTACK_GUIDE, exclusive: false))?.InitDialog();
                }
            }
        }
        else if (!MyInfoManager.Instance.GetCommonMask(MyInfoManager.COMMON_OPT.DONOT_EXPLOSION_DEFENCE_GUIDE))
        {
            ExplosionDefenceGuideDialog explosionDefenceGuideDialog = (ExplosionDefenceGuideDialog)DialogManager.Instance.GetDialogAlways(DialogManager.DIALOG_INDEX.EXPLOSION_DEFENCE_GUIDE);
            if (explosionDefenceGuideDialog != null && !explosionDefenceGuideDialog.DontShowThisMessageAgain)
            {
                ((ExplosionDefenceGuideDialog)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.EXPLOSION_DEFENCE_GUIDE, exclusive: false))?.InitDialog();
            }
        }
    }
Beispiel #18
0
    private void Update()
    {
        bool       flag      = false;
        Connecting component = GetComponent <Connecting>();

        if (null != component)
        {
            flag = component.Show;
        }
        Screen.lockCursor = (!Application.isLoadingLevel && !battleChat.IsChatting && !DialogManager.Instance.IsModal && !flag);
        if (delayLoad)
        {
            deltaTime += Time.deltaTime;
            if (deltaTime > 1f)
            {
                delayLoad = false;
                StartLoad();
            }
        }
        else if (!Application.isLoadingLevel)
        {
            if (statusMessage.Length > 0)
            {
                statusDelta += Time.deltaTime;
                if (statusDelta > statusMessageLimit)
                {
                    statusDelta   = 0f;
                    statusMessage = string.Empty;
                }
            }
            if (!battleChat.IsChatting && BrickManager.Instance.IsLoaded && custom_inputs.Instance.GetButtonDown("K_MAIN_MENU") && !DialogManager.Instance.IsPopup(DialogManager.DIALOG_INDEX.MENU_EX) && GlobalVars.Instance.IsMenuExOpenOk())
            {
                ((MenuEx)DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.MENU_EX, exclusive: true))?.InitDialog();
                if (MyInfoManager.Instance.Seq == RoomManager.Instance.Master)
                {
                    BrickManDesc[] array = BrickManManager.Instance.ToDescriptorArrayWhoTookTooLongToWait();
                    if (array != null && array.Length > 0)
                    {
                        DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.KICK, exclusive: false);
                    }
                }
            }
            if (custom_inputs.Instance.GetButtonDown("K_HELP") && !DialogManager.Instance.IsModal && GlobalVars.Instance.IsMenuExOpenOk() && !battleChat.IsChatting)
            {
                DialogManager.Instance.Popup(DialogManager.DIALOG_INDEX.HELPWINDOW, exclusive: true);
            }
            GlobalVars.Instance.UpdateFlashbang();
        }
        if (!bRounding && bLoaded)
        {
            VerifyLocalController();
            if (localController.checkResetFlag)
            {
                localController.dtResetFlag += Time.deltaTime;
                if (localController.dtResetFlag > dtResetFlagmax && BrickManager.Instance.userMap != null)
                {
                    SpawnerDesc spawner = BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.FLAG_SPAWNER, 0);
                    Vector3     vector  = new Vector3(spawner.position.x, spawner.position.y - 0.3f, spawner.position.z);
                    CSNetManager.Instance.Sock.SendCS_CTF_FLAG_RETURN_REQ(vector.x, vector.y, vector.z);
                    localController.checkResetFlag = false;
                }
            }
            if (strVoiceName.Length > 0)
            {
                deltaTimeDelaySound += Time.deltaTime;
                if (deltaTimeDelaySound > deltaTimeDelaySoundMax)
                {
                    VoiceManager.Instance.Play(strVoiceName);
                    strVoiceName = string.Empty;
                }
            }
            if (BrickManManager.Instance.bSendTcpCheckOnce)
            {
                deltaTimeTcp += Time.deltaTime;
                if (deltaTimeTcp > 1f)
                {
                    BrickManManager.Instance.bSendTcpCheckOnce = false;
                }
            }
            if (!UpdateSuccessfulCaptureTheFlag())
            {
                if (BrickManManager.Instance.haveFlagSeq >= 0)
                {
                    if (BrickManManager.Instance.haveFlagSeq == MyInfoManager.Instance.Seq)
                    {
                        SpawnerDesc spawnerDesc = (MyInfoManager.Instance.Slot >= 8) ? BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.RED_FLAG_SPAWNER, 0) : BrickManager.Instance.userMap.GetSpawner(Brick.SPAWNER_TYPE.BLUE_FLAG_SPAWNER, 0);
                        float       num         = Vector3.Distance(me.transform.position, spawnerDesc.position);
                        int         num2        = 0;
                        if (IsRedTeam(MyInfoManager.Instance.Seq))
                        {
                            num2 = 1;
                        }
                        Vector3 position  = rbPlanes[num2].transform.position;
                        float   y         = position.y;
                        Vector3 position2 = me.transform.position;
                        float   num3      = y - position2.y;
                        FlagObj.transform.position = new Vector3(0f, -10000f, 0f);
                        if (!BrickManManager.Instance.bSendTcpCheckOnce && num3 < 0.7f && num < 3.2f)
                        {
                            CSNetManager.Instance.Sock.SendCS_CTF_CAPTURE_FLAG_REQ(captureTheFlag, opponent: true);
                            BrickManManager.Instance.bSendTcpCheckOnce = true;
                            deltaTimeTcp = 0f;
                        }
                    }
                    else
                    {
                        GameObject gameObject = BrickManManager.Instance.Get(BrickManManager.Instance.haveFlagSeq);
                        if ((bool)gameObject)
                        {
                            Transform[] componentsInChildren = gameObject.GetComponentsInChildren <Transform>();
                            int         num4 = 0;
                            while (true)
                            {
                                if (num4 >= componentsInChildren.Length)
                                {
                                    return;
                                }
                                if (componentsInChildren[num4].name.Contains("dummy_water"))
                                {
                                    break;
                                }
                                num4++;
                            }
                            FlagObj.transform.position = componentsInChildren[num4].position;
                            FlagObj.transform.rotation = gameObject.transform.rotation;
                        }
                    }
                }
                else if (!localController.IsDead && !BrickManManager.Instance.bSendTcpCheckOnce)
                {
                    float   num5      = Vector3.Distance(me.transform.position, FlagObj.transform.position);
                    Vector3 position3 = FlagObj.transform.position;
                    float   y2        = position3.y;
                    Vector3 position4 = me.transform.position;
                    float   num6      = y2 - position4.y;
                    if (num6 < 0.7f && num5 < 1.8f)
                    {
                        CSNetManager.Instance.Sock.SendCS_CTF_PICK_FLAG_REQ(captureTheFlag);
                        BrickManManager.Instance.bSendTcpCheckOnce = true;
                        deltaTimeTcp = 0f;
                    }
                }
            }
        }
    }