int FactionID; //current faction that the user is configuring. public override void OnInspectorGUI() { GameManager Target = (GameManager)target; GUIStyle TitleGUIStyle = new GUIStyle(); TitleGUIStyle.fontSize = 20; TitleGUIStyle.alignment = TextAnchor.MiddleCenter; TitleGUIStyle.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("Factions:", TitleGUIStyle); EditorGUILayout.Space(); if (GUILayout.Button("Add Faction (Faction Count: " + Target.Factions.Count + ")")) { GameManager.FactionInfo NewFaction = new GameManager.FactionInfo(); Target.Factions.Add(NewFaction); FactionID = Target.Factions.Count - 1; } EditorGUILayout.Space(); EditorGUILayout.HelpBox("Make sure to create the maximum amount that this map can handle. When fewer factions play on the map, the rest will be automatically removed.", MessageType.Info); EditorGUILayout.Space(); if (GUILayout.Button(">>")) { ChangeFactionID(1, Target.Factions.Count); } if (GUILayout.Button("<<")) { ChangeFactionID(-1, Target.Factions.Count); } EditorGUILayout.Space(); TitleGUIStyle.fontSize = 15; EditorGUILayout.LabelField("Faction ID: " + FactionID.ToString(), TitleGUIStyle); EditorGUILayout.Space(); Target.Factions [FactionID].Name = EditorGUILayout.TextField("Faction Name: ", Target.Factions [FactionID].Name); Target.Factions[FactionID].TypeInfo = EditorGUILayout.ObjectField("Faction Type:", Target.Factions[FactionID].TypeInfo, typeof(FactionTypeInfo), false) as FactionTypeInfo; Target.Factions [FactionID].FactionColor = EditorGUILayout.ColorField("Faction Color: ", Target.Factions [FactionID].FactionColor); Target.Factions [FactionID].PlayerControl = EditorGUILayout.Toggle("Player Controlled?: ", Target.Factions [FactionID].PlayerControl); EditorGUILayout.HelpBox("Make sure that only one team is controlled the player.", MessageType.Info); Target.Factions [FactionID].MaxPopulation = EditorGUILayout.IntField("Initial Maximum Population: ", Target.Factions [FactionID].MaxPopulation); EditorGUILayout.LabelField("Capital Building:"); Target.Factions [FactionID].CapitalBuilding = EditorGUILayout.ObjectField(Target.Factions [FactionID].CapitalBuilding, typeof(Building), true) as Building; EditorGUILayout.LabelField("Faction Manager:"); Target.Factions [FactionID].FactionMgr = EditorGUILayout.ObjectField(Target.Factions [FactionID].FactionMgr, typeof(FactionManager), true) as FactionManager; EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button("Remove Faction")) { if (Target.Factions.Count > 2) { Target.Factions.RemoveAt(FactionID); ChangeFactionID(-1, Target.Factions.Count); } else { Debug.LogError("The minimum amount of factions to have in one map is: 2!"); } } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); TitleGUIStyle.fontSize = 20; EditorGUILayout.LabelField("General Settings:", TitleGUIStyle); EditorGUILayout.Space(); Target.RandomizePlayerControl = EditorGUILayout.Toggle("Random Player Faction?: ", Target.RandomizePlayerControl); Target.MainMenuScene = EditorGUILayout.TextField("Main Menu Scene: ", Target.MainMenuScene); Target.MapSize = EditorGUILayout.FloatField("Map Size: ", Target.MapSize); Target.PeaceTime = EditorGUILayout.FloatField("Peace Time (seconds): ", Target.PeaceTime); EditorGUILayout.LabelField("General Audio Source:"); Target.GeneralAudioSource = EditorGUILayout.ObjectField(Target.GeneralAudioSource, typeof(AudioSource), true) as AudioSource; EditorUtility.SetDirty(Target); }
public override void OnInspectorGUI() { GameManager Target = (GameManager)target; GUIStyle TitleGUIStyle = new GUIStyle(); TitleGUIStyle.fontSize = 20; TitleGUIStyle.alignment = TextAnchor.MiddleCenter; TitleGUIStyle.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("Factions:", TitleGUIStyle); EditorGUILayout.Space(); TitleGUIStyle.fontSize = 15; EditorGUILayout.LabelField("Faction Types:", TitleGUIStyle); EditorGUILayout.Space(); EditorGUILayout.HelpBox("Each map can have a certain amount of possible faction types. When the player is in the map menu he can choose, depending on the map, a faction type.", MessageType.Info); FactionTypes = serializedObject.FindProperty("FactionDef"); EditorGUILayout.PropertyField(FactionTypes, true); serializedObject.ApplyModifiedProperties(); EditorGUILayout.LabelField("Factions Types(Guilds) Amount: " + Target.FactionDef.Length.ToString()); for (int i = 0; i < Target.FactionDef.Length; i++) { EditorGUILayout.LabelField("Guild " + i + ". Name: " + Target.FactionDef[i].Name + ". Code: " + Target.FactionDef[i].Code); } EditorGUILayout.Space(); EditorGUILayout.LabelField("Factions Amount: " + Target.Factions.Count.ToString()); EditorGUILayout.Space(); if (GUILayout.Button("Add Faction")) { GameManager.FactionInfo NewFaction = new GameManager.FactionInfo(); Target.Factions.Add(NewFaction); FactionID = Target.Factions.Count - 1; } EditorGUILayout.Space(); EditorGUILayout.HelpBox("Make sure to create the maximum amount that this map can handle. When fewer factions play on the map, the rest will be automatically removed.", MessageType.Info); EditorGUILayout.Space(); if (GUILayout.Button(">>")) { ChangeFactionID(1, Target.Factions.Count); } if (GUILayout.Button("<<")) { ChangeFactionID(-1, Target.Factions.Count); } EditorGUILayout.Space(); int DisplayID = FactionID + 1; TitleGUIStyle.fontSize = 15; EditorGUILayout.LabelField("Faction ID: " + DisplayID.ToString(), TitleGUIStyle); EditorGUILayout.HelpBox("factionId 1 is factionid[0]!", MessageType.Info); EditorGUILayout.Space(); Target.Factions [FactionID].Name = EditorGUILayout.TextField("Faction Name: ", Target.Factions [FactionID].Name); Target.Factions [FactionID].Code = EditorGUILayout.TextField("Faction Code: ", Target.Factions [FactionID].Code); Target.Factions [FactionID].FactionColor = EditorGUILayout.ColorField("Faction Color: ", Target.Factions [FactionID].FactionColor); Target.Factions [FactionID].PlayerControl = EditorGUILayout.Toggle("Player Controlled?: ", Target.Factions [FactionID].PlayerControl); EditorGUILayout.HelpBox("Make sure that only one team is controlled the player.", MessageType.Info); Target.Factions [FactionID].MaxPopulation = EditorGUILayout.IntField("Initial Maximum Population: ", Target.Factions [FactionID].MaxPopulation); EditorGUILayout.LabelField("Capital Building:"); Target.Factions [FactionID].CapitalBuilding = EditorGUILayout.ObjectField(Target.Factions [FactionID].CapitalBuilding, typeof(Building), true) as Building; EditorGUILayout.LabelField("Faction Manager:"); Target.Factions [FactionID].FactionMgr = EditorGUILayout.ObjectField(Target.Factions [FactionID].FactionMgr, typeof(FactionManager), true) as FactionManager; EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button("Remove Faction")) { if (Target.Factions.Count > 2) { Target.Factions.RemoveAt(FactionID); } else { Debug.LogError("The minimum amount of factions to have in one map is: 2!"); } } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); TitleGUIStyle.fontSize = 20; EditorGUILayout.LabelField("General Settings:", TitleGUIStyle); EditorGUILayout.Space(); Target.RandomizePlayerControl = EditorGUILayout.Toggle("Random Player Faction?: ", Target.RandomizePlayerControl); Target.MainMenuScene = EditorGUILayout.TextField("Main Menu Scene: ", Target.MainMenuScene); Target.MapSize = EditorGUILayout.FloatField("Map Size: ", Target.MapSize); Target.MvtStoppingDistance = EditorGUILayout.FloatField("Movement Stopping Distance: ", Target.MvtStoppingDistance); Target.PeaceTime = EditorGUILayout.FloatField("Peace Time (seconds): ", Target.PeaceTime); Target.AttackSelectionColor = EditorGUILayout.ColorField("Attack Selectio Color: ", Target.AttackSelectionColor); EditorGUILayout.LabelField("General Audio Source:"); Target.GeneralAudioSource = EditorGUILayout.ObjectField(Target.GeneralAudioSource, typeof(AudioSource), true) as AudioSource; EditorUtility.SetDirty(Target); }