public override void Execute(Entity context)
    {
        CharacterController controller = context.GetComponent<CharacterController>();
        transform = controller.transform;
        //transform = context.transform;
        direction = context.GetMedrashPosition() - transform.position;
        direction.y = 0.0f;

        tangent.x = clockwise*direction.z;
        tangent.z = -clockwise*direction.x;
        tangent.y = 0.0f;

        if (context.DistanceToMainCharacter() > context.GetCloseRadius())
            direction = tangent + 0.01f*(direction.magnitude - context.GetFarRadius()) * direction;
        else
            direction = tangent + 0.1f*(direction.magnitude - context.GetFarRadius()) * direction;

        RaycastHit hitInfo;
        if (Physics.Raycast(transform.position + controller.center, direction, out hitInfo, 3.0f)) {
            clockwise *= -1;
            direction *= -1;
        }
        context.SetDirection(direction);
        context.SetRunAnimation();
    }
Example #2
0
 public override void Execute(Entity context)
 {
     Transform transform = context.transform;
     direction = context.GetMedrashPosition() - transform.position;
     direction.y = 0.0f;
     context.SetDirection(direction);
 }
 public override void Execute(Entity context)
 {
     direction = context.ReturnPlace() - context.transform.position;
     direction.y = 0;
     context.SetDirection(direction);
     context.SetWalkAnimation();
 }
 public override void Enter(Entity context)
 {
     transform = context.transform;
     direction = context.GetMedrashPosition() - transform.position;
     direction.y = 0.0f;
     context.SetSpeed(context.GetBaseSpeed()*1.5f);
     context.SetDirection(direction);
 }
Example #5
0
 public override void Execute(Entity context)
 {
     target = context.medrash.transform;
     transform = context.transform;
     direction = target.position - transform.position;
     direction.y = 0;
     direction = -5.0f*direction.normalized;
     context.SetDirection(direction);
 }
 public override void Enter(Entity context)
 {
     context.SetSpeed(context.GetBaseSpeed());
     float r = Random.value;
     rotateAngle = 120.0f*(2*r - 1)*Mathf.PI/180.0f;
     if (r < 0.4)
         context.RotateBy(rotateAngle);
     else if (r < 0.8)
         context.RotateBy(-rotateAngle);
     direction = context.transform.forward;
     direction.y = 0.0f;
     context.SetDirection(direction);
 }
 public override void Execute(Entity context)
 {
     transform = context.transform;
     direction = context.GetMedrashPosition() - transform.position;
     direction.y = 0.0f;
     tangent.x = clockwise*direction.z;
     tangent.z = -clockwise*direction.x;
     tangent.y = 0.0f;
     direction = tangent + (direction.magnitude - context.GetFarRadius()) * direction;
     if (Physics.Raycast(transform.position, direction, context.GetCloseRadius()))
         clockwise *= -1;
     context.SetDirection(direction);
     context.SetRunAnimation();
 }
Example #8
0
 public override void Execute(Entity context)
 {
     context.SetDirection(Vector3.zero);
     context.SetFace(context.transform.right);
 }