Random default characters (#2216)

This commit is contained in:
Víctor Aguilera Puerto
2020-10-11 13:15:09 +02:00
committed by GitHub
parent ba4c596195
commit 32876c78fe
3 changed files with 52 additions and 43 deletions

View File

@@ -1,6 +1,10 @@
using System;
using System.Linq;
using Content.Shared.Preferences.Appearance;
using Robust.Shared.Interfaces.Random;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Random;
using Robust.Shared.Serialization;
namespace Content.Shared.Preferences
@@ -73,6 +77,31 @@ namespace Content.Shared.Preferences
);
}
public static HumanoidCharacterAppearance Random(Sex sex)
{
var random = IoCManager.Resolve<IRobustRandom>();
var newHairStyle = random.Pick(HairStyles.HairStylesMap.Keys.ToList());
var newFacialHairStyle = sex == Sex.Female
? HairStyles.DefaultFacialHairStyle
: random.Pick(HairStyles.FacialHairStylesMap.Keys.ToList());
var newHairColor = random.Pick(HairStyles.RealisticHairColors);
newHairColor = newHairColor
.WithRed(RandomizeColor(newHairColor.R))
.WithGreen(RandomizeColor(newHairColor.G))
.WithBlue(RandomizeColor(newHairColor.B));
// TODO: Add random eye and skin color
return new HumanoidCharacterAppearance(newHairStyle, newHairColor, newFacialHairStyle, newHairColor, Color.Black, Color.FromHex("#C0967F"));
float RandomizeColor(float channel)
{
return MathHelper.Clamp01(channel + random.Next(-25, 25) / 100f);
}
}
public static HumanoidCharacterAppearance EnsureValid(HumanoidCharacterAppearance appearance)
{
string hairStyleName;