Exemplo n.º 1
0
    private void BtnStart_OnClick()
    {
        if (selectedCharacter == null || selectedChannel == null)
        {
            Debug.LogError("Selected character or channel is null.");
            return;
        }

        State = CharacterSelectState.Connecting;

        var packet = new Packet(Op.DisconnectInform, 0);

        packet.PutString(Connection.AccountName);
        packet.PutLong(Connection.SessionKey);
        packet.PutUInt(0x800000EE);
        packet.PutUInt(0);
        packet.PutUInt(0);
        Connection.Client.Send(packet);

        packet = new Packet(Op.ChannelInfoRequest, 0);
        packet.PutString(selectedCharacter.Server);
        packet.PutString(selectedChannel.Name);
        packet.PutByte(0);
        packet.PutInt(1);
        packet.PutLong(selectedCharacter.EntityId);
        Connection.Client.Send(packet);
    }
Exemplo n.º 2
0
        public State GetState(EnumState type)
        {
            State newState = null;

            switch (type)
            {
            case EnumState.LOGIN:
                newState = new LoginState();
                break;

            case EnumState.CHARACTER_SELECT:
                newState = new CharacterSelectState();
                break;

            case EnumState.CHARACTER_CREATION:
                newState = new CharacterCreationState();
                break;

            case EnumState.HUB:
                newState = new HubState();
                break;

            case EnumState.GAME:

                break;

            case EnumState.TEST:
                newState = new TestState();
                break;
            }

            return(newState);
        }
Exemplo n.º 3
0
        public void SwitchToCharacterSelect(CharacterSelectState selectState)
        {
            Hide();

            _characterSelectCard.gameObject.SetActive(true);

            // TODO: tying this to the controller index is a biiiig assumption :\
            _characterSelectCard.Initialize(PlayerManager.Instance.PlayerData.GetPlayerColor(selectState.ControllerIndex));
        }
Exemplo n.º 4
0
 void ConfirmedUpdate()
 {
     if (input.Action2.WasPressed)
     {
         team.SetActive(true);
         confirm.SetActive(false);
         SFXManager.GetSFXManager().PlaySFX(SFX.StopPilot);
         state = CharacterSelectState.Team;
     }
 }
Exemplo n.º 5
0
    void TeamUpdate()
    {
        if (input.Action2.WasPressed)
        {
            MenuController.GetMenuController().SetCharacterSelect(charSettings.GetCharacterType(), false);
            selecting.SetActive(true);
            team.SetActive(false);

            teamNum = 0;
            SFXManager.GetSFXManager().PlaySFX(SFX.StopPilot);
            StartCoroutine("Ascend");
            StartCoroutine("ExtendBeam");
            ufoSprend.color = Color.white;
            state           = CharacterSelectState.Character;
        }

        if (input.Action1.WasPressed)
        {
            team.SetActive(false);
            SFXManager.GetSFXManager().PlaySFX(SFX.StartPilot);
            if (ufoSprend.color.r == 1f)
            {
                teamNum = 2;
            }
            else
            {
                teamNum = 1;
            }

            state = CharacterSelectState.Confirmed;
            confirm.SetActive(true);
            return;
        }

        if (!switched)
        {
            if (input.LeftStick.Up)
            {
                ufoSprend.color = Color.red;
                StartCoroutine("Ascend");
                switched = true;
            }
            else if (input.LeftStick.Down)
            {
                ufoSprend.color = Color.blue;
                StartCoroutine("Descend");
                switched = true;
            }
        }
        else if (input.LeftStickX == 0)
        {
            switched = false;
        }
    }
Exemplo n.º 6
0
    void CharacterUpdate()
    {
        if (input.Action2.WasPressed)
        {
            state        = CharacterSelectState.Waiting;
            charSettings = null;

            waiting.SetActive(true);
            selecting.SetActive(false);
            confirm.SetActive(false);
            ufo.SetActive(false);
            SFXManager.GetSFXManager().PlaySFX(SFX.StopPilot);
        }

        if (input.Action1.WasPressed &&
            !MenuController.GetMenuController().CharacterIsSelected(charSettings.GetCharacterType()))
        {
            MenuController.GetMenuController().SetCharacterSelect(charSettings.GetCharacterType(), true);
            selecting.SetActive(false);

            SpriteRenderer domeSprite = ufo.transform.Find("dome").Find("sprite").GetComponent <SpriteRenderer>();
            domeSprite.sprite = charSettings.GetSprite();
            GameObject smoke = Instantiate(smokeEffect, domeSprite.transform.position, Quaternion.identity);
            smoke.GetComponent <LoopingAnimation>().StartAnimation();
            SFXManager.GetSFXManager().PlaySFX(SFX.StartPilot);
            StartCoroutine("RetractBeam");

            ufoSprend.color = Color.red;
            teamNum         = 2;
            state           = CharacterSelectState.Team;
            team.SetActive(true);
            return;
        }

        if (!switched)
        {
            if (input.LeftStick.Left)
            {
                SwitchCharacter(false);
            }
            else if (input.LeftStick.Right)
            {
                SwitchCharacter(true);
            }
        }
        else if (input.LeftStickX == 0)
        {
            switched = false;
        }
    }
Exemplo n.º 7
0
        private void InitializePlayer(Player player, int playerId, CharacterSelectState selectState, SpawnPoint spawnPoint)
        {
            Bird birdModel = Instantiate(selectState.PlayerBirdData.ModelPrefab, player.transform);

            if (player.IsLocalPlayer)
            {
                player.InitializeLocal(playerId, selectState.ControllerIndex, selectState.Viewer, birdModel, selectState.PlayerBirdData);
            }
            else
            {
                player.InitializeNetwork(playerId, birdModel, selectState.PlayerBirdData);
            }

            spawnPoint.Spawn(player);
        }
Exemplo n.º 8
0
        public void SetState(CharacterSelectState selectState, bool allReady)
        {
            _joinPanel.SetActive(!selectState.IsJoinedOrReady);
            _characterSelectPanel.SetActive(selectState.IsJoined);
            _readyPanel.SetActive(selectState.IsReady);

            if (selectState.IsReady)
            {
                _allReady.SetActive(allReady);
                _waiting.SetActive(!allReady);
            }

            _birdLabel.text    = selectState.PlayerBirdData.Name;
            _birdImage1.sprite = selectState.PlayerBirdData.Icon;
            _birdImage2.sprite = selectState.PlayerBirdData.Icon;
        }
Exemplo n.º 9
0
    /**************** Public Interface ****************/

    public void ResetPlayerSelect()
    {
        input                       = null;
        state                       = CharacterSelectState.Waiting;
        charSettings                = null;
        animating                   = false;
        switched                    = false;
        teamNum                     = 0;
        ufoSprend.color             = Color.white;
        ufo.transform.localPosition = new Vector3(0f, ufoStartHeight, ufo.transform.localPosition.z);

        ufo.SetActive(false);
        selecting.SetActive(false);
        team.SetActive(false);
        confirm.SetActive(false);
        waiting.SetActive(true);
    }
Exemplo n.º 10
0
    void Update()
    {
        var connecting = false;

        if (prevState != State && State == CharacterSelectState.Connecting)
        {
            if (stateInfo != null)
            {
                stateInfo.Close();
            }

            stateInfo  = MsgBox.Show("Connecting...", MsgBoxButtons.None);
            connecting = true;
        }

        prevState = State;

        if (connecting)
        {
            return;
        }

        if (State != CharacterSelectState.Waiting && Connection.Client.State == ConnectionState.Disconnected)
        {
            State = CharacterSelectState.Waiting;

            if (stateInfo != null)
            {
                stateInfo.Close();
            }

            MsgBox.Show("Failed to connect.");
        }
        else if (State == CharacterSelectState.Connecting && Connection.Client.State == ConnectionState.Connected)
        {
            State = CharacterSelectState.Login;

            var packet = new Packet(Op.ChannelLogin, 0x200000000000000F);
            packet.PutString(Connection.AccountName);
            packet.PutString(Connection.AccountName);
            packet.PutLong(Connection.SessionKey);
            packet.PutLong(selectedCharacter.EntityId);
            Connection.Client.Send(packet);
        }
    }
Exemplo n.º 11
0
        public override void OnEnter()
        {
            base.OnEnter();

            AudioManager.Instance.PlayMusic(_characterSelectMusicClip);

            for (int i = 0; i < GameManager.Instance.ConfigData.MaxLocalPlayers; ++i)
            {
                int controllerIndex = InputManager.Instance.AcquireController();
                Debug.Log($"Acquired controller {controllerIndex}");

                CharacterSelectState selectState = new CharacterSelectState(controllerIndex);
                _characterSelectStates.Add(selectState);

                selectState.Viewer.PlayerUI.PlayerUIPage.SwitchToCharacterSelect(selectState);
            }

            CameraManager.Instance.ResizeViewports();
        }
Exemplo n.º 12
0
    void WaitingUpdate()
    {
        if (input != null)
        {
            if (input.Action1.WasPressed)
            {
                SFXManager.GetSFXManager().PlaySFX(SFX.StartPilot);
                StartCoroutine("ExtendBeam");
                state = CharacterSelectState.Character;

                waiting.SetActive(false);
                selecting.SetActive(true);

                ufo.SetActive(true);

                SwitchCharacter(true);
                UpdateSprite();
            }
        }
    }
Exemplo n.º 13
0
        public Player SpawnPlayer(GameTypeData gameTypeData, CharacterSelectState selectState)
        {
            SpawnPoint spawnPoint = SpawnManager.Instance.GetSpawnPoint(gameTypeData, selectState.PlayerBirdData);

            if (null == spawnPoint)
            {
                Debug.LogError($"No spawn points left for bird type {selectState.PlayerBirdData.Id} in game type {gameTypeData.Name}");
                return(null);
            }

            Player player = Instantiate(_playerPrefab, _playerContainer.transform);

            InitializePlayer(player, PlayerCount, selectState, spawnPoint);
            //NetworkServer.Spawn(player.gameObject);

            Debug.Log($"Spawned {player.Bird.Type.Name} for local player {player.Id} at {spawnPoint.name} ({player.transform.position})");

            AddPlayer(player);
            return(player);
        }
Exemplo n.º 14
0
    // Use this for initialization
    void Awake()
    {
        ufo       = transform.Find("UFO").gameObject;
        ufoSprend = ufo.GetComponent <SpriteRenderer> ();
        beam      = ufo.transform.Find("selection").gameObject;
        sprite    = beam.transform.Find("sprite").GetComponent <SpriteRenderer> ();
        waiting   = transform.Find("Waiting").gameObject;
        selecting = transform.Find("Selecting").gameObject;
        team      = transform.Find("Team").gameObject;
        confirm   = transform.Find("Confirm").gameObject;

        ufo.SetActive(false);
        waiting.SetActive(true);
        selecting.SetActive(false);
        team.SetActive(false);
        confirm.SetActive(false);

        state          = CharacterSelectState.Waiting;
        stateUpdateMap = new Dictionary <CharacterSelectState, Action> ();
        stateUpdateMap.Add(CharacterSelectState.Waiting, WaitingUpdate);
        stateUpdateMap.Add(CharacterSelectState.Character, CharacterUpdate);
        stateUpdateMap.Add(CharacterSelectState.Team, TeamUpdate);
        stateUpdateMap.Add(CharacterSelectState.Confirmed, ConfirmedUpdate);
    }