void Awake() { if (instance != null) { Destroy(gameObject); } else { instance = this; battlecanvas = GameObject.Find("BattleCanvas"); Spacer = battlecanvas.transform.GetChild(5).transform.GetChild(0).transform; attackPanel = battlecanvas.transform.GetChild(3).gameObject; attackPanel.SetActive(false); EnemySelect = battlecanvas.transform.GetChild(5).gameObject; EnemySelect.SetActive(false); SkillsPanel = battlecanvas.transform.GetChild(7).gameObject; SkillsPanel.SetActive(false); actionSpacer = battlecanvas.transform.GetChild(3).transform.GetChild(0).transform; Skillspacer = battlecanvas.transform.GetChild(7).transform.GetChild(0).transform; battlestates = performAction.wait; Invoke("Playerdetect", 5); Debug.Log("players done"); } }
// Use this for initialization void Start() { gameManager = GameObject.Find("GameManager"); ActionList = GameObject.Find("ActionList"); Debug.Log(ActionList); battleState = performAction.WAIT; enemies.AddRange(GameObject.FindGameObjectsWithTag("Enemy")); heroes.Add(GameObject.FindGameObjectWithTag("Player")); heroInput = heroGUI.ACTIVATE; //ActionList.SetActive(false); myAction = GameObject.FindGameObjectWithTag("Player").GetComponent <AttackScript>(); }
// Start is called before the first frame update void Start() { battleState = performAction.Wait; EnemyInBattle.AddRange(GameObject.FindGameObjectsWithTag("Enemy")); PlayerInBattle.AddRange(GameObject.FindGameObjectsWithTag("Player")); victoryText.text = ""; loseText.text = ""; rematchButton.SetActive(false); returnButton.SetActive(false); resultPanel.SetActive(false); castButton.SetActive(true); resetButton.SetActive(true); actionDisplay.SetActive(true); actionBar.SetActive(true); }
public void LoadScene() { action = performAction.Load; }
public void CloseApplication() { action = performAction.Quit; }
// Update is called once per frame public void Update() { switch (battleState) { case (performAction.Wait): if (PerformList.Count > 0) { battleState = performAction.TakeAction; } break; case (performAction.TakeAction): GameObject performer = GameObject.Find(PerformList[0].Attacker); if (PerformList[0].Type == "Enemy") { EnemyStateMachine ESM = performer.GetComponent <EnemyStateMachine>(); for (int i = 0; i < PlayerInBattle.Count; i++) { if (PerformList[0].AttackersTarget == PlayerInBattle[i]) { ESM.PlayerToAttack = PerformList[0].AttackersTarget; ESM.currentState = EnemyStateMachine.turnState.action; } else { PerformList[0].AttackersTarget = PlayerInBattle[Random.Range(0, PlayerInBattle.Count)]; ESM.PlayerToAttack = PerformList[0].AttackersTarget; ESM.currentState = EnemyStateMachine.turnState.action; } } } if (PerformList[0].Type == "Player") { } battleState = performAction.PerformAction; break; case (performAction.PerformAction): break; case (performAction.CheckAlive): if (PlayerInBattle.Count < 1) { battleState = performAction.Lose; //lose game } else if (EnemyInBattle.Count < 1) { battleState = performAction.Win; } else { //call function } break; case (performAction.Win): { Debug.Log("Victory!"); } break; case (performAction.Lose): { Debug.Log("Game Over"); } break; } }
// Start is called before the first frame update void Start() { battleState = performAction.Wait; EnemyInBattle.AddRange(GameObject.FindGameObjectsWithTag("Enemy")); PlayerInBattle.AddRange(GameObject.FindGameObjectsWithTag("Player")); }
public BehaviourNode(NodeType type, performAction action, List <BehaviourNode> children) { this.type = type; this.action = action; this.children = children; }
// Update is called once per frame void Update() { switch (battleState) { case (performAction.WAIT): if (list.Count > 0) { battleState = performAction.TAKEACTION; } break; case (performAction.TAKEACTION): Debug.Log(list[0].Attacker); GameObject performer = GameObject.Find(list[0].Attacker); Debug.Log(performer); if (list[0].Type == "Enemy") { EnemyStateMachine esm = performer.GetComponent <EnemyStateMachine>(); for (int i = 0; i < heroes.Count; i++) { if (list[0].attackersTarget == heroes[i]) { esm.hero = list[0].attackersTarget; esm.currentState = EnemyStateMachine.TurnState.ACTION; break; } /*else * { * list[0].attackersTarget = heroes[Random.Range(0, heroes.Count)]; * }*/ } } if (list[0].Type == "Hero") { HeroStateMachine hsm = performer.GetComponent <HeroStateMachine>(); hsm.enemyToAttack = list[0].attackersTarget; hsm.currentState = HeroStateMachine.TurnState.ACTION; } battleState = performAction.PERFORMACTION; break; case (performAction.CHECKALIVE): if (heroes.Count == 0) { //lose game Debug.Log("Lost"); battleState = performAction.LOSE; } else if (enemies.Count == 0) { //win battle Debug.Log("Win"); for (int i = 0; i < heroes.Count; i++) { heroes[i].GetComponent <HeroStateMachine>().currentState = HeroStateMachine.TurnState.WAITING; } battleState = performAction.WIN; } else { //call function //ActionList.SetActive(false); gameManager.GetComponent <GameStates>().List.SetActive(false); heroInput = heroGUI.ACTIVATE; } break; case (performAction.PERFORMACTION): break; case (performAction.LOSE): break; case (performAction.WIN): Destroy(GameObject.FindGameObjectWithTag("Dead enemy")); Destroy(GameObject.Find("BattleManager(Clone)")); gameManager.GetComponent <GameStates>().state = GameStates.GameState.WORLDSTATE; break; } switch (heroInput) { case (heroGUI.ACTIVATE): if (heroesToManage.Count > 0) { //heroesToManage[0] heroChoice = new HandleTurn(); //ActionList.SetActive(true); gameManager.GetComponent <GameStates>().List.SetActive(true); heroInput = heroGUI.WAITING; } break; case (heroGUI.WAITING): break; case (heroGUI.DONE): heroInputDone(); break; } }
// Update is called once per frame public void Update() { switch (battleState) { case (performAction.Wait): if (PerformList.Count > 0) { battleState = performAction.TakeAction; } break; case (performAction.TakeAction): GameObject performer = GameObject.Find(PerformList[0].Attacker); if (PerformList[0].Type == "Enemy") { EnemyStateMachine ESM = performer.GetComponent <EnemyStateMachine>(); for (int i = 0; i < PlayerInBattle.Count; i++) { if (PerformList[0].AttackersTarget == PlayerInBattle[i]) { ESM.PlayerToAttack = PerformList[0].AttackersTarget; ESM.currentState = EnemyStateMachine.turnState.action; } else { PerformList[0].AttackersTarget = PlayerInBattle[Random.Range(0, PlayerInBattle.Count)]; ESM.PlayerToAttack = PerformList[0].AttackersTarget; ESM.currentState = EnemyStateMachine.turnState.action; } } } battleState = performAction.PerformAction; break; case (performAction.PerformAction): break; case (performAction.CheckAlive): if (PlayerInBattle.Count < 1) { battleState = performAction.Lose; //lose game loseText.text = "Game Over"; rematchButton.SetActive(true); returnButton.SetActive(true); resultPanel.SetActive(true); castButton.SetActive(false); resetButton.SetActive(false); actionDisplay.SetActive(false); actionBar.SetActive(false); Debug.Log("Game Over"); } else if (EnemyInBattle.Count <= 0) { battleState = performAction.Win; victoryText.text = "Victory!"; rematchButton.SetActive(true); returnButton.SetActive(true); resultPanel.SetActive(true); castButton.SetActive(false); resetButton.SetActive(false); actionDisplay.SetActive(false); actionBar.SetActive(false); } break; case (performAction.Win): { Debug.Log("Victory!"); for (int i = 0; i < PlayerInBattle.Count; i++) { PlayerInBattle[i].GetComponent <PlayerStateMachine>().currentState = PlayerStateMachine.turnState.alive; } victoryText.text = "Victory!"; rematchButton.SetActive(true); returnButton.SetActive(true); resultPanel.SetActive(true); castButton.SetActive(false); resetButton.SetActive(false); actionDisplay.SetActive(false); actionBar.SetActive(false); } break; case (performAction.Lose): { for (int i = 0; i < PlayerInBattle.Count; i++) { EnemyInBattle[i].GetComponent <EnemyStateMachine>().currentState = EnemyStateMachine.turnState.waiting; } loseText.text = "Game Over"; rematchButton.SetActive(true); returnButton.SetActive(true); resultPanel.SetActive(true); castButton.SetActive(false); resetButton.SetActive(false); actionDisplay.SetActive(false); actionBar.SetActive(false); Debug.Log("Game Over"); } break; } }
// Update is called once per frame void Update() { if (Gamemanager.instance.detectE == true) { enemysinBattle.AddRange(GameObject.FindGameObjectsWithTag("Enemy")); characterInput = characterGUI.activate; attackPanel.SetActive(false); EnemySelect.SetActive(false); SkillsPanel.SetActive(false); EnemyButtons(); Gamemanager.instance.noEnemys = false; Gamemanager.instance.detectE = false; } switch (battlestates) { case (performAction.wait): if (PerformList.Count > 0) { battlestates = performAction.takeaction; } break; case (performAction.takeaction): GameObject performer = GameObject.Find(PerformList [0].attacker); if (PerformList [0].Type == "Enemy") { EnemyStateMachine ESM = performer.GetComponent <EnemyStateMachine> (); for (int i = 0; i < charactersinBattle.Count; i++) { if (PerformList [0].attackersTarget == charactersinBattle [i]) { ESM.charactertoattack = PerformList [0].attackersTarget; ESM.currentState = EnemyStateMachine.TurnState.action; break; } else { PerformList[0].attackersTarget = charactersinBattle[Random.Range(0, charactersinBattle.Count)]; ESM.charactertoattack = PerformList [0].attackersTarget; ESM.currentState = EnemyStateMachine.TurnState.action; } } } if (PerformList [0].Type == "Player c") { HeroStateMachine HSM = performer.GetComponent <HeroStateMachine> (); HSM.enemytoAttack = PerformList [0].attackersTarget; HSM.currentState = HeroStateMachine.TurnState.action; } battlestates = performAction.performaction; break; case (performAction.performaction): //idle break; case (performAction.checkAlive): if (charactersinBattle.Count < 1) { battlestates = performAction.lose; //lose } else if (enemysinBattle.Count < 1) { Gamemanager.instance.noEnemys = true; battlestates = performAction.win; //win } else { clearAttackPanel(); characterInput = characterGUI.activate; battlestates = performAction.wait; } break; case (performAction.lose): { Debug.Log("lose"); } break; case (performAction.win): { Debug.Log("win"); for (int i = 0; i < charactersinBattle.Count; i++) { charactersinBattle[i].GetComponent <HeroStateMachine>().currentState = HeroStateMachine.TurnState.waiting; } battlestates = performAction.wait; } break; } switch (characterInput) { case (characterGUI.activate): if (charactersToManage.Count > 0) { characterChoise = new HandleTurn(); attackPanel.SetActive(true); CreateAttackButtons(); characterInput = characterGUI.waiting; } break; case (characterGUI.waiting): //Idle break; case (characterGUI.done): characterInputDone(); break; } }