Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
    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);
            }
        }
    }