Added ability application radius

dev-ali
Hazim Bin Ijaz 2 weeks ago
parent c3b2b18f59
commit 681464f5f7

@ -18,6 +18,7 @@ MonoBehaviour:
abilityMagnitude: 0.3 abilityMagnitude: 0.3
abilityDuration: 3 abilityDuration: 3
abilityCooldownTime: 3 abilityCooldownTime: 3
abilityApplicationRadius: 3
prefab: {fileID: 5818330108676053786, guid: 4979352732bf84b44a9c789bef80b18a, type: 3} prefab: {fileID: 5818330108676053786, guid: 4979352732bf84b44a9c789bef80b18a, type: 3}
dashSpeed: 15 dashSpeed: 15
dashDuration: 0.5 dashDuration: 0.5

@ -18,5 +18,6 @@ MonoBehaviour:
abilityMagnitude: 3 abilityMagnitude: 3
abilityDuration: 3 abilityDuration: 3
abilityCooldownTime: 3 abilityCooldownTime: 3
abilityApplicationRadius: 3
prefab: {fileID: 6216300034370971352, guid: f9c332b27cf965044b8d1499bfcd9059, type: 3} prefab: {fileID: 6216300034370971352, guid: f9c332b27cf965044b8d1499bfcd9059, type: 3}
projectileSpeed: 10 projectileSpeed: 10

@ -18,6 +18,7 @@ MonoBehaviour:
abilityMagnitude: 0 abilityMagnitude: 0
abilityDuration: 5 abilityDuration: 5
abilityCooldownTime: 3 abilityCooldownTime: 3
abilityApplicationRadius: 3
prefab: {fileID: 9694722736535169, guid: 9b94ed8895919e84aa669628b0761eaf, type: 3} prefab: {fileID: 9694722736535169, guid: 9b94ed8895919e84aa669628b0761eaf, type: 3}
wallLength: 8 wallLength: 8
wallWidth: 0.01 wallWidth: 0.01

@ -11,6 +11,7 @@ public abstract class Ability : ScriptableObject
public float abilityMagnitude; public float abilityMagnitude;
public float abilityDuration; public float abilityDuration;
public float abilityCooldownTime; public float abilityCooldownTime;
public float abilityApplicationRadius;
[Header("Ability Prefab")] [Header("Ability Prefab")]
public GameObject prefab; public GameObject prefab;

@ -61,7 +61,7 @@ public class AbilitySystem : NetworkBehaviour
UpdateWallIndicatorPosition(); // Follow the mouse when ability is activated UpdateWallIndicatorPosition(); // Follow the mouse when ability is activated
} }
if (Input.GetMouseButtonDown(0))//AliSharoz && isValidPlacement) if (Input.GetMouseButtonDown(0))
{ {
StartWallPlacement(); StartWallPlacement();
} }
@ -93,6 +93,11 @@ public class AbilitySystem : NetworkBehaviour
} }
} }
private void IsInRadius()
{
}
private void ManageVectorFenceIndicator() private void ManageVectorFenceIndicator()
{ {
if (wallIndicator != null) if (wallIndicator != null)
@ -242,6 +247,15 @@ public class AbilitySystem : NetworkBehaviour
Debug.Log("Ability mode deactivated."); Debug.Log("Ability mode deactivated.");
} }
private bool IsPlacementWithinRadius(Vector3 targetPosition)
{
float placementRadius = activeAbility.abilityApplicationRadius; // Fetch radius from the active ability
float distance = Vector3.Distance(transform.position, targetPosition);
return distance <= placementRadius;
}
public void UseActiveAbility() public void UseActiveAbility()
{ {
if (activeAbility == null) if (activeAbility == null)
@ -250,9 +264,15 @@ public class AbilitySystem : NetworkBehaviour
return; return;
} }
Vector3 targetPosition = activeAbility.abilityKey == "VectorFence" ? wallIndicator.transform.position : currentAbilityIndicator.transform.position; GameObject indicator = activeAbility.abilityKey == "VectorFence" ? wallIndicator : currentAbilityIndicator;
Vector3 targetRotation = activeAbility.abilityKey == "VectorFence" ? wallIndicator.transform.eulerAngles : currentAbilityIndicator.transform.eulerAngles; Vector3 targetPosition = indicator.transform.position;
Vector3 targetRotation = indicator.transform.eulerAngles;
if (!IsPlacementWithinRadius(targetPosition))
{
Debug.Log("[AbilitySystem] Not in Radius.");
return;
}
Debug.Log($"[AbilitySystem] Using active ability {activeAbility.abilityName}."); Debug.Log($"[AbilitySystem] Using active ability {activeAbility.abilityName}.");
RequestAbilityActivationServerRpc(activeAbility.abilityKey, targetPosition, targetRotation); RequestAbilityActivationServerRpc(activeAbility.abilityKey, targetPosition, targetRotation);
StartCoroutine(StartCooldown(activeAbility)); StartCoroutine(StartCooldown(activeAbility));

Loading…
Cancel
Save