private void InitWindow() { for (int i = 0; i < allActions.Length; i++) { string actionName = allActions[i].ToString(); if (GOAP_Action.IsQuestActionID(actionName)) { continue; } AvailableActionWindowPanel actionPanel = Instantiate(actionPanelPrefab, actionsParent).GetComponent <AvailableActionWindowPanel>(); actionPanel.SetContent(actionName, characterData.availableActions.Contains(actionName)); } }
private void UpdateWindowAndActions() { for (int i = 0; i < allActions.Length; i++) { string actionName = allActions[i].ToString(); if (GOAP_Action.IsQuestActionID(actionName)) { continue; } AvailableActionWindowPanel actionPanel = actionsParent.GetChild(i).GetComponent <AvailableActionWindowPanel>(); actionPanel.SetContent(actionName, characterData.availableActions.Contains(actionName)); if (GOAP_Action.baseActions.Contains(actionName)) { actionPanel.buttonImage.GetComponent <Button>().interactable = false; actionPanel.buttonImage.color = Color.grey; actionPanel.buttonLabel.text = "BASE"; actionPanel.transform.SetAsFirstSibling(); if (!characterData.availableActions.Contains(actionName)) { characterData.availableActions.Add(actionName); } } else { actionPanel.buttonImage.GetComponent <Button>().interactable = true; } } //remove all actions not on the list from available for (int i = characterData.availableActions.Count - 1; i >= 0; i--) { string action = characterData.availableActions[i]; if (!allActions.Contains(action) || action == "Action_CompleteQuest" || action == "Action_WaitForQuest" || action == "Action_PostQuest") { characterData.availableActions.RemoveAt(i); } } }