public override void AimSpell(UserRaycast raycast) { var grid = FindObjectOfType <FieldGrid>(); var user = raycast.GetComponent <User>(); var indicator = user.transform.GetChild(0).GetComponent <SpellController>().currentSpellIndicator; raycast.ShootRaycast(raycast.userCamera, raycast.enemyMask); int minPosition = 0; int maxPosition = 0; if (user.team == Team.A) { minPosition = 8; maxPosition = 11; } else { minPosition = 0; maxPosition = 3; } if (raycast.hittedObject != null && raycast.hittedObject.GetComponent <FieldGridNode>()) { var hittedObjectCoordinates = raycast.hittedObject.GetComponent <FieldGridNode>().coordinates; indicator.SetActive(true); if (hittedObjectCoordinates.x >= minPosition && hittedObjectCoordinates.x <= maxPosition) { var hittedCoordinate = new Vector2(hittedObjectCoordinates.x, 2); var hittedTransform = grid.nodeCoordinatesDictionary[hittedCoordinate].GetComponent <FieldGridNode>().unitStationedTransform.position; var adjustedPosition = new Vector3(hittedTransform.x, hittedTransform.y + 0.1f, hittedTransform.z); indicator.transform.position = adjustedPosition; } } else { if (spellStats.spellIndicator.activeSelf == true) { indicator.SetActive(false); } } }
public abstract void AimSpell(UserRaycast raycast);