public void Fire()
        {
            if (DialogueDebug.logInfo)
            {
                Debug.Log(string.Format("{0}: Setting quest '{1}' state to '{2}'", new System.Object[] { DialogueDebug.Prefix, questName, QuestLog.StateToString(questState) }));
            }

            // Quest states:
            if (!string.IsNullOrEmpty(questName))
            {
                if (setQuestState)
                {
                    QuestLog.SetQuestState(questName, questState);
                }
                if (setQuestEntryState)
                {
                    QuestLog.SetQuestEntryState(questName, questEntryNumber, questEntryState);
                }
            }

            // Lua:
            if (!string.IsNullOrEmpty(luaCode))
            {
                Lua.Run(luaCode, DialogueDebug.logInfo);
            }

            // Alert:
            if (!string.IsNullOrEmpty(alertMessage))
            {
                string localizedAlertMessage = alertMessage;
                if ((localizedTextTable != null) && localizedTextTable.ContainsField(alertMessage))
                {
                    localizedAlertMessage = localizedTextTable[alertMessage];
                }
                DialogueManager.ShowAlert(localizedAlertMessage);
            }

            // Send Messages:
            foreach (var sma in sendMessages)
            {
                if (sma.gameObject != null && !string.IsNullOrEmpty(sma.message))
                {
                    sma.gameObject.SendMessage(sma.message, sma.parameter, SendMessageOptions.DontRequireReceiver);
                }
            }

            DialogueManager.SendUpdateTracker();

            // Once?
            DestroyIfOnce();
        }
        // NOTE: This function is called at runtime and edit time.  Keep that in mind when setting the values of properties.
        public override void ProcessFrame(Playable playable, FrameData info, object playerData)
        {
            int inputCount = playable.GetInputCount();

            for (int i = 0; i < inputCount; i++)
            {
                float inputWeight = playable.GetInputWeight(i);
                if (inputWeight > 0.001f && !played.Contains(i))
                {
                    played.Add(i);
                    ScriptPlayable <SetQuestStateBehaviour> inputPlayable = (ScriptPlayable <SetQuestStateBehaviour>)playable.GetInput(i);
                    SetQuestStateBehaviour input = inputPlayable.GetBehaviour();
                    if (Application.isPlaying)
                    {
                        if (input.setQuestState)
                        {
                            QuestLog.SetQuestState(input.quest, input.questState);
                        }
                        if (input.setQuestEntryState)
                        {
                            QuestLog.SetQuestEntryState(input.quest, input.questEntryNumber, input.questEntryState);
                        }
                    }
                    else
                    {
                        var message = string.Empty;
                        if (input.setQuestState)
                        {
                            message = "Set quest " + input.quest + " to " + input.questState;
                            if (input.setQuestEntryState)
                            {
                                message += " and entry #" + input.questEntryNumber + " to " + input.questEntryState;
                            }
                        }
                        else if (input.setQuestEntryState)
                        {
                            message = "Set quest " + input.quest + " entry #" + input.questEntryNumber + " to " + input.questEntryState;
                        }
                        if (!string.IsNullOrEmpty(message))
                        {
                            PreviewUI.ShowMessage(message, 2, -2);
                        }
                    }
                }
                else if (inputWeight <= 0.001f && played.Contains(i))
                {
                    played.Remove(i);
                }
            }
        }
示例#3
0
 protected virtual void DoQuestAction()
 {
     if (string.IsNullOrEmpty(questName))
     {
         return;
     }
     if (setQuestState)
     {
         QuestLog.SetQuestState(questName, questState);
     }
     if (setQuestEntryState)
     {
         QuestLog.SetQuestEntryState(questName, questEntryNumber, questEntryState);
     }
 }
 void RpcSetQuestEntryState(string questName, int entryNumber, string state)
 {
     QuestLog.SetQuestEntryState(questName, entryNumber, state);
 }