public void HighlightMatcheCards() { var asyncChain = Planner.Chain(); asyncChain.AddEmpty(); var activeCards = cardsPool.FindAll(p => p.activeSelf); for (int i = 0; i < activeCards.Count; i++) { var matches = activeCards.FindAll(c => c.GetComponent <Card>().GetImage() .Equals(activeCards[i].GetComponent <Card>().GetImage()) ); if (matches.Count >= countFlipCardATime) { for (int j = 0; j < countFlipCardATime; j++) { asyncChain.JoinTween(matches[j].GetComponent <Card>().Shake); } MaxHelpCount--; if (MaxHelpCount == 0 && HelpButton != null) { HelpButton.interactable = false; } return; } } }
private void Awake() { _gameScenarioBase = FindObjectOfType <GameScenarioBase>(); _gameProgress = FindObjectOfType <GameProgress>(); _nextSceneNumber = SceneManager.GetActiveScene().buildIndex + _nextLoadSceneNumber; if (_gameScenarioBase == null) { var scenario = CustomResources.Load <GameScenarioBase> (AssetsPathGameObject.GameObjects[GameObjectType.GameScenarioExecutor]); _gameScenarioBase = Instantiate(scenario); if (_gameScenarioBase == null) { CustomDebug.LogError("GameScenarioExecutor has no scenario", this); return; } } _gameScenarioBase.Inject(_gameProgress); Planner.Chain() .AddFunc(_gameScenarioBase.ExecuteScenario) .AddAction(LoadNextScene) ; }
public AsyncState StartCutScene() { return(Planner.Chain() .AddAction(() => _cameraAnimator.SetTrigger("StartGameCameraTrigger")) .AddAwait(IsRoundStart) ); }
public AsyncState EndCutScene() { return(Planner.Chain() .AddAction(() => cameraAnimator.SetTrigger("CameraEnd")) .AddAwait(IsOutroCutSceneFinished) ); }
private AsyncState Outro() { return(Planner.Chain() .AddAction(camAnimator.SetTrigger, "outro_trigger") .AddTimeout(2f) ); }
public AsyncState RewardCutScene() { return(Planner.Chain() .AddAction(() => _cameraAnimator.SetTrigger("RewardGameCameraTrigger")) .AddAwait(IsRoundEnd) ); }
private AsyncState MoveHand() { var asyncChain = Planner.Chain(); asyncChain.AddTween(MoveTo); return(asyncChain); }
public AsyncState RunGame(MemoryGameModel gameModel) { // game login entry point return(Planner.Chain() .AddAwait(AwaitFunc) ); }
public AsyncState IncrementProgress() { return(Planner.Chain() // TODO: run progress animation, await finish .AddTimeout(1f) ); }
public AsyncState StartCutScene() { return(Planner.Chain() .AddTimeout(3f) .AddAction(() => cameraAnimator.SetTrigger("CameraStart")) .AddAwait(IsIntroCutSceneFinished) ); }
private AsyncState Outro() { return(Planner.Chain() .AddAction(Debug.Log, "start outro") .AddFunc(controller.MemoryAnimations.EndCutScene) .AddAction(Debug.Log, "outro finished") ); }
protected override AsyncState OnExecute() { return(Planner.Chain() .AddFunc(Intro) .AddFunc(GameCircle) .AddFunc(Outro) ); }
public AsyncState IncrementProgress() { return(Planner.Chain() // TODO: run progress animation, await finish .AddTween(_progressBar.SetCurrentValue, 1f / NumberOfRounds) .AddTimeout(1f) ); }
private AsyncState Outro() { // TODO: outro cut scene. Run camera back to origin position. Await animation finish return(Planner.Chain() .AddAction(Debug.Log, "start outro") .AddTimeout(1f) .AddAction(Debug.Log, "outro finished") ); }
private AsyncState Intro() { return(Planner.Chain() // TODO: intro cut scene. Run camera animation. Await animation finish .AddAction(Debug.Log, "start intro") .AddTimeout(1f) .AddAction(Debug.Log, "intro finished") ); }
private AsyncState Intro() { return(Planner.Chain() .AddAction(CustomDebug.Log, "start intro") .AddFunc(_memoryGameController.CameraAnimationController.StartCutScene) .AddTimeout(_timeOutForSpawnCardAfterCameraAnimation) .AddAction(CustomDebug.Log, "intro finished") ); }
private AsyncState TryFindPair() { return(Planner.Chain() .AddAwait(AwaitCardClick) .AddAwait(AwaitCardClick) .AddTimeout(1) .AddAction(CheckPair) ); }
private AsyncState Outro() { // TODO: outro cut scene. Run camera back to origin position. Await animation finish return(Planner.Chain() .AddAction(CustomDebug.Log, "start outro") .AddFunc(_memoryGameController.CameraAnimationController.RewardCutScene) .AddTimeout(1f) .AddAction(CustomDebug.Log, "outro finished") ); }
public AsyncState Close() { return(Planner.Chain() .AddAction(ShowParticleEffect) .AddTween(CloseEffect) .AddAction(ToggleBarImages, false) .AddAwait((AsyncStateInfo state) => state.IsComplete = effectInstance == null) ); }
public AsyncState CardDealing(int numberOfPairs) { if (HelpButton != null) { HelpButton.interactable = true; } IsFinishGameRound = false; var asyncChain = Planner.Chain(); asyncChain.AddAction(Debug.Log, "Dealing started"); IsDealing = true; var movePosition = new Vector3(-numberOfPairs / 2f, 2.86f, 0f); var moveOffset = Vector3.right * 0.5f; for (var i = 0; i < numberOfPairs * 2; i++) { Card card = null; var instancePosition = new Vector3(0f, 2.86f, 10f); var instanceRotation = cardPrefab.transform.rotation; if (cardsPool.Count > i && !cardsPool[i].activeSelf) { cardsPool[i].transform.position = instancePosition; cardsPool[i].transform.rotation = instanceRotation; card = cardsPool[i].GetComponent <Card>(); card.SetImage(GetImage(i)); card.gameObject.SetActive(true); card.AudioManager = audioManager; asyncChain.AddFunc(card.MoveToTable, movePosition); movePosition += moveOffset; continue; } var cardObj = Instantiate(cardPrefab, instancePosition, instanceRotation, transform); cardsPool.Add(cardObj); card = cardObj.GetComponent <Card>(); card.SetImage(GetImage(i)); card.AudioManager = audioManager; asyncChain.AddFunc(card.MoveToTable, movePosition); movePosition += moveOffset; } asyncChain.AddFunc(difficultyController.ShowCardsInBeginning, cardsPool); asyncChain.AddAction(Debug.Log, "Dealing finished"); asyncChain.onComplete += () => IsDealing = false; return(asyncChain); }
public AsyncState Close() { return(Planner.Chain() .AddAction(audioManager.Play, "ShowProgressBarEffect") .AddAction(ShowParticleEffect) .AddTween(CloseEffect) .AddAction(ToggleBarImages, false) .AddAwait((AsyncStateInfo state) => state.IsComplete = effectInstance == null) .AddAwait((AsyncStateInfo state) => state.IsComplete = !audioManager.IsPlaying("ShowProgressBarEffect")) ); }
public AsyncState HandleHP() { var asyncChain = Planner.Chain(); if (!_difficultyData.IsHPHandle) { return(asyncChain.AddEmpty()); } asyncChain.AddFunc(_hpManager.Execute, _difficultyData.HpPrefab, _difficultyData.MaxHP); return(asyncChain); }
public AsyncState CardDealing(int numberOfPairs) { if (HelpButton != null) { HelpButton.interactable = true; } IsFinishGameRound = false; var asyncChain = Planner.Chain(); asyncChain.AddAction(Debug.Log, "Dealing started"); IsDealing = true; var movePosition = new Vector3(-1.0f, 0.0f, 0f); var moveOffset = Vector3.right * 0.8f; for (var i = 0; i < numberOfPairs * 2; i++) { CardBehaviour card = null; var instancePosition = new Vector3(0f, 0.2f, 10f); var instanceRotation = _cardPrefab.transform.rotation; if (CardsPool.Count > i && !CardsPool[i].GameObject.activeSelf) { CardsPool[i].Transform.position = instancePosition; CardsPool[i].Transform.rotation = instanceRotation; card = CardsPool[i].GameObject.GetComponent <CardBehaviour>(); card.SetImage(GetImage(i)); card.gameObject.SetActive(true); asyncChain.AddFunc(card.MoveToTable, movePosition); movePosition += moveOffset; continue; } var cardFactory = new CardFactory(); var cardObject = cardFactory.CreateCard(instancePosition, instanceRotation); CardsPool.Add(cardObject); card = cardObject.GameObject.GetComponent <CardBehaviour>(); card.SetImage(GetImage(i)); asyncChain.AddFunc(card.MoveToTable, movePosition); movePosition += moveOffset; } asyncChain.AddFunc(_difficultyController.ShowCardsInBeginning, CardsPool); asyncChain.AddAction(Debug.Log, "Dealing finished"); asyncChain.onComplete += () => IsDealing = false; return(asyncChain); }
private void StartFindAllPairs() { if (runtimeData.CardsSet.Count == 0) { return; } Planner.Chain() .AddFunc(TryFindPair) .AddTimeout(0.5f) .AddAction(StartFindAllPairs); ; }
public AsyncState RunGame(MemoryGameModel gameModel) { this.gameModel = gameModel; // game login entry point return(Planner.Chain() .AddAction(SetCarts) .AddAwait(AwaitAllCardsSet) .AddAction(StartFindAllPairs) .AddAwait(AwaitFindAllPairs) .AddAwait(AwaitGameComplite) ); }
public void Flip() { _isFliped = true; var asyncChain = Planner.Chain(); asyncChain .AddTween(Rise) .AddTween(Rotate) .AddTween(Put) .AddAction(OnFlipedCard.Invoke, this) ; }
private AsyncState Switching(List <GameObject> list, int i, int j) { var asyncChain = Planner.Chain(); var temp = list[i]; list[i] = list[j]; list[j] = temp; asyncChain.AddTween(list[j].GetComponent <Card>().MoveTo, list[i].transform.position, 0.25f, Ease.InSine); asyncChain.AddTween(list[i].GetComponent <Card>().MoveTo, list[j].transform.position, 0.25f, Ease.InSine); asyncChain.AddAwait((AsyncStateInfo state) => state.IsComplete = !Card.IsTweenRunning); return(asyncChain); }
public void Flip() { isFliped = true; AudioManager.Play("ClickOnCard"); var asyncChain = Planner.Chain(); asyncChain .AddTween(Rise) .AddTween(Rotate) .AddTween(Put) .AddAction(MemoryCardDeal.OnFlipedCard.Invoke, this) ; }
private void Awake() { if (scenario == null) { Debug.LogError("GameScenarioExecutor has no scenario", this); return; } scenario.Inject(progress); Planner.Chain() .AddFunc(scenario.ExecuteScenario) .AddAction(LoadNextScene) ; }
private AsyncState GameCircle() { var asyncChain = Planner.Chain(); for (var i = 0; i < defaultGameModel.Cycles.Count; i++) { runtimeData.CycleIndex = i; runtimeData.CycleSettings = defaultGameModel.Cycles[i]; asyncChain .AddFunc(controller.RunGame, defaultGameModel) .AddFunc(progress.IncrementProgress) ; } return(asyncChain); }