44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
import math
|
|
import unreal
|
|
|
|
|
|
MOVEMENT_DEFAULTS = {
|
|
"WalkSpeed": 140.0,
|
|
"SprintSpeed": 550.0,
|
|
"SprintStaminaCostPerSecond": 28.0,
|
|
"MinSprintStamina": 5.0,
|
|
"AgeYears": 25.0,
|
|
"PhysicalConditionMultiplier": 1.0,
|
|
"StrengthMultiplier": 1.0,
|
|
"EnduranceMultiplier": 1.0,
|
|
"ComfortableCarryWeight": 25.0,
|
|
"HeavyCarryWeight": 60.0,
|
|
"TerrainMovementMultiplier": 1.0,
|
|
}
|
|
|
|
|
|
def load(path):
|
|
asset = unreal.EditorAssetLibrary.load_asset(path)
|
|
if not asset:
|
|
raise RuntimeError(f"Could not load {path}")
|
|
return asset
|
|
|
|
|
|
def main():
|
|
character_bp = load("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter")
|
|
character_cdo = unreal.get_default_object(character_bp.generated_class())
|
|
|
|
mismatches = []
|
|
for property_name, expected in MOVEMENT_DEFAULTS.items():
|
|
actual = float(character_cdo.get_editor_property(property_name))
|
|
if not math.isclose(actual, expected, rel_tol=0.0, abs_tol=0.01):
|
|
mismatches.append(f"{property_name}: expected {expected}, got {actual}")
|
|
|
|
if mismatches:
|
|
raise RuntimeError("Movement baseline verification failed: " + "; ".join(mismatches))
|
|
|
|
unreal.log("Agrarian movement baseline verification complete.")
|
|
|
|
|
|
main()
|