7571091394
- SoD facing: PlayerFacing = body-yaw only (move-facing / cast-turn / idle-hold); every fire direction re-sourced to FacingMath.ResolveAim (pre-code review blocking catch); TickWindowMath shared windows with Movement-skip; reticle/FX coupled to the damage direction; cursor-dash kept. - Underwater feel: sharpness 15->6, turn 720->360, MoveSpeed 6->4.2; TuningKnob 26-28 (0 = no-override sentinels, dev-protocol bump on DebugTuningReport); stride footsteps + silt + cadence floor; bubbles; underwater ambience bed + distant groans; camera drag + dev scroll zoom. - Bathynaut kit in-engine: dome/tank/shoulder-lamp + bare head grafted (GraftSmr rigid rebase, RecalculateTangents); EmissiveGloamSkinned shader (Rukhanka deformation); shoulder lamp CASTS (warm steady spot on body yaw). - Gait: two-ring walk/run FreeformDirectional tree (walk @0.35, run @1.0) + blended-natural StrideScale; additive Posture(Bank) + Lead(chest-lead) layers; idle = AnimationIdles Base; banking driven from facing turn rate; flat terrain (Env_SeabedKit seabed squashed - CC is planar). - New packs: Synty AnimationIdles + AnimationSwordCombat (combat pass queued) + SyntyPropBoneTool; four authored clips (sway/trudge/banks/lean) + Anim_Player_Underwater.blend + suit-kit FBX. - Validation: 411/411 EditMode green; Play smokes (server==client facing, Aim-true projectile, bank/stride live-sampled, lamp beam verified); pre-code + post-impl adversarial reviews applied. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
22 lines
1019 B
C#
22 lines
1019 B
C#
using ProjectM.Simulation;
|
|
using UnityEngine;
|
|
|
|
namespace ProjectM.Authoring
|
|
{
|
|
/// <summary>
|
|
/// Designer-facing definition of a character's base stats (movement + survivability), baked into the
|
|
/// AbilityDatabase blob and looked up at runtime by CharacterStatsRef. The single source of these
|
|
/// values - PlayerAuthoring also seeds the player's starting Health from MaxHealth.
|
|
/// </summary>
|
|
[CreateAssetMenu(menuName = "Project M/Character Stats Definition", fileName = "Character_")]
|
|
public class CharacterStatsDefinition : ScriptableObject
|
|
{
|
|
public FrameKind Id = FrameKind.Default;
|
|
public string DisplayName = "Character";
|
|
|
|
[Min(0f)] public float MoveSpeed = 4.2f; // 07-16e underwater feel: matched near the run clip's natural pace (asset value is authoritative)
|
|
[Min(0f)] public float TurnRateDegreesPerSec = 360f; // 07-15 underwater feel: heavier body swing (asset value is authoritative)
|
|
[Min(0f)] public float MaxHealth = 100f;
|
|
}
|
|
}
|