Simple Pigman AI

This commit is contained in:
Michal Pikulski
2025-12-04 08:52:59 +01:00
committed by Michal Pikulski
parent e60d516e7e
commit edb83ef13d
27 changed files with 7452 additions and 428 deletions

View File

@@ -0,0 +1,73 @@
using UnityEngine;
namespace AppleHills.Core.Settings
{
/// <summary>
/// Developer settings for Fort Fight minigame technical configuration.
/// These settings are separate from gameplay/design settings and focus on debugging and testing.
/// </summary>
[CreateAssetMenu(fileName = "FortFightDeveloperSettings", menuName = "AppleHills/Developer Settings/Fort Fight", order = 2)]
public class FortFightDeveloperSettings : BaseDeveloperSettings
{
[Header("AI Debug Visualization")]
[Tooltip("Show AI debug visuals (target circles, trajectory lines)")]
[SerializeField] private bool showAIDebugVisuals = true;
[Tooltip("Color for AI target indicator")]
[SerializeField] private Color aiDebugTargetColor = Color.red;
[Tooltip("Radius of AI target circle")]
[SerializeField] private float aiDebugCircleRadius = 0.5f;
[Tooltip("Color for AI trajectory line")]
[SerializeField] private Color aiDebugTrajectoryColor = Color.yellow;
[Header("Debug Logging")]
[Tooltip("Show debug logs from SlingshotController")]
[SerializeField] private bool slingshotShowDebugLogs = true;
[Tooltip("Show debug logs from AmmunitionManager")]
[SerializeField] private bool ammunitionShowDebugLogs = true;
[Tooltip("Show debug info from FortController")]
[SerializeField] private bool fortShowDebugInfo = true;
[Header("UI Debug Display")]
[Tooltip("Show numerical HP values in FortHealthUI")]
[SerializeField] private bool healthUIDebugDisplay = false;
[Header("Testing & Debug Prefabs")]
[Tooltip("Debug prefab for player fort (testing purposes)")]
[SerializeField] private GameObject debugPlayerFortPrefab;
[Tooltip("Debug prefab for enemy fort (testing purposes)")]
[SerializeField] private GameObject debugEnemyFortPrefab;
// AI Debug Visualization properties
public bool ShowAIDebugVisuals => showAIDebugVisuals;
public Color AIDebugTargetColor => aiDebugTargetColor;
public float AIDebugCircleRadius => aiDebugCircleRadius;
public Color AIDebugTrajectoryColor => aiDebugTrajectoryColor;
// Debug Logging properties
public bool SlingshotShowDebugLogs => slingshotShowDebugLogs;
public bool AmmunitionShowDebugLogs => ammunitionShowDebugLogs;
public bool FortShowDebugInfo => fortShowDebugInfo;
// UI Debug Display properties
public bool HealthUIDebugDisplay => healthUIDebugDisplay;
// Testing & Debug Prefabs properties
public GameObject DebugPlayerFortPrefab => debugPlayerFortPrefab;
public GameObject DebugEnemyFortPrefab => debugEnemyFortPrefab;
public override void OnValidate()
{
base.OnValidate();
// Validate radius
aiDebugCircleRadius = Mathf.Max(0.1f, aiDebugCircleRadius);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d354649c25014aa2a7b3b45841834f74
timeCreated: 1764841328

View File

@@ -223,6 +223,10 @@ namespace AppleHills.Core.Settings
System.Collections.Generic.List<Minigames.FortFight.Settings.BlockMaterialConfig> MaterialConfigs { get; }
System.Collections.Generic.List<Minigames.FortFight.Settings.BlockSizeConfig> SizeConfigs { get; }
// AI Difficulty Settings
Minigames.FortFight.Data.AIDifficulty DefaultAIDifficulty { get; } // Default difficulty level for AI
Minigames.FortFight.Data.AIDifficultyData GetAIDifficultyData(Minigames.FortFight.Data.AIDifficulty difficulty);
// Weak point settings
float WeakPointExplosionRadius { get; }
float WeakPointExplosionDamage { get; }