Subversion Repository Public Repository

Nextrek

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
 *
 *	Adventure Creator
 *	by Chris Burton, 2013
 *	
 *	"ActionDialogOption.cs"
 * 
 *	This action changes the visibility of dialogue options.
 * 
*/

using UnityEngine;
using System.Collections;
using AC;

#if UNITY_EDITOR
using UnityEditor;
#endif

[System.Serializable]
public class ActionDialogOption : Action
{
	
	public enum SwitchType { On, Off, OnForever, OffForever };
	public SwitchType switchType;
	public int optionNumber;
	
	public Conversation linkedConversation;
	
	
	public ActionDialogOption ()
	{
		this.isDisplayed = true;
		title = "Dialogue: Toggle option";
	}
	
	override public float Run ()
	{
		bool setOption = false;
		bool clampOption = false;
		
		if (switchType == SwitchType.On || switchType == SwitchType.OnForever)
		{
			setOption = true;
		}
		
		if (switchType == SwitchType.OffForever || switchType == SwitchType.OnForever)
		{
			clampOption = true;
		}
		
		if (linkedConversation)
		{
			linkedConversation.SetOption (optionNumber, setOption, clampOption);
		}
		
		return 0f;
	}
	
	
	#if UNITY_EDITOR
	
	public override void ShowGUI ()
	{
		linkedConversation = (Conversation) EditorGUILayout.ObjectField ("Conversation:", linkedConversation, typeof (Conversation), true);
		
		Conversation conv = linkedConversation;
		if (conv)
		{
			ButtonDialog[] optionsArray = conv.options.ToArray ();
			string[] options = new string[optionsArray.Length];
			
			for (int j=0; j<options.Length; j++)
			{
				options[j] = j.ToString () + ": ";
				if (optionsArray[j].label == "")
				{
					options[j] += "(Untitled option)";
				}
				else
				{
					options[j] += optionsArray[j].label;
				}
			}
			
			if (optionNumber > options.Length-1)
			{
				// Cap max if some were removed
				optionNumber = options.Length-1;
			}
			
			optionNumber = EditorGUILayout.Popup (optionNumber, options);
		}
		
		switchType = (SwitchType) EditorGUILayout.EnumPopup ("Set to:", switchType);
		
		AfterRunningOption ();
	}
	
	#endif
	
}

Commits for Nextrek/SpaceCrew/SpaceCrew/Assets/AdventureCreator/Scripts/Actions/ActionDialogOption.cs

Diff revisions: vs.
Revision Author Commited Message
83 FMMortaroli picture FMMortaroli Tue 13 May, 2014 11:32:51 +0000