// Initialize the scene void Start() { currentHandlerState = BattleHandlerState.WAIT; playerList.AddRange(GameObject.FindGameObjectsWithTag("PlayerCharacter")); npcList.AddRange(GameObject.FindGameObjectsWithTag("NPC")); npcButtons(); actionPanel.SetActive(false); focusPanel.SetActive(false); }
// Every frame... void Update() { // switch_one: a battle state handler switch (currentHandlerState) { case (BattleHandlerState.WAIT): if (performList.Count > 0) { currentHandlerState = BattleHandlerState.TAKEACTION; } break; case (BattleHandlerState.TAKEACTION): GameObject performer = GameObject.Find(performList[0].activistName); if (performList[0].characterType == "NPC") { NPCStateMachine npcSM = performer.GetComponent <NPCStateMachine>(); npcSM.playerToInteract = performList[0].activistFocus; npcSM.currentState = NPCStateMachine.TurnState.ACTION; } if (performList[0].characterType == "Player") { //Add functionality //PlayerCharacterStateMachine pcSM = performer.GetComponent<PlayerCharacterStateMachine>(); //pcSM.npcToInteract = performList[0].activistFocus; //pcSM.currentState = PlayerCharacterStateMachine.TurnState.ACTION; playersToManage.Add(performer); } currentHandlerState = BattleHandlerState.PERFORMACTION; break; case (BattleHandlerState.PERFORMACTION): break; } // switch_two: a player choice handler switch (currentPlayerState) { case (playerChoiceState.ACTIVATE): // Debug.Log("For example..."); if (playersToManage.Count > 0) { playersToManage[0].transform.Find("Selector").gameObject.SetActive(true); // playerSelectedChoice = new TurnHandler(); actionPanel.SetActive(true); currentPlayerState = playerChoiceState.WAIT; } break; case (playerChoiceState.WAIT): break; case (playerChoiceState.DONE): Debug.Log("Taking action!"); PlayerCharacterStateMachine pcSM = playersToManage[0].GetComponent <PlayerCharacterStateMachine>(); pcSM.npcToInteract = performList[0].activistFocus; pcSM.currentState = PlayerCharacterStateMachine.TurnState.ACTION; PlayerInputDone(); break; } }