public string GetFailedSpeechNode(BasePlayer player, IConversationProvider provider) { ConversationCondition[] array = conditions; foreach (ConversationCondition conversationCondition in array) { if (!conversationCondition.Passes(player, provider)) { return(conversationCondition.failedSpeechNode); } } return(""); }
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); } }
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++; } }
/// <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; }