Browse Source

Added substituting variables in Say, Choose and character name text

master
chrisgregan 10 years ago
parent
commit
4ff3e46493
  1. 5
      Assets/Fungus/Dialog/Editor/SayEditor.cs
  2. 2
      Assets/Fungus/Dialog/Scripts/Commands/AddOption.cs
  3. 9
      Assets/Fungus/Dialog/Scripts/Commands/Choose.cs
  4. 7
      Assets/Fungus/Dialog/Scripts/Commands/Say.cs
  5. 7
      Assets/Fungus/Dialog/Scripts/Dialog.cs

5
Assets/Fungus/Dialog/Editor/SayEditor.cs

@ -24,8 +24,9 @@ namespace Fungus
"\t{wp}, {wp=0.5} Wait on punctuation\n" +
"\t{c} Clear\n" +
"\t{s}, {s=60} Writing speed (chars per sec)\n" +
"\t{x} Exit" +
"\t{m} Broadcast message";
"\t{x} Exit\n" +
"\t{m} Broadcast message\n" +
"\t{$VarName} Substitute variable";
float pixelHeight = EditorStyles.miniLabel.CalcHeight(new GUIContent(tagsText), EditorGUIUtility.currentViewWidth);
EditorGUILayout.SelectableLabel(tagsText, EditorStyles.miniLabel, GUILayout.MinHeight(pixelHeight));

2
Assets/Fungus/Dialog/Scripts/Commands/AddOption.cs

@ -31,7 +31,7 @@ namespace Fungus
}
Choose.Option option = new Choose.Option();
option.optionText = optionText;
option.optionText = optionText; // Note: Variable substitution happens in the Choose command (as late as possible)
option.targetSequence = targetSequence;
option.action = () => {

9
Assets/Fungus/Dialog/Scripts/Commands/Choose.cs

@ -59,8 +59,10 @@ namespace Fungus
}
else
{
FungusScript fungusScript = GetFungusScript();
chooseDialog.ShowDialog(true);
chooseDialog.SetCharacter(character);
chooseDialog.SetCharacter(character, fungusScript);
List<ChooseDialog.Option> dialogOptions = new List<ChooseDialog.Option>();
foreach (Option option in options)
@ -69,6 +71,7 @@ namespace Fungus
// Store these in local variables so they get closed over correctly by the delegate call
dialogOption.text = option.optionText;
dialogOption.text = fungusScript.SubstituteVariables(dialogOption.text);
Sequence onSelectSequence = option.targetSequence;
Action optionAction = option.action;
@ -101,7 +104,9 @@ namespace Fungus
chooseDialog.PlayVoiceOver(voiceOverClip);
}
chooseDialog.Choose(chooseText, dialogOptions, timeoutDuration, delegate {
string subbedText = fungusScript.SubstituteVariables(chooseText);
chooseDialog.Choose(subbedText, dialogOptions, timeoutDuration, delegate {
chooseDialog.ShowDialog(false);
Continue();
});

7
Assets/Fungus/Dialog/Scripts/Commands/Say.cs

@ -54,7 +54,8 @@ namespace Fungus
}
}
sayDialog.SetCharacter(character);
FungusScript fungusScript = GetFungusScript();
sayDialog.SetCharacter(character, fungusScript);
sayDialog.ShowDialog(true);
@ -63,7 +64,9 @@ namespace Fungus
sayDialog.PlayVoiceOver(voiceOverClip);
}
sayDialog.Say(storyText, delegate {
string subbedText = fungusScript.SubstituteVariables(storyText);
sayDialog.Say(subbedText, delegate {
sayDialog.ShowDialog(false);
Continue();
});

7
Assets/Fungus/Dialog/Scripts/Dialog.cs

@ -63,7 +63,7 @@ namespace Fungus
}
}
public virtual void SetCharacter(Character character)
public virtual void SetCharacter(Character character, FungusScript fungusScript = null)
{
if (character == null)
{
@ -84,6 +84,11 @@ namespace Fungus
characterName = character.name;
}
if (fungusScript != null)
{
characterName = fungusScript.SubstituteVariables(characterName);
}
characterTypingSound = character.soundEffect;
SetCharacterName(characterName, character.nameColor);

Loading…
Cancel
Save