Skip to content

Commit

Permalink
Compatibility fixes and retrigger bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
pxntilde committed May 7, 2019
1 parent 481016e commit 663fa41
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 42 deletions.
10 changes: 5 additions & 5 deletions Assets/Scenes/Andrew.unity
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Dialogue: {fileID: 11400000, guid: 5adfc4c6a2d6fa84db2b309f6ff3678f, type: 2}
Retriggerable: 0
ResetOnRetrigger: 0
Retriggerable: 99
ResetOnRetrigger: 1
--- !u!65 &100610658
BoxCollider:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -339,8 +339,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Dialogue: {fileID: 11400000, guid: 4dce91eb47a21f34c81e37b8b28a4afd, type: 2}
Retriggerable: 0
ResetOnRetrigger: 0
Retriggerable: 99
ResetOnRetrigger: 1
--- !u!65 &519283636
BoxCollider:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -616,7 +616,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Dialogue: {fileID: 11400000, guid: 546944b6fd662d04dbde9088a1fd4a15, type: 2}
Retriggerable: 0
Retriggerable: 99
ResetOnRetrigger: 0
--- !u!65 &1182470464
BoxCollider:
Expand Down
9 changes: 9 additions & 0 deletions Assets/Scripts/Dialogue/Dialogue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ public class Dialogue : ScriptableObject, IEnumerable<MessagePair>
}
}

/// <summary>
/// Resets and returns the persistent enumerator
/// </summary>
public IEnumerator<MessagePair> ResetEnumerator()
{
_Enumerator = Messages.GetEnumerator();
return _Enumerator;
}

public IEnumerator<MessagePair> GetEnumerator()
{
return ((IEnumerable<MessagePair>)Messages).GetEnumerator();
Expand Down
8 changes: 4 additions & 4 deletions Assets/Scripts/Dialogue/DialogueHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@ public static class CharacterLookup
[System.Serializable]
public class MessagePair
{
public Character Character { get => _character; }
public Character DisplayCharacter { get => Character; }
[Tooltip("The character that is speaking this message"), SerializeField]
private Character _character = Character.None;
private Character Character = Character.None;

public string Message { get => message; }
public string DisplayMessage { get => Message; }
[Tooltip("Message text"), TextArea, SerializeField]
private string message;
private string Message;

public float AutoAdvance { get => _AutoAdvance; }
[Tooltip("How long until this message advances"), SerializeField]
Expand Down
10 changes: 4 additions & 6 deletions Assets/Scripts/Dialogue/DialogueManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,15 @@ void Update()
/// </summary>
/// <param name="Dialogue">Dialogue to add</param>
/// <returns>True if dialogue was added</returns>
public bool AddToQueue(Dialogue Dialogue)
public bool AddToQueue(Dialogue Dialogue, bool ResetDialogue = true)
{
var Added = false;
if (DialogueQueue.Contains(Dialogue) == false)
{
Dialogue.ResetEnumerator();
DialogueQueue.Add(Dialogue);
DialogueQueue = DialogueQueue.OrderByDescending(d => d.Priority).ToList();
Debug.Log($"Added {Dialogue} to the queue, total dialogues is {DialogueQueue.Count}");
Added = true;
if (DialogueCoroutine is null)
{
Expand Down Expand Up @@ -89,7 +91,6 @@ protected IEnumerator RunThroughDialogue()
}
else
{
Debug.Assert(CurrentDialogue != null);
if (CurrentDialogue.Interruptible && CurrentDialogue != DialogueQueue.First())
{
if (CurrentDialogue.ResumeAfterInterrupt == false)
Expand All @@ -105,26 +106,23 @@ protected IEnumerator RunThroughDialogue()
if (CurrentDialogue.Enumerator.MoveNext())
{
CurrentMessage = CurrentDialogue.Enumerator.Current;
Debug.Log($"Enumerator moved to {CurrentMessage}");
}
else
{
Debug.Log("Enumerator couldn't move to next");
DialogueQueue.Remove(CurrentDialogue);
CurrentDialogue = null;
continue;
}
#endregion

Portrait.sprite = CurrentMessage.CharacterSprite;
MessageBox.text = CurrentMessage.Message;
MessageBox.text = CurrentMessage.DisplayMessage;

EndTime = Time.time + CurrentMessage.AutoAdvance;

yield return new WaitForSeconds(.5f);
yield return new WaitUntil(() => Time.time >= EndTime || AdvanceScript);

Debug.Log("Advancing dialogue");
} while (DialogueQueue.Count > 0);

Destroy(DialogueCanvas);
Expand Down
6 changes: 1 addition & 5 deletions Assets/Scripts/Dialogue/DialogueTrigger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,7 @@ void OnTriggerEnter(Collider other)
{
if (other.tag == "Player" && RemainingTriggers > 0)
{
var Added = other.GetComponent<DialogueManager>()?.AddToQueue(Dialogue) == true;
if (ResetOnRetrigger)
{
Dialogue.Enumerator.Reset();
}
var Added = other.GetComponent<DialogueManager>()?.AddToQueue(Dialogue, ResetOnRetrigger) == true;
if (Added)
{
--RemainingTriggers;
Expand Down
8 changes: 4 additions & 4 deletions Assets/Scripts/Dialogue/Interruptable.asset
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ MonoBehaviour:
m_Name: Interruptable
m_EditorClassIdentifier:
Messages:
- _character: 5
message: First message
- Character: 1
Message: First message waiting for input
_AutoAdvance: Infinity
- _character: 5
message: Second message
- Character: 1
Message: Second message waiting for input
_AutoAdvance: Infinity
_Priority: 1
_Interruptible: 1
Expand Down
8 changes: 4 additions & 4 deletions Assets/Scripts/Dialogue/InterruptableNoResume.asset
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ MonoBehaviour:
m_Name: InterruptableNoResume
m_EditorClassIdentifier:
Messages:
- _character: 3
message: First message
- Character: 4
Message: First message waiting for input
_AutoAdvance: Infinity
- _character: 3
message: This should not play!
- Character: 0
Message: This should not display after interruption
_AutoAdvance: 10
_Priority: 1
_Interruptible: 1
Expand Down
28 changes: 14 additions & 14 deletions Assets/Scripts/Dialogue/TestDialogue.asset
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,26 @@ MonoBehaviour:
m_Name: TestDialogue
m_EditorClassIdentifier:
Messages:
- _character: 1
message: SUCK
- Character: 1
Message: SUCK
_AutoAdvance: 3
- _character: 2
message: m'dick?
- Character: 2
Message: m'dick?
_AutoAdvance: 1
- _character: 3
message: m'dick?
- Character: 3
Message: m'dick?
_AutoAdvance: 1
- _character: 4
message: m'dick?
- Character: 4
Message: m'dick?
_AutoAdvance: 1
- _character: 5
message: '...'
- Character: 5
Message: '...'
_AutoAdvance: 1
- _character: 5
message: '... ...'
- Character: 5
Message: '....'
_AutoAdvance: 2
- _character: 5
message: m'dick?
- Character: 5
Message: m'dick?
_AutoAdvance: 4
_Priority: 2
_Interruptible: 0
Expand Down

0 comments on commit 663fa41

Please sign in to comment.