Ejemplo n.º 1
0
    /// <summary>
    /// Warp that will only end after receiving a MUST DROP instruction.
    /// </summary>
    /// <returns>An awaitable task.</returns>
    private async Task InfiniteWarp()
    {
        while (!_mustDrop)
        {
            OnHyperspaceUpdate?.Invoke(this, null);

            await Await.NextUpdate();
        }

        _mustDrop = false;
    }
Ejemplo n.º 2
0
    /// <summary>
    /// Warp that will end after a given countdown OR after receiving
    /// a MUST DROP instruction.
    /// </summary>
    /// <returns>An awaitable task.</returns>
    private async Task TimedWarp()
    {
        for (float t = 0; t < _warpDuration && !_mustDrop; t += Time.deltaTime)
        {
            OnHyperspaceUpdate?.Invoke(this, null);

            await Await.NextUpdate();
        }

        _mustDrop = false;
    }