public void CompleteAct() { if (PF_GamePlay.QuestProgress != null) { //this.gameplayController.directionController; PF_GamePlay.QuestProgress.CurrentAct.Value.IsActCompleted = true; if (PF_GamePlay.encounters.Count > 1) { // more acts to go GameplayController.RaiseGameplayEvent(GlobalStrings.ACT_COMPLETE_EVENT, PF_GamePlay.GameplayEventTypes.OutroAct); } else { // no more acts, complete quest PF_GamePlay.QuestProgress.isQuestWon = true; UB_GamePlayEncounter topOfStack = new UB_GamePlayEncounter(); topOfStack = PF_GamePlay.encounters.First(); PF_GamePlay.QuestProgress.CompletedEncounters.Add(topOfStack); PF_GamePlay.encounters.Remove(PF_GamePlay.encounters.First()); //CycleNextEncounter(); GameplayController.RaiseGameplayEvent(GlobalStrings.QUEST_COMPLETE_EVENT, PF_GamePlay.GameplayEventTypes.OutroQuest); } } }
public void CycleNextEncounter() { this.currentEncounter = GetNextEncounter(); if (this.currentEncounter != null) { UnityAction callback = () => { UnityAction afterTransition = () => { if (this.currentEncounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP) && this.currentPlayer.PlayerVitals.Speed * 1.5f < this.currentEncounter.Data.Vitals.Speed) { this.CurrentTurn = PF_GamePlay.TurnStates.Enemy; gameplayController.EnemyAttackPlayer(true); this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName, true); } else { this.CurrentTurn = PF_GamePlay.TurnStates.Player; //this.gameplayController.playerController.EncounterBar.EnableEncounterOptions(this.currentEncounter.Data.EncounterType, this.currentEncounter.DisplayName); this.gameplayController.playerController.TransitionActionBarIn(); } GameplayController.RaiseGameplayEvent(GlobalStrings.NEXT_ENCOUNTER_EVENT, PF_GamePlay.GameplayEventTypes.IntroEncounter); }; this.gameplayController.enemyController.currentEncounter.UpdateCurrentEncounter(this.currentEncounter); this.gameplayController.enemyController.nextController.UpdateNextEncounters(); this.gameplayController.enemyController.TransitionCurrentEncounterIn(afterTransition); }; this.gameplayController.enemyController.TransitionCurrentEncounterOut(callback); } }
public UB_GamePlayEncounter GetNextEncounter(bool isFirstEncounter = false) { if (PF_GamePlay.encounters != null && PF_GamePlay.encounters.Count > 0) { // pop off top and move to PF_Gameplay QuestTracker // But not ON THE FIRST ENCOUNTER if (PF_GamePlay.QuestProgress.CompletedEncounters.Count != 0 || !isFirstEncounter) { //LogCompletedEncounterStats(); UB_GamePlayEncounter topOfStack = new UB_GamePlayEncounter(); topOfStack = PF_GamePlay.encounters.First(); PF_GamePlay.QuestProgress.CompletedEncounters.Add(topOfStack); PF_GamePlay.encounters.Remove(PF_GamePlay.encounters.First()); if (PF_GamePlay.encounters.Count == 0) { return(null); } else { var next = PF_GamePlay.encounters.First(); next.Data.Vitals.SetMaxVitals(); next.Data.SetSpellDetails(); if (next.Data.EncounterType == EncounterTypes.BossCreep) { GameplayController.RaiseGameplayEvent(GlobalStrings.BOSS_BATTLE_EVENT, PF_GamePlay.GameplayEventTypes.StartBossBattle); } return(next); } } else { var next = PF_GamePlay.encounters.First(); next.Data.Vitals.SetMaxVitals(); next.Data.SetSpellDetails(); if (next.Data.EncounterType == EncounterTypes.BossCreep) { GameplayController.RaiseGameplayEvent(GlobalStrings.BOSS_BATTLE_EVENT, PF_GamePlay.GameplayEventTypes.StartBossBattle); } return(next); } } // end of the list or something!? return(null); }
public void UpdateCurrentEncounter(UB_GamePlayEncounter encounter) { // change the health bar this.lifeBar.maxValue = encounter.Data.Vitals.Health; StartCoroutine(this.lifeBar.UpdateBar(encounter.Data.Vitals.Health, true)); // change banner color if (encounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP)) { this.encounterBanner.color = Color.red; } else if (encounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_STORE)) { this.encounterBanner.color = Color.green; } else if (encounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_HERO)) { this.encounterBanner.color = Color.cyan; } // change icon this.encounterIcon.overrideSprite = GameController.Instance.iconManager.GetIconById(encounter.Data.Icon); // change name this.encounterName.text = encounter.DisplayName; // change level and flag color if (encounter.Data.EncounterType.ToString().Contains(GlobalStrings.ENCOUNTER_CREEP)) { if (encounter.Data.Vitals.CharacterLevel <= PF_PlayerData.activeCharacter.characterData.CharacterLevel) { this.encounterFlag.color = Color.green; } else if (encounter.Data.Vitals.CharacterLevel <= PF_PlayerData.activeCharacter.characterData.CharacterLevel + 3) { this.encounterFlag.color = Color.yellow; } else { this.encounterFlag.color = Color.red; } this.encounterLevel.text = "" + encounter.Data.Vitals.CharacterLevel; } else { this.encounterFlag.color = new Color(188, 0, 255, 255); this.encounterLevel.text = string.Empty; } }
void OnGameplayEventReceived(string message, PF_GamePlay.GameplayEventTypes type) { if (type == PF_GamePlay.GameplayEventTypes.IntroQuest) { AdvanceAct(); this.currentEncounter = GetNextEncounter(true); this.gameplayController.enemyController.currentEncounter.UpdateCurrentEncounter(this.currentEncounter); this.gameplayController.enemyController.nextController.UpdateNextEncounters(); this.currentTurnNumber = 1; //this.currentEncounter = PF_GamePlay.encounters.First(); this.currentPlayer = PF_PlayerData.activeCharacter; } if (type == PF_GamePlay.GameplayEventTypes.StartQuest) { StartTurn(); } if (type == PF_GamePlay.GameplayEventTypes.OutroEncounter) { CompleteEncounter(); return; } if (type == PF_GamePlay.GameplayEventTypes.EnemyTurnEnds || type == PF_GamePlay.GameplayEventTypes.PlayerTurnEnds) { if (message.Contains(GlobalStrings.PLAYER_RESPAWN_EVENT)) { gameplayController.playerController.UpdateQuestStats(); StartCoroutine(gameplayController.playerController.LifeBar.UpdateBar(gameplayController.playerController.LifeBar.maxValue)); } else { ToggleTurn(); } } }