You can obtain the opposite muscles of a muscles group (or single) by calling the mirror method:
var leftPectoral =Muscle.Pectoral_R.Mirror();var rightSide =new[] { Muscle.Abdominal_L,Muscle.Pectoral_L, }.Mirror();
auto leftPectoral = Muscle::Pectoral_R().Mirror();auto rightSide =MusclesGroup({ Muscle::Abdominal_L(), Muscle::Lumbar_L(), Muscle::Pectoral_L() }).Mirror();
Assignation
You can assign muscles to any subtype of Sensation.
var ballWithMuscles =ball.WithMuscles(Muscle.Pectoral_R);
auto ballWithMuscles =ball->WithMuscles({ Muscle::Pectoral_R() });
So it would be also possible to assign muscles to a sensations sequence, or to a baked sensation.
var frontStab =stab.WithMuscles(Muscle.Abdominal_R);var crossStab =daggerEntry.WithMuscles(Muscle.Abdominal_R) .Append(bleeding.WithMuscles(Muscle.Dorsal_R));
auto frontStab =stab->WithMuscles({ Muscle::Abdominal_R() });auto crossStab = SensationsFactory::CreateSequence({ daggerEntry->WithMuscles({Muscle::Abdominal_R()}),bleeding->WithMuscles({Muscle::Dorsal_R()}) });
After assigning muscles to a sensation, it becomes a SensationWithMuscles, and it will not be possible to override the muscles that were assigned to it initially.
var ballWithMuscles =ball.WithMuscles(Muscle.Pectoral_R);var keepingSameMuscles =ballWithMuscles.WithMuscles(Muscle.Lumbar_L); //Keeps only the right pectoral
auto ballWithMuscles =ball->WithMuscles({ Muscle::Pectoral_R() });auto keepingSameMuscles =ballWithMuscles->WithMuscles({ Muscle::Lumbar_L() }); //Keeps only the right pectoral
You can use this as an advantage to define sensation sequences that have sensation with fixed muscles but others with dynamic muscles:
var incompleteStab =daggerEntry.WithMuscles(Muscle.Abdominal_R).Append(bleeding);var stabWithBackExit =crossStab.WithMuscles(Muscle.Dorsal_R); //The right dorsal will only be assigned to the bleeding
auto incompleteStab =newSensationsSequence({ daggerEntry->WithMuscles({Muscle::Abdominal_R()}), bleeding});auto stabWithBackExit = incompleteStab->WithMuscles({Muscle::Dorsal_R()}); //The right dorsal will only be assigned to the bleeding
Multiply intensity
This feature is only available in the .Net version of the API, it allows you to multiply the existing sensation of a muscle or sensation by a percentage.
Muscles
// NOTE: The intensity of the muscle would be multiplied by 0.2fvar softer =Muscle.Abdominal_R.MultiplyIntensityBy(20);
Sensations
// Microsensation with a intensity of 100var higher =SensationFactory.Create(intensityPercentage:25).MultiplyIntensityBy(400);// Sensation with muscles with a intensity of 50var half =SensationFactory.Create().WithMuscles(Arm_L).MultiplyIntensityBy(50);// Sensation sequence with a intensity of 30var softer =Sensation.Ball.WithMuscles(Abdominal_R).Append(Dart).MultiplyIntensityBy(30);