コード例 #1
0
 public override void OnGUI(Rect rect)
 {
     if ((gameObject = Selection.activeGameObject) == null)
     {
         gameObject = QuestEditor.selectedQuest.gameObject;
     }
     GUILayout.Label("Créer un noeud (trigger) :", EditorStyles.boldLabel);
     gameObject  = (GameObject)EditorGUILayout.ObjectField("GameObject", gameObject, typeof(GameObject), true);
     triggerType = (TRIGGER_TYPES)EditorGUILayout.EnumPopup("Type du trigger :", triggerType);
     if (GUILayout.Button("Créer le trigger") && gameObject != null)
     {
         new Node(gameObject, QuestEditor.TranslateType(triggerType));
     }
 }
コード例 #2
0
ファイル: QuestEditor.cs プロジェクト: moipaslui/fouleck
    public static System.Type TranslateType(TRIGGER_TYPES type)
    {
        switch (type)
        {
        case TRIGGER_TYPES.BUY:
            return(typeof(QuestTrigger_Buy));

        case TRIGGER_TYPES.CRAFT:
            return(typeof(QuestTrigger_Craft));

        case TRIGGER_TYPES.ITEM_PICKUP:
            return(typeof(QuestTrigger_ItemPickup));

        case TRIGGER_TYPES.DIALOGUE:
            return(typeof(QuestTrigger_Dialogue));

        case TRIGGER_TYPES.ZONE:
            return(typeof(QuestTrigger_Zone));

        case TRIGGER_TYPES.START:
            return(typeof(StartQuest_Dialogue));

        case TRIGGER_TYPES.END:
            return(typeof(EndQuest_Dialogue));

        case TRIGGER_TYPES.AT_REMOVE_ITEM:
            return(typeof(RemoveItemAT));

        case TRIGGER_TYPES.AT_REWARD:
            return(typeof(RewardTriggerAT));

        case TRIGGER_TYPES.AT_END_QUEST:
            return(typeof(EndQuestAT));

        case TRIGGER_TYPES.AT_INSTANTIATE:
            return(typeof(InstantiateAT));

        case TRIGGER_TYPES.AT_ACTIVE_ENNEMI:
            return(typeof(ActiveEnnemiAT));
        }

        return(null);
    }
コード例 #3
0
ファイル: TriggerEditor.cs プロジェクト: moipaslui/fouleck
    void DisplayData()
    {
        // Common objects
        if (triggerType != (triggerType = (TRIGGER_TYPES)EditorGUILayout.EnumPopup("Type du trigger :", triggerType)))
        {
            node.ChangeScript(QuestEditor.TranslateType(triggerType));
        }
        if (GUILayout.Button("Changer GameObject"))
        {
            node.ChangeGameObject(Selection.activeGameObject);
        }

        node.trigger.isActive = EditorGUILayout.Toggle("is Active", node.trigger.isActive);
        node.trigger.enabled  = node.trigger.isActive;

        desactiveSelf = EditorGUILayout.Toggle("Desactive Self", desactiveSelf);

        if (desactiveSelf && !node.trigger.triggersToDesactive.Contains(node.trigger))
        {
            node.trigger.triggersToDesactive.Add(node.trigger);
        }
        else if (!desactiveSelf)
        {
            node.trigger.triggersToDesactive.Remove(node.trigger);
        }

        node.trigger.isInteractable = EditorGUILayout.BeginToggleGroup("is Interactable", node.trigger.isInteractable);
        node.trigger.offsetIcon     = EditorGUILayout.Vector2Field("offsetIcon", node.trigger.offsetIcon);
        EditorGUILayout.EndToggleGroup();

        if (node.trigger.tag == "NPC")
        {
            node.trigger.offsetIcon = node.trigger.GetComponent <NPC>().offsetIcon;
        }

        // Specific node.trigger
        if (node.trigger.GetType() == typeof(QuestTrigger_Dialogue) || node.trigger.GetType() == typeof(StartQuest_Dialogue) || node.trigger.GetType() == typeof(EndQuest_Dialogue))
        {
            DisplayDialogue();
        }
        else if (node.trigger.GetType() == typeof(QuestTrigger_ItemPickup))
        {
            ((QuestTrigger_ItemPickup)node.trigger).isQuestItem = EditorGUILayout.Toggle("Is Quest Item ?", ((QuestTrigger_ItemPickup)node.trigger).isQuestItem);
            node.trigger.GetComponent <ItemOnObject>().item     = (Item)EditorGUILayout.ObjectField("Item to pickup", node.trigger.GetComponent <ItemOnObject>().item, typeof(Item), false);
            node.trigger.offsetIcon = node.trigger.GetComponent <ItemOnObject>().item.offsetIcon;

            /*node.trigger.GetComponent<SpriteRenderer>().sprite = node.trigger.GetComponent<ItemOnObject>().item.icon;
             * if (node.trigger.GetComponent<ItemPickup>() != null)
             *  Object.DestroyImmediate(node.trigger.GetComponent<ItemPickup>());*/
        }
        else if (node.trigger.GetType() == typeof(QuestTrigger_Buy))
        {
            DisplayItemsToBuy();
        }
        else if (node.trigger.GetType() == typeof(QuestTrigger_Craft))
        {
            DisplayItemsToCraft();
        }
        else if (node.trigger.GetType() == typeof(RemoveItemAT))
        {
            ((RemoveItemAT)node.trigger).item = (Item)EditorGUILayout.ObjectField("Item to remove", ((RemoveItemAT)node.trigger).item, typeof(Item), false);
        }
        else if (node.trigger.GetType() == typeof(RewardTriggerAT))
        {
            DisplayRewards();
        }
        else if (node.trigger.GetType() == typeof(InstantiateAT))
        {
            ((InstantiateAT)node.trigger).prefab = (GameObject)EditorGUILayout.ObjectField("Prefab to instantiate", ((InstantiateAT)node.trigger).prefab, typeof(GameObject), false);
        }
    }