Пример #1
0
 public void Trigger(OnDialogueAction actionToTrigger, string[] actionParameters)
 {
     if (actionToTrigger == action)
     {
         onTrigger.Invoke(actionParameters);
     }
 }
Пример #2
0
        public void SetOnExitAction(OnDialogueAction newExitAction)
        {
            Undo.RecordObject(this, "Modify OnExitAction");
            onExitAction = newExitAction;
            EditorUtility.SetDirty(this);

            SetOnDialogueAction(onExitAction, onExitActionParameter);
        }
        public void Trigger(OnDialogueAction actionToTrigger, string[] actionParameters)
        {
            UnityEvent <string[]> unityEvent;

            if (actionLookup.TryGetValue(actionToTrigger, out unityEvent))
            {
                unityEvent.Invoke(actionParameters);
            }
        }
 public void Trigger(OnDialogueAction actionToTrigger, string[] actionParameters)
 {
     // if(actionToTrigger == action)
     // {
     //     onTrigger.Invoke(actionParameters);
     // }
     if (actionLookup.ContainsKey(actionToTrigger))
     {
         actionLookup[actionToTrigger].Invoke(actionParameters);
     }
 }
Пример #5
0
 // Value controlled by Dialogue Editor GUI
 public void SetHasOnExitAction(bool toggleValue)
 {
     Undo.RecordObject(this, "Toggle Exit Action");
     hasOnExitAction = toggleValue;
     if (!hasOnExitAction)
     {
         onExitAction = OnDialogueAction.None;
         onExitActionParameter.Clear();
     }
     EditorUtility.SetDirty(this);
 }
Пример #6
0
        private void SetOnDialogueAction(OnDialogueAction dialogueAction, List <string> actionParameter)
        {
            int paramLength = actionParameter.Count;

            switch (dialogueAction)
            {
            case OnDialogueAction.GiveQuest:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                }
                return;

            case OnDialogueAction.MoveWindow:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("0");
                }
                break;

            case OnDialogueAction.CompleteObjective:
                if (paramLength != 2)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                    actionParameter.Add("");
                }
                return;

            case OnDialogueAction.GiveItem:
                if (paramLength != 2)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                    actionParameter.Add("0");
                }
                return;

            case OnDialogueAction.LocationAvailable:
                if (paramLength != 2)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                    actionParameter.Add("False");
                }
                return;

            default:
                actionParameter.Clear();
                return;
            }
        }
Пример #7
0
        private void TriggerAction(OnDialogueAction action, string[] actionParameters)
        {
            if (action == OnDialogueAction.None)
            {
                return;
            }

            foreach (DialogueTrigger trigger in GetComponents <DialogueTrigger>())
            {
                trigger.Trigger(action, actionParameters);
            }
        }
Пример #8
0
        private static void BuildDialogueActionsSelect(
            DialogueNode node, OnDialogueAction dialogueAction,
            string[] actionParams, List <string> dialogueActions)
        {
            switch (dialogueAction)
            {
            case OnDialogueAction.None:
                break;

            case OnDialogueAction.ChangeBackground:
                dialogueActions.Add(GeneratePhotoSelect(actionParams[0]));
                break;

            case OnDialogueAction.GiveItem:
                dialogueActions.Add(GenerateItemSelect(actionParams[0]));
                dialogueActions.Add(GenerateItemCountField(actionParams[1], node.name));
                break;

            case OnDialogueAction.GiveMoney:
            case OnDialogueAction.GiveEnergy:
            case OnDialogueAction.ModifyDP:
                dialogueActions.Add(GenerateNumberField(actionParams[0], "Amount:", 47, node.name));
                break;

            case OnDialogueAction.LoadScene:
            case OnDialogueAction.ChangeGirlLocation:
                dialogueActions.Add(GenerateSceneSelect(actionParams, dialogueActions));
                break;

            case OnDialogueAction.PlayAudioSample:
                string groupName = GenerateSampleGroupSelect(actionParams[0]);
                dialogueActions.Add(groupName);
                dialogueActions.Add(GenerateSampleSelect(groupName, actionParams[1]));
                break;

            case OnDialogueAction.PlayMusicTrack:
                dialogueActions.Add(GenerateMusicSelect(actionParams[0]));
                break;

            case OnDialogueAction.PlayVoiceLine:
                string characterName = GenerateCharacterVoiceSelect(actionParams[0]);
                dialogueActions.Add(characterName);
                dialogueActions.Add(GenerateVoiceLineSelect(characterName, actionParams[1]));
                break;

            case OnDialogueAction.ChangeCG:
                dialogueActions.Add(GenerateCGSelect(actionParams[0]));
                break;
            }
        }
        public void SetOnExitAction(OnDialogueAction newExitAction)
        {
            Undo.RecordObject(this, "Modify OnExitAction");
            onExitAction = newExitAction;
            EditorUtility.SetDirty(this);

            int paramLength = onExitActionParameter.Count;

            switch (onExitAction)
            {
            case OnDialogueAction.GiveQuest:
                if (paramLength != 1)
                {
                    onExitActionParameter.Clear();
                    onExitActionParameter.Add("");
                }
                return;

            case OnDialogueAction.MoveWindow:
                if (paramLength != 1)
                {
                    onEnterActionParameter.Clear();
                    onEnterActionParameter.Add("0");
                }
                break;

            case OnDialogueAction.CompleteObjective:
                if (paramLength != 2)
                {
                    onExitActionParameter.Clear();
                    onExitActionParameter.Add("");
                    onExitActionParameter.Add("");
                }
                return;

            case OnDialogueAction.GiveItem:
                if (paramLength != 2)
                {
                    onExitActionParameter.Clear();
                    onExitActionParameter.Add("");
                    onExitActionParameter.Add("0");
                }
                return;

            default:
                onExitActionParameter.Clear();
                return;
            }
        }
        private static void BuildDialogueActionsSelect(
            DialogueNode node, OnDialogueAction dialogueAction,
            string[] actionParams, List <string> dialogueActions)
        {
            switch (dialogueAction)
            {
            case OnDialogueAction.None:
                break;

            case OnDialogueAction.CompleteObjective:
                Quest selectedQuest;
                for (int i = 0; i < actionParams.Length; i++)
                {
                    selectedQuest = GenerateQuestSelect(actionParams[i]);
                    GUILayout.BeginHorizontal();
                    if (selectedQuest != null)
                    {
                        dialogueActions.Add(selectedQuest.name);
                        string[] questObjectives = selectedQuest.GetObjectives().ToArray();
                        int      actionIndex     = node.GetExitActionIndex();
                        if (actionIndex >= questObjectives.Length)
                        {
                            Debug.Log("Action index too high");
                            actionIndex = 0;
                        }

                        EditorGUILayout.LabelField("Objective:", GUILayout.Width(58));
                        actionIndex = EditorGUILayout.Popup(actionIndex, questObjectives);
                        dialogueActions.Add(questObjectives[actionIndex]);
                        node.SetExitActionIndex(actionIndex);
                    }
                    else
                    {
                        dialogueActions.Add("");
                        EditorGUILayout.LabelField("Objective:", GUILayout.Width(58));
                        dialogueActions.Add(EditorGUILayout.TextField(actionParams[1]));
                    }
                    GUILayout.EndHorizontal();
                    i++;
                }
                break;

            case OnDialogueAction.GiveQuest:
                selectedQuest = GenerateQuestSelect(actionParams[0]);
                if (selectedQuest != null)
                {
                    dialogueActions.Add(selectedQuest.name);
                }
                else
                {
                    dialogueActions.Add(actionParams[0]);
                }
                break;

            case OnDialogueAction.GiveItem:
                InventoryItem item = InventoryItem.GetFromID(actionParams[0]);
                item = GenerateItemSelect(item);
                if (item != null)
                {
                    dialogueActions.Add(item.GetItemID());
                }
                else
                {
                    dialogueActions.Add("");
                }
                dialogueActions.Add(GenerateItemCountField(actionParams[1]));
                break;

            case OnDialogueAction.MoveWindow:
                dialogueActions.Add(GenerateNumberField(actionParams[0], "Y offset:", 50));
                break;
            }
        }
Пример #11
0
        private void SetOnDialogueAction(OnDialogueAction dialogueAction, List <string> actionParameter)
        {
            int paramLength = actionParameter.Count;

            switch (dialogueAction)
            {
            case OnDialogueAction.ChangeBackground:
            case OnDialogueAction.ChangeCG:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                }
                return;

            case OnDialogueAction.GiveItem:
                if (paramLength != 2)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                    actionParameter.Add("0");
                }
                return;

            case OnDialogueAction.GiveMoney:
            case OnDialogueAction.GiveEnergy:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("0");
                }
                return;

            case OnDialogueAction.LoadScene:
            case OnDialogueAction.ChangeGirlLocation:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                }
                return;

            case OnDialogueAction.PlayAudioSample:
            case OnDialogueAction.PlayVoiceLine:
                if (paramLength != 2)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                    actionParameter.Add("");
                }
                break;

            case OnDialogueAction.PlayMusicTrack:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                }
                break;

            case OnDialogueAction.ModifyDP:
                if (paramLength != 1)
                {
                    actionParameter.Clear();
                    actionParameter.Add("");
                }

                return;

            default:
                actionParameter.Clear();
                return;
            }
        }