Beispiel #1
0
 public static void InvokeUnitLeap(Unit unit, LeapDirections direction)
 {
     if (onUnitLeapEvent != null)
     {
         onUnitLeapEvent(unit, direction);
     }
 }
Beispiel #2
0
    IEnumerator TransitionRoutine(LeapDirections direction)
    {
        var speed = 1 / caster.leapDuration;

        var targetBlock = Level.GetBlock(caster.row, caster.line + (int)direction);

        var x = targetBlock.transform.position.x;
        var y = caster.transform.position.y;
        var z = caster.transform.position.z;

        var targetPosition = new Vector3(x, y, z);

        if (direction == LeapDirections.Left)
        {
            while (caster.transform.position.x > targetPosition.x)
            {
                caster.transform.position -= caster.transform.right * speed * Time.deltaTime;
                if (caster.transform.position.x <= targetPosition.x)
                {
                    break;
                }
                yield return(null);
            }
        }
        else if (direction == LeapDirections.Right)
        {
            while (caster.transform.position.x < targetPosition.x)
            {
                caster.transform.position += caster.transform.right * speed * Time.deltaTime;
                if (caster.transform.position.x >= targetPosition.x)
                {
                    break;
                }
                yield return(null);
            }
        }
        caster.transform.position = targetPosition;
    }
Beispiel #3
0
 protected virtual void OnUnitLeap(Unit unit, LeapDirections direction)
 {
 }