Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,28 +23,31 @@ jobs:
- name: Restore dependencies
run: dotnet restore

- name: Build Release (library)
run: dotnet build GEffectsLogic/GEffectsLogic.csproj -c Release --no-restore
- name: Build all configurations
run: |
dotnet build GEffectsLogic/GEffectsLogic.csproj -c Release --no-restore
dotnet build GEffectsLogic/GEffectsLogic.csproj -c Debug --no-restore

- name: Build Debug (library)
run: dotnet build GEffectsLogic/GEffectsLogic.csproj -c Debug --no-restore
- name: Collect artifacts
run: |
mkdir -p artifacts/net10.0/release
mkdir -p artifacts/net10.0/debug
mkdir -p artifacts/net481/release
mkdir -p artifacts/net481/debug

- name: Upload Release DLL artifact
uses: actions/upload-artifact@v4
with:
name: GEffectsLogic.dll
path: GEffectsLogic/bin/Release/net10.0/GEffectsLogic.dll
cp GEffectsLogic/bin/Release/net10.0/GEffectsLogic.dll artifacts/net10.0/release/
cp GEffectsLogic/bin/Debug/net10.0/GEffectsLogic.dll artifacts/net10.0/debug/
cp GEffectsLogic/bin/Debug/net10.0/GEffectsLogic.pdb artifacts/net10.0/debug/

- name: Prepare Debug DLL name
run: |
mkdir -p artifacts/debug
cp GEffectsLogic/bin/Debug/net10.0/GEffectsLogic.dll artifacts/debug/GEffectsLogic.dev.dll
cp GEffectsLogic/bin/Release/net481/GEffectsLogic.dll artifacts/net481/release/
cp GEffectsLogic/bin/Debug/net481/GEffectsLogic.dll artifacts/net481/debug/
cp GEffectsLogic/bin/Debug/net481/GEffectsLogic.pdb artifacts/net481/debug/

- name: Upload Debug DLL artifact
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: GEffectsLogic.dev.dll
path: artifacts/debug/GEffectsLogic.dev.dll
name: GEffectsLogic
path: artifacts/

test:
runs-on: ubuntu-latest
Expand Down
118 changes: 85 additions & 33 deletions .idea/.idea.GEffectsLogic/.idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions GEffectsLogic/GEffectsLogic.csproj
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<TargetFrameworks>net481;net10.0</TargetFrameworks>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Configurations>Debug;Release;PerfDebug</Configurations>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>

<VersionPrefix>0.2.0</VersionPrefix>
<VersionPrefix>0.3.0</VersionPrefix>
<Version>$(VersionPrefix)</Version>
<AssemblyVersion>0.2.0.0</AssemblyVersion>
<AssemblyVersion>0.3.0.0</AssemblyVersion>
<FileVersion>$(VersionPrefix).0</FileVersion>

<GitShortHash>nogit</GitShortHash>
Expand Down
24 changes: 22 additions & 2 deletions GEffectsLogic/LogicSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
public static class LogicSettings
{
public static double StabilizationTimeThreshold { get; set; } = 30.0;
public static double StabilizationTimeThreshold { get; set; } = 600.0;

// --- Physiological model parameters ---

Expand All @@ -16,7 +16,6 @@ public static class LogicSettings
public static double HydrostaticShiftExponent { get; set; } = 2.2;

// Keep these summing to ~1.0
public static double HeadCoreShiftFraction { get; set; } = 0.45;
public static double CoreLowerShiftFraction { get; set; } = 0.55;

// Passive return / compensation
Expand Down Expand Up @@ -98,5 +97,26 @@ public static class LogicSettings
public static double GSuitGlobalShiftReductionMax { get; set; } = 0.20; // optional mild global scaling
public static double GSuitCoreLowerReductionMax { get; set; } = 0.60; // reduce core->lower pooling
public static double GSuitLowerReturnBoostMax { get; set; } = 0.80; // increase lower return

// --- Fatigue / resistance reduction ---

// Fraction of GSuitEffectiveness that the suit retains passively (hardware inflation) regardless of fatigue
public static double GSuitPassiveFraction { get; set; } = 0.25;

// Straining (AGSM) fatigue: rate at which the human straining component degrades
// Build rate is per-second at strainingLevel=1 (quadratic: actual rate = BuildRate * strainingLevel²)
// ~60-90s of max straining to saturate (1/BuildRate ≈ saturation time)
public static double StrainingFatigueBuildRate { get; set; } = 0.015; // saturates ~67s at full strain
public static double StrainingFatigueRecoveryTau { get; set; } = 150.0; // ~2.5 min to recover

// G-suit mechanical fatigue: slower than straining fatigue (suit outlasts the pilot's AGSM)
// Build rate is per-second at strainingLevel=1 (linear: actual rate = BuildRate * strainingLevel)
public static double GSuitFatigueBuildRate { get; set; } = 0.004; // saturates ~250s at full strain
public static double GSuitFatigueRecoveryTau { get; set; } = 300.0; // ~5 min to recover

// Cardiovascular fatigue: hrFatigue (0..1) accumulates at CardioFatigueBuildRate × hrElevation per second
public static double CardioFatigueBuildRate { get; set; } = 0.008; // ~125s at max HR elevation to fully fatigue
public static double CardioFatigueRecoveryTau { get; set; } = 240.0; // ~4 min to fully recover
public static double CardioFatigueMaxHRFloor { get; set; } = 1.25; // HR floor when fully fatigued
}
}
Loading
Loading