diff --git a/Assets/_Project/Prefabs/Towers/Tower_TeslaCoil.prefab b/Assets/_Project/Prefabs/Towers/Tower_TeslaCoil.prefab index 5688bc9..959f827 100644 --- a/Assets/_Project/Prefabs/Towers/Tower_TeslaCoil.prefab +++ b/Assets/_Project/Prefabs/Towers/Tower_TeslaCoil.prefab @@ -147,7 +147,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} m_Name: m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject - GlobalObjectIdHash: 1363936954 + GlobalObjectIdHash: 280718094 InScenePlacedSourceGlobalObjectIdHash: 0 DeferredDespawnTick: 0 Ownership: 1 diff --git a/Assets/_Project/Scripts/Combat/TowerCombat.cs b/Assets/_Project/Scripts/Combat/TowerCombat.cs index 1c37234..657d5f8 100644 --- a/Assets/_Project/Scripts/Combat/TowerCombat.cs +++ b/Assets/_Project/Scripts/Combat/TowerCombat.cs @@ -55,7 +55,7 @@ namespace TD.Combat private EnemyHealth currentTarget; // Attack cooldown decrements each server frame. When ≤ 0 and a target - // is in range, the tower fires and the timer resets to 1 / FireRate. + // is in range, the tower fires and the timer resets to 1 / AttacksPerSecond. private float attackCooldown; // Cached on OnNetworkSpawn — avoids GetComponent every Update. @@ -129,7 +129,7 @@ namespace TD.Combat if (!IsServer) return; TowerDefinition def = towerInstance?.Definition; - if (def == null || def.Range <= 0f || def.FireRate <= 0f) return; + if (def == null || def.Range <= 0f || def.AttacksPerSecond <= 0f) return; // Only fire during active gameplay. var ms = MatchState.Instance; @@ -252,7 +252,7 @@ namespace TD.Combat attackCooldown -= Time.deltaTime; if (attackCooldown > 0f) return; - float effectiveFireRate = def.FireRate + float effectiveFireRate = def.AttacksPerSecond * (GetOwnerBuffManager()?.GetMultiplier(BuffStat.AttackSpeed) ?? 1f); attackCooldown = 1f / effectiveFireRate; Fire(def); diff --git a/Assets/_Project/Scripts/Towers/TowerDefinition.cs b/Assets/_Project/Scripts/Towers/TowerDefinition.cs index 24232ad..3ce1632 100644 --- a/Assets/_Project/Scripts/Towers/TowerDefinition.cs +++ b/Assets/_Project/Scripts/Towers/TowerDefinition.cs @@ -107,7 +107,7 @@ namespace TD.Towers public float Range; [Tooltip("Attacks per second.")] - public float FireRate; + public float AttacksPerSecond; [Header("Combat — Area")] [Tooltip("Radius of splash damage around the primary impact point. " + diff --git a/Assets/_Project/Scripts/UI/HUDController.cs b/Assets/_Project/Scripts/UI/HUDController.cs index 2dd0536..96f50ec 100644 --- a/Assets/_Project/Scripts/UI/HUDController.cs +++ b/Assets/_Project/Scripts/UI/HUDController.cs @@ -1290,7 +1290,7 @@ namespace TD.UI { if (def.Damage > 0) AddStatLine($"Damage: {def.Damage}"); if (def.Range > 0) AddStatLine($"Range: {def.Range:0.0}"); - if (def.FireRate > 0) AddStatLine($"Fire rate: {def.FireRate:0.0}/s"); + if (def.AttacksPerSecond > 0) AddStatLine($"Fire rate: {def.AttacksPerSecond:0.0}/s"); if (def.SlowFactor < 1f) AddStatLine($"Slow: {(1f - def.SlowFactor) * 100f:0}%"); } @@ -1427,8 +1427,8 @@ namespace TD.UI if (def.Damage > 0 || def.Range > 0) { ttStats.text = $"DMG: {def.Damage} · Range: {def.Range:0}"; - if (def.FireRate > 0) - ttStats.text += $"\nFire rate: {def.FireRate:0.0}/s"; + if (def.AttacksPerSecond > 0) + ttStats.text += $"\nFire rate: {def.AttacksPerSecond:0.0}/s"; if (def.SlowFactor < 1f) ttStats.text += $"\nSlow: {(1f - def.SlowFactor) * 100f:0}%"; }