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); }
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); }
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)); }
void ConfirmedUpdate() { if (input.Action2.WasPressed) { team.SetActive(true); confirm.SetActive(false); SFXManager.GetSFXManager().PlaySFX(SFX.StopPilot); state = CharacterSelectState.Team; } }
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; } }
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; } }
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); }
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; }
/**************** 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); }
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); } }
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(); }
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(); } } }
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); }
// 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); }