// Update is called once per frame
    void Update()
    {
        if (!m_SpawnRun)
        {
            return;
        }
        if (m_ManagementTarget != null)
        {
            if (m_ManagementTarget.m_Live == Object.E_LIVE.DEAD)
            {
                ++m_DeadCount;
                TimerNet.SetTimer_s(m_TimerKey, false);
                m_ManagementTarget = null;
            }
            return;
        }

        if (m_CurrentSpawnCount < m_SpawnCount && TimerNet.GetTimer(m_TimerKey) <= 0.0f)
        {
            if (PhotonNetwork.IsMasterClient)
            {
                GameObject g = PhotonNetwork.InstantiateSceneObject(m_FilePath + "/" + m_MonsterPrefab.name, transform.position, Quaternion.Euler(0.0f, 180.0f, 0.0f));
                if (g)
                {
                    m_ManagementTarget = g.GetComponent <Character>();
                    PhotonView view = g.GetComponent <PhotonView>();
                    m_PhotonView.RPC("SetManagementTarget_RPC", RpcTarget.AllViaServer, view.ViewID);
                    TimerNet.SetTimer_s(m_TimerKey, m_SpawnDelay, true);
                }
            }
        }
    }
Beispiel #2
0
 void SetNextGameSequence(float _WaitTime = 0.0f)
 {
     m_SequenceProgress[(int)m_GameSequence] = true;
     if (PhotonNetwork.IsMasterClient && _WaitTime != 0.0f)
     {
         TimerNet.SetTimer_s(m_SequenceTimerKey, _WaitTime);
     }
     SetGameSequence(m_GameSequence);
 }
    public void Initialize(int _Number, SpawnManager _SpawnManager)
    {
        m_SpawnManager  = _SpawnManager;
        m_SpawnerNumber = _Number;
        Resources.Load <GameObject>(m_FilePath + "/" + m_MonsterPrefab.name);

        m_TimerKey = "Spawner" + m_SpawnerNumber.ToString();
        TimerNet.InsertTimer(m_TimerKey, 2.0f, true);
    }
    void SetManagementTargetEvent(int _ViewID)
    {
        ++m_CurrentSpawnCount;
        PlayParticle();
        PhotonView view = PhotonView.Find(_ViewID);

        if (view)
        {
            Character c = view.gameObject.GetComponent <Character>();
            if (c)
            {
                m_ManagementTarget = c;
                m_ManagementTarget.SetFreeze(0.5f);
                TimerNet.SetTimer_s(m_TimerKey, m_SpawnDelay, false);
            }
        }
    }
Beispiel #5
0
 private void Awake()
 {
     _gameObject  = gameObject;
     single       = _gameObject.GetComponent <TimerNet>();
     m_PhotonView = GetComponent <PhotonView>();
 }
Beispiel #6
0
    void GameSequenceEvent()
    {
        if (m_UpdateSequence)
        {
            return;
        }
        m_UpdateSequence = true;

        if (m_SequenceProgress[(int)m_GameSequence])
        {
            return;
        }

        float timer = TimerNet.GetTimer(m_SequenceTimerKey);

        if (timer > 0.0f)
        {
            return;
        }

        switch (m_GameSequence)
        {
        case E_GAMESEQUENCE.BEGINGAME:
        {
            SetNextGameSequence();
        }
        break;

        case E_GAMESEQUENCE.READY:
        {
            m_GameReadyCanvas.Run();
            SetNextGameSequence();
        }
        break;

        case E_GAMESEQUENCE.START:
        {
            if (m_GameReadyCanvas.IsComplete)
            {
                SetNextGameSequence();
            }
        }
        break;

        case E_GAMESEQUENCE.NORMALSTAGESTART:
        {
            m_SpawnManager.NormalMonsterSpawnStart();
            m_ControlCanvas.SetActive(true);
            m_SkillUICanvas.SetActive(true);
            m_GameUICanvas.TimeCheck(true);
            SetNextGameSequence();
        }
        break;

        case E_GAMESEQUENCE.NORMALSTAGE:
        {
            if (m_SpawnManager.IsAllNormalMonsterSpawnOperationsCompleted())
            {
                SetNextGameSequence(1.5f);
            }
        }
        break;

        case E_GAMESEQUENCE.NORMALSTAGE_END:
        {
            m_PianoEffect.CurtainClose();
            SetNextGameSequence(2.0f);
        }
        break;

        case E_GAMESEQUENCE.BOSSSTAGESTART:
        {
            m_PianoEffect.CurtainOpen();
            m_BossUICanvas.gameObject.SetActive(true);
            m_MyCharacter.transform.position = m_BossRoomStartPoint.position;
            m_MyCharacter.transform.rotation = Quaternion.identity;
            VerticalFollowCamera.SetDistanceSmooth(5.0f, 1.5f);
            SetNextGameSequence();
        }
        break;

        case E_GAMESEQUENCE.BOSSSTAGE:
        {
            m_SpawnManager.BossMonsterSpawnStart();
            SetNextGameSequence();
        }
        break;

        case E_GAMESEQUENCE.BOSSSTAGE_END:
        {
            if (m_SpawnManager.IsAllBossMonsterSpawnOperationsCompleted())
            {
                DeleteTeamAllUnits(E_TEAMTYPE.BLUE);
                DeleteTeamAllUnits(E_TEAMTYPE.GREEN);
                DeleteTeamAllUnits(E_TEAMTYPE.YELLOW);
                GameClearUIOpen();
                m_GameUICanvas.TimeCheck(false);
                SetNextGameSequence();
            }
        }
        break;

        case E_GAMESEQUENCE.AFTERGAME:
        {
            m_SequenceProgress[(int)m_GameSequence] = true;
        }
        break;

        default:
            break;
        }
    }
Beispiel #7
0
    IEnumerator C_Initialize()
    {
        WaitForSeconds wait = new WaitForSeconds(0.5f);

        if (GameManager.Instance.m_TestMode)
        {
            TestModeDefaultItemSetting list = Resources.Load <TestModeDefaultItemSetting>("TestModeDefaultItemList");
            list.SetTestDefaultItemInventory();

            TestModeServerConnect();
            while (!PhotonNetwork.InRoom)
            {
                yield return(null);
            }
        }

        NetworkManager.Instance.RoomController.SetLocalPlayerProperties(PlayerCharacter.m_CharacterReadyKey, false);
        NetworkManager.Instance.RoomController.SetLocalPlayerProperties("InitComp", false);

        yield return(wait);

        if (PhotonNetwork.IsMasterClient)
        {
            // timer set
            TimerNet.CreateDefaultTimer();
            TimerNet.InsertTimer(m_SequenceTimerKey, 0.0f, true);
        }

        yield return(wait);

        GameObject pianoUI = Instantiate(Resources.Load <GameObject>("PianoEffectCanvas"));

        m_PianoEffect = pianoUI.GetComponent <PianoEffectCanvas>();
        m_PianoEffect.Initialize();
        GameObject readyUI = Instantiate(Resources.Load <GameObject>("GameReadyCanvas"));

        m_GameReadyCanvas = readyUI.GetComponent <GameReadyCanvas>();
        m_ControlCanvas   = Instantiate(Resources.Load <GameObject>("ControlCanvas"));
        m_ControlCanvas.SetActive(false);
        GameObject gameUI = Instantiate(Resources.Load <GameObject>("GameUICanvas"));

        m_GameUICanvas = gameUI.GetComponent <GameUICanvas>();
        List <Item> droplist = new List <Item>();

        for (int i = 0; i < m_DropItemList.Length; ++i)
        {
            droplist.Add(m_DropItemList[i].m_Item);
        }
        m_GameUICanvas.Initialize(this, droplist);
        m_GameUICanvas.TimeCheck(false);
        gameUI.SetActive(false);
        m_SkillUICanvas = Instantiate(Resources.Load <GameObject>("SkillUICanvas"), Vector3.zero, Quaternion.identity);
        m_SkillUICanvas.SetActive(false);
        GameObject bossUI = Instantiate(Resources.Load <GameObject>("BossUICanvas"));

        m_BossUICanvas = bossUI.GetComponent <BossCharacterUI>();
        bossUI.SetActive(false);
        m_SpawnManager.Initialize();

        GameObject g = PhotonNetwork.Instantiate("PlayerCharacter", Vector3.zero, Quaternion.identity, 0, new object[] { -1, -1, -1, -1, -1, InventoryManager.Instance.GetPlayerModelName() });

        m_MyCharacter = g.GetComponent <PlayerCharacter>();
        m_MyCharacter.AddDeadEvent(MyCharacterDeadEvent);

        m_VerticalCamera = Instantiate(m_VerticalCamera, Vector3.zero, Quaternion.identity);
        VerticalFollowCamera verticalcamera = m_VerticalCamera.GetComponent <VerticalFollowCamera>();

        verticalcamera.Initialize(this, m_MyCharacter);
        m_VerticalCamera.SetActive(false);

        NetworkManager.Instance.RoomController.SetLocalPlayerProperties("InitComp", true);

        yield return(wait);

        while (!IsBeginLoadingComplete)
        {
            Player[] players     = PhotonNetwork.PlayerList;
            int      compcount   = 0;
            int      playercount = players.Length;

            foreach (Player p in players)
            {
                if (NetworkManager.Instance.RoomController.GetOtherPlayerPropertie <bool>(p, "InitComp"))
                {
                    ++compcount;
                }
            }

            if (compcount >= playercount)
            {
                IsBeginLoadingComplete = true;
            }
            yield return(null);
        }

        m_IsMultiplayGame = NetworkManager.Instance.RoomController.GetRoomPropertie <bool>(MultiPlayKey);

        while (!IsAfterLoadingComplete)
        {
            Player[] players = PhotonNetwork.PlayerList;

            bool complete = true;
            for (int i = 0; i < players.Length; ++i)
            {
                if (!NetworkManager.Instance.RoomController.GetOtherPlayerPropertie <bool>(players[i], PlayerCharacter.m_CharacterReadyKey))
                {
                    complete = false;
                }
            }
            if (complete)
            {
                InitializeComplete();
            }
            yield return(null);
        }
    }
 public override void SpawnRun()
 {
     m_SpawnRun = true;
     TimerNet.SetTimer_s(m_TimerKey, 2.0f, false);
 }