public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); optionsScrollPos = GUILayout.BeginScrollView(optionsScrollPos); RPGMakerGUI.Title("Stat Options"); RPGMakerGUI.SubTitle("Exp Options"); RPGMakerGUI.Toggle("Allow Exp To Overflow", ref ASVT.AllowExpToOverflow); RPGMakerGUI.SubTitle("Stat Options"); ASVT.RegenInterval = RPGMakerGUI.FloatField("RegenInterval:", ASVT.RegenInterval); RPGMakerGUI.SubTitle("Titles"); ASVT.AttributeNameTitle = RPGMakerGUI.TextField("Attribute Title:", ASVT.AttributeNameTitle); ASVT.StatisticNameTitle = RPGMakerGUI.TextField("Statistic Title:", ASVT.StatisticNameTitle); ASVT.VitalNameTitle = RPGMakerGUI.TextField("Vital Title:", ASVT.VitalNameTitle); ASVT.TraitNameTitle = RPGMakerGUI.TextField("Trait Title:", ASVT.TraitNameTitle); RPGMakerGUI.SubTitle("Movement"); ASVT.JumpHeight = RPGMakerGUI.FloatField("Player Jump Height:", ASVT.JumpHeight); ASVT.BaseMovementSpeed = RPGMakerGUI.FloatField("Base Player Movement Speed:", ASVT.BaseMovementSpeed); ASVT.BaseNpcMovementSpeed = RPGMakerGUI.FloatField("Base NPC Movement Speed:", ASVT.BaseNpcMovementSpeed); if (RPGMakerGUI.Toggle("Use Stat as Movement Multiplier?", ref ASVT.UseStatForMovementSpeed)) { RPGMakerGUI.PopupID <Rm_StatisticDefintion>("Statistic:", ref ASVT.StatForMovementID, 1); RPGMakerGUI.Help("Move Speed = BaseMoveSpeed * Stat:", 1); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void Quests(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(AllSingleQuestsList, ref selectedQuest, Rm_ListAreaType.Quests, false, false); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); questScrollPos = GUILayout.BeginScrollView(questScrollPos); RPGMakerGUI.Title("Quests"); if (selectedQuest != null) { QuestDetails(selectedQuest, false); } else { EditorGUILayout.HelpBox("Add or select a new field to customise quests.", MessageType.Info); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void Attributes(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.ASVT.AttributesDefinitions; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 2, 2)); RPGMakerGUI.ListArea(list, ref selectedAttrInfo, Rm_ListAreaType.Attributes, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Attributes"); if (selectedAttrInfo != null) { GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); selectedAttrInfo.Name = RPGMakerGUI.TextField("Name: ", selectedAttrInfo.Name); selectedAttrInfo.Description = RPGMakerGUI.TextField("Description: ", selectedAttrInfo.Description); selectedAttrInfo.DefaultValue = RPGMakerGUI.IntField("Default Value: ", selectedAttrInfo.DefaultValue); selectedAttrInfo.Color = (Rm_UnityColors)RPGMakerGUI.EnumPopup("Color: ", selectedAttrInfo.Color); if (RPGMakerGUI.Toggle("Has Max Value?", ref selectedAttrInfo.HasMaxValue)) { selectedAttrInfo.MaxValue = RPGMakerGUI.IntField("Max Value: ", selectedAttrInfo.MaxValue, 1); } selectedAttrInfo.Image = RPGMakerGUI.ImageSelector("Image:", selectedAttrInfo.Image, ref selectedAttrInfo.ImagePath, true); GUILayout.EndVertical(); } else { EditorGUILayout.HelpBox("Add or select a new field to customise attributes.", MessageType.Info); } GUILayout.EndArea(); }
public static void Enemies(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.Repositories.Enemies.AllEnemies; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedCharInfo, Rm_ListAreaType.Enemies, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Enemies"); if (selectedCharInfo != null) { RPGMakerGUI.BeginScrollView(); if (RPGMakerGUI.Foldout(ref mainInfoFoldout, "Main Info")) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.MaxWidth(85)); selectedCharInfo.Image = RPGMakerGUI.ImageSelector("", selectedCharInfo.Image, ref selectedCharInfo.ImagePath); GUILayout.EndVertical(); GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); selectedCharInfo.ID = RPGMakerGUI.TextField("ID: ", selectedCharInfo.ID); selectedCharInfo.Name = RPGMakerGUI.TextField("Name: ", selectedCharInfo.Name); GUILayout.BeginHorizontal(); gameObject = RPGMakerGUI.PrefabSelector("Enemy Prefab:", gameObject, ref selectedCharInfo.CharPrefabPath); gameObject = RPGMakerGUI.PrefabGeneratorButton(Rmh_PrefabType.Enemy, gameObject, ref selectedCharInfo.CharPrefabPath, null, selectedCharInfo.ID); GUILayout.EndHorizontal(); Rme_Combatants.CombatantDetails(selectedCharInfo); GUILayout.Space(5); GUILayout.EndVertical(); GUILayout.EndHorizontal(); } if (mainInfoFoldout) { RPGMakerGUI.EndFoldout(); } Rme_Combatants.Projectile(selectedCharInfo); Rme_Combatants.Animations(selectedCharInfo); Rme_Combatants.CombatStats(selectedCharInfo); Rme_Combatants.Loot(selectedCharInfo); RPGMakerGUI.EndScrollView(); } else { EditorGUILayout.HelpBox("Add or select a new field to customise Enemy Characters.", MessageType.Info); } GUILayout.EndArea(); }
public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); RPGMakerGUI.Title("Interactables - Options"); Interact.InteractDistance = RPGMakerGUI.FloatField("Interact Distance: ", Interact.InteractDistance); RPGMakerGUI.Toggle("Add Harvested Items to Inventory?", ref Interact.AddHarvestItemsToInventory); GUILayout.EndArea(); }
public static void CustomVariables(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.DefinedVariables.Vars; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedInfo, Rm_ListAreaType.CustomVaraibles, false, false); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Defined Variables"); if (selectedInfo != null) { selectedInfo.Name = RPGMakerGUI.TextField("Name: ", selectedInfo.Name); var prevSelIndex = selectedInfo.VariableType; selectedInfo.VariableType = (Rmh_CustomVariableType)RPGMakerGUI.EnumPopup("Type:", selectedInfo.VariableType); if (prevSelIndex != selectedInfo.VariableType) { GUI.FocusControl(""); } switch (selectedInfo.VariableType) { case Rmh_CustomVariableType.Float: selectedInfo.FloatValue = RPGMakerGUI.FloatField("Default Value:", selectedInfo.FloatValue); break; case Rmh_CustomVariableType.Int: selectedInfo.IntValue = RPGMakerGUI.IntField("Default Value:", selectedInfo.IntValue); break; case Rmh_CustomVariableType.String: selectedInfo.StringValue = RPGMakerGUI.TextField("Default Value:", selectedInfo.StringValue); break; case Rmh_CustomVariableType.Bool: selectedBooleanResult = selectedInfo.BoolValue ? 0 : 1; selectedBooleanResult = RPGMakerGUI.Popup("Default Value:", selectedBooleanResult, new[] { "True", "False" }); selectedInfo.BoolValue = selectedBooleanResult == 0; break; default: throw new ArgumentOutOfRangeException(); } } else { RPGMakerGUI.Title("Add or select a new field to customise credits."); } GUILayout.EndArea(); }
private void OnGUIx() { if (Links.Count + Warnings.Length + Info.Length < 1) { Close(); } GUI.skin = null; GUI.skin = Resources.Load("RPGMakerAssets/EditorSkinRPGMaker") as GUISkin; GUILayout.BeginVertical("backgroundBox"); RPGMakerGUI.Title("Important Update Info"); foreach (var text in Links) { GUILayout.BeginVertical(); EditorGUILayout.HelpBox(text.Key, MessageType.Error); if (GUILayout.Button("Click Here For More Information", "genericButton", GUILayout.Height(20))) { Process.Start(text.Value); } GUILayout.EndVertical(); GUILayout.Space(5); } GUILayout.Space(10); foreach (var text in Warnings) { EditorGUILayout.HelpBox(text, MessageType.Warning); GUILayout.Space(5); } foreach (var text in Info) { EditorGUILayout.HelpBox(text, MessageType.Info); GUILayout.Space(5); } GUILayout.FlexibleSpace(); if (EditorApplication.timeSinceStartup >= _timeToEnable) { if (GUILayout.Button("Close", "genericButton", GUILayout.Height(20))) { Close(); } } else { GUI.enabled = false; GUILayout.Button("Can close in " + (_timeToEnable - EditorApplication.timeSinceStartup).ToString("F2") + " seconds", "genericButton", GUILayout.Height(20)); GUI.enabled = false; } GUILayout.EndVertical(); }
public static void QuestChains(Rect fullArea, Rect leftArea, Rect mainArea) { leftAreaB = new Rect(leftArea.xMax + 5, leftArea.y, leftArea.width, leftArea.height); mainAreaAlt = new Rect(leftAreaB.xMax + 5, leftArea.y, mainArea.width - (leftAreaB.width + 5), leftArea.height); GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(leftAreaB, "", "backgroundBox"); GUI.Box(mainAreaAlt, "", "backgroundBox"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); var selected = selectedQuestChain; RPGMakerGUI.ListArea(questChainList, ref selectedQuestChain, Rm_ListAreaType.QuestChains, false, false); if (selected != selectedQuestChain) { booleanArrayForToggles = new bool[999]; } GUILayout.EndArea(); GUILayout.BeginArea(leftAreaB); if (selectedQuestChain != null) { var rect = RPGMakerGUI.ListArea(selectedQuestChain.QuestsInChain, ref selectedQuestChainQuest, Rm_ListAreaType.Quests, false, false, Rme_ListButtonsToShow.AllExceptHelp, true, selectedQuestChain.ID); } GUILayout.EndArea(); GUILayout.BeginArea(mainAreaAlt); questChainScrollPos = GUILayout.BeginScrollView(questChainScrollPos); RPGMakerGUI.Title("Quest Chains"); if (selectedQuestChain != null) { selectedQuestChain.Name = RPGMakerGUI.TextField("Name: ", selectedQuestChain.Name); if (selectedQuestChainQuest != null) { var quest = selectedQuestChainQuest; QuestDetails(quest, true); } else { EditorGUILayout.HelpBox("Select a quest in the quest chain to begin editing it.", MessageType.Info); } } else { EditorGUILayout.HelpBox("Add or select a new field to customise quest chains.", MessageType.Info); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); RPGMakerGUI.Title("Objectives - Options"); RPGMakerGUI.Toggle("Show Quest Markers?", ref Questing.ShowQuestMarkers); Questing.QuestStarted.Audio = RPGMakerGUI.AudioClipSelector("Quest Started Sound:", Questing.QuestStarted.Audio, ref Questing.QuestStarted.AudioPath); Questing.QuestComplete.Audio = RPGMakerGUI.AudioClipSelector("Quest Completed Sound:", Questing.QuestComplete.Audio, ref Questing.QuestComplete.AudioPath); GUILayout.EndArea(); }
public static void InteractableObjects(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.Repositories.Interactable.AllInteractables; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedInteractable, Rm_ListAreaType.Interactables, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Interactables"); if (selectedInteractable != null) { RPGMakerGUI.TextField("ID: ", selectedInteractable.ID); selectedInteractable.Name = RPGMakerGUI.TextField("Name: ", selectedInteractable.Name); GUILayout.BeginHorizontal(); gameObject = RPGMakerGUI.PrefabSelector("Prefab:", gameObject, ref selectedInteractable.PrefabPath); gameObject = RPGMakerGUI.PrefabGeneratorButton(Rmh_PrefabType.Interactable, gameObject, ref selectedInteractable.PrefabPath, null, selectedInteractable.ID); GUILayout.EndHorizontal(); selectedInteractable.Image = RPGMakerGUI.ImageSelector("Image", selectedInteractable.Image, ref selectedInteractable.ImagePath, true); if (GUILayout.Button("Open Interaction Window", "genericButton", GUILayout.MaxHeight(30))) { var trees = Rm_RPGHandler.Instance.Nodes.DialogNodeBank.NodeTrees; var existingTree = trees.FirstOrDefault(t => t.ID == selectedInteractable.ID); if (existingTree == null) { existingTree = NodeWindow.GetNewTree(NodeTreeType.Dialog); existingTree.ID = selectedInteractable.ID; existingTree.Name = selectedInteractable.Name; trees.Add(existingTree); } DialogNodeWindow.ShowWindow(selectedInteractable.ID); selectedInteractable.ConversationNodeId = existingTree.ID; } } else { EditorGUILayout.HelpBox("Add or select a new field to customise interactables.", MessageType.Info); } GUILayout.EndArea(); }
public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); optionsScrollPos = GUILayout.BeginScrollView(optionsScrollPos); RPGMakerGUI.Title("Enemy - Options"); var result = RPGMakerGUI.FoldoutToolBar(ref showMonsterTypes, "Monster Types", new[] { "+Monster Type" }); if (showMonsterTypes) { for (int index = 0; index < Enemy.MonsterTypes.Count; index++) { var def = Enemy.MonsterTypes[index]; GUILayout.BeginHorizontal(); def.Name = RPGMakerGUI.TextField("", def.Name); if (RPGMakerGUI.DeleteButton(25)) { Enemy.MonsterTypes.Remove(def); index--; } GUILayout.EndHorizontal(); } if (result == 0) { Enemy.MonsterTypes.Add(new MonsterTypeDefinition()); } if (Enemy.MonsterTypes.Count == 0) { EditorGUILayout.HelpBox( "You can define monster types to use elsewhere such as Boss, Miniboss, etc.", MessageType.Info); } } if (showMonsterTypes) { RPGMakerGUI.EndFoldout(); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.Title("List 1"); RPGMakerGUI.Title("List 2"); RPGMakerGUI.Title("List 3"); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Game page."); RPGMakerGUI.Title("UI - OPTIONS"); GUILayout.EndArea(); }
public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); RPGMakerGUI.Title("Game Options"); RPGMakerGUI.SubTitle("General"); Customise.GameHasAchievements = RPGMakerGUI.Toggle("Enable Achievements?", Customise.GameHasAchievements, GUILayout.Width(300)); Customise.AchievementUnlockedSound.Audio = RPGMakerGUI.AudioClipSelector("Achievement Unlocked Sound:", Customise.AchievementUnlockedSound.Audio, ref Customise.AchievementUnlockedSound.AudioPath); Customise.LoadingScreen.Image = RPGMakerGUI.ImageSelector("Loading Screen:", Customise.LoadingScreen.Image, ref Customise.LoadingScreen.ImagePath); RPGMakerGUI.SubTitle("Enable Popups"); RPGMakerGUI.Toggle("Exp Gained", ref Customise.EnableExpGainedPopup); RPGMakerGUI.Toggle("Level Reached", ref Customise.EnableLevelReachedPopup); RPGMakerGUI.Toggle("Skill Exp Gained", ref Customise.EnableSkillExpGainedPopup); RPGMakerGUI.SubTitle("Tooltip"); RPGMakerGUI.Toggle("Follow Mouse Position", ref Customise.TooltipFollowsCursor); GUILayout.EndArea(); }
public static void Traits(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.ASVT.TraitDefinitions; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedTraitInfo, Rm_ListAreaType.Traits, false, false); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Traits"); if (selectedTraitInfo != null) { GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); selectedTraitInfo.Name = RPGMakerGUI.TextField("Name: ", selectedTraitInfo.Name); selectedTraitInfo.Description = RPGMakerGUI.TextArea("Description: ", selectedTraitInfo.Description); RPGMakerGUI.PopupID <ExpDefinition>("Exp Definition:", ref selectedTraitInfo.ExpDefinitionID, "ID", "Name", "Trait"); selectedTraitInfo.StartingLevel = RPGMakerGUI.IntField("Starting Level: ", selectedTraitInfo.StartingLevel); selectedTraitInfo.Color = (Rm_UnityColors)RPGMakerGUI.EnumPopup("Color: ", selectedTraitInfo.Color); selectedTraitInfo.Image = RPGMakerGUI.ImageSelector("Image:", selectedTraitInfo.Image, ref selectedTraitInfo.ImagePath, true); GUILayout.EndVertical(); } else { EditorGUILayout.HelpBox("Add or select a new field to customise traits.", MessageType.Info); EditorGUILayout.HelpBox("What is a trait? A trait is a stat that has a Level with exp to level." + "\nExample use: Sword Mastery (Exp gained with Combat Node check that current" + " weapon is of type Sword)", MessageType.Info); } GUILayout.EndArea(); }
public static void NPCs(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.Repositories.Interactable.AllNpcs; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedNPCInfo, Rm_ListAreaType.NPCs, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("NPCs"); if (selectedCharInfo != null) { RPGMakerGUI.BeginScrollView(); if (RPGMakerGUI.Foldout(ref mainInfoFoldout, "Main Info")) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.MaxWidth(85)); selectedCharInfo.Image = RPGMakerGUI.ImageSelector("", selectedCharInfo.Image, ref selectedCharInfo.ImagePath); GUILayout.EndVertical(); GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); RPGMakerGUI.TextField("ID: ", selectedCharInfo.ID); selectedCharInfo.Name = RPGMakerGUI.TextField("Name: ", selectedCharInfo.Name); GUILayout.BeginHorizontal(); gameObject = RPGMakerGUI.PrefabSelector("NPC Prefab:", gameObject, ref selectedCharInfo.CharPrefabPath); gameObject = RPGMakerGUI.PrefabGeneratorButton(Rmh_PrefabType.NPC, gameObject, ref selectedCharInfo.CharPrefabPath, null, selectedCharInfo.ID); GUILayout.EndHorizontal(); if (GUILayout.Button("Open Interaction Window", "genericButton", GUILayout.MaxHeight(30))) { var trees = Rm_RPGHandler.Instance.Nodes.DialogNodeBank.NodeTrees; var existingTree = trees.FirstOrDefault(t => t.ID == selectedCharInfo.ID); if (existingTree == null) { existingTree = NodeWindow.GetNewTree(NodeTreeType.Dialog); existingTree.ID = selectedCharInfo.ID; existingTree.Name = selectedCharInfo.Name; trees.Add(existingTree); } DialogNodeWindow.ShowWindow(selectedCharInfo.ID); selectedNPCInfo.Interaction.ConversationNodeId = existingTree.ID; } if (Rm_RPGHandler.Instance.Combat.NPCsCanFight) { if (RPGMakerGUI.Toggle("This NPC Can Fight?", ref selectedNPCInfo.CanFight)) { selectedNPCInfo.CanBeKilled = RPGMakerGUI.Toggle("Can be Perma-killed? ", selectedNPCInfo.CanBeKilled); Rme_Combatants.CombatantDetails(selectedNPCInfo); } } GUILayout.Space(5); GUILayout.EndVertical(); GUILayout.EndHorizontal(); } if (mainInfoFoldout) { RPGMakerGUI.EndFoldout(); } Rme_Combatants.Animations(selectedNPCInfo); if (Rm_RPGHandler.Instance.Combat.NPCsCanFight && selectedNPCInfo.CanFight) { Rme_Combatants.CombatStats(selectedNPCInfo); Rme_Combatants.Loot(selectedNPCInfo); } RPGMakerGUI.EndScrollView(); } else { EditorGUILayout.HelpBox("Add or select a new field to customise Enemy Characters.", MessageType.Info); } GUILayout.EndArea(); }
public static void Reputations(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.Repositories.Quests.AllReputations; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedReputation, Rm_ListAreaType.Reputations, false, false); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Reputations"); if (selectedReputation != null) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.MaxWidth(85)); selectedReputation.Image = RPGMakerGUI.ImageSelector("", selectedReputation.Image, ref selectedReputation.ImagePath); GUILayout.EndVertical(); GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); selectedReputation.Name = RPGMakerGUI.TextField("Name: ", selectedReputation.Name); selectedReputation.StartingValue = RPGMakerGUI.IntField("Starting Value: ", selectedReputation.StartingValue); selectedReputation.ValueLossForNPCAttack = RPGMakerGUI.IntField("Loss on NPC Attack: ", selectedReputation.ValueLossForNPCAttack); selectedReputation.IsTrackable = RPGMakerGUI.Toggle("Trackable?", selectedReputation.IsTrackable); selectedReputation.AttackIfBelowReputation = RPGMakerGUI.Toggle("Attack if below Rep?", selectedReputation.AttackIfBelowReputation); if (selectedReputation.AttackIfBelowReputation) { selectedReputation.BelowReputationValue = RPGMakerGUI.IntField("Attack if Below: ", selectedReputation.BelowReputationValue); } GUILayout.Space(40); GUILayout.Label("Enemy Factions:"); if (Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.Count > 1) //As we include the current reputation { foreach (var d in Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.Where(r => r.ID != selectedReputation.ID)) { var faction = selectedReputation.EnemyFactions.FirstOrDefault(a => a.ID == d.ID); if (faction == null) { var factionToAdd = new FactionStatus() { ID = d.ID, IsTrue = false }; selectedReputation.EnemyFactions.Add(factionToAdd); } } for (int index = 0; index < selectedReputation.EnemyFactions.Count; index++) { var v = selectedReputation.EnemyFactions[index]; var stillExists = Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.FirstOrDefault( a => a.ID == v.ID); if (stillExists == null) { selectedReputation.EnemyFactions.Remove(v); index--; } } foreach (var v in selectedReputation.EnemyFactions) { var prefix = Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.First(a => a.ID == v.ID). Name; RPGMakerGUI.Toggle(prefix, ref v.IsTrue); } } else { EditorGUILayout.HelpBox("No other factions.", MessageType.Info); } #region "AlliedFactions" // GUILayout.Label("Allied Factions:"); // if (Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.Count > 1) //As we include the current reputation // { // foreach (var d in Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.Where(r => r.ID != selectedReputation.ID)) // { // var faction = selectedReputation.AlliedFactions.FirstOrDefault(a => a.ID == d.ID); // if (faction == null) // { // var factionToAdd = new FactionStatus() // { // ID = d.ID, // IsTrue = false // }; // // selectedReputation.AlliedFactions.Add(factionToAdd); // } // } // // for (int index = 0; index < selectedReputation.AlliedFactions.Count; index++) // { // var v = selectedReputation.AlliedFactions[index]; // var stillExists = // Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.FirstOrDefault( // a => a.ID == v.ID); // // if (stillExists == null) // { // selectedReputation.AlliedFactions.Remove(v); // index--; // } // } // // foreach (var v in selectedReputation.AlliedFactions) // { // var prefix = // Rm_RPGHandler.Instance.Repositories.Quests.AllReputations.First(a => a.ID == v.ID). // Name; // RPGMakerGUI.Toggle(prefix, ref v.IsTrue); // } // } // else // { // EditorGUILayout.HelpBox("No other factions.", MessageType.Info); // } #endregion var result = RPGMakerGUI.FoldoutToolBar(ref showRanks, "Faction Ranks", "+Rank"); if (showRanks) { for (int index = 0; index < selectedReputation.Ranks.Count; index++) { var rank = selectedReputation.Ranks[index]; GUILayout.BeginHorizontal(); rank.Name = EditorGUILayout.TextField("", rank.Name); rank.Requirement = EditorGUILayout.IntField("Requirement:", rank.Requirement); GUI.enabled = selectedReputation.Ranks.Count > 1; if (RPGMakerGUI.DeleteButton(25)) { selectedReputation.Ranks.RemoveAt(index); index--; } GUI.enabled = true; GUILayout.EndHorizontal(); } RPGMakerGUI.EndFoldout(); } if (result == 0) { selectedReputation.Ranks.Add(new FactionRank()); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); } else { EditorGUILayout.HelpBox("Add or select a new field to customise reputations.", MessageType.Info); } GUILayout.EndArea(); }
public static void VendorShops(Rect fullArea, Rect leftArea, Rect mainArea) { leftAreaB = new Rect(leftArea.xMax + 5, leftArea.y, leftArea.width, leftArea.height); mainAreaAlt = new Rect(leftAreaB.xMax + 5, leftArea.y, mainArea.width - (leftAreaB.width + 5), leftArea.height); GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(leftAreaB, "", "backgroundBox"); GUI.Box(mainAreaAlt, "", "backgroundBox"); var list = Rm_RPGHandler.Instance.Repositories.Vendor.AllVendors; GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedVendorShop, Rm_ListAreaType.VendorShops, false, true); GUILayout.EndArea(); GUILayout.BeginArea(leftAreaB); if (selectedVendorShop != null) { RPGMakerGUI.ListArea(selectedVendorShop.VendorShopItems, ref selectedVendorShopItem, Rm_ListAreaType.VendorShopItem, false, false, Rme_ListButtonsToShow.AllExceptHelp, true); } GUILayout.EndArea(); GUILayout.BeginArea(mainAreaAlt); RPGMakerGUI.Title("Vendor Shops"); if (selectedVendorShop != null) { selectedVendorShop.Name = RPGMakerGUI.TextField("Name: ", selectedVendorShop.Name); if (selectedVendorShopItem != null) { //todo: replace with PopupID RPGMakerGUI.SubTitle("Selected Vendor Shop Item"); var allItems = Rm_RPGHandler.Instance.Repositories.Items.AllItems; if (string.IsNullOrEmpty(selectedVendorShopItem.ItemID)) { selecteVendorItem = 0; } else { var stillExists = allItems.FirstOrDefault(a => a.ID == selectedVendorShopItem.ItemID); selecteVendorItem = stillExists != null?allItems.IndexOf(stillExists) : 0; } selecteVendorItem = EditorGUILayout.Popup("Item:", selecteVendorItem, allItems.Select((q, indexOf) => indexOf + ". " + q.Name). ToArray()); if (allItems.Count > 0) { selectedVendorShopItem.ItemID = allItems[selecteVendorItem].ID; var stackable = allItems[selecteVendorItem] as IStackable; if (stackable != null) { selectedVendorShopItem.InfiniteStock = RPGMakerGUI.Toggle("Infinite Stock?", selectedVendorShopItem. InfiniteStock); if (!selectedVendorShopItem.InfiniteStock) { selectedVendorShopItem.QuantityRemaining = RPGMakerGUI.IntField("Quantity:", selectedVendorShopItem. QuantityRemaining); } } } else { RPGMakerGUI.Label("No Items Found."); } } } else { EditorGUILayout.HelpBox("Add or select a new field to customise Vendor Shops.", MessageType.Info); } GUILayout.EndArea(); }
public static void HarvestableObjects(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.Harvesting.HarvestableDefinitions; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedHarvestable, Rm_ListAreaType.Harvestables, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); areaScrollPos = GUILayout.BeginScrollView(areaScrollPos); RPGMakerGUI.Title("Harvestable Objects"); if (selectedHarvestable != null) { RPGMakerGUI.TextField("ID: ", selectedHarvestable.ID); selectedHarvestable.Name = RPGMakerGUI.TextField("Name: ", selectedHarvestable.Name); GUILayout.BeginHorizontal(); gameObject = RPGMakerGUI.PrefabSelector("Prefab:", gameObject, ref selectedHarvestable.PrefabPath); gameObject = RPGMakerGUI.PrefabGeneratorButton(Rmh_PrefabType.Harvest, gameObject, ref selectedHarvestable.PrefabPath, null, selectedHarvestable.ID); GUILayout.EndHorizontal(); if (RPGMakerGUI.Toggle("Regenerates harvestables?", ref selectedHarvestable.RegensResources)) { selectedHarvestable.TimeInSecToRegen = RPGMakerGUI.FloatField("Time before regen:", selectedHarvestable.TimeInSecToRegen); selectedHarvestable.AmountRegenerated = RPGMakerGUI.IntField("Amount regenerated:", selectedHarvestable.AmountRegenerated); selectedHarvestable.MaxAtOnce = RPGMakerGUI.IntField("Max At Once:", selectedHarvestable.MaxAtOnce); } else { selectedHarvestable.MinObtainable = RPGMakerGUI.IntField("Min Total Quantity Obtainable:", selectedHarvestable.MinObtainable); selectedHarvestable.MaxObtainable = RPGMakerGUI.IntField("Max Total Quantity Obtainable:", selectedHarvestable.MaxObtainable); } if (RPGMakerGUI.Toggle("Is Quest Item?", ref selectedHarvestable.IsQuestItem)) { RPGMakerGUI.PopupID <Quest>("Accepted Quest Required To Loot:", ref selectedHarvestable.QuestAcceptedID); RPGMakerGUI.PopupID <Item>("Harvested Quest Item:", ref selectedHarvestable.HarvestedObjectID, "ID", "Name", "Quest"); if (!string.IsNullOrEmpty(selectedHarvestable.HarvestedObjectID)) { var item = Rm_RPGHandler.Instance.Repositories.QuestItems.AllItems.First(i => i.ID == selectedHarvestable.HarvestedObjectID); var stackable = item as IStackable; if (stackable != null) { selectedHarvestable.MinAmountGained = RPGMakerGUI.IntField("Min Quantity Gained:", selectedHarvestable.MinAmountGained); selectedHarvestable.MaxAmountGained = RPGMakerGUI.IntField("Max Quantity Gained:", selectedHarvestable.MaxAmountGained); } } } else { RPGMakerGUI.PopupID <Item>("Harvested Item:", ref selectedHarvestable.HarvestedObjectID); if (!string.IsNullOrEmpty(selectedHarvestable.HarvestedObjectID)) { var item = Rm_RPGHandler.Instance.Repositories.Items.AllItems.First(i => i.ID == selectedHarvestable.HarvestedObjectID); var stackable = item as IStackable; if (stackable != null) { selectedHarvestable.MinAmountGained = RPGMakerGUI.IntField("Min Quantity Gained:", selectedHarvestable.MinAmountGained); selectedHarvestable.MaxAmountGained = RPGMakerGUI.IntField("Max Quantity Gained:", selectedHarvestable.MaxAmountGained); } } } selectedHarvestable.HarvestSound = RPGMakerGUI.AudioClipSelector("Harvesting Sound:", selectedHarvestable.HarvestSound, ref selectedHarvestable.HarvestingSoundPath); selectedHarvestable.TimeToHarvest = RPGMakerGUI.FloatField("Time to harvest:", selectedHarvestable.TimeToHarvest); if (RPGMakerGUI.Toggle("Require Level To Harvest:", ref selectedHarvestable.RequireLevel)) { selectedHarvestable.LevelRequired = RPGMakerGUI.IntField("- Required Level", selectedHarvestable.LevelRequired); } if (RPGMakerGUI.Toggle("Require Trait Level To Harvest:", ref selectedHarvestable.RequireTraitLevel)) { RPGMakerGUI.PopupID <Rm_TraitDefintion>("- Trait", ref selectedHarvestable.RequiredTraitID); selectedHarvestable.TraitLevelRequired = RPGMakerGUI.IntField("- Required Trait Level", selectedHarvestable.TraitLevelRequired); } Rme_Main_General.ProgressionGain(true, selectedHarvestable.ProgressionGain); if (RPGMakerGUI.Foldout(ref showHarvestAnims, "Animations")) { foreach (var classHarvestAnim in selectedHarvestable.ClassHarvestingAnims) { var classInfo = RPG.Player.GetCharacterDefinition(classHarvestAnim.ClassID); var className = classInfo.Name; if (classInfo.AnimationType == RPGAnimationType.Legacy) { classHarvestAnim.LegacyAnim = RPGMakerGUI.TextField(className + " Animation:", classHarvestAnim.LegacyAnim); } else { GUILayout.BeginHorizontal(); classHarvestAnim.AnimNumber = RPGMakerGUI.IntField(className + "Anim AnimNumber:", classHarvestAnim.AnimNumber); GUILayout.EndHorizontal(); } } RPGMakerGUI.EndFoldout(); } } else { EditorGUILayout.HelpBox("Add or select a new field to customise harvestable objects.", MessageType.Info); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void GlobalPlaylist(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); playlistScrollPos = GUILayout.BeginScrollView(playlistScrollPos); RPGMakerGUI.Title("Global Music Playlist"); RPGMakerGUI.SubTitle("Audio Options"); Audio.PlayThroughSceneSwitch = RPGMakerGUI.Toggle("Persist Through Scenes?", Audio.PlayThroughSceneSwitch, GUILayout.Width(300)); Audio.LoadAllAudioOnLoad = RPGMakerGUI.Toggle("Load All Audio On Load?", Audio.LoadAllAudioOnLoad, GUILayout.Width(300)); Audio.FadeOutMusic = RPGMakerGUI.Toggle("Fade Out Tracks?", Audio.FadeOutMusic, GUILayout.Width(300)); Audio.FadeOutTime = RPGMakerGUI.FloatField("Fade Out Time:", Audio.FadeOutTime, 1, GUILayout.Width(300)); Audio.FadeInMusic = RPGMakerGUI.Toggle("Fade In Tracks?", Audio.FadeInMusic, GUILayout.Width(300)); Audio.FadeInTime = RPGMakerGUI.FloatField("Fade In Time:", Audio.FadeInTime, 1, GUILayout.Width(300)); RPGMakerGUI.Toggle("Shuffle Playlist?", ref Audio.ShufflePlaylist, GUILayout.Width(300)); var result = RPGMakerGUI.FoldoutToolBar(ref showPlaylist, "Global Playlist", new[] { "+ Music" }); if (showPlaylist) { if (result == 0) { Audio.GlobalPlaylist.Add(new AudioContainer()); } GUILayout.Space(5); for (int index = 0; index < Audio.GlobalPlaylist.Count; index++) { var music = Audio.GlobalPlaylist[index]; GUILayout.BeginHorizontal(GUILayout.Height(30)); GUILayout.Space(5); music.Audio = RPGMakerGUI.AudioClipSelector("Music File:", music.Audio, ref music.AudioPath); if (GUILayout.Button(RPGMakerGUI.DelIcon, "genericButton", GUILayout.Width(25), GUILayout.Height(25))) { Audio.GlobalPlaylist.Remove(music); index--; } GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); } if (Audio.GlobalPlaylist.Count == 0) { EditorGUILayout.HelpBox("Click +Music to add bg music to be played when scene music is not found.", MessageType.Info); } RPGMakerGUI.EndFoldout(); } if (RPGMakerGUI.Toggle("Unique scene music?", ref Audio.PlayUniqueMusicForScenes)) { var battleResult = RPGMakerGUI.FoldoutToolBar(ref showScenePlaylists, "Scene Playlists", new[] { "+ Scene" }); if (showScenePlaylists) { if (battleResult == 0) { Audio.ScenePlaylists.Add(new SceneMusic()); } GUILayout.Space(5); for (int index = 0; index < Audio.ScenePlaylists.Count; index++) { var sceneMusic = Audio.ScenePlaylists[index]; GUILayout.BeginHorizontal(GUILayout.Height(30)); GUILayout.Space(5); sceneMusic.Music.Audio = RPGMakerGUI.AudioClipSelector("Music File:", sceneMusic.Music.Audio, ref sceneMusic.Music.AudioPath); sceneMusic.SceneName = RPGMakerGUI.SceneSelector("Scene:", ref sceneMusic.SceneName); if (GUILayout.Button(RPGMakerGUI.DelIcon, "genericButton", GUILayout.Width(25), GUILayout.Height(25))) { Audio.ScenePlaylists.Remove(sceneMusic); index--; } GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); } if (Audio.ScenePlaylists.Count == 0) { EditorGUILayout.HelpBox("Click +Music to add music to be played during battles.", MessageType.Info); } RPGMakerGUI.EndFoldout(); } } if (RPGMakerGUI.Toggle("Unique battle music?", ref Audio.PlayUniqueMusicForBattles)) { var battleResult = RPGMakerGUI.FoldoutToolBar(ref showBattlePlaylist, "Battle Playlist", new[] { "+ Music" }); if (showBattlePlaylist) { if (battleResult == 0) { Audio.BattlePlaylist.Add(new AudioContainer()); } GUILayout.Space(5); for (int index = 0; index < Audio.BattlePlaylist.Count; index++) { var music = Audio.BattlePlaylist[index]; GUILayout.BeginHorizontal(GUILayout.Height(30)); GUILayout.Space(5); music.Audio = RPGMakerGUI.AudioClipSelector("Music File:", music.Audio, ref music.AudioPath); if (GUILayout.Button(RPGMakerGUI.DelIcon, "genericButton", GUILayout.Width(25), GUILayout.Height(25))) { Audio.BattlePlaylist.Remove(music); index--; } GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); } if (Audio.BattlePlaylist.Count == 0) { EditorGUILayout.HelpBox("Click +Music to add music to be played during battles.", MessageType.Info); } RPGMakerGUI.EndFoldout(); } } if (RPGMakerGUI.Toggle("Unique music on Player Death?", ref Audio.PlayUniqueMusicForDeath)) { Audio.DeathMusic.Audio = RPGMakerGUI.AudioClipSelector("- Music File:", Audio.DeathMusic.Audio, ref Audio.DeathMusic.AudioPath); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void WorldMap(Rect fullArea, Rect leftArea, Rect mainArea) { leftAreaB = new Rect(leftArea.xMax + 5, leftArea.y, leftArea.width, leftArea.height); mainAreaAlt = new Rect(leftAreaB.xMax + 5, leftArea.y, mainArea.width - (leftAreaB.width + 5), leftArea.height); GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(leftAreaB, "", "backgroundBox"); GUI.Box(mainAreaAlt, "", "backgroundBox"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(worldAreaList, ref selectedWorldArea, Rm_ListAreaType.WorldAreas, false, false); GUILayout.EndArea(); GUILayout.BeginArea(leftAreaB); if (selectedWorldArea != null) { var rect = RPGMakerGUI.ListArea(selectedWorldArea.Locations, ref selectedWorldAreaLocation, Rm_ListAreaType.Location, false, false, Rme_ListButtonsToShow.AllExceptHelp, true, selectedWorldArea.ID); } GUILayout.EndArea(); GUILayout.BeginArea(mainAreaAlt); worldAreaScrollPos = GUILayout.BeginScrollView(worldAreaScrollPos); RPGMakerGUI.Title("World Areas (Not Finished)"); if (selectedWorldArea != null) { selectedWorldArea.Name = RPGMakerGUI.TextField("Name: ", selectedWorldArea.Name); selectedWorldArea.ImageContainer.Image = RPGMakerGUI.ImageSelector("Image:", selectedWorldArea.ImageContainer.Image, ref selectedWorldArea.ImageContainer.ImagePath); if (GUILayout.Button("Open Interaction Node Tree", "genericButton", GUILayout.MaxHeight(30))) { var trees = Rm_RPGHandler.Instance.Nodes.WorldMapNodeBank.NodeTrees; var existingTree = trees.FirstOrDefault(t => t.ID == selectedWorldArea.ID); if (existingTree == null) { existingTree = NodeWindow.GetNewTree(NodeTreeType.WorldMap); existingTree.ID = selectedWorldArea.ID; Debug.Log(existingTree.ID + ":::" + existingTree.Name); existingTree.Name = selectedWorldArea.Name; trees.Add(existingTree); } WorldMapNodeWindow.ShowWindow(selectedWorldArea.ID); } } if (selectedWorldArea != null) { RPGMakerGUI.SubTitle("Location Info:"); if (selectedWorldAreaLocation != null) { var loc = selectedWorldAreaLocation; loc.Name = RPGMakerGUI.TextField("Name:", loc.Name); loc.ImageContainer.Image = RPGMakerGUI.ImageSelector("Name:", loc.ImageContainer.Image, ref loc.ImageContainer.ImagePath); loc.Description = RPGMakerGUI.TextField("Description:", loc.Description); RPGMakerGUI.SceneSelector("Scene:", ref loc.SceneName); if (RPGMakerGUI.Toggle("Use Custom Spawn Location?", ref loc.UseCustomLocation)) { loc.CustomSpawnLocation = EditorGUILayout.Vector3Field("Location:", loc.CustomSpawnLocation); } } else { EditorGUILayout.HelpBox("Select a location in the world area to begin editing it.", MessageType.Info); } } else { EditorGUILayout.HelpBox("Add or select a new field to customise world areas.", MessageType.Info); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void Vitals(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.ASVT.VitalDefinitions; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedVitalInfo, Rm_ListAreaType.Vitals, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); RPGMakerGUI.Title("Vitals"); if (selectedVitalInfo != null) { GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); selectedVitalInfo.Name = RPGMakerGUI.TextField("Name: ", selectedVitalInfo.Name); selectedVitalInfo.Description = RPGMakerGUI.TextField("Description: ", selectedVitalInfo.Description); selectedVitalInfo.DefaultValue = RPGMakerGUI.IntField("Default Value: ", selectedVitalInfo.DefaultValue); selectedVitalInfo.Color = (Rm_UnityColors)RPGMakerGUI.EnumPopup("Color: ", selectedVitalInfo.Color); GUI.enabled = !selectedVitalInfo.IsHealth; var oldHealth = selectedVitalInfo.IsHealth; selectedVitalInfo.IsHealth = RPGMakerGUI.Toggle("Is Health Vital? ", selectedVitalInfo.IsHealth); GUI.enabled = true; if (oldHealth != selectedVitalInfo.IsHealth) { ASVT.VitalDefinitions.Where(v => v.IsHealth && v.ID != selectedVitalInfo.ID).ToList() .ForEach(vit => vit.IsHealth = false); } selectedVitalInfo.HasUpperLimit = RPGMakerGUI.Toggle("Has Max Value?", selectedVitalInfo.HasUpperLimit); if (selectedVitalInfo.HasUpperLimit) { selectedVitalInfo.UpperLimit = RPGMakerGUI.IntField("Max Value?", selectedVitalInfo.UpperLimit); } if (!selectedVitalInfo.IsHealth) { RPGMakerGUI.Toggle("Always Starts At Zero?", ref selectedVitalInfo.AlwaysStartsAtZero); } else { selectedVitalInfo.AlwaysStartsAtZero = false; } selectedVitalInfo.BaseRegenPercentValue = RPGMakerGUI.FloatField("Base Regen Percent:", selectedVitalInfo.BaseRegenPercentValue); RPGMakerGUI.Toggle("Also Regen While In Combat?", ref selectedVitalInfo.RegenWhileInCombat); /* * public bool ReduceHealthIfZero; * public float ReductionIntervalSeconds; * public bool ReduceByFixedAmount; * public int ReductionFixedAmount; * public float ReductionPercentageAmount;*/ if (!selectedVitalInfo.IsHealth && RPGMakerGUI.Toggle("Reduce Health Vital At Zero?", ref selectedVitalInfo.ReduceHealthIfZero)) { selectedVitalInfo.ReductionIntervalSeconds = RPGMakerGUI.FloatField("Reduce every X seconds:", selectedVitalInfo.ReductionIntervalSeconds, 1); if (RPGMakerGUI.Toggle("Reduce By Fixed Amount?", 1, ref selectedVitalInfo.ReduceByFixedAmount)) { selectedVitalInfo.ReductionFixedAmount = RPGMakerGUI.IntField("Reduce by X:", selectedVitalInfo.ReductionFixedAmount, 1); } else { GUILayout.BeginHorizontal(); selectedVitalInfo.ReductionPercentageAmount = RPGMakerGUI.FloatField("Reduce by X percent of Max HP:", selectedVitalInfo.ReductionPercentageAmount, 1); RPGMakerGUI.Label(selectedVitalInfo.ReductionPercentageAmount.ToString("#0.##%")); GUILayout.EndHorizontal(); } } selectedVitalInfo.Image = RPGMakerGUI.ImageSelector("Image:", selectedVitalInfo.Image, ref selectedVitalInfo.ImagePath, true); GUILayout.EndVertical(); } else { EditorGUILayout.HelpBox("Add or select a new field to customise vitals.", MessageType.Info); } GUILayout.EndArea(); }