Example #1
0
    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);
    }
Example #2
0
    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);
    }