示例#1
0
 public string GetFailedSpeechNode(BasePlayer player, IConversationProvider provider)
 {
     ConversationCondition[] array = conditions;
     foreach (ConversationCondition conversationCondition in array)
     {
         if (!conversationCondition.Passes(player, provider))
         {
             return(conversationCondition.failedSpeechNode);
         }
     }
     return("");
 }
示例#2
0
 public bool PassesConditions(BasePlayer player, IConversationProvider provider)
 {
     ConversationCondition[] array = conditions;
     for (int i = 0; i < array.Length; i++)
     {
         if (!array[i].Passes(player, provider))
         {
             return(false);
         }
     }
     return(true);
 }
        public override void OnInspectorGUI()
        {
            if (Application.isPlaying)
            {
                return;
            }

            IConversationProvider myTarget = this.target as IConversationProvider;

            if (myTarget == null || ConversationManager.Instance.Database == null ||
                ConversationManager.Instance.Database.Conversations == null)
            {
                return;
            }

            SerializedProperty script = serializedObject.FindProperty("m_Script");

            EditorGUILayout.PropertyField(script);

            SerializedProperty onConversationStart = serializedObject.FindProperty("OnConversationStart");

            EditorGUILayout.PropertyField(onConversationStart);

            SerializedProperty onConversationStop = serializedObject.FindProperty("OnConversationStop");

            EditorGUILayout.PropertyField(onConversationStop);

            List <string> guiConversations = new List <string>();

            foreach (var conversation in ConversationManager.Instance.Database.Conversations)
            {
                guiConversations.Add(conversation.Name);
            }

            mIndex = EditorGUILayout.Popup("Conversation", mIndex, guiConversations.ToArray(), new GUILayoutOption[0]);

            myTarget.SetConversationName(guiConversations[mIndex]);

            serializedObject.ApplyModifiedProperties();


            if (GUI.changed)
            {
                EditorUtility.SetDirty(this.target);
            }
        }
示例#4
0
        public bool Passes(BasePlayer player, IConversationProvider provider)
        {
            bool flag = false;

            if (conditionType == ConditionType.HASSCRAP)
            {
                flag = player.inventory.GetAmount(ItemManager.FindItemDefinition("scrap").itemid) >= conditionAmount;
            }
            else if (conditionType == ConditionType.HASHEALTH)
            {
                flag = player.health >= (float)conditionAmount;
            }
            else if (conditionType == ConditionType.PROVIDERBUSY)
            {
                flag = provider.ProviderBusy();
            }
            if (!inverse)
            {
                return(flag);
            }
            return(!flag);
        }
        public void OnEnable()
        {
            IConversationProvider myTarget = this.target as IConversationProvider;

            if (myTarget == null || ConversationManager.Instance.Database == null ||
                ConversationManager.Instance.Database.Conversations == null)
            {
                return;
            }

            int i = 0;

            foreach (var conversation in ConversationManager.Instance.Database.Conversations)
            {
                if (conversation.Name == myTarget.GetConversationName())
                {
                    mIndex = i;
                    break;
                }
                i++;
            }
        }
示例#6
0
 /// <summary>
 /// Creates a stack profile instance.
 /// </summary>
 /// <param name="transportConnectionProvider">The transport connection provider.</param>
 /// <param name="conversationProvider">The conversation provider.</param>
 /// <param name="encodingProvider">The encoding provider.</param>
 public StackProfile(ITransportConnectionProvider transportConnectionProvider, IConversationProvider conversationProvider, IEncodingProvider encodingProvider)
 {
     TransportConnectionProvider = transportConnectionProvider;
     ConversationProvider        = conversationProvider;
     EncodingProvider            = encodingProvider;
 }