public void Attack(int damage) { if (m_IsPlayerTurn) { if (m_EnnemyCharacters.Peek().TakeDamage(damage)) { m_EnnemyCharacters.Pop(); if (m_EnnemyCharacters.Count == 0) { m_Actions.Clear(); } } } else { if (m_PlayerCharacters.Peek().TakeDamage(damage)) { Character player = m_PlayerCharacters.Pop(); TeamManagerProxy.Get().RemoveCharacter(player.GetModel().GetName()); if (m_PlayerCharacters.Count == 0) { m_Actions.Clear(); } } } }
public override void OnEnter() { LevelManagerProxy.Get().LoadScene("Scenes/MainMenu"); LevelManagerProxy.Get().SetLevelIndex(0); TeamManagerProxy.Get().SayGoodbye(); TeamManagerProxy.Get().AddCharacter(new CharacterModel("Prince", ECharacterClass.Prince)); this.RegisterAsListener("Game", typeof(GameFlowEvent)); }
public void OnGameEvent(OnEdgeClick edgeEvent) { gameObject.SetActive(true); UpdaterProxy.Get().SetPause(true); m_CurrentEdge = edgeEvent.GetEdge(); m_ChoosePathButton.interactable = m_Player.CanMoveToEdge(m_CurrentEdge); EdgeResource tempEdgeResource = m_CurrentEdge.GetEdgeResource(); switch (tempEdgeResource.GetEdgeType()) { case EEdgeType.Normal: m_MoveType = EEdgeType.Normal; break; case EEdgeType.Combat: if (TeamManagerProxy.Get().IsNotTooMuchCharacters(tempEdgeResource.GetEdgeCharacterNumber())) { m_MoveType = EEdgeType.Normal; } else { m_MoveType = EEdgeType.Combat; } break; case EEdgeType.Obstacle: if (TeamManagerProxy.Get().IsCharacterClass(tempEdgeResource.GetEdgeCharacterClass())) { m_MoveType = EEdgeType.Normal; } else { m_MoveType = EEdgeType.Obstacle; m_ChoosePathButton.interactable = false; } break; case EEdgeType.Diversion: if (TeamManagerProxy.Get().IsNotTooMuchCharacters(tempEdgeResource.GetEdgeCharacterNumber())) { m_MoveType = EEdgeType.Normal; } else { m_MoveType = EEdgeType.Diversion; } break; } m_Description.text = tempEdgeResource.GetDescription(); }
IEnumerator Init(List <ECharacterClass> enemies) { yield return(null); m_CurrentIndex = 0; m_ShoudDoEnemyTurn = false; m_IsEnemyTurn = false; m_IsApplyingAction = false; m_Team = new List <Character> (); m_Healths = new Dictionary <Character, Image> (); m_Animators = new Dictionary <Character, Animator> (); int index = 0; foreach (CharacterModel model in TeamManagerProxy.Get().GetSortedTeam()) { m_Team.Add(new Character(model)); m_PlayerThumbnails[index].gameObject.SetActive(true); m_PlayerThumbnails[index].sprite = RessourceManager.LoadSprite("Models/" + model.GetClass().ToString(), 0); m_Animators.Add(m_Team[index], m_PlayerThumbnails[index].GetComponent <Animator>()); m_Healths.Add(m_Team[index], m_PlayerThumbnails[index].transform.Find("Health").GetComponent <Image> ()); index++; } for (int i = index; i < m_PlayerThumbnails.Count; ++i) { m_PlayerThumbnails[i].gameObject.SetActive(false); } m_CurrentPlayer = m_Team[0]; ActivateButtons(true); m_Enemies = new List <Character> (); index = 0; foreach (ECharacterClass characterClass in enemies) { m_Enemies.Add(new Character(new CharacterModel("Enemy", characterClass))); m_EnemiesThumbnails[index].gameObject.SetActive(true); m_EnemiesThumbnails[index].sprite = RessourceManager.LoadSprite("Models/" + characterClass.ToString(), 0); m_Animators.Add(m_Enemies[index], m_EnemiesThumbnails[index].GetComponent <Animator> ()); m_Healths.Add(m_Enemies[index], m_EnemiesThumbnails[index].transform.Find("Health").GetComponent <Image> ()); index++; } for (int i = index; i < m_EnemiesThumbnails.Count; ++i) { m_EnemiesThumbnails[i].gameObject.SetActive(false); } BattleManagerProxy.Get().Init(m_Team, m_Enemies); m_IsInBattle = true; UpdateUI(); }
private void UpdateUI() { m_Models = new List <CharacterModel> (); int index = 0; foreach (CharacterModel model in TeamManagerProxy.Get().GetSortedTeam()) { m_Models.Add(model); m_Players[index].SetActive(true); m_Players[index].GetComponentInChildren <Image>().sprite = RessourceManager.LoadSprite("Models/" + model.GetClass().ToString(), 0); index++; } for (int i = index; i < m_Players.Count; ++i) { m_Players[i].SetActive(false); } }
// This should be called before any other gameobject awakes private void Awake() { // Singleton pattern : this is the only case where it should be used if (ms_Instance == null) { ms_Instance = this; DontDestroyOnLoad(gameObject); // Keep the Updater first, as the other members might want to register to it m_Logger = new UnityLogger(); LoggerProxy.Open(m_Logger); m_Updater = new Updater(); UpdaterProxy.Open(m_Updater); m_GameEventManager = new GameEventManager(); GameEventManagerProxy.Open(m_GameEventManager); m_InputManager = new InputManager(); InputManagerProxy.Open(m_InputManager); m_CommandStack = new CommandStack(); CommandStackProxy.Open(m_CommandStack); m_SoundManager = new SoundManager(); SoundManagerProxy.Open(m_SoundManager); m_SoundManager.SetMusicSource(m_MusicSource); m_SoundManager.SetFXSource(m_EfxSource); m_LevelManager = new LevelManager(); LevelManagerProxy.Open(m_LevelManager); m_TeamManager = new TeamManager(); TeamManagerProxy.Open(m_TeamManager); m_BattleManager = new BattleManager(); BattleManagerProxy.Open(m_BattleManager); m_GameFlowHSM = new GameFlowHSM(); m_GameFlowHSM.Start(typeof(GameFlowMenuState)); } else if (ms_Instance != this) { Destroy(gameObject); return; } }
public void ConfirmRemove() { m_WarningPanel.SetActive(false); TeamManagerProxy.Get().RemoveCharacterWithDialogue(m_Models[m_PendingRemoveIndex].GetName()); }
public void OnGameEvent(OnDiversionEvent diversionEvent) { gameObject.SetActive(true); TeamManagerProxy.Get().WaitForDiversion(); }
private void OnEnter() { new CameraUnfollowEvent().Push(); if (!m_IsVisited) { string tag = m_Resource.GetDialogueTag(); m_IsVisited = true; switch (m_Resource.GetNodeType()) { case ENodeType.Normal: if (tag != "") { DialogueManagerProxy.Get().TriggerDialogue(tag); } break; case ENodeType.Battle: new OnNodeBattleGameEvent(true, this).Push(); break; case ENodeType.Recruitment: DialogueManagerProxy.Get().TriggerDialogue(tag); break; case ENodeType.Key: DialogueManagerProxy.Get().TriggerDialogue("Key Found"); TeamManagerProxy.Get().GetKey(); break; case ENodeType.End: if (m_Resource.NeedKey()) { if (TeamManagerProxy.Get().HasKey()) { DialogueManagerProxy.Get().TriggerDialogue(tag); new GameFlowEvent(EGameFlowAction.LevelWon).Push(); } else { DialogueManagerProxy.Get().TriggerDialogue("No Key"); m_IsVisited = false; } } else { DialogueManagerProxy.Get().TriggerDialogue(tag); new GameFlowEvent(EGameFlowAction.LevelWon).Push(); } break; default: if (tag != "") { DialogueManagerProxy.Get().TriggerDialogue(tag); } break; } } }
public void Action() { TeamManagerProxy.Get().UseCharacterCapacity(m_CharacterName); }
public void Action() { TeamManagerProxy.Get().RemoveCharacterWithDialogue(m_CharacterName); }
public void Action() { TeamManagerProxy.Get().SayGoodbye(); }
public void Action() { TeamManagerProxy.Get().AddCharacter(new CharacterModel(m_CharacterName, m_CharacterClass)); }