more stuff

This commit is contained in:
4sval 2022-07-31 14:29:32 +02:00
parent ad2f275d5e
commit d046e6254f
2 changed files with 46 additions and 3 deletions

View File

@ -1,6 +1,8 @@
using System;
using System.Linq;
using System.Collections.Generic;
using CUE4Parse.UE4.Assets.Exports;
using CUE4Parse.UE4.Assets.Exports.Engine;
using CUE4Parse.UE4.Assets.Exports.Material;
using CUE4Parse.UE4.Objects.Core.i18N;
using CUE4Parse.UE4.Objects.Core.Math;
@ -14,7 +16,10 @@ public class BaseFighter : UCreator
private float _xOffset;
private float _yOffset;
private float _zoom;
private SKBitmap _pattern;
private readonly SKBitmap _pattern;
private (SKBitmap, List<string>) _fighterType;
public BaseFighter(UObject uObject, EIconStyle style) : base(uObject, style)
{
@ -22,8 +27,11 @@ public class BaseFighter : UCreator
Width = 1024;
DisplayNamePaint.TextAlign = SKTextAlign.Left;
DisplayNamePaint.TextSize = 100;
DescriptionPaint.TextSize = 25;
DefaultPreview = Utils.GetBitmap("MultiVersus/Content/Panda_Main/UI/PreMatch/Images/DiamondPortraits/0010_Random.0010_Random");
_pattern = Utils.GetBitmap("MultiVersus/Content/Panda_Main/UI/Assets/UI_Textures/halftone_jagged.halftone_jagged");
_fighterType.Item2 = new List<string>();
}
public override void ParseForInfo()
@ -42,6 +50,10 @@ public class BaseFighter : UCreator
if (Object.TryGetValue(out FText displayName, "DisplayName"))
DisplayName = displayName.Text;
GetFighterClassInfo(Object.GetOrDefault("Class", EFighterClass.Support));
if (Object.TryGetValue(out FText property, "Property"))
_fighterType.Item2.Add(property.Text);
}
public override SKBitmap[] Draw()
@ -52,10 +64,25 @@ public class BaseFighter : UCreator
DrawBackground(c);
DrawPreview(c);
DrawDisplayName(c);
DrawFighterInfo(c);
return new[] { ret };
}
private void GetFighterClassInfo(EFighterClass clas)
{
if (!Utils.TryLoadObject("MultiVersus/Content/Panda_Main/UI/In-Game/Data/UICharacterClassInfo_Datatable.UICharacterClassInfo_Datatable", out UDataTable dataTable))
return;
var row = dataTable.RowMap.ElementAt((int) clas).Value;
if (!row.TryGetValue(out FText displayName, "DisplayName_5_9DB5DDFF490E1F4AD72329866F96B81D") ||
!row.TryGetValue(out FPackageIndex icon, "Icon_8_711534AD4F240D4B001AA6A471EA1895"))
return;
_fighterType.Item1 = Utils.GetBitmap(icon);
_fighterType.Item2.Add(displayName.Text);
}
private new void DrawBackground(SKCanvas c)
{
c.DrawRect(new SKRect(0, 0, Width, Height),
@ -106,4 +133,20 @@ public class BaseFighter : UCreator
if (string.IsNullOrWhiteSpace(DisplayName)) return;
c.DrawText(DisplayName.ToUpper(), 50, 100, DisplayNamePaint);
}
private void DrawFighterInfo(SKCanvas c)
{
c.DrawBitmap(_fighterType.Item1, new SKRect(50, 112.5f, 98, 160.5f), ImagePaint);
c.DrawText(string.Join(" | ", _fighterType.Item2), 98, 145, DescriptionPaint);
}
}
public enum EFighterClass : byte
{
Mage = 4,
Tank = 3,
Fighter = 2,
Bruiser = 2,
Assassin = 1,
Support = 0 // Default
}

View File

@ -43,8 +43,8 @@ public class Typefaces
// Multiversus
private const string _MULTIVERSUS_BASE_PATH = "/Game/Panda_Main/UI/Fonts/";
private const string _MONTSERRAT_BOLD = "Montserrat/Montserrat-Bold";
private const string _NORMS_STD_CONDENSED_BLACK = "Norms/TT_Norms_Std_Condensed_Black";
private const string _NORMS_STD_CONDENSED_BOLD = "Norms/TT_Norms_Std_Condensed_Bold";
// Spellbreak
private const string _SPELLBREAK_BASE_PATH = "/Game/UI/Fonts/";
@ -201,7 +201,7 @@ public class Typefaces
case FGame.Multiversus:
{
DisplayName = OnTheFly(_MULTIVERSUS_BASE_PATH + _NORMS_STD_CONDENSED_BLACK + _EXT);
Description = OnTheFly(_MULTIVERSUS_BASE_PATH + _MONTSERRAT_BOLD + _EXT);
Description = OnTheFly(_MULTIVERSUS_BASE_PATH + _NORMS_STD_CONDENSED_BOLD + _EXT);
break;
}
default: