/// <summary> /// setup the collection based on a collection asset /// </summary> public void SetupCollection(GambitCollectionAsset collectionAsset) { IsCollectionSetup = true; if (collectionAsset != null) { Gambits.Clear(); foreach (var gambitAsset in collectionAsset.Gambits) { Gambits.Add(gambitAsset.CreateInstance()); Gambits [Gambits.Count - 1].Owner = this.gameObject; Gambits [Gambits.Count - 1].Initialize(); foreach (var gambitCondition in gambitAsset.Conditions) { Gambits [Gambits.Count - 1].Conditions.Add(gambitCondition.CreateInstance()); Gambits [Gambits.Count - 1].Conditions [Gambits [Gambits.Count - 1].Conditions.Count - 1].Owner = this.gameObject; } } } }
protected override void DisplayAssetGUI(EntityAsset asset) { GUILayout.BeginVertical("Box"); GUILayout.BeginHorizontal(); //asset.Icon = (Sprite)EditorGUILayout.ObjectField(asset.Icon, typeof(Sprite), false, // GUILayout.Width(72), GUILayout.Height(72)); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Name", GUILayout.Width(100)); asset.Name = EditorGUILayout.TextField(asset.Name); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Gambit Collection ", GUILayout.Width(100)); GambitCollectionAsset gambitCollectionAsset = GambitCollectionDatabase.Instance.Get(asset.GambitCollectionId); if (GUILayout.Button(gambitCollectionAsset == null?"Assign Gambit Collection":gambitCollectionAsset.Name)) { XmlDatabaseEditorUtility.ShowContext(GambitCollectionDatabase.Instance, (gambitColAsset) => { if (EditorUtility.DisplayDialog("Change gambit collection", "Are you sure you want to change the associated gambit collection? Changing gambit collection might result in unsynchronized skill collection", "Change", "Cancel")) { asset.GambitCollectionId = gambitColAsset.Id; } }); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Skill Collection ", GUILayout.Width(100)); SkillCollectionAsset skillCollectionAsset = SkillCollectionDatabase.Instance.Get(asset.SkillCollectionId); if (GUILayout.Button(skillCollectionAsset == null?"Assign Skill Collection":skillCollectionAsset.Name)) { XmlDatabaseEditorUtility.ShowContext(SkillCollectionDatabase.Instance, (skillColAsset) => { if (EditorUtility.DisplayDialog("Change skill collection", "Are you sure you want to change the associated skill collection? Changing skill collection might result in loss of skill data in gambits.", "Change", "Cancel")) { asset.SkillCollectionId = skillColAsset.Id; } }); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Description", GUILayout.Width(100)); asset.Description = EditorGUILayout.TextField(asset.Description); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Tag", GUILayout.Width(100)); asset.Tag = (int)(PerceptionTags)(EditorGUILayout.EnumFlagsField((PerceptionTags)asset.Tag)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Alert Mask", GUILayout.Width(100)); asset.AlertMask = (int)(PerceptionTags)(EditorGUILayout.EnumFlagsField((PerceptionTags)asset.AlertMask)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Vision", GUILayout.Width(100)); asset.Vision = EditorGUILayout.FloatField(asset.Vision); GUILayout.EndHorizontal(); GUILayout.EndVertical(); }