MVP of the plane throwing game (#77)

Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com>
Co-authored-by: Michal Pikulski <michal.a.pikulski@gmail.com>
Reviewed-on: #77
This commit is contained in:
2025-12-07 19:36:57 +00:00
parent ad8338f37e
commit c27f22ef0a
128 changed files with 15474 additions and 1589 deletions

View File

@@ -219,6 +219,9 @@ namespace AppleHills.Core.Settings
/// </summary>
public interface IFortFightSettings
{
// Slingshot Configuration
Common.Input.SlingshotConfig SlingshotSettings { get; }
// Block configurations
System.Collections.Generic.List<Minigames.FortFight.Settings.BlockMaterialConfig> MaterialConfigs { get; }
System.Collections.Generic.List<Minigames.FortFight.Settings.BlockSizeConfig> SizeConfigs { get; }
@@ -248,12 +251,6 @@ namespace AppleHills.Core.Settings
int FortBlockLayer { get; } // Layer index for fort blocks
int ProjectileLayer { get; } // Layer index for projectiles
// Slingshot Settings
float BaseLaunchForce { get; } // Base launch force multiplier
float MinForceMultiplier { get; } // Minimum force required to launch (0-1)
float MaxForceMultiplier { get; } // Maximum force cap (0-2, usually 1)
float TrajectoryLockDuration { get; } // How long to show trajectory after launch
// Projectile Abilities
float VacuumSlideSpeed { get; } // Constant velocity for vacuum sliding (m/s)
int VacuumDestroyBlockCount { get; } // Blocks to destroy while sliding
@@ -279,4 +276,47 @@ namespace AppleHills.Core.Settings
Minigames.FortFight.Settings.BlockMaterialConfig GetMaterialConfig(Minigames.FortFight.Data.BlockMaterial material);
Minigames.FortFight.Settings.BlockSizeConfig GetSizeConfig(Minigames.FortFight.Data.BlockSize size);
}
/// <summary>
/// Interface for Airplane minigame settings
/// </summary>
public interface IAirplaneSettings
{
// Airplane Types - Get configuration by type
Minigames.Airplane.Data.AirplaneTypeConfig GetAirplaneConfig(Minigames.Airplane.Data.AirplaneAbilityType type);
Minigames.Airplane.Data.JetAbilityConfig JetAbilityConfig { get; }
Minigames.Airplane.Data.BobbingAbilityConfig BobbingAbilityConfig { get; }
Minigames.Airplane.Data.DropAbilityConfig DropAbilityConfig { get; }
Minigames.Airplane.Data.AirplaneAbilityType DefaultAirplaneType { get; }
// Slingshot Configuration
Common.Input.SlingshotConfig SlingshotSettings { get; }
// Flight Settings
float AirplaneMass { get; }
float MaxFlightTime { get; }
// Timing
float IntroDuration { get; }
float PersonIntroDuration { get; }
float EvaluationDuration { get; }
// Spawn System
float DynamicSpawnThreshold { get; }
float TargetMinDistance { get; }
float TargetMaxDistance { get; }
float ObjectSpawnMinInterval { get; }
float ObjectSpawnMaxInterval { get; }
float PositiveNegativeRatio { get; } // 0-1, where 1 = all positive, 0 = all negative
float SpawnDistanceAhead { get; }
float GroundSpawnInterval { get; }
// Ground Snapping
int GroundLayer { get; }
float MaxGroundRaycastDistance { get; }
float DefaultObjectYOffset { get; }
// Debug
bool ShowDebugLogs { get; }
}
}