mirror of
https://github.com/All-Of-Us-Mods/MiraAPI.git
synced 2026-10-19 15:51:48 +00:00
Reduce duped code
This commit is contained in:
1 parent
fc7eaef7c4
commit
2cfdbea51f
3 files changed
+37
-21
No files matched your search
@@ -183,7 +183,7 @@ public static class RoleGuidePatches
|
||||
StringNames.GameTaskBarMode,
|
||||
GameManager.Instance.LogicOptions.GetTaskBarMode().ToString());
|
||||
var hoverColor = new Color32(255, 255, 255, 150);
|
||||
foreach (RoleBehaviour roleBehaviour in RoleManager.Instance.AllRoles)
|
||||
foreach (RoleBehaviour roleBehaviour in RoleManager.Instance.AllRoles.ToArray().OrderBy(x => x.GetRoleName()))
|
||||
{
|
||||
if (roleBehaviour.Role != RoleTypes.Crewmate && roleBehaviour.Role != RoleTypes.Impostor &&
|
||||
roleBehaviour.Role is not RoleTypes.CrewmateGhost &&
|
||||
@@ -196,6 +196,7 @@ public static class RoleGuidePatches
|
||||
collider.size = new Vector2(0.13f, 0.13f);
|
||||
collider.offset = new Vector2(0, 0);
|
||||
var passiveButton = panel.roleIcon.gameObject.AddComponent<PassiveButton>();
|
||||
passiveButton.ClickSound = HudManager.Instance.MapButton.ClickSound;
|
||||
passiveButton.OnMouseOver = new UnityEvent();
|
||||
passiveButton.OnMouseOver.AddListener(
|
||||
(UnityAction)(() =>
|
||||
@@ -320,15 +321,11 @@ public static class RoleGuidePatches
|
||||
if (role is ICustomRole custom)
|
||||
{
|
||||
CurrentAdvancedTabObject = custom.GetAdvancedWiki(instance, TitleText, AdvancedWikiTab);
|
||||
CurrentAdvancedTabObject.transform.localPosition = new Vector3(0f, 0f, 0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
AdvancedWikiTab.ScrollToTop();
|
||||
CurrentAdvancedTabObject = new GameObject($"{role.Role}");
|
||||
TitleText.text = role.GetRoleName() + $" ({TranslationController.Instance.GetString(role.TeamType is RoleTeamTypes.Crewmate ? StringNames.Crewmate : StringNames.Impostor)})";
|
||||
var desc = Object.Instantiate(instance.MatchInfoRolePanelPrefab.roleCount, CurrentAdvancedTabObject.transform);
|
||||
desc.fontSizeMin = desc.fontSizeMax = desc.fontSize = 2f;
|
||||
var titleTxt = role.GetRoleName() + $" ({TranslationController.Instance.GetString(role.TeamType is RoleTeamTypes.Crewmate ? StringNames.Crewmate : StringNames.Impostor)})";
|
||||
var description = TranslationController.Instance.GetString(role.BlurbNameLong);
|
||||
if (description.Contains("STRMISS"))
|
||||
{
|
||||
@@ -339,14 +336,16 @@ public static class RoleGuidePatches
|
||||
}
|
||||
}
|
||||
|
||||
desc.text = description;
|
||||
desc.rectTransform.sizeDelta = new Vector2(7.5f, 0.3f);
|
||||
desc.alignment = TextAlignmentOptions.TopLeft;
|
||||
CurrentAdvancedTabObject = Helpers.CreateAdvancedWikiTab(
|
||||
instance,
|
||||
role.Role.ToString(),
|
||||
titleTxt,
|
||||
description,
|
||||
TitleText,
|
||||
out var desc);
|
||||
CurrentAdvancedTabObject.transform.SetParent(AdvancedWikiTab.Inner.transform);
|
||||
desc.transform.localPosition = new Vector3(0, 1.125f, 0);
|
||||
CurrentAdvancedTabObject.transform.localPosition = new Vector3(0f, 0f, 0f);
|
||||
desc.ForceMeshUpdate();
|
||||
AdvancedWikiTab.SetYBoundsMax(Mathf.Clamp(desc.textBounds.size.y- 2, 0f, 999f));
|
||||
AdvancedWikiTab.SetYBoundsMax(Mathf.Clamp(desc.textBounds.size.y - 2, 0f, 999f));
|
||||
}
|
||||
}
|
||||
[HarmonyPrefix]
|
||||
|
||||
@@ -6,6 +6,7 @@ using MiraAPI.GameOptions;
|
||||
using MiraAPI.Modifiers;
|
||||
using MiraAPI.PluginLoading;
|
||||
using MiraAPI.Translation;
|
||||
using MiraAPI.Utilities;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
@@ -318,16 +319,15 @@ public interface ICustomRole : IOptionable
|
||||
public virtual GameObject GetAdvancedWiki(MatchInfoGuide guide, TextMeshPro titleText, Scroller parent)
|
||||
{
|
||||
parent.ScrollToTop();
|
||||
var obj = new GameObject(RoleNameLocale);
|
||||
titleText.text = RoleName + $" ({RoleFactionTitle})";
|
||||
var desc = Object.Instantiate(guide.MatchInfoRolePanelPrefab.roleCount, obj.transform);
|
||||
desc.fontSizeMin = desc.fontSizeMax = desc.fontSize = 2f;
|
||||
desc.text = RoleWikiDescription;
|
||||
desc.rectTransform.sizeDelta = new Vector2(7.5f, 0.3f);
|
||||
desc.alignment = TextAlignmentOptions.TopLeft;
|
||||
var obj = Helpers.CreateAdvancedWikiTab(
|
||||
guide,
|
||||
RoleNameLocale,
|
||||
RoleName + $" ({RoleFactionTitle})",
|
||||
RoleWikiDescription,
|
||||
titleText,
|
||||
out var desc);
|
||||
obj.transform.SetParent(parent.Inner.transform);
|
||||
desc.transform.localPosition = new Vector3(0, 1.125f, 0);
|
||||
desc.ForceMeshUpdate();
|
||||
obj.transform.localPosition = new Vector3(0f, 0f, 0f);
|
||||
parent.SetYBoundsMax(Mathf.Clamp(desc.textBounds.size.y - 2, 0f, 999f));
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -594,4 +594,21 @@ public static class Helpers
|
||||
// This should be patchable by mods when a vanilla role is meant to be replaced by a custom role.
|
||||
return false;
|
||||
}
|
||||
public static GameObject CreateAdvancedWikiTab(MatchInfoGuide guide, string objName, string title, string description, TextMeshPro titleTmp, out TextMeshPro descriptionTmp)
|
||||
{
|
||||
var obj = new GameObject(objName);
|
||||
titleTmp.text = title;
|
||||
descriptionTmp = Object.Instantiate(guide.MatchInfoRolePanelPrefab.roleCount, obj.transform);
|
||||
descriptionTmp.fontSizeMin = descriptionTmp.fontSizeMax = descriptionTmp.fontSize = 2f;
|
||||
var sourceTmp = HudManager.Instance.TaskPanel.taskText;
|
||||
descriptionTmp.font = sourceTmp.font;
|
||||
descriptionTmp.fontMaterial = sourceTmp.fontMaterial;
|
||||
descriptionTmp.EnableStencilMasking();
|
||||
descriptionTmp.text = description;
|
||||
descriptionTmp.rectTransform.sizeDelta = new Vector2(7.5f, 0.3f);
|
||||
descriptionTmp.alignment = TextAlignmentOptions.TopLeft;
|
||||
descriptionTmp.transform.localPosition = new Vector3(0, 1.125f, 0);
|
||||
descriptionTmp.ForceMeshUpdate();
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user