예제 #1
0
    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);
            }
        }
    }
예제 #2
0
 public abstract void AimSpell(UserRaycast raycast);