Open verdie-g opened 1 year ago
private BodyProperties CreateBodyPropertiesForCharacter(NetworkCommunicator networkPeer, CrpgCharacter crpgCharacter)
{
// The age should be at least 16 because the game doesn't accept maturity < teenager.
// 1.0.2 MBBodyProperties.GetMaturityType => [0-4] = Toddler, [5-9] = Child, [10-15] = Teen, [16-20] = Teenager, [21;[ = Adult
var playerBodyProperties = networkPeer.PlayerConnectionInfo.GetParameter<PlayerData>("PlayerData").BodyProperties;
float age = MBMath.Lerp(valueFrom: 16, valueTo: 50, amount: crpgCharacter.Level / 40f);
float weight = Math.Min(MBMath.Lerp(valueFrom: 0, valueTo: 1, amount: (/*crpgCharacter.Characteristics.Attributes.Strength*/40 - 3) / 35f), 1f);
float build = weight;
Debug.Print($"Age={age}, Weight={weight}, Build={build}");
DynamicBodyProperties dynamicBodyProperties = new(age, weight, build);
return new BodyProperties(dynamicBodyProperties, playerBodyProperties.StaticProperties);
}
MissionNetworkComponent.HandleServerEventCreateAgent
completely ignores the given body properties to choseMissionPeer.Peer.BodyProperties
.