protected override bool ValidateState(Contexts contexts, PlayerEntity player) { player.gamePlay.GameState = player.playerSkyMove.GameState; if (!player.playerSkyMove.IsParachuteAttached) { _logger.Warn("Sky Parachuting State is not valid."); PlayerSkyMoveUtility.AttachParachute(contexts, player, true); if (!player.playerSkyMove.IsParachuteAttached) { if (CheckLandCondition(player)) { _logger.InfoFormat("SKyDive Rollback: Parachuting To Landing State"); player.playerSkyMove.MoveStage = (int)SkyMoveStage.Landing; } else { _logger.InfoFormat("SKyDive Rollback: Parachuting To Gliding State"); player.playerSkyMove.MoveStage = (int)SkyMoveStage.Gliding; } return(false); } } return(true); }
private void ServerOpenParachute(Contexts contexts, PlayerEntity player) { var playerSkyMove = player.playerSkyMove; _logger.DebugFormat("server " + "OpenParachute-----------------------------------------------------------------,{0}," + " IsWaitForAttach:{1},IsParachuteAttached:{2} ", playerSkyMove.IsReadyForAttachParachute(), playerSkyMove.IsWaitForAttach, playerSkyMove.IsParachuteAttached); if (playerSkyMove.IsReadyForAttachParachute()) { player.stateInterface.State.Parachuting(() => { _logger.DebugFormat("server Parachuting call " + "back-----------------------------------------------------------------"); PlayerSkyMoveUtility.AttachParachute(contexts, player, false); }); } else if (!playerSkyMove.IsParachuteLoading && playerSkyMove.Parachute == null) { PlayerSkyMoveUtility.DelayLoadParachute(player, contexts); } }
protected void OpenParachute(Contexts contexts, PlayerEntity player) { var playerSkyMove = player.playerSkyMove; _logger.DebugFormat("OpenParachute-----------------------------------------------------------------,{0}," + " IsWaitForAttach:{1},IsParachuteAttached:{2} ", playerSkyMove.IsReadyForAttachParachute(), playerSkyMove.IsWaitForAttach, playerSkyMove.IsParachuteAttached); if (playerSkyMove.IsReadyForAttachParachute()) { player.stateInterface.State.Parachuting(() => { _logger.DebugFormat("Parachuting call " + "back-----------------------------------------------------------------"); PlayerSkyMoveUtility.AttachParachute(contexts, player, false); }); player.soundManager.Value.PlayOnce(EPlayerSoundType.OpenParachute); playerSkyMove.IsWaitForAttach = true; } else if (!playerSkyMove.IsParachuteLoading && playerSkyMove.Parachute == null) { PlayerSkyMoveUtility.DelayLoadParachute(player, contexts); playerSkyMove.IsParachuteLoading = true; } }
protected void OpenParachute(Contexts contexts, PlayerEntity player) { var playerSkyMove = player.playerSkyMove; _logger.DebugFormat("OpenParachute-----------------------------------------------------------------,{0}," + " IsWaitForAttach:{1},IsParachuteAttached:{2} ", playerSkyMove.IsReadyForAttachParachute(), playerSkyMove.IsWaitForAttach, playerSkyMove.IsParachuteAttached); if (playerSkyMove.IsReadyForAttachParachute()) { player.stateInterface.State.Parachuting(() => { _logger.DebugFormat("Parachuting call " + "back-----------------------------------------------------------------"); PlayerSkyMoveUtility.AttachParachute(contexts, player, false); }); player.AudioController().PlaySimpleAudio((EAudioUniqueId)5029, true); playerSkyMove.IsWaitForAttach = true; } else if (!playerSkyMove.IsParachuteLoading && playerSkyMove.Parachute == null) { PlayerSkyMoveUtility.DelayLoadParachute(player, contexts); playerSkyMove.IsParachuteLoading = true; } }