Browse Source

Added ability to set say dialog per character - usefull if you want to have separate say dialogs for each character

master
FeniXb3 9 years ago
parent
commit
583f656135
  1. 12
      Assets/Fungus/Narrative/Editor/CharacterEditor.cs
  2. 7
      Assets/Fungus/Narrative/Scripts/Character.cs
  3. 9
      Assets/Fungus/Narrative/Scripts/Commands/Say.cs

12
Assets/Fungus/Narrative/Editor/CharacterEditor.cs

@ -16,8 +16,9 @@ namespace Fungus
protected SerializedProperty portraitsProp;
protected SerializedProperty portraitsFaceProp;
protected SerializedProperty descriptionProp;
protected SerializedProperty setSayDialogProp;
protected virtual void OnEnable()
protected virtual void OnEnable()
{
nameTextProp = serializedObject.FindProperty ("nameText");
nameColorProp = serializedObject.FindProperty ("nameColor");
@ -25,7 +26,8 @@ namespace Fungus
portraitsProp = serializedObject.FindProperty ("portraits");
portraitsFaceProp = serializedObject.FindProperty ("portraitsFace");
descriptionProp = serializedObject.FindProperty ("description");
}
setSayDialogProp = serializedObject.FindProperty("setSayDialog");
}
public override void OnInspectorGUI()
{
@ -36,8 +38,10 @@ namespace Fungus
EditorGUILayout.PropertyField(nameTextProp, new GUIContent("Name Text", "Name of the character display in the dialog"));
EditorGUILayout.PropertyField(nameColorProp, new GUIContent("Name Color", "Color of name text display in the dialog"));
EditorGUILayout.PropertyField(soundEffectProp, new GUIContent("Sound Effect", "Sound to play when the character is talking. Overrides the setting in the Dialog."));
EditorGUILayout.PropertyField(descriptionProp, new GUIContent("Description", "Notes about this story character (personality, attibutes, etc.)"));
if (t.portraits != null &&
EditorGUILayout.PropertyField(setSayDialogProp);
EditorGUILayout.PropertyField(descriptionProp, new GUIContent("Description", "Notes about this story character (personality, attibutes, etc.)"));
if (t.portraits != null &&
t.portraits.Count > 0)
{
t.profileSprite = t.portraits[0];

7
Assets/Fungus/Narrative/Scripts/Character.cs

@ -16,9 +16,12 @@ namespace Fungus
public Sprite profileSprite;
public List<Sprite> portraits;
public FacingDirection portraitsFace;
public PortraitState state;
public PortraitState state;
[Tooltip("Sets the active Say dialog with a reference to a Say Dialog object in the scene. All story text will now display using this Say Dialog.")]
public SayDialog setSayDialog;
[FormerlySerializedAs("notes")]
[FormerlySerializedAs("notes")]
[TextArea(5,10)]
public string description;

9
Assets/Fungus/Narrative/Scripts/Commands/Say.cs

@ -57,8 +57,13 @@ namespace Fungus
executionCount++;
// Override the active say dialog if needed
if (setSayDialog != null)
// Override the active say dialog if needed
if (character != null && character.setSayDialog != null)
{
SayDialog.activeSayDialog = character.setSayDialog;
}
if (setSayDialog != null)
{
SayDialog.activeSayDialog = setSayDialog;
}

Loading…
Cancel
Save