Added ability application radius

dev-hazim
Hazim Bin Ijaz 5 days ago
parent c3b2b18f59
commit 681464f5f7

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

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

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

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

@ -61,7 +61,7 @@ public class AbilitySystem : NetworkBehaviour
UpdateWallIndicatorPosition(); // Follow the mouse when ability is activated
}
if (Input.GetMouseButtonDown(0))//AliSharoz && isValidPlacement)
if (Input.GetMouseButtonDown(0))
{
StartWallPlacement();
}
@ -93,6 +93,11 @@ public class AbilitySystem : NetworkBehaviour
}
}
private void IsInRadius()
{
}
private void ManageVectorFenceIndicator()
{
if (wallIndicator != null)
@ -242,6 +247,15 @@ public class AbilitySystem : NetworkBehaviour
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()
{
if (activeAbility == null)
@ -250,9 +264,15 @@ public class AbilitySystem : NetworkBehaviour
return;
}
Vector3 targetPosition = activeAbility.abilityKey == "VectorFence" ? wallIndicator.transform.position : currentAbilityIndicator.transform.position;
Vector3 targetRotation = activeAbility.abilityKey == "VectorFence" ? wallIndicator.transform.eulerAngles : currentAbilityIndicator.transform.eulerAngles;
GameObject indicator = activeAbility.abilityKey == "VectorFence" ? wallIndicator : currentAbilityIndicator;
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}.");
RequestAbilityActivationServerRpc(activeAbility.abilityKey, targetPosition, targetRotation);
StartCoroutine(StartCooldown(activeAbility));

Loading…
Cancel
Save