public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Label(_("Input Keys"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Push.key)));

        GUILayout.Label(_("Direction and Strength"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Push.pushStrength)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Push.axis)));

        var relativeAxisProp = serializedObject.FindProperty(nameof(Push.relativeAxis));

        relativeAxisProp.boolValue = EditorTranslation.PropertyField <bool>(relativeAxisProp);

        var tip = relativeAxisProp.boolValue ? relativeTip : absoluteTip;

        EditorGUILayout.HelpBox(tip, MessageType.Info);

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        bool prefabSelected = ShowPrefabWarning("prefabToSpawn");

        if (prefabSelected)
        {
            if (!CheckIfObjectUsesComponent <Rigidbody2D>("prefabToSpawn"))
            {
                EditorGUILayout.HelpBox(warning, MessageType.Warning);
            }
        }

        GUILayout.Label(_("Object creation"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectShooter.prefabToSpawn)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectShooter.keyToPress)));

        GUILayout.Label(_("Other options"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectShooter.creationRate)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectShooter.shootSpeed)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectShooter.shootDirection)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectShooter.relativeToRotation)));

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
        //removed because it's not possible to choose the direction
        //EditorGUILayout.HelpBox(hint, MessageType.Info);
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        //base.OnInspectorGUI();
        EditorGUILayout.LabelField(_("Input Keys"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Move.typeOfControl)));

        EditorGUILayout.LabelField(_("Movement"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Move.speed)), "Speed of movement");
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Move.movementType)));

        GUILayout.Space(5);
        GUILayout.Label(_("Orientation"), EditorStyles.boldLabel);
        var  orientationToDirectionProp = serializedObject.FindProperty(nameof(Move.orientToDirection));
        bool orientToDirection          = EditorTranslation.PropertyField <bool>(orientationToDirectionProp);

        if (orientToDirection)
        {
            EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Move.lookAxis)));
        }
        orientationToDirectionProp.boolValue = orientToDirection;


        if (serializedObject.FindProperty(nameof(Move.movementType)).intValue != 0)
        {
            EditorGUILayout.HelpBox(constraintsReminder, MessageType.Info);
        }

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        var healthChangeProp = serializedObject.FindProperty(nameof(ModifyHealthAttribute.healthChange));

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ModifyHealthAttribute.destroyWhenActivated)));
        EditorTranslation.PropertyField(healthChangeProp);

        //print a message to explain better that values can be positive or negative
        GUIStyle style = new GUIStyle(EditorStyles.label);

        if (healthChangeProp.intValue < 0)
        {
            style.normal.textColor = Color.red;
            EditorGUILayout.LabelField(_("This object will damage on impact"), style);
        }
        else if (healthChangeProp.intValue > 0)
        {
            style.normal.textColor = Color.blue;
            EditorGUILayout.LabelField(_("This object will heal on impact"), style);
        }
        else
        {
            EditorGUILayout.LabelField(_("This object will have no effect"));
        }

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        var gameTypeProp        = serializedObject.FindProperty(nameof(UIScript.gameType));
        var numberOfPlayersProp = serializedObject.FindProperty(nameof(UIScript.numberOfPlayers));
        var scoreToWinProp      = serializedObject.FindProperty(nameof(UIScript.scoreToWin));

        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        nOfPlayers = numberOfPlayersProp.intValue;
        gameType   = gameTypeProp.intValue;

        nOfPlayers = EditorGUILayout.Popup(_("Number of players"), nOfPlayers, readablePlayerEnum);

        gameType = EditorGUILayout.Popup(_("Game type"), gameType, readableGameTypesEnum);
        if (gameType == 0)        //score game
        {
            EditorTranslation.PropertyField(scoreToWinProp);
        }

        if (gameType == 1)        //life
        {
            EditorGUILayout.HelpBox(lifeReminder, MessageType.Info);
        }

        //write all the properties back
        gameTypeProp.intValue        = gameType;
        numberOfPlayersProp.intValue = nOfPlayers;

        if (GUI.changed)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #6
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Label(_("Movement"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Wander.speed)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Wander.directionChangeInterval)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Wander.keepNearStartingPoint)));

        GUILayout.Space(5);
        GUILayout.Label(_("Orientation"), EditorStyles.boldLabel);
        var orientToDirectionProp = serializedObject.FindProperty(nameof(Wander.orientToDirection));
        var orientToDirectionTemp = EditorTranslation.PropertyField <bool>(orientToDirectionProp);

        if (orientToDirectionTemp)
        {
            EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Wander.lookAxis)));
        }
        orientToDirectionProp.boolValue = orientToDirectionTemp;

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        //Contents
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.textToDisplay)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.backgroundColor)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.textColor)));

        //Options
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.targetObject)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.disappearMode)));
        int isUsingKey = serializedObject.FindProperty(nameof(DialogueBalloonAction.disappearMode)).intValue;

        if (isUsingKey == 1)
        {
            EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.keyToPress)));
        }
        else
        {
            EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.timeToDisappear)));
        }

        //Continue dialogue
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DialogueBalloonAction.followingText)));

        EditorGUILayout.HelpBox(tipMessage, MessageType.Info);

        if (GUI.changed)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #8
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        //draw the popup that displays the names of Resource types, taken from the "InventoryResources" ScriptableObject
        var resourceIndexProp = serializedObject.FindProperty(nameof(ResourceAttribute.resourceIndex));
        int chosenType        = resourceIndexProp.intValue;  //take the int value from the property

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel(_("Type of Resource"));
        chosenType = EditorGUILayout.Popup(chosenType, repository.GetResourceTypes(), GUILayout.ExpandWidth(false));
        EditorGUILayout.EndHorizontal();

        resourceIndexProp.intValue = chosenType;         //put the value back into the property

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ResourceAttribute.amount)));

        GUILayout.Space(10);
        //Display a button to jump to the "InventoryResources" ScriptableObject
        if (GUILayout.Button(_("Add/Remove types")))
        {
            Selection.activeObject = repository;
        }

        CheckIfTrigger(true);

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #9
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Jump.key)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Jump.jumpStrength)));


        GUILayout.Label(_("Ground setup"), EditorStyles.boldLabel);
        var checkGroundProp = serializedObject.FindProperty(nameof(Jump.checkGround));

        checkGround = EditorTranslation.PropertyField <bool>(checkGroundProp);
        if (checkGround)
        {
            EditorTranslation.PropertyTagField(serializedObject.FindProperty(nameof(Jump.groundTag)));
        }
        else
        {
            EditorGUILayout.HelpBox(checkGroundTip, MessageType.Info);
        }
        checkGroundProp.boolValue = checkGround;

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #10
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(AutoMove.direction)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(AutoMove.relativeToRotation)));
    }
Exemple #11
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DestroyForPointsAttribute.pointsWorth)));

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(TimedSelfDestruct.timeToDestruction)));

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #13
0
    //draws the list ReorderableList of GameplayActions, the useCustomActions toggle and (if this is enabled) the default list of UnityEvents
    protected void DrawActionLists()
    {
        list.DoLayoutList();

        var useCustomActionsProp = serializedObject.FindProperty(nameof(ConditionBase.useCustomActions));

        useCustomActionsProp.boolValue = EditorTranslation.PropertyField <bool>(useCustomActionsProp);
        if (useCustomActionsProp.boolValue)
        {
            var e = new UnityEvent();
            EditorGUILayout.PropertyField(serializedObject.FindProperty(nameof(ConditionBase.customActions)));
        }
    }
Exemple #14
0
    //draws the tags as a dropdown only if the Filter by Tag toggle is enabled
    protected void DrawTagsGroup()
    {
        var happenOnlyOnceProp = serializedObject.FindProperty(nameof(ConditionBase.happenOnlyOnce));
        var filterByTagProp    = serializedObject.FindProperty(nameof(ConditionBase.filterByTag));

        EditorTranslation.PropertyField(happenOnlyOnceProp);
        filterByTag = EditorTranslation.PropertyField <bool>(filterByTagProp);
        if (filterByTag)
        {
            chosenTag = EditorGUILayout.TagField(_("Tag to check for"), chosenTag);
        }
        filterByTagProp.boolValue = filterByTag;
    }
Exemple #15
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(AutoRotate.rotationSpeed)));

        EditorGUILayout.HelpBox(tip, MessageType.Info);

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #16
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Label(_("Input Keys"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Rotate.typeOfControl)));

        GUILayout.Label(_("Rotation"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(Rotate.speed)));

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Space(10);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ConditionRepeat.initialDelay)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ConditionRepeat.frequency)));

        GUILayout.Space(10);
        DrawActionLists();

        serializedObject.ApplyModifiedProperties();
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);
        GUILayout.Space(10);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(PickUpAndHold.pickupKey)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(PickUpAndHold.dropKey)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(PickUpAndHold.pickUpDistance)));

        GUILayout.Space(10);
        EditorGUILayout.HelpBox(warning, MessageType.Warning);

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Space(10);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CreateObjectAction.prefabToCreate)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CreateObjectAction.newPosition)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CreateObjectAction.relativeToThisObject)));

        ShowPrefabWarning("prefabToCreate");

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DestroyAction.target)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(DestroyAction.deathEffect)));

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }

        if (!CheckIfAssigned("deathEffect", true))
        {
            EditorGUILayout.HelpBox(tip, MessageType.Info);
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        //search for a Camera component
        Camera cam = go.GetComponent <Camera>();

        if (cam == null)
        {
            //display a warning and a button to fix it
            EditorGUILayout.HelpBox(requiresCamera, MessageType.Error);
        }
        else
        {
            EditorTranslation.PropertyField(serializedObject.FindProperty("target"));

            if (!CheckIfAssigned("target", false))
            {
                EditorGUILayout.HelpBox(warning, MessageType.Warning);
            }

            GUILayout.Space(5);
            GUILayout.Label(_("Limits"), EditorStyles.boldLabel);

            var property             = serializedObject.FindProperty(nameof(CameraFollow.limitBounds));
            var allowLimitBoundsTemp = EditorTranslation.PropertyField <bool>(property);
            if (allowLimitBoundsTemp)
            {
                EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CameraFollow.left)));
                EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CameraFollow.right)));
                EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CameraFollow.bottom)));
                EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(CameraFollow.top)));
            }
            property.boolValue = allowLimitBoundsTemp;

            if (serializedObject.hasModifiedProperties)
            {
                serializedObject.ApplyModifiedProperties();
            }
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Space(10);

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(OnOffAction.objectToAffect)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(OnOffAction.justMakeInvisible)));

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }

        if (serializedObject.FindProperty("justMakeInvisible").boolValue)
        {
            EditorGUILayout.HelpBox(invisibleTip, MessageType.Info);
        }
    }
Exemple #23
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        ShowPrefabWarning("prefabToSpawn");

        GUILayout.Label(_("Object creation"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectCreatorArea.prefabToSpawn)));

        GUILayout.Label(_("Other options"), EditorStyles.boldLabel);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ObjectCreatorArea.spawnInterval)));

        CheckIfTrigger(true);

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Space(10);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(TeleportAction.objectToMove)));

        if (!CheckIfAssigned(nameof(TeleportAction.objectToMove), false))
        {
            EditorGUILayout.HelpBox(objectWarning, MessageType.Warning);
        }

        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(TeleportAction.newPosition)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(TeleportAction.stopMovements)));

        if (GUI.changed)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        var eventTypeProp = serializedObject.FindProperty(nameof(ConditionArea.eventType));
        var filterTagProp = serializedObject.FindProperty(nameof(ConditionArea.filterTag));
        var frequencyProp = serializedObject.FindProperty(nameof(ConditionArea.frequency));

        chosenTag = filterTagProp.stringValue;

        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        // Show a tag selector to then use for the public property filterTag
        GUILayout.Space(10);
        DrawTagsGroup();


        //discern the event type, and show the frequency if needed
        EditorTranslation.PropertyField(eventTypeProp);
        int eventType = eventTypeProp.intValue;

        if (eventType == 2)
        {
            EditorTranslation.PropertyField(frequencyProp);
        }

        GUILayout.Space(10);
        DrawActionLists();

        CheckIfTrigger(true);

        if (GUI.changed)
        {
            filterTagProp.stringValue = chosenTag;
            serializedObject.ApplyModifiedProperties();
        }
    }
Exemple #26
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        GUILayout.Space(5);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(FollowTarget.target)));

        //Draw custom inspector
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(FollowTarget.speed)));

        GUILayout.Space(10);

        SerializedProperty lookAtTargetProperty = serializedObject.FindProperty(nameof(FollowTarget.lookAtTarget));

        lookAtTargetProperty.boolValue = EditorGUILayout.BeginToggleGroup(_("Look at target"), lookAtTargetProperty.boolValue);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(FollowTarget.useSide)));
        EditorGUILayout.EndToggleGroup();

        if (serializedObject.hasModifiedProperties)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        GUILayout.Space(10);
        EditorGUILayout.HelpBox(explanation, MessageType.Info);

        /*
         * Texture2D headerBackground;
         * GUIStyle g = new GUIStyle();
         * headerBackground = Resources.Load<Texture2D>("Textures/Blue");
         * g.normal.background = headerBackground;
         * EditorGUILayout.BeginVertical(g);
         *
         * g.padding = new RectOffset(5,0,0,0);
         * if(!EditorGUIUtility.isProSkin)
         * {
         *      headerBackground = Resources.Load<Texture2D>("Textures/HeaderPers");
         * }
         * else
         * {
         *      headerBackground = Resources.Load<Texture2D>("Textures/GreyPro");
         * }
         * g.normal.background = headerBackground;
         *
         * EditorGUILayout.BeginVertical(g);
         * EditorGUI.indentLevel++;
         * t = EditorGUILayout.Foldout(t, "Help");
         * if(t)
         * {
         *      EditorGUI.indentLevel--;
         *      //EditorGUILayout.HelpBox(explanation, MessageType.Info);
         *      GUISkin s = Resources.Load<GUISkin>("Playground");
         *      GUI.skin = s;
         *      GUILayout.Label(explanation, "HelpText");
         *      EditorGUI.indentLevel++;
         *      GUI.skin = null;
         * }
         * EditorGUI.indentLevel--;
         * EditorGUILayout.EndVertical ();
         * EditorGUILayout.EndVertical ();
         */

        GUILayout.Space(10);
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ConditionKeyPress.happenOnlyOnce)));
        EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ConditionKeyPress.keyToPress)));

        //discern the event type, and show the frequency if needed
        var eventTypeProp = serializedObject.FindProperty(nameof(ConditionKeyPress.eventType));

        EditorTranslation.PropertyField(eventTypeProp);
        int eventType = eventTypeProp.intValue;

        if (eventType == 2)
        {
            EditorTranslation.PropertyField(serializedObject.FindProperty(nameof(ConditionKeyPress.frequency)));
        }


        GUILayout.Space(10);
        DrawActionLists();

        serializedObject.ApplyModifiedProperties();
    }