override public void ShowGUI(List <ActionParameter> parameters) { if (inventoryManager == null && AdvGame.GetReferences().inventoryManager) { inventoryManager = AdvGame.GetReferences().inventoryManager; } if (settingsManager == null && AdvGame.GetReferences().settingsManager) { settingsManager = AdvGame.GetReferences().settingsManager; } invCheckType = (InvCheckType)EditorGUILayout.EnumPopup("Check to make:", invCheckType); if (invCheckType == InvCheckType.NumberOfItemsCarrying) { intCondition = (IntCondition)EditorGUILayout.EnumPopup("Count is:", intCondition); intValueParameterID = Action.ChooseParameterGUI(intCondition.ToString() + ":", parameters, intValueParameterID, ParameterType.Integer); if (intValueParameterID < 0) { intValue = EditorGUILayout.IntField(intCondition.ToString() + ":", intValue); } SetPlayerGUI(); return; } if (inventoryManager) { // Create a string List of the field's names (for the PopUp box) List <string> labelList = new List <string>(); int i = 0; if (parameterID == -1) { invNumber = -1; } if (inventoryManager.items.Count > 0) { foreach (InvItem _item in inventoryManager.items) { labelList.Add(_item.label); // If an item has been removed, make sure selected variable is still valid if (_item.id == invID) { invNumber = i; } i++; } if (invNumber == -1) { // Wasn't found (item was possibly deleted), so revert to zero ACDebug.LogWarning("Previously chosen item no longer exists!"); invNumber = 0; invID = 0; } // parameterID = Action.ChooseParameterGUI("Inventory item:", parameters, parameterID, ParameterType.InventoryItem); if (parameterID >= 0) { invNumber = Mathf.Min(invNumber, inventoryManager.items.Count - 1); invID = -1; } else { invNumber = EditorGUILayout.Popup("Inventory item:", invNumber, labelList.ToArray()); invID = inventoryManager.items[invNumber].id; } // if (inventoryManager.items[invNumber].canCarryMultiple) { doCount = EditorGUILayout.Toggle("Query count?", doCount); if (doCount) { intCondition = (IntCondition)EditorGUILayout.EnumPopup("Count is:", intCondition); intValueParameterID = Action.ChooseParameterGUI(intCondition.ToString() + ":", parameters, intValueParameterID, ParameterType.Integer); if (intValueParameterID < 0) { intValue = EditorGUILayout.IntField(intCondition.ToString() + ":", intValue); if (intValue < 1) { intValue = 1; } } } } else { doCount = false; } SetPlayerGUI(); } else { EditorGUILayout.LabelField("No inventory items exist!"); invID = -1; invNumber = -1; } } else { EditorGUILayout.HelpBox("An Inventory Manager must be assigned for this Action to work", MessageType.Warning); } }