Skip to content

Iron-Mountain-Software/dialogue-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dialogue System

Version: 3.0.7

Description:

A system for writing and playing branching dialogue.

Dependencies:

  • com.unity.localization (1.3.2)
  • com.unity.textmeshpro (3.0.6)
  • com.github.siccity.xnode (1.8.0)
  • com.iron-mountain.save-system (1.0.4)
  • com.iron-mountain.conditions (1.5.5)
  • com.iron-mountain.resource-utilities (1.1.2)
  • com.iron-mountain.scriptable-actions (1.0.5)

Key Scripts & Components:

  1. public class Conversation : NodeGraph
    • Actions:
      • public event Action OnIsActiveChanged
      • public event Action OnPlaythroughsChanged
    • Properties:
      • public String ID { get; set; }
      • public String Name { get; }
      • public Boolean PrioritizeOverDefault { get; }
      • public Int32 Priority { get; }
      • public String DefaultInvokingLine { get; set; }
      • public String InvokingLine { get; }
      • public Sprite InvokingIcon { get; }
      • public Boolean AlertInConversationMenu { get; }
      • public ConversationPreviewType PreviewType { get; }
      • public String PreviewText { get; }
      • public Condition Condition { get; set; }
      • public BehaviorWhenQueued BehaviorWhenEnqueued { get; }
      • public Boolean Looping { get; }
      • public Boolean IsActive { get; set; }
      • public Int32 Playthroughs { get; set; }
      • public Boolean GeneralSectionHasErrors { get; }
      • public Boolean PreviewHasErrors { get; }
      • public Boolean ConditionHasErrors { get; }
    • Methods:
      • public void RefreshActiveState()
      • public virtual void OnConversationStarted()
      • public virtual void Reset()
      • public void GenerateNewID()
      • public Boolean HasWarnings()
      • public Boolean HasErrors()
      • public Boolean GraphHasErrors()
      • public void LogGraphErrors()
  2. public enum ConversationPreviewType : Enum
  3. public class ConversationsManager : MonoBehaviour
  4. public class DialogueLine
    • Properties:
      • public ISpeaker Speaker { get; }
      • public String Text { get; }
      • public AudioClip AudioClip { get; }
      • public PortraitType Portrait { get; }
      • public AnimationType Animation { get; }
      • public Sprite Sprite { get; }
  5. public class DialogueTouchInputManager : MonoBehaviour

Actions

  1. public class SetConversationPlaythroughsAction : ScriptableAction
    • Methods:
      • public override void Invoke()
      • public override String ToString()
      • public override Boolean HasErrors()

Animation

  1. public enum AnimationType : Enum
  2. public class DialogueAnimationController : MonoBehaviour
    • Methods:
      • public void PlayAnimation(AnimationType animationType)
  3. public class DialogueAnimations
    • Methods:
      • public AnimationData GetAnimation(AnimationType type)
      • public String GetAnimationName(AnimationType type)
      • public float GetAnimationLength(AnimationType type)

Conditions

  1. public class ConditionConversationPlaythroughs : Condition
    • Properties:
      • public Sprite Depiction { get; }
    • Methods:
      • public override Boolean Evaluate()
      • public override Boolean HasErrors()
      • public override String ToString()

Dialogue Bubbles

  1. public class DialogueBubble : MonoBehaviour
  2. public class DialogueBubbleAnimator : MonoBehaviour
    • Methods:
      • public void ScaleUp()
      • public void ScaleUp(float duration)
      • public void ScaleUpImmediate()
      • public void ScaleDown()
      • public void ScaleDown(float duration)
      • public void ScaleDownImmediate()

Narration

  1. public class DialogueNarration : MonoBehaviour
    • Actions:
      • public event Action OnIsPlayingChanged
      • public event Action OnIsMutedChanged
    • Properties:
      • public ISpeaker Speaker { get; }
      • public AudioSource AudioSource { get; }
      • public Boolean IsPlaying { get; set; }
      • public Boolean IsMuted { get; set; }
    • Methods:
      • public void RefreshRequirements()
  2. public static class DialogueNarrationManager
  3. public abstract class DialogueNarrationRequirement : MonoBehaviour
    • Methods:
      • public abstract Boolean IsSatisfied()

Nodes

  1. public struct Connection
  2. public class DialogueBeginningNode : DialogueNode
    • Properties:
      • public String Name { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
  3. public class DialogueEndingNode : DialogueNode
    • Properties:
      • public String Name { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
  4. public class DialogueLineMainContent
    • Properties:
      • public LocalizedString TextData { get; }
      • public String Text { get; }
      • public AudioClip AudioClip { get; }
  5. public class DialogueLineNode : DialogueNode
    • Properties:
      • public Speaker CustomSpeaker { get; set; }
      • public String SimpleText { get; set; }
      • public String Text { get; }
      • public LocalizedString LocalizedText { get; }
      • public AudioClip AudioClip { get; }
      • public String Name { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
  6. public class DialogueLineWithAlternatesNode : DialogueLineNode
    • Properties:
      • public List AlternateContent { get; }
  7. public abstract class DialogueNode : Node
    • Properties:
      • public String Name { get; }
    • Methods:
      • public abstract DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public virtual void OnNodeEnter(ConversationPlayer conversationUI)
      • public virtual void OnNodeExit(ConversationPlayer conversationUI)
      • public DialogueNode GetNextHaltingNode(ConversationPlayer conversationUI)
      • public Boolean HasWarnings()
      • public Boolean HasErrors()
  8. public class DialoguePassNode : DialogueNode
    • Properties:
      • public String Name { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
  9. public class DialogueRandomSelectorNode : DialogueNode
    • Properties:
      • public String Name { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
  10. public class DialogueResponseBlockNode : DialogueNode
    • Properties:
      • public String Name { get; }
      • public Boolean IsTimed { get; }
      • public float Seconds { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public DialogueNode GetDefaultResponseNode()
      • public List`1 GetResponses(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
      • public override void OnNodeExit(ConversationPlayer conversationUI)
      • public override void OnCreateConnection(NodePort from, NodePort to)

Nodes. Actions

  1. public abstract class DialogueAction : DialogueNode
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
      • public void LogErrors()
  2. public class DialoguePlayPrioritized : DialogueAction
    • Properties:
      • public String Name { get; }
  3. public class LoadScene : DialogueAction
    • Properties:
      • public String Name { get; }
  4. public class ScriptableActionNode : DialogueAction
    • Properties:
      • public String Name { get; }
  5. public class UnityEvent : DialogueAction
    • Properties:
      • public String Name { get; }

Nodes. Conditions

  1. public abstract class Condition : DialogueNode
    • Methods:
      • public void LogErrors()
  2. public abstract class PassFailCondition : Condition
    • Properties:
      • public String Name { get; }
    • Methods:
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
      • public override void OnNodeExit(ConversationPlayer conversationUI)
  3. public class PassFailConditionDialogueQueued : PassFailCondition
    • Properties:
      • public String Name { get; }
  4. public class PassFailConditionFromReference : PassFailCondition
    • Properties:
      • public String Name { get; }

Nodes. Response Generators

  1. public class BasicDialogueResponseNode : DialogueResponseNode
    • Properties:
      • public String Name { get; }
      • public String Text { get; }
      • public LocalizedString LocalizedText { get; }
    • Methods:
      • public override List`1 GetDialogueResponses(ConversationPlayer conversationPlayer)
  2. public abstract class DialogueResponseNode : DialogueNode
    • Properties:
      • public ScriptedResponseStyle ScriptedResponseStyle { get; }
    • Methods:
      • public abstract List`1 GetDialogueResponses(ConversationPlayer conversationPlayer)
      • public override DialogueNode GetNextNode(ConversationPlayer conversationUI)
      • public override void OnNodeEnter(ConversationPlayer conversationUI)
      • public override void OnNodeExit(ConversationPlayer conversationUI)
      • public override void OnCreateConnection(NodePort from, NodePort to)
  3. public class DialogueResponseNodeActiveDialogue : DialogueResponseNode
    • Properties:
      • public String Name { get; }
    • Methods:
      • public override List`1 GetDialogueResponses(ConversationPlayer conversationPlayer)

Responses

  1. public abstract class BasicResponse
    • Properties:
      • public String Text { get; }
      • public Sprite Icon { get; }
      • public Int32 Row { get; }
      • public Int32 Column { get; }
      • public IResponseStyle Style { get; }
    • Methods:
      • public abstract void Execute()
  2. public class BranchConversationResponse : BasicResponse
    • Methods:
      • public override void Execute()
  3. public interface IResponseStyle
    • Properties:
      • public float Height { get; }
      • public Color ButtonColorPrimary { get; }
      • public Color ButtonColorSecondary { get; }
      • public Color TextColor { get; }
  4. public class ResponseStyle
    • Properties:
      • public float Height { get; }
      • public Color ButtonColorPrimary { get; }
      • public Color ButtonColorSecondary { get; }
      • public Color TextColor { get; }
  5. public class ScriptedResponseStyle : ScriptableObject
    • Properties:
      • public float Height { get; }
      • public Color ButtonColorPrimary { get; }
      • public Color ButtonColorSecondary { get; }
      • public Color TextColor { get; }
  6. public class SwapConversationResponse : BasicResponse
    • Methods:
      • public override void Execute()

Selection

  1. public abstract class ConversationSelector : MonoBehaviour
    • Actions:
      • public event Action OnNextConversationChanged
    • Properties:
      • public ISpeaker Speaker { get; set; }
      • public Conversation NextConversation { get; }
    • Methods:
      • public abstract void RefreshNextConversation()
  2. public class DefaultConversationSelector : ConversationSelector
    • Methods:
      • public override void RefreshNextConversation()
  3. public class PrioritizedConversationSelector : ConversationSelector
    • Methods:
      • public override void RefreshNextConversation()

Speakers

  1. public interface ISpeaker
    • Actions:
      • public event Action OnActiveConversationsChanged
    • Properties:
      • public String ID { get; }
      • public String SpeakerName { get; }
      • public List Aliases { get; }
      • public Color Color { get; }
      • public Conversation DefaultConversation { get; }
      • public List Conversations { get; }
      • public SpeakerPortraitCollection Portraits { get; }
      • public SpeakerPortraitCollection FullBodyPortraits { get; }
    • Methods:
      • public virtual Boolean UsesNameOrAlias(String name)
  2. public class PlayConversationOnPointerClick : MonoBehaviour
    • Methods:
      • public virtual void OnPointerClick(PointerEventData eventData)
  3. public class Speaker : ScriptableObject
    • Actions:
      • public event Action OnActiveConversationsChanged
    • Properties:
      • public String ID { get; }
      • public String SpeakerName { get; }
      • public List Aliases { get; }
      • public Color Color { get; }
      • public Conversation DefaultConversation { get; }
      • public List Conversations { get; }
      • public SpeakerPortraitCollection Portraits { get; }
      • public SpeakerPortraitCollection FullBodyPortraits { get; }
    • Methods:
      • public virtual void Reset()
  4. public class SpeakerController : MonoBehaviour
    • Actions:
      • public event Action OnSpeakerChanged
      • public event Action OnEnabled
      • public event Action OnDisabled
    • Properties:
      • public ISpeaker Speaker { get; set; }
      • public ConversationSelector ConversationSelector { get; }
      • public ConversationStarter ConversationStarter { get; }
      • public Conversation NextConversation { get; }
    • Methods:
      • public virtual void StartConversation(Conversation conversation)
      • public virtual void StartConversation()
  5. public static class SpeakerControllersManager
  6. public class SpeakerPortraitCollection
    • Methods:
      • public Sprite GetPortrait(PortraitType type)

Speakers. U I

  1. public class SpeakerControllerPortraitImage : MonoBehaviour

Starters

  1. public abstract class ConversationStarter : MonoBehaviour
    • Methods:
      • public abstract ConversationPlayer StartConversation(ISpeaker speaker, Conversation conversation)
  2. public class ConversationStarterFromPrefab : ConversationStarter
    • Methods:
      • public override ConversationPlayer StartConversation(ISpeaker speaker, Conversation conversation)
  3. public class ConversationStarterFromResource : ConversationStarter
    • Methods:
      • public override ConversationPlayer StartConversation(ISpeaker speaker, Conversation conversation)

U I

  1. public class ConversationPlayer : MonoBehaviour
    • Actions:
      • public event Action OnDefaultSpeakerChanged
      • public event Action OnConversationChanged
      • public event Action OnDialogueNodeChanged
      • public event Action OnDialogueLinePlayed
      • public event Action OnClosed
    • Properties:
      • public Int32 FrameOfLastProgression { get; }
      • public float TimeOfLastProgression { get; }
      • public ISpeaker DefaultSpeaker { get; }
      • public Conversation Conversation { get; }
      • public DialogueNode CurrentNode { get; set; }
      • public DialogueLine CurrentDialogueLine { get; set; }
      • public DialogueResponseBlockNode CurrentDialogueResponseBlockNode { get; }
      • public float TotalSecondsToRespond { get; }
      • public float SecondsRemainingToRespond { get; set; }
    • Methods:
      • public ConversationPlayer Initialize(ISpeaker speaker, Conversation conversation)
      • public void Close()
      • public void HandleDialogueLine(DialogueLine dialogueLine)
      • public void EnterDialogueResponseBlockNode(DialogueResponseBlockNode dialogueResponseBlockNode)
      • public void ExitDialogueResponseBlockNode(DialogueResponseBlockNode dialogueResponseBlockNode)
      • public void PlayNextNode()
      • public void CompleteConversation()
  2. public static class ConversationPlayersManager
  3. public class DialogueLineImage : MonoBehaviour
  4. public class DialogueLineResizer : MonoBehaviour
  5. public class SpeakerBackgroundColor : MonoBehaviour
  6. public class SpeakerNameText : MonoBehaviour
  7. public class SpeakerPortraitImage : MonoBehaviour

U I. Responses

  1. public class DialogueResponseBlock : MonoBehaviour
    • Methods:
      • public void Initialize(DialogueResponseBlockNode dialogueResponseBlock, ConversationPlayer conversationUI)
      • public void Submit(BasicResponse response)
      • public void Destroy()
  2. public class DialogueResponseButton : MonoBehaviour
    • Actions:
      • public event Action OnResponseChanged
    • Properties:
      • public BasicResponse Response { get; }
    • Methods:
      • public virtual void Initialize(DialogueResponseBlock responseBlock, BasicResponse response)
  3. public class DialogueResponseButtonOutline : MonoBehaviour
  4. public class DialogueResponseButtonText : MonoBehaviour

U I. Speech Bubble Tail

  1. public class SpeechBubbleAnchor : MonoBehaviour
    • Properties:
      • public SpeakerController SpeakerController { get; }
  2. public static class SpeechBubbleAnchorsManager
  3. public class SpeechBubbleTail : Graphic

U I. Text Animation

  1. public abstract class DialogueLineTyper : MonoBehaviour
    • Properties:
      • public Boolean IsAnimating { get; }
    • Methods:
      • public abstract void ForceFinishAnimating()
  2. public class DialogueLineTyperTMPro : DialogueLineTyper
    • Methods:
      • public override void ForceFinishAnimating()
  3. public class DialogueLineTyperText : DialogueLineTyper
    • Methods:
      • public override void ForceFinishAnimating()

About

A system for writing and playing branching dialogue.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages