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(); }
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())); }
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 }