Exemplo n.º 1
0
        protected async void CheckMove(Tank tank)
        {
            if (!rotateStopTimes.ContainsKey(tank))
            {
                rotateStopTimes[tank] = Time.time + UnityEngine.Random.Range(minDelayRotate, maxDelayRotate);
            }
            else if (Time.time >= rotateStopTimes[tank])
            {
                rotateStopTimes.Remove(tank);
                moveDirections[tank] = DIRECTIONS[UnityEngine.Random.Range(0, DIRECTIONS.Length)];
            }

            var direction = moveDirections.ContainsKey(tank) ? moveDirections[tank] : tank.direction;
            var token     = tank.Token;

            moveTasks[tank] = UniTask.Never(token);
            while (!Tank.CanMove(tank.transform.position, direction, tank.ship))
            {
                if (rotateStopTimes.ContainsKey(tank))
                {
                    rotateStopTimes.Remove(tank);
                }
                direction = moveDirections[tank] = DIRECTIONS[UnityEngine.Random.Range(0, DIRECTIONS.Length)];
                await UniTask.Yield();

                if (token.IsCancellationRequested)
                {
                    return;
                }
            }

            (moveTasks[tank] = tank.Move(direction, 1)).Forget();
        }
Exemplo n.º 2
0
    public override UniTask Activate(CardController card, PlayerEntity player, BoardEntity board)
    {
        //コスト消費
        //TODO consume anything to activate
        //board.mana.model.greenMana.Value -= card.model.greenToActivate.Value;
        //Debug.Log(card.model.greenToActivate.Value);
        //Debug.Log(board.mana.model.greenMana.Value);
        //食料入手
        GameManager.AddFood(1);//TODO

        Debug.Log("ActivateCardEffect_0_potato_field success");

        //TODO ?
        return(UniTask.Never(new System.Threading.CancellationToken()));
    }
Exemplo n.º 3
0
    public GlobalCalibrator(Game game)
    {
        this.game           = game;
        beatPulseVisualizer = GameObjectProvider.Instance.beatPulseVisualizer;
        progressIndicator   = GameObjectProvider.Instance.circleProgressIndicator;
        messageText         = GameObjectProvider.Instance.messageText;

        // Reset offset
        Context.Player.Settings.BaseNoteOffset = 0;
        Context.Player.SaveSettings();
        game.Level.Record.RelativeNoteOffset = 0;
        game.Level.SaveRecord();

        // Hide overlay UI
        StoryboardRendererProvider.Instance.UiCanvasGroup.alpha = 0;
        game.onGameStarted.AddListener(_ =>
        {
            game.Config.GlobalNoteOpacityMultiplier = 0;
            Flow();
            DetectCanSkipCalibration();
        });
        game.BeforeExitTasks.Add(UniTask.Never(canExitSource.Token)); // Game never switches scenes by itself
    }