using System.Collections.Generic; using UnityEngine; using Articy.Unity; using Articy.Touhou; using Articy.Unity.Interfaces; using Game; public class DramaFlowPlayer : MonoBehaviour, IArticyFlowPlayerCallbacks { private IList _nextbranchs; private List _choices = new List(); public void OnFlowPlayerPaused(IFlowObject aObject) { var dialog = aObject as DialogueFragment; if (dialog != null) { var character = dialog.Speaker as DramaCharacterTemplete; var pic = character.Template.DramaCharacter.Icon as IAsset; Util.SendDialog(character.Template.DramaCharacter.Name, dialog.Text, character.Template.DramaCharacter.Icon); } } public void OnBranchesUpdated(IList aBranches) { if (aBranches.Count > 0) { _nextbranchs = aBranches; if (_nextbranchs.Count > 1) { _choices.Clear(); foreach (var item in aBranches) { if (!item.IsValid) continue; var target = item.Target as DialogueFragment; _choices.Add(target.MenuText); } Util.SendDialogChoice(_choices); } } else { _nextbranchs = null; Util.EndDrama(); } } public void NextDrama() { if (_nextbranchs != null && _nextbranchs.Count > 0) { GetComponent().Play(_nextbranchs[0]); } else { Util.EndDrama(); } } public void NextDramaChoice(int index) { if (_nextbranchs != null && _nextbranchs.Count > index) { GetComponent().Play(_nextbranchs[index]); } else { Util.EndDrama(); } } }