From 67669e22b6e748db1c82273811e636565627f2d7 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Wed, 11 Feb 2026 14:01:50 -0700 Subject: [PATCH] Add Level/XP to profile --- Assets/Prefabs/ProfilePrefab.prefab | 158 ++++++++++++++++++++++++++++ Assets/Scripts/ProfileMenu.cs | 5 + 2 files changed, 163 insertions(+) diff --git a/Assets/Prefabs/ProfilePrefab.prefab b/Assets/Prefabs/ProfilePrefab.prefab index 105a9e0..3e8f5bc 100644 --- a/Assets/Prefabs/ProfilePrefab.prefab +++ b/Assets/Prefabs/ProfilePrefab.prefab @@ -586,6 +586,7 @@ RectTransform: - {fileID: 7608451277823141862} - {fileID: 5198390592757604884} - {fileID: 5628154363262101591} + - {fileID: 6853222823989420543} - {fileID: 6450616990089933850} - {fileID: 1084337344187778159} - {fileID: 8944898812375025914} @@ -1870,6 +1871,162 @@ MonoBehaviour: m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &2452047341186747501 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6853222823989420543} + - component: {fileID: 3423770134386564789} + - component: {fileID: 2262436193906487665} + - component: {fileID: 4738430407811460073} + m_Layer: 5 + m_Name: LevelAndXPText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6853222823989420543 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2452047341186747501} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8368811176025763002} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -110, y: -47.5} + m_SizeDelta: {x: 200, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3423770134386564789 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2452047341186747501} + m_CullTransparentMesh: 1 +--- !u!114 &2262436193906487665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2452047341186747501} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Level: 0 + + XP: 0' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4fd546dd0900395408d2de20f5025882, type: 2} + m_sharedMaterial: {fileID: -1476194838487357290, guid: 4fd546dd0900395408d2de20f5025882, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 1 + m_fontSizeMax: 28 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4738430407811460073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2452047341186747501} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73b30df2b3a7144b99b75ce70168fd50, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::CustomColorObject + type: 4 + invert: 0 + addMore: {r: 0, g: 0, b: 0, a: 0} + reverseAdd: 0 --- !u!1 &2526661856265994715 GameObject: m_ObjectHideFlags: 0 @@ -3689,6 +3846,7 @@ MonoBehaviour: antiBerryStat: {fileID: 8063228603135536750} goldenBerryStat: {fileID: 1582997021820056722} coinStat: {fileID: 8759674510683834313} + playerLevelAndXPStat: {fileID: 2262436193906487665} playerNameText: {fileID: 5696062110796969975} playerIconImage: {fileID: 2070021138355354554} playerOverlayImage: {fileID: 7510528260506174449} diff --git a/Assets/Scripts/ProfileMenu.cs b/Assets/Scripts/ProfileMenu.cs index a5276e8..c946629 100644 --- a/Assets/Scripts/ProfileMenu.cs +++ b/Assets/Scripts/ProfileMenu.cs @@ -30,6 +30,7 @@ public class ProfileMenu : MonoBehaviour [SerializeField] private TMP_Text antiBerryStat; [SerializeField] private TMP_Text goldenBerryStat; [SerializeField] private TMP_Text coinStat; + [SerializeField] private TMP_Text playerLevelAndXPStat; [SerializeField] private TMP_Text playerNameText; [SerializeField] private Image playerIconImage; [SerializeField] private Image playerOverlayImage; @@ -65,6 +66,9 @@ public class ProfileMenu : MonoBehaviour string customIcon ) { + var xp = Tools.CalculateXP(BigInteger.Parse(normalBerries), BigInteger.Parse(poisonBerries), BigInteger.Parse(slowBerries), BigInteger.Parse(ultraBerries), BigInteger.Parse(speedyBerries), BigInteger.Parse(coinBerries), BigInteger.Parse(randomBerries), BigInteger.Parse(antiBerries), BigInteger.Parse(goldenBerries)); + var level = Tools.GetLevelInfo(xp).level; + normalBerryStat.text = Tools.FormatWithCommas(normalBerries); poisonBerryStat.text = Tools.FormatWithCommas(poisonBerries); slowBerryStat.text = Tools.FormatWithCommas(slowBerries); @@ -75,6 +79,7 @@ public class ProfileMenu : MonoBehaviour antiBerryStat.text = Tools.FormatWithCommas(antiBerries); goldenBerryStat.text = Tools.FormatWithCommas(goldenBerries); coinStat.text = Tools.FormatWithCommas(coins); + playerLevelAndXPStat.text = $"Level: {Tools.FormatWithCommas((BigInteger)level)}\nXP: {Tools.FormatWithCommas(xp)}"; playerNameText.text = playerName; if (customIcon == null)