⚒️Create Sensations
There are multiple ways of creating sensations:
Microsensation
These are the smallest units that can be felt. A sensation is composed of one or more of them.
var daggerEntry = SensationsFactory.Create(60, 0.1f, 90, 0, 0, 0);
var bleeding = SensationsFactory.Create(50, 0.5f, 50, 0, 0.4f, 0);
Sensations Sequence
var stab = daggerEntry.Append(bleeding);
Import a sensation
Sensations are exported in its own format from the Sensations Creator, you can import them using the Parse
function.
var ball = Sensation.Parse("100,1,100,0,0,0,Impact");
A baked sensation can be imported using the same function.
var bakedBall = Sensation.Parse("0~Ball~100,1,100,0,0,0,Impact~impact-0~");
Muscles
Declaration
You can assign a muscle or group of muscles to any sensation. Muscles are defined like this:
var rightPectoral = Muscle.Pectoral_R;
var bothPectorals = new Muscle[] { Muscle.Pectoral_R, Muscle.Pectoral_L };
var all = Muscle.All;
The intensity percentage can be changed per muscle:
var atMinIntensity = rightPectoral.WithIntensity(1);
var eachWithItsOwnIntensity = new Muscle[] { Muscle.Pectoral_R.WithIntensity(25),
Muscle.Pectoral_L.WithIntensity(50) };
var atHighIntensity = Muscle.All.WithIntensity(80);
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();
Assignation
You can assign muscles to any subtype of Sensation
.
var 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));
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
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
Multiply intensity
Muscles
// NOTE: The intensity of the muscle would be multiplied by 0.2f
var softer = Muscle.Abdominal_R.MultiplyIntensityBy(20);
Sensations
// Microsensation with a intensity of 100
var higher = SensationFactory.Create(intensityPercentage: 25).MultiplyIntensityBy(400);
// Sensation with muscles with a intensity of 50
var half = SensationFactory.Create().WithMuscles(Arm_L).MultiplyIntensityBy(50);
// Sensation sequence with a intensity of 30
var softer = Sensation.Ball.WithMuscles(Abdominal_R).Append(Dart).MultiplyIntensityBy(30);
Last updated