示例#1
0
    private void RespawnAssembly()
    {
        PlayerRespawnHandler respawnHandler    = controller.mainController.di.respawnHandler;
        IPlayerRespawner     kingRespawner     = respawnHandler.GetCheckpointRespawner(SlimeType.King);
        HashSet <SlimeType>  respawnSeparately = new HashSet <SlimeType>();

        foreach (SlimeType type in SlimeTypeHelpers.GetWithoutKingEnumerable())
        {
            if (stats.HasType(type))
            {
                IPlayerRespawner slimeRespawner = respawnHandler.GetCheckpointRespawner(type);
                if (slimeRespawner != kingRespawner)
                {
                    respawnSeparately.Add(type);
                }
            }
        }

        if (respawnSeparately.Count > 0)
        {
            unitHandler.RespawnOutOfAssembly(respawnSeparately);
        }
    }
示例#2
0
    private void RespawnCurrentUnit()
    {
        PlayerRespawnHandler respawnHandler  = controller.mainController.di.respawnHandler;
        IPlayerRespawner     playerRespawner = respawnHandler.GetCheckpointRespawner(stats.SlimeType);

        if (playerRespawner.CameraSegment)
        {
            camera.CameraSegment = playerRespawner.CameraSegment;
        }
        Vector2 respawnPosition = playerRespawner.SpawnPoint;

        controller.transform.position = respawnPosition;
        hp.OnRespawn();
        physics.velocity.Value = Vector2.zero;
    }